/
Hygiene Tests
Hygiene Tests
Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.
Current Set
ERROR - a change is rejected.
PROD ERROR - a change is rejected if it occurs in PROD.
WARNING - a change can be accepted/merged, but the user is warned.
Name | Definition | Severity | Remarks | Decision |
---|---|---|---|---|
No untyped resources | Any reference to an IRI in any context other than as the object of an annotation property must have a type triple for that IRI. | ERROR | IN | |
Labels and definitions | Every class and property must have an rdfs:label and a skos:definition. | ERROR | IN | |
Ontology metadata | Every IDMP ontology needs appropriate metadata - see: Pattern: Metadata and Annotations - APPROVED. | PROD ERROR | IN | |
Ontology circular imports | Property owl:imports cannot be circular across all IDMP ontologies. | ERROR | IN | |
Label use | Every resource (IRI) must have a label. | ERROR | IN | |
Unique labels | No label can name more than one resource (IRI). | ERROR | IN | |
Single labels | No resource (IRI) can have more than one label. | ERROR | IN | |
Circular definitions | No textual definition should be circular, i.e., a definition cannot contain a label of the resource being defined. | ERROR | IN | |
Avoiding cycles | Class and property hierarchies should not contain cycles. | ERROR | IN | |
Deprecated resources should not be used | If a resource (IRI) is owl:deprecated, then it should not be reused. | PROD ERROR | IN | |
Avoid (hard) punning | We must avoid punning of object and data properties. | ERROR | https://www.w3.org/TR/owl2-new-features/#F12:_Punning | IN |
Avoid (soft) punning | A resource (IRI) should not be an instance of more than one of these: owl:Class, rdf:Property, owl:NamedIndividual. | WARNING | IN | |
Long IRIs | No IRI should be longer than 255 chars. | PROD ERROR | IN | |
Non opaque IRIs | We should avoid IRIs whose local names are not human readable. | PROD ERROR | IN | |
Avoid obsolete minimum cardinality restrictions | We should warn if an OWL minimum cardinality restriction on a superclass can be inferred from another minimum cardinality restriction on its subclass. | PROD ERROR | IN | |
Avoid obsolete existential restrictions | We should warn if an OWL existential restriction on a superclass can be inferred from another existential restriction on its subclass. | WARNING | IN | |
Leading blanks | No annotation property may have a string value with leading spaces. | ERROR | IN | |
Multiple embedded blanks | No annotation property may have a string value with multiple embedded spaces. | ERROR | IN | |
Trailing blanks | No annotation property may have a string value with trailing spaces. | ERROR | IN | |
Performance checks | See: https://github.com/stardog-union/pellet/blob/master/pellint/PELLINT-PATTERNS.txt | WARNING | ??? | |
Underspecified examples | We should provide all required properties for examples. | WARNING | ??? |
Also we run consistency checks for both PROD and DEV. For PROD inconsistent ontology will reject the change. For DEV it will produce a warning.
Background
Current FIBO Hygiene
From https://github.com/edmcouncil/fibo/blob/master/ONTOLOGY_GUIDE.md
Because we believe that it is important to ensure at least some minimal level of quality in the ontologies we publish for FIBO, we have implemented a number of tests that are automatically run when updates are made via Github. These include:
- No Untyped references - Any reference to a URI in any context other than as the object of an annotation property must have a type triple for that URI. See testHygiene0001.sparql
- Crossing domains / ranges - If one property is a sub of another, then the domains (respectively ranges) should not be subClasses in the opposite direction. See testHygiene0002.sparql, testHygiene0003.sparql
- Labels and Definitions - Every Class and Property defined in FIBO must have an rdfs:label and a skos:definition. See testHygiene0004.sparql
- Ontology Metadata - Every Ontology defined in FIBO must have a rdfs:label, sm:copyright, dct:license, dct:abstract. See testHygiene0005.sparql
- Ontology imports - No ontology may import itself. See testHygiene1177.sparql
- Special Characters - The set of characters allowed in literals is limited to the alphanumeric characters, punctuation marks, and diacritic characters used in the languages FIBO uses. See testHygiene0114.sparql
- Unique Labels - No label can name more than one owl:Class or rdf:Property. See testHygiene1067.sparql
- Circular Definitions - No FIBO definition should be circular, i.e., a definition cannot contain a label (including synonyms) of the resource being defined. See testHygiene1068.sparql
- Object Property Inverses - No property may have more than one inverse as this may, among other things, make the inverse properties equivalent. See testHygiene1078.sparql
- Use of rdfs:comment - rdfs:comment shouldn't be used for FIBO annotations. See testHygiene1079.sparql
- Reference to owl:Thing - We should not make explicit references to owl:Thing as these are redundant except for someValuesFrom restrictions . See testHygiene0268.sparql
- Synonyms as classes - Use of OWL equivalences may indicate that different synonyms are modeled as separate classes, which should be avoided. See testHygiene1103.sparql
- Avoiding cycles - Class and property hierarchies should not contain cycles. See testHygiene1190.sparql and testHygiene1190_properties.sparql
- Implicit use of “is” relationships - Various kinds of “is” relationship should be represented by means of the appropriate logical constructs and not by means of ad-hoc properties. See testHygiene1289.sparql
- Disconnected resources - All classes should be rooted in FND, LCC or FBC domain. See testHygiene1290.sparql
- Merging different concepts in the same class - Classes should not refer to multiple concepts. See testHygiene1292.sparql
- Use of "min 1" cardinality restrictions - "min 1" cardinality restrictions should be avoided because of performance considerations. See testHygiene1293.sparql
- Deprecated resources should not be used - If a resource is owl:deprecated, then it should not be reused See testHygiene1610.sparql
- Avoid punning - Because of OWL specification we should avoid punning of both object and data properties See testHygiene1624_chain.sparql, testHygiene1624_disjoint.sparql, testHygiene1624_equivalent.sparql, testHygiene1624_inverse.sparql, testHygiene1624_subProperty.sparql, testHygiene1624.sparql
Runs
, multiple selections available,
Related content
Hygiene Tests - 20220420
Hygiene Tests - 20220420
More like this
Ontology Hygiene
Ontology Hygiene
More like this
IDMP Ontology Releases
IDMP Ontology Releases
More like this
Candidate Hygiene Policies
Candidate Hygiene Policies
More like this
Ontology Reuse Guidelines and Candidates
Ontology Reuse Guidelines and Candidates
More like this
Anti-Patterns Planning Meeting
Anti-Patterns Planning Meeting
More like this