Er bestaat enige discussie over wat de logische opvolger zal zijn van web 2.0, waarin user-generated content, het delen van informatie en interoperabiliteit centraal stonden. Hoewel meer ideeën de ronde doen, is er veel steun voor het idee web 3.0 gelijk te stellen aan het semantische web. Het sturende idee achter het semantische web is dat alle dingen op internet worden beschreven in speciale talen, zodat computers de informatie die ze aantreffen kunnen ‘begrijpen’. Een object kan bijvoorbeeld gekenmerkt worden als onderdeel van een voertuig, als persoon of als een fysieke plek op aarde. Zodra objecten op een dergelijke manier worden gekarakteriseerd, ontstaat een gigantisch netwerk van ‘linked data’ en kunnen computers verrassende en nuttige links ontdekken, die wellicht nooit door mensen ontdekt zouden zijn. Dit heeft de potentie een compleet nieuwe vorm van kunstmatige intelligentie mogelijk te maken.

[caption id=”” align=”alignright” width=”367”]![Full coloured LOD cloud]lod-cloud_colored.png “LOD cloud”) Linking Open Data cloud diagram; datasets met gestructureerde computerleesbare data en daartussen aangebrachte links.[/caption]

Maar zover zijn we nog (lang) niet. Er zijn een hoop redenen aan te dragen waarom het semantische web uit de visie van Berners-Lee het niet zal redden. Een van de belangrijkste redenen is het feit dat veelal een enkele centrale ontologie (‘model van de wereld’) wordt verondersteld. Ook is nog niet onomstotelijk vastgesteld dat dergelijke technieken werken in de open omgeving van het web. In specifieke omgevingen, toepassingen en taken worden successen behaald, maar deze vertalen zich nog niet naar breed toepasbare initiatieven. Desondanks bestaat er inmiddels een groeiende ‘wolk’ van datasets met machine-leesbare gegevens, die onderling gekoppeld worden (‘linking open data’ of LOD). Die wolk kan ingezet worden als semantische ruggengraat om allerhande taken aan te pakken.

Een andere reden is het feit dat bij alledaagse gebruikers van het web weinig animo bestaat om deel te nemen aan het toekennen van metadata aan objecten. We zijn dusdanig gewend geraakt aan het gebruik van zoekmachines om een weg door het web te vinden, dat geen dringende reden bestaat om bij te dragen aan de ontwikkeling van het semantische web––los van informele, ‘lichtgewicht’ semantiek in de vorm van persoonlijke bookmarks/tags of simpele annotaties op webpagina’s.

Onder de motorkap

Waar we inmiddels wel steeds meer voorbeelden van zien is het inzetten van semantiek in het zoekproces, bijvoorbeeld verkregen uit LOD. ((Overigens vind het omgekeerde ook plaats, dat wil zeggen het inzetten van zoekalgoritmes zoals Google die gebruikt om wijs te worden uit de gigantische hoeveelheid aan data die op het semantische web in de vorm van gelinkte data te vinden is. Dat is echter niet het onderwerp van dit artikel.)) Wat houdt dat dan in? Recente ontwikkelingen maken het mogelijk dat computers begrijpen welke concepten gebruikt worden in stukken tekst, zoals webpagina’s, zoekmachine queries, tweets, et cetera. Dit begrijpen houdt niets meer in dan het linken van (delen van) tekst aan meer gestructureerde informatie––veelal in de vorm van zogenaamde entiteiten zoals je die bijvoorbeeld vindt in LOD.

Een veelvoorkomende definitie van een ‘entiteit’ omvat personen, bedrijven, producten, locaties, et cetera. Oftewel, alles wat een eigen Wikipedia pagina kan hebben. Exaleads zoekmachine voor Wikipedia geeft een goed voorbeeld van entiteiten. Zodra je daar een query intypt haalt de zoekmachine entiteiten op die gerelateerd zijn aan de query, die je vervolgens op een interactieve manier kan gebruiken om de resultaten aan te passen aan datgene wat je voor ogen had. In zekere zin is dit een moderne variant van faceted zoeken, waarbij metadata behorende bij of geëxtraheerd uit zoekresultaten, worden geanalyseerd en weergegeven, teneinde de zoekresultaten interactief te verbeteren. Een van de meest bekende voorbeelden hiervan is te vinden bij allerhande online winkels, waar je één of meer categorieën kan selecteren om de gevonden producten in te perken.

Wikipedia is uitgegroeid tot een aanzienlijke kennisbron en het aantal Wikipediapagina’s blijft nog steeds gestaag groeien. Een van de interessante eigenschappen van Wikipedia in de context van semantische zoekmachines is dat iedere entiteit geassocieerd is met een door mensen bewerkte beschrijving, zodat ze makkelijk gevonden en beschreven kunnen worden. Ook bevat Wikipedia structurele informatie in de vorm van (1) categorieën, (2) hyperlinks tussen artikelen en (3) infoboxes en sjablonen. Infoboxes zijn de elementen die bij sommige Wikipedia-artikelen aan de rechterhand worden weergegeven en vaak semi-gestructureerde informatie bevatten. Hetzelfde ‘soort’ Wikipedia-artikelen heeft veelal hetzelfde soort infoboxes, zoals steden, zangers, et cetera. Sjablonen lijken hier enigszins op en bevatten ook gestructureerde informatie die specifiek is voor een bepaald soort onderwerp, zoals medicijnen of vliegvelden. DBpedia is een initiatief dat als doel heeft deze informatie automatisch uit Wikipedia te extraheren en beschikbaar te stellen in LOD. Door zijn algemene aard speelt DBpedia hier een centrale rol.

[caption id=”attachment_643” align=”alignright” width=”300”]![Voorbeeld van Fietstas annotaties]Figuur_2-300x238.png “Fietstas annotaties”) Voorbeeld van Fietstas annotaties.[/caption]

Methoden die tekst kunnen linken aan entiteiten gebruiken in belangrijke mate taaltechnologie in combinatie met machine leren, en zijn erop gericht om entiteiten, netwerken van entiteiten, profielen van entiteiten of relaties tussen entiteiten en hun relaties in teksten te herkennen. Aan de Universiteit van Amsterdam werken we sinds 2008 aan een gedistribueerde omgeving genaamd Fietstas (nu xTAS genaamd), die de vereiste functionaliteit als web service aanbiedt. Naast verschillende vormen van tekstnormalisatie biedt Fietstas ook semantische functionaliteiten zoals het herkennen van entiteiten en relaties, het normaliseren van entiteiten en het genereren van ‘profielen’ van entiteiten. Dit maakt het mogelijk willekeurige tekst aan te bieden en een lijst met gevonden entiteiten terug te krijgen. Zie de figuur voor een illustratie van het soort van documentannotaties dat daarbij door Fietstas gegenereerd wordt. Wat kunnen we met de ontdekte links tussen tekst en Wikipedia? Vanwege de directe koppeling tussen Wikipedia en DBpedia kunnen de tools voor semantisch linken (zoals Fietstas of Wikipedia-Miner) direct gebruikt worden om LOD-entiteiten te herkennen in willekeurige teksten, gebruikmakend van aanvullende informatie uit Wikipedia. Zodra entiteiten zijn herkend, kunnen we deze inzetten tijdens het zoekproces.

Semantisch zoeken en vinden

Semantische zoekmachines stellen ons dus in staat om relevante entiteiten en hun relaties te identificeren in grote hoeveelheden tekst en vervolgens in te zetten, bijvoorbeeld door het zoekproces te sturen, suggesties te genereren of door de resultaatpresentatie aan te passen. De mogelijke toepassingen van het inzetten van semantiek tijdens het zoeken zijn legio en variëren van het simpelweg inzetten van alternatieve schrijfwijzen of synoniemen (zoals de tilde operator in Google), via specifieke interpretaties zoals WolframAlpha die verzorgt, tot het volledig taalkundig analyseren van een query (zoals Powerset en Ask.com dat beogen).

Laten we verder ingaan op het scenario van een zoekmachine voor het web. Het automatisch ‘expanderen’ van een query met alternatieve schrijfwijzen lijkt een veelbelovende strategie om op een automatische manier meer relevante webpagina’s te identificeren. Waarom past een bedrijf als Google dit dan niet op grote schaal toe? Een belangrijk tegenargument is ambiguïteit; de gemiddelde query bestaat gemiddeld uit ongeveer 2,4 termen (vaak zelfs minder) en biedt vaak niet genoeg houvast om zeker te weten wat een gebruiker bedoelt. Een dergelijke strategie kan daarom al snel de verkeerde kant opgaan en termen introduceren die niet relevant zijn. Een ander tegenargument is het feit dat het zoekproces minder transparant wordt. Zodra er automatisch termen worden toegevoegd aan de query, bestaat de kans dat er documenten worden teruggegeven die niet relevant zijn, waardoor de kans groot is dat de gebruiker gefrustreerd raakt en uitwijkt naar een andere zoekmachine. Een betere strategie is dan om gebruikers de keus te geven door middel van zijdelings vermelde suggesties in de resultaatpagina’s.

Ondanks het feit dat de genoemde technieken niet automatisch worden toegepast, werken de drie grote zoekmachines voor het web (Google, Bing en Yahoo!) aan verbeteringen van algoritmes en methoden die met hoge precisie kunnen aangeven welke entiteit(en) worden bedoeld in een query. Zij passen dergelijke technieken trouwens al enige tijd in beperkte mate toe. In het bijzonder bij het zogenaamde ‘vertical search’, waarin een incrementeel lerend algoritme beslist wat de intentie van de gebruiker is. Aan de hand van de voorspelde intentie (‘ik wil een boek kopen’, ‘ik wil meer informatie’, et cetera) wordt vervolgens besloten of er, naast de normale webresultaten, ook resultaten worden weergegeven uit ‘vertica- le’ sub-zoekmachines die gespecialiseerd zijn in een bepaald type informatie. Denk aan Google Maps, YouTube of plaatjes, maar ook aan resultaten uit online winkels, blogs, het nieuws, et cetera. In het meest voorkomende geval worden de resultaten uit deze ‘verticals’ verweven met de normale zoekresultaten. De Yahoo! zoekmachine gaat hiermee zelfs nog een stap verder en biedt specifieke overzichtspagina’s aan voor sommige queries. Ook het simpelweg herkennen van bepaalde patronen kan worden beschouwd als een vorm van intelligent zoeken. Probeer maar eens de Google queries ‘time in Amsterdam’, ‘2*2’ of ‘1 dollar in euro’. Of een bepaalde datum.

Andere manieren om concepten en entiteiten in te zetten tijdens het zoeken vinden we in zogenaamde Microformats en in RDFa. Dit zijn semantische talen die als doel hebben om semantiek in te bedden in XHTML-opmaakcode. Waar Microformats een specifiek vocabulaire behelst, kan RDFa gebruikt worden om ieder willekeurig kennismodel in te zetten in de annotatie van (gedeeltes van) webpagina’s. Het doel hiervan is om op een backwards-compatible manier semantische webfunctionaliteit aan webpagina’s te kunnen toevoegen. Dit wordt veelal op automatische wijze toegepast. Zoekmachines kunnen hier vervolgens gebruik van maken, bijvoorbeeld door zogenaamde ‘rich snippets’, waarin dergelijke gestructureerde informatie wordt getoond in het scherm met zoekresultaten. Denk aan resultaten van LinkedIn, waarbij de huidige baan en locatie van een persoon worden getoond, aan recensiescores voor een bepaald product of recept, maar denk ook aan het weergeven van de tijden en locaties waarop een bepaalde film wordt vertoond.

In het algemeen kan je stellen dat een van de ontwikkelingen op weg naar het web 3.0, het zoekgedrag van gebruikers betreft. Waar we in eerste instantie gewend waren aanzienlijke aantallen webpagina’s uit de resultaatpagina’s van zoekmachines te bekijken, wordt tegenwoordig doorgaans slechts de eerste pagina bekeken. Tien jaar geleden keek minimaal 58 procent van de gebruikers alleen naar de eerste resultaatpagina; in 2005 was dit percentage zelfs opgelopen tot meer dan 80 procent. Ook zien we in het zoekgedrag van gebruikers dat we vaker op zoek zijn naar scherper gedefinieerde eenheden, zoals eerdergenoemde entiteiten. Als iemand wil weten waar en hoe laat een bepaalde film in de buurt draait, accepteert men niet langer pagina’s van verschillende bioscopen te moeten bekijken. In plaats daarvan verwachten we dat de zoekmachine ons deze stap uit handen neemt en een overzicht teruggeeft.

Of het nu gaat om dubbelzinnigheid in zoekvragen aan te pakken, het weergeven van intelligente manieren van interactie of de presentatie van zoekresultaten, alle voorbeelden tot dusver laten zien dat semantische zoekmachines de zoekervaring van de gebruiker nu al aan het veranderen zijn.

Recente ontwikkelingen

Eerder kwamen Microformats en RDFa al aan de orde en in het bijzonder hoe deze toegepast worden om de resultaatpagina’s van zoekmachines ‘intelligenter’ te maken. De wildgroei aan verschillende dialecten en de verschillende mate van ondersteuning bij verschillende zoekmachines deden Bing, Google en Yahoo! recentelijk besluiten een gezamenlijk voorstel voor een vocabulaire om entiteiten te beschrijven naar buiten te brengen, waarmee gestructureerde informatie opgenomen kan worden op webpagina’s. Op de bijbehorende website, schema.org genaamd, staan alle categorieën die ondersteund worden, alsmede documentatie voor ontwikkelaars en webmasters. Onder de categorieën bevinden zich entiteitstypen als personen, films, producten, locaties en meer. Ook wordt ondersteuning gegeven voor semantische webtalen als OWL en RDF, met als doel schema.org-annotaties deel uit te laten maken van LOD.

Een andere recente ontwikkeling is Open Graph van Facebook. We kennen allemaal de Facebook ‘Like’-knoppen op websites en dit is de volgende versie daarvan. Facebook erkende een veelgehoorde klacht van gebruikers dat een simpele ‘Like’ in veel gevallen misstond. Gebruikers wilden bijvoorbeeld alleen maar aangeven dat ze iets gezien of gehoord hadden, zonder een impliciet positief waardeoordeel te geven. En, hoewel het in eerste instantie al mogelijk was om een zogenaamd objecttype (zoals ‘acteur’, ‘stad’, et cetera) mee te geven aan datgene dat ‘geliked’ kon worden, werd er maar sporadisch gebruik van gemaakt, voornamelijk vanwege de erg beperkte lijst met ondersteunde types. Open Graph heeft als doel beide bezwaren aan te pakken. Allereerst kan men, naast de ‘Like’-actie, eigen acties definiëren, zoals ‘Listened’, ‘Watched’, et cetera. Ten tweede kunnen nu ook entiteiten aangeduid worden (zogenaamde ‘objects’), waarop de acties betrekking hebben. Maar wat heeft dit te maken met het semantische web? En met zoeken? Het aanduiden van objecten en mogelijke acties die men daarop kan ondernemen, heeft wel degelijk het karakter van het semantische web. Daarnaast zijn alle Facebook-acties, waaronder de bekende ‘Like’-knop, geschreven in RDFa. En, wellicht nog belangrijker, het ondersteunt het sociale karakter van internet en brengt dit naar het semantische web. Met dergelijke annotaties kunnen namelijk gepersonaliseerde suggesties worden gedaan, bijvoorbeeld aan de hand van acties van vrienden of van personen die erg lijken op een gebruiker.

Tot slot is het open source contentmanagementsysteem (CMS) Drupal een vermelding waard. Dit van oorsprong Belgische project wordt over de gehele wereld als backend voor allerlei websites gebruikt. In de laatste versie (Drupal 7) wordt er out-of-the-box ondersteuning geboden voor RDFa. Dit betekent dat alle content op een website met Drupal als CMS, standaard ontsloten kan worden met RDFa. Denk aan personen op een forum, producten in een webshop, of bijvoorbeeld recensies. Door het open karakter van Drupal zijn objecten en types vrijelijk te definiëren en kunnen deze dus met minimale inspanning aangeboden worden als machineleesbare informatie en deel gaan uitmaken van het semantische web.

Tot slot

Met het steeds breder beschikbaar komen van machineleesbare informatie, en methoden om deze informatie te consumeren en produceren, en met het steeds slimmer worden van automatische methoden om entiteiten te herkennen in tekst, komt het semantische web steeds dichterbij. Met behulp van moderne, semantische zoekmachinetechnologieën zijn inmiddels de eerste stappen – van hoge kwaliteit en op grote schaal – gezet om deze informatie in te zetten om gebruikers sneller te laten vinden wat ze zoeken. Of dit alles daad- werkelijk web 3.0 gaat voorstellen zullen we pas over enige tijd weten, maar voor nu ziet de zoekmachine van de toekomst er in ieder geval al slimmer, interactiever en socialer uit.

(Dit artikel verscheen eerder in het tijdschrift Informatie Professional, zie https://informatieprofessional.nl/resources/uploads/2017/12/IP-2011-11.pdf en hier voor een hi-res scan daarvan.)