As an interim measure, generate rdfs:isDefinedBy annotations for all terms #7

Open
alanruttenberg opened this Issue Mar 30, 2014 · 2 comments

Comments

Projects
None yet
2 participants
@alanruttenberg

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

@yongqunh

This comment has been minimized.

Show comment
Hide comment
@yongqunh

yongqunh Apr 2, 2014

Member

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.

Member

yongqunh commented Apr 2, 2014

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.

@yongqunh

This comment has been minimized.

Show comment
Hide comment
@yongqunh

yongqunh Apr 2, 2014

Member

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.

Member

yongqunh commented Apr 2, 2014

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment