Search Mailing List Archives
[bioontology-support] Combine search and property_search endpoints
john.zobolas at ntnu.no
Sat Jul 6 00:45:11 PDT 2019
Good to hear from you and thanks for the answers! I will have to use the `property_search` endpoint to get back the results I want in the end :)
From: Michael Dorf <mdorf at stanford.edu>
Sent: Friday, July 5, 2019 8:36 PM
To: John Zobolas
Cc: support at bioontology.org
Subject: Re: [bioontology-support] Combine search and property_search endpoints
Thank you for keeping in touch with us and for continuing to us our API. Before answering your specific questions (or possibly instead), I should explain the difference between the two endpoints in question.
1. The /search endpoint searches for VALUES of properties for a given set of terms. By default, it only searches for the properties that are common across ALL ontologies, such as ID, prefLabel, synonym, and definition. An optional flag allows searching in other, ontology-specific properties, but those are stored in our index as a “bulk” collection rather than each individually. The properties are referenced using their IDs rather than labels. For example:
The latter search match on a property with the ID "http://purl.obolibrary.org/obo/IAO_0000232”. You can use the /properties endpoint from here if you require the label of the property:
Because these ontology-specific properties and their values for each term are stored in bulk, you cannot limit search results to just the value of a specific property.
2. The /property_search endpoint searches for the NAMES (labels) of properties across the entire ontology. It’s not term-specific and it doesn’t take into account the values of these properties for each term. For example:
The data for the /search endpoint is term-specific, where as the data for the /property_search endpoint is ontology-specific; therefore, these two can not be lumped together. They each serve as specific purpose. A possible exception to this rule would be to store the labels of these “unmapped” properties in the index along with their IDs, so that the labels can be searchable. I would still be hesitant to implement this, since the whole point of the /search endpoint is a “value-based” search rather than a “name-based” search.
Your “hacked kind of query” should include the properties (IDs/values) if you explicitly asked to include them in the results:
Hope this clarifies it.
On Jul 4, 2019, at 6:37 AM, John Zobolas <john.zobolas at ntnu.no<mailto:john.zobolas at ntnu.no>> wrote:
I was using the `search` endpoint to request for a term in an ontology, but some people (while doing a free text search) wanted to get back the properties of the ontologies returned as terms - for example these ones: https://bioportal.bioontology.org/ontologies/OBOREL/?p=properties. So, asking for `causally related to` in the OBOREL ontology using the `search` endpoint returned nothing. I saw that you have a endpoint the `property_search` for that, which means that I will have to duplicate every search query that the users make. But then, when I request for IDs internally in my application, I ask queries like this one:
http://data.bioontology.org/search?q=http%3A%2F%2Fwww.semanticweb.org%2Fpallabi.d%2Fontologies%2F2014%2F2%2Funtitled-ontology-11%23CXorf36-Glu142%2A&ontologies=&require_exact_match=true&also_search_obsolete=true&display_context=false,<http://data.bioontology.org/search?q=http%3A%2F%2Fwww.semanticweb.org%2Fpallabi.d%2Fontologies%2F2014%2F2%2Funtitled-ontology-11%23CXorf36-Glu142%2A&ontologies=&require_exact_match=true&also_search_obsolete=true&display_context=false> and if it is an ID of a property, you have to ask also the `property_search` endpoint or otherwise you will never get it. So I have to duplicate the `getID` related-queries as well. For example, asking for this ID does not return anything: http://data.bioontology.org/search?q=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FRO_0002410&exact_match=true&page=1&pagesize=130&display_context=false, but changing to the `property_search` endpoint you find all the ontologies that have this ID and refers to the `causally related to` term/label)
* Why have two different endpoints for searching? Is it possible to provide a single endpoint that combines both?
* I had been given a hacked kind of query to ask for all IDs within all ontologies in BioPortal (paginated): http://data.bioontology.org/search?ontologies=&ontology_types=ONTOLOGY&page=1&display_context=false. Do you know if the above will include the property terms? (I guess not because some of the properties of the returned JSON objects are different between the `search` and `property_search` endpoints)
Department of Biology, Faculty of Natural Sciences, NTNU
Department of Clinical and Molecular Medicine, Faculty of Medicine and Health Sciences, NTNU
bioontology-support mailing list
bioontology-support at lists.stanford.edu<mailto:bioontology-support at lists.stanford.edu>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the bioontology-support