Dit is een primer voor het toevoegen van semantische mediakwiki markups aan wiki artikels. De officiele handleiding voor het werken met Semantic MediaWiki is hier [1] te vinden.
Doel
WIKIs zijn heel geschikt om met een grote groep informatie te creeeren en te delen. Dit sluit dus zeer goed aan bij het doel van VLOCA, om co-creatie mogelijk te maken. Maar WIKIs zijn wel minder geschikt om data op te vragen of te aggregeren. Een voorbeeld zou kunnen zijn : "welke VLOCA componenten dragen bij tot het realiseren van semantische interoperabiliteit"? Het doel van het gebruiken van de Semantische MediaWiki features is om gebruikers (editors) toe te laten om de structuur en de organisatie van de kennis in de wiki te verbeteren. Gezien VLOCA deze WIKI als kennishub wil aanbieden, is dit een belangrijke manier om de kennis beter doorzoekbaar te maken en te delen, zowel binnen de WIKI door gebruikers (lezers) zelf als voor externe computerprogramma's. Bij de bovenstaande vraag, zouden de componenten die bijdragen tot semantische interoperabiliteit kunnen voorzien worden van metadata die linken met de definitiepagina van semantische interoperabiliteit, en zo kan daarop heel efficient data geaggregeerd worden.
Hoe ?
Dit wordt gedaan door het toevoegen van eenvoudige, machine-leesbare meta-informatie (zogenaamde "markup") aan wiki artikels. Wiki artikels zijn alleenstaande pagina's die een bepaald subject (of entiteit) beschrijven. De pagina's zijn de ondeelbare basis van een WIKI, zoals bestanden de basis zijn van een bestandensysteem. Deze markup kan op verschillende manieren gebeuren. Dit illustreren we hieronder met een aantal voorbeelden uit de huidige inhoud van de kennishub. Meer informatie is terug te vinden onder [2].
Categorie
Verschillende WIKIpagina's kunnen gegroepeerd (geklasseerd) worden onder 1 categorie. Huidige categorieen zijn bijvoorbeeld Architectuurcomponenten em Organisaties. Deze categorie verwijst dan naar alle pagina's die ge-annoteerd zijn om tot deze categorie te behoren. Voor de categorie "Organisaties" bijvoorbeeld zijn alle objecten die een organisatie bevatten getagged om te verwijzen naar deze categorie. Deze annotatie gebeurt door het toevoegen van indicaties zoals "Organisaties" aan de pagina die tot deze categorie behoort, zoals hieronder aangegeven voor de pagina Gaia-X :
Categoriepagina's aggregeren dus alle andere pagina's die tot deze categorie behoren. De hoofdcategorien van deze kennishub zijn terug te vinden in de linker navigatiebalk en worden voorgesteld in het schema van de relaties tussen categorieen dat hier wordt herhaald :
Verwijzingen naar paginas
Verwijzingen naar pagina's vanuit een andere pagina zijn tamelijk eenvoudig.
- verwijzing naar een pagina behorende tot een categorie, voorbeeld "Gaia-X". Het deel na "|" is de beschrijving zoals deze in de tekst moet verschijnen, het deel ervoor wijst naar de categorie en de pagina in de categorie.
- deze verwijzing kan ook rechstreeks gebeuren naar een pagina, voorbeeld "van de relaties tussen categorieen". Het deel voor de "|" is de naam van de pagina, het deel erna is de beschrijvende tekst op de verwijzende pagina.
Eigenschappen van een pagina
Zoals een categorie-annotatie de pagina klasseert, kan elke link of elk stuk tekst op een pagina ook ge-annoteerd worden met een eigenschap van het object waarover de pagina gaat. Bijvoorbeeld als een pagina de stad Berlijn beschrijft, kan een stuk tekst op deze pagina aangeven dat Berlijn de hoofdstad is van Duitsland. Maar dit blijft een stuk tekst en er kan dus enkel tekstueel opgezocht worden. Nu is het mogelijk om een eigenschap te definieren "is hoofdstad van" als een aparte entiteit op de WIKI. Deze eigenschap kan dan toegevoegd worden aan de tekst door een annotatie. Op die manier kan een gebruiker die bijvoorbeeld alle hoofdsteden wil kennen van de wereld, een zoektocht doen op de "is hoofdstad van" eigenschap en zo alle landen krijgen waar in de WIKI naar verwezen wordt via deze relatie. Dit is veel krachtiger dan te gaan zoeken op de tekst "hoofdstad" in de volledige WIKI en uit die zoekresultaten te gaan terugvinden wat nu werkelijk verwijzingen zijn die we nodig hebben. Deze eigenschappen kunnen toegepast worden op elke pagina, en dus ook op een categoriepagina. Dit is de manier waarop we de relaties tussen de categorieen uit de bovenstaande figuur hebben gemodelleerd. De categorie "componenten" bijvoorbeeld heeft een "implementeert standaarden" relatie met de categorie "standaarden". Daarvoor werden 2 zaken toegevoegd :
- De eigenschap "implementeert standaarden"
- Een verwijzing om aan te geven dat dit een eigenschap is van de categorie "componenten"
Door deze eigenschappen toe te voegen, krijgen deze ook een betekenis en kunnen de verschillende pagina's semantisch met mekaar gelinkt worden via relaties. Dit kan dan ook machine-leesbaar (RDF) ge-exporteerd worden en gebruikt worden door machines om bijvoorbeeld navigeerbare grafes te maken van de inhoud van de kennishub, zoals hier [3] en hieronder ge-snaphsot :
Een ander voorbeeld van annotatie van eigenschappen van een pagina met andere entiteiten is bijvoorbeeld het toevoegen van een organisatie als werkzaam binnen een bepaald smart city domein. Als voorbeeld nemen we de VMM, die werkzaam is binnen Smart Environment.
- we voegen een eigenschap toe aan de tekst van de VMM organisatie :
Hier geven we aan dat er een relatie bestaat tussen de VMM en het Smart City Domein "smart environment"
- Die relatie "Domein" is ook een Eigenschap pagina :
Dit is gelijkaardig aan een categoriepagina en hier worden alle pagina's opgelijst die voldoen aan deze eigenschap. Het is ook mogelijk om eigenschappen een bepaald type te geven. In dit geval MOET de eigenschap verwijzen naar een van de gedefinieerde Smart City Domeinen zoals opgelijst in de eigenschaps pagina. Het gevolg is dat de eigenschap "behoort tot een domein" op die manier een eigen leven krijgt, en het bijvoorbeeld gemakkelijk is om te zoeken op alle pagina's die zichzelf linken met een bepaald domein. Als we dus zoeken op alle pagina's die behoren tot het domein "Smart Environment" is dat eenvoudig via een zoekpagina op eigenschap zoals hieronder weergegeven, waar de VMM duidelijk mee komt in het antwoord :
Deze semantische zoekopdrachten kunnen ook via de pagina Semantic Search op een heel gemakkelijk aanpasbare manier worden opgestart. Meer info hierover is te vinden op [4].
Extra mogelijkheden
inline semantische zoekopdrachten
Het is mogelijk om zoekopdrachten zoals hierboven beschreven te verwerken in pagina's. Meer hierover is te vinden op [5]. Dit is een zeer krachtig instrument om pagina's dynamisch te maken, en continu up-to-date te houden met de aanpassingen aan de WIKI. Dat is een interessante feature om in draaiboeken of wizards te gebruiken. Een voorbeeld zou kunnen zijn om in een wizard een lijst van eigenschappen te tonen waar een watersensor specifiek moet aan voldoen, gekaderd aan bijvoorbeeld technische interoperabiliteit. Dan volstaat het om algemene systeemeigenschappen te taggen met bijvoorbeeld de eigenschap "is specifiek voor water" en de eigenschap "realiseert technische interoperabiliteit" en de pagina over een smart water sensor blijft altijd up-to-date. Dit soort dynamiek is in een puur tekstuele WIKI niet mogelijk.
exporteren van de pagina's en hun verbanden
Het is mogelijk om een export te doen van de pagina's en hun verbanden (via de eigenschappen) naar RDF, een welgekend formaat vanuit het semantisch web, met een veelheid aan tools om dit te lezen en interpreteren. Dit maakt het automatisch genereren van grafes of subgrafes (na queries) perfect mogelijk via externe programma's. Meer informatie is hier te vinden [6]. Op die manier kan WIKI informatie en verbanden ook heel gemakkelijk door externe programma's gebruikt worden. Externe programma's kunnen bijvoorbeeld generatoren voor aanbestedingen zijn.
importeren van informatie en hun verbanden
Ook dit is mogelijk, en externe informatie kan ge-importeerd worden op de WIKI. Dit kan voor RDF, CSV, XML, maar ook Linked Data gebruik makende van bijvoorbeeld SPARQL queries.
bevragen van de WIKI met SPARQL
Naast de specifieke MediaWiki querytaal, kan de RDF data ook in een SPARQL endpoint worden aangeboden en op die manier ook met de tools van het semantisch web worden opgevraagd.
Uitdagingen
De kracht van de Semantische MediaWiki voor automatisatie is hierboven duidelijk aangetoond. Een belangrijke uitdaging is natuurlijk het opstellen van een algemeen informatiemodel voor de inhoud van de WIKI en het onderhouden van de annotaties in alignering met dit model. Er is dus meer werk aan de invoerzijde om automatisatie aan de uitvoerzijde mogelijk te maken. Tot slot geven we nog volgende link [7] naar overzicht referentie cheat sheets voor het gebruik van de MediaWiki en de semantische aspecten daarin.
- ↑ https://www.semantic-mediawiki.org/wiki/Help:User_manual
- ↑ https://www.semantic-mediawiki.org/wiki/Help:Editing
- ↑ https://vlocavis.z6.web.core.windows.net
- ↑ https://www.semantic-mediawiki.org/wiki/Help:Semantic_search
- ↑ https://www.semantic-mediawiki.org/wiki/Help:Inline_queries
- ↑ https://www.semantic-mediawiki.org/wiki/Help:Semantic_Web
- ↑ https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki_reference