Boek/Verhelst

Semantiek en Linked Data
 
Auteurs
Lieke Verhelst MSc (Linked Data Factory)
__TOC__
De waarde van data, ook Linked Data, wordt in grote mate bepaald door de aanwezige beschrijvende informatie. Bij Linked Data is deze beschrijving vastgelegd in een semantisch model of vocabulair. Het vastleggen van de betekenis van data door semantische modellen gaat beter dan bij tabulaire data. Dit komt doordat een semantisch model niet beperkt is, maar juist oneindig. Iedereen kan een semantisch model maken waarmee een onderwerp wordt beschreven. Soms worden daardoor onderwerpen door meerdere partijen vastgelegd. Dit is geen probleem omdat volgens de principes van het Semantisch Web elke partij het onderwerp vanuit zijn eigen context mag beschrijven.
 
Neelie Kroes, Vice-President van de European Commissie en Eurocommissaris verantwoordelijk voor de Digitale Agenda, zegt het frequent: ‘Open Data is de olie van het digitale tijdperk’ (Kroes, N. 2012, 2011). De waarde van data is veelbelovend, enorm, en groeiend. Maar we moeten hier wel een kanttekening plaatsen. De kanttekening kunnen we illustreren met de onderstaande tabel. Wat is de waarde van de data in deze tabel?
 
33 	Amsterdam 	Johannes	Janssen 	X
428	Oegstgeest	Peter 	Michaels 	-
5 	Kerkrade 	Michiel 	Vanberghe	-
Tabel 1: Tabel met alleen data
 
Inderdaad. Niet veel. Wat betekenen de getallen? Die namen..wat voor mensen zijn dat? En dat kruisje..dat zal wel iets van ‘aanwezig’ betekenen zeker? Wat hier mist is de omschrijving van wat de gegevens in de tabel betekenen. Zonder de omschrijving is de tabel abacadabra, en dus zonder waarde. De omschrijving van gegevens staat, onder andere, in de kolomdefinitie. Als we die hebben, weten we dan meer?
 
aantal	plaats 	voornaam	achternaam	betaald
33 	Amsterdam 	Johannes	Janssen 	X
428 	Oegstgeest	Peter 	Michaels 	-
5 	Kerkrade 	Michiel 	Vanberghe 	-
Tabel 2: Tabel met kolomdefinitie en data
 
Door de toevoeging van de kolomnamen zou je kunnen concluderen dat het databestand een registratie van een vogeltelling bevat, gedaan op een bepaalde plaats, door de leden van een vereniging. Maar je zou ook kunnen denken dat het bij het aantal gaat om verkeersovertredingen, en dat de plaats de geboorteplaats is van de personen, en dat ze wel of niet de bekeuring hebben betaald. Het helpt als er een beschrijving is van het databestand. Bijvoorbeeld: wanneer het is gemaakt, en op welke manier, door wie. Als een dergelijke beschrijving er niet is, kunnen we afgaan op onze eigen inzicht. Dit wordt bepaald door onze ervaring, opleiding, leefwijze..dus onze context. Iemand die een rijbewijs heeft (en dus boven de 18 is) weet uit ervaring dat 428 verkeersovertredingen een beetje veel is, en 5 vogels bij een vogeltelling weer erg weinig. Aan de andere kant..we weten niet wat de totale periode is waarin geteld zou zijn, dus wellicht is het aantal verkeersovertredingen best mogelijk. Met andere woorden: data krijgt waarde door een goede beschrijving van de betekenis. Daarbij is ook de context van de gebruiker van belang, en de context van de data zelf.
 
Bij tabulaire data wordt de betekenis vastgelegd door de kolomdefinities, de tabelnamen en de relaties tussen de tabellen. En als er een beschrijving is van het dataset in zijn geheel dan wordt dit vastgelegd in de metadata.
Een ander woord voor ‘betekenis’ is semantiek. Het woord ‘semantiek’ is sterk verbonden met Linked Data. Tim Berners-Lee schreef zijn gedachten over het Semantisch Web al op in 1998 (Berners-Lee, 1998).
 
In de volgende paragraaf wordt beschreven wat de relatie is tussen het Semantisch Web en Linked Data. Het geeft ook antwoord op de vraag waar de betekenis van de gegevens in Linked Data wordt vastgelegd.
 
== Het Semantisch Web ==
Tim Berners-Lee is de uitvinder van het World Wide Web. Hij bedacht in 1989 het mechanisme van het koppelen van webdocumenten via hyperlinks. Toen het web zich gedurende de jaren 90 van de vorige eeuw ging ontwikkelen tot een web van documenten noteerde hij zijn visie over het Semantisch Web in zijn webnotitieblok ‘Design Issues’. Dit was in 1998. Hij realiseerde zich dat het web van documenten vooral goed gebruikt kon worden door mensen. Hij stelde zich de vraag hoe het web zich zou moeten ontwikkelen wilde het ook ‘leesbaar’ zijn voor machines. Als dat namelijk het geval zou zijn, zou het web kunnen dienen als een soort informatierobot die allerlei taken voor ons zou kunnen uitvoeren. Het antwoord op die vraag was dat het web zich zou moeten ontwikkelen tot een web met beschrijvingen van concepten die door logische regels met elkaar in verbinding staan. Hiermee legde hij de blauwdruk voor het Semantisch Web.
 
Het Semantisch Web is een netwerk van conceptuele beschrijvingen die de betekenis van ‘dingen’ vastleggen. Dit netwerk bestaat uit een grote hoeveelheid van sets van drie elementen, de zogenaamde triples. Elk triple bestaat uit een subject (onderwerp), predicate (eigenschap) en object (lijdend voorwerp of waarde).
 
 
Bijvoorbeeld: <een schilder> <schilderde> <een schilderij>. Dit model heeft een richting, te zien aan de pijl in bovenstaande afbeelding. Je kunt ook zeggen: <het schilderij> <is geschilderd door> <een schilder>. De pijl staat dan de andere kant op en de betekenis van het predicate is anders.
 
Om de betekenis van iets vast te leggen heb je natuurlijk niet genoeg aan één triple. Je hebt er een heleboel nodig en zo ontstaat een web van triples die gezamenlijk de betekenis van iets vastleggen. Net zoals bij het web van documenten publiceert iedere deelnemende partij een deel van het gehele semantische web (figuur 2).
 
 
 
Het voorbeeld van de schilder en het schilderij zou bijvoorbeeld door een museum kunnen zijn gemaakt. Een andere partij kan hieraan zijn eigen semantische schema koppelen. De stad waarin het museum staat zou bijvoorbeeld de beschrijving van het functioneren van een museum in de stad kunnen koppelen aan figuur 2.
 
 
 
Het koppelen gaat via een of meerdere predicate beschrijvingen (het pijltje in de triple afbeelding). Zo beschrijft een museum het begrip ‘museum’ vanuit de context van de culturele inhoud, en de stad beschrijft hetzelfde begrip vanuit de context van de sociale functie van het gebouw. Hoe meer partijen het begrip ‘museum’ semantisch gaan beschrijven, des te waardevoller wordt de omschrijving. Figuur 2 en 3 samenvoegend krijg je dan de afbeelding in figuur 4.
 
 
 
Het Semantisch Web is dus een op web technologie gebaseerd netwerk dat de semantiek van dingen vastlegt. De onderdelen van een triple bestaan op het web via HTTP webadressen (URL's). Elk onderdeel heeft een uniek webadres. Dit netwerk kan heel goed gebruikt worden om data van betekenis te voorzien. Dat is het principe van Linked Data: de data worden gekoppeld aan de begrippen in het semantisch web. Wat is data eigenlijk? Data zijn gegevens die werkelijk bestaan. Dus in het voorbeeld van het schilderij is dat ‘de Mona Lisa’. De schilder is ‘Leonardo da Vinci’. Het conceptuele triple wordt voorzien van ingekapselde feiten, en zo ontstaat Linked Data:
 
<een schilder>
<Leonardo da Vinci>
<schilderde>
<een schilderij>
<de Mona Lisa>
 
Hoe je zelf een semantisch model maakt om je data te beschrijven wordt uitgelegd in de volgende paragraaf.
 
== Het maken van een semantisch model ==
Een semantisch model zoals bijvoorbeeld figuur 2 wordt vastgelegd in een machineleesbaar formaat. Dit model zou je in een tekst editor (zoals bijvoorbeeld windows notepad) kunnen maken, maar dat is wel een monnikenwerk. Het is makkelijker om een ontology editor te gebruiken. Hiervan zijn er vele in omloop. Sommige als betaald product, andere als open source. De in de pilot meest gebruikte commerciële editor is TopBraid Composer (www.topquadrant.com). Een goed alternatief is de open source editor Protégé (http://protege.stanford.edu).
 
Het semantische model maak je door subjecten en objecten vast te leggen, en deze te koppelen via properties (predicates). Een object kan twee verschillende gedaanten hebben. Het kan zelf weer een object zijn, of het kan een waarde hebben. In het eerste geval wordt de koppeling gelegd door een object property, en in het tweede geval van een datatype property. Een datatype property kan een tekstwaarde bevatten, of een getal, datum, boolean waarde etc. In de figuren 2, 3 en 4 zijn de pijlen die wijzen naar ovalen object properties, en de pijlen die wijzen naar een vierkant zijn datatype properties.
 
In de volgende afbeeldingen zal stap voor stap getoond worden hoe figuur 2 is gemodelleerd in de ontology editor Topbraid Composer Free edition (TBC).
 
=== Stap 1 ===
Open TBC en je ziet een leeg scherm met vakken zoals figuur 5. Links is het vak waar de objecten en subjecten inkomen (classes) en rechts worden de predicates (properties) genoteerd.
 
 
 
=== Stap 2 ===
Eerst moeten een leeg bestand aangemaakt worden via File..New..RDF/OWL file. Noem het bestand ‘museum’.
 
 
 
 
In het lege scherm is nu het basisschema geladen waarin we de classes en properties kunnen vastleggen.
 
=== Stap 3: ===
Maak de classes aan. Dit doe je door op het icon te klikken. Ga op owl:Thing staan en maak alle classes aan.
 
 
 
=== Stap 4 ===
Maak alle properties aan. Maak hierbij goed onderscheid tussen de datatype properties en de object properties.
 
 
 
 
 
In het semantische model van figuur 2 bestaat een pijl met als waarde ‘is een’. Dit geeft de klasse-subklasse relatie aan: een ‘Kwast’ is een subklasse van ‘Instrument’. Subclasses staan ingesprongen onder de klasses. In TBC kun je dit realiseren door de klasse ‘Kwast’ met de muis onder ‘Instrument’ te slepen.
 
 
 
Als alles gedefinieerd is ziet je scherm er zo uit:
 
 
 
Het semantische model is nu af (www.linkeddatafactory.nl/voc/museum.owl). Dit is de meest eenvoudige vorm. Het is mogelijk het model te vullen met logische regels (als..dan, NOT, AND, OR) die de beschrijving van de concepten nog meer bepalen, maar meer uitleg hierover valt buiten de scope van dit boek.
Door het model te vullen met data bepaal je welke klassen welke properties krijgen. Hoe het vullen van het model met data in zijn werk gaat wordt beschreven in het hoofdstuk over LOD Refine.
 
Een ander woord voor een semantisch model is een vocabulaire. Omdat er behoefte was aan een standaardisatie in vocabulaires zijn er door specialistische organisaties, zoals de W3C en universiteiten, al een groot aantal vocabulaires gemaakt. Een aantal van de vocabulaires die in de LOD pilot zijn gebruikt zijn opgenomen in Tabel 2.
 
 
eigenschappen naam vocabulaire                beschrijving van  webadres
Dublin Core                                                ‘Basis metadata’ voor simple en algemene beschrijvingen van informatiebronnen                                                                      http://dublincore.org/
FOAF (friend of a friend)                          Sociale netwerken van vriendschap en menselijke samenwerkingsvormen, zakelijke netwerken en informatienetwerken                                http://xmlns.com/foaf/spec/
WGS84                                                        Geografische lengte- en breedtegraad en andere geografisch gerelateerde informatie.WGS84 is gebruikt als referentie.                             http://www.w3.org/2003/01/geo/
Schema.org                                                Oorspronkelijk ontworpen om content van zoekmachines semantisch te annoteren. Bevat daarom veel onderwerpen die vaak gezocht worden zoals, muziek, kunst, afbeeldingen, gebeurtenissen, recepten, organisaties en mensen                                                                      http://schema.org/docs/schemas.html
 
Tabel 2: Enkele vocabulaires die als een informele standaard worden gebruikt
 
De bestaande vocabulaires kun je gebruiken om Linked Data mee te maken. Je kunt ze ook aanvullen met elementen uit een vocabulaire dat je zelf hebt ontworpen. Gebruik hiervoor de ‘import’ functie (zie Figuur 12, het tabblad ‘imports’ onderaan in het midden van het scherm).
 
== De waarde van semantiek ==
Data is de nieuwe olie van deze tijd mits de betekenis goed is beschreven en er rekening wordt gehouden met de context van de gebruiker en de data zelf. Dit geldt ook voor Linked Data!
 
Het beschrijven van de betekenis en de context van data via semantische modellen gaat beter dan bij tabulaire data. Dit komt doordat een semantisch model niet beperkt is, maar juist oneindig. Iedereen kan een semantisch model maken waarmee een onderwerp wordt beschreven. Soms worden daardoor onderwerpen door meerdere partijen vastgelegd. Dit is geen probleem omdat elke partij het onderwerp vanuit zijn eigen context kan beschrijven. Mochten er zaken werkelijk dubbel zijn beschreven, dan kunnen partijen de identieke relatie tussen de onderwerpen vastleggen via de property ‘sameAs’.
 
We kunnen onderwerpen die al beschreven zijn in het Web van Documenten omzetten naar het Semantisch Web. Dat gebeurt bijvoorbeeld al bij Wikipedia. De onderwerpen die in Wikipedia staan zijn semantische beschreven en de Wikipedia pagina’s zijn met behulp van deze beschrijvingen omgezet naar Linked Data. Deze Linked Data versie van Wikipedia heet DBpedia. Dit is een goede bron om te gebruiken wanneer je je eigen Linked Data wilt verrijken met context informatie. In het voorbeeld van het museum vocabulaire is DBpedia te koppelen aan de ‘schilder’ ‘Leonardo da Vinci’ via de sameAs relatie:
 
 
 
Via deze koppeling kun je vervolgens alle gerelateerde informatie over Leonardo Da Vinci uit DBpedia ophalen!
Er is nog een andere manier om Linked Data te verrijken. Die manier heet inference (gevolgtrekking). Inference is gebaseerd op de logica die in de vocabulaires is opgenomen. Via deze logische regels worden de feiten die in de Linked Data zijn vastgelegd (feiten zoals: ‘Leonardo da Vinci schilderde de Mona Lisa’) geëvalueerd. Er worden overeenkomstige conclusies getrokken, die weer tot nieuwe feiten leiden. Deze nieuwe feiten zijn op zichzelf weer een bron voor inference, waardoor een vliegwieleffect optreedt.
 
== Conclusie ==
Om data werkelijk de waarde te geven die het in potentie heeft moet het voorzien zijn van de juiste betekenisbeschijvingen. Bij tabulaire data is dit geregeld via metadata, kolombeschrijvingen, tabelnamen en -relaties.
 
Bij Linked Data wordt betekenis vastgelegd via semantische modellen. Het maken van kwalitatief goede semantische modellen is specialistenwerk. Met behulp van dergelijke vocabulaires is het mogelijk om reeds gepubliceerde Linked Data te verrijken via inference en links naar andere bronnen.
 
== Referenties ==
 
Kroes, N (2012) ‘From Crisis of Trust to Open Governing’, speech, Bratislava, 5 March 2012. http://europa.eu/rapid/press-release_SPEECH-12-149_en.htm
Kroes, N (2011) ‘Data is the new gold’, speech, Brussel, 12 December 2011 http://europa.eu/rapid/press-release_SPEECH-11-872_en.htm
Berners-Lee, T (1998)’Semantic Web Road map’ onderdeel van ‘Design Issues, Architectural and philosophical points’, Tim Berners-Lee, webpagina http://www.w3.org/DesignIssues/Semantic.html
 
== Verklarende woordenlijst ==
*Context - samenhang: het woord ontleent zijn betekenis aan de context aan het overige deel van de zin (bron: van Dale).
*Inference: het via logische regels die in een vocabulaire zijn opgeslagen afleiden van nieuwe feiten.
*Metadata: dossier/logboek van een databestand (bron: van Dale).
*Vocabulaire: semantisch model