thechiselgroup / biomixer

BioMixer
http://bio-mixer.appspot.com/
16 stars 13 forks source link

Duplicate term in mapping neighbourhood #61

Closed drusk closed 10 years ago

drusk commented 12 years ago

http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997&mode=embed&embed_mode=mapping_neighbourhood&virtual_ontology_id=1487&full_concept_id=http%3A%2F%2Fwho.int%2Fbodysystem.owl%23BodySystem

shows an example of where a term has shown up twice in a mapping neighbourhood. It shows up once using the full id and once using the short id.

ghost commented 12 years ago

Based on the example given above, I see "Body System" supposedly from ontology: NIFSTD with ID: 1084 is shown twice - one is shown to have a short ID, another is shown to have a full ID. David - is this what you meant first of all? 

If so, then this is actually not a duplication as such, but a consequence of "mistakes" in the REST results at 2 places: (1) two different ontologies are associated with the same virtual ID, and (2) where it should return a short ID, it actually returns the full ID for a particular concept.

See details below.

(1) we start off by requesting mappings for a concept with full ID: "http://...BodySystem" in an ontology with virtual ID: "1487", which returns this:  http://rest.bioontology.org/bioportal/virtual/mappings/concepts/1487?conceptid=http%3A%2F%2Fwho.int%2Fbodysystem.owl%23BodySystem&pagesize=10&pagenum=1&apikey=490b56c6-28b6-411e-8b0c-6a4b63c01a02

In it, 

<mapping> <id> http://purl.bioontology.org/mapping/loom/4605a00e73c1484a42c169dedc4f0c6d </id> <source> <fullId>http://who.int/bodysystem.owl#BodySystem&lt;/fullId&gt; </source> <target> <fullId> http://ontology.neuinfo.org/NIF/BiomaterialEntities/NIF-GrossAnatomy.owl#birnlex_14 </fullId> </target> <relation>http://www.w3.org/2004/02/skos/core#closeMatch&lt;/relation&gt; <sourceOntologyId>1487</sourceOntologyId> <targetOntologyId>1084</targetOntologyId> ... </mapping>

...

<mapping> <id> http://purl.bioontology.org/mapping/loom/e2b407804af67446da638f89fead05b8 </id> <source> <fullId> http://ontology.neuinfo.org/NIF/Backend/BIRNLex-OBO-UBO.owl#birnlex_14 </fullId> </source> <target> <fullId>http://who.int/bodysystem.owl#BodySystem&lt;/fullId&gt; </target> <relation>http://www.w3.org/2004/02/skos/core#closeMatch&lt;/relation&gt; <sourceOntologyId>1084</sourceOntologyId> <targetOntologyId>1487</targetOntologyId> ... </mapping>

which states that "http://ontology.neuinfo.org/NIF/BiomaterialEntities/NIF-GrossAnatomy.owl#birnlex_14" is from ontology: "1084" (in the first part of the XML above);  and "http://ontology.neuinfo.org/NIF/Backend/BIRNLex-OBO-UBO.owl#birnlex_14" is also from ontology:"1084" (in the second part of the XML above).  However, these are in fact two different ontologies: one is the NIF-GrossAnatomy ontology (see http://ontology.neuinfo.org/NIF/BiomaterialEntities/NIF-GrossAnatomy.owl) and the other is the BIRNLex-OBO-UBO ontology (see http://ontology.neuinfo.org/NIF/Backend/BIRNLex-OBO-UBO.owl). This is the first mistake in the results returned by REST.

(2) Continued from the example above, we now want to know which ontology the concept: "http://ontology.neuinfo.org/NIF/BiomaterialEntities/NIF-GrossAnatomy.owl#birnlex_14" belongs to, and which ontology the concept: "http://ontology.neuinfo.org/NIF/Backend/BIRNLex-OBO-UBO.owl#birnlex_14" belongs to.

This is then returned: http://rest.bioontology.org/bioportal/virtual/ontology/1084?conceptid=http%3A%2F%2Fontology.neuinfo.org%2FNIF%2FBiomaterialEntities%2FNIF-GrossAnatomy.owl%23birnlex_14&norelations=1&light=1&apikey=6700f7bc-5209-43b6-95da-44336cbc0a3a

In it, <classBean> <id> http://ontology.neuinfo.org/NIF/BiomaterialEntities/NIF-GrossAnatomy.owl#birnlex_14 </id> <fullId> http://ontology.neuinfo.org/NIF/BiomaterialEntities/NIF-GrossAnatomy.owl#birnlex_14 </fullId> <label>Body system</label> ... </classBean>

Similarly, this is returned: http://rest.bioontology.org/bioportal/virtual/ontology/1084?conceptid=http%3A%2F%2Fontology.neuinfo.org%2FNIF%2FBackend%2FBIRNLex-OBO-UBO.owl%23birnlex_14&norelations=1&light=1&apikey=6700f7bc-5209-43b6-95da-44336cbc0a3a

In it, <classBean> <id>birnlex_ubo:birnlex_14</id> <fullId> http://ontology.neuinfo.org/NIF/Backend/BIRNLex-OBO-UBO.owl#birnlex_14 </fullId> <label>Body system</label> ... </classBean>

In the first return above, <id> actually contains just the full ID. This is the second mistake in the results returned by REST.

In summary, other than raising these issues to Ray, I don't think there's anything else we can do. Any comments?

drusk commented 12 years ago

Yes, in the visualization it shows two nodes that appeared to be the same concept. One had a full id and the other had a short id which was just the last part of the other's full id. Interesting findings here. So what you are saying is that they are actually separate concepts and in separate ontologies? Can you tell what the correct virtual ontology ids should be for these two?

ghost commented 12 years ago

In this example, yes, these are two different concepts belonging to two different ontologies. But the same virtual ID is assigned to both ontologies, and we don't know what the correct virtual ID should be for each. Ray should be able to clarify this.