John F. Sowa
The task of knowledge representation has two parts: the first is to analyze some body of knowledge and identify the relevant concepts, relations, and assumptions; the second is to translate the result of the analysis into some notation that can be processed by computer. Neither part is easy, but the first is far more difficult. Natural languages are capable of expressing anything that can be stated in any artificial language with the same level of detail and precision, but they can tolerate any degree of vagueness during the process of analysis. Artificial languages, such as the many variants of symbolic logic, are valuable because they do not tolerate vagueness, but what they say so precisely may have no relationship to what the author intended. The various notations for logic are designed to represent the final precise stage, but they provide no intermediate forms that can bridge the gap between an initial vague idea and its ultimate formalization. Natural languages can represent every stage from the most vague to the most precise, but no version of fuzzy logic or related variants can come close to the flexibility of natural languages.