Reasoning Violations Ontology

IRI:
http://dacura.cs.tcd.ie/data/rvo#
Date:
11/11/2015
Current version:
0.1.02
Authors:
Bojan Božić
Contributors:
Bojan Božić
Gavin Mendel-Gleason
Kevin C. Feeney
Rob Brennan
Other visualisation:
Ontology source

Abstract

The Reasoning Violations Ontology (RVO) is a new OWL Dl, which describes both ABox and TBox reasoning errors for the integration of reasoners into data lifecycle tool-chains. The ontology covers violations of the OWL 2 direct semantics and syntax detected on both the schema and instance level over the full range of OWL 2 and RDFS language constructs. It supports error localisation and repair by defining properties that both identify the statement where a violation is detected, and by providing context information on the violation which may help semantic data publishers to fix them. We have developed RVO to provide a structured way to exchange knowledge of reasoning errors between reasoners and their clients, such as for client-side representation of reasoning and constraint checking results.

Table of Content

  1. Introduction
  2. Classes
  3. Object Properties
  4. Data Properties
  5. Namespace Declarations

Introduction

The purpose of RVO is to enable a reasoner to describe reasoning errors detected in an input ontology, in order to facilitate the integration of reasoners into semantic web toolchains. It is defined as a simple OWL 2 ontology that is amenable to RDFS-based interpretations or use as a linked data vocabulary without any dependence on reasoning. In future, an RDF version of the ontology is planned, in order to support interpretation by RDF clients. A permanent identifier for the ontology has been registered with the W3C permanent identifier community group. The full source of the ontology is published online. This ontology is used to describe RDF and OWL reasoning violation messages in the Dacura Quality Service. These are generated by running an RDF/RDFS/OWL-DL reasoner over an RDF-based ontology model and allowing the Dacura quality service to report any integrity violations detected at schema or instance level. These violations report areas where the input model is logically inconsistent or breaks RDFS/OWL semantics or axioms. Violations may be reported as based on open world or closed world assumptions. The open world is the default OWL semantics and can typically only detect a limited number of problems due to incomplete knowledge. The closed world interpretation assumes that you have provided all relevant aspects of the model and is able to detect a much wider range of violations, e.g. missing or misspelled term definitions. This is often useful during ontology development or in a system that interprets OWL as a constraint language.

A common task performed with semantic web reasoners is the detection and reporting of errors or inconsistencies found in an ontology. This task frequently occurs within the ontology authoring, interlinking, classification, quality analysis and evolution phases of the linked data lifecycle. However many tools are typically integrated as a tool-chain to manage the entire lifecycle or even the fullrange of activities within a single lifecycle stage. A specific issue for reasoner integration is that there is no common definition of the range of reasoning errors which could occur while working on an OWL or RDF(S) ontology. Having such a specification would allow machine-readability and interpretation of detailed error messages. Furthermore, this would allow tools to verify OWL DL compliance of an ontology, find out which best practice requirements the ontology meets or violates, track the impact of interpreting the ontology in open and closed world contexts, identify the exact position of violations, and support intelligent visualisation. The research question that this paper addresses is: to what extent can a dedicated reasoning error ontology describe reasoning errors and simplify integration of reasoners into data lifecycle tool-chains?

Base Classes

Violation Classes

Class violations are used for reporting issues regarding the TBox and instance violations ABox in general. Therefore, class violations are reported when e.g. property domains are missing, subsumption errors are detected, or class and property cycles are found. Instance violations show instances which are not elements of valid classes, cardinalities which are incorrect, property constraints that are violated, literals and objects which are confused, etc.

Example

This example shows a ClassViolation which is a SchemaViolation and more specifically a ClassCycleViolation. Such specific violation detection results make it possible to provide exact suggestions to ontology developers or repair agents and trigger ontology improvements.

Ontology Snippet Producing the Violation

seshat:Territory seshat:hasValue xsd:DateTime .

Resulting RDF Graph after Validation

Classes

Classc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#Class

This is the class which produced a violation.

is in domain of
Defined at Linedp
is in range of
Childop, Classop, Domainop, Parentop, Parent Domainop, Parent Rangeop, Qualified onop, Rangeop

Class Cycle Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#ClassCycleViolation

The class has a class cycle.

has super-classes
Class Violationc
is in domain of
Pathdp

Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#ClassViolation

A violation which is caused by an inconsistent or invalid class definition.

has super-classes
Schema Violationc
has sub-classes
Class Cycle Violationc, No Immediate Class Violationc, Not Domain Class Violationc, Not Unique Class Label Violationc, Not Unique Class Name Violationc, Orphan Class Violationc
is in domain of
Childop, Parentop

Constraint Typec back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#ConstraintType

Specifies whether the constraint exists in a closed or open world.

is equivalent to
{ closedworld , openworld }
is in range of
Constraint Typeop

Data Invalid at Datatype Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#DataInvalidAtDatatypeViolation

Not an element of enumeration or not an element of intersection or not an element of union or literal cannot be an object.

has super-classes
Not an Element Violationc
has sub-classes
Not Base Type Element Violationc

Domain Not Subsumed Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#DomainNotSubsumedViolation

Invalid domain on a property has been caused by failure of domain subsumption.

has super-classes
Property Domain Violationc
is in domain of
Parent Domainop, Parent Properyop

Edge Orphan Instance Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#EdgeOrphanInstanceViolation

The instance has no class or an invalid domain class.

has super-classes
Not an Element Violationc
is in domain of
Objectop, Predicateop, Subjectop

Elementc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#Element

This is the element which was involved in a violation.

is in domain of
Defined at Linedp
is in range of
Elementop, Valueop

Instance Blank Node Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#InstanceBlankNodeViolation

Subject, preidcate, or object is a blank node.

has super-classes
Instance Violationc
is in domain of
Objectop, Predicateop, Subjectop

Instance Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#InstancePropertyViolation

No property class associated with property.

has super-classes
Instance Violationc
has sub-classes
Invalid Edge Violationc, Local Orphan Property Violationc, Non Functional Property Violationc, Not Inverse Functional Property Violationc
is in domain of
Objectop, Predicateop, Subjectop

Instance Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#InstanceViolation

A violation which is caused by inconsistancies on the instance level.

has super-classes
Violationc
has sub-classes
Instance Blank Node Violationc, Instance Property Violationc, No Property Domain Violationc, No Property Range Violationc, Not an Element Violationc

Invalid Domain Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#InvalidDomainViolation

The property has an invalid domain.

has super-classes
Property Domain Violationc

Invalid Edge Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#InvalidEdgeViolation

Range/domain cardinality of deleted predicates not respected.

has super-classes
Instance Property Violationc

Invalid Range Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#InvalidRangeViolation

The property has an invalid or unimplemented range.

Example: ObjectProperty Range class A is not a valid range for property A.

has super-classes
Property Range Violationc

Local Orphan Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#LocalOrphanPropertyViolation

No property class associated with property.

has super-classes
Instance Property Violationc

No Explicit Domain Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NoExplicitDomainViolation

Property has no explicit domain.

has super-classes
Property Domain Violationc

No Explicit Range Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NoExplicitRangeViolation

Property has no explicit range.

has super-classes
Property Range Violationc

No Immediate Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NoImmediateClassViolation

An undefined class is used as domain for a property or the class is defined but the superclass is not or the class is not a subclass of a defined class or the class is an intersection of a defined class but not a defined class or the class is not an intersection of a defined class or the class is not a union of a defined class or the class is a union but not a defined class.

has super-classes
Class Violationc
has sub-classes
Not Intersection of Class Violationc, Not Sub Class of Class Violationc, Not Super Class of Class Violationc, Not Union of Class Violationc

No Property Domain Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NoPropertyDomainViolation

Property has no well defined domain.

Example: Object property A has no specified domain.

has super-classes
Instance Violationc

No Property Range Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NoPropertyRangeViolation

Property has no well defined range.

has super-classes
Instance Violationc

Non Functional Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotFunctionalPropertyViolation

Functional property is not functional.

has super-classes
Instance Property Violationc

Not an Element Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotAnElementViolation

Not an element of enumeration, intersection, or union.

has super-classes
Instance Violationc
has sub-classes
Data Invalid at Datatype Violationc, Edge Orphan Instance Violationc, Not Restriction Element Violationc, Object Invalid at Class Violationc
is in domain of
Cardinalitydp, Qualified onop, Valueop

Not Base Type Element Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotBaseTypeElementViolation

The value is not element of the specified datatype.

has super-classes
Data Invalid at Datatype Violationc

Not Domain Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotDomainClassViolation

The used property domain is not defined.

has super-classes
Class Violationc

Not Intersection of Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotIntersectionOfClassViolation

The class is an intersection of a defined class, but not a defined class or the class is not an intersection of a defined class.

Example: The class A is not an intersection of a valid class B.

has super-classes
No Immediate Class Violationc
Orphan Class Violationc

Not Inverse Functional Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotInverseFunctionalPropertyViolation

Functional property is not functional.

has super-classes
Instance Property Violationc

Not Restriction Element Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotRestrictionElementViolation

No values from restriction class or some values not from restriction class or cardinality too small on restriction class or cardinality too large on restriction class or cardinality unequal on restriction class or qualified cardinality too small on restriction class or qualified cardinality too large on restriction class or qualified cardinality unequal on restriction class or hasValue constraint violated.

has super-classes
Not an Element Violationc

Not Sub Class of Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotSubClassOfClassViolation

The class is not a subclass of a defined class.

Example: Class A is not a subclass of a valid class B.

has super-classes
No Immediate Class Violationc
Orphan Class Violationc

Not Subproperty of Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotSubpropertyOfPropertyViolation

The property is not a subproperty of a valid property.

Example: Property A is not a sub-property of a valid property B.

has super-classes
Orphan Property Violationc

Not Super Class of Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotSuperClassOfClassViolation

The class is not a superclass of a defined class.

has super-classes
No Immediate Class Violationc

Not Union of Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotUnionOfClassViolation

The class is not a union of a defined class or is a union of a defined class but not defined itself.

has super-classes
No Immediate Class Violationc
Orphan Class Violationc

Not Unique Class Label Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotUniqueClassLabelViolation

Class does not have exactly one label.

has super-classes
Class Violationc

Not Unique Class Name Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotUniqueClassNameViolation

The class or restriction is not unique (i.e. there is another existing class with the same identifier).

has super-classes
Class Violationc

Not Unique Property Name Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#NotUniquePropertyNameViolation

Another property exists with the same identifier.

Example: A is not a unique property name, some property with this name already exists.

has super-classes
Property Violationc

Object Invalid at Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#ObjectInvalidAtClassViolation

Not an lement of enumeration or more than one branch of disjoint union is valid or element is not valid at any class of union or complement is valid.

has super-classes
Not an Element Violationc

Orphan Class Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#OrphanClassViolation

The class is not a subclass, intersection, or union of a valid class.

has super-classes
Class Violationc
has sub-classes
Not Intersection of Class Violationc, Not Sub Class of Class Violationc, Not Union of Class Violationc

Orphan Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#OrphanPropertyViolation

The property is not a sub-property of a valid property.

has super-classes
Property Violationc
has sub-classes
Not Subproperty of Property Violationc

Propertyc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#Property

This is the property which produced a violation.

is in domain of
Defined at Linedp
is in range of
Childop, Parentop, Parent Properyop, Propertyop

Property Annotation Overload Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyAnnotationOverloadViolation

The property is defined as a property and as an annotation property.

has super-classes
Property Violationc

Property Cycle Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyCycleViolation

The property class has a cycle.

has super-classes
Property Violationc
is in domain of
Pathdp

Property Domain Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyDomainViolation

Property has no well defined domain.

has super-classes
Property Violationc
has sub-classes
Domain Not Subsumed Violationc, Invalid Domain Violationc, No Explicit Domain Violationc
is in domain of
Domainop, Rangeop

Property Range Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyRangeViolation

Property has no well defined range.

Example: Object property A has no specified range.

has super-classes
Property Violationc
has sub-classes
Invalid Range Violationc, No Explicit Range Violationc, Range Not Subsumed Violationc

Property Type Overload Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyTypeOverloadViolation

The property is an object property and a datatype property.

has super-classes
Property Violationc

Property Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyViolation

A violation which is caused by an inconsistent or invalid property definition.

has super-classes
Schema Violationc
has sub-classes
Not Unique Property Name Violationc, Orphan Property Violationc, Property Annotation Overload Violationc, Property Cycle Violationc, Property Domain Violationc, Property Range Violationc, Property Type Overload Violationc, Schema Blank Node Violationc
is in domain of
Childop, Parentop

Range Not Subsumed Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#RangeNotSubsumedViolation

Invalid range on a property has been caused by failure of range subsumption.

Example: Invalid range on property A, due to failure of range subsumption.

has super-classes
Property Range Violationc
is in domain of
Parent Properyop, Parent Rangeop

Schema Blank Node Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#SchemaBlankNodeViolation

Subject, predicate, or object is a blank node.

has super-classes
Property Violationc
is in domain of
Objectop, Predicateop, Subjectop

Schema Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#SchemaViolation

A violation which is caused by inconsistancies on the schema level.

has super-classes
Violationc
has sub-classes
Class Violationc, Property Violationc

Violationc back to ToC or Class ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#Violation

Generic class for all kinds of violations within Dacura.

has sub-classes
Instance Violationc, Schema Violationc
is in domain of
Best Practicedp, Classop, Constraint Typeop, Elementop, Infodp, Messagedp, Propertyop

Object Properties

Childop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#child

Involved child class or property.

Classop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#class

A property which assignes the class that produced a violation to the respective violation class.

has domain
Violationc
has range
Classc

Constraint Typeop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#constraintType

Type of constraint on a violation - could be openworld or closedworld.

has domain
Violationc
has range
Constraint Typec

Domainop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#domain

The intended domain class of a property domain violation.

has domain
Property Domain Violationc
has range
Classc

Elementop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#element

A property which assignes the element that was involved in a violation to the respective element violation class.

has domain
Violationc
has range
Elementc

Objectop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#object

The object of a triple involved in a violation.

Parentop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#parent

Involved parent class or property.

Parent Domainop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#parentDomain

Parent domain of a domain not subsumed violation.

Parent Properyop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#parentProperty

Marks the parent property for range and domain not subsumed violations.

Parent Rangeop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#parentRange

Parent range of a range not subsumed violation.

Predicateop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#predicate

The predicate of a triple involved in a violation.

Propertyop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#property

A property which assignes the property that produced a violation to the respective violation class.

has domain
Violationc
has range
Propertyc

Qualified onop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#qualifiedOn

The relation between a not an elment violation an the class the element was assigned to.

has domain
Not an Element Violationc
has range
Classc

Rangeop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#range

The intended range class of a property domain violation.

has domain
Property Domain Violationc
has range
Classc

Subjectop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#subject

The subject of a triple involved in a violation.

Valueop back to ToC or Object Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#value

The value of an element involved in the not an element violation.

has domain
Not an Element Violationc
has range
Elementc

Data Properties

Best Practicedp back to ToC or Data Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#bestPractice

This is a generic property which indicates whether a violation is considered only best practice or more serious.

has domain
Violationc
has range
boolean

Cardinalitydp back to ToC or Data Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#cardinality

Defines the cardinality of a not an element violation.

has domain
Not an Element Violationc
has range
non negative integer

Defined at Linedp back to ToC or Data Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#definedAtLine

This is a generic property which indicates where the class, property, or element that caused the violation has occured in the ontology.

has domain
Classc
Elementc
Propertyc
has range
non negative integer

Infodp back to ToC or Data Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#info

This is a generic property which allows publishing additional context to a message.

has domain
Violationc
has range
string

Messagedp back to ToC or Data Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#message

This is a general property which can be used to attach the original error message provided by a reasoner.

has domain
Violationc
has range
string

Pathdp back to ToC or Data Property ToC

IRI: http://dacura.cs.tcd.ie/data/rvo#path

Defines the path of the cycle violation.

Namespace Declarations back to ToC

default namespace
http://dacura.cs.tcd.ie/data/rvo#
dc
http://purl.org/dc/elements/1.1/
owl
http://www.w3.org/2002/07/owl#
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs
http://www.w3.org/2000/01/rdf-schema#
rvo
http://dacura.cs.tcd.ie/data/rvo#
xsd
http://www.w3.org/2001/XMLSchema#

This HTML document was obtained by processing the OWL ontology source code through LODE, Live OWL Documentation Environment, developed by Silvio Peroni.