In the English language, much like most languages there exists words which have multiple meanings. However, when we think on certain words we feel as if they are “unified” to a single concept. For example, Hofstadter makes this example clear with the English word “hard.” When you think of this word, usually one singular meaning pops to the forefront; specifically “not soft”. However, there exists many different meanings for this word.
Synonyms of hard: difficult, callous, compact, dense, firm, hardened, impenetrable, inflexible, rigid, set, solid, tough, unyielding, adverse, industrious, inelastic, strict, severe, etc.
It is easy to see now how there exists many different interpretations, where hard can take on different meanings. This makes it incredibly difficult to program computers which can conceptualize and think in the way humans do. A machine can attack a program from a given, pre-programmed perspective, but it becomes difficult to design systems which can switch perspectives on the fly, and know when to do so. Humans can do this with ease. As a human reads different sentences, the word “hard” can take on different meanings depending on the context. Machines would need a true understanding of real-world knowledge to truly achieve this.
A salient, and present example comes to mind. A computer translating a sentence from English to German with the word “hard” in it may give a direct translation of the word but because of its lack of any true real-world knowledge may end up translating it incorrectly. Machine translation is a difficult area for computer scientists and computational linguistics; yet it is one that computer scientists used to believe would have been solved by now.

