NCATSTranslator / ReasonerAPI

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

Do we want a mechanism for ARAs to formally state which KPs they use? #289

Open edeutsch opened 3 years ago

edeutsch commented 3 years ago

It seems useful for the Translator Consortium to be able to know which KPs each ARA knows how to use. In the past this has been handled with human interaction polling.

Does it seem useful to use the TRAPI definition to communicate which KPs an ARA is using? For example, we could do:

x-translator:
  supported_kps:
  - infores:molepro
  - infores:cohd
  - ...

Sort of like a static poll that can be maintained by ARAs.

Another similar approach is not just to have a static statement in the definition, but rather have some active information returned in the Response. For example:

Response.kps = {
  "infores:molepro": "0 results",
  "infores:cohd": "skipped",
  "infores:rtxkg2": "28 results"
}

If we wanted to be fancier we could even do it by edge, since which KPs an ARA consults varies by edge.

Response.kps = {
  "e0": {
    "infores:molepro": "0 results",
    "infores:cohd": "skipped",
    "infores:rtxkg2": "28 results"
  }
}

None of this is necessary of course, but it may be very nice for reporting purposes. It would allow a GUI to create a nifty graph of which KPs were consulted and how it went.

patrickkwang commented 3 years ago

ARAGORN currently reports what KPs were used for any given query in two ways:

The logs will indicate which KPs

The logs will also indicate problems encountered when querying KPs: connection failures, non-compliant responses, timeouts, etc.

ARAGORN identifies KPs to use by querying the SmartAPI registry, so we cannot generate a static list of supported KPs. I believe that the edge provenance and logs should serve any desire for dynamic information about supported KPs.

TRAPI could get in the business of standardizing how we report about KPs that we attempt to contact (independent of whether they end up contributing to results), but that sounds like maybe more than we want to bite off right now?

edeutsch commented 2 years ago

I think this is addressed in https://github.com/NCATSTranslator/ReasonerAPI/pull/339 ?

edeutsch commented 2 years ago

Example of addressing this:

test_data_location: https://raw.githubusercontent.com/RTXteam/RTX/master/code/ARAX/Documentation/arax_kps.json