The following evaluation results have been generated by the RESTFul web service provided by OOPS! (OntOlogy Pitfall Scanner!).
It is obvious that not all the pitfalls are equally important; their impact in the ontology will depend on multiple factors. For this reason, each pitfall has an importance level attached indicating how important it is. We have identified three levels:
Ontology elements (classes, object properties and datatype properties) are created isolated, with no relation to the rest of the ontology.
This pitfall affects to the following ontology elements:
Two relationships are defined as inverse relations when they are not necessarily inverse.
This pitfall affects to the following ontology elements:
The ontology lacks disjoint axioms between classes or between properties that should be defined as disjoint. This pitfall is related with the guidelines provided in [6], [2] and [7].
*This pitfall applies to the ontology in general instead of specific elements
Object and/or datatype properties without domain or range (or none of them) are included in the ontology.
This pitfall affects to the following ontology elements:
This pitfall appears when any relationship (except for those that are defined as symmetric properties using owl:SymmetricProperty) does not have an inverse relationship (owl:inverseOf) defined within the ontology.
This pitfall affects to the following ontology elements:
The contents of some annotation properties are swapped or misused. This pitfall might affect annotation properties related to natural language information (for example, annotations for naming such as rdfs:label or for providing descriptions such as rdfs:comment). Other types of annotation could also be affected as temporal, versioning information, among others.
This pitfall affects to the following ontology elements:
The ontology elements are not named following the same convention (for example CamelCase or use of delimiters as "-" or "_") . Some notions about naming conventions are provided in [2].
*This pitfall applies to the ontology in general instead of specific elements
An ontology element (a class, an object property or a datatype property) is used in its own definition. Some examples of this would be: (a) the definition of a class as the enumeration of several classes including itself; (b) the appearance of a class within its owl:equivalentClass or rdfs:subClassOf axioms; (c) the appearance of an object property in its rdfs:domain or range rdfs:range definitions; or (d) the appearance of a datatype property in its rdfs:domain definition.
This pitfall affects to the following ontology elements:
This pitfall consists in missing the definition of equivalent classes (owl:equivalentClass) in case of duplicated concepts. When an ontology reuses terms from other ontologies, classes that have the same meaning should be defined as equivalent in order to benefit the interoperability between both ontologies.
This pitfall affects to the following ontology elements:
Two classes are defined as equivalent, using owl:equivalentClass, when they are not necessarily equivalent.
This pitfall affects to the following ontology elements:
Two or more classes have the same content for natural language annotations for naming, for example the rdfs:label annotation. This pitfall might involve lack of accuracy when defining terms.
This pitfall affects to the following ontology elements:
An ontology element is used as a class without having been explicitly declared as such using the primitives owl:Class or rdfs:Class. This pitfall is related with the common problems listed in [8].
This pitfall affects to the following ontology elements:
References: