Code Monkey home page Code Monkey logo

Comments (3)

jvendetti avatar jvendetti commented on August 12, 2024

@mdorf - do I understand correctly that the OBO IDs Matthew refers to are found in the "notation" field in our REST API?

For example, given the following REST call:

https://data.bioontology.org/search?q=melanoma&display_context=false&display_links=false&exact_match=true&include=prefLabel,notation

... I noticed that some of the notation fields are the same as the preferred label, whereas other notation fields resemble the {ontology_acronym}:{term_id} format:

"collection": [
        {
            "prefLabel": "melanoma",
            "notation": "melanoma",
            "@id": "http://www.gamuts.net/entity#melanoma",
            "@type": "http://www.w3.org/2002/07/owl#Class"
        },
        {
            "prefLabel": "melanoma",
            "notation": "DOID:1909",
            "@id": "http://purl.obolibrary.org/obo/DOID_1909",
            "@type": "http://www.w3.org/2002/07/owl#Class"
        },

from bioportal_web_ui.

mdorf avatar mdorf commented on August 12, 2024

@jvendetti, the notation field is constructed during the OWL API processing phase. At that time, either the notation property OR the prefixIRI property gets added to each class (unless the actual notation property already natively exists within the ontology, in which case, that value is preserved). At the indexing phase, we add the value of either the notation or the prefixIRI attribute to the notation field in the index. The oboID field is a separate attribute, which is ONLY used in search. It exists in the index schema and gets populated using the logic referred to here:
bmir-radx/radx-project#46 (comment)
and here:
bmir-radx/radx-project#46 (comment)
In some cases, the oboID matches the value of the notation but not universally.

from bioportal_web_ui.

jvendetti avatar jvendetti commented on August 12, 2024

@mdorf - thanks for the reply. I know about the initial processing step where we ensure that all classes coming into BioPortal have either a skos:notation or prefixIRI property.

I think what I was trying to ask is whether the OBO IDs that Matthew refers to are surfaced by the REST API so that clients like the Rails application could display them. Assuming I understood what you said above, it sounds like the OBO IDs only exist as field values in solr's index schema?

For example - if I execute a term search using an OBO ID like NCIT:C20047, I get results back from the REST API. But if I look at the classes in the JSON result set, there's nothing there to indicate if they have associated OBO IDs:

{
  "prefLabel": "Diagnostic or Prognostic Factor",
  "synonym": [
      "Diagnostic or Prognostic Factor"
  ],
  "definition": [
      "A characteristic of an organism that contributes to the diagnosis or treatment of a disease or to the prediction of clinical outcomes."
  ],
  "obsolete": false,
  "ontologyType": "ONTOLOGY",
  "provisional": false,
  "@id": "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C20047",
  "@type": "http://www.w3.org/2002/07/owl#Class"
},
{
  "prefLabel": "Diagnostic or Prognostic Factor",
  "definition": [
      "A characteristic of an organism that contributes to the diagnosis or treatment of a disease or to the prediction of clinical outcomes."
  ],
  "obsolete": false,
  "matchType": "notation",
  "ontologyType": "ONTOLOGY",
  "provisional": false,
  "@id": "http://purl.obolibrary.org/obo/NCIT_C20047",
  "@type": "http://www.w3.org/2002/07/owl#Class"
},

I tried modifying the REST call to use the include parameter to return notation values, but this has a side effect of modifying the makeup of the returned JSON. Keys like obsolete are eliminated, which the Rails application makes use of to alter the display of obsolete classes:

{
  "prefLabel": "Diagnostic or Prognostic Factor",
  "synonym": [
      "Diagnostic or Prognostic Factor"
  ],
  "definition": [
      "A characteristic of an organism that contributes to the diagnosis or treatment of a disease or to the prediction of clinical outcomes."
  ],
  "notation": "Thesaurus:C20047",
  "@id": "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#C20047",
  "@type": "http://www.w3.org/2002/07/owl#Class"
},
{
  "prefLabel": "Diagnostic or Prognostic Factor",
  "definition": [
      "A characteristic of an organism that contributes to the diagnosis or treatment of a disease or to the prediction of clinical outcomes."
  ],
  "notation": "NCIT:C20047",
  "@id": "http://purl.obolibrary.org/obo/NCIT_C20047",
  "@type": "http://www.w3.org/2002/07/owl#Class"
},

And currently there is no possibility to adjust the include parameter to get everything required:

"errors": [
  "The `include` query string parameter cannot accept obsolete, please use only prefLabel, synonym, definition, notation, cui, semanticType, properties"
],
"status": 400

from bioportal_web_ui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.