-
Notifications
You must be signed in to change notification settings - Fork 34
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
Correct label and biological process issues for model annotation loader, possible other improvements #253
Comments
The used command line is: java -Xms1024M -DentityExpansionLimit=4086000 -Djava.awt.headless=true -Xmx192G -jar ./java/lib/owltools-runner-all.jar http://purl.obolibrary.org/obo/go/extensions/go-gaf.owl http://purl.obolibrary.org/obo/eco.owl http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl http://purl.obolibrary.org/obo/cl/cl-basic.owl http://purl.obolibrary.org/obo/go/extensions/gorel.owl http://purl.obolibrary.org/obo/pato.owl http://purl.obolibrary.org/obo/po.owl http://purl.obolibrary.org/obo/chebi.owl http://purl.obolibrary.org/obo/uberon/basic.owl http://purl.obolibrary.org/obo/wbbt.owl http://purl.obolibrary.org/obo/go/extensions/go-modules-annotations.owl http://purl.obolibrary.org/obo/go/extensions/go-taxon-subsets.owl --log-info --merge-support-ontologies --merge-imports-closure --remove-subset-entities upperlevel --remove-disjoints --silence-elk --reasoner elk --solr-taxon-subset-name amigo_grouping_subset --solr-eco-subset-name go_groupings --remove-equivalent-to-nothing-axioms --solr-url http://localhost:8080/solr/ --solr-log /tmp/golr_timestamp.log --read-model-folder /home/bbop/local/src/git/noctua-models/models/ --read-model-url-prefix http://noctua.berkeleybop.org/editor/graph/ --solr-load-models This requires a checkout of |
Tagging @yy20716 |
I began checking one of the issues, i.e. the field @cmungall I think that this happens because the input graph (e.g. go-gaf.owl?) does not include namespace tags anymore. This would work again if we could disable or revise the logic that checks namespace, but please let me know if you have any other suggestions. Thank you. |
This is familiar, I think you found the exact issue earlier when you
were debugging the prediction code.
See #239
|
|
@cmungall I tried your approach but that one does not work because getSubClass does not accept IRI object.
So I tried this way:
The problem is that the ontologies do not have the term GO_0008150 inside, e.g.,
The above code prints
i.e., no such instances in ontology. Because of that, the reasoner just returns |
On 9 May 2018, at 18:15, HyeongSik Kim wrote:
Chris, I tried your approach but that one does not work because
getSubClass does not accept IRI object.
~~~~
reasoner.getSubClassesOf(IRI.create("http://purl.obolibrary.org/obo/GO_0008150"))
~~~~
So I tried this way:
~~~~
OWLClass c =
graph.getManager().getOWLDataFactory().getOWLClass(IRI.create("http://purl.obolibrary.org/obo/GO_0008150"));
~~~~
looks good
The problem is that the ontologies do not have the term GO_0008150
inside, e.g.,
~~~~
System.out.println("c: " + c + " num: " +
model.getDeclarationAxioms(c).size());
~~~~
The above code prints
~~~~
c: <http://purl.obolibrary.org/obo/GO_0008150> num: 0
~~~~
we don't expect the declarations to be in the model - they should be in
the import chain, and the reasoner uses the full import chain
i.e., no such instances in ontology. Because of that, the reasoner
just returns `owl:Nothing`, thus the `bpSet` is still null. I guess
that's why the previous codes refers to the namespace tag (instead of
depending on the reasoner). Can you please advise what to do in this
situation? I first thought that we could make and use the separate
reasoner instance that loaded the full gene ontology, but maybe this
is a way overkill.
is this using a test ontology?
… --
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#253 (comment)
|
|
@balhoff it's a bit late to ask this question to you, but we wonder whether you have experienced any similar issues before. If you have, could you please share your experience and approach? We thought that similar issues could arise in the minerva but maybe it was not that obvious like this case. Thank you. p.s. as requested, I will see if I can reproduce this issue using simple, dummy ontologies. |
@yy20716 thank you for the detailed analysis and write-up. @ignazio1977 is this something to bring up on the owlapi tracker (ignore the bulk of this ticket, just look at the comment above this one) |
@cmungall Yes it sounds like an issue for OWLAPI. Not sure how this happens, as managers do not refer axioms directly - I'd guess there must be an ontology that doesn't get cleared when emptying the manager. An example, or a heap dump of a manager with the noctua-models loaded, would help. |
Thank you so much for your patience and understanding. |
Here is the repo that contains the testcodes I built: https://github.com/yy20716/owlapi-repeat-model-load
|
Thanks @yy20716! We can continue it from here. @ignazio1977 we'll let you know if we can reproduce this purely in the context of the OWLAPI |
Reading the whole issue, one thing comes to mind: some reasoners register themselves as ontology change listeners with the ontology manager for their root ontology. Letting the reasoner variable go out of scope does not remove all references to the reasoner (the reasoner is still referenced by the ontology manager in its listener collection). In turn, a reasoner would hold references to ontologies and possibly axiom lists. Usually a reasoner should unregister itself when the What I'd do is to ensure Dropping the manager altogether and working with a new manager - i.e., the workaround you already have in place - would fit with this analysis, as this would effectively also drop all the listeners attached to the old manager. Cleaning the listeners would be much faster than copying the ontologies, though. |
Hi everyone. I found an strange behavior when copying ontologies with imports and I think it could be related with the issues you are discussing here. I've open an issue in owlapi if you are interested in. Greetings! |
Looking at the output of a loader run: http://tomodachi.berkeleybop.org/amigo/search/model_annotation
The values in the return documents that drive this interface are like:
There are several oddities in this load:
id
andannotation_unit
are generated as a pipe-separated combination of model id, M, P, and C; it seems that one of those is missing as there is a trailing pipe_searchable
fields seem to be repeats; this may not be a "real" issue, practically speakingreference
andreference_searchable
seem to contain tabs; they should not_closure_map
fields contain a "null", which would seem to indicate some issue with JSON deserialization or similar; the form should be id:label; note that this could merely be that there is something wrong with labels (see below)_label
*, in almost all cases, there are no labels, just ids; it could be that the ontology information to get label is not loading properly as part of the command or something deeperprocess_class
, just as there isfunction_class
; no process fields existThere are also a couple of issues that should be coordinated with other development, such as either switching to names for contributor (or making an id/label map), adding groups, etc.
While these may all be separate tickets, the tooling to get at the issues is similar for starters.
The text was updated successfully, but these errors were encountered: