CommonCoreOntology / CommonCoreOntologies

The Common Core Ontology Repository holds the current released version of the Common Core Ontology suite.
BSD 3-Clause "New" or "Revised" License
202 stars 58 forks source link

Prefix collision #553

Open CarterBeauBenson opened 2 weeks ago

CarterBeauBenson commented 2 weeks ago

@cameronmore and I are getting ready to transition ontologies over to 2.0 and are excited to do so. As a test, we updated the IRIs in CPO and noticed a prefix collision.

The CCO base file contains the following prefix declaration. @prefix cco: https://www.commoncoreontologies.org/ .

When we ran the ROBOT mapping on CPO, this line (add-prefix "cco2: https://www.commoncoreontologies.org/") from the ROBOT command successfully added the prefix declaration "@prefix cco2: https://www.commoncoreontologies.org/" and preserved the prefix "cco" for the old namespace (cco: http://www.ontologyrepository.com/CommonCoreOntologies/ .).

Here is a sample of code:

http://www.ontologyrepository.com/CommonCoreOntologies/ActOfRequestingInformation (hashes removed to avoid markdown) cco:ActOfRequestingInformation rdf:type owl:Class ; rdfs:subClassOf cco2:ont00000769 ; cco:definition "A directive communication act that prescribes the finding and delivering of information." ; rdfs:label "ActOfRequestingInformation" ; cco2:ont00001760 "http://www.ontologyrepository.com/CommonCoreOntologies/Domain/CognitiveProcessOntology" .

We hypothesized that this was intentionally done so that an extension ontology class IRI that uses the old namespace prefix does not collide with the new namespace prefix. For example, if the "cco2" prefix was not created, two ontology namespaces would have the same prefix when the ROBOT command is executed.

That said, this problem reoccurs when CCO 2.0 is imported by CPO, since the "cco" prefix is pulling double duty. Furthermore, when CCO 2,0 is imported by CPO, https://www.commoncoreontologies.org has two prefixes.

CarterBeauBenson commented 2 weeks ago

After talking to @mark-jensen, this is not a problem, but I will let him explain why.