OOPS! (OntOlogy Pitfall Scanner!) compares an ontology with a catalogue of frequent modelling mistakes. The catalogue calls each mistake a pitfall, and gives it an importance: critical, important or minor. This page lists the pitfalls that OOPS! found in OntoGSN 1.3.0.
Pitfalls
| Code | Pitfall | Importance | Cases | Affected elements |
| P10 | Missing disjoint-ness | Important | 1 | the ontology as a whole |
| P11 | Missing domain or range in properties | Important | 2 | schema:description, schema:identifier |
| P24 | Using recursive definitions | Important | 3 | gsn:Goal, gsn:Module, gsn:Relationship |
| P30 | Equivalent classes not explicitly declared | Important | 1 | rdf:Statement and gsn:Argument |
| P08-A | Missing annotations - Label & Comment | Minor | 2 | schema:description, schema:identifier |
| P13-N | Inverse relationships not explicitly declared - No Suggestion | Minor | 14 | gsn:associatedWith, gsn:attachedTo, gsn:challenges, gsn:contains, gsn:depicts, gsn:inContextOf, gsn:inModule, gsn:instantiationOf, gsn:refersTo, gsn:relatedTo, gsn:substitutedBy, gsn:transitivelyChallenges, gsn:transitivelyInContextOf, gsn:transitivelySupportedBy |
| P13-S | Inverse relationships not explicitly declared - Symmetric or Transitive? | Minor | 1 | gsn:relatedTo |
| P34 | Untyped class | Minor | 8 | swrl:AtomList, swrl:BuiltinAtom, swrl:ClassAtom, swrl:DatavaluedPropertyAtom, swrl:DifferentIndividualsAtom, swrl:Imp, swrl:IndividualPropertyAtom, swrl:Variable |
What the pitfalls mean
- P10 Missing disjoint-ness
- The ontology lacks disjoint axioms between classes or between properties that should be defined as disjoint. This pitfall is related to the guidelines provided in [6], [2] and [7].
- P11 Missing domain or range in properties
- Object and/or datatype properties missing domain or range (or both of them) are included in the ontology.
- P24 Using recursive definitions
- 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.
- P30 Equivalent classes not explicitly declared
- 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.
- P08-A Missing annotations - Label & Comment
- This pitfall consists in creating an ontology element and failing to provide human readable annotations attached to it. Consequently, ontology elements lack annotation properties that label them (e.g. rdfs:label, lemon:LexicalEntry, skos:prefLabel or skos:altLabel) or that define them (e.g. rdfs:comment or dc:description). This pitfall is related to the guidelines provided in [5].
- P13-N Inverse relationships not explicitly declared - No Suggestion
- 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.
- P13-S Inverse relationships not explicitly declared - Symmetric or Transitive?
- 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.
- P34 Untyped class
- 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].
Not evaluated
The checker for each pitfall below stopped with an error. OOPS! did not evaluate these pitfalls, so the tables above do not show them, even if the ontology has them.
| Pitfall | Error |
| P06 | java.util.ConcurrentModificationException |