Här kommer SwePub-projektet - och kanske även du - att lägga upp SPARQL-frågor som kan vara användbara för andra.
Källkoden för SwePubs webbgränssnitt hittar du på https://github.com/libris/swepubanalys
För att ställa frågor mot SwePub kan man antingen använda gränssnittet på http://info.swepub.kb.se eller gå direkt mot SwePubs Sparql-endpoint på http://virhp07.libris.kb.se/sparql/.
Endpointen fungerar även som ett API. Man kan ställa frågor genom både POST och GET-anrop till samma url. Nedan ett exempel på anrop genom i Groovy med paketet WsLite som returnerar svaret i json-format:
def client = new RESTClient(http://virhp07.libris.kb.se/sparql)
def response = client.post(
accept: contentType = "application/json",
path: '/',
query: [query: sparql, format: contentType])
assert 200 == response.statusCode
return response.json
En bra indroduktion och steg-för-steg-genomgång i hur du använder den visuella Query-generatorn finner du på LIBRIS-bloggen.
Det finns många approacher till detta. SwePub projektet använder idag två.
Den första lösningen bygger på att man ser querysresultatet som en grund för ett lokalt datalager och flyttar över resultatet till tabeller i en lokal relationsdatabas. Det här används för att få ut data till webbversionen av analysverktyget SpotFire, som vi erbjuder alla med poster i SwePub.
När SwePub internt serialiserar data för vidare indexering i Elasticsearch använder vi ett bibliotek som tar ett resultat i Turtle-format, letar reda på vilka triplar som hör till samma subjekt och slår ihop dessa till en "post" i JSON-LD-format. TODO: Lägg in exempel i repot hur man gör.