Revision as of 01:30, 25 March 2006 editDbtfz (talk | contribs)5,475 editsm →Ontology languages: rephrase, punct.← Previous edit | Revision as of 01:31, 25 March 2006 edit undoDbtfz (talk | contribs)5,475 editsm →See also: alphabetize linksNext edit → | ||
Line 122: | Line 122: | ||
== See also == | == See also == | ||
⚫ | * ] | ||
⚫ | * ] | ||
* ] | |||
⚫ | * ] | ||
⚫ | * ] | ||
* ] | * ] | ||
* ] | * ] | ||
⚫ | * ] | ||
⚫ | * ] | ||
* ] | * ] | ||
⚫ | * ] | ||
* ] | * ] | ||
⚫ | * ] | ||
⚫ | * ] | ||
⚫ | * ] | ||
* ] | |||
* Info about rules in ontologies: ]s and ]s | * Info about rules in ontologies: ]s and ]s | ||
Revision as of 01:31, 25 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 philisophical 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. This section explains in simple, succinct terms many common features of ontologies.
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
In the context of an ontology a concept is anything about which something can be said. It may be a real entity, or fictitious. It may be concrete or abstract, a task, a reasoning process, a function etc.
Read more: concept
Partition
A group of related concepts about which rules can be created and applied is called a partition.
For example...
Vehicle | ----------------------- | | 2-Wheel Drive 4-Wheel Drive
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.
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.
Attributes
Every concept within an ontology can be described by assigning attributes. Attributes allow more complex relations to be modelled using the ontology. Consider an ontology that does not define attributes for its concepts; this would simply be a taxonomy (if concept relationships are described) or a Controlled Vocabulary. These are useful, but might not be considered true ontologies.
- Instance Attributes -
- Class Attributes -
- Local Attributes -
- Global Attributes -
Relationships in ontologies
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 subsumption relation (is a, is subtype of or is subclass of, has hypernym), also describe entities by other 'semantic relations' that specify how one concept is related to another.
The most common of the semantic relations other than subsumption is the part-of relation. In one formal notation, one might see a relation such as (isPartOf Spine Vertebrate), meaning that a 'Spine' (in that specific sense) is part of a Vertebrate. 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'.
Good ontologies are a necessary prerequisite for establishing the Semantic Web. Read more: Semantic Web
Taxonomies and the 'directed acyclic graph'
Once conceptual entities have been described, the result is more accurately described as a 'controlled vocabulary' or even a 'glossary'. It is obviously necessary to convey the relationships between entities if we are to accurately 'conceptualise' our domain of interest.
The two most common relationships ('is a' & 'part of') are described below.
The addition of 'is a' relationships creates a 'linear' taxonomy; a tree-like structure that clearly depicts how entities relate to one another. In such a structure, each entity 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
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).
Ontology languages
To be useful, ontologies must be expressed in a concrete notation. An ontology language is a formal language by which an ontology is built.
There have been a number of data 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
- Application Programming Interface
- 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