OWL 2 Web Ontology Language
Quick Reference Guide

W3C Working Draft 21 April 2009

This version:
Latest version:
Previous version:
Jie Bao, Rensselaer Polytechnic Institute
Elisa F. Kendall, Sandpiper Software, Inc.
Deborah L. McGuinness, Rensselaer Polytechnic Institute
Li Ding, Rensselaer Polytechnic Institute
Ankesh Khandelwal, Rensselaer Polytechnic Institute
Peter F. Patel-Schneider, Bell Labs Research, Alcatel-Lucent

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


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.
his document provides a quick reference guide to the OWL 2 language, similar to what was provided in the Language Synopsis section of the OWL Web Ontology Language Overview. Inspiration for this effort includes work by the ebiquity Research Group at the University of Maryland Baltimore County (UMBC) on earlier versions of a Reference Card for the Semantic Web.
A draft printable version is available , but it is obsolete with respect to the current wiki version.

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

Please Comment By 12 May 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.


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:
Editor's Note: Markup suggestions from Ivan Herman

1 Namespaces

The standard namespaces and prefixes in OWL 2 are


2 OWL 2 constructs and axioms

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.

Editor's Note: Christine suggested to use same naming convention as in Syntax, e.g., CE, DR, OPE, DPE, a and lt

For an OWL 2 DL ontology, there are some global restrictions on axioms.

2.1 Classes

Predefined Classes
all OWL individuals owl:Thing owl:Thing
empty class owl:Nothing owl:Nothing

Boolean Connectives and Enumeration of Individuals
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
Every owl:Restriction is an owl:Class.
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)

Data Property Restrictions
Every owl:Restriction is an owl:Class.
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)

Restrictions Using n-ary Data Range
"Dn" is a n-ary data range (cf #Data Ranges).
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.

2.1.1 Class Axioms

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

2.2 Properties

2.2.1 Property Expressions

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

2.2.2 Property Axioms

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.

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

2.4 Keys

Keys (N) HasKey(C (P1 … Pm) (R1 … Rn) ) C owl:hasKey (P1 … Pm R1 … Rn).

2.5 Assertions

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

2.6 Declarations

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.

2.7 Annotations

Annotation of an object
s the annotation subject, v a resource; AP annotation property.
annotation assertions AnnotationAssertion( AP s v) s AP v.

or (if the assertion itself has annotation)
s AP v.
_:x rdf:type owl:Annotation.
_:x owl:subject s.
_:x owl:predicate AP.
_:x owl:object v.
Note: an annotated object can be an ontology, an ontology entity, an anonymous individual, or another annotation.

Annotation of an axiom
y the annotated object, AP annotation property, v a resource
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.
If AXIOM(...) becomes s p o.

_:x p o
_:x AP v.
If AXIOM(...) becomes _:x p o.
Note: for n-ary axioms of type EquivalentClasses, EquivalentProperties or SameIndividual, they will first be broken up into several RDF triples of their binary forms, then each triple is reified using the above rule.

Annotation Properties
all annotation properties are instances of owl:AnnotationProperty
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 Axioms
AP annotation property, U an IRI.
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.

C an OWL class or a datatype, P an object property, datatype property or annotation property.
deprecated class C Deprecated C rdf:type owl:DeprecatedClass.
deprecated property P Deprecated P rdf:type owl:DeprecatedProperty.
Note: "Deprecated" is the short for owl:deprecated "true"^^xsd:boolean

2.8 OWL Ontologies

Annotations of Ontologies
O an ontology, U an ontology IRI, V an IRI.
OWL ontology
(importing )
Ontology(O [V]

Annotation(AP, v)...
O rdf:type owl:Ontology.
[O owl:versionIRI V.]
O owl:imports U. ...
O AP v.
Note: if O is unnamed, then O is mapped to _:x (an anonymous individual).

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 Vocabulary in OWL 2

owl:DataRange replaced by rdfs:Datatype
owl:distinctMembers replaced by owl:members

3 Built-in Datatypes and Facets

3.1 Built-in Datatypes

The value space is a set determining the set of values of the datatype. A literal value "abc" of the datatype DT can be given in the form "abc"^^DT.
OWL Numeric Datetypes:
owl:rational (rational numbers)
owl:real (N)(real numbers)
XSD Numeric Datatypes
Strings with a Language Tag: tag is either an empty string or a lowercase language tag
rdf:text: A Datatype for Internationalized Text Jie Bao, Axel Polleres, Boris Motik. W3C Working Draft, 21 April 2009, http://www.w3.org/TR/2009/WD-rdf-text-20090421/. Latest version available at http://www.w3.org/TR/rdf-text/.
Strings without a Language Tag: tag is an empty string
xsd:stringxsd:NCName xsd:normalizedStringxsd: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

3.2 Facets

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) fDatatypeValue vExplanation
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
String Datatype,
Binary Datatype,
Nonnegative integer Restricts the value-space based on the
lengths of the literals
xsd:pattern String Datatype,
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

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