Revision as of 01:31, 25 March 2006 editDbtfz (talk | contribs)5,475 editsm →See also: alphabetize links← Previous edit | Revision as of 00:59, 26 March 2006 edit undoGwernol (talk | contribs)94,742 edits →Relationships: Use imageNext edit → | ||
(9 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
* '''relations''': models of how concepts and characteristics related to one another (also known as ''functions'') | * '''relations''': models of how concepts and characteristics related to one another (also known as ''functions'') | ||
Although the term "ontology" derives from its ] it has a separate and specific meaning in the field of computer science. | Although the term "ontology" derives from its ] it has a separate and specific meaning in the field of computer science. | ||
==Types of ontology== | ==Types of ontology== | ||
Line 28: | Line 28: | ||
Ontologies are commonly used in ] and ]. ]s can use an ontology for a variety of purposes including ], ], a variety of ] techniques, and to facilitate communication and sharing of information between different systems. | Ontologies are commonly used in ] and ]. ]s can use an ontology for a variety of purposes including ], ], a variety of ] techniques, and to facilitate communication and sharing of information between different systems. | ||
Ontologies are a major piece of the ] framework. The ontology's ability to both classify data, and store ] about the data allows a computer (in this situation referred to as a ]) to ] new knowledge from the knowledge stored. | Ontologies are a major piece of the ] framework. The ontology's ability to both classify data, and store ] about the data allows a computer (in this situation referred to as a ]) to ] new knowledge from the knowledge stored. | ||
] allow the computer to infer information from a larger domain of knowledge than usual. | ] allow the computer to infer information from a larger domain of knowledge than usual. | ||
Line 34: | Line 34: | ||
==Anatomy of an ontology== | ==Anatomy of an ontology== | ||
Contemporary ontologies share many structural similarities, regardless of which ontology language |
Contemporary ontologies share many structural similarities, regardless of which ontology language and therefore syntax is used. | ||
Ontologies are knowledge stores, they do not nothing on their own. In practice an ontology is always closely associated with one or more software systems that process the knowledge it contains and produces useful results. | |||
Ontologies 'do' nothing. The functionality of a computational system that utilises an ontology is dependent not only on the structure of and data within the ontology, but also on the software implementation. For example, an ontology can support the creation of concept partitions. This functionality may not however be easily accessible to the user if their software does not provide an interface to it. | |||
===Concepts=== | ===Concepts=== | ||
] are the basic objects stored in an ontology. Concepts can represent real or fictitious entities, tasks, reasoning processes, functions or anything else in the domain(s) being modeled. Concepts can be concrete or abstract: | |||
* '''concrete objects''' (also known as ''leaf node'' objects) are the actual items from the domain. For example, in the domain of ] the ] is a concrete object - you can go out and buy a Ford Explorer. | |||
''Read more:'' ] | |||
* '''abstract objects''' (also known as ''classes'' or ''categories'') are sets of objects that share a common feature. For example "4-wheel drive" is the class of cars that have power to all four wheels. The Ford Explorer is a concrete object that is a member of this abstract class. | |||
===Partition=== | |||
⚫ | ===Attributes=== | ||
A group of related concepts about which rules can be created and applied is called a ''partition''. | |||
Concept are described by assigning attributes to them. Each attribute has at least a name and a value, and is used to store information that is specific to object it is attached to. For example the Ford Explorer object has attributes such as: | |||
For example... | |||
* ''Name'': Ford Explorer | |||
Vehicle | |||
* ''Number-of-doors'': 4 | |||
| | |||
* ''Engine'': {4.0L, 4.6L} | |||
----------------------- | |||
* ''Transmission'': 6-speed | |||
| | | |||
2-Wheel Drive 4-Wheel Drive | |||
The value of an attribute can be a complex ]; in this example, the value of the attribute called ''Engine'' is a list of values, not just a single value. | |||
The two sub-classes of 'Vehicle' could be partitioned and a rule applied to ensure that an instance of 'Car' cannot be an instance of both '2-wheel Drive' and '4-Wheel Drive'. this is called a '''Disjoint Partition'''. | |||
⚫ | If you did not define attributes for the concepts you would have either a ] (if concept relationships are described) or a '''Controlled Vocabulary'''. These are useful, but are not considered true ontologies. | ||
Another common use of a partition is to state that an instance of a concept must be an instance of one of the partitioned sub-concepts. This is an '''Exhaustive Partition'''. | |||
=== |
===Partition=== | ||
A '''partition''' is a set of related classes and associated rules that allow objects to be placed into the appropriate class. For example, this partial diagram of an ontology has a partition of the Car class into the classes 2-Wheel Drive and 4-Wheel Drive: | |||
Every concept within an ontology can be described by assigning attributes. Attributes allow more complex relations to be modelled using the ontology. | |||
⚫ | |||
] | |||
*Instance Attributes - | |||
⚫ | |||
*Local Attributes - | |||
*Global Attributes - | |||
The partition rule determines if a particular car is placed in the 2-Wheel Drive or the 4-Wheel Drive class. | |||
⚫ | ==Relationships |
||
If the partition rule(s) guarantee that a single Car object cannot be in both classes, then the partition is called a '''Disjoint Partition'''. If the partition rules ensure that every concrete object in the super-class is an instance of at least one of the partition classes, then the partition is called an '''Exhaustive Partition'''. | |||
Although the term 'ontology' has been used very loosely to label almost any conceptual classification scheme, among practising computational ontologists, a true ontology should, in addition to the ] relation ('']'', ''is subtype of'' or ''is subclass of'', ''has ]''), also describe entities by other '] relations' that specify how one concept is related to another. | |||
⚫ | ===Relationships=== | ||
The most common of the semantic relations other than subsumption is the ]. In one formal notation, one might see a relation such as (isPartOf Spine Vertebrate), meaning that a ']' (in that specific sense) is part of a ]. The ontologies are organized by concepts, not words, so that the concept 'spine' referring to the spine of a book would have to be labeled by a different term, such as 'BookSpine'. | |||
An important use of attributes is to describe the relationships (also known as relations) between objects in the ontology. Typically a relation is an attribute whose value is another object in the ontology. For example in the ontology that contains the Ford Explorer and the ], the Ford Bronco object might have the following attribute: | |||
Good ontologies are a necessary prerequisite for establishing the Semantic Web. | |||
Read more: ] | |||
* ''Successor'': Ford Explorer | |||
==Taxonomies and the 'directed acyclic graph'== | |||
This tells us that the Explorer is the model that replaced the Bronco. Much of the power of ontologies comes from the ability to describe these relations. Together, the set of relations describes the ] of the domain. | |||
Once conceptual entities have been described, the result is more accurately described as a 'controlled vocabulary' or even a ']'. It is obviously necessary to convey the relationships between entities if we are to accurately 'conceptualise' our domain of interest. | |||
The most important type of relation is the ] relation (written as '']'', ''is-subtype-of'' or ''is-subclass-of''). This defines which objects are members of classes of objects. For example we have already seen that the Ford Explorer ''is-a'' 4-wheel drive, which in turn ''is-a'' Car: | |||
The two most common relationships ('is a' & 'part of') are described below. | |||
] | |||
⚫ | The addition of |
||
⚫ | The addition of the is-a relationships has created a hierarchical ]; a tree-like structure that clearly depicts how objects relate to one another. In such a structure, each object is the 'child' of a 'parent class.' (Some languages restrict the is-a relationship to one parent for all nodes, but many do not) | ||
Class A | |||
| | |||
------------------------------------------- | |||
| | | |||
Sub-Class B Sub-Class C | |||
| | | |||
---------------------- ----------------------- | |||
| | | | | |||
Sub-Sub-Class D Sub-Sub-Class E Sub-Sub-Class F Sub-Sub-Class G | |||
Another common type of relations is the ] relation (written as ''part-of'') that represents how objects combine together to form composite objects. For example, if we extended our example ontology to include objects like Steering Wheel, we would say that "Steering Wheel is-part-of Ford Explorer" since a steering wheel is one of the components of a Ford Explorer. | |||
If we introduce 'part of' relationships to our ontology, we find that this simple and elegant tree structure quickly becomes complex and significantly more difficult to interpret manually. | |||
It is not difficult to understand why; an entity that is described as 'part of' another entity might also be 'part of' a third entity. Consequently, entities may have more than one parent. The structure that emerges is known as a ] (DAG). | If we introduce part-of relationships to our ontology, we find that this simple and elegant tree structure quickly becomes complex and significantly more difficult to interpret manually. It is not difficult to understand why; an entity that is described as 'part of' another entity might also be 'part of' a third entity. Consequently, entities may have more than one parent. The structure that emerges is known as a ] (DAG). | ||
As well as the standard is-a and part-of relations, ontologies often include additional types of relation that further refine the semantics they model. These relations are often domain-specific and are used to answer particular types of question. | |||
⚫ | == Ontology languages == | ||
For example in the domain of automobiles, we might define a ''made-in'' relationship which tells us where each car is built. So the Ford Explorer is ''made-in'' ]. The ontology may also know that Louisville is-in ] and Kentucky is-a state of the ]. Software using this ontology could now answer a question like "which cars are made in America?" | |||
To be useful, ontologies must be expressed in a concrete notation. An '''ontology language''' is a ] by which an ontology is built. | |||
⚫ | == Ontology languages == | ||
An '''ontology language''' is a ] used to encode the ontology. There are a number of such languages for ontologies, both proprietary and standards-based: | |||
* The ] project has its own ontology language called ], based on ] with some higher-order extensions. | * The ] project has its own ontology language called ], based on ] with some higher-order extensions. | ||
Line 122: | Line 110: | ||
== See also == | == See also == | ||
* ] | |||
* ] | * ] | ||
* ] | * ] |
Revision as of 00:59, 26 March 2006
In computer science an ontology is a data model that represents a domain and is used to reason about the objects in that domain and the relations between them.
Ontologies are used in computer science, artificial intelligence, the semantic web, and software engineering as a form of knowledge representation about the world or some part of it. Ontologies are generally made up of:
- concepts: objects and sets of objects (also known as classes or categories)
- characteristics: the attributes of objects (also known as slots, roles, or properties)
- relations: models of how concepts and characteristics related to one another (also known as functions)
Although the term "ontology" derives from its philosophical origin it has a separate and specific meaning in the field of computer science.
Types of ontology
Domain ontologies and foundation ontologies
A domain ontology (also known as a domain-specific ontology) models a specific domain, or part of the world. It represents the particular meanings of terms as they apply to that domain. For example the word "card" has many different meanings. An ontology about the domain of poker would model the "playing card" meaning of the word; an ontology about the domain of computer hardware would model the "punch card" and "video card" meanings.
A foundation ontology (also known as an upper ontology) is a model of the common objects that are generally applicable across a wide range of domain ontologies. It contains a core glossary in whose terms objects in a set of domains can be described. There are several standardized foundation ontologies available for use, the best known being the Dublin Core which is expressed in SGML.
Strong versus weak ontologies
Ontologies are described as stronger or weaker depending on the ability of a computer to process them. A paragraph of written text could technically be defined as a weak ontology as it contains knowledge about the world, however it is challenging for a computer to extract and process that data. An ontology defined in a formal ontology language such as OWL is a strong ontology, as a computer can understand the complete meaning (or semantics) of the ontology. A strong ontology is completely machine-readable.
Merging domain ontologies
Because each domain ontology represents a specific meanings of its set of terms, they are inherently incompatible with other domain ontologies. As systems that rely on domain ontologies expand they often need to merge domain ontologies into a more general representation. This presents a challenge to the ontology engineer. Different ontologies in the same domain can also be due to different perceptions of the domain due to cultural background, education, ideology, or because a different representation language was chosen.
Merging ontologies is currently a largely manual process and therefore time consuming and expensive. Using a foundation ontology to provide a common definition of core terms can make this process manageable. There are studies on generalized techniques for merging ontologies (computer science) although these are still in a largely theoretical state.
Uses for ontologies
Ontologies are commonly used in artificial intelligence and expert systems. Computer programs can use an ontology for a variety of purposes including inductive reasoning, classification, a variety of problem solving techniques, and to facilitate communication and sharing of information between different systems.
Ontologies are a major piece of the Semantic Web framework. The ontology's ability to both classify data, and store reasoning rules about the data allows a computer (in this situation referred to as a user agent) to infer new knowledge from the knowledge stored.
Upper ontologies allow the computer to infer information from a larger domain of knowledge than usual.
Anatomy of an ontology
Contemporary ontologies share many structural similarities, regardless of which ontology language and therefore syntax is used.
Ontologies are knowledge stores, they do not nothing on their own. In practice an ontology is always closely associated with one or more software systems that process the knowledge it contains and produces useful results.
Concepts
Concepts are the basic objects stored in an ontology. Concepts can represent real or fictitious entities, tasks, reasoning processes, functions or anything else in the domain(s) being modeled. Concepts can be concrete or abstract:
- concrete objects (also known as leaf node objects) are the actual items from the domain. For example, in the domain of automobiles the Ford Explorer is a concrete object - you can go out and buy a Ford Explorer.
- abstract objects (also known as classes or categories) are sets of objects that share a common feature. For example "4-wheel drive" is the class of cars that have power to all four wheels. The Ford Explorer is a concrete object that is a member of this abstract class.
Attributes
Concept are described by assigning attributes to them. Each attribute has at least a name and a value, and is used to store information that is specific to object it is attached to. For example the Ford Explorer object has attributes such as:
- Name: Ford Explorer
- Number-of-doors: 4
- Engine: {4.0L, 4.6L}
- Transmission: 6-speed
The value of an attribute can be a complex data type; in this example, the value of the attribute called Engine is a list of values, not just a single value.
If you did not define attributes for the concepts you would have either a taxonomy (if concept relationships are described) or a Controlled Vocabulary. These are useful, but are not considered true ontologies.
Partition
A partition is a set of related classes and associated rules that allow objects to be placed into the appropriate class. For example, this partial diagram of an ontology has a partition of the Car class into the classes 2-Wheel Drive and 4-Wheel Drive:
The partition rule determines if a particular car is placed in the 2-Wheel Drive or the 4-Wheel Drive class.
If the partition rule(s) guarantee that a single Car object cannot be in both classes, then the partition is called a Disjoint Partition. If the partition rules ensure that every concrete object in the super-class is an instance of at least one of the partition classes, then the partition is called an Exhaustive Partition.
Relationships
An important use of attributes is to describe the relationships (also known as relations) between objects in the ontology. Typically a relation is an attribute whose value is another object in the ontology. For example in the ontology that contains the Ford Explorer and the Ford Bronco, the Ford Bronco object might have the following attribute:
- Successor: Ford Explorer
This tells us that the Explorer is the model that replaced the Bronco. Much of the power of ontologies comes from the ability to describe these relations. Together, the set of relations describes the semantics of the domain.
The most important type of relation is the subsumption relation (written as is-a, is-subtype-of or is-subclass-of). This defines which objects are members of classes of objects. For example we have already seen that the Ford Explorer is-a 4-wheel drive, which in turn is-a Car:
The addition of the is-a relationships has created a hierarchical taxonomy; a tree-like structure that clearly depicts how objects relate to one another. In such a structure, each object is the 'child' of a 'parent class.' (Some languages restrict the is-a relationship to one parent for all nodes, but many do not)
Another common type of relations is the Meronymy relation (written as part-of) that represents how objects combine together to form composite objects. For example, if we extended our example ontology to include objects like Steering Wheel, we would say that "Steering Wheel is-part-of Ford Explorer" since a steering wheel is one of the components of a Ford Explorer.
If we introduce part-of relationships to our ontology, we find that this simple and elegant tree structure quickly becomes complex and significantly more difficult to interpret manually. It is not difficult to understand why; an entity that is described as 'part of' another entity might also be 'part of' a third entity. Consequently, entities may have more than one parent. The structure that emerges is known as a Directed Acyclic Graph (DAG).
As well as the standard is-a and part-of relations, ontologies often include additional types of relation that further refine the semantics they model. These relations are often domain-specific and are used to answer particular types of question.
For example in the domain of automobiles, we might define a made-in relationship which tells us where each car is built. So the Ford Explorer is made-in Louisville. The ontology may also know that Louisville is-in Kentucky and Kentucky is-a state of the USA. Software using this ontology could now answer a question like "which cars are made in America?"
Ontology languages
An ontology language is a formal language used to encode the ontology. There are a number of such languages for ontologies, both proprietary and standards-based:
- The Cyc project has its own ontology language called CycL, based on first-order predicate calculus with some higher-order extensions.
- KIF was created to serve as a syntax for first order logic that is easy for computers to process.
- OWL is a language for making ontological statements, developed as a follow-on from RDF and RDFS, as well as earlier ontology language projects including OIL, DAML and DAML+OIL.
Examples of ontologies
- Cyc for formal representation of the universe of discourse.
- Suggested Upper Merged Ontology, which is a formal upper ontology
- WordNet Lexical reference system
- Gene Ontology for genomics
- Plant Ontology for plant structures and growth strategies, etc.
- CIDOC CRM (Conceptual Reference Model) - an ontology for "cultural heritage information".
See also : A list of ontology languages
See also
- Classification
- First-order logic
- Foundation Ontology
- Frame language
- Heterogeneous Database System
- Knowledge base
- Second-order logic
- Topic map
- Upper ontology (computer science)
- Info about rules in ontologies: theorems and regulations
External links
- What is ontology?
- What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model?
- Clay Shirky: Ontology is Overrated
- Ontolog (a.k.a. Ontolog Forum) - an open, international, virtual community of practice working on the application and adoption of ontological engineering and semantic technologies
- protégé an open source ontology editor and knowledge framework with example ontologies
- Barry Smith's Ontology Page
- Buffalo Ontology Site
- National Center for Ontological Research
- National Center for Biomedical Ontology