This document is also available in these non-normative formats: PDF version.
Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This Working Draft has numerous editorial changes since the previous version of 02 December 2008. In particular, the presentation has been significantly improved, and the content has been updated to reflect changes in the language specification.
The OWL Working Group seeks public feedback on this Working Draft. Please send your comments to public-owl-comments@w3.org (public archive). If possible, please offer specific changes to the text that would address your concern. You may also wish to check the Wiki Version of this document and see if the relevant text has already been updated.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. This document is informative only. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
Table of Contents |
The standard namespaces and prefixes in OWL 2 are
Prefix | URI |
rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
rdfs | http://www.w3.org/2000/01/rdf-schema# |
owl | http://www.w3.org/2002/07/owl# |
xsd | http://www.w3.org/2001/XMLSchema# |
Features in bold are only available in OWL 2. Each table has columns:
We use the following notation conventions: unless stated otherwise, "C" is an OWL class, "D" is a data range, "P" and "Q" are object properties, "R" and "S" are data properties, "a" is an OWL individual, "u" and "v" are literals, "n" is a non-negative integer, "_:x" is anonymous individual. All names may have subscripts. "(a1 … an)" in the 3rd column stands for a rdf list.
For an OWL 2 DL ontology, there are some global restrictions on axioms.
all OWL individuals | owl:Thing | owl:Thing |
empty class | owl:Nothing | owl:Nothing |
intersection | ObjectIntersectionOf(C1 … Cn) | _:x rdf:type owl:Class. _:x owl:intersectionOf ( C1 … Cn ). |
union | ObjectUnionOf(C1 … Cn) | _:x rdf:type owl:Class. _:x owl:unionOf ( C1 … Cn ). |
complement | ObjectComplementOf(C) | _:x rdf:type owl:Class. _:x owl:complementOf C. |
enumeration | ObjectOneOf(a1 … an) | _:x rdf:type owl:Class. _:x owl:oneOf ( a1 … an ). |
universal | ObjectAllValuesFrom(P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:allValuesFrom C |
existential | ObjectSomeValuesFrom(P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:someValuesFrom C |
individual value | ObjectHasValue(P a) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:hasValue i. |
local reflexivity (N) | ObjectHasSelf(P) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:hasSelf "true"^^xsd:boolean. |
exact cardinality | ObjectExactCardinality(n P) ObjectExactCardinality(n P C) (N) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:cardinality n. (without C) _:x owl:qualifiedCardinality n. _:x owl:onClass C. (with C) |
maximum cardinality | ObjectMaxCardinality(n P) ObjectMaxCardinality(n P C) (N) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:minCardinality n. (without C) _:x owl:minQualifiedCardinality n. _:x owl:onClass C. (with C) |
minimum cardinality | ObjectMinCardinality(n P) ObjectMinCardinality(n P C) (N) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:maxCardinality n. (without C) _:x owl:maxQualifiedCardinality n. _:x owl:onClass C. (with C) |
universal | DataAllValuesFrom(R D) | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:allValuesFrom D. |
existential | DataSomeValuesFrom(R D) | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:someValuesFrom D. |
individual value | DataHasValue(R u) | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:hasValue u. |
exact cardinality | DataExactCardinality(n R) DataExactCardinality(n R D) (N) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:cardinality "n"^^xsd:nonNegativeInteger. _:x owl:qualifiedCardinality "n"^^xsd:nonNegativeInteger. (without D) _:x owl:onDataRange D. (with D) |
maximum cardinality | DataMaxCardinality(n R) DataMaxCardinality(n R D) (N) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:maxCardinality "n"^^xsd:nonNegativeInteger. (without D) _:x owl:maxQualifiedCardinality "n"^^xsd:nonNegativeInteger. _:x owl:onDataRange D. (with D) |
minimum cardinality | DataMinCardinality(n R) DataMinCardinality(n R D) (N) | _:x rdf:type owl:Restriction. _:x owl:onProperty P.(without D) _:x owl:minCardinality "n"^^xsd:nonNegativeInteger. _:x owl:minQualifiedCardinality "n"^^xsd:nonNegativeInteger. _:x owl:onDataRange D. (with D) |
n-ary universal (N) | DataAllValuesFrom(R1 … Rn Dn) | _:x rdf:type owl:Restriction. _:x owl:onProperties ( R1 … Rn ). _:x owl:allValuesFrom Dn. |
n-ary existential (N) | DataSomeValuesFrom(R1 … Rn Dn) | _:x rdf:type owl:Restriction. _:x owl:onProperties ( R1 … Rn). _:x owl:someValuesFrom Dn. |
subclasses | SubClassOf(C1 C2) | C1 rdfs:subClassOf C2. |
equivalent classes | EquivalentClasses(C1 … Cn) | C1 owl:equivalentClass C2. … Cn-1 owl:equivalentClass Cn. |
disjoint classes | DisjointClasses(C1 C2) | C1 owl:disjointWith C2. |
pairwise disjoint classes (N) | DisjointClasses(C1 … Cn) | _:x rdf:type owl:AllDisjointClasses. _:x owl:members ( C1 … Cn ). |
disjoint union (N) | DisjointUnionOf(C C1 … Cn) | C owl:disjointUnionOf ( C1 … Cn ). |
universal object property (N) | owl:topObjectProperty | owl:topObjectProperty |
bottom object property (N) | owl:bottomObjectProperty | owl:bottomObjectProperty |
inverse property | ObjectInverseOf(P) | _:x owl:inverseOf P |
universal datatype property (N) | owl:topDataProperty | owl:topDataProperty |
bottom datatype property (N) | owl:bottomDataProperty | owl:bottomDataProperty |
subproperty | SubObjectPropertyOf(P Q) | P rdfs:subPropertyOf Q. |
property chain inclusion (N) | SubObjectPropertyOf(ObjectPropertyChain(P1 … Pn) Q) | Q owl:propertyChainAxiom (P1 … Pn). |
property domain | ObjectPropertyDomain(P C) | P rdfs:domain C. |
property range | ObjectPropertyRange(P C) | P rdfs:range C. |
equivalent properties | EquivalentObjectProperties(P1 … Pn) | P1 owl:equivalentProperty P2. … Pn-1 owl:equivalentProperty Pn. |
disjoint properties (N) | DisjointObjectProperties(P1 P2) | P1 owl:propertyDisjointWith P2. |
pairwise disjoint properties (N) | DisjointObjectProperties(P1 … Pn) | _:x rdf:type owl:AllDisjointProperties. _:x owl:members ( P1 … Pn ). |
inverse properties | InverseObjectProperties(P Q) | P owl:inverseOf Q. |
functional property | FunctionalObjectProperty(P) | P rdf:type owl:FunctionalProperty. |
inverse functional property | InverseFunctionalObjectProperty(P) | P rdf:type owl:InverseFunctionalProperty. |
reflexive property (N) | ReflexiveObjectProperty(P) | P rdf:type owl:ReflexiveProperty. |
irreflexive property (N) | IrreflexiveObjectProperty(P) | P rdf:type owl:IrreflexiveProperty. |
symmetric property | SymmetricObjectProperty(P) | P rdf:type owl:SymmetricProperty. |
asymmetric property (N) | AsymmetricObjectProperty(P) | P rdf:type owl:AsymmetricProperty. |
transitive property | TransitiveObjectProperty(P) | P rdf:type owl:TransitiveProperty. |
subproperty | SubDataPropertyOf(R S) | R rdfs:subPropertyOf S. |
property domain | DataPropertyDomain(R C) | R rdfs:domain C. |
property range | DataPropertyRange(R C) | R rdfs:range C. |
equivalent properties | EquivalentDataProperties(R1 … Rn) | R1 owl:equivalentProperty R2. … Rn-1 owl:equivalentProperty Rn. |
disjoint properties (N) | DisjointDataProperties(R S) | R owl:propertyDisjointWith S. |
pairwise disjoint properties (N) | DisjointDataProperties(R1 … Rn) | _:x rdf:type owl:AllDisjointProperties. _:x owl:members ( R1 … Rn ). |
functional property | FunctionalDataProperty(R) | R rdf:type owl:FunctionalProperty. |
data range complement (N) | DataComplementOf(D) | _:x rdf:type rdfs:Datatype. _:x owl:datatypeComplementOf D. |
data range intersection | DataUnionOf(D1…Dn) | _:x rdf:type rdfs:Datatype. _:x owl:unionOf (D1…Dn). |
data range union | DataIntersectionOf(D1…Dn) | _:x rdf:type rdfs:Datatype. _:x owl:intersectionOf (D1…Dn). |
literal enumeration | DataOneOf(v1 … vn) | _:x rdf:type rdfs:Datatype. _:x owl:oneOf ( v1 … vn ). |
datatype restriction (N) | DatatypeRestriction(D f1 v1 … fn vn) D a built-in datatype fj a constraining facet, vj a restriction value | _:x rdf:type rdfs:Datatype. _:x owl:onDatatype D. _:x owl:withRestrictions (y1 ... yn). y1 f1 v1. ... yn fn vn. |
individual equality | SameIndividual(a1 a2) | a1 owl:sameAs a2. |
n-ary individual equality | SameIndividual(a1 … an) | aj owl:sameAs aj+1. j=1…n-1 |
individual inequality | DifferentIndividuals(a1 a2) | a1 owl:differentFrom a2. |
pairwise individual inequality | DifferentIndividuals(a1 … an) | _:x rdf:type owl:AllDifferent. _:x owl:members (a1 … an). |
class assertion | ClassAssertion(C a) | i rdf:type C. |
positive object property assertion | ObjectPropertyAssertion( P a1 a2 ) | a1 P a2. |
positive inverse object property assertion | ObjectPropertyAssertion( ObjectInverseOf(P) a1 a2 ) | a2 P a1. |
positive data property assertion | DataPropertyAssertion( P a v ) | a P v. |
negative object property assertion (N) | NegativeObjectPropertyAssertion(P a1 a2 ) | _:x rdf:type owl:NegativePropertyAssertion. _:x owl:sourceIndividual a1. _:x owl:assertionProperty P. _:x owl:targetIndividual a2 |
negative datatype property assertion (N) | NegativeDataPropertyAssertion(R a u ) | _:x rdf:type owl:NegativePropertyAssertion. _:x owl:sourceIndividual a. _:x owl:assertionProperty R. _:x owl:targetValue u |
class (N) | Declaration( Class( C ) ) | C rdf:type owl:Class. |
datatype (N) | Declaration( Datatype( D ) ) | D rdf:type rdfs:Datatype. |
object property (N) | Declaration( ObjectProperty( P ) ) | P rdf:type owl:ObjectProperty. |
datatype property (N) | Declaration( DataProperty( R ) ) | R rdf:type owl:DatatypeProperty. |
annotation property (N) | Declaration( AnnotationProperty( A ) ) | A rdf:type owl:AnnotationProperty. |
named individual (N) | Declaration( NamedIndividual( a ) ) | a rdf:type owl:NamedIndividual. |
annotation assertions | AnnotationAssertion( AP s v) | s AP v. _:x rdf:type owl:Annotation. _:x owl:subject s. _:x owl:predicate AP. _:x owl:object v. |
axiom annotations (N) | AXIOM(Annotation( AP v) ) | s p o. _:x rdf:type owl:Axiom. _:x owl:subject s. _:x owl:predicate p. _:x owl:object o. _:x AP v. _:x p o _:x AP v. |
human-readable name | Label | rdfs:label |
human-readable description | Comment | rdfs:comment |
additional information | rdfs:seeAlso | |
defining agent | rdfs:isDefinedBy | |
version information | owl:versionInfo | |
deprecation | Deprecated | owl:deprecated |
annotation subproperties (N) | SubAnnotationPropertyOf(AP1 AP2) | AP1 rdfs:subPropertyOf AP2. |
annotation property domain (N ) | AnnotationPropertyDomain(AP U) | AP rdfs:domain U. |
annotation property range (N) | AnnotationPropertyRange(AP U) | AP rdfs:range U. |
deprecated class | C Deprecated | C rdf:type owl:DeprecatedClass. |
deprecated property | P Deprecated | P rdf:type owl:DeprecatedProperty. |
OWL ontology (importing ) | Ontology(O [V] Import(U)... Annotation(AP, v)... ) | O rdf:type owl:Ontology. [O owl:versionIRI V.] O owl:imports U. ... O AP v. ... |
backwards compatibility | O owl:backwardCompatibleWith U. |
incompatibility | O owl:incompatibleWith U. |
prior version | O owl:priorVersion U. |
owl:DataRange | replaced by rdfs:Datatype |
owl:distinctMembers | replaced by owl:members |
owl:rational (rational numbers) |
owl:real (N)(real numbers) |
xsd:double | xsd:nonNegativeInteger | xsd:long | xsd:unsignedLong |
xsd:float | xsd:nonPositiveInteger | xsd:int | xsd:unsignedInt |
xsd:decimal | xsd:positiveInteger | xsd:short | xsd:unsignedShort |
xsd:integer | xsd:negativeInteger | xsd:byte | xsd:unsignedByte |
xsd:string | xsd:NCName | xsd:normalizedString | xsd:NMTOKEN |
xsd:token | xsd:language | xsd:Name |
xsd:Boolean (value space has only two values: true and false) |
xsd:base64Binary | xsd:hexBinary |
xsd:anyURI | IRIs as defined in XML Schema Datatypes |
xsd:dateTime | time instants with time zone offset |
xsd:dateTimeStamp | time instants without time zone offset |
rdf:XMLLiteral | Note: at risk in OWL 2 |
The facet space is a set of pairs of the form < f v >, where f is an IRI called a constraining facet, and v is a value. Each such pair is mapped to a subset of the value space of the datatype.
Notations: Numeric Datatype, String Datatype and Binary datatype refer to a set of datatypes based on the classification done in the prior section.
Facet(N) f | Datatype | Value v | Explanation |
xsd:minInclusive, xsd:maxInclusive, xsd:minExclusive, xsd:maxExclusive | Numeric Datatype DT, Time instant DT | Literal in DT | Restricts the value-space to greater than (equal to) or lesser than (equal to) a value |
xsd:minLength, xsd:maxLength, xsd:length | String Datatype, Binary Datatype, xsd:anyURI | Nonnegative integer | Restricts the value-space based on the lengths of the literals |
xsd:pattern | String Datatype, xsd:anyURI | xsd:string literal whose value is a regular expression | Restricts the value space to literals that match the regular expression |
rdf:langRange | rdf:text | xsd:string literal whose value is a regular expression | Restricts the value space to literals with language tags that match the regular expression |
The starting point for the development of OWL 2 was the OWL1.1 member submission, itself a result of user and developer feedback, and in particular of information gathered during the OWL Experiences and Directions (OWLED) Workshop series. The working group also considered postponed issues from the WebOnt Working Group.
This document has been produced by the OWL Working Group (see below), and its contents reflect extensive discussions within the Working Group as a whole. The editors extend special thanks to Bernardo Cuenca Grau (Oxford University), Christine Golbreich (Université de Versailles St-Quentin and LIRMM), Ivan Herman (W3C/ERCIM), Bijan Parsia (University of Manchester) and Peter F. Patel-Schneider (Bell Labs Research, Alcatel-Lucent) for their thorough reviews.
The regular attendees at meetings of the OWL Working Group at the time of publication of this document were: Jie Bao (RPI), Diego Calvanese (Free University of Bozen-Bolzano), Bernardo Cuenca Grau (Oxford University), Martin Dzbor (Open University), Achille Fokoue (IBM Corporation), Christine Golbreich (Université de Versailles St-Quentin and LIRMM), Sandro Hawke (W3C/MIT), Ivan Herman (W3C/ERCIM), Rinke Hoekstra (University of Amsterdam), Ian Horrocks (Oxford University), Elisa Kendall (Sandpiper Software), Markus Krötzsch (FZI), Carsten Lutz (Universität Bremen), Deborah L. McGuinness (RPI), Boris Motik (Oxford University), Jeff Pan (University of Aberdeen), Bijan Parsia (University of Manchester), Peter F. Patel-Schneider (Bell Labs Research, Alcatel-Lucent), Alan Ruttenberg (Science Commons), Uli Sattler (University of Manchester), Michael Schneider (FZI), Mike Smith (Clark & Parsia), Evan Wallace (NIST), and Zhe Wu (Oracle Corporation). We would also like to thank past members of the working group: Jeremy Carroll, Jim Hendler, Vipul Kashyap.