Linked Open Data

De Stad Gent biedt open data aan. Dit zijn gegevens die machine-leesbaar zijn en geschikt voor hergebruik in toepassingen die niet door de stad zelf worden ontwikkeld. Voor het eerst zal Gent nu ook “Linked Open Data” aanbieden. Dit is open data die op een zodanige manier werd gestructureerd dat het heel gemakkelijk is om verschillende zaken aan elkaar te koppelen. Deze koppeling is voor de zaken die Stad Gent zelf beheert al grotendeels gebeurd, maar het staat iedereen vrij deze uit te breiden.

Linked Open Data is conceptueel vrij eenvoudig. Er wordt ervan uit gegaan dat alles in de wereld kan uitgedrukt worden aan de hand van “feiten” en die feiten nemen de vorm aan van drie-delige constructies : “onderwerp - predikaat - voorwerp”. Dit worden “triples” genoemd.

Zo kan je over de Gentse Feesten van 2015 het volgende zeggen: “De Gentse Feesten - beginnen op - 17 juli 2015”. Uiteraard is het interessant om op basis van dit gegeven ook wat andere zaken te achterhalen, bijvoorbeeld, wat er allemaal te beleven valt. Daarom willen we over het concept “Gentse Feesten” ook inhoudelijke informatie raadplegen, namelijk op

http://www.gentsefeesten.gent. Als we nog iets verder gaan, kunnen we bijvoorbeeld ook te weten komen welke andere zaken er doorgaan op 17 juli. We spreken over linked open data van zodra de concepten waarover de data gaan uitgedrukt worden aan de hand van URI’s en dat die URI’s onderling aan elkaar verbonden worden door triples (feiten dus).

Aangezien elk concept dat we beschrijven via Linked Open Data uitgedrukt wordt via een URI, is het belangrijk om een onderscheid te maken tussen het concept zelf (De Gentse Feesten) en een voorstelling van dit concept, bv. de website. De Gentse Feesten uit het vorige zijn uniek op de wereld, zijn voorstellingen niet (zo is er een nieuwsbericht, een website, allerlei berichten op sociale media). Dergelijke voorstellingen komen in verschillende formaten. Voor een mens zal het bv. handig zijn om een beschrijving van De Gentse Feesten te krijgen via een webpagina (HTML).

Programma’s, algoritmes of zogeheten “agents” zullen dan weer beter overweg kunnen met de ruwe data, (zoals bijvoorbeeld RDF). Het HTTP protocol, dat in de eerste plaats gebruikt wordt om webpagina’s aan te spreken, voorziet in manieren om ook andere formaten op te vragen. Zo kan content negotiation gebruikt worden om een andere representatie van een object op te vragen. De afbeelding hieronder geeft een eenvoudig voorbeeld voor een nieuwsbericht:

Zo zullen de concepten die als linked open data ter beschikking worden gesteld door de Stad Gent steeds opvraagbaar zijn in menselijke leesbare vorm (namelijk op de website van de stad) of op een machine-leesbare vorm, zoals RDF of Turtle. Hoe je praktisch deze laatste formaten kan opvragen lees je hieronder, onder de rubriek “Wat kan je ermee doen”

Linked Open Data bij de Stad Gent

Nieuws

De stad beschikt over heel veel data. Hoewel er reeds heel wat data werd gepubliceerd als open data (met name op het dataportaal; http://data.gent.be) is het niet vanzelfsprekend om alle data onmiddellijk ook als Linked Open Data aan te bieden. We beginnen daarom bescheiden, met het publiceren van de nieuwsartikelen op de website, http://stad.gent.

Elk nieuwsartikel op de website heeft een ID. Zo is er bijvoorbeeld een nieuwsartikel op die jeugdwebsite van de Stad Gent over veilig surfen. Dit nieuwsartikel heeft als unieke URI:

stad.gent/id/news/26737

Dit nieuwsartikel heeft een representatie in HTML:

stad.gent/node/26737

of nog

stad.gent/kinderen/nieuws-evenementen/zie-je-iets-raars-op-het-internet

Sinds kort heeft dit artikel ook een representatie in RDF+XML of Turtle:

stad.gent/data/news/26737

In dit laatste, meer gestructureerde formaat kan je een aantal bijkomende details vinden die niet altijd duidelijk zullen blijken uit de HTML-representatie.

In de RDF weergave van dit voorbeeld ziet u onmiddellijk dat er een onderscheid wordt gemaakt tussen de titel, de beschrijving, een subtitel, dat er een filmpje aan gekoppeld is enz… Bij andere nieuwsberichten zal je bijvoorbeeld ook een link vinden naar de betreffende dienst, de bevoegde schepen, etc… Een stap-voor-stap handleiding waarin beschreven wordt hoe je praktisch met deze meer gestructureerde formaten aan de slag kan gaan vind je onder het onderdeeltje “Wat kan je ermee doen”

Wat kan je ermee doen?

De voordelen van Linked Open Data voor gewone gebruikers zijn eerder indirect, zo zal de kost voor hergebruik van de data dalen en verhoogt de kwaliteit van de data. Dit laat zoekrobots, maar ook app developers toe om op een slimmere manier naar de stad.gent data te linken.

Mits wat oefening kan je ook als gewone gebruiker aan de slag met deze data. Gent biedt al zijn Linked Open Data aan via SPARQL. Dit is een geavanceerde zoekmethode die je via HTTP gestructureerde vragen laat stellen. Zo kan je bijvoorbeeld zoeken naar alle artikelen gelinkt aan een bepaalde locatie of schepen.

Producten

De Stad Gent publiceert linked open data over de producten die zij aanbiedt. Dergelijke producten zijn bijvoorbeeld een identiteitskaart, het inrichten van een speelstraat, etc… Voor een overzicht van de meeste producten kan je terecht bij de dienst Burgerzaken: https://stad.gent/burgerzaken

Interessant om weten is dat vele van deze producten ook op Vlaams niveau gedefinieerd zijn, namelijk bij de Vlaamse Infolijn, in de interbestuurlijke producten- en dienstencatalogus: http://productencatalogus.vlaanderen.be/

Een overzicht van de linked open data van deze producten vind je onder http://stad.gent/data/products/. Afzonderlijke producten (bijvoorbeeld de speelstraat) zullen de identifier http://stad.gent/id/products/4 hebben. Elk product bevat (in de regel) de volgende eigenschappen:

 

News

De nieuwsberichten die de Stad publiceert op haar website worden dagelijks gepubliceerd als linked open data. Een overzicht kan je vinden op http://stad.gent/data/news/. Elke nieuwsbericht heeft als identifier bijvoorbeeld http://stad.gent/id/news/1. De ID’s die hiervoor worden gebruikt stemmen overeen met de node ID’s die op de website http://stad.gent worden gebruikt.

Een nieuwsbericht bevat (in de regel) de volgende eigenschappen:

  • Elk nieuwsbericht is een schema:NewsArticle
  • de titel (:headline) is een schema:headline
  • de korte inhoud is een schema:description
  • afbeelding schema:image
  • contacten: schema:sourceOrganization
  • documenten schema:mentions
  • doelgroep schema:audience
  • homepage order schema:position
  • inhoud schema:articleBody
  • Kaart dcterms:spatial
  • Personen schema:accountablePerson
  • Thema dcterms:subject https://stad.gent/data/ns/themas/
  • trefwoorden schema:keywords
  • wijk dcterms:spatial
  • youtube video schema:video

SPARQL

Alle Linked Open Data van de Stad Gent is bevraagbaar via een “SPARQL endpoint”. Hier kan je gestructureerde vragen stellen die complexer zijn dat het eenvoudigweg oplijsten van de concepten. Aan de gebruikers van deze endpoint wordt er wel gevraagd om rekening te houden met de omvang van de queries en de uitvoeringstijd. De resultaten worden beperkt tot 10,000 en een enkele query mag niet langer duren dan 30 seconden. Er kan niet gegarandeerd worden dat deze endpoint ten alle tijden goed en snel zal reageren bij overbevraging, en daarom wordt het dus aangeraden om deze niet direct en voortdurend aan te spreken (bv. in een app). Deze "endpoint" is bereikbaar via:

stad.gent/sparql

RDF

Alle data is direct raadpleegbaar via RDF. Om de data in een gestructureerd formaat te ontvangen, zoals bijvoorbeeld “Turtle” of “RDF+XML” kan je gebruik maken van content negotiation (zie eerder). Concreet wil dat zeggen dat je de een “Accept Header” meegeeft bij het opvragen van de identifier (zoals stad.gent/id/news/26737). Dit kan je doen via een applicatie zoals curl of via je browser, bijvoorbeeld via een extentie voor Google Chrome, postman. Meer informatie over content negotiation vindt u op wikipedia

Voorbeelden Linked Open Data

De Linked Open Data van de Stad Gent is bevraagbaar via een "SPARQL endpoint". Vergelijkbaar met een traditioneel databanksysteem laat deze toe om complexe, gestructureerde vragen te stellen.

Deze endpoint is bereikbaar op https://stad.gent/sparql

Enkele voorbeelden van dergelijke, gestructureerde vragen vindt u hieronder:

Diensten voor ecologische bedrijven

Via Linked Open Data kan een programma of een app bijvoorbeeld uitzoeken welke stedelijke dienstverlening bestaat voor bedrijven die iets willen doen aan hun ecologische voetafdruk:

Bevraging

PREFIX schema: <http://schema.org/>
PREFIX dct:<http://purl.org/dc/terms/>
SELECT ?product ?titel
WHERE {
?product a <http://purl.org/vocab/cpsv#PublicService>.
?product schema:audience
<http://stad.gent/data/ns/gpdc/doelgroepen/onderneming>.
?product dct:subject <http://stad.gent/data/ns/themas/natuur-milieu>.
?product dct:title ?titel

}

Het resultaat van deze query vind u hier

Recent museumnieuws

Een krantenredactie kan zo automatisch de 5 laatste nieuwsberichten van het Huis van Alijn en het SMAK opvragen:

Bevraging

PREFIX schema:<http://schema.org/>
SELECT ?article ?titel ?published
WHERE {
VALUES ?org {
<https://stad.gent/id/agents/a5294c55-f789-e111-a140-0050569826fc>
<https://stad.gent/id/agents/96677ab3-f689-e111-a140-0050569826fc>
}.
?article a schema:NewsArticle.
?article schema:datePublished ?published.
?article <http://schema.org/sourceOrganization> ?org.
?article schema:headline ?titel
} ORDER BY DESC(?published) LIMIT 5

Het resultaat van deze bevraging vindt u hier.