Skip to content

SparQl querry

Deiver edited this page Nov 25, 2019 · 13 revisions

Als ik mijn concept wil uitwerken heb ik het volgende uit de API database van NMVW nodig:

  • Lengte: dit heb ik nodig de objecten te filteren op lengte
  • Naam: dit heb ik nodig om de naam van de objecten te laten zien.
  • Afbeeldingen: dit heb ik nodig voor extra content om de informatie van de objecten te versterken.
  • Datum: Dit heb ik misschien nodig.
  • Beschrijving: dit heb ik nodig om informatie weer te geven.
  • Oorsprong/Plaats: -> dit heb ik nodig om achter te komen waar het object vandaan komt.

SparQl Query

Met de onderstaande query ga ik de variabelen die ik hierboven heb benoemd ophalen van de database. Dit ga ik per stap uitleggen hoe ik dit heb gedaan.

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?cho ?title ?typeLabel ?lengte ?datum ?afb ?bes WHERE {

  <https://hdl.handle.net/20.500.11840/termmaster1248> skos:narrower* ?type .
  ?type skos:prefLabel ?typeLabel .

  ?cho edm:object ?type .
  ?cho dc:title ?title .
  ?cho dct:extent ?lengte.
  ?cho dct:created ?datum.
  ?cho edm:isShownBy ?afb.
  ?cho dc:description ?bes.
  FILTER langMatches(lang(?title), "ned")
} LIMIT 10000

Prefixes

Als we eerst kijken naar de eerste prefix:

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

Met de rdf: wordt er bepaalde data ophaalt van bijvoorbeeld de volgende database:

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

Select labels and Where

Met de onderstaande code kan begin ik mijn query de vormen. Dit doe ik door met SELECT specifieke waardes terug op krijgen in objecten.

SELECT ?cho ?title ?typeLabel ?lengte ?datum ?afb ?bes WHERE {
}

Binnen de WHERE functie zeg met de Sparql logica welke data opgehaald en gestopt moet worden in de geselecteerde variabelen.

  <https://hdl.handle.net/20.500.11840/termmaster1248> skos:narrower* ?type .
  ?type skos:prefLabel ?typeLabel .

  ?cho edm:object ?type .
  ?cho dc:title ?title .
  ?cho dct:extent ?lengte.
  ?cho dct:created ?datum.
  ?cho edm:isShownBy ?afb.
  ?cho dc:description ?bes.
  FILTER langMatches(lang(?title), "ned")

Zo haal ik dus specifieke variabelen van verschillende databases zodat ik die data kan ophalen als specifieke variabelen binnen bepaalde objecten die aangemaakt worden binnen de WHERE functie.

Reflectie

SparQl blijft voor mij een standaard die ik nog niet helemaal beheer maar het helpt mij om wel te begrijpen hoe complex een gebonden database kan zijn. Ik denk dat het mij heel veel tijd zou kosten om data op te halen als ik geen uitleg had gekregen van Ivo Zandhuis. Maar ik zag en geloof erin dat je veel meer kan met SparQl dan wat ik hierboven heb.

Inhoud

Documentatie

Proces

Extra

Clone this wiki locally