Warning:
This wiki has been archived and is now read-only.
Quick Reference Guide
- Document title:
- OWL 2 Web Ontology Language
Quick Reference Guide (Second Edition)
- Editors
- Jie Bao, formerly at Rensselaer Polytechnic Institute
- Elisa F. Kendall, Sandpiper Software, Inc.
- Deborah L. McGuinness, Rensselaer Polytechnic Institute
- Peter F. Patel-Schneider, Nuance Communications
- Contributors
- Li Ding, formerly at Rensselaer Polytechnic Institute
- Ankesh Khandelwal, Rensselaer Polytechnic Institute
- 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.
This document provides a non-normative quick reference guide to the OWL 2 language. It also provides links to other documents, including the OWL 2 Primer for language introduction and examples, the OWL 2 Structural Specification and Functional Syntax document for more details of the functional syntax, and the OWL 2 New Features and Rationale document for new feature descriptions.
- Status of this Document
- Copyright © 2008-2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
- This document is also available in a non-normative pdf format as an OWL 2 Reference Card in A4 and Letter paper sizes.
Contents
1 Names, Prefixes, and Notation
Names in OWL 2 are IRIs, often written in a shorthand prefix:localname, where prefix: is a prefix name that expands to an IRI, and localname 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 notation conventions in the following tables*:
Letters | Meaning | Letters | Meaning | Letters | Meaning | Letters | Meaning |
---|---|---|---|---|---|---|---|
C | class expression | CN | class name | D | data range | DN | datatype name |
P | object property expression | PN | object property name | R | data property | A | annotation property |
a | individual | aN | individual name | _:a | anonymous individual (a blank node label) | v | literal |
n | non-negative integer** | f | facet | ON | ontology name | U | IRI |
s | IRI or anonymous individual | t | IRI, anonymous individual, or literal | p | prefix name | _:x | blank node |
(a1 … an) | RDF list |
* All of the above can have subscripts. ** as a shorthand for "n"^^xsd:nonNegativeInteger
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), the second column provides links to the Functional Syntax, and the third column gives RDF triples in the Turtle syntax.
2.1 Class Expressions
Language Feature | 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
Language Feature | 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 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:maxCardinality n. |
qualified maximum cardinality | ObjectMaxCardinality(n P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:maxQualifiedCardinality n. _:x owl:onClass C. |
minimum cardinality | ObjectMinCardinality(n P) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:minCardinality n. |
qualified minimum cardinality | ObjectMinCardinality(n P C) | _:x rdf:type owl:Restriction. _:x owl:onProperty P. _:x owl:minQualifiedCardinality n. _:x owl:onClass C. |
Data Property Restrictions
Language Feature | 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. |
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 Feature | Functional Syntax | RDF 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
Language Feature | Functional Syntax | RDF 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 |
Language Feature | Functional Syntax | RDF 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 Feature | Functional Syntax | RDF Syntax |
---|---|---|
named individual | aN | aN |
anonymous individual | _:a | _:a |
literal (datatype value) | "abc"^^DN | "abc"^^DN |
2.4 Data Ranges
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 … 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 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 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 Feature | Functional Syntax | RDF 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 Feature | Functional Syntax | RDF Syntax |
---|---|---|
datatype definition | DatatypeDefinition(DN D) | DN owl:equivalentClass D. |
Assertions
Language Feature | 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) | a rdf:type C. |
positive object property assertion | ObjectPropertyAssertion( PN a1 a2 ) | a1 PN a2. |
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 Feature | Functional Syntax | RDF Syntax |
---|---|---|
Key | HasKey(C (P1 … Pm) (R1 … Rn) ) | C owl:hasKey (P1 … Pm R1 … Rn). m+n>0 |
2.6 Declarations
Language Feature | Functional Syntax | RDF 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 Feature | Functional Syntax | RDF Syntax |
---|---|---|
annotation assertion | AnnotationAssertion(A s t) | s A t. |
annotation of an axiom where the axiom in RDF is one or more triples of the form si U ti, i.e., with the same predicate U. |
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 is _:x U t1 |
AXIOM(Annotation(A t) … ) |
_:x A t. _:x U t1. … |
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 Feature | Functional Syntax | RDF 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 Feature | Functional Syntax | RDF 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 Feature | Functional Syntax | RDF Syntax |
---|---|---|
OWL ontology (importing)1 2 |
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 declaration3 | Prefix(p=U) | @prefix p U. |
- [ ] represents optional constructs
- In the RDF syntax _:x is used in place of ON if there is no ontology name.
- RDF syntax is in Turtle, other RDF serializations may vary.
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:PlainLiteral (RDF plain literals) | |||
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 |
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:PlainLiteral | 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 |
|
Others |
4.2 Additional Vocabulary in OWL 2 RDF Syntax
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 . |
5 Appendix: Change Log (Informative)
5.1 Changes Since Recommendation
This section summarizes the changes to this document since the Recommendation of 27 October, 2009.
- With the publication of the XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes Recommendation of 5 April 2012, the elements of OWL 2 which are based on XSD 1.1 are now considered required, and the note detailing the optional dependency on the XSD 1.1 Candidate Recommendation of 30 April, 2009 has been removed from the "Status of this Document" section.
- Minor typographical errors were corrected as detailed on the OWL 2 Errata page.
5.2 Changes Since Proposed Recommendation
This section summarizes the changes to this document since the Proposed Recommendation of 22 September, 2009.
- Minor editorial changes to "Annotations" table.
- Minor editorial change to the explanation of table headers and others.
- Link to a pdf version of the guide, i.e., the OWL 2 Reference Card.
5.3 Changes Since Candidate Recommendation
This section summarizes the changes to this document since the Candidate Recommendation of 11 June, 2009.
- The "Features At Risk" note w.r.t. the owl:rational and rdf:XMLLiteral datatypes was removed: implementation support has been adequately demonstrated, and the features are no longer considered at risk (see Resolution 5 and Resolution 6, 05 August 2009).
- Some minor editorial changes were made.
6 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 Computing Laboratory), 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 Computing Laboratory), Elisa Kendall (Sandpiper Software), Markus Krötzsch (FZI), Carsten Lutz (Universität Bremen), Deborah L. McGuinness (RPI), Boris Motik (Oxford University Computing Laboratory), 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), Zhe Wu (Oracle Corporation), and Antoine Zimmermann (DERI Galway). We would also like to thank past members of the working group: Jeremy Carroll, Jim Hendler, and Vipul Kashyap.