Linked data server

De Stelselcatalogus wordt ook volgens de principes van Linked Data gepubliceerd.

Met deze dataset kunt u rechtstreeks gegevens uit de Stelselcatalogus linken aan uw eigen werkprocessen, vanuit applicaties waarmee u werkt. Heeft u hieraan behoefte? Vraag uw gegevensarchitect naar de mogelijkheden.

Bent u gegevensarchitect, dan vindt u hier de beschrijving van de linked data server en de bijhorende reconciliatie server API.

De gevolgde URI strategie

De gebruikte identifiers zijn conform de adviezen geformuleerd in de Concept URI Strategy for the NL Public Sector.

Individuen

Voorgesteld patroon

Voor het identificeren van individuele entiteiten wordt het volgende patroon gevolgd:
{domain}/{type}/{concept}/{reference} waarbij 

PatroondeelToelichting
domeinhet internet domein dat de uricollectie publiceert
type of 'id' voor de identifiers van de entiteit zelf, of 'doc' voor het identificeren van het document dat de entiteit beschrijft
concept aanduiding waarover het gaat (concept, persoon, organisatie, event, ....)
reference  de unieke key van de entiteit (natuurlijke key b.v. ISBN nummer of key gegenereerd op basis van andere velden).

Toegepast patroon

^http://data.stelselvanbasisregistraties.nl/(overheid|stelselcatalogus|crd|bag|bgt|blau|bri|brk­|bro|brt|brv|gba|nhr|rni|woz)/id/(gegevenselement|concept|basisregistratie|regelgeving)/(.*)$

Gebruikte klassen en properties

Voorgesteld patroon

Voor het identificeren van klassen en properties wordt het volgende patroon gevolgd:
{domain}/def}
waarbij 

PatroondeelToelichting
domeinhet internet domein dat de uricollectie publiceert
concept de naam/key van de klasse of property (klasses gebruiken UpperCamelCase; properties lowerCamelCase).

Toegepast patroon

Het gebruikte model is te vinden op:
^http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#(.*)$

Inhoud van de dataset

De dataset bevat instances van 5 klassen:

De instances van de klassen BegripVoorkomen en Gegevenselement zijn beschreven aan de hand van de volgende properties:

De klassen en properties zijn beschreven in namespace http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def# en zijn op dit adres te consulteren (linked data).

Deze klassen en properties zijn voor zover als mogelijk gemapt op klassen en properties van standaard vocabularia zoals Dublin Core, RDFS, SKOS, FOAF, ... 

Linked Data Server

303 see other

Bij het opvragen van een instance via zijn http identifier geeft de linked data een 303 see other response verwijzend naar het corresponderende document dat de instantie beschrijft.
Deze documenten volgen het volgend URI patroon:
^http://data.stelselvanbasisregistraties.nl/(overheid|stelselcatalogus|crd|bag|bgt|blau|bri|brk|bro|brt|brv|gba|nhr|rni|woz)/doc/(gegevenselement|concept|basisregistratie|regelgeving)/(.*)$

conneg (content negotiation)

De linked data server ondersteunt momenteel content negotiatie voor de volgende formaten:

  • html
  • rdf/xml (default)
  • turtle
  • ntriples
  • jsonld (vanaf release 2.2, mei 2014)

Gebruik bij uw HTTP GET als header:

Acceptvoor een response formaat in
rdf
*/*rdf
text/htmlhtml
application/rdf+xmlrdf
text/turtleturtle
text/plainntriples
application/ld+json jsonld

Belangrijk voor gebruikers van Internet Explorer: oudere versies van IE geven als Accept header standaard '*/*' mee. Daardoor wordt er een response in RDF gegeven in plaats van HTML. Gebruik een nieuwere versie van IE of een andere browser voor een response in HTML.

representation URI’s

De respectieve representaties van het document dat de instance beschrijft (^http://data.stelselvanbasisregistraties.nl/(overheid|stelselcatalogus|crd|bag|bgt|blau|bri|brk|bro|brt|brv|gba|nhr|rni|woz)/doc/(gegevenselement|concept|basisregistratie|regelgeving)/(.*)$)
zijn rechtstreeks opvraagbaar op basis van volgende extensies:

Extensievoor een representatie formaat in
.htmlhtml
.rdfrdf
.ttlturtle
.ntntriples
 .jsonld jsonld

Aanbeveling: wij bevelen aan om de identifier van de entiteit in combinatie met een Accept header te gebruiken in plaats van rechtstreeks bepaalde document representaties op te vragen.

CORS

Deze linked data service heeft een minimalistische CORS (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) ondersteuning.
Indien bij de HTTP GET request als header Origin wordt meegegeven, komt er in de response een Access-Control-Allow-Origin terug.

void description

Een beschrijving van de dataset volgens het Vocabulary of Interlinked Datasets (VoID) (http://www.w3.org/TR/void/) met minimale provenance (PROV) (http://www.w3.org/TR/prov-o/) data vindt u op: http://data.stelselvanbasisregistraties.nl/stelselcatalogus/id/dataset/sc

Het gebruikte model vindt u op: http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def
De instances zijn te vinden volgens volgend URI patroon:
^http://data.stelselvanbasisregistraties.nl/(overheid|stelselcatalogus|crd|bag|bgt|blau|bri|brk|bro|brt|brv|gba|nhr|rni|woz)/id/(gegevenselement|concept|basisregistratie|regelgeving)/(.*)$

Reconciliation server

API beschrijving

Deze Reconciliation API is een simpele web service die het linken van datasets naar de stelselcatalogus data ondersteunt. De API accepteert een simpele tekst string bijvoorbeeld een label en geeft dan een lijst terug met mogelijke identifier matches (gerankt).

Deze API implementeert bijna volledig de OpenRefine Reconciliation API waarvan u de documentatie vindt op: http://data.ordnancesurvey.co.uk/docs/reconciliation en https://github.com/OpenRefine/OpenRefine/wiki/Reconciliation-Service-Api.

Het gevolg is dat deze API direct in OpenRefine (https://github.com/OpenRefine/OpenRefine)/LODRefine.

Niet geïmplementeerd:
* combinatie van types worden niet ondersteund in OpenRefine
* verfijnde queries die gebruik maken van properties

Deze API is beschikbaar op: http://data.stelselvanbasisregistraties.nl/stelselcatalogus/api/reconcile.

Voorbeelden

Voorbeeld 1

queries={"q0":{"query":"Natuurlijk persoon","limit":3},
"q1":{"query":"Adres","limit":3},
"q2":{"query":"Spoor","limit":3},
"q3":{"query":"datum begin","limit":3}}

Met als response

{
"q2": {"result": [
{
"id": "http://data.stelselvanbasisregistraties.nl/bgt/id/gegevenselement/Spoor",
"score": "7.000589",
"name": "Spoor (BGT)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#Gegevenselement"],
"match": false
},
{
"id": "http://data.stelselvanbasisregistraties.nl/bgt/id/concept/Spoor",
"score": "7.000589",
"name": "Spoor (BGT)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen"],
"match": false
}
]},
"q1": {"result": [
{
"id": "http://data.stelselvanbasisregistraties.nl/brv/id/concept/Adres",
"score": "3.988328",
"name": "Adres (BRV)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen"],
"match": false
},
{
"id": "http://data.stelselvanbasisregistraties.nl/nhr/id/concept/Adres",
"score": "3.988328",
"name": "Adres (NHR)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen"],
"match": false
},
{
"id": "http://data.stelselvanbasisregistraties.nl/crd/id/concept/Adres",
"score": "3.988328",
"name": "Adres",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#Begrip"],
"match": true
}
]},
"q3": {"result": [
{
"id": "http://data.stelselvanbasisregistraties.nl/bag/id/gegevenselement/Datum_begin_geldigheid_verblijfsobjectgegevens-Verblijfsobject",
"score": "3.1936123",
"name": "Datum begin geldigheid verblijfsobjectgegevens (Verblijfsobject) (BAG)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#Gegevenselement"],
"match": false
},
{
"id": "http://data.stelselvanbasisregistraties.nl/bag/id/gegevenselement/Datum_begin_geldigheid_Woonplaatsgegevens-Woonplaats",
"score": "3.1936123",
"name": "Datum begin geldigheid Woonplaatsgegevens (Woonplaats) (BAG)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#Gegevenselement"],
"match": false
},
{
"id": "http://data.stelselvanbasisregistraties.nl/bag/id/gegevenselement/Datum_begin_geldigheid_pandgegevens-Pand",
"score": "3.1936123",
"name": "Datum begin geldigheid pandgegevens (Pand) (BAG)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#Gegevenselement"],
"match": false
}
]},
"q0": {"result": [
{
"id": "http://data.stelselvanbasisregistraties.nl/crd/id/concept/Natuurlijk_Persoon",
"score": "3.374814",
"name": "Natuurlijk Persoon",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#Begrip"],
"match": true
},
{
"id": "http://data.stelselvanbasisregistraties.nl/nhr/id/concept/Natuurlijk_Persoon",
"score": "3.374814",
"name": "Natuurlijk Persoon (NHR)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen"],
"match": false
},
{
"id": "http://data.stelselvanbasisregistraties.nl/gba/id/concept/Natuurlijk_persoon",
"score": "3.374814",
"name": "Natuurlijk persoon (GBA)",
"type": ["http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen"],
"match": false
}
]}
}

Voorbeeld 2

queries={"q0":{"query":"Natuurlijk persoon","type":"http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen","type_strict":"should"},
"q1":{"query":"Adres","type":"http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen","type_strict":"should"},
"q2":{"query":"Ouder (GBA)","type":"http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen","type_strict":"should"},
"q3":{"query":"Spoor","type":"http://data.stelselvanbasisregistraties.nl/stelselcatalogus/def#BegripVoorkomen","type_strict":"should"}}

Levert deze reconciliatie server niet de gewenste resultaten op, laat het ons weten.

Data dumps

Data dumps in rdf/xm en turtle zijn beschikbaar op: download.stelselvanbasisregistraties.nl:

SPARQL endpoint

Er bestaat momenteel geen publiek SPARQL endpoint.
Als u hieraan behoefte heeft, laat het ons weten.

Het is ook mogelijk om de data te downloaden (cf. data dumps supra).

Gebruikte technologie

FunctionaliteitTool
Triple store en Sparql endpointOpenRDF Sesame (http://www.openrdf.org/) met LuceneSail wrapper (http://dev.nepomuk.semanticdesktop.org/wiki/LuceneSail) voor full text search*
Linked Data en reconciliation ServerNetKernel (ROC all the way) (http://www.1060research.com/netkernel/)
Reverse ProxyApache (http://httpd.apache.org/)