-
Notifications
You must be signed in to change notification settings - Fork 2
Name Resolution Service
The operation of Translator relies heavily on Compact URIs (CURIEs); see here for a Translator glossary. However, Translator users are humans who refer to concepts using names rather than identifiers. We therefore need a way to transform strings into identifiers.
This service takes lexical strings and attempts to map them to identifiers (curies) from a vocabulary or ontology. The lookup is not exact, but includes partial matches.
String matching does not produce unique or foolproof results, and usually require a human to identify the correct response. Multiple results may be returned representing possible conceptual matches, but all of the identifiers have been correctly normalized using the NodeNormalization service.
The lookup
function of the Name Resolution service accepts a string and returns a series of concepts that string-match the query term:
curl -X 'POST' \
'https://name-resolution-sri.renci.org/lookup?string=cheese&offset=0&limit=10' \
-H 'accept: application/json' \
-d ''
Response:
{
"MONDO:0003955": [
"Swiss cheese disease",
"juvenile breast papillomatosis",
"breast juvenile papillomatosis",
"juvenile papillomatosis of breast",
"juvenile papillomatosis of the breast"
],
"HP:0011625": [
"Swiss cheese ventricular septal defect"
]
}
It is also possible to look up synonyms for a particular CURIE (or list of CURIEs):
curl -X 'POST' \
'https://name-resolution-sri.renci.org/reverse_lookup' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"curies": [
"MONDO:0003955"
]
}'
Response:
{
"MONDO:0003955": [
"juvenile breast papillomatosis",
"juvenile papillomatosis of breast",
"juvenile papillomatosis of the breast",
"Swiss cheese disease",
"breast juvenile papillomatosis"
]
}
More examples can be seen in the Documentation Notebook
Issues with the Name Resolution Service can be reported and viewed at the services github repository here.
The service can be built into a docker container, deployable using docker or kubernetes. Details are given in the github README
- Running Instance: https://name-resolution-sri.renci.org/docs
- Github Repository: https://github.com/TranslatorSRI/NameResolution
- SmartAPI Registration: http://smart-api.info/registry?q=55510544e95386a5a8ac3b88f9d00d21
- Translator PROD Instance: https://name-lookup.transltr.io/lookup?string=CDK2