(http://www.w3.org/TR/owl-guide/)
The OWL Web Ontologoy Language is a language for defining and instantiating Web ontologies. Ontology is a term borrowed from philosophy that refers to the science of describing the kinds of entities in the world and how they are related.
An OWL ontology may include descriptions of classes, properties and their instances.
In addition, OWL makes an open world assumption. That is, descriptions of resources are not confined to a single file or scope. While class C1 may be defined originally in ontology O1, it can be extended in other ontologies. The consequences of these additional propositions about C1 are monotonic. New information cannot retract previous information. New information can be contradictory, but facts and entailments can only be added, never deleted.
A class definition has two parts: a name introduction or reference and a list of restrictions. Each of the immediate contained expressions in the class definition further restricts the instances of the defined class. Instances of the class belong to the intersection of the restrictions. So far we have only seen examples that include a single restriction, forcing the new class to be a subclass of some other named class.
The rdfs:label entry provides an optional human readable name for this class. Presentation tools can make use of it. The "lang" attribute provides support for multiple languages. A label is like a comment and contributes nothing to the logical interpretation of an ontology.
Basic Elements
Most of the elements of an OWL ontology concern classes, properties, instances of classes, and relationships between these instances.
I. Simple Classes and Individuals
A. Simple Named Classes: Class, rdfs:subClassOf
1. The most basic concepts in a domain should correspond to classes that are the roots of various taxonomic trees. Every individual in the OWL world is a member of the class owl:Thing. Thus each user-defined class is implicitly a subclass of owl:Thing. Domain specific root classes are defined by simply declaring a named class. OWL also defines the empty class, owl:Nothing.
B. Individuals
1. In addition to classes, we want to be able to describe their members. We normally think of these as individuals in our universe of things. An individual is minimally introduced by declaring it to be a member of a class.
C. Design and use
1. In certain contexts something that is obviously a class can itself be considered an instance of something else.
2. It is very easy to confuse the instance-of relationship with the subclass relationship.
II. Simple Properties
A. Properties let us assert general facts about the members of classes and specific facts about individuals.
B. Definition
1. A property is a binary relation. Two types of properties are distinguished:
a) datatype properties, relations between instances of classes and RDF literals and XML Schema datatypes
b) object properties, relations between instances of two classes. Note that the name object property is not intended to reflect a connection with the RDF term rdf:object.
2. When we define a property there are a number of ways to restrict the relation. The domain and range can be specified. The property can be defined to be a specialization (subproperty) of an existing property. Properties, like classes, can be arranged in a hierarchy.
C. Properties and Datatypes
1. We distinguish properties according to whether they relate individuals to individuals (object properties) or individuals to datatypes (datatype properties). Datatype properties may range over RDF literals or simple types defined in accordance with XML Schema datatypes.
D. Properties of Individuals
III. Property Characteristics
A. TransitiveProperty: P(x,y) and P(y,z) implies P(x,z)
B. SymmetricProperty: P(x,y) iff P(y,x)
C. FunctionalProperty: P(x,y) and P(x,z) implies y = z
D. inverseOf: P1(x,y) iff P2(y,x)
E. InverseFunctionalProperty: P(y,x) and P(z,x) implies y = z
IV. Property Restrictions
In addition to designating property characteristics, it is possible to further constrain the range of a property in specific contexts in a variety of ways.
A. allValuesFrom and someValuesFrom;
1. local to their containing class definition.
B. Cardinality
C. hasValue
1. specify classes based on the existence of particular property values. Hence, an individual will be a member of such a class whenever at least one of its property values is equal to the hasValue resource.
Ontology Mapping
In order for ontologies to have the maximum impact, they need to be widely shared. It is important to realize that much of the effort of developing an ontology is devoted to hooking together classes and properties in ways that maximize implications. It will be challenging to merge a collection of ontologies.
I. Equivalence between Classes and Properties
A. equivalentClass, is used to indicate that two classes have precisely the same instances.
B. equivalentProperty
II. Identity between Individuals
A. sameAs
III. Different Individuals
A. different from
B. All different
Complex Classes
OWL provides additional constructors with which to form classes. These constructors can be used to create so-called class expressions. Note that Class expressions can be nested without requiring the creation of names for every intermediate class. This allows the use of set operations to build up complex classes from anonymous classes or classes with value restrictions.
I. Set Operators
A. Intersection: intersectionOf
B. Union: unionOf
C. Complement: complementOf
II. Enumerated Classes
A. oneOf
III. Disjoint Classes
A. disjointWith