Peter F. Patel-Schneider , Bell Labs Research, Alcatel-LucentThis 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 Draftdocument has numerous editorial changes since the previous version of 02 December 2008. In particular, theundergone significant presentation has been significantly improved,changes and
a reorganization.
The content has been updated to reflect changes inWorking Group believes this document is now
essentially done, so this is a "Last Call" draft. The
language specification.document is not expected to change significantly, going
forward.
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 |
Names in OWL 2 are IRIs, often written in a little bit disturbing, maybe try other typographic trick, e.g., some lighter colour. whether we could findshorthand prefix:local_name, where prefix: is a trick soprefix name that we can switch on/off highlight the OWL 1/2 differencesexpands to an IRI, and local_name is the '?' links that refer toremainder of the NF&R. 1 Namespacesname.
The standard namespaces and prefixesprefix names in OWL 2 areare:
Prefix | Expansion |
---|---|
rdf: | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
| http://www.w3.org/2000/01/rdf-schema# |
| http://www.w3.org/2002/07/owl# |
| http://www.w3.org/2001/XMLSchema# |
2 OWL 2 constructs and axioms Features in bold are only available in OWL 2. Each table has columns: 1st: Feature's name and link to Primer and New Features and Rationale (if applicable)(as "(N)") 2nd: functional syntax and link to Syntax 3rd: RDF syntax with link to Mapping to RDF GraphsWe use notation conventions in the following notation conventions: unless stated otherwise, "C" is an OWL class, "D" is atable*:
Letters | Meaning | Letters | Meaning | Letters | Meaning | Letters | Meaning |
---|---|---|---|---|---|---|---|
C | class expression | CN | class name | D | data | DN | datatype name |
P | object | PN | object property name | R | data | A | annotation property |
a | individual | aN | individual name | _:a | anonymous individual (a blank node label) | v | literal |
n | non-negative | f | facet | ON | ontology name | U | IRI |
s | IRI or anonymous | t | IRI, anonymous individual, or literal | p | prefix name | _:x | blank node |
(a1 … an | RDF list |
. Editor's Note: Christine suggested to use same naming convention* All of the above can have subscripts. ** as in Syntax, e.g., CE, DR, OPE, DPE,a shorthand for "n"^^xsd:nonNegativeInteger
For an OWL 2 DL ontology, there are some global restrictions on axioms.
In the following tables the first column provides links to the Primer (if applicable) and the 2nd column provides links to the Functional Syntax.
| Functional Syntax | RDF Syntax |
---|---|---|
named class | CN | CN |
universal class | owl:Thing | owl:Thing |
empty class | owl:Nothing | owl:Nothing |
Boolean Connectives and Enumeration of Individuals
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
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 ). |
Object Property Restrictions
| Functional Syntax | RDF Syntax |
---|---|---|
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 |
local reflexivity | | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:hasSelf "true"^^xsd:boolean. |
exact cardinality | ObjectExactCardinality(n P) | _:x owl:onProperty P. _:x owl:cardinality n. |
| ObjectExactCardinality(n P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:qualifiedCardinality n. _:x owl:onClass C. |
| ObjectMaxCardinality(n P) | _:x owl:onProperty P. _:x owl:minCardinality n. |
| ObjectMaxCardinality(n P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:minQualifiedCardinality n. _:x owl:onClass C. |
| ObjectMinCardinality(n P) | _:x owl:onProperty P. _:x owl:maxCardinality n. |
| ObjectMinCardinality(n P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:maxQualifiedCardinality n. _:x owl:onClass C. |
(with C)Data Property Restrictions
| Functional Syntax | RDF Syntax |
---|---|---|
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. |
| DataHasValue(R | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:hasValue |
exact cardinality | DataExactCardinality(n R) | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:cardinality n. |
qualified exact cardinality | DataExactCardinality(n R | _:x rdf:type owl:Restriction. _:x owl:onProperty _:x owl:qualifiedCardinality _:x owl:onDataRange D. |
| DataMaxCardinality(n R) | _:x owl:onProperty _:x owl:maxCardinality |
qualified maximum cardinality | DataMaxCardinality(n R D) | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:maxQualifiedCardinality n. _:x owl:onDataRange D. |
minimum cardinality | DataMinCardinality(n R) | _:x rdf:type owl:Restriction. _:x owl:onProperty R. _:x owl:minCardinality n. |
qualified minimum cardinality | DataMinCardinality(n R | _:x rdf:type owl:Restriction. _:x owl:onProperty _:x owl:minQualifiedCardinality _:x owl:onDataRange D. |
(with D)Restrictions Using n-ary Data Range
"DIn the following table 'Dn "' is aan n-ary data range (cf #Data Ranges ).range.
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
n-ary universal | | _:x rdf:type owl:Restriction. _:x owl:onProperties ( R1 … Rn ). _:x owl:allValuesFrom Dn. |
n-ary existential | | _:x rdf:type owl:Restriction. _:x owl:onProperties ( R1 … Rn). _:x owl:someValuesFrom Dn. |
2.2.1Object Property Expressions
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
named object | PN | PN |
universal object property | | owl:topObjectProperty |
| | owl:bottomObjectProperty |
inverse property | ObjectInverseOf | _:x owl:inverseOf |
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
named data property | R | R |
universal | | owl:topDataProperty |
| | owl:bottomDataProperty |
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
named individual | aN | aN |
anonymous individual | _:a | _:a |
literal (datatype value) | "abc"^^DN | "abc"^^DN |
Data Range Expressions
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
named datatype | DN | DN |
data range complement | DataComplementOf(D) | _:x rdf:type rdfs:Datatype. _:x owl:datatypeComplementOf D. |
data range intersection | DataIntersectionOf(D1…Dn) | _:x rdf:type rdfs:Datatype. _:x owl:intersectionOf (D1…Dn). |
data range union | DataUnionOf(D1…Dn) | _:x rdf:type rdfs:Datatype. _:x owl:unionOf (D1…Dn). |
literal enumeration | DataOneOf(v1 … | _:x rdf:type rdfs:Datatype. _:x owl:oneOf ( v1 … vn ). |
datatype restriction | DatatypeRestriction(DN f1 v1 … fn vn) | _:x rdf:type rdfs:Datatype. _:x owl:onDatatype DN. _:x owl:withRestrictions (_:x1 ... _:xn). _:xj fj vj. j=1…n |
Class Expression Axioms
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
subclass | SubClassOf(C1 C2) | C1 rdfs:subClassOf C2. |
equivalent classes | EquivalentClasses(C1 … Cn) | Cj owl:equivalentClass Cj+1. j=1…n-1 |
disjoint classes | DisjointClasses(C1 C2) | C1 owl:disjointWith C2. |
pairwise disjoint classes | DisjointClasses(C1 … Cn) | _:x rdf:type owl:AllDisjointClasses. _:x owl:members ( C1 … Cn ). |
disjoint union | DisjointUnionOf(CN C1 … Cn) | CN owl:disjointUnionOf ( C1 … Cn ). |
Object Property Axioms
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
subproperty | SubObjectPropertyOf(P1 P2) | P1 |
property chain inclusion | SubObjectPropertyOf(ObjectPropertyChain(P1 … P | P owl:propertyChainAxiom (P1 … Pn |
property domain | ObjectPropertyDomain(P C) | P rdfs:domain C. |
property range | ObjectPropertyRange(P C) | P rdfs:range C. |
equivalent properties | | Pj owl:equivalentProperty Pj+1. j=1…n-1 |
disjoint properties | DisjointObjectProperties(P1 P2) | P1 owl:propertyDisjointWith P2. |
pairwise disjoint properties | | _:x rdf:type owl:AllDisjointProperties. _:x owl:members ( P1 … Pn ). |
inverse properties | InverseObjectProperties(P | P1 owl:inverseOf |
functional property | FunctionalObjectProperty(P) | P rdf:type owl:FunctionalProperty. |
inverse functional property | InverseFunctionalObjectProperty(P) | P rdf:type owl:InverseFunctionalProperty. |
reflexive property | | P rdf:type owl:ReflexiveProperty. |
irreflexive property | | P rdf:type owl:IrreflexiveProperty. |
symmetric property | SymmetricObjectProperty(P) | P rdf:type owl:SymmetricProperty. |
asymmetric property | | P rdf:type owl:AsymmetricProperty. |
transitive property | TransitiveObjectProperty(P) | P rdf:type owl:TransitiveProperty. |
DatatypeData Property Axioms
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
subproperty | SubDataPropertyOf(R | R1 rdfs:subPropertyOf |
property domain | DataPropertyDomain(R C) | R rdfs:domain C. |
property range | DataPropertyRange(R | R rdfs:range |
equivalent properties | EquivalentDataProperties(R1 … Rn) | R |
disjoint properties | | R1 owl:propertyDisjointWith |
pairwise disjoint properties | | _:x rdf:type owl:AllDisjointProperties. _:x owl:members ( R1 … Rn ). |
functional property | FunctionalDataProperty(R) | R rdf:type owl:FunctionalProperty. |
2.3 Data Ranges Built-in datatypes are unary data ranges. OWL 2 does not provide direct support for n-ary data ranges but provides syntactical hooks for applications to add them. data range complement ( N ) DataComplementOf (D) _:x rdf:type rdfs:Datatype. _:x owl:datatypeComplementOf D. data range intersection DataUnionOf (D 1 …D n ) _:x rdf:type rdfs:Datatype. _:x owl:unionOf (D 1 …D n ). data range union DataIntersectionOf (D 1 …D n ) _:x rdf:type rdfs:Datatype. _:x owl:intersectionOf (D 1 …D n ). literal enumeration DataOneOf (v 1 … v n ) _:x rdf:type rdfs:Datatype. _:x owl:oneOf ( v 1 … v n ).Datatype restriction ( N ) DatatypeRestriction (D f 1 v 1 … f n v n ) D a built-inDefinitions
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
datatype | DatatypeDefinition(DN D) | DN owl:equivalentClass D. |
_:x owl:withRestrictions (y1 ... yn). y1 f 1 v 1 . ... yn f n v n . 2.4 Keys Keys ( N ) HasKey (C (P 1 … P m ) (R 1 … R n ) ) C owl:hasKey (P 1 … P m R 1 … R n ). 2.5Assertions
| Functional Syntax | RDF Syntax |
---|---|---|
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) | |
positive object property assertion | ObjectPropertyAssertion( | a1 |
positive data property assertion | DataPropertyAssertion( | a |
negative object property assertion | | _:x rdf:type owl:NegativePropertyAssertion. _:x owl:sourceIndividual a1. _:x owl:assertionProperty P. _:x owl:targetIndividual a2. |
negative | | _:x rdf:type owl:NegativePropertyAssertion. _:x owl:sourceIndividual a. _:x owl:assertionProperty R. _:x owl:targetValue |
Keys
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
Key | HasKey(C (P1 … Pm) (R1 … Rn) ) | C owl:hasKey (P1 … Pm R1 … Rn). |
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
class | Declaration( | |
datatype | Declaration( | |
object property | Declaration( | |
| Declaration( | R rdf:type owl:DatatypeProperty. |
annotation property | Declaration( | A rdf:type owl:AnnotationProperty. |
named individual | Declaration( | |
Annotations
Language Feature | Functional Syntax | RDF Syntax |
---|---|---|
annotation | AnnotationAssertion | s |
annotation of an axiom where the axiom in RDF is one or | AXIOM(Annotation(A t) …) | _:xi A t. si U ti. … _:xi rdf:type _:x _:x _:x |
annotation of an axiom | AXIOM(Annotation | _:x |
annotation of another annotation (the other annotation in RDF starts with s1) | Annotation(Annotation(A t) … A1 t1) | _:x s1 A1 t1. _:x _:x _:x _:x |
Annotation Properties
| Functional Syntax | RDF Syntax |
---|---|---|
named annotation | A | A |
human-readable name | | rdfs:label |
human-readable | rdfs:comment | rdfs:comment |
additional information | rdfs:seeAlso | rdfs:seeAlso |
defining agent | rdfs:isDefinedBy | rdfs:isDefinedBy |
version information | owl:versionInfo | owl:versionInfo |
deprecation | | owl:deprecated |
backwards compatibility | owl:backwardCompatibleWith | owl:backwardCompatibleWith |
incompatibility | owl:incompatibleWith | owl:incompatibleWith |
prior version | owl:priorVersion | owl:priorVersion |
Annotation Axioms
| Functional Syntax | RDF Syntax |
---|---|---|
annotation subproperties | | |
annotation property domain | | |
annotation property range | | |
Annotations ofOntologies
| Functional Syntax | RDF Syntax |
---|---|---|
OWL ontology (importing | Ontology Import Annotation(A t) ... ) | ON owl:imports ... |
| Prefix(p=U) | @prefix p U. |
Note *: in the RDF syntax _:x is unnamed, then Oused in place of ON if there is mapped to _:x (an anonymous individual).no ontology Properties are instances of owl:OntologyProperty backwards compatibility O owl:backwardCompatibleWith U. incompatibility O owl:incompatibleWith U. prior version O owl:priorVersion U. 2.9 Deprecated Vocabularyname. ** RDF syntax is in OWL 2 owl:DataRange replaced by rdfs:Datatype owl:distinctMembers replaced by owl:membersTurtle, other RDF serializations may vary.
| | | |
---|---|---|---|
xsd:maxInclusive xsd:minExclusive xsd:maxExclusive | | Numbers, Time Instants | Restricts the value-space to greater than (equal to) or lesser than (equal to) a value |
xsd:maxLength xsd:length | | Strings, Binary Data, IRIs | Restricts the value-space based on the lengths of the literals |
xsd:pattern | | Strings, IRIs | Restricts the value space to literals |
rdf:langRange | | rdf:PlainLiteral | Restricts the value space to literals with language tags that match the regular expression |
Class Expressions |
|
Class Axioms | |
Property Expressions |
|
Property Axioms |
|
Data Ranges | |
Assertions | |
Annotation |
|
Extra Built-in Datatypes |
|
Others |
Feature | Vocabulary | Note |
---|---|---|
data range | owl:DataRange | deprecated in OWL 2, replaced by rdfs:Datatype |
membership of a set of pairwise different individuals | owl:distinctMembers | can alternatively use owl:members |
ontology property | owl:OntologyProperty | |
deprecation | owl:DeprecatedClass, owl:DeprecatedProperty | alternative RDF syntax: s rdf:type owl:DeprecatedClass . or s rdf:type owl:DeprecatedProperty . can be replaced by s owl:deprecated "true"^^xsd:boolean . |
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), and
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),
Sebastian Rudolph (FZI),
Alan Ruttenberg (Science Commons),
Uli Sattler (University of Manchester),
Michael Schneider (FZI),
Mike Smith (Clark & Parsia),
Evan Wallace (NIST),
andZhe Wu (Oracle Corporation).Corporation), and
Antoine Zimmermann (DERI Galway).
We would also like to thank past members of the working group:
Jeremy Carroll,
Jim Hendler,
Vipul Kashyap.