Professional Documents
Culture Documents
2 What is in an ontology?
The Artificial-Intelligence literature contains many definitions of an ontology; many of these contradict one another. For
the purposes of this guide an ontology is a formal explicit description of concepts in a domain of discourse (classes
(sometimes called concepts)), properties of each concept describing various features and attributes of the concept (slots
(sometimes called roles or properties)), and restrictions on slots (facets (sometimes called role restrictions)). An ontology
together with a set of individual instances of classes constitutes a knowledge base. In reality, there is a fine line where the
ontology ends and the knowledge base begins.
Classes are the focus of most ontologies. Classes describe concepts in the domain. For example, a class of wines represents
all wines. Specific wines are instances of this class. The Bordeaux wine in the glass in front of you while you read this
document is an instance of the class of Bordeaux wines. A class can have subclasses that represent concepts that are more
specific than the superclass. For example, we can divide the class of all wines into red, white, and rosé wines. Alternatively,
we can divide a class of all wines into sparkling and non-sparkling wines.
Slots describe properties of classes and instances: Château Lafite Rothschild Pauillac wine has a full body;
it is produced by the Château Lafite Rothschild winery. We have two slots describing the wine in this example:
the slot body with the value full and the slot maker with the value Château Lafite Rothschild winery. At the class
level, we can say that instances of the class Wine will have slots describing their flavor, body, sugar level, the
maker of the wine and so on.[1]
All instances of the class Wine, and its subclass Pauillac, have a slot maker the value of which is an instance of the class
Winery (Error! Reference source not found.). All instances of the class Winery have a slot produces that refers to all
the wines (instances of the class Wine and its subclasses) that the winery produces.
In practical terms, developing an ontology includes:
defining classes in the ontology,
arranging the classes in a taxonomic (subclass–superclass) hierarchy,
defining slots and describing allowed values for these slots,
filling in the values for slots for instances.
We can then create a knowledge base by defining individual instances of these classes filling in specific slot value
information and additional slot restrictions.
Figure 1. Some classes, instances, and relations among them in the wine domain. We used black for
classes and red for instances. Direct links represent slots and internal links such as instance-of and
subclass-of.
Error! Reference source not found.shows a definition of the slotproducesat the classWinery.
Figure4. The definition of aslotproducesthat describes the wines produced by a winery. The slot has
cardinality multiple, valuetype Instance, and the classWineas the allowed class for its values.
Suppose now that we list all types of wines as direct subclasses of theWineclass. This list would then include such
more general types of wine as Beaujolais andBordeaux, as well as more specific types such as Paulliac and Margaux
(Error! Reference source not found.a). The classWinehas too many direct subclasses and, indeed, for the
ontology to reflect the differenttypes of wine in a more organized manner,Medocshould be a subclass
ofBordeauxandCotesd’Orshould be a subclass ofBurgundy.Also having such intermediate categories
asRedwineandWhitewinewould also reflect the conceptual model of the domain of wines thatmany people have
(Error! Reference source not found.b).
However, if no natural classes exist to group concepts in the long list of siblings,there is no need to
create artificial classes—just leave the classes the way theyare. After all, the ontology is a reflection of
the real world, and if no categorizationexists in the real world, then the ontology should reflect that.
Figure7. Categorizing wines.Having all the wines and types of wine versus having several levels of
categorization.
4.3 Multipleinheritance
Most knowledge-representation systems allowmultiple inheritancein the class hierarchy: aclass can be a subclass
of several classes. Suppose we would like to create a separateclass of dessert wines, theDessertwineclass. The
Port wine is both a red wine and a dessert wine.[4]Therefore, we define a classPortto have two
superclasses:RedwineandDessertwine. All instances of thePortclass will be instances of both
theRedwineclass and theDessertwineclass. ThePortclass will inherit its slots and their facets from both its
parents. Thus, it will inheritthe value SWEET for the slotSugarfrom theDessertwineclass and
thetanninlevelslot and the value for its color slot from theRedwineclass.
The same class hierarchy would be incorrect if we omitted the word“region” from the class names. We cannot say
that the classAlsaceis a subclass of the classFrance:Alsace is not a kind of France. However, Alsace region is
a kind of a French region.
Only classes can be arranged in a hierarchy—knowledge-representationsystems do not have a notion of sub-
instance. Therefore, if there is a natural hierarchyamong terms, such as in terminological hierarchies from
SectionError! Reference source not found., we should definethese terms as classes even though they may not
have any instances of their own.
4.8 Disjointsubclasses
Many systems allow us to specify explicitly that several classes aredisjoint. Classes are disjoint if they cannot
haveany instances in common. For example, theDessertwineand theWhitewine classes in our
ontologyarenotdisjoint: there are many wines that areinstances of both.
TheRothermelTrochenbierenauslese Rieslinginstance of theSweetRieslingclass is one such
example. At the same time, theRedwineand theWhitewineclasses are disjoint: no wine can be simultaneously
red and white.Specifying that classes are disjoint enablesthe system to validate the ontology better. If we declare
theRedwineand theWhitewineclasses to be disjoint and later create a class that is a subclass ofbothRiesling(a
subclass ofWhitewine) andPort(a subclass ofRedwine), a system can indicate that there is a modeling error.
5.1 Inverseslots
A value of a slot may depend on a value of another slot. For example, if awinewasproducedbyawinery,then
thewineryproducesthatwine.These two relations,makerandproduces,are calledinverse relations. Storing
theinformation “in both directions” is redundant. When we know that a wine isproduced by a winery, an application
using the knowledge base can always infer the valuefor the inverse relation that the winery produces the wine.
However, from theknowledge-acquisition perspective it is convenient to have both pieces of informationexplicitly
available. This approach allows users to fill in the wine in one case and thewinery in another.. The knowledge-
acquisition system could then automatically fill in thevalue for the inverse relation insuring consistency of the
knowledge base.
Our example has a pair of inverseslots: themakerslot of theWineclass and theproducesslot of theWineryclass.
When a user creates an instance of theWineclass and fills in the value for themakerslot, the system automatically
adds the newly created instance to theproducesslot of the correspondingWineryinstance. For instance, when we
say that Sterling Merlot is produced by the SterlingVineyard winery, the system would automatically add Sterling
Merlot to the list of winesthat the Sterling Vineyard winery produces. (Error! Reference source not found.).
Figure9. Instances with inverseslots. The slotproducesfor the classWineryis an inverse of the slot
makerfor the classWine.Filling in one of the slots triggers an automatic update of the other.
5.2 Defaultvalues
Many frame-based systems allow specification of default values for slots. If a particular slot value is the same for
mostinstances of a class, we can define this value to be adefaultvaluefor the slot. Then, when each new instance of
a class containing this slot is created, thesystem fills in the default value automatically. We can then change the
value to any othervalue that the facets will allow. That is, default values are there for convenience: theydo not
enforce any new restrictions on the model or change the model in any way.
For example, if the majority of wines we are going to discuss arefull-bodied wines, we can have “full” as a default
value for the body of thewine. Then, unless we say otherwise, all wines we define would be full-bodied.
Note that this is different fromslot values. Slot values cannot be changed. For example, we can say that the
slotsugarhas value SWEET for theDessertwineclass. Then all the subclasses and instances of
theDessertwineclass will have the SWEET value for the slotsugar.This value cannot be changed in any of the
subclasses or instances of the class.
6 What’s in a name?
Defining naming conventions for concepts in an ontology and then strictlyadhering to these conventions not only
makes the ontology easier to understand but alsohelps avoid some common modeling mistakes. There are many
alternatives in naming concepts.Often there is no particular reason to choose one or another alternative. However,
we needto
Define a naming convention for classes and slots and adhere to it.
The following features of a knowledge representation system affect thechoice of naming conventions:
Does the system have the same name space for classes, slots, and instances?That is, does the system allow
having a class and a slot with the same name (such as aclasswineryand a slotwinery)?
Is the system case-sensitive? That is, does the system treat the names thatdiffer only in case as different
names (such asWineryandwinery)?
What delimiters does the system allow in the names? That is, can namescontain spaces, commas, asterisks,
and so on?
Protégé-2000, for example, maintains a single name space for all itsframes. It is case-sensitive. Thus, we cannot
have a classwineryand a slotwinery.We can, however, have a classWinery(not the upper-case) and a
slotwinery.CLASSIC, on the other hand, is not case sensitive and maintains different name spaces forclasses,
slots, and individuals. Thus, from a system perspective, there is no problem innaming both a class and a
slotWinery.
7 Other Resources
We have used Protégé-2000 as an ontology-developing environment for ourexamples. Duineveld and
colleagues(Duineveld et al. 2000)describe and compare a number of other ontology-development environments.
We have tried to address the very basics of ontology development and havenot discussed many of the advanced
topics or alternative methodologies for ontologydevelopment. Gómez-Pérez(Gómez-Pérez
1998)andUschold(Uschold and Gruninger 1996)present alternative ontology-development methodologies. The
Ontolingua tutorial(Farquhar 1997)discussessome formal aspects of knowledge modeling.
Currently, researchers emphasize not only ontology development, but alsoontology analysis. As more ontologies
aregenerated and reused, more tools will be available to analyze ontologies. For example,Chimaera (McGuinness
et al. 2000)provides diagnostic tools for analyzing ontologies. The analysis that Chimaera performsincludes both
a check for logical correctness of an ontology and diagnostics of commonontology-design errors. An ontology
designer may want to run Chimaera diagnostics over theevolving ontology to determine the conformance to
common ontology-modeling practices.
8 Conclusions
In this guide, we have described an ontology-development methodology fordeclarative frame-based systems. We
listed the steps in the ontology-development processand addressed the complex issues of defining class hierarchies
and properties of classesand instances. However, after following all the rules and suggestions, one of the
mostimportant things to remember is the following:thereis no single correct ontology for any domain. Ontology
design is a creative processand no two ontologies designed by different people would be the same. The
potentialapplications of the ontology and the designer’s understanding and view of the domainwill undoubtedly
affect ontology design choices. “The proof is in thepudding”—we can assess the quality of our ontology only by
using it inapplications for which we designed it.
Acknowledgments
Protégé-2000 (http://protege.stanford.edu)was developed by Mark Musen’s group at Stanford Medical Informatics.
We generatedsome of the figures with the OntoViz plugin to Protégé-2000. We imported the initialversion of the
wine ontology from the Ontolingua ontology library (http://www.ksl.stanford.edu/software/ontolingua/)which in
turn used a version published by Brachman and colleagues(Brachman et al. 1991)anddistributed with the
CLASSIC knowledge representation system. We then modified theontology to present conceptual-modeling
principles for declarative frame-based ontologies.Ray Fergerson’s and Mor Peleg’s extensive comments on earlier
drafts greatlyimproved this paper.
References
Booch, G., Rumbaugh, J. and Jacobson, I. (1997).The Unified Modeling Language user guide:Addison-Wesley.
Brachman, R.J., McGuinness, D.L., Patel-Schneider, P.F., Resnick,L.A. and Borgida, A. (1991). Living with
CLASSIC: When and how to use KL-ONE-likelanguage.Principles of Semantic Networks. J. F.Sowa, editor,
Morgan Kaufmann:401-456.
Brickley, D. and Guha, R.V. (1999). Resource Description Framework(RDF) Schema Specification. Proposed
Recommendation, World Wide Web Consortium:http://www.w3.org/TR/PR-rdf-schema.
Chimaera (2000). Chimaera Ontology Environment.www.ksl.stanford.edu/software/chimaera
Duineveld, A.J., Stoter, R., Weiden,M.R., Kenepa, B. and Benjamins,V.R. (2000). WonderTools? A comparative
study of ontological engineering tools.International Journal of Human-Computer Studies52(6): 1111-1133.
Farquhar, A. (1997). Ontolingua tutorial.http://ksl-web.stanford.edu/people/axf/tutorial.pdf
Gómez-Pérez, A. (1998). Knowledge sharing and reuse.Handbook of Applied Expert Systems. Liebowitz,editor,
CRC Press.
Gruber, T.R. (1993). A Translation Approach to Portable OntologySpecification.Knowledge Acquisition5: 199-
220.
Gruninger, M. and Fox, M.S. (1995). Methodology for the Design andEvaluation of Ontologies. In:Proceedings
of theWorkshop on Basic Ontological Issues in Knowledge Sharing, IJCAI-95, Montreal.
Hendler, J. and McGuinness, D.L. (2000). The DARPA Agent MarkupLanguage.IEEE Intelligent Systems16(6):
67-73.
Humphreys, B.L. and Lindberg, D.A.B. (1993). The UMLS project: makingthe conceptual connection between
users and the information they need.Bulletin of the Medical Library Association81(2): 170.
McGuinness, D.L., Abrahams, M.K., Resnick, L.A., Patel-Schneider,P.F., Thomason, R.H., Cavalli-Sforza, V.
and Conati, C. (1994). Classic KnowledgeRepresentation System Tutorial.http://www.bell-
labs.com/project/classic/papers/ClassTut/ClassTut.html
McGuinness, D.L., Fikes, R., Rice, J. and Wilder, S. (2000). AnEnvironment for Merging and Testing Large
Ontologies.Principles of Knowledge Representation andReasoning: Proceedings of the Seventh International
Conference (KR2000). A. G. Cohn,F. Giunchiglia and B. Selman, editors. San Francisco, CA, Morgan Kaufmann
Publishers.
McGuinness, D.L. and Wright, J. (1998). Conceptual Modeling forConfiguration: A Description Logic-based
Approach.Artificial Intelligence for Engineering Design,Analysis, and Manufacturing - special issue on
Configuration.
Musen, M.A. (1992). Dimensions of knowledge sharing and reuse.Computers and Biomedical Research25: 435-
467.
Ontolingua (1997). Ontolingua System Reference Manual.http://www-ksl-svc.stanford.edu:5915/doc/frame-
editor/index.html
Price, C. and Spackman, K. (2000). SNOMED clinical terms.BJHC&IM-British Journal of Healthcare
Computing&Information Management17(3): 27-31.
Protege (2000). The Protege Project. http://protege.stanford.edu
Rosch, E. (1978). Principles of Categorization.Cognition and Categorization. R. E. and B. B.Lloyd, editors.
Hillside, NJ, Lawrence Erlbaum Publishers:27-48.
Rothenfluh, T.R., Gennari, J.H., Eriksson, H., Puerta, A.R., Tu, S.W.and Musen, M.A. (1996). Reusable
ontologies, knowledge-acquisition tools, and performancesystems: PROTÉGÉ-II solutions toSisyphus-
2.International Journal of Human-ComputerStudies44: 303-332.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and Lorensen, W.(1991).Object-oriented modeling and
design.Englewood Cliffs, New Jersey: Prentice Hall.
Uschold, M. and Gruninger, M. (1996). Ontologies: Principles, Methodsand Applications.Knowledge Engineering
Review11(2).
[1]
We capitalize class names and start slot names with low-case letters. We also use typewriter font for all terms from
the example ontology.
[2]
We can also view classes as unary predicates—questions that have one argument. For example, “Is this object a wine?”
Unary predicates (or classes) contrast with binary predicates (or slots)—questions that have two arguments. For example, “Is
the flavor of this object strong?” “What is the flavor of this object?”
[3]
Some systems just specify value type with a class instead of requiring a special statement of instance type slots.
[4]
We chose to represent only red Ports in our ontology: white Ports do exist but they are extremely uncommon.
[5]
Here we assume that each anatomical organ is a class since we would also like to talk about “John’s 1 st left rib.” Individual
organs of existing people would be represented as individuals in our ontology.