SPARQL interface fotocollectie

Linked Open Data

SPARQL

Wanneer gesproken wordt over Linked Data kan SPARQL niet onbesproken blijven. SPARQL is een recursieve acroniem welke je uitspreekt als “sparkle” en staat voor SPARQL Protocol And RDF Query Language. SPARQL is nodig om Linked Data te bevragen.

SPARQL en SQL

SPARQL is dus de standard zoektaal waarmee Linked Data (RDF) bevraagd kan worden. SPARQL heeft veel overeenkomsten met SQL (Structured Query Language) maar toch zijn er een aantal belangrijke verschillen. Zo wordt SQL gebruikt voor het bevragen van relationele databases en SPARQL voor het bevragen van RDF-gebaseerde data. Een ander belangrijk verschil is de manier waarop de data en de bijhorende relaties worden opgevraagd. Met SPARQL en RDF zijn relaties in de data expliciet beschreven - via bijv. een ontologie waarin de domeinkennis geborgen is - en direct beschikbaar. Met SQL is het voor de zoekvraag van belang om te weten hoe de data is opgeslagen in de tabellen om deze vervolgens eruit te krijgen. Dus, in tegenstelling tot SPARQL, weerspiegelt een SQL-query de structuur van een database en hoe de gegevens in tabellen zijn opgeslagen. Echter, blijft het begrip van de gebruiker (via SQL) omtrent het kennisdomein achterwege. [1]

SPARQL Endpoint en SPARQL Webservice

Zowel de SPARQL Endpoint en de SPARQL Webservice worden veelal als één gezien, terwijl beide in praktijk duidelijk van elkaar gescheiden dienen te worden.

Een SPARQL endpoint is een Point of Presence (PoP) op een HTTP netwerk welke SPARQL-protocolverzoeken kan ontvangen en verwerken. Het wordt geïdentificeerd door een URL die wordt aangeduid als een SPARQL Endpoint-URL. 

De SPARQL Webservice is een HTTP-service die een API biedt voor het uitvoeren van SPARQL zoekvragen. De SPARQL Webservice maakt op de achtergrond een connectie met het SPARQL Endpoint en geeft de resultaten via de webbrowser terug op het scherm van een gebruiker. De SPARQL Webservice van het Nationaal Archief vind je hier: https://www.nationaalarchief.nl/onderzoeken/sparql

Fotocollectie

Het Nationaal Archief heeft 400.000 foto’s in de beeldbank die open data zijn en ook omgezet zijn naar linked open data. De foto's kunnen bevraagd worden via een SPARQL interface.

Er is een diagram van het datamodel van de fotocollectie. Met kennis van dit datamodel is het goed mogelijk om de linked open data te doorzoeken. Het diagram kan als afbeelding en html-pagina worden gedownload.

Uitsnede uit afbeelding van het datamodel fotocollectie
Diagram datamodel fotocollectie (uitsnede)

Datamodel van de fotocollectie (.html en .png weergave in .zip bestand).

Voorbeeld SPARQL query’s

Overzicht fotocollecties

Deze query toont een overzicht van alle fotocollecties en het aantal bijhorende records. Op deze manier kan een inschatting gemaakt worden van de grootte van de fotocollectie.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?label (count(*) as ?count)

WHERE {

       ?subject <http://schemas.delving.eu/nave/terms/datasetSpec> ?label;

    filter(strends(?label, "ntfoto"))

}

group by ?label

order by desc(?count)

LIMIT 100

Triples per fotocollectie

Deze query toont alle triples van de fotocollectie Eerste Wereldoorlog. Deze fotocollectie is geïdentificeerd als “2-24-09ntfoto”

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

Select *

WHERE {

GRAPH ?g {

?subject <http://schemas.delving.eu/nave/terms/datasetSpec> "2-24-09ntfoto";

 

}

GRAPH ?g {

?s ?p ?o.

  }

}

limit 1000

 

Fotografen

Deze query toont een overzicht van alle fotografen die bekend zijn binnen de fotocollectie van het Nationaal Archief.

PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

PREFIX nao: <https://archief.nl/def/ontologie>

Select distinct ?label

WHERE {

 

  ?agentUri a <https://archief.nl/def/ontologie/Agent>;

       skos:prefLabel ?label.

}

limit 100