Ontologies, if they are to be used for automatic processing in computers, need to be specified formally. There are several languages that are used for expressing ontologies. In this section we summarize some of them. These languages provide means for expressing particular ontology, and often they can be also used for expressing knowledge base based on the ontology.
The formality of the description of ontologies is summarized in the figure below. On the right end of the scale there is a catalog of terms used for expressing knowledge or information. These terms may have no description at all, and they are understood only because they are chosen from the natural language, and their meaning can be only estimated. The description of each term in natural language is better, especially if there are also relations expressed between the terms, such as is-a, part-of, related-to, etc. However, until this description is in natural language, which is not formally defined, we usually do not call such specification ontology.
Levels of expressivity in ontology description
The point, from which we start to talk about ontology, about formal specification of conceptualization, is when at least one formal relation is defined and used between terms. Typically this is formal is-a relation, taxonomies of classes and properties, class-instance relationship, etc. Formal relation means that it is expressed in a formal language and that it is possible to conclude implications that follow from the fact that two terms are connected with the relation. One level higher there are languages that provide set of constructs to describe ontology, such as frames or simplified logics such as description logics. These languages allow to describe classes, instances, and relations between them, and to constrain their intended usage. On the right end of the scale there is a general logical theory, where we can use full logics (such as first or higher order logics, modal logics) to express intended usage of terms that are used in ontology.
The scale in the figure above also expresses the usability of ontologies. The part of informal description is not very usable for automatic processing, at least not when natural language understanding is not available. Of course, the less formal description is used the easier it is to develop an ontology. On the other hand, if we have more formal and expressive description, then such description can be automatically processed, we can better capture the intended meaning, and sharing of ontology is easier. When working with an ontology, we usually want to maintain consistency. However, it is not always possible to maintain completeness and decidability. For example, when using description in first order predicate logic, we cannot guarantee decidability, which can be guaranteed in less expressive description logics. Thus in practical cases one needs to find balance between expressivity and computational properties of the description.
A good general recommendation for choosing ontology modeling language is to choose a formalism that will not limit us during the development of ontology and that will allow us to express all the distinctions that we need. When this description is finished, and the computational properties are not acceptable, then we can use only a subset of the description for some levels of automatic processing. We will see this approach later in this tutorial during the description of layered languages in the semantic web.
In the rest of this section we will briefly describe selected formalisms for ontology modeling and for expressing information and knowledge.