W3C

OWL 2 Web Ontology Language
Quick Reference Guide

W3C Editor's Draft 21 May 2009

This version:
http://www.w3.org/2007/OWL/draft/ED-owl2-quick-reference-20090521/
Latest editor's draft:
http://www.w3.org/2007/OWL/draft/owl2-quick-reference/
Previous version:
http://www.w3.org/2007/OWL/draft/ED-owl2-quick-reference-20090421/ (color-coded diff)
Authors:
Jie Bao, Rensselaer Polytechnic Institute
Elisa F. Kendall, Sandpiper Software, Inc.
Deborah L. McGuinness, Rensselaer Polytechnic Institute
Peter F. Patel-Schneider, Bell Labs Research, Alcatel-Lucent
Contributors:
Li Ding, Rensselaer Polytechnic Institute
Ankesh Khandelwal, Rensselaer Polytechnic Institute

This document is also available in these non-normative formats: PDF version.



Abstract

The OWL 2 Web Ontology Language, informally OWL 2, is an ontology language for the Semantic Web with formally defined meaning. OWL 2 ontologies provide classes, properties, individuals, and data values and are stored as Semantic Web documents. OWL 2 ontologies can be used along with information written in RDF, and OWL 2 ontologies themselves are primarily exchanged as RDF documents. The OWL 2 Document Overview describes the overall state of OWL 2, and should be read before other OWL 2 documents.

Status of this Document

May Be Superseded

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/.

Summary of Changes

This Working Draft has undergone significant presentation changes and a reorganization.

Last Call

The Working Group believes it has completed its design work for the technologies specified this document, so this is a "Last Call" draft. The design is not expected to change significantly, going forward, and now is the key time for external review, before the implementation phase.

Please Comment By 9 July 2009

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.

No Endorsement

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.

Patents

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


Editor's Note: To do list:

1 Names, Prefixes, and Notation

Names in OWL 2 are IRIs, often written in a shorthand prefix:local_name, where prefix: is a prefix name that expands to an IRI, and local_name is the remainder of the name. The standard prefix names in OWL 2 are:

Prefix Name Expansion
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#

We use the following notation conventions: 'C' is a class expression; 'CN' is a class name; 'D' is a data range; 'DN' is a datatype name; 'P' is an object property expression; 'PN' is an object property name; 'R' is a data property; 'A' is an annotation property; 'a' is an individual; 'aN' is an individual name; '_:a' is an anonymous individual (a blank node label); 'v' is a literal; 'n' is a non-negative integer (as a shorthand for "n"^^xsd:nonNegativeInteger); 'f' is a facet; 'ON' is an ontology name; 'U' is an IRI; 's' is an IRI (including a named ontology, class, datatype, property or individual), or an anonymous individual; 't' is an IRI, an anonymous individual, or a literal; and 'p' is a prefix name. In the RDF syntax, '_:x' is a blank node and '(a1 … an)' is an RDF list. All of the above can have subscripts.

2 OWL 2 constructs and axioms

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.

2.1 Class Expressions

Predefined and Named Classes

Language FeatureFunctional SyntaxRDF Syntax
named class CN CN
universal class owl:Thing owl:Thing
empty class owl:Nothing owl:Nothing

Boolean Connectives and Enumeration of Individuals

Language FeatureFunctional SyntaxRDF 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

Language FeatureFunctional SyntaxRDF 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 a.
local reflexivity ObjectHasSelf(P) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:hasSelf "true"^^xsd:boolean.
exact cardinality ObjectExactCardinality(n P) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:cardinality n.
qualified exact cardinality ObjectExactCardinality(n P C) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:qualifiedCardinality n.
_:x owl:onClass C.
maximum cardinality ObjectMaxCardinality(n P) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:minCardinality n.
qualified maximum cardinality ObjectMaxCardinality(n P C) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:minQualifiedCardinality n.
_:x owl:onClass C.
minimum cardinality ObjectMinCardinality(n P) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:maxCardinality n.
qualified minimum cardinality ObjectMinCardinality(n P C) _:x rdf:type owl:Restriction.
_:x owl:onProperty P.
_:x owl:maxQualifiedCardinality n.
_:x owl:onClass C.

Data Property Restrictions

Language FeatureFunctional SyntaxRDF 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.
literal value DataHasValue(R v) _:x rdf:type owl:Restriction.
_:x owl:onProperty R.
_:x owl:hasValue v.
exact cardinality DataExactCardinality(n R) _:x rdf:type owl:Restriction.
_:x owl:onProperty R.
_:x owl:cardinality n.
qualified exact cardinality DataExactCardinality(n R D) _:x rdf:type owl:Restriction.
_:x owl:onProperty R.
_:x owl:qualifiedCardinality n.
_:x owl:onDataRange D.
maximum cardinality DataMaxCardinality(n R) _:x rdf:type owl:Restriction.
_:x owl:onProperty R.
_:x owl:maxCardinality n.
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 D) _:x rdf:type owl:Restriction.
_:x owl:onProperty R.
_:x owl:minQualifiedCardinality n.
_:x owl:onDataRange D.

Restrictions Using n-ary Data Range

In the following table 'Dn' is an n-ary data range.

Language FeatureFunctional SyntaxRDF Syntax
n-ary universal DataAllValuesFrom(R1 … Rn Dn) _:x rdf:type owl:Restriction.
_:x owl:onProperties ( R1 … Rn ).
_:x owl:allValuesFrom Dn.
n-ary existential DataSomeValuesFrom(R1 … Rn Dn) _:x rdf:type owl:Restriction.
_:x owl:onProperties ( R1 … Rn).
_:x owl:someValuesFrom Dn.

2.2 Properties

Object Property Expressions

Language FeatureFunctional SyntaxRDF Syntax
named object property PN PN
universal object property owl:topObjectProperty owl:topObjectProperty
empty object property owl:bottomObjectProperty owl:bottomObjectProperty
inverse property ObjectInverseOf(PN) _:x owl:inverseOf PN

Data Property Expressions

Language FeatureFunctional SyntaxRDF Syntax
named data property R R
universal data property owl:topDataProperty owl:topDataProperty
empty data property owl:bottomDataProperty owl:bottomDataProperty

2.3 Individuals & Literals

Language FeatureFunctional SyntaxRDF Syntax
named individual aN aN
anonymous individual _:a _:a
literal (datatype value) "abc"^^DN "abc"^^DN

2.4 Data Ranges

Data Range Expressions

Language FeatureFunctional SyntaxRDF 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 … vn) _: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

2.5 Axioms

Class Expression Axioms

Language FeatureFunctional SyntaxRDF 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 FeatureFunctional SyntaxRDF Syntax
subproperty SubObjectPropertyOf(P1 P2) P1 rdfs:subPropertyOf P2.
property chain inclusion SubObjectPropertyOf(ObjectPropertyChain(P1 … Pn) 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 EquivalentObjectProperties(P1 … Pn) Pj owl:equivalentProperty Pj+1. j=1…n-1
disjoint properties DisjointObjectProperties(P1 P2) P1 owl:propertyDisjointWith P2.
pairwise disjoint properties DisjointObjectProperties(P1 … Pn) _:x rdf:type owl:AllDisjointProperties.
_:x owl:members ( P1 … Pn ).
inverse properties InverseObjectProperties(P1 P2) P1 owl:inverseOf P2.
functional property FunctionalObjectProperty(P) P rdf:type owl:FunctionalProperty.
inverse functional property InverseFunctionalObjectProperty(P) P rdf:type owl:InverseFunctionalProperty.
reflexive property ReflexiveObjectProperty(P) P rdf:type owl:ReflexiveProperty.
irreflexive property IrreflexiveObjectProperty(P) P rdf:type owl:IrreflexiveProperty.
symmetric property SymmetricObjectProperty(P) P rdf:type owl:SymmetricProperty.
asymmetric property AsymmetricObjectProperty(P) P rdf:type owl:AsymmetricProperty.
transitive property TransitiveObjectProperty(P) P rdf:type owl:TransitiveProperty.

Data Property Axioms

Language FeatureFunctional SyntaxRDF Syntax
subproperty SubDataPropertyOf(R1 R2) R1 rdfs:subPropertyOf R2.
property domain DataPropertyDomain(R C) R rdfs:domain C.
property range DataPropertyRange(R D) R rdfs:range D.
equivalent properties EquivalentDataProperties(R1 … Rn) Rj owl:equivalentProperty Rj+1. j=1…n-1
disjoint properties DisjointDataProperties(R1 R2) R1 owl:propertyDisjointWith R2.
pairwise disjoint properties DisjointDataProperties(R1 … Rn) _:x rdf:type owl:AllDisjointProperties.
_:x owl:members ( R1 … Rn ).
functional property FunctionalDataProperty(R) R rdf:type owl:FunctionalProperty.

Datatype Definitions

Language FeatureFunctional SyntaxRDF Syntax
datatype definition DatatypeDefinition(DN D) DN owl:equivalentClass D.

Assertions

Language FeatureFunctional SyntaxRDF 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) a rdf:type C.
positive object property assertion ObjectPropertyAssertion( PN a1 a2 ) a1 PN a2.
positive inverse object property assertion ObjectPropertyAssertion( ObjectInverseOf(PN) a1 a2 ) a2 PN a1.
positive data property assertion DataPropertyAssertion( R a v ) a R v.
negative object property assertion NegativeObjectPropertyAssertion(P a1 a2 ) _:x rdf:type owl:NegativePropertyAssertion.
_:x owl:sourceIndividual a1.
_:x owl:assertionProperty P.
_:x owl:targetIndividual a2.
negative data property assertion NegativeDataPropertyAssertion(R a v ) _:x rdf:type owl:NegativePropertyAssertion.
_:x owl:sourceIndividual a.
_:x owl:assertionProperty R.
_:x owl:targetValue v.

Keys

Language FeatureFunctional SyntaxRDF Syntax
Key HasKey(C (P1 … Pm) (R1 … Rn) ) C owl:hasKey (P1 … Pm R1 … Rn).


2.6 Declarations

Language FeatureFunctional SyntaxRDF Syntax
class Declaration( Class( CN ) ) CN rdf:type owl:Class.
datatype Declaration( Datatype( DN ) ) DN rdf:type rdfs:Datatype.
object property Declaration( ObjectProperty( PN ) ) PN rdf:type owl:ObjectProperty.
data property Declaration( DataProperty( R ) ) R rdf:type owl:DatatypeProperty.
annotation property Declaration( AnnotationProperty( A ) ) A rdf:type owl:AnnotationProperty.
named individual Declaration( NamedIndividual( aN ) ) aN rdf:type owl:NamedIndividual.

2.7 Annotations

Annotations

Language FeatureFunctional SyntaxRDF Syntax
annotation assertion AnnotationAssertion(A s t) s A t.
annotation of an axiom
where the axiom in RDF is one or more triples with the same predicate si U ti
AXIOM(Annotation(A t) …) _:xi A t.
si U ti. …
_:xi rdf:type owl:Axiom.
_:xi owl:annotatedSource si.
_:xi owl:annotatedProperty U.
_:xi owl:annotatedTarget ti.
annotation of an axiom
where the axiom in RDF starts with _:x
AXIOM(Annotation(A t) … )
_:x A t.
_:x …. …
annotation of another annotation
(the other annotation in RDF starts with s1)
Annotation(Annotation(A t) … A1 t1) _:x A t.
s1 A1 t1.
_:x rdf:type owl:Annotation.
_:x owl:annotatedSource s1.
_:x owl:annotatedProperty A1.
_:x owl:annotatedTarget t1.

Annotation Properties

Language FeatureFunctional SyntaxRDF Syntax
named annotation property A A
human-readable name rdfs:label rdfs:label
human-readable comment 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 owl:deprecated
backwards compatibility owl:backwardCompatibleWith owl:backwardCompatibleWith
incompatibility owl:incompatibleWith owl:incompatibleWith
prior version owl:priorVersion owl:priorVersion

Annotation Axioms

Language FeatureFunctional SyntaxRDF Syntax
annotation subproperties SubAnnotationPropertyOf(A1 A2) A1 rdfs:subPropertyOf A2.
annotation property domain AnnotationPropertyDomain(A U) A rdfs:domain U.
annotation property range AnnotationPropertyRange(A U) A rdfs:range U.

2.8 Ontologies

Ontologies

Language FeatureFunctional SyntaxRDF Syntax
OWL ontology
(importing)

Ontology([ON [U]]
  Import(ON1)...
  Annotation(A t)
  ...
)
ON rdf:type owl:Ontology.
[ON owl:versionIRI U.]
ON owl:imports ON1. ...
ON A t.
...
prefix declaration Prefix(p=U) @prefix p U.

Note: in the RDF syntax _:x is used if there is no ontology name.


3 Built-in Datatypes and Facets

3.1 Built-in Datatypes

Universal Datatype rdfs:Literal
Numbers owl:rational owl:real
xsd:double xsd:float xsd:decimal xsd:integer
xsd:long xsd:int xsd:short xsd:byte
xsd:nonNegativeInteger xsd:nonPositiveInteger
xsd:positiveInteger xsd:negativeInteger
xsd:unsignedLong xsd:unsignedInt
xsd:unsignedShort xsd:unsignedByte
Strings rdf:text (internationalized strings)
xsd:string xsd:NCName xsd:Name xsd:NMTOKEN
xsd:token xsd:language xsd:normalizedString
Boolean Values xsd:boolean (value space: true and false)
Binary Data xsd:base64Binary xsd:hexBinary
IRIs xsd:anyURI
Time Instants xsd:dateTime (optional time zone offset)
xsd:dateTimeStamp (required time zone offset)
XML Literals rdf:XMLLiteral
Note: owl:rational and rdf:XMLLiteral are at Risk in OWL 2.

3.2 Facets

Facet Value Applicable Datatypes Explanation
xsd:minInclusive
xsd:maxInclusive
xsd:minExclusive
xsd:maxExclusive
literal in the corresponding datatype Numbers,
Time Instants
Restricts the value-space to greater than (equal to) or lesser than (equal to) a value
xsd:minLength
xsd:maxLength
xsd:length
Non-negative integer Strings,
Binary Data,
IRIs
Restricts the value-space based on the
lengths of the literals
xsd:pattern xsd:string literal as a regular expression Strings,
IRIs
Restricts the value space to literals that> match the regular expression
rdf:langRange xsd:string literal as a regular expression rdf:text Restricts the value space to literals with language tags that match the regular expression

4 Appendix

4.1 New Features in OWL 2

Class Expressions
Class Axioms
Property Expressions
Property Axioms
Data Ranges
Assertions
Annotation
Extra Built-in Datatypes
  • owl:rational, owl:real, xsd:dateTimeStamp, rdf:text
Others

4.2 Deprecated Vocabulary in OWL 2

The following vocabulary is provided in OWL 1 but not encouraged in OWL 2.

OWL 1 Vocabulary Status in OWL 2
owl:DataRange replaced by rdfs:Datatype
owl:distinctMembers replaced by owl:members

5 Acknowledgments

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) 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.