Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
As an interim measure, generate rdfs:isDefinedBy annotations for all terms #7
While the annotation should ultimately be generated as part of the ontology build process, in order to support linked data clients, add an annotation
<term> rdf:isDefinedBy <purl of ontology>
to each term unless we know an ontology is generating them itself.
See the google+ conversation
Ontobee has owl:imports to define the ontology source of the term. However, the previous version did not solve all cases including the example: http://purl.obolibrary.org/obo/UBERON_0000981. Bin Zhao from my lab and I worked on this today. Bin found a bug in the program and he fixed it. In addition, Bin also added the suggested rdfs:isDefinedBy feature.
Now if you check the example http://purl.obolibrary.org/obo/UBERON_0000981 or any other cases, you should be able to find both owl:imports and rdfs:isDefinedBy statements. The pointed ontology PURL should be the same.
Some explanation -- here is what Bin found and fixed:
Previous Ontobee version: After ontology RDF reformat, the previous Ontobee program looks for owl:Ontology .... /owl:Ontology. The program replaces /owl:Ontology with owl:imports statement and adds back the /owl:Ontology.
However, when there is no metadata between owl:Ontology and /owl:Ontology, there will be a self closure of this to form <owl:Ontology .... />. In this case, the /owl:Ontology does not exist any more. So the replacement will fail.
Bin's fix: if a self closure <owl:Ontology .... /> is found, open the closure and make it looks like owl:Ontology .... /owl:Ontology. Then reapply the previous code. It should work fine now.