Licentie

CC BY-SA 4.0
17/7/2019

Linked data publiceren én inlezen: waar begin je?

  • Techblog

Sinds eind 2018 zijn de kranten van Nieuws van de Groote Oorlog verrijkt met linked data. Hierdoor is de data machineleesbaar en eenvoudig automatisch in te lezen en te verwerken - lees, een computer kan het ook. Om dat mogelijk te maken, gebruiken we bekende en standaardontologieën zoals Dublin Core Terms, Schema.org en Friend Of A Friend voor de mapping van de metadata naar linkeddatavelden.

De juiste ontologie kiezen

Het meemoo-metadatamodel - waar we ook voor de kranten van Nieuws van de Groote Oorlog mee werken - kan onder andere al gemapped worden naar Dublin Core Terms (kortweg dcterms). Voor dit project werd de data over de kranten in onze databank voornamelijk (maar niet uitsluitend) gestructureerd in Schema.org. Dit is een ontologie met een grote, enthousiaste community die regelmatig geüpdatet wordt. Schema.org werd bovendien mee ontwikkeld door enkele grote zoekmachines wat een positief effect heeft op de ranking in de zoekresultaten. Wat verder mee de doorslag gaf voor onze keuze voor deze ontologie, is dat er ook ondersteuning is voor kranten.

Niet alle mogelijke eigenschappen en relaties hebben echter een corresponderende term in Schema.org. Zo kan je er bijvoorbeeld niet mee aanduiden wat het paginanummer is van een krant. Dat kan dan weer wel met de SIO-ontologie (zie http://semanticscience.org/resource/SIO_000787.rdf). Daarom hebben we het Schema.org-model uitgebreid met andere ontologieën. Kan een eigenschap of relatie zowel door Schema.org als door een andere veelgebruikte ontologie als dcterms of Wikidata beschreven worden, dan gebruiken we beide. Door een krantentitel zowel met ‘headline’ te benoemen in Schema.org als ‘title’ in dcterms maximaliseren we de kansen op hergebruik. Zo combineren we - met de onmisbare input en expertise van IDlab - verschillende ontologieën om de kranten zo volledig mogelijk te beschrijven.

Linked data op de website publiceren

Alle eigenschappen en relaties zijn vertaald naar linked data. Wat nu? Om linked data te publiceren kan je ervoor kiezen om een aparte interface (bv. een SPARQL endpoint of REST API) of datadump te gebruiken, of om je eigen website ermee te verrijken. Wij verkiezen dat laatste. Je vindt nu eenmaal makkelijker de weg als er maar één adres is. Bovendien vraagt een aparte interface extra onderhoud, waardoor de kans reëel is dat je website meer up to date is dan je interface. Door JSON-LD te gebruiken voor de publicatie, kunnen gebruikers of ontwikkelaars de website gemakkelijk, bijna automatisch bevragen, scrapen en datasets raadplegen. De data op de website is dus zowel leesbaar voor mensen (de website die je ziet als je naar nieuwsvandegrooteoorlog.be gaat) als voor machines. Om welke data - en welke links! - het gaat, lees je in onze eerdere techblogs over dit project.

Licenties op linked data

We spreken al de hele tijd over linked data en niet over linked ‘open’ data. Dat doen we omdat op het materiaal in kwestie nog (deels) auteursrechten gelden. De basismetadata bij iedere krant is publiek domein en kan dus wel als linked open data gebruikt worden. Op de kranten zelf - de scan van de krantenpagina’s en de tekst die via OCR verkregen is - kunnen nog auteursrechten rusten. Die lees je hier na.

Linked data consulteren

De kranten, de gelinkte namen en hun metadata kan je op verschillende manieren consulteren als gestructureerde data. Daarvoor zijn al enkele tools ontwikkeld. Wij gaan op twee ervan in:

1. Idfetch

Dit kan gebruikt worden om voor de gegeven pagina de linkeddatatriples (of RDF-triples) op te lijsten. Dan krijg je een mooie lijst van alle metadata die op die pagina betrekking hebben en bijvoorbeeld ook alle namen die op die pagina herkend worden uit de Namenlijst. Daarna ga je via http://www.w3.org/ns/hydra/core#next door naar de volgende publicatie in de lijst, tot de lijst is afgewerkt. Dit commando haalt alle metadata op en schrijft deze weg in Turtle-formaat naar het bestand hetarchief.ttl. Dit bestand kan dan worden gebruikt om de RDF-triples te doorzoeken of in te laden in bv. Comunica. Gebruik de command line:

ldfetch;

https://hetarchief.be/nl/media/gazet-van-brussel-nieuwsblad-voor-het-vlaamsche-volk/A157MbRehXO7ISSJVLwBGV5g -p "http://www.w3.org/ns/hydra/core#next" > hetarchief.ttl

Zie je geen filmpje? Controleer even je cookie-instellingen, dan kunnen we deze inhoud ook aan jou tonen.

Pas je cookie-instellingen hier aan

Zie je geen filmpje? Controleer even je cookie-instellingen, dan kunnen we deze inhoud ook aan jou tonen. Je cookie-instellingen aanpassen kan onderaan deze pagina. Klik op 'verander uw toestemming' vlak boven de tabel en vink 'voorkeuren' en 'statistieken' aan.

2. Comunica

Comunica is een tool die ervoor zorgt dat je makkelijk een vraag kunt stellen over verschillende websites en linked data interfaces heen, zonder zelf te moeten denken hoe je deze verschillende soorten interfaces moet aanspreken en combineren. Meer info over het gebruik van dit platform is (in het Engels) beschikbaar op GitHub.

Nu is het aan jou

Zo kan je zelf aan de slag met de linked data van de oorlogskranten op Nieuws van de Groote Oorlog. Een project dat begon met het herkennen van entiteiten, waarbij we zochten hoe betrouwbaar bepaalde links waren en de beste manieren verkenden om onze data gestructureerd te publiceren. Het werd een project waarbij we met behulp van partners IDlab en PACKED heel wat bijleerden. Hopelijk haalde jij ook iets uit dit traject en de drie techblogs die eruit voortvloeiden. Heb je vragen? Stel ze via support@meemoo.be en wij proberen je verder te helpen.

We halen de pagina op, even geduld...