NCATS-Gamma / robokop

Master UI for ROBOKOP
MIT License
16 stars 3 forks source link

synonymize/normalize inconsistency #440

Open patrickkwang opened 5 years ago

patrickkwang commented 5 years ago

The builder API provides /normalize and /synonymize. I guess I expected them to do roughly the same thing.

I called /normalize with:

{
  "knowledge_graph": {
    "edges": [],
    "nodes": [
      {
        "id": "HP:0002323",
        "type":"phenotypic_feature"
      }
    ]
  }
}

which gave me what I expected: it just added equivalent identifiers.

And I called /synonymize with HP:0002323, which gave me a MONDO primary id back.

Possibly related to #407

patrickkwang commented 5 years ago

It looks like a recent change in /synonymize ignores the provided type and uses named_thing instead. And in that case it seems to try all of the synonymizers. For HP:0002323, one of them must return a MONDO id. I haven't tracked down exactly how, but MONDO must be preferred over HP for nodes of type named_thing.

Options: 1) don't ignore the node types provided to /synonymize 2) make sure our synonymizers don't conflate types

patrickkwang commented 5 years ago

I've completed option 1 here: https://github.com/NCATS-Gamma/robokop-interfaces/commit/d2ed50fbf566c9cb896dc01ed932f92153d202d9 but @YaphetKG should still go back and iron things out.

cbizon commented 5 years ago

I think that this change was made so that the synonymizer UI on the robokop page would work. There's nowhere to provide a type, and it was always using (I think) disease. But this should probably go back to option 1 and add a type selector on the UI?