ucoProject / UCO

This repository is for development of the Unified Cyber Ontology.
Apache License 2.0
73 stars 34 forks source link

UCO semi-open vocabularies seem to use `owl:onDatatype` incorrectly #593

Open ajnelson-nist opened 4 months ago

ajnelson-nist commented 4 months ago

Bug description

The document OWL 2 Mapping to RDF Graphs specifies the subtractive parsing process used to parse an RDF graph as an OWL ontology.

When using an externally-developed tool to try reviewing UCO's current OWL conformance, I saw some issues reported around the semi-open vocabularies. See e.g. vocabulary:BitnessVocab, chosen only because it is short:

vocabulary:BitnessVocab
    a rdfs:Datatype ;
    rdfs:label "Bitness Vocabulary"@en-US ;
    rdfs:comment "Defines an open-vocabulary of word sizes that define classes of operating systems."@en ;
    owl:equivalentClass [
        a rdfs:Datatype ;
        owl:onDatatype xsd:string ;
        owl:oneOf (
            "32"^^vocabulary:BitnessVocab
            "64"^^vocabulary:BitnessVocab
        ) ;
    ] ;
    .

It appears owl:onDatatype is incorrect to use in this definition. From reviewing the OWL2--RDF document noted above, the only OWL construct that predicate appears in is DatatypeRestriction (Table 12, last row; Table 1, a sole row in the middle).

Due to the subtractive nature of the OWL parsing process (described recently in the competencies under Issue 591), that predicate will be left "dangling" after the structure pertaining to owl:oneOf is consumed and removed from the graph. (The reverse seems unlikely, because no owl:withRestrictions predicate is present.)

It appears it is necessary to remove all occurrences of [] owl:onDatatype xsd:string . from the UCO (and CASE) vocabulary namespaces.

Steps to reproduce

This is among the issues reported from ROBOT 1.9.5[^1][^2], using the following command from UCO's root directory:

java -jar robot.jar validate-profile \
  --input ontology/uco/vocabulary/vocabulary.ttl \
  --profile DL

[^1]: Participation by NIST in the creation of the documentation of mentioned software is not intended to imply a recommendation or endorsement by the National Institute of Standards and Technology, nor is it intended to imply that any specific software is necessarily the best available for the purpose. [^2]: This Issue is not a suggestion to add that tool to UCO's test suite.