-
Notifications
You must be signed in to change notification settings - Fork 28
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
Unambiguous (un)batching #293
Comments
Idea: do more explicit batching. Do not allow lists of CURIEs/predicates, but allow sending multiple messages per payload. Pros:
Cons:
|
I think an NodeBinding.original_id could solve the problem reasonably well. |
It seems like there are 3 options:
1 and 3 does not solve the problem of subclass inference |
A slight variation on idea 2: rather than an additional field, use a sort of extended qnode id in bindings. For example, "node_bindings": {
"n00.MONDO:123": [{"id": "MONDO:9876"}],
... |
What about
|
Should we use |
FYI from the Architecture README: KPs that implement the Translator Reasoner API must perform the following kinds of reasoning in answering queries: Making identifiers more specific, e.g. responding to a query involving an entity with information related to a subclass of that entity. In the knowledge_graph portion of the response, the more-specific identifier must be present and linked to the less-specific identifier. In the results portion of the response, the more-specific response node will be bound to the less-specific query node. |
We acknowledge that the above strategy from Architecture can be followed and interpreted successfully for unbatched queries (with a single id). BUT, for batched queries (which seem to be the most popular these days), following the Architecture guideline leads to a situation where the client would have a very hard time (unless they also do some complex ancestor matching) to interpret the results. Seems like NodeBinding.query_id would be the good way to solve that. But that won't appear until TRAPI 1.3. It remains to be seen when we would be able to release TRAPI 1.3 with that fix. We will decide after the relay. |
Current design:
First proposal:
(in the case where there are two input curies and one is a descendant of another, just have two entries in the list) Second proposal:
Note that one node in the KG could be a descendant of two input ids. |
Suppose there are two input query ids 100 and 200. The server returns 212, which is a descendant of both 100 and 200)
(in the case where there are two input curies and one is a descendant of another, just have two entries in the list) |
Suppose there are two input query ids 100 and 200. The server returns 212, which is a descendant of both 100 and 200)
Note that one node in the KG could be a descendant of two input ids. |
Third proposal:
|
Proposal 4:
|
As of 10:30 11/18 Heart = 2 pts |
addressed in PR #304 |
NCATSTranslator/TranslatorArchitecture#62
We would like to make sure that results can be unambiguously matched to specific query-graph CURIEs/predicates.
The text was updated successfully, but these errors were encountered: