2.3.4. The function of word types in reasoning
Another fundamental problem when Predicate Logic is applied to linguistics: It doesn't specify word types.
For example, instead of “All humans are mortal”, it is perfectly fine in Predicate Logic to write “All blue are mortal”. But this sentence construction is grammatically invalid for any adjective. It is only valid for plural nouns.
In order to be applicable to natural language, Predicate Logic should describe the word type of each variable. In this case, it should define that the first variable (second word) should be a plural noun, and that the second variable (last word) should be an adjective.
Let's consider the following equation: “Every car has an engine” equals to “An engine is part of every car”. I state that this equation is true for any singular noun. However, unaware of the function of word types in language, scientists try to prove my fundamental approach wrong by using a proper noun, like: “John has a son” equals to “A son is part of every John”, which is nonsense of course.
So, despite of using different types in common programming languages – such as booleans, integers and strings – scientists are ignorant of the function of the different word types when it comes to reasoning in natural language.
The algebra of language that I used in the challenge to beat my Controlled Natural Language reasoner repairs both problems: Preserving word type information, as well as reasoning beyond the present tense of basic verb “is/are” (see Predicate Logic). Abbreviations can be used later, in order to make the notation compact.