owl2lpg

Mapping of OWL 2 Web Ontology Language to Labeled Property Graphs

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)


Abstract

This document specificies a mapping of the OWL 2 Web Ontology Language to Labeled Property Graphs (LPGs), and vice versa.

Status of this document

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


1 Introduction

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

1.1 Main Requirements

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:

  1. Get the axioms in a frame for class A.
  2. Get the axioms that mention class A.
  3. Get the revisions for an ontology O.
  4. Get the revisions that alter the frame for class A.
  5. Get the authors of changes to class A.
  6. Get the last changes for class A.
  7. Get the axioms in the latest revision of ontology O.

1.2 Design Choices

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:

1.3 Document Conventions

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

node-non-terminal

Terminal Node

node-terminal

Non-Terminal Node Terminal Node
node-class-expression 1) Named Class. See Section 2.1.1 Class.
2) Complex Class Expressions. See Section 3 Class Expressions.
node-object-property-expression 1) Named Object Property. See Section 2.1.2 Object Property
2) Complex Object Property Expressions. See Section 4 Property Expressions.
node-data-property-expression Named Data Property. See Section 2.1.3 Data Property.
node-individual 1) Named Individual. See Section 2.1.5 Named Individual.
2) Annonymous Individual. See Section 2.3 Annonymous Individuals.
node-data-range Data Range Expressions. See Section 5 Data Ranges.

2 Entities, Literals, and Anonymous Individuals

2.1 Entities

2.1.1 Class

Classes can be understood as sets of individuals.

LPG Diagram:

node-entity-class

2.1.2 Object Property

Object properties connect pairs of individuals.

LPG Diagram:

node-entity-object-property

2.1.3 Data Property

Data properties connect individuals with literals. In some knowledge representation systems, functional data properties are called attributes.

LPG Diagram:

node-entity-data-property

2.1.4 Annotation Property

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:

node-entity-annotation-property

2.1.5 Named Individual

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:

node-entity-named-individual

2.1.6 Datatype

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:

node-entity-datatype

2.1.7 Entity Declaration Axiom

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:

axiom-entity-declaration

2.2 Literals

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:

node-literal

2.3 Annonymous Individuals

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:

node-annonymous-individual

3 Class Expressions

3.1 Propositional Connectives and Enumeration of Individuals

3.1.1 Intersection of Class Expressions

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:

class-expression-object-intersection

3.1.2 Union of Class Expressions

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:

class-expression-object-union

3.1.3 Complement of Class Expressions

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:

class-expression-object-complement

3.1.4 Enumeration of Individuals

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:

class-expression-object-one-of

3.2 Object Property Restrictions

3.2.1 Existential Quantification

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:

class-expression-object-some-values

3.2.2 Universal Quantification

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:

class-expression-object-all-values

3.2.3 Individual Value Restriction

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:

class-expression-object-has-value

3.2.4 Self-Restriction

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:

class-expression-object-has-self

3.3 Object Property Cardinality Restrictions

3.3.1 Minimum Cardinality

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:

class-expression-object-min-cardinality

3.3.2 Maximum Cardinality

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:

class-expression-object-max-cardinality

3.3.3 Exact Cardinality

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:

class-expression-object-exact-cardinality

3.4 Data Property Restrictions

3.4.1 Existential Quantification

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:

class-expression-data-some-values

3.4.2 Universal Quantification

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:

class-expression-data-all-values

3.4.3 Literal Value Restriction

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:

class-expression-data-has-value

3.5 Data Property Cardinality Restrictions

3.5.1 Minimum Cardinality

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:

class-expression-data-cardinalities

3.5.2 Maximum Cardinality

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:

class-expression-data-max-cardinality

3.5.3 Exact Cardinality

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:

class-expression-data-exact-cardinality

4 Property Expressions

4.1 Inverse Object Properties

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:

property-expression-inverse-objectproperty

5 Data Ranges

5.1 Intersection of Data Ranges

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:

data-ranges-intersection

5.2 Union of Data Ranges

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:

data-ranges-union

5.3 Complement of Data Ranges

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:

data-ranges-complement

5.4 Enumeration of Literals

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:

data-ranges-enumeration-of-literals

5.5 Datatype Restrictions

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:

data-ranges-datatype-restriction

6 Axioms

6.1 Class Expression Axioms

6.1.1 Subclass

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:

axiom-subclass-of

6.1.2 Equivalent Classes

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:

axiom-equivalent-classes

6.1.3 Disjoint Classes

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:

axiom-disjoint-classes

6.2 Object Property Axioms

6.2.1 Object Subproperties

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:

axiom-subobjectproperty-of

6.2.2 Equivalent Object Properties

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:

axiom-equivalent-objectproperties

6.2.3 Disjoint Object Properties

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:

axiom-disjoint-objectproperties

6.2.4 Inverse Object Properties

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:

axiom-inverse-objectproperties

6.2.5 Object Property Domain

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:

axiom-objectproperty-domain

6.2.6 Object Property Range

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:

axiom-objectproperty-range

6.2.7 Functional Object Property

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:

axiom-functional-objectproperty

6.2.8 Inverse Functional Object Property

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:

axiom-inverse-functional-objectproperty

6.2.9 Reflexive Object Property

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:

axiom-reflexive-objectproperty

6.2.10 Irreflexive Object Property

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:

axiom-irreflexive-objectproperty

6.2.11 Symmetric Object Property

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:

axiom-symmetric-objectproperty

6.2.12 Asymmetric Object Property

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:

axiom-asymmetric-objectproperty

6.2.13 Transitive Object Property

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:

axiom-transitive-objectproperty

6.3 Data Property Axioms

6.3.1 Data Subproperties

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:

axiom-subdataproperty-of

6.3.2 Equivalent Data Properties

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:

axiom-equivalent-dataproperties

6.3.3 Disjoint Data Properties

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:

axiom-disjoint-dataproperties

6.3.4 Data Property Domain

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:

axiom-dataproperty-domain

6.3.5 Data Property Range

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:

axiom-dataproperty-range

6.3.6 Functional Data Properties

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:

axiom-functional-dataproperty

6.4 Assertions

6.4.1 Class Assertions

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:

axiom-class-assertion

6.4.2 Positive Object Property Assertions

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:

axiom-objectproperty-assertion

6.4.3 Negative Object Property Assertions

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:

axiom-negative-objectproperty-assertion

6.4.4 Positive Data Property Assertions

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:

axiom-dataproperty-assertion

6.4.5 Negative Data Property Assertions

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:

axiom-negative-dataproperty-assertion

6.4.6 Individual Equality

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:

axiom-same-individual

6.4.7 Individual Inequality

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:

axiom-different-individuals

7 Annotations

7.1 Annotation of Ontologies, Axioms, and other Annotations

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:

annotation

7.2 Annotation Axioms

7.2.1 Annotation Assertions

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:

axiom-annotation-assertion

7.2.2 Annotation Subproperties

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:

axiom-subannotationproperty-of

7.2.3 Annotation Property Domain

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:

axiom-annotationproperty-domain

7.2.4 Annotation Property Range

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:

axiom-annotationproperty-range