ncbo / bioportal-project

Serves to consolidate (in Zenhub) all public issues in BioPortal
BSD 2-Clause "Simplified" License
7 stars 5 forks source link

Roots endpoint returns empty set for PANET ontology #205

Closed jvendetti closed 1 year ago

jvendetti commented 3 years ago

End user reported on the support list that they're unable to view the class tree for the PANET ontology in the BioPortal UI. Note that this a private ontology, so you need to be logged in to reproduce.

The underlying cause for the UI issue is that the /roots endpoint is returning an empty set, so the UI can't construct a class tree:

http://data.bioontology.org/ontologies/PANET/classes/roots

I'm noting a couple of things about this ontology that might be worth investigating. If you open it in Protege, there is only one class under owl:Thing with a subject URI of http://purl.obolibrary.org/obo/OBI_0000070. This subject URI differs from the one in the ontology header:

<owl:Ontology rdf:about="https://www.diamond.ac.uk/"/>

Also, a lot of the classes are declared using a colon character in rdf:about, e.g.:

<owl:Class rdf:about="ExPaNDS:diffraction">
  <rdfs:subClassOf rdf:resource="ExPaNDS:elastic scattering"/>
  <obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">https://en.wikipedia.org/wiki/Diffraction</obo:IAO_0000119>
  <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">diffraction</rdfs:label>
</owl:Class>

If you select such a class in Protege and bring up the "Change Entity IRI" dialog (Refactor -> Rename entity...), the dialog content is blank:

Screen Shot 2021-02-08 at 12 35 25 PM

I haven't seen this type of behavior in Protege before, and I wonder if there's something about the way this ontology is constructed that causes issues in our system in terms of determining roots classes.

graybeal commented 3 years ago

Well, could it be that ExPaNDS is not defined as a prefix anywhere, but seems to be used as one?

jvendetti commented 3 years ago

I was thinking about that possibility. I would have expected the OWL API to throw an error about a missing prefix, but perhaps memory isn't serving correctly.

graybeal commented 3 years ago

I think it's OK (ontologically, anyway) that the Subject defined by the OBI class OBI_0000070 is different than the Ontology rdf:about declaration—I think those are independent declarations with different semantics.

graybeal commented 3 years ago

Although Protege isn't reporting any errors, http://visualdataweb.de/validator reports that the first declaration that has the ExPaNDS: notation doesn't have a good IRI. Some testing reveals that spaces are bad in IRI strings, at least as far as that validator is concerned.

jvendetti commented 1 year ago

This ontology is properly displaying in BioPortal now. I haven't looked at this issue since last year. I don't remember what was done to address the issue.