Ser av ett annat inlägg att jag missat en del aspekter av syntaxen, att kolon-tecknet i dokumentationen ingår i uttrycket, att det generella formatet är egenskap:värde, att det enbart är predikatet som behöver kortas av genom kodning, och att kolon-tecken behöver kodas i övriga delar av uttryck som t.ex. URI:er.
Kommentar gällande dokumentationen
Det skulle vara lättare att förstå om dokumentationen beskriver ett komplett sökuttryck med platshållare för värdet, och med exempel på tillämpning. Inget av fåtalet exempel långt ned på sidan innehåller heller en URI som värde vad jag kan se.
https://entrystore.org/kb/search/#indexed-information
metadata.predicate.literal.<md5>, metadata.predicate.uri.<md5> : Used to carry out queries for exact predicate-object combinations ...
Exempel på förtydligande:
metadata.predicate.literal.<md5>:<value>, metadata.predicate.uri.<md5>:<value>
metadata.predicate.uri.a2b4c6d8:https\://example.com/identifier
Frågeställning
För att återgå till det aktuella problemet; frågeparametern skulle då bli, med kodning för predikat och objektvärde:
metadata.predicate.uri.957f77a7:https\://www.dataportal.se/specifications/matsvinn/1.0
URL, med ytterligare URI-kodning av parametervärden:
https://admin.dataportal.se/store/search?type=solr&query=metadata.predicate.uri.957f77a7%3Ahttps\%3A%2F%2Fwww.dataportal.se%2Fspecifications%2Fmatsvinn%2F1.0&sort=score%2Bdesc%2Cmodified%2Bdesc&limit=50&offset=0&rdfFormat=application/ld+json
Resultatet ger en träff, en datamängd från opendata.umea.se som refererar till specifikationen för matsvinn, vilket verkar rimligt:
"dcat:landingPage": {"@id": "https://opendata.umea.se/explore/dataset/matsvinn/"}
Enklare API
Jag tycker dock att det verkar väl krångligt att konstruera dessa sökningar med kodningar i flera steg. Visserligen går det att automatisera i programkod och skapa ett gränssnitt (vilket då borde ha gjorts från början), men det vore att föredra om det fanns ett API där man kan skicka in frågor mer direkt och använda standard-klienter. Därför tycker jag också det vore lämpligt att koppla på SPARQL-API:et för sökningar i metadata, något som uppenbarligen ingår i den produkt som används för tjänsten.
@august sa i API-användning: Hämta alla dataset kopplade till en specifik organisation:
Det går istället att begränsa sökningen direkt för att enbart få dessa datamängder genom:
https://admin.dataportal.se/store/search?type=solr&query=(rdfType:http%5C%3A%2F%2Fwww.w3.org%2Fns%2Fdcat%23Dataset)+AND+public:true+AND+(metadata.predicate.uri.9259d4c1:http%5C%3A%2F%2Fid.kb.se%2Forganisations%2FSE2021000837)&offset=0
Jag lade till facetten metadata.predicate.uri.<md5> för att söka datamängdens utgivare. I det här fallet är predikatet 'http://purl.org/dc/terms/publisher', men en behöver skapa MD5 hash (och trunkera till 8 chars pga begränsningar i Solr). 'http://purl.org/dc/terms/publisher' blir då 9259d4c1. För mer info om indexeringen som sker via Solr, se: https://entrystore.org/kb/search/ . Där finns också mer info om alla möjliga sätt att söka mot lagringslösningen för admin.dataportal.se