Introductie

Begin hier met leren over hoe SPARQL en Linked Data te gebruiken.


Welkom! Deze tutorial begeleid je door het eerste gebruik van de Linked Data die wij als Data Science Team van het Kadaster ontsluiten. In deze tutorial nemen we je mee in de basics van Linked Data en diens querytaal SPARQL en begeleiden we je door de resources die wij bieden om het gebruik voor de developers te vergemakkelijken.

Om jullie als developers zo snel mogelijk het gevoel te geven waarde te kunnen creëren met onze data, slaan we de typische “Hello World” tutorial over en duiken we meteen in concrete toepassingen op onze eigen datasets. De belangrijkste zaken die we in de volledige tutorial bespreken zijn:

  • Wat is Linked Data? En hoe kijken we hier als Kadaster Data Science Team naar?
  • Hoe krijg ik als developer inzicht in het datamodel van een Linked Data set?
  • Hoe gebruik ik de querytaal SPARQL?
  • Wat wordt er bedoeld als ik de registraties én de Knowledge Graph kan gebruiken?
  • Hoe gebruik ik de data in mijn eigen applicatie?

Voorkennis

Deze tutorial gaat uit van de volgende voorkennis:

  • Je hebt vaker gewerkt met data en onderliggende datamodellen.
  • Je bent bekend met het bevragen van data middels het HTTP-protocol, bijvoorbeeld door het gebruiken van REST-APIs.
  • Kennis van Linked Data en vergelijkbare Semantic Web technologiën is een pré, maar niet noodzakelijk.

Doel van deze module

Na deze module, stap 0 van de tutorial, kun je aan je collega’s uitleggen:

  • Wat Linked Data is
  • Wat SPARQL is
  • Wat het verschil is tussen objecten, attributen en definities

Wat is Linked Data?

In 2006 werd de term Linked Data als eerst geöpperd door Tim Berners-Lee, door velen bekend als de bedenker van het internet. bron. De termen Linked Data en het Semantic Web zijn onlosmakelijk met elkaar verbonden. In deze tutorial zullen we voornamelijk de term Linked Data toepassen. Hierbij focussen we ons op de volgende kernprincipes achter Linked Data:

  • Data is beschreven in het Resource Description Framework (RDF).
  • De beschreven data bevat Uniform Resource Identifiers (URIs).
  • De data maakt zoveel mogelijk gebruik van open standaarden beschikbaar in de wereld.

Triples en RDF

Linked Data stelt data beschikbaar zoals beschreven in het Resource Description Framework (RDF). In de praktijk betekent dit dat data als zogenoemde triples beschikbaar worden gesteld. Triples bestaan uit een subject, predicate en een object. Een gesimplificeerd voorbeeldje:

Triples

Wanneer we een hele hoop dergelijke triples samenvoegen, ontstaat er beetje bij beetje een volledige dataset.

Uniform Resource Identifiers (URIs)

In de praktijk zal een triple niet verwijzen naar “de Jumbo” wat “een bedrijf is”. Immers, wat betekenen deze termen? Om deze reden beschrijven we gegevens met behulp van HTTP(s) URIs. Dit zorgt ervoor dat gegevens in Linked Data uniek identificeerbaar zijn op het web. Om dit naar onze eigen Basisregistratie Adressen & Gebouwen (BAG) te relateren, zie bijvoorbeeld

https://bag2.basisregistraties.overheid.nl/bag/id/object/NL.IMBAG.Pand.0003100000117489

Het beschreven object (een pand in de BAG) leidt dus middels zijn URI naar een plek op het internet waar dit pand beschreven staat. (Het zogenoemde dereferencen)

Wanneer we dit voorbeeld één stap verder brengen komen we bij de volgende triple uit:


https://bag2.basisregistraties.overheid.nl/bag/id/registratie/NL.IMBAG.Pand.0003100000117489.1 https://bag2.basisregistraties.overheid.nl/bag/def/status https://bag2.basisregistraties.overheid.nl/bag/id/status/pandInGebruik


Het subject (deze registratie van een pand) heeft dus een predicaat/attribuut status zoals beschreven in de BAG met als waarde de status pand in gebruik zoals beschreven door de BAG.

N.B.: Momenteel ondersteunen wij dereferencing van de datasets BAG, BGT en datasets die worden omschreven onder een data.labs.kadaster HTTP URI. Dit betekent helaas dat URIs van bijvoorbeeld de BRT en BRK momenteel nog niet kunnen worden gevonden via hun URI.

Objecten, Attributen & Definities

Binnen Linked Data valt er ruwweg een splitsing te maken tussen de definities/metadatering van een gegeven dataset en de instantiedata. De definities beschrijven het datamodel en de type objecten en attributen die de dataset kan bevatten. Voor de verschillende onderdelen geldt:

Objecten:

Attributen:

Een attribuut zegt iets over een bepaald subject. Dit kan een attribuut zijn dat is gedefiniëerd in de definities van de dataset zelf of in een externe (open standaard). De waarde kan gelijk zijn aan een ander object of aan een literal. (Bijvoorbeeld een getal of stuk tekst).

Definities:

Wat is SPARQL?

SPARQL is de standaard querytaal waarmee een Linked Dataset bevraagd kan worden. Voor een gebruiker nieuw in de Linked Data wereld zal SPARQL het meest vergelijkbaar zijn met het alom bekende SQL. Deze querytaal kan gebruikt worden om een zogenoemd SPARQL endpoint te bevragen. Net als met SQL is de gebruiker in staat ingewikkelde selecties en combinaties met deze bevragingstaal te maken.

Zie hieronder de meest eenvoudige query die SPARQL te bieden heeft. Door onderstaande query af te vuren op het SPARQL endpoint van de BAG krijgen we de eerste 10 queries te zien die er in de BAG te vinden zijn. (Hint: Klik op Show Editor om de SPARQL bevraging zelf te zien).

Om meer te weten te komen over SPARQL en de playground interface die we hieronder bieden bieden we een uitgebreide uitleg in Stap 2 - SPARQL en de YasGUI Playground van de tutorial.


Volgende stap: Exploreer het datamodel ❯