Online Presence Ontology – OPO

Description de l’ontologie

opo_slika

Figure 1 : Online Presence Ontologie [1]

Objectif

Online Presence Ontology (OPO) est une ontologie représentant la présence en ligne [1]. Son objectif est de modéliser les différents aspects dynamiques de la présence en ligne d’un utilisateur sur les réseaux sociaux et les services de messagerie instantanée. Elle permet de décrire par exemple les activités, statuts, messages personnels, etc.

OPO utilise d’autres ontologies afin de décrire les profils des utilisateurs : Friend Of A Friend (FOAF) et Semantically-Interlinked Online Communities (SIOC). Notons qu’il faut bien faire la différence entre les propriétés des utilisateurs en ligne modélisées par FOAF qui sont statiques, telles que le nom, le sexe, etc., et les propriétés modélisées par OPO qui sont dynamiques, comme le statut (occupé, absent, en ligne) ou les activités courantes par exemple.

 

Code source : analyse de la syntaxe

Description générale de l’ontologie

Cette ontologie est décrite grâce au langage OWL (Web Ontology Language) et au framework RDF (Resource Description Framework). Son namespace est disponible à l’adresse suivante : http://online-presence.net/opo/ns#.

Une telle ontologie est décrite grâce à 3 types d’éléments, comme expliqué dans les tutoriels [3] et [4], qui seront définis dans la suite de ce document :

  • les classes
  • les individus
  • et les propriétés.

Diagramme de classe

Nous avons réalisé une représentation du diagramme de classe de l’ontologie OPO grâce à l’outil Protégé, représenté sur la figure 2 ci-dessous. Les flèches droites bleues signifient “has subclass”.

opo

Figure 2 : Diagramme de classe de l’OPO réalisé avec l’outil Protégé

Classes principales

Description

Les classes principales de l’ontologie OPO représentées sur le diagramme de classe précédent (figure 2), sont les suivantes.

Agent

L’agent représente l’utilisateur décrit par l’ontologie Online Presence. Il est défini dans une autre ontologie, Friend Of A Friend.

OnlinePresence

C’est la classe principale de l’OPO. Elle décrit le comportement d’un agent vis-à-vis des autres agents et applications. Cette attitude est représentée grâce à différents OnlinePresenceComponents.

OnlinePresenceComponent

Cette classe est utilisée pour représenter une des dimensions de la présence en ligne d’un agent. Ses sous-classes sont les suivantes : Findability, Notifiability et OnlineStatus.

Findability

Sous-classe de OnlinePresenceComponents, cette classe est utilisée pour représenter la possibilité de trouver les détails de contact d’un agent dans une liste publique. Ces contacts peuvent être accessibles par tous sur le Web ou sous certaines conditions.

Notifiability

Autre composant de la présence en ligne (sous-classe de OnlinePresenceComponents), Notifiability est utilisé pour représenter l’attitude d’un agent concernant son interaction avec les applications, comme par exemple la possibilité d’afficher toutes les notifications, certaines notifications (selon des règles prédéfinies) ou de n’afficher aucune notification.

OnlineStatus

Cette classe décrit le comportement d’un agent concernant la possibilité de communication avec les autres agents. Le statut en ligne est défini par différents composants, sous-classes de OnlineStatusComponent.

OnlineStatusComponent

Cette classe est utilisée pour représenter une des dimensions du statut en ligne d’un utilisateur. Ses sous-classes sont les suivantes : Contactability, Visibility, Disturbability et Activity.

Contactability

Sous-classe de OnlineStatusComponent, cette classe est utilisée pour représenter la joignabilité d’un agent, c’est-à-dire la façon dont il est joignable. Contactibility décrit la possibilité pour les autres agents de contacter le premier agent librement ou sous certaines conditions.

Visibility

Autre composant du statut en ligne, Visibility permet de représenter la possibilité pour les autres de voir le statut en ligne de l’agent qui peut être visible ou invisible.

Disturbability

Sous-classe de OnlineStatusComponent, cette classe est utilisée pour représenter la volonté d’un agent d’être ou non dérangé. Un utilisateur peut être en mode “Disponible” ou “Ne pas déranger”.

Activity

Dernier composant du statut en ligne, Activity représente l’état de l’activité de l’agent, comme par exemple actif, inactif ou inactivité prolongée.

Action

Cette classe représente l’action en cours réalisée par l’agent. Une action peut être écouter de la musique ou lire un livre par exemple.

Exemple de syntaxe

Les classes fournissent des abstractions pour des ensembles de ressources ayant des caractéristiques similaires. Chaque classe OWL est associée à un ensemble d’“individuals” appelés extension de classe [3]. Une définition de classe décrit une classe OWL, soit par un nom de classe ou en spécifiant l’extension de classe d’une classe anonyme.

Prenons l’exemple de la définition de la classe OnlinePresence.


Définition de la classe - Online Presence - avec son URI
<owl:Class rdf:about="http://online-presence.net/opo/ns#OnlinePresence">
    <rdfs:label xml:lang="en">OnlinePresence</rdfs:label>
    Définition de la classe dont hérite la classe courante - Thing
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
    Définition de la sous-classe Findability
    <rdfs:subClassOf>
        Décrit une classe anonyme
        <owl:Restriction>
            Propriété de la sous-classe Findability - hasStatusComponent
            <owl:onProperty rdf:resource="http://online-presence.net/opo/ns#hasStatusComponent"/> 
            <owl2:onClass rdf:resource="http://online-presence.net/opo/ns#Findability"/> 
            <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> 
        </owl:Restriction>
    </rdfs:subClassOf>
    Définition de la sous-classe Notifiability
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://online-presence.net/opo/ns#hasStatusComponent"/> 
            <owl2:onClass rdf:resource="http://online-presence.net/opo/ns#Notifiability"/> 
            <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> 
        </owl:Restriction>
    </rdfs:subClassOf>
    Définition de la sous-classe OnlineStatus
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://online-presence.net/opo/ns#hasStatusComponent"/> 
            <owl2:onClass rdf:resource="http://online-presence.net/opo/ns#OnlineStatus"/> 
            <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> 
        </owl:Restriction>
    </rdfs:subClassOf>
    Définition des classes disjointes (classes n’ayant aucun individu commun avec la classe courante) - OnlinePresenceComponent, Action et SourceOfPublishing
    <owl:disjointWith rdf:resource="http://online-presence.net/opo/ns#OnlinePresenceComponent"/> 
    <owl:disjointWith rdf:resource="http://online-presence.net/opo/ns#Action"/> 
    <owl:disjointWith rdf:resource="http://online-presence.net/opo/ns#SourceOfPublishing"/> 
    <rdfs:isDefinedBy rdf:resource="http://online-presence.net/opo/ns#"/>
    Commentaire associé à la classe décrivant son rôle
    <rdfs:comment xml:lang="en">
        OnlinePresence, described in termes of various OnlinePresenceComponents to represent the attitude of an Agent towards interaction with other Agents and Applications.
    </rdfs:comment>
</owl:Class>

Individus

Les individuals (individus) sont les instances des classes et sous-classes définies dans l’ontologie. Par exemple, les individus de la classe Notifiability sont : AllNotificationsPass, NotificationsContrained et NotificationsProhibited. Un exemple de syntaxe d’individu est donné ci-dessous, pour AllNotificationsPass.


<Notifiability rdf:about="http://online-presence.net/opo/ns#AllNotificationsPass">
    <rdfs:label xml:lang="en">AllNotificationsPass</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="http://online-presence.net/opo/ns#"/>
    <rdfs:comment xml:lang="en">Agent can receive notifications from applications</rdfs:comment>
</Notifiability>

Propriétés

Les individus sont liés par des propriétés. Il existe deux types de propriétés :

  • les object properties qui lient les individus de deux classes
  • et les datatype properties qui lient les individus de classes à des valeurs littérales.

Un exemple de syntaxe de propriété d’objet est donné ci-après pour la propriété currentAction, qui est l’action qu’est en train de réaliser l’agent.


<owl:ObjectProperty rdf:about="http://online-presence.net/opo/ns#currentAction">
    <rdfs:label xml:lang="en">currentAction</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="http://online-presence.net/opo/ns#"/>
    <rdfs:comment xml:lang="en">Current action performed by the Agent</rdfs:comment>
    <rdfs:domain rdf:resource="http://online-presence.net/opo/ns#OnlinePresence"/>
    <rdfs:range rdf:resource="http://online-presence.net/opo/ns#Action"/>
</owl:ObjectProperty>

Un exemple de syntaxe de propriété de données est donné ci-après pour la propriété inactivityPeriod, qui représente la période d’inactivité de l’agent sur un certain service.


<owl:DatatypeProperty rdf:about="http://online-presence.net/opo/ns#inactivityPeriod">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
    <rdfs:label xml:lang="en">inactivityPeriod</rdfs:label>
    <rdfs:isDefinedBy rdf:resource="http://online-presence.net/opo/ns#"/>
    <rdfs:comment xml:lang="en">Period of inactivity on a certain service</rdfs:comment>
    <rdfs:domain rdf:resource="http://online-presence.net/opo/ns#Activity"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#duration"/>
</owl:DatatypeProperty>

 

Exemple de code

Voici un exemple simple d’utilisation de l’ontologie OPO, disponible sur Wikipédia [3]. Cet exemple décrit un échange de tweets entre deux utilisateurs.

Nous pouvons tout d’abord noter l’utilisation de l’ontologie FOAF pour décrire le réseau social utilisé et les noms de comptes de nos utilisateurs.

Le premier utilisateur est “darthVader”. Il tweet un message dont les informations sont fournis dans le bout de code associé, présenté ci-dessous :

  • le compte utilisé (accountName) : “darthVader”
  • le contenu du message (content) : “Luke, I am your father.”
  • la date (startTime) : 1er mars 2008 à 18h51
  • le message (customMessage) : “darthVaderStatus”.

:darthVaderTwitterAccount rdf:type sioc:UserAccount;
foaf:accountServiceHomepage <https://www.twitter.com/>;
foaf:accountName "darthVader".

:darthVaderStatus rdf:type sioc:Post;
sioc:content "Luke, I am your father.".

:darthVaderPresence rdf:type opo:OnlinePresence;
opo:customMessage :darthVaderStatus;
opo:startTime "2008-03-01T18:51:19";
opo:declaredOn :darthVaderTwitterAccount.

Puis un autre utilisateur, “luck”, répond au message de darthVader”. “Luck” se connecte à son compte et répond grâce à un tweet dont les informations sont également visibles dans le code :

  • le compte utilisé (accountName) : “luke”
  • le destinataire (reply_of) : “darthVaderStatus”
  • le contenu du message tweeté (content) : “No… No! That’s not true! That’s impossible!”
  • la date (startTime) : 1er mars 2008 à 18h51

:lukeTwitterAccount rdf:type sioc:UserAccount;
foaf:accountServiceHomepage <https://www.twitter.com/>;
foaf:accountName "luke".

:lukeStatus rdf:type sioc:Post;
sioc:content "No... No! That's not true! That's impossible!";
sioc:reply_of :darthVaderStatus.

:lukePresence rdf:type opo:OnlinePresence;
opo:customMessage :lukeStatus;
opo:startTime "2008-03-01T18:51:49";
opo:declaredOn :lukeTwitterAccount.

 

Bibliographie

[1] Milan Stankovic, Jelena Jovanovic et Alexandre Passant. Online Presence Homage. Disponible sur : http://online-presence.net/. Consulté le 05/02/2016

[2] Milan Stankovic et Jelena Jovanovic. 09/2009. Online Presence in Social Networks. Disponible sur : https://www.w3.org/2008/09/msnws/papers/w3c-workshop-opo.pdf. Consulté le 05/02/2016

[3] LinkedDataTools.com. Tutorial 4: Introducing RDFS & OWL. Disponible sur : http://www.linkeddatatools.com/introducing-rdfs-owl. Consulté le 05/02/2016

[4] W3C. 10/02/2004. OWL Web Ontology Language Reference. Disponible sur : https://www.w3.org/TR/owl-ref/#Syntax. Consulté le 05/02/2016

[5] Wikipédia, the free Encyclopedia. Online Presence Ontology. Disponible sur : https://en.wikipedia.org/wiki/Online_Presence_Ontology. Consulté le 05/02/2016

 

Chloé BROUZES
Jue WANG
Quancheng ZHAO

Ce contenu a été publié dans Web Sémantique, avec comme mot(s)-clé(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *