Publicatie:Linked data publiceren én inlezen: waar begin je?
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.
Titel | Linked data publiceren én inlezen: waar begin je? (Voorkeurstitel) |
Locatie | |
Uitgever | |
Jaar van uitgave | 2019 |
Rechten | CC-BY-SA |
Persistent ID |
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