This ontology is distributed under a Creative Commons Attribution License - http://creativecommons.org/licenses/by/3.0
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.
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?
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.
Ontology Snippet Producing the Violation
seshat:Territory seshat:hasValue xsd:DateTime .
Resulting RDF Graph after Validation
IRI: http://dacura.cs.tcd.ie/data/rvo#Class
IRI: http://dacura.cs.tcd.ie/data/rvo#ClassCycleViolation
The class has a class cycle.
IRI: http://dacura.cs.tcd.ie/data/rvo#ClassViolation
A violation which is caused by an inconsistent or invalid class definition.
IRI: http://dacura.cs.tcd.ie/data/rvo#ConstraintType
Specifies whether the constraint exists in a closed or open world.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#DomainNotSubsumedViolation
Invalid domain on a property has been caused by failure of domain subsumption.
IRI: http://dacura.cs.tcd.ie/data/rvo#EdgeOrphanInstanceViolation
The instance has no class or an invalid domain class.
IRI: http://dacura.cs.tcd.ie/data/rvo#Element
This is the element which was involved in a violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#InstanceBlankNodeViolation
Subject, preidcate, or object is a blank node.
IRI: http://dacura.cs.tcd.ie/data/rvo#InstancePropertyViolation
No property class associated with property.
IRI: http://dacura.cs.tcd.ie/data/rvo#InstanceViolation
A violation which is caused by inconsistancies on the instance level.
IRI: http://dacura.cs.tcd.ie/data/rvo#InvalidDomainViolation
The property has an invalid domain.
IRI: http://dacura.cs.tcd.ie/data/rvo#InvalidEdgeViolation
Range/domain cardinality of deleted predicates not respected.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#LocalOrphanPropertyViolation
No property class associated with property.
IRI: http://dacura.cs.tcd.ie/data/rvo#NoExplicitDomainViolation
Property has no explicit domain.
IRI: http://dacura.cs.tcd.ie/data/rvo#NoExplicitRangeViolation
Property has no explicit range.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#NoPropertyDomainViolation
Property has no well defined domain.
Example: Object property A has no specified domain.
IRI: http://dacura.cs.tcd.ie/data/rvo#NoPropertyRangeViolation
Property has no well defined range.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotFunctionalPropertyViolation
Functional property is not functional.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotAnElementViolation
Not an element of enumeration, intersection, or union.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotBaseTypeElementViolation
The value is not element of the specified datatype.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotDomainClassViolation
The used property domain is not defined.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotInverseFunctionalPropertyViolation
Functional property is not functional.
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.
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.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotSuperClassOfClassViolation
The class is not a superclass of a defined class.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#NotUniqueClassLabelViolation
Class does not have exactly one label.
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).
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.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#OrphanClassViolation
The class is not a subclass, intersection, or union of a valid class.
IRI: http://dacura.cs.tcd.ie/data/rvo#OrphanPropertyViolation
The property is not a sub-property of a valid property.
IRI: http://dacura.cs.tcd.ie/data/rvo#Property
This is the property which produced a violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyAnnotationOverloadViolation
The property is defined as a property and as an annotation property.
IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyCycleViolation
The property class has a cycle.
IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyDomainViolation
Property has no well defined domain.
IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyRangeViolation
Property has no well defined range.
Example: Object property A has no specified range.
IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyTypeOverloadViolation
The property is an object property and a datatype property.
IRI: http://dacura.cs.tcd.ie/data/rvo#PropertyViolation
A violation which is caused by an inconsistent or invalid property definition.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#SchemaBlankNodeViolation
Subject, predicate, or object is a blank node.
IRI: http://dacura.cs.tcd.ie/data/rvo#SchemaViolation
A violation which is caused by inconsistancies on the schema level.
IRI: http://dacura.cs.tcd.ie/data/rvo#Violation
Generic class for all kinds of violations within Dacura.
IRI: http://dacura.cs.tcd.ie/data/rvo#child
Involved child class or property.
IRI: http://dacura.cs.tcd.ie/data/rvo#class
A property which assignes the class that produced a violation to the respective violation class.
IRI: http://dacura.cs.tcd.ie/data/rvo#constraintType
Type of constraint on a violation - could be openworld or closedworld.
IRI: http://dacura.cs.tcd.ie/data/rvo#domain
The intended domain class of a property domain violation.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#object
The object of a triple involved in a violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#parent
Involved parent class or property.
IRI: http://dacura.cs.tcd.ie/data/rvo#parentDomain
Parent domain of a domain not subsumed violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#parentProperty
Marks the parent property for range and domain not subsumed violations.
IRI: http://dacura.cs.tcd.ie/data/rvo#parentRange
Parent range of a range not subsumed violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#predicate
The predicate of a triple involved in a violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#property
A property which assignes the property that produced a violation to the respective violation class.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#range
The intended range class of a property domain violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#subject
The subject of a triple involved in a violation.
IRI: http://dacura.cs.tcd.ie/data/rvo#value
The value of an element involved in the not an element violation.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#cardinality
Defines the cardinality of a not an element violation.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#info
This is a generic property which allows publishing additional context to a message.
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.
IRI: http://dacura.cs.tcd.ie/data/rvo#path
Defines the path of the cycle violation.
This HTML document was obtained by processing the OWL ontology source code through LODE, Live OWL Documentation Environment, developed by Silvio Peroni.
This is the class which produced a violation.