Closed pvgenuchten closed 1 year ago
@pvgenuchten that is what the themes
queryable is for ... so, from the example in the specification ...
"themes": [
{
"concepts": [
"dobson",
"brewer",
"vassey",
"pion",
"microtops",
"spectral",
"hoelper",
"saoz",
"filter"
],
"scheme": "https://geo.woudc.org/codelists.xml#WOUDC_InstrumentCode"
},
{
"concepts": [
"atmosphericComposition",
"pollution",
"observationPlatform",
"rocketSounding"
],
"scheme": "https://wis.wmo.int/2012/codelists/WMOCodeLists.xml#WMO_CategoryCode"
}
],
You can then use a filter to say something like:
?scheme=https://geo.woudc.org/codelists.xml#WOUDC_InstrumentCode&term=spectral
Of course, you need to expose scheme
and term
as queryables from the /queryables
endpoint.
Does that help?
@pvgenuchten on second reading, I think this clause probably needs to be expanded a bit with more explanation. The idea is that you can tag a record with free form keywords AND/OR you can also tag a record with terms/concepts/nodes from a formal taxonomy.
I think the example in the specification is great if you are a meteorologist but useless for everyone else. We probably need an additional example(s) using much simpler and more relatable taxonomies based on food
or vehicles
or something like that.
I'll take a stab at an edit before the next meeting.
07-APR-2023: Related to issue #181.
21-APR-2023: @pvretano provides an example of how to search within a specific controlled vocabulary here. However, this example relies on the server implementing Part 3 of Features](https://docs.ogc.org/DRAFTS/19-079r1.html) and CQL2 to have access to the queryables.
Without implementing Part 3, you would need to use a JSON path expression like: ...$.properties.themes.scheme=https://geo.woudc.org/codelists.xml#WOUDC_InstrumentCode&$.properties.themes.concepts=spectral...
(if that is even valid in Features Part 1) and you would not be able to logically combine controlled vocabulary searches across multiple themes.
It seems to us (@pvretano and @kalxas) that requiring Part 3 of Features and CQL2 for controlled vocabulary searches is not a big ask.
Will solicit feedback from the rest of the SWG.
What is the best approach to allow filtering on keyword-from-vocabulary?
For example:
But this is problematic if the filter has 2 keywords from 2 vocabularies
An optimal approach would be to filter by keyword uri (which binds the keyword to a vocabulary)?