-
Notifications
You must be signed in to change notification settings - Fork 74
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
Throw exception on reasoner errs, and test RBox for incoherency #133
Conversation
Includes incoherent OPs in logical tests, fixes #104 Note these two tickets are coupled, so were tackled together. To handle validation checks a new ReasonerHelper class was created. This implements - inconsistency - incoherent TBox (ie unsat classes) - incoherent RBox (using probe classes) Exceptions are thrown on encountering any of these. Currently there is no way to allow the user to ignore exceptions; this could in theory be added but would likely be a very bady idea
@jamesaoverton, @balhoff - does this look OK? |
+1 |
1 similar comment
+1 |
I said it looks okay, but now it's getting in my way. :-) I'm trying to use the expression-materializing-reasoner to materialize the go-graphstore tbox, but getting:
I feel like this should be ignorable, and we should let the user proceed if they want. The output would still be useful even though I'm not in a position to fix these right now. |
Are you sure you want to proceed given incoherency? Note that unsats
will be inferred to be subclasses of all (satisfiable) classes in the
ontology. Even if we filtered this inference in robot, downstream
inferences could re-introduce it. This would be massively confusing to
users.
In owltools we provide two repair mechanisms:
1. remove any unsat classes
2. weaken the ontology by removing disjointness etc. E.g. owltools
foo.owl --remove-axioms -t DisjointClasses
The latter seems justifiable here.
…On 17 Feb 2017, at 7:42, Jim Balhoff wrote:
I said it looks okay, but now it's getting in my way. :-) I'm trying
to use the expression-materializing-reasoner to materialize the
go-graphstore tbox, but getting:
```
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_16665
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_17996
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_16664
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_17995
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_16663
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_17994
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_28637
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_30946
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_30948
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_30942
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_30944
ERROR unsatisfiable: http://purl.obolibrary.org/obo/GO_0031088
ERROR unsatisfiable: http://purl.obolibrary.org/obo/GO_0031089
ERROR unsatisfiable: http://purl.obolibrary.org/obo/EMAPA_28631
org.obolibrary.robot.exceptions.IncoherentTBoxException
```
I feel like this should be ignorable, and we should let the user
proceed if they want. The output would still be useful even though I'm
not in a position to fix these right now.
--
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub:
#133 (comment)
|
Right, I think 2 is better. I looked for it in ROBOT but I guess it's not available. Is this general enough to have in ROBOT? |
(If I'm understanding correctly) I think that an operation (or option on an operation) to remove disjointness axioms would be a good addition to ROBOT. |
Yes, I'd do it the owltools way where the axiom type is a parameter, as
'removed-disjointness-axiom' is very specific and not very verb-y
We already have 'filter' but that may be overloading?
…On 17 Feb 2017, at 10:52, James A. Overton wrote:
(If I'm understanding correctly) I think that an operation (or option
on an operation) to remove disjointness axioms would be a good
addition to ROBOT.
--
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub:
#133 (comment)
|
Naming is hard, and ROBOT's |
Note that the output is somewhat unfriendly, e.g.
but being unfriendly is better than silently progressing with an incoherent ontology