biothings / biothings_explorer_archived

BioThings Explorer: a schema-based client for API interoperability
Apache License 2.0
14 stars 14 forks source link

Enable reasoning using node/edge hierarchies #138

Open andrewsu opened 3 years ago

andrewsu commented 3 years ago

Reasoning over the node and edge hierarchies would enable users to easily adjust the granularity of their BTE queries. For example, users should be able to configure BTE to expand (or to not expand) a query term for "bronchial disease" (DOID:1176) to its children, which include "asthma" (DOID:2841), bronchiectasis (DOID:9563), and bronchiolitis (DOID:2942), etc. without explicitly enumerating them. Similarly, users should be able to specify whether a query predicate for "affects expression of" should include both positive and negative effects on expression. We will implement both node and edge reasoning in both the python and nodejs BTE clients. Edge reasoning will leverage the edge normalization service created by the SRI.

Node normalization using the python client has already been implemented (see the "expand" config parameter to the Predict class in https://github.com/biothings/biothings_explorer/blob/master/jupyter%20notebooks/drug_response_predict.ipynb

andrewsu commented 3 years ago

see also Translator-wide discussion thread https://github.com/NCATSTranslator/TranslatorArchitecture/discussions/25 (use cases # 1 and # 3 are most relevant to the issue here, but # 2 and # 4 should also be discussed)

(and also private Slack discussion https://suwulab.slack.com/archives/GGJMCK06B/p1612911581011500)