Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document expectations about TBox axioms in ABox #185

Closed
cmungall opened this issue Apr 25, 2018 · 6 comments
Closed

Document expectations about TBox axioms in ABox #185

cmungall opened this issue Apr 25, 2018 · 6 comments
Assignees

Comments

@cmungall
Copy link
Member

I had assumed that a model only contained ABox axioms.

However, it seems that many contain TBox axioms - sometimes label declarations, sometimes just class declarations

https://github.com/geneontology/noctua-models/blob/master/models/586fc17a00000381.ttl

  • label axioms for CL, GO
  • declaration axioms for everything

https://github.com/geneontology/noctua-models/blob/master/models/59dc728000000555.ttl

  • label axioms for ZFA genes
  • declarations for ZFA and UBERON, not GO

Based on the current state I believe the formal documentation should say

  • clients MUST obtain TBox axioms from TBox graph, not model graph
  • minerva SHOULD NOT place TBox axioms in ABox graph, but in some cases these may leak through, due to owlapi weirdness
@balhoff
Copy link
Member

balhoff commented Apr 25, 2018

I think the gene product classes get declared in the model because the terms are not in the Tbox (e.g. because of geneontology/neo#17). However I'm not clear on the pathway by which the label annotations creep in (need to think about it further).

@cmungall
Copy link
Member Author

Minerva is able to query solr to obtain labels and to inject these, I assume they got in this way.

@goodb
Copy link
Contributor

goodb commented Apr 25, 2018

I noticed this property hanging on this ZFIN class declared within 59dc728000000555
http://geneontology.org/lego/derived "true"^^http://www.w3.org/2001/XMLSchema#string ;

What does this property mean? Maybe this is a clue about where the class defs are leaking in - e.g. if Minerva is inferring them and needs to add them into the model to create required axioms.

@goodb
Copy link
Contributor

goodb commented Apr 25, 2018

Maybe a tangent from debugging how these came in through the editor/minerva path, but when generating GO-CAM models from other sources, I have hit cases where the required classes either do not exist in neo or just don't exist anywhere at all (e.g. complexes). So far I've gotten around this either by creating them and adding them into the go-cam model owl file or just defaulting to an uninformative upper level class (e.g. macromolecular complex). The Noctua (v1) editor appears to accept such additional classes if they are present in the models that it loads.

This points to the use case of editors/importers needing a mechanism to propose new classes to be added to the global tbox (perhaps a v2 feature). Also a question - are OWL models that follow the GO-CAM modeling practices but contain additional classes or refer to classes outside of the GOC TBox considered 'valid'? Should they be allowed into GOC GO-CAM collections? Should software that consumes go-cams try to work with them (the way Noctua is doing now) ?

@cmungall
Copy link
Member Author

This points to the use case of editors/importers needing a mechanism to propose new classes to be added to the global tbox (perhaps a v2 feature)
+1

I think we should impose some SHOULDs. I see the use case for inject TBox axioms info but there are problems here with axioms getting out of sync.

@balhoff
Copy link
Member

balhoff commented May 13, 2018

@goodb I think you're right about the lego:derived property being the answer here. Minerva has a ModelWriterHelper and a ModelReaderHelper. These are run just before writing and just after reading from the database. They appear to inject certain annotations and class declarations. But these are stripped as the file is loaded.

It's not clear that this serves any purpose at this point. Previously it was used to add the embedded JSON-blob of the model. I removed that a while back and perhaps could have removed the rest of this as well.

balhoff added a commit that referenced this issue May 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants