NCATS-Tangerine / translator-knowledge-beacon

NCATS Translator Knowledge Beacon Application Programming Interface plus Sample code
MIT License
7 stars 2 forks source link

Namespaces endpoint #64

Open lhannest opened 5 years ago

lhannest commented 5 years ago

This endpoint would be like the kmap for exact matches. This is an example of what kind of data it would return:

[
   {
      "clique_mappings":[
         {
            "prefix":"OMIM",
            "uri":"http://purl.obolibrary.org/obo/OMIM_"
         },
         {
            "prefix":"Orphanet",
            "uri":"http://www.orpha.net/ORDO/Orphanet_"
         },
         {
            "prefix":"UniProtKB",
            "uri":"http://identifiers.org/uniprot/"
         }
      ],
      "frequency":905,
      "local_prefix":"NCBIGene",
      "uri":"http://www.ncbi.nlm.nih.gov/gene/"
   },
   {
      "clique_mappings":[
         {
            "prefix":"WBPhenotype",
            "uri":"http://purl.obolibrary.org/obo/WBPhenotype_"
         },
         {
            "prefix":"UPHENO",
            "uri":"http://purl.obolibrary.org/obo/UPHENO_"
         }
      ],
      "frequency":2286,
      "local_prefix":"HP",
      "uri":"http://purl.obolibrary.org/obo/HP_"
   }
]

This would essentially say that the beacon has concepts identified by NCBIGene and HP curies, and that it can produce exact matches between OMIM, Orphanet, UniProtKB, and NCBIGene, and between HP, UPHENO, and WBPhenotype.

This will be useful for clients (e.g., the beacon aggregator) to be able to know whether or not they should query a beacon when trying to build up concept cliques. It would also document the case of the curie prefixes (e.g., "NCBIGene" vs "NCBIGENE" vs. "ncbigene") that the beacon uses.

lhannest commented 5 years ago

@cmungall @RichardBruskiewich I've already started implementing this, so far with: https://kba.ncats.io/beacon/biolink/namespaces https://kba.ncats.io/beacon/rkb/namespaces https://kba.ncats.io/beacon/rtx/namespaces https://kba.ncats.io/beacon/rhea/namespaces

lhannest commented 5 years ago

This endpoint doesn't seem possible for NDEx, unfortunately.

RichardBruskiewich commented 5 years ago

NDex is a pain. Remember, though, that we had pondered subdividing NDex into network naming spaces. I such a situation, we may be able to pin down the exact matches feasible (if any).

You'll need to ponder how client software (e.g. KBA) will respond to missing information from this endpoint... their function should remain robust to that (if only a bit degraded in quality of interaction)