Working Draft, Updated: 21 January 2021
Document Source Control:
GitHub
Issue Tracking:
GitHub
Editors:
Rafael Gonçalves (Stanford University)
Josef Hardi (Stanford University)
Matthew Horridge (Stanford University)
Contributors:
Alexander García Castro (BASF)
José Antonio Bernabé Díaz (BASF)
Juergen Mueller (BASF)
This document specificies a mapping of the OWL 2 Web Ontology Language to Labeled Property Graphs (LPGs), and vice versa.
This is a public copy of the editors’ draft. It is provided for discussion only and may change at any moment. Do not cite this document other than as work in progress.
Table of Content
This document describes a mapping of OWL 2 ontologies to a Labeled Property Graph (LPG) representation, and vice-versa. The full specification of the mapping is given in the MAPPING document (e.g., for implementation).
Here we enumerate illustrative examples of the kinds of queries that should be both easily expressible (in Cypher) and well performant for large knowledge bases. We use the WebProtégé cloud-based ontology editor as the baseline for performance. The goal is to achieve a query performance that is superior to the performance of executing the same queries in WebProtégé 4.0 (non-LPG).
Example queries:
A
.A
.O
.A
.A
.A
.O
.Our overarching design principle is to prioritize representational consistency over convenience (of query writing, of query response time, etc.). Below we describe some key design choices:
The types of OWL objects are specified by the labels on nodes in a LPG. The types of each OWL object are specified as labels on the nodes that represent those objects, using reserved keywords drawn from the OWL 2 specification (see 1.3 Document Conventions). For example, a node labeled :Class:Entity:ClassExpression
represents an OWL class entity, which is an atomic class expression. Giving the most specific type along with the more generic type(s) allows us to retrieve, for example, all OWL entities in a LPG, or all OWL class expressions.
OWL axioms are mapped to a LPG using a unique node to represent the axiom type with outgoing edges to its elements. Each OWL axiom is assigned a unique node in a LPG, with at least one outgoing edge to a node representing an entity expression. For example, an OWL SubClassOf axiom is mapped to a LPG using one :SubClassOf:Axiom
(multi-label) node and two outgoing edges labeled subClassExpression
and superClassExpression
that link to :ClassExpression
nodes. Representing each OWL axiom with a unique node in a LPG allows the following:
:Literal
or :IRI
nodes linked to the node that represents the annotation subject).Similarly, other OWL constructs such as class expressions and data ranges are mapped to a LPG using a node to represent the construct type (e.g., SomeValuesFrom class expression) with outgoing edges to its elements.
Each named OWL entity is mapped to a unique :Entity
node in a LPG. Every named OWL 2 entity (class, object property, data property, annotation property, individual or datatype) maps to a unique node in a LPG, which is reused whenever the entity is mentioned in axioms. For example, consider the axioms:
AX1: A SubClassOf p some B
AX2: A SubClassOf p some C
AX3: B SubClassOf D
The node for class A
will be reused (and shared) by AX1
and AX2
, and the node for class B
will be reused (and shared) by AX1
and AX3
.
OWL axioms are written out using OWL Functional-Style syntax , similar to the OWL 2 specification.
A Labeled Property Graph diagram consists of nodes and edges. A node is depicted as a rectangle with rounded corners. An edge is depicted as either a uni-directional arrow or a bi-directional arrow.
Non-Terminal Node
Terminal Node
Non-Terminal Node | Terminal Node |
---|---|
1) Named Class. See Section 2.1.1 Class. 2) Complex Class Expressions. See Section 3 Class Expressions. |
|
1) Named Object Property. See Section 2.1.2 Object Property 2) Complex Object Property Expressions. See Section 4 Property Expressions. |
|
Named Data Property. See Section 2.1.3 Data Property. | |
1) Named Individual. See Section 2.1.5 Named Individual. 2) Annonymous Individual. See Section 2.3 Annonymous Individuals. |
|
Data Range Expressions. See Section 5 Data Ranges. |
Classes can be understood as sets of individuals.
LPG Diagram:
Object properties connect pairs of individuals.
LPG Diagram:
Data properties connect individuals with literals. In some knowledge representation systems, functional data properties are called attributes.
LPG Diagram:
Annotation properties can be used to provide an annotation for an ontology, axiom, or an IRI. The structure of annotations is further described in Annotations.
LPG Diagram:
Individuals represent actual objects from the domain. There are two types of individuals in the syntax of OWL 2. Named individuals are given an explicit name that can be used in any ontology to refer to the same object. Named individuals are identified using an IRI.
LPG Diagram:
Datatypes are entities that refer to sets of data values. Thus, datatypes are analogous to classes, the main difference being that the former contain data values such as strings and numbers, rather than individuals. Datatypes are a kind of data range, which allows them to be used in restrictions. As explained in Data Ranges, each data range is associated with an arity; for datatypes, the arity is always one.
The built-in datatype rdfs:Literal denotes any set of data values that contains the union of the value spaces of all datatypes.
LPG Diagram:
In OWL 2, declarations are a type of axiom; thus, to declare an entity in an ontology, one can simply include the appropriate axiom in the ontology. These axioms are nonlogical in the sense that they do not affect the consequences of an OWL 2 ontology.
LPG Diagram:
Literals represent data values such as particular strings or integers. Each literal consists of a lexical form, which is a string, a datatype and an optional language tag. A literal consisting of a lexical form “abc” and a datatype identified by the IRI datatypeIRI is written as “abc”^^datatypeIRI. Furthermore, literals whose datatype is rdf:PlainLiteral can be abbreviated as plain RDF literals.
LPG Diagram:
If an individual is not expected to be used outside a particular ontology, one can use an anonymous individual, which is identified by a local node ID rather than a global IRI.
LPG Diagram:
An intersection class expression ObjectIntersectionOf( CE1 ... CEn )
contains all individuals that are instances of all class expressions CEi
for 1 ≤ i ≤ n.
OWL 2 Notation:
ObjectIntersectionOf := ‘ObjectIntersectionOf’ ‘(‘ ClassExpression ClassExpression ‘)’
LPG Diagram:
A union class expression ObjectUnionOf( CE1 ... CEn )
contains all individuals that are instances of at least one class expression CEi
for 1 ≤ i ≤ n.
OWL 2 Notation:
ObjectUnionOf := ‘ObjectUnionOf’ ‘(‘ ClassExpression ClassExpression ‘)’
LPG Diagram:
A complement class expression ObjectComplementOf( CE )
contains all individuals that are not instances of the class expression CE
.
OWL 2 Notation:
ObjectComplementOf := ‘ObjectComplementOf’ ‘(‘ ClassExpression ‘)’
LPG Diagram:
An enumeration of individuals ObjectOneOf( a1 ... an )
contains exactly the individuals ai
with 1 ≤ i ≤ n.
OWL 2 Notation:
ObjectOneOf := ‘ObjectOneOf’ ‘(‘ Individual { Individual }’)’
LPG Diagram:
An existential class expression ObjectSomeValuesFrom( OPE CE )
consists of an object property expression OPE
and a class expression CE
, and it contains all those individuals that are connected by OPE
to an individual that is an instance of CE
.
OWL 2 Notation:
ObjectSomeValuesFrom := ‘ObjectSomeValuesFrom’ ‘(‘ ObjectPropertyExpression ClassExpression ‘)’
LPG Diagram:
A universal class expression ObjectAllValuesFrom( OPE CE )
consists of an object property expression OPE
and a class expression CE
, and it contains all those individuals that are connected by OPE
only to individuals that are instances of CE
.
OWL 2 Notation:
ObjectAllValuesFrom := ‘ObjectAllValuesFrom’ ‘(‘ ObjectPropertyExpression ClassExpression ‘)’
LPG Diagram:
A has-value class expression ObjectHasValue( OPE a )
consists of an object property expression OPE
and an individual a, and it contains all those individuals that are connected by OPE
to a
.
OWL 2 Notation:
ObjectHasValue := ‘ObjectHasValue’ ‘(‘ ObjectPropertyExpression Individual ‘)’
LPG Diagram:
A self-restriction ObjectHasSelf( OPE )
consists of an object property expression OPE
, and it contains all those individuals that are connected by OPE
to themselves.
OWL 2 Notation:
ObjectHasSelf := ‘ObjectHasSelf’ ‘(‘ ObjectPropertyExpression ‘)’
LPG Diagram:
A minimum cardinality expression ObjectMinCardinality( n OPE CE )
consists of a nonnegative integer n
, an object property expression OPE
, and a class expression CE
, and it contains all those individuals that are connected by OPE
to at least n
different individuals that are instances of CE
. If CE
is missing, it is taken to be owl:Thing.
OWL 2 Notation:
ObjectMinCardinality := ‘ObjectMinCardinality’ ‘(‘ nonNegativeInteger ObjectPropertyExpression [ ClassExpression ] ‘)’
LPG Diagram:
A maximum cardinality expression ObjectMaxCardinality( n OPE CE )
consists of a nonnegative integer n
, an object property expression OPE
, and a class expression CE
, and it contains all those individuals that are connected by OPE
to at most n
different individuals that are instances of CE
. If CE
is missing, it is taken to be owl:Thing.
OWL 2 Notation:
ObjectMaxCardinality := ‘ObjectMaxCardinality’ ‘(‘ nonNegativeInteger ObjectPropertyExpression [ ClassExpression ] ‘)’
LPG Diagram:
An exact cardinality expression ObjectExactCardinality( n OPE CE )
consists of a nonnegative integer n
, an object property expression OPE
, and a class expression CE
, and it contains all those individuals that are connected by OPE
to exactly n
different individuals that are instances of CE
. If CE
is missing, it is taken to be owl:Thing.
OWL 2 Notation:
ObjectExactCardinality := ‘ObjectExactCardinality’ ‘(‘ nonNegativeInteger ObjectPropertyExpression [ ClassExpression ] ‘)’
LPG Diagram:
An existential class expression DataSomeValuesFrom( DPE1 ... DPEn DR )
consists of n
data property expressions DPEi
, 1 ≤ i ≤ n, and a data range DR
whose arity must be n
. Such a class expression contains all those individuals that are connected by DPi
to literals lti
, 1 ≤ i ≤ n, such that the tuple ( lt1 , ..., ltn )
is in DR
.
OWL 2 Notation:
DataSomeValuesFrom := ‘DataSomeValuesFrom’ ‘(‘ DataPropertyExpression { DataPropertyExpression } DataRange ‘)’
LPG Diagram:
A universal class expression DataAllValuesFrom( DPE1 ... DPEn DR )
consists of n
data property expressions DPEi
, 1 ≤ i ≤ n, and a data range DR
whose arity must be n
. Such a class expression contains all those individuals that are connected by DPi
only to literals lti
, 1 ≤ i ≤ n, such that each tuple ( lt1 , ..., ltn )
is in DR
.
OWL 2 Notation:
DataAllValuesFrom := ‘DataAllValuesFrom’ ‘(‘ DataPropertyExpression { DataPropertyExpression } DataRange ‘)’
LPG Diagram:
A has-value class expression DataHasValue( DP lt )
consists of a data property DP
and a literal lt
, and it contains all those individuals that are connected by DP
to lt
.
OWL 2 Notation:
DataHasValue := ‘DataHasValue’ ‘(‘ DataProperty Literal ‘)’
LPG Diagram:
A minimum cardinality expression DataMinCardinality( n DPE DR )
consists of a nonnegative integer n
, a data property expression DPE
, and a unary data range DR
, and it contains all those individuals that are connected by DPE
to at least n
different literals in DR
. If DR
is not present, it is taken to be rdfs:Literal.
OWL 2 Notation:
DataMinCardinality := ‘DataMinCardinality’ ‘(‘ nonNegativeInteger DataPropertyExpression [ DataRange ] ‘)’
LPG Diagram:
A maximum cardinality expression DataMaxCardinality( n DPE DR )
consists of a nonnegative integer n
, a data property expression DPE
, and a unary data range DR
, and it contains all those individuals that are connected by DPE
to at most n
different literals in DR
. If DR
is not present, it is taken to be rdfs:Literal.
OWL 2 Notation:
DataMaxCardinality := ‘DataMaxCardinality’ ‘(‘ nonNegativeInteger DataPropertyExpression [ DataRange ] ‘)’
LPG Diagram:
An exact cardinality expression DataExactCardinality( n DPE DR )
consists of a nonnegative integer n
, a data property expression DPE
, and a unary data range DR
, and it contains all those individuals that are connected by DPE
to exactly n
different literals in DR
. If DR
is not present, it is taken to be rdfs:Literal.
OWL 2 Notation:
DataExactCardinality := ‘DataExactCardinality’ ‘(‘ nonNegativeInteger DataPropertyExpression [ DataRange ] ‘)’
LPG Diagram:
An inverse object property expression ObjectInverseOf( P ) connects an individual I1 with I2 if and only if the object property P connects I2 with I1.
OWL 2 Notation:
InverseObjectProperty := ‘ObjectInverseOf’ ‘(‘ ObjectProperty ‘)’
LPG Diagram:
An intersection data range DataIntersectionOf( DR1 ... DRn )
contains all tuples of literals that are contained in each data range DRi
for 1 ≤ i ≤ n. All data ranges DRi
must be of the same arity, and the resulting data range is of that arity as well.
OWL 2 Notation:
DataIntersectionOf := ‘DataIntersectionOf’ ‘(‘ DataRange DataRange { DataRange } ‘)’
LPG Diagram:
A union data range DataUnionOf( DR1 ... DRn )
contains all tuples of literals that are contained in the at least one data range DRi
for 1 ≤ i ≤ n. All data ranges DRi
must be of the same arity, and the resulting data range is of that arity as well.
OWL 2 Notation:
DataUnionOf := ‘DataUnionOf’ ‘(‘ DataRange DataRange { DataRange } ‘)’
LPG Diagram:
A complement data range DataComplementOf( DR )
contains all tuples of literals that are not contained in the data range DR
. The resulting data range has the arity equal to the arity of DR
.
OWL 2 Notation:
DataComplementOf := ‘DataComplementOf’ ‘(‘ DataRange ‘)’
LPG Diagram:
An enumeration of literals DataOneOf( lt1 ... ltn )
contains exactly the explicitly specified literals lti
with 1 ≤ i ≤ n. The resulting data range has arity one.
OWL 2 Notation:
DataOneOf := ‘DataOneOf’ ‘(‘ Literal { Literal } ‘)’
LPG Diagram:
A datatype restriction DatatypeRestriction( DT F1 lt1 ... Fn ltn )
consists of a unary datatype DT
and n
pairs ( Fi , lti )
. The resulting data range is unary and is obtained by restricting the value space of DT
according to the semantics of all ( Fi , vi )
(multiple pairs are interpreted conjunctively), where vi
are the data values of the literals lti
.
In an OWL 2 DL ontology, each pair ( Fi , vi )
must be contained in the facet space of DT
(see Datatype Maps from the OWL 2 specification document).
OWL 2 Notation:
DatatypeRestriction := ‘DatatypeRestriction’ ‘(‘ Datatype constrainingFacet restrictionValue { constrainingFacet restrictionValue } ‘)’
constrainingFacet := IRI
restrictionValue := Literal
LPG Diagram:
A subclass axiom SubClassOf( CE1 CE2 )
states that the class expression CE1
is a subclass of the class expression CE2
. Roughly speaking, this states that CE1
is more specific than CE2
.
OWL 2 Notation:
SubClassOf := ‘SubClassOf’ ‘(‘ { Annotation } subClassExpression superClassExpression ‘)’
subClassExpression := ClassExpression
superClassExpression := ClassExpression
LPG Diagram:
An equivalent classes axiom EquivalentClasses( CE1 ... CEn )
states that all of the class expressions CEi
, 1 ≤ i ≤ n, are semantically equivalent to each other. This axiom allows one to use each CEi
as a synonym for each CEj
— that is, in any expression in the ontology containing such an axiom, CEi
can be replaced with CEj
without affecting the meaning of the ontology.
OWL 2 Notation:
EquivalentClasses := ‘EquivalentClasses’ ‘(‘ { Annotation } ClassExpression ClassExpression { ClassExpression } ‘)’
LPG Diagram:
A disjoint classes axiom DisjointClasses( CE1 ... CEn )
states that all of the class expressions CEi
, 1 ≤ i ≤ n, are pairwise disjoint; that is, no individual can be at the same time an instance of both CEi
and CEj
for i ≠ j.
OWL 2 Notation:
DisjointClasses := ‘DisjointClasses’ ‘(‘ { Annotation } ClassExpression ClassExpression { ClassExpression } ‘)’
LPG Diagram:
An object subproperty axiom SubObjectPropertyOf( OPE1 OPE2 )
. This axiom states that the object property expression OPE1
is a subproperty of the object property expression OPE2
— that is, if an individual x
is connected by OPE1
to an individual y
, thenx
is also connected by OPE2
to y
.
OWL 2 Notation:
SubObjectPropertyOf := ‘SubObjectPropertyOf’ ‘(‘ { Annotation } subObjectPropertyExpression superObjectPropertyExpression ‘)’
subObjectPropertyExpression := ObjectPropertyExpression
superObjectPropertyExpression := ObjectPropertyExpression
LPG Diagram:
An equivalent object properties axiom EquivalentObjectProperties( OPE1 ... OPEn )
states that all of the object property expressions OPEi
, 1 ≤ i ≤ n, are semantically equivalent to each other. This axiom allows one to use each OPEi
as a synonym for each OPEj
— that is, in any expression in the ontology containing such an axiom, OPEi
can be replaced with OPEj
without affecting the meaning of the ontology.
OWL 2 Notation:
EquivalentObjectProperties := ‘EquivalentObjectProperties’ ‘(‘ { Annotation } ObjectPropertyExpression ObjectPropertyExpression { ObjectPropertyExpression } ‘)’
LPG Diagram:
A disjoint object properties axiom DisjointObjectProperties( OPE1 ... OPEn )
states that all of the object property expressions OPEi
, 1 ≤ i ≤ n, are pairwise disjoint; that is, no individual x
can be connected to an individual y
by both OPEi
and OPEj
for i ≠ j.
OWL 2 Notation:
DisjointObjectProperties := ‘DisjointObjectProperties’ ‘(‘ { Annotation } ObjectPropertyExpression ObjectPropertyExpression { ObjectPropertyExpression } ‘)’
LPG Diagram:
An inverse object properties axiom InverseObjectProperties( OPE1 OPE2 )
states that the object property expression OPE1
is an inverse of the object property expression OPE2
. Thus, if an individual x
is connected by OPE1
to an individual y
, then y
is also connected by OPE2
to x
, and vice versa.
OWL 2 Notation:
InverseObjectProperties := ‘InverseObjectProperties’ ‘(‘ { Annotation } ObjectPropertyExpression ObjectPropertyExpression ‘)’
LPG Diagram:
An object property domain axiom ObjectPropertyDomain( OPE CE )
states that the domain of the object property expression OPE
is the class expression CE
— that is, if an individual x
is connected by OPE
with some other individual, then x
is an instance of CE
.
OWL 2 Notation:
ObjectPropertyDomain := ‘ObjectPropertyDomain’ ‘(‘ { Annotation } ObjectPropertyExpression ClassExpression ‘)’
LPG Diagram:
An object property range axiom ObjectPropertyRange( OPE CE )
states that the range of the object property expression OPE
is the class expression CE
— that is, if some individual is connected by OPE
with an individual x
, then x
is an instance of CE
.
OWL 2 Notation:
ObjectPropertyRange := ‘ObjectPropertyRange’ ‘(‘ { Annotation } ObjectPropertyExpression ClassExpression ‘)’
LPG Diagram:
An object property functionality axiom FunctionalObjectProperty( OPE )
states that the object property expression OPE
is functional — that is, for each individual x
, there can be at most one distinct individual y
such that x
is connected by OPE
to y
.
OWL 2 Notation:
FunctionalObjectProperty := ‘FunctionalObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
An object property inverse functionality axiom InverseFunctionalObjectProperty( OPE )
states that the object property expression OPE
is inverse-functional — that is, for each individual x
, there can be at most one individual y
such that y
is connected by OPE
with x
.
OWL 2 Notation:
InverseFunctionalObjectProperty := ‘InverseFunctionalObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
An object property reflexivity axiom ReflexiveObjectProperty( OPE )
states that the object property expression OPE
is reflexive — that is, each individual is connected by OPE
to itself.
OWL 2 Notation:
ReflexiveObjectProperty := ‘ReflexiveObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
An object property irreflexivity axiom IrreflexiveObjectProperty( OPE )
states that the object property expression OPE
is irreflexive — that is, no individual is connected by OPE
to itself.
OWL 2 Notation:
IrreflexiveObjectProperty := ‘IrreflexiveObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
An object property symmetry axiom SymmetricObjectProperty( OPE )
states that the object property expression OPE
is symmetric — that is, if an individual x
is connected by OPE
to an individual y
, then y
is also connected by OPE
to x
.
OWL 2 Notation:
SymmetricObjectProperty := ‘SymmetricObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
An object property asymmetry axiom AsymmetricObjectProperty( OPE )
states that the object property expression OPE
is asymmetric — that is, if an individual x
is connected by OPE
to an individual y
, then y
cannot be connected by OPE
to x
.
OWL 2 Notation:
AsymmetricObjectProperty := ‘AsymmetricObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
An object property transitivity axiom TransitiveObjectProperty( OPE )
states that the object property expression OPE
is transitive — that is, if an individual x
is connected by OPE
to an individual y
that is connected by OPE
to an individual z
, then x
is also connected by OPE
to z
.
OWL 2 Notation:
TransitiveObjectProperty := ‘TransitiveObjectProperty’ ‘(‘ { Annotation } ObjectPropertyExpression ‘)’
LPG Diagram:
A data subproperty axiom SubDataPropertyOf( DP1 DP2 )
states that the data property DP1
is a subproperty of the data property DP2
— that is, if an individual x
is connected by DP1
to a literal y
, then x
is connected by DP2
to y
as well.
OWL 2 Notation:
SubDataPropertyOf := ‘SubDataPropertyOf’ ‘(‘ { Annotation } subDataProperty superDataProperty ‘)’
subDataProperty := DataProperty
superDataProperty := DataProperty
LPG Diagram:
An equivalent data properties axiom EquivalentDataProperties( DP1 ... DPn )
states that all the data property DPi
, 1 ≤ i ≤ n, are semantically equivalent to each other. This axiom allows one to use each DPi
as a synonym for each DPj
— that is, in any expression in the ontology containing such an axiom, DPi
can be replaced with DPj
without affecting the meaning of the ontology.
OWL 2 Notation:
EquivalentDataProperties := ‘EquivalentDataProperties’ ‘(‘ { Annotation } DataProperty DataProperty { DataProperty } ‘)’
LPG Diagram:
A disjoint data properties axiom DisjointDataProperties( DP1 ... DPn )
states that all of the data property DPi
, 1 ≤ i ≤ n, are pairwise disjoint; that is, no individual x
can be connected to a literal y
by both DPi
and DPj
for i ≠ j.
OWL 2 Notation:
DisjointDataProperties := ‘DisjointDataProperties’ ‘(‘ { Annotation } DataProperty DataProperty { DataProperty } ‘)’
LPG Diagram:
A data property domain axiom DataPropertyDomain( DP CE )
states that the domain of the data property DP
is the class expression CE
— that is, if an individual x
is connected by DP
with some literal, then x
is an instance of CE
.
OWL 2 Notation:
DataPropertyDomain := ‘DataPropertyDomain’ ‘(‘ { Annotation } DataProperty ClassExpression ‘)’
LPG Diagram:
A data property range axiom DataPropertyRange( DP DR )
states that the range of the data property DP
is the data range DR
— that is, if some individual is connected by DP
with a literal x
, then x
is in DR
. The arity of DR
must be one.
OWL 2 Notation:
DataPropertyRange := ‘DataPropertyRange’ ‘(‘ { Annotation } DataProperty DataRange ‘)’
LPG Diagram:
A data property functionality axiom FunctionalDataProperty( DP )
states that the data property DP
is functional — that is, for each individual x
, there can be at most one distinct literal y
such that x
is connected by DP
with y
.
OWL 2 Notation:
FunctionalDataProperty := ‘FunctionalDataProperty’ ‘(‘ { Annotation } DataProperty ‘)’
LPG Diagram:
A class assertion ClassAssertion( CE a )
states that the individual a
is an instance of the class expression CE
.
OWL 2 Notation:
ClassAssertion := ‘ClassAssertion’ ‘(‘ { Annotation } ClassExpression Individual ‘)’
LPG Diagram:
A positive object property assertion ObjectPropertyAssertion( OPE a1 a2 )
states that the individual a1
is connected by the object property expression OPE
to the individual a2
.
OWL 2 Notation:
ObjectPropertyAssertion := ‘ObjectPropertyAssertion’ ‘(‘ { Annotation } ObjectPropertyExpression sourceIndividual targetIndividual ‘)’
LPG Diagram:
A negative object property assertion NegativeObjectPropertyAssertion( OPE a1 a2 )
states that the individual a1
is not connected by the object property expression OPE
to the individual a2
.
OWL 2 Notation:
NegativeObjectPropertyAssertion := ‘NegativeObjectPropertyAssertion’ ‘(‘ { Annotation } ObjectPropertyExpression sourceIndividual targetIndividual ‘)’
LPG Diagram:
A positive data property assertion DataPropertyAssertion( DP a lt )
states that the individual a is connected by the data property DP
to the literal lt
.
OWL 2 Notation:
DataPropertyAssertion := ‘DataPropertyAssertion’ ‘(‘ { Annotation } DataPropertyExpression sourceIndividual targetValue ‘)’
LPG Diagram:
A negative data property assertion NegativeDataPropertyAssertion( DP a lt )
states that the individual a is not connected by the data property DP
to the literal lt
.
OWL 2 Notation:
NegativeDataPropertyAssertion := ‘NegativeDataPropertyAssertion’ ‘(‘ { Annotation } DataPropertyExpression sourceIndividual targetValue ‘)’
LPG Diagram:
An individual equality axiom SameIndividual( a1 ... an )
states that all of the individuals ai
, 1 ≤ i ≤ n, are equal to each other. This axiom allows one to use each ai
as a synonym for each aj
— that is, in any expression in the ontology containing such an axiom, ai
can be replaced with aj
without affecting the meaning of the ontology.
OWL 2 Notation:
SameIndividual := ‘SameIndividual’ ‘(‘ { Annotation } Individual Individual { Individual } ‘)’
LPG Diagram:
An individual inequality axiom DifferentIndividuals( a1 ... an )
states that all of the individuals ai
, 1 ≤ i ≤ n, are different from each other; that is, no individuals ai
and aj
with i ≠ j can be derived to be equal. This axiom can be used to axiomatize the unique name assumption — the assumption that all different individual names denote different individuals.
OWL 2 Notation:
DifferentIndividuals := ‘DifferentIndividuals’ ‘(‘ { Annotation } Individual Individual { Individual } ‘)’
LPG Diagram:
Ontologies, axioms, and annotations themselves can be annotated using annotations. Such annotations consist of an annotation property and an annotation value, where the latter can be anonymous individuals, IRIs, and literals.
OWL 2 Notation:
Annotation := ‘Annotation’ ‘(‘ annotationAnnotations AnnotationProperty AnnotationValue ‘)’
annotationAnnotations := { Annotation }
AnnotationValue := AnonymousIndividual | IRI | Literal |
LPG Diagram:
An annotation assertion AnnotationAssertion( AP as av )
states that the annotation subject as
— an IRI or an anonymous individual — is annotated with the annotation property AP
and the annotation value av
.
OWL 2 Notation:
AnnotationAssertion := ‘AnnotationAssertion’ ‘(‘ { Annotation } AnnotationProperty AnnotationSubject AnnotationValue ‘)’
AnnotationSubject := IRI | AnonymousIndividual |
AnnotationValue := AnonymousIndividual | IRI | Literal |
LPG Diagram:
An annotation subproperty axiom SubAnnotationPropertyOf( AP1 AP2 )
states that the annotation property AP1
is a subproperty of the annotation property AP2
.
OWL 2 Notation:
SubAnnotationPropertyOf := ‘SubAnnotationPropertyOf’ ‘(‘ { Annotation } subAnnotationProperty superAnnotationProperty ‘)’
subAnnotationProperty := AnnotationProperty
superAnnotationProperty := AnnotationProperty
LPG Diagram:
An annotation property domain axiom AnnotationPropertyDomain( AP U )
states that the domain of the annotation property AP
is the IRI U
.
OWL 2 Notation:
AnnotationPropertyDomain := ‘AnnotationPropertyDomain’ ‘(‘ axiomAnnotations AnnotationProperty IRI ‘)’
LPG Diagram:
An annotation property range axiom AnnotationPropertyRange( AP U )
states that the range of the annotation property AP
is the IRI U
.
OWL 2 Notation:
AnnotationPropertyRange := ‘AnnotationPropertyRange’ ‘(‘ axiomAnnotations AnnotationProperty IRI ‘)’
LPG Diagram: