Oracle en "Het Semantische Web"
December 2006 – Volgens het World Wide Web Consortium (kortweg W3C), de organisatie die de standaarden voor het Internet ontwerpt, is de wereld toe aan de volgende stap in de evolutie van gegevensuitwisseling. We weten allemaal intussen hoe XML werkt: een manier van gegevensdeling waarbij de structuur (syntax) van het bericht formeel beschreven is. De volgende stap is volgens W3C het formeel beschrijven van de bedoeling (semantiek) van de gegevens. Hiermee ontstaat het semantische web.
Wat is het en hoe werkt dat in Oracle?
De visie van het semantische web
Volgens de uitvinder van het huidige web (Tim Berners-Lee) is het World Wide Web zoals wij dat nu kennen te beperkt. We hebben nu de technologie om gegevens te delen (TCP/IP, HTML, browsers, etc.). We hebben de technologie om de structuur van die gegevens vast te leggen (XML). Mensen zijn echter nodig om de inhoud van berichten te begrijpen.
Je zou willen dat computers in staat zijn om te begrijpen waar berichten over gaan.
Hierdoor wordt gegevensuitwisseling en gegevensinterpretatie verder geautomatiseerd.
Technologie
Om dit te bereiken moet een aantal logische lagen worden toegevoegd bovenop XML. Figuur 1 (zie ook Wikipedia) geeft aan welke lagen dat zijn.
XML Query & Syntax
De eerste laag bovenop XML is een bekende. Met XML Schema is vastgesteld wat de syntax van een bericht is en met XML Query heb je de mogelijkheid om deze gegevens programmatisch te benaderen.

Figuur 1: W3C Semantic Web Layer Cake
RDF Model & Syntax
De eerstvolgende laag is het Resource Description Framework (RDF) model. In XML kennen we het onderscheid tussen “element” en “waarde van dat element”. Dit kan hiërarchisch worden vastgelegd.
In RDF wordt daar nog een extra dimensie aan toegevoegd: voor welk “kenmerk” van het onderwerp je de waarde aangeeft. De notatie hiervan stamt uit de taalkunde: “onderwerp-gezegde-voorwerp”.
Voorbeeld in XML:
<GRAS>
<KLEUR>
groen
</KLEUR>
</GRAS> Het is lastig voor een computer te achterhalen dat “groen” iets zegt (en wat) over “gras”.
Dat zal je moeten programmeren.
Voorbeeld in RDF:
“Gras”-“heeft de kleur”-“groen”
De syntax van RDF is vastgelegd in RDF Schema’s.
Ontology en Rules/Query
Nu is alleen het definiëren van de syntax voor het vastleggen van de semantiek van berichten niet voldoende. Om die inhoud te kunnen begrijpen is een gemeenschappelijk referentiekader nodig. Ergens moet zijn beschreven welke “voorwerpen” bestaan in de wereld, wat de definitie daarvan is, en hoe die voorwerpen zich tot elkaar verhouden. Dit wordt een “ontologie” genoemd. Op het WWW zijn inmiddels verschillende ontologieën beschikbaar voor verschillende delen van de wereld zoals wij die kennen. Denk hierbij bijvoorbeeld aan medische en biologische ontologieën waarin zaken beschreven zijn van genen tot de anatomie van muizen.
In de Web Ontology Language (afgekort als OWL) is het mogelijk nog meer informatie over de semantiek van data vast te leggen. Bijvoorbeeld kenmerken van relaties tussen voorwerpen zoals cardinaliteit (het aantal voorkomens van het ene voorwerp ten opzichte van het andere voorwerp).
Voorbeeld:
“1 auto heeft 4 wielen”.
“1 wiel hoort altijd bij 1 auto”.
Logic
Met Semantic Web Rule Language (SWRL, momenteel nog niet formeel vastgesteld door W3C) kunnen validiteitsregels worden vastgelegd (zie link SWRL).
Voorbeeld:
Als (x<1) en (x>y) dan geldt: y<1
Proof en Trust
Nu wordt het ingewikkeld. “Proof” zou een bewering moeten bewijzen met behulp van aangegeven regels (“Logic”).
Voorbeeld:
De vraag of een hypotheekaanvraag (inhoudelijk) voldoet aan de minimale eisen van een hypotheekverstrekker moet door de “Proof” beantwoord worden op basis van validiteitsregels gedefinieerd in de “logic” layer.
“Trust” is vervolgens een logicalaag waarmee “bewezen” wordt dat alle lagen daaronder “veilig” zijn, dat er niet mee geknoeid is.
Dit alles bij elkaar maakt het makkelijker om automatisch gegevens te publiceren en uit te wisselen.
De software “begrijpt” niet alleen wat de opbouw en inhoud is van bericht, het begrijpt wat je er mee kan “doen”.
Een voorbeeld:
Een hypotheekverstrekker stelt eenmalig validiteitsregels op over de condities waarbinnen zij nieuwe hypotheekaanvragen accepteren. Tussenpersonen kunnen (semantisch opgebouwde) aanvragen indienen. Het formaat daarvan mag per tussenpersoon verschillen, als de ontologie maar dezelfde is. De applicatie van de hypotheekverstrekker begrijpt hoe die aanvraag in elkaar steekt, kan de validiteitsregels toepassen en automatisch de aanvraag accepteren of weigeren. De programmeur heeft geen werk aan het vertalen van het bericht naar een structuur van de hypotheekverstrekker. De programmeur hoeft niet de validiteitsregels in te bouwen.
Een volgende stap zou kunnen zijn dat de geaccepteerde aanvraag automatisch ingevoerd wordt in het backoffice systeem, ook hier met minimale programmeerinspanningen.
De implementatie van Oracle
Oracle heeft RDF technologie in de vorm van specifieke RDF/OWL object types toegevoegd aan de database als onderdeel van de Spatial optie.
Oracle ondersteunt hierbij alle vastgestelde RDF datatypes, RDF Schema en RDFS rulebase en biedt daarbij als Oracle “feature” de extra mogelijkheden van stored object types: persistente opslag, indices en toegang via SQL, PL/SQL en Java API’s.
Omdat de RDF objecten tevens gebaseerd zijn op XML zijn ook technieken als XPath en Xquery en XSL beschikbaar.
Volgens Oracle is deze technologie bijzonder goed schaalbaar voor grote hoeveelheden aan data met snelle responsetijden.

Figuur 2: de implementatie van Oracle
Alleen de blauwomcirkelde lagen van het semantische web worden op dit moment door Oracle ondersteund.
De toekomst
Er zijn een aantal onzekerheden. In potentie kan het semantische web veel betekenen voor de ICT sector en zelfs voor de samenleving (zie de presentatie van Tim Berners-Lee). Tegelijkertijd heeft het op dit moment een hoog theoretisch en visionair gehalte, is de visie van Tim wel realiseerbaar? (Zie ook de kritische geluiden op Wikipedia).
Oracle zelf moet nog verder aan de weg timmeren om volledig het semantische web te ondersteunen. Het is zelfs mogelijk dat niet alleen Oracle technologieën verder aangepast worden maar dat ook de business producten van Oracle in de toekomst op semantische data werken. Denk bijvoorbeeld aan Oracle Financials. Het is heel goed mogelijk dat vanuit compliance regelgeving aanvullende eisen worden gesteld aan dataopslag die met semantische informatie beter ingevuld kunnen worden.
Conclusie
Oracle spreekt van “The industry's first open, scalable, secure semantic Database”. Oracle heeft echter alleen nog een basis gelegd voor de ondersteuning van het semantische web. Zelf hebben ze het vooral over de voordelen van de Oracle oplossing ten aanzien van andere RDF implementaties.
Het argument van schaalbaarheid van RDF opslag zou op zichzelf een valide business case kunnen opleveren als je het vergelijkt met traditionele relationele opslag. Dat moet echter nog aangetoond worden.
Voor specifieke doelgroepen kan de RDF technologie nu al iets betekenen. Met name in omgevingen waarin informatie formeel beschreven is zoals bijvoorbeeld in de medische wereld of bij de Amerikaanse Defensie-industrie kan een semantische opslag toegevoegde waarde hebben. Oracle geeft zelf een aantal voorbeelden in de eigen White Paper over het semantische web.
RDF lijkt al met al op dit moment vooral geschikt voor early-adopters met een specifieke business case. Maar pas op: Misschien heeft Tim gelijk en gaat onze samenleving ingrijpend veranderen!
Literatuurreferenties
- W3C website over semantic web:
www.w3.org/2001/sw - SWRL:
www.w3.org/Submission/SWRL - Wikipedia.org:
en.wikipedia.org/wiki/Semantic_web - Presentatie “De toekomst van het web” door Tim Berners-Lee:
www.w3.org/Talks/1998/1108-amia-tbl - White Paper van Oracle over het semantische web:
www.oracle.com/technology/tech/semantic_technologies/pdf/semantic_grid_wp_0603.pdf

Reacties
Nieuwe reactie inzenden