Er bestaan reeds verschillende ontologies die gebruikt kunnen worden voor het voorstellen van context. Zoals in de voorgaande blogpost aangegeven werd, is het niet onze bedoeling om 'from scratch' een nieuwe ontology uit de grond te stampen. Daarom zijn we op zoek gegaan naar enkele interessante, bestaande ontologies en de systemen waarin ze worden gebruikt, om te zien welke elementen bruikbaar zijn. De bestudeerde ontologies zijn SOUPA, Gedistribueerde Ontologies, COBRA-ONT en GCoM.
SOUPA
SOUPA, de 'Standard Ontology for Ubiquitous and Pervasive Applications', wordt gebruikt in de Context Broker Architecture (CoBrA) en wordt uitgedrukt met behulp van OWL (Web Ontology Language). Het doel is het ondersteunen van 'pervasive computing'-applicaties, door het aanbieden van een open ontology die nuttige vocabularia van verschillende ontologies samenbrengt. Op die manier kunnen ontwikkelaars die geen ervaring hebben met context-representatie op een eenvoudige manier ontology-gedreven implementaties maken, zonder daarvoor eerst een ontology 'from scratch' te moeten maken: ze kunnen zich bijgevolg richten op de functionaliteit van het systeem.
SOUPA bestaat uit twee sets van ontologies: 'SOUPA Core' en 'SOUPA Extension'. De Core-ontologies hebben als doel een vocabularium aan te bieden dat universeel is voor het bouwen van 'pervasive computing'-applicaties. De Extension-ontologies bevatten extra vocabularia voor specifieke applicaties, en bieden voorbeelden aan om zelf ontologies te definiëren.
Zoals eerder aangehaald gebruikt SOUPA een aantal bestaande ontologies. Er wordt voor gekozen om elementen uit die ontologies te lenen of aan te passen, maar ze niet letterlijk te importeren. Op die manier wordt de overhead van irrelevante onderdelen vermeden. Om samenwerking met bestaande ontologies te behouden, worden veel geleende termen in SOUPA gemapt op de oorspronkelijke termen. SOUPA heeft onder andere geleend van FOAF, DAML-Time, OpenCyc Spatial Ontologies, MoGATU BDI Ontology en Rei Policy Ontology.
De SOUPA Core ontology bestaat uit negen ontology-documenten. Ze definiëren vocabularia voor het beschrijven van peroonsinformatie, BDI, acties, policies, tijd, plaats en events. Bij elk van deze vocabularia zijn elementen terug te vinden die nuttig kunnen zijn in de domotica-systeem, en andere elementen die helemaal niet van toepassing zijn. De SOUPA Extension-ontologies zijn erg domein-specifiek.
Gedistribueerde ontologies
CADO, Context-aware Applications with Distributed Ontologies) is ontworpen om de dynamische configuratie van 'pervasive computing'-omgevingen te ondersteunen, en om interactie om kennis te delen met semantische data mogelijk te maken. Het gebruikt hiervoor gedistribueerde ontologies, die gedeeld en beheerd worden op een peer-to-peer-manier. Op die manier wil men een middleware bekomen waar het mogelijk is dat deelnemers dynamisch komen en gaan, hun ontologies kunnen delen en af en toe 'clusters' kunnen vormen om een conversatie op te zetten.
CADO maakt onderscheid tussen zgn. 'topic ontologies' en 'distributed ontologies'. Een 'topic ontology' behelst een bepaald aspect van een domein. Er wordt voornamelijk gebruik gemaakt van 'is-a' en andere domein-specifieke relaties. Een collectieve visie over een bepaald domein (bijvoorbeeld binnen een team) kan enkel bekomen worden door topic ontologies samen te brengen. Een 'distributed ontology' bestaat uit verschillende componenten, waarbij elke component door een andere ontwikkelaar binnen de gedistribueerde omgeving wordt gemaakt. Gedistribueerde ontologies zijn dus modulair en bestaan uit peer-componenten die verspreid zijn over het netwerk.
COBRA-ONT
Bij de bespreking van de SOUPA-ontology werd aangegeven dat deze werd gebruikt bij CoBrA. Eigenlijk gaat het daar om een afgeleide van SOUPA, COBRA-ONT. Deze ontology kan als een afgeleide van SOUPA worden beschouwd en werd eveneens ontwikkeld in OWL. COBRA-ONT is een collectie van ontologies voor het beschrijven van context in een 'intelligent meeting room'-domein.
Versie 0.2 van COBRA-ONT bestaat uit 41 klassen (owl:class) en 36 eigenschappen (owl:ObjectProperty en owl:DatatypeProperty). De ontology wordt opgedeeld in vier "thema's":
SOUPA
SOUPA, de 'Standard Ontology for Ubiquitous and Pervasive Applications', wordt gebruikt in de Context Broker Architecture (CoBrA) en wordt uitgedrukt met behulp van OWL (Web Ontology Language). Het doel is het ondersteunen van 'pervasive computing'-applicaties, door het aanbieden van een open ontology die nuttige vocabularia van verschillende ontologies samenbrengt. Op die manier kunnen ontwikkelaars die geen ervaring hebben met context-representatie op een eenvoudige manier ontology-gedreven implementaties maken, zonder daarvoor eerst een ontology 'from scratch' te moeten maken: ze kunnen zich bijgevolg richten op de functionaliteit van het systeem.
SOUPA bestaat uit twee sets van ontologies: 'SOUPA Core' en 'SOUPA Extension'. De Core-ontologies hebben als doel een vocabularium aan te bieden dat universeel is voor het bouwen van 'pervasive computing'-applicaties. De Extension-ontologies bevatten extra vocabularia voor specifieke applicaties, en bieden voorbeelden aan om zelf ontologies te definiëren.
Zoals eerder aangehaald gebruikt SOUPA een aantal bestaande ontologies. Er wordt voor gekozen om elementen uit die ontologies te lenen of aan te passen, maar ze niet letterlijk te importeren. Op die manier wordt de overhead van irrelevante onderdelen vermeden. Om samenwerking met bestaande ontologies te behouden, worden veel geleende termen in SOUPA gemapt op de oorspronkelijke termen. SOUPA heeft onder andere geleend van FOAF, DAML-Time, OpenCyc Spatial Ontologies, MoGATU BDI Ontology en Rei Policy Ontology.
De SOUPA Core ontology bestaat uit negen ontology-documenten. Ze definiëren vocabularia voor het beschrijven van peroonsinformatie, BDI, acties, policies, tijd, plaats en events. Bij elk van deze vocabularia zijn elementen terug te vinden die nuttig kunnen zijn in de domotica-systeem, en andere elementen die helemaal niet van toepassing zijn. De SOUPA Extension-ontologies zijn erg domein-specifiek.
Gedistribueerde ontologies
CADO, Context-aware Applications with Distributed Ontologies) is ontworpen om de dynamische configuratie van 'pervasive computing'-omgevingen te ondersteunen, en om interactie om kennis te delen met semantische data mogelijk te maken. Het gebruikt hiervoor gedistribueerde ontologies, die gedeeld en beheerd worden op een peer-to-peer-manier. Op die manier wil men een middleware bekomen waar het mogelijk is dat deelnemers dynamisch komen en gaan, hun ontologies kunnen delen en af en toe 'clusters' kunnen vormen om een conversatie op te zetten.
CADO maakt onderscheid tussen zgn. 'topic ontologies' en 'distributed ontologies'. Een 'topic ontology' behelst een bepaald aspect van een domein. Er wordt voornamelijk gebruik gemaakt van 'is-a' en andere domein-specifieke relaties. Een collectieve visie over een bepaald domein (bijvoorbeeld binnen een team) kan enkel bekomen worden door topic ontologies samen te brengen. Een 'distributed ontology' bestaat uit verschillende componenten, waarbij elke component door een andere ontwikkelaar binnen de gedistribueerde omgeving wordt gemaakt. Gedistribueerde ontologies zijn dus modulair en bestaan uit peer-componenten die verspreid zijn over het netwerk.
COBRA-ONT
Bij de bespreking van de SOUPA-ontology werd aangegeven dat deze werd gebruikt bij CoBrA. Eigenlijk gaat het daar om een afgeleide van SOUPA, COBRA-ONT. Deze ontology kan als een afgeleide van SOUPA worden beschouwd en werd eveneens ontwikkeld in OWL. COBRA-ONT is een collectie van ontologies voor het beschrijven van context in een 'intelligent meeting room'-domein.
Versie 0.2 van COBRA-ONT bestaat uit 41 klassen (owl:class) en 36 eigenschappen (owl:ObjectProperty en owl:DatatypeProperty). De ontology wordt opgedeeld in vier "thema's":
- ontologies over fysieke plaatsen,
- ontologies over agents (zowel menselijke als software-agents),
- ontologies over de locatie-context van agents,
- ontologies over de activiteit-context van agents.
Elk van deze domeinen bevat ontologies die nuttig zijn voor het gebruik in een domoticasysteem, maar vanzelfsprekend ook ontologies die wij niet zullen kunnen gebruiken.
GCoM
Het GCoM (Generic Context Management) model wordt gebruikt in het CoCA (Collaborative Context-Aware) service platform. Ook GCoM wordt uitgedrukt met behulp van OWL. Het model is ontworpen om context-reasoning gemakkelijker te maken, door een structuur voor context, regels en hun semantieken aan te bieden. GCoM heeft tot doel te functioneren binnen een dynamisch domein waar beperkte resources een belangrijk aandachtspunt zijn.
De globale entiteiten die gebruikt worden voor het modelleren van de context zijn Activity, Service, Physical Environment, Network, Location, Device en Person. Een context-eigenschap wordt steeds gemodelleerd volgens de 'RDF-triple naming style'-conventie:. Bijvoorbeeld: .
Naast deze eigenschappen heeft het modelleren van context nood aan attributen zoals bron, tijdstip, plaats, validiteit, enz. Deze attributen krijgen pas betekenis als ze gebruikt worden bij de gehele triple, en niet bij één van de elementen ervan. Om die reden wordt in GCoM gebruik gemaakt van zogenaamde 'reification'. Een voorbeeld maakt dit duidelijk:
Opmerking
De meeste van de hiervoor beschreven ontologies werden ontwikkeld met behulp van OWL, de Web Ontology Language. OWL wordt gebruikt door computerprogramma's die de inhoud van informatie moeten gebruiken, en niet gewoon presenteren naar menselijke gebruikers. Er zijn een aantal goede redenen om voor OWL te kiezen bij het modelleren van de ontologies:
GCoM
Het GCoM (Generic Context Management) model wordt gebruikt in het CoCA (Collaborative Context-Aware) service platform. Ook GCoM wordt uitgedrukt met behulp van OWL. Het model is ontworpen om context-reasoning gemakkelijker te maken, door een structuur voor context, regels en hun semantieken aan te bieden. GCoM heeft tot doel te functioneren binnen een dynamisch domein waar beperkte resources een belangrijk aandachtspunt zijn.
De globale entiteiten die gebruikt worden voor het modelleren van de context zijn Activity, Service, Physical Environment, Network, Location, Device en Person. Een context-eigenschap wordt steeds gemodelleerd volgens de 'RDF-triple naming style'-conventie:
Naast deze eigenschappen heeft het modelleren van context nood aan attributen zoals bron, tijdstip, plaats, validiteit, enz. Deze attributen krijgen pas betekenis als ze gebruikt worden bij de gehele triple, en niet bij één van de elementen ervan. Om die reden wordt in GCoM gebruik gemaakt van zogenaamde 'reification'. Een voorbeeld maakt dit duidelijk:
<ns:XX rdf:type resource=rdf:Statement/>
<ns:XX rdf:subject resource=ns:Bob/>
<ns:XX rdf:predicate resource=ns:isLocatedIn/>
<ns:XX rdf:object resource=ns:Library/>
<ns:XX ns:isReportedBy "Sensor#5"/>
<ns:XX ns:hasAccurancyOf "88%"/>
Het feit dat de informatie afkomstig is van sensor 5 en een accurancy van 88% heeft wordt gemodelleerd op de volledige eigenschap 'Bob bevindt zich in de bibliotheek' en niet op één van de onderdelen van de triple apart.De meeste van de hiervoor beschreven ontologies werden ontwikkeld met behulp van OWL, de Web Ontology Language. OWL wordt gebruikt door computerprogramma's die de inhoud van informatie moeten gebruiken, en niet gewoon presenteren naar menselijke gebruikers. Er zijn een aantal goede redenen om voor OWL te kiezen bij het modelleren van de ontologies:
- OWL is veel expressiever dan RDF of RDFS, wat toelaat om meer kennis in de ontology te bouwen.
- OWL is expliciet als een "ontology-taal" ontworpen en bevat heel wat nuttige voorgedefinieerde klassen en eigenschappen die nuttig kunnen zijn bij het uitdrukken van ontologies.
- OWL is als een standaard ontworpen, ondersteund door een bekende en gerespecteerde organisatie (World Wide Web Consortium of W3C). Er zijn dan ook een hoop tools beschikbaar om met OWL te werken.
Besluit
Er zijn reeds verschillende implementaties die gebruik maken van ontologies voor het modelleren van de context-informatie. Zoals eerder aangehaald is het geen goed idee om een compleet nieuw ontology-model 'from scratch' te implementeren. We zullen dus gebruik maken van een bestaand model, en daar de elementen die we kunnen gebruiken uit te halen en de nodige uitbreidingen toe te voegen.
Het gebruik van gedistribueerde ontologies lijkt ons niet nuttig. Binnen het domotica-systeem zal het zeker nodig zijn om tot een bepaalde consensus te komen, of bepaalde conflicten op te lossen. Hiervoor is een globaal context-model nodig. Bij het gebruik van gedistribueerde ontologies wordt het context-model lokaal opgebouwd, binnen een bepaalde groep van gebruikers. Op die manier wordt het erg moeilijk om inconsistenties op te sporen. Het argument dat aangehaald wordt om gedistribueerde ontologies te gebruiken, nl. het feit dat het flexibeler is als het aantal gebruikers toeneemt, is terecht maar geen issue binnen het domoticasysteem dat wij ontwerpen. Wanneer het centrale systeem toch een bottleneck zou blijken te zijn, kan dit opgevangen worden door meerdere centrale componenten in te zetten (bijvoorbeeld per verdieping), die dan op één centrale plaats gecontroleerd worden.
Zowel GCoM als SOUPA/COBRA-ONT (die sterk gerelateerd zijn, daar COBRA-ONT gebaseerd is op SOUPA) bevatten elementen die nuttig kunnen zijn voor het gebruik in het domoticaysteem, en elementen die helemaal niet gebruikt zullen worden. Uiteindelijk zullen we sowieso aanpassingen moeten doen aan de bestaande ontologies. We kiezen ervoor om te vertrekken vanuit SOUPA/COBRA-ONT omdat die ontology helemaal online beschreven is, en uit zichzelf de mogelijkheid biedt om nieuwe klassen en eigenschappen te definiëren. Mocht later blijken dat er bepaalde zaken echt niet mogelijk zijn met SOUPA/COBRA-ONT kunnen we teruggrijpen naar GCoM om te zien wat daarmee mogelijk is.
Bronnen:
[1] Chen et al. The SOUPA Ontology for Pervasive Computing.
[2] De Paoli en Loregian. Context-aware Applications with Distributed Ontologies.
[3] Chen et al. An Ontology for Context-Aware Pervasive Computing Environments.
[4] Ejigu et al. CoCA: A Collaborative Context-Aware Service Platform for Pervasive Computing.
[5] Ejigu et al. An ontology-based approach to context modeling and reasoning in pervasive computing.
Geen opmerkingen:
Een reactie posten