Download (direct link):
Ontology An ontology models the vocabulary and meaning of domains of interest: the objects (things) in domains; the relationships among those things; the properties, functions, and processes involving those things; and constraints on and rules about those things.
Protégé Protégé is an ontology management tool developed and maintained by the Medical Informatics Laboratory at Stanford University based on the OKBC knowledge model and is recognized as an exemplary tool for managing ontologies (http://protege.stanford.edu/).
Table 8.1 (continued)
Resource Definition These are two languages. The first (RDF)
Framework/Schema (RDF/S) expresses instance-level semantic relations
phrased in terms of a triple: <subject, verb, object>, i.e., <objectl, relationl, object2>. The second (RDFS) expresses class-level relations describing acceptable instance-level relations.
OWL Web Ontology Language (sometimes called
Ontology Web Languagea language developed by the W3C's Web Ontology Working Group and intended to be the successor of DAML+OIL. OWL is the most expressive knowledge representation for the Semantic Web so far.
In the next section, we build on the foundation laid in the previous chapter with the discussion on the Ontology Spectrum, and we also try to differentiate an ontology from a thesaurus.
Syntax, Structure, Semantics, and Pragmatics
This section discusses the levels of representation needed for models: syntax, structure, semantics, and pragmatics. This will assist you in understanding ontologies and what they provide to information technology. We will describe each simply and illustrate each with an example. Our intention in this section is to help you understand the following:
■ The critical issues in creating ontologies: what makes one ontology better than another, and what features ontologies (especially those characterized as conceptual models and logical theories) provide and how they provide them — that other models on the Ontology Spectrum do not and cannot.
■ The importance of ontologies from the perspective of an information technology manager or technical lead who must address emerging Semantic Web technologies for incorporation into the systems and practices of your company's infrastructure and their impact on your information strategies for the future.
Syntax is usually identified with form, format, and structure, and that is how we will portray it here. More formally, every language has a syntax and a semantics: Cobol, Fortran, C, Java, English, Chinese, SQL, XML, RDF, and OWL. A language can be considered a formal system that has an alphabet or a vocabulary set (or both), a set of rules for defining how the alphabet and vocabulary can be combined into legitimate statements or sentences in the language, and then a semantics for the alphabet, the vocabulary, and the statements/sentences. We will talk about syntax first in order to lead up to the discussion on semantics (and pragmatics).
We are all probably very familiar with the syntax of programming languages and database languages, so the discussion will focus primarily on these. A programming language, just like a natural language like English, has a formal syntax. Think of the C or Java programming languages. When you learn C, a large part of what you learn is the syntax of the C programming language—for instance, that #include statements go before other programming statements near the beginning of the file, that a FOR loop has a certain number of components (a count, index, or boolean variable that has an initial value, possibly gets incremented or has its value changed during the execution of the program, and a check of the variable's value to determine whether exiting of the loop is required). These components must be present in a particular order.
Furthermore, the components must obey certain simple typing constraints. For example, if a variable is declared to be of type Integer, then the only possible value for that variable is an integer (or possibly some other value that is coerced into an integer). There may also be restrictions on the length of user-defined variable names. The operators (numeric operators such as + or boolean exclusive OR) and object accessors (if the language is an object-oriented language such as C++ or Java) are either reserved symbols or words in the programming language and have their own required syntax.
So syntax is about order and format. If the program you develop is syntactically correct, then the compiler—which initially parses and confirms the syntax—will not generate warning or error messages. Once all the syntactic errors (errors in formatting, order, and simple typing) are corrected, then the compiler will continue the rest of its work, creating symbol tables, transformations, and optimizations of the code—in other words, begin to deal with at least the rudimentary semantics of the program. It remains rudimentary because the compiler will not know how you intend the particular logical flow of programming to be and what you mean by it, which is why these kinds of semantic programming errors are sometimes called logical errors. Currently, it