Syntax, Semantics and In Between
I'm about to post a response to a comment I received about Thursday night's presentation, but first I want to define some terms. (The fact that I have to try to establish this common ground vocabulary in order to discuss these issues ironically argues my point for me, as I hope you'll see in the next post.) I invite corrections to my naive definitions, as long as the corrections can be stated in something close to English.
Syntax is expressed by the simple grammar rules you get in any computer language. (If you want to be more technical, I'm talking about the kind of simple prescriptive grammars that can be defined with BNF.) OWL and CycL also have a syntax that can be defined with simple grammar rules.
Vocabulary is an agreed upon set of terms. There may be an implied connection to the things in the world the terms refer to ("clock" is a device we use to tell time), but it is not required that the terms be interrelated in any way. OWL intentionally has a quite small vocabulary. Vocabularies are handled by a proliferation of OWL ontologies. Electronic Data Interchange (EDI) has a large vocabulary of business terms. Cyc currently has a much smaller business vocabulary that EDI. It is also smaller than the sum of the vocabularies in OWL-based ontologies. Cyc has a very large vocabulary of terms that refer to things in the everyday world.
Ontology is a formal set of statements, built from a vocabulary, and about the things that the vocabulary terms refer to in the world. If we have a vocabulary that includes "dog" and "mammal", an ontology made from that vocabulary would have a statement that the set of all dogs (referred to by the vocabulary term "dog") is a subset of the set of all mammals (referred to by the vocabulary term "animal"). More simply, a dog is a kind of animal.
Finally, semantics (for the purposes of comparing knowledge representation choices) refers to the meanings of statements ("Your mother's brother is your uncle.") expressed in a form suitable for logical manipulation: (implies (and (mother ?X ?M) (brother ?M ?B)) (uncle ?X ?B)). I argue that an important distinction can be made between support for semantics and semantics. OWL has support for semantics (and a small amount of actual semantics involving the language primitives), and every related ontology adds to the actual semantics expressed using OWL. Cyc contains the support for semantics as well as the ontology content that gives it actual semantics. Cyc is compatible with OWL and can extend its semantics the semantics of OWL in the same way that any other ontology can.