-
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
Should "negation" be represented as part of a predicate or as a qualifier of a core triple? #1105
Comments
sierra-moxon, cbizon, kevinschaper, kshefchek, karthiksoman, and andrewsu reacted with thumbs up emoji gglusman 2 replies @gglusman Comment options cbizon If I want things that cause B and I write (?)-[causes]->(B), then unless I add a qualifier to every query from now on, I will get both the things I am looking for, as well things that are asserted to be explicitly what I am not looking for. Literally every trapi query from now on will require a predicate saying what you want, plus a qualifier saying "yes, really". 1 reply Here's a different one. A query (?)-[causes]->(B) elicits the answer 'A' (causes B) from KP1, and if we pay attention to EPC stuff, KP1 does mention that confidence is kinda low. The same query elicits no response from KP2, since KP2 has (A)-[does_not_cause]->(B) ... with very high confidence. Sloppily ignoring the EPC stuff, we conclude that A causes B. Comment options kevinschaper 0 replies micheldumontier [1] https://jbiomedsem.biomedcentral.com/articles/10.1186/2041-1480-2-S2-S3 0 replies aj95b 2 replies @aj95b Comment options nlharris 1 reply |
Closing now -- we just wanted to preserve this discussion in case we ever need to refer back to it. |
Discussed in #826
Originally posted by sierra-moxon July 29, 2021
In the Translator, DataModeling call on 07/29/2021 the definitions of many terms we use in the model were discussed including association, qualifier, predicate, and provenance edge properties. See this slide deck.
In particular:
And we introduced some broad guidelines around how to decide if something should be represented as a predicate or a qualifier:
We will try and use these guidelines and definitions to restructure the qualifier hierarchy in the model and add predicates where necessary.
One of the main tenants of these guidelines is that a 'qualifier' should not change the meaning of the core triple. We currently have a qualifier in the model that violates this tenant: 'negation.' We would like feedback on whether 'negation' belongs in the predicate (ie: we'd have predicates like 'does not treat' and 'does not cause', but we would only add negation-predicates when requested -- these would not be added in bulk), or would be more useful as a qualifier in the model.
From a technical point of view, negation as a qualifier is often burdensome (every time a search, inference, display, or return is executed, the negation flag has to be set). Experience has taught us that it can be missed easily.
Please do comment on this discussion if you have use cases or opinions that could help shape this discussion. And finally, please vote on your preference. 😁
👍 for negation in the predicate (ie: a predicate would be: "does not cause").
🎉 for negation as a qualifier. (ie: a predicate would be: "cause" with the qualifier: "negation").
The text was updated successfully, but these errors were encountered: