NCATSTranslator / ReasonerAPI

NCATS Biomedical Translator Reasoners Standard API
34 stars 28 forks source link

Figure out how to convey "user intent" via a "knowledge type" constraint #324

Closed edeutsch closed 2 years ago

edeutsch commented 2 years ago

As proposed last week, it seems useful to try to encode "user intent" via a "knowledge type" constraint in a Query Graph QNode. This would allow greater precision in converting an English question into a Query Graph with nuances about what type of relationships/assertions are being sought.

For example, consider a querier asking "Which drugs treat Alzheimer disease?" But is the user asking for a simple lookup in the major databases? Wanting drugs with some published evidence of efficacy? computational predictions? inferences? any of the above?

I propose we design a "knowledge type" nuance that can be attached to any QEdge predicate with a controlled vocabulary something like:

i.e., this gives a specific modifier to encode questions like:

The data sources and approaches to answer these different questions could be considered by ARAs. The last "could potentially" seems like carte blanche to try many different avenues of exploration, as is current being considered for the open ended queries. This provides a specific mechanism for specifying how answering a Query should be approached by an ARA.

Such knowledge types could be synchronized with KG assertions to some degree, as it seems useful to code assertions with similar categories, as is done in ECO: https://www.ebi.ac.uk/ols/ontologies/eco and similar ontologies.

Comments?

vdancik commented 2 years ago

Would it make sense to add a mechanism to add directives to queries:

"directives": [
    { 
        "directive_type": "hint",
        "applicable_to" : "ARA",
        "directive_context" : "lung cancer"
    }
]
edeutsch commented 2 years ago

I do not understand this comment in the context of this issue. Was the above comment intended for #319? It seems to make more sense in that context?

ehinderer commented 2 years ago

Please see my comment on #319

ehinderer commented 2 years ago

To add to that comment, it might be worth considering starting with a broader set of intention, perhaps 2 intention categories:

edeutsch commented 2 years ago

After pondering this a little more, here's a refined idea for today's EPC call:

Eric's idea:

    known to                    overwhelming evidence and acceptance for a relationship
    formally approved to            approved by a regulator after extensive evaluation of evidence for a relationship
    clinically demonstrated to          Result of a clinical trial demonstrating a relationship
    experimentally demonstrated to      Experimental result testing the hypothesized relationship
    observed in data to             Observational result without experimental hypothesis testing of the relationship
    NLP understood to               Relationship from literature as understood by a text mining process
    computationally predicted to        Prediction based on a computational model of the relationship
    hypothesized to             Provision of an explicit hypothesis for the relationship
    indirectly inferred to          Potential relationship based on indirect inference

Assertions: A biolink:treats B A is xxxxxxxxxxxx treat B

X biolink:molecularly_interacts_with Y X is xxxxxxxxxxx molecularly_interact_with Y

Queries: Which drugs biolink:treats disease B? Which drugs are xxxxxxxxxxxxxx treat disease B?

Which small molecules biolink:molecularly_interacts_with Y? Which small molecules are xxxxxxxxxxxxxx molecularly_interact_with Y?

Some existing item from Biolink:

predicate_qualifier_enum:
    description: >-
      constrained list of qualifying terms that soften or expand the definition of the predicate used.
      can be used to constrain or qualify any predicate (any child of related_to).
    permissible_values:
      "predicted":                  --> ? computationally predicted to
      "possibly":                       --> indirectly inferred to
      "hypothesized":                   --> hypothesized to
      "validated":                  --> ?
      "supported by real-world evidence":       --> experimentally demonstrated to
      "supported by clinical evidence":     --> clinically demonstrated to

This seems to be reasonably compatible with existing ECO codes: image

https://academic.oup.com/nar/article/50/D1/D1515/6431816

ozborn commented 2 years ago

Agree with Eric's idea need to specify knowledge type, I think the ideal situation would be to harmonize with ECO codes, map to ECO codes or use them directly.

edeutsch commented 2 years ago

The EPC group is actively working on this, so closing this issue. See https://docs.google.com/document/d/1tHbNng89sOJ59R7krEazBObI61Mo0mvdZXPOTOdNnms/edit#heading=h.2s2aushu15v6