0% ont trouvé ce document utile (0 vote)
238 vues8 pages

Ch2 RDF

Ce chapitre présente les standards RDF, RDFS et OWL pour la représentation des connaissances sur le web sémantique. RDF permet de décrire des ressources à l'aide de triplets sujet-prédicat-objet. RDFS définit des classes et propriétés pour structurer les descriptions RDF. OWL étend RDFS en ajoutant des capacités pour représenter des ontologies complexes telles que les relations entre classes.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
238 vues8 pages

Ch2 RDF

Ce chapitre présente les standards RDF, RDFS et OWL pour la représentation des connaissances sur le web sémantique. RDF permet de décrire des ressources à l'aide de triplets sujet-prédicat-objet. RDFS définit des classes et propriétés pour structurer les descriptions RDF. OWL étend RDFS en ajoutant des capacités pour représenter des ontologies complexes telles que les relations entre classes.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 2 : RDF, RDFS et OWL

1. Les fondements : RDF et RDF Schéma


1.1. Présentation
RDF (Resource Description Framework) est un standard permettant la mise en place de descriptions
simples. XML est à la syntaxe, ce que RDF est à la sémantique : un ensemble clair de règles permettant
des informations descriptives simples. RDF Schéma permet ensuite de combiner ces descriptions en un
seul vocabulaire. RDF est intégré dans une variété d'applications comme :
 catalogues de bibliothèques
 annuaires internationaux
 syndication et agrégation de nouvelles, de logiciels et de contenus
 collections personnelles de musiques, de photos et d'évènements
Dans chacun de ces cas d'utilisation, XML est utilisé comme une syntaxe interchangeable. Les
spécifications RDF fournissent un environnement de travail puissant pour l'échange des connaissances sur
le Web.

1.2. Philosophie de RDF


Pour ce faire, RDF procède par une description de savoirs (données tout comme métadonnées) à l'aide
d'expressions de structure fixée. En effet, la structure fondamentale de toute expression en RDF est une
collection de triplets, chacun composé d'un sujet, un prédicat et un objet. Un ensemble de tels triplets est
appelé un graphe RDF. Ceci peut être illustré par un diagramme composé de nœuds et d'arcs dirigés, dans
lequel chaque triplet est représenté par un lien nœud-arc-nœud (d'où le terme de "graphe").

prédicat
sujet Objet

Dans un graphe, chaque triplet représente l'existence d'une relation entre les choses symbolisées par les
nœuds qui sont joints.
La syntaxe de RDF s’appuie sur XML. Nous ne rentrerons pas ici dans les détails mais un exemple permet
d’illustrer ceci.
Le triplet (http://www.ec-lyon.fr, auteur, Cri) serait ainsi traduit par :
<rdf:Description about="http://www.ec-lyon.fr">
<auteur>"Cri"</auteur>
</rdf:Description>

1.3. Vocabulaire de RDF : RDF Schéma


Comme on le voit dans l'exemple précédent, la propriété « auteur » n'a de sens pour décrire la ressource «
http://www.ec-lyon.fr » que dans un contexte bien défini :

1
 le lecteur (utilisateur) est humain
 ce lecteur comprend le français
 l’information transmise par le triplet RDF (http://www.ec-lyon.fr, schema:auteur, Cri) est
suffisamment triviale pour comprendre que sa signification est « Le CRI est l’auteur de www.ec-
lyon.fr ».
Il est donc nécessaire, pour donner un sens aux informations stockées sous forme de triplets RDF, de se
donner un vocabulaire, de définir la signification de la propriété « auteur », ainsi que son type, son champ
de valeurs, etc. C'est le rôle de RDF Schéma, qui permet de créer des vocabulaires de métadonnées à
travers la définition de classes et de propriétés.
Sans entrer dans les détails de la syntaxe, présentons un exemple afin de se donner un aperçu de la
philosophie. On décrit dans cet exemple la hiérarchie des classes de cours ainsi que la propriété (property)
enseignant, celle-ci s’applique à un cours (domain) et s’applique à une personne (range) :
<rdfs:Class rdf:ID='Cours'/>

<rdfs:Class rdf:ID='CoursInfo'>
<rdfs:subClassOf rdf:resource='#Cours'/>
</rdfs:Class>

<rdfs:Class rdf:ID='CoursIA'>
<rdfs:subClassOf rdf:resource='#CoursInfo'/>
</rdfs:Class>

<rdf:Property rdf:ID='enseignant'>
<rdfs:domain rdf:resource='#Cours'/>
<rdfs:range rdf:resource='#Personne'/>
</rdf:Property>

2. OWL
Le langage OWL est basé sur la recherche effectuée dans le domaine de la logique de description. OWL
peut être vu en quelque sorte comme un format de fichier pour certaines logiques de descriptions. OWL
permet de décrire des ontologies, c'est-à-dire qu'il permet de définir des terminologies pour décrire des
domaines concrets. Une terminologie se constitue de concepts et de propriétés (aussi appelés rôles en
logiques de description). Un domaine se compose d'instance de concepts.
Web Ontology Language (OWL) doit son nom au terme « ontologie », un mot emprunté à la philosophie
qui, s'il est d'origine grecque, ne fut manifestement créé qu'au XVIIe siècle. « Discours sur l'être en tant
qu'être » selon Aristote, l'ontologie prend un tout autre sens en informatique, où le terme désigne un
ensemble structuré de savoirs dans un domaine de connaissance particulier. On distingue généralement
deux entités globales au sein d'une ontologie. La première, à objectif terminologique, définit la nature des
éléments qui composent le domaine de l'ontologie en question, un peu comme la définition d'une classe en
2
programmation orientée objet définit la nature des objets que l'on va manipuler par la suite. La seconde
partie d'une ontologie explicite les relations entre plusieurs instances de ces classes définies dans la partie
terminologique. Ainsi, au sein d'une ontologie, les concepts sont définis les uns par rapport aux autres
(modèle en graphe de l'organisation des connaissances), ce qui autorise un raisonnement et une
manipulation de ces connaissances.
« OWL constitue une avancée importante dans la représentation et l'organisation des connaissances
disponibles sur le Web. OWL réussit à établir un bon équilibre entre les besoins de l'industrie pour un
langage prenant en compte leurs cas d'utilisation du Web, et les restrictions imposées par les
connaissances et les expériences de la recherche dans le développement d'un langage d'ontologies, »
expliquent Jim Hendler et Guus Schreiber, co-animateurs du groupe de travail Web Ontology du W3C.
En pratique, le langage OWL est conçu comme une extension de Resource Description Framework (RDF)
et RDF Schéma (RDFS). Il s'appuie sur un modèle et un schéma RDF pour ajouter plus de vocabulaire
dans la description de propriétés et de classes, comme par exemple : les relations entre classes (i.e. la
séparation), la cardinalité (i.e. « un et un seul »), l'égalité, une typographie plus riche des propriétés, des
caractéristiques de propriétés (i.e., la symétrie), et des classes énumératives.
Mais OWL est plus expressif que RDF et RDFS, auxquels certains reprochent une insuffisance
d'expressivité due à la seule définition des relations entre objets par des assertions. OWL apporte aussi une
meilleure intégration, une évolution, un partage et une inférence plus facile des ontologies.
Aux concepts de classe, de ressource, et de propriétés des sous-classes, de sous-propriétés, de champs de
valeurs et de domaines d'application déjà présents dans RDFS, OWL ajoute les concepts de classes
équivalentes, de propriété équivalente, d'égalité de deux ressources, de leurs différences, du contraire, de
symétrie et de cardinalité...
OWL permet, grâce à sa sémantique formelle basée sur une fondation logique largement étudiée, de
définir des associations plus complexes des ressources ainsi que les propriétés de leurs classes respectives.
OWL définit trois sous-langages, du moins expressif au plus expressif : OWL-Lite, OWL-DL et OWL-
Full :
 OWL Lite est le sous langage de OWL le plus simple. Il est destiné aux utilisateurs qui ont besoin
d'une hiérarchie de concepts simple. OWL Lite est adapté, par exemple, aux migrations rapides
depuis d'anciens thésaurus.
 OWL DL est plus complexe que OWL Lite, permettant une expressivité bien plus importante.
OWL DL est fondé sur la logique descriptive (d'où son nom, OWL Description Logics), un
domaine de recherche étudiant la logique, et conférant donc à OWL DL son adaptation au
raisonnement automatisé. Malgré sa complexité relative face à OWL Lite, OWL-DL garantit la
complétude des raisonnements (toutes les inférences sont calculables) et leur décidabilité (leur
calcul se fait en une durée finie).
 OWL Full est la version la plus complexe d'OWL, mais également celle qui permet le plus haut
niveau d'expressivité. OWL Full est destiné aux situations où il est plus important d'avoir un haut
niveau de capacité de description, quitte à ne pas pouvoir garantir la complétude et la décidabilité
des calculs liés à l'ontologie. OWL Full offre cependant des mécanismes intéressants, comme par
exemple la possibilité d'étende le vocabulaire par défaut de OWL. Il existe entre ces trois sous
langage une dépendance de nature hiérarchique : toute ontologie OWL Lite valide est également
une ontologie OWL DL valide, et toute ontologie OWL DL valide est également une ontologie
OWL Full valide.
L'OWL est adéquat pour le Web sémantique, car il offre une syntaxe définie strictement, une sémantique
définie strictement et selon le niveau peut permettre des raisonnements automatisés sur les inférences et
conclusions des connaissances. Les langages sur lesquels il est construit sont largement interprétables,
3
beaucoup d'applications savent déjà manipuler le XML, et le RDF est un standard bien répandu. Le
partage et l'échange dans ses formats en est d'autant plus facile. Le Web sémantique peut donc profiter de
ce format pour structurer, partager et échanger les différentes connaissances qui s'y trouvent. Il y a déjà
plusieurs ontologies modélisées à l'aide d'OWL.

3. La syntaxe de OWL, application à un exemple


3.1. Introduction
Illustration de la syntaxe d’OWL appliquée à la création d’une ontologie sur le vin et la nourriture. En
effet imaginons que l’on veuille créer un « agent des vins » qui permettrait en fonction d’un repas de
recommander un vin pour accompagner un plat, de donner la façon de le servir, son prix, etc… Ce sont
des informations que l’on trouvera sur différent sites, d’où l’intérêt de créer une ontologie permettant de
caractériser le monde du vin

3.2. La structure des ontologies


Le langage OWL s’appuie sur la syntaxe XML, ainsi il est nécessaire de définir un certain nombre
d’espaces de nom, qui permettront d’utiliser des identificateurs propres à OWL et de rendre plus lisible
l’ontologie.
Exemple :
« xmlns:vin = http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine# »
dans lequel on déclare l’URI de l’ontologie que l’on est en train de construire. Cela permettra notamment
de faire appel cette ontologie dans d’autre document. Il faut en effet bien comprendre que dans la vision
de OWL, les définitions des ontologies sont destinées à être distribuées sur le Web.
C’est dans cette optique qu’il est possible de spécifier en tête du document OWL, la version de
l’ontologie, l’URI d’une version précédente, des commentaires, afin de faciliter la reprise d’ontologie
crées, leur extension, etc…
Exemple :
« <owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/> »

3.3. Les éléments de base


On va maintenant passer à la définition de l’ontologie en elle-même. Dans un premier temps on
commence par construire les classes qui caractérisent le domaine que l’on souhaite décrire à l’aide d’une
ontologie, puis les propriétés sur les instances de ces classes

3.3.1. Les classes simples et les individus


Il faut savoir que dans OWL, toute classe dérive de la classe « owl:thing », et qu’il existe également une
classe vide : owl:nothing.
Pour créer les classes racines qui nous intéressent, il suffira de déclarer son nom :
Exemple:
<owl:Class rdf:ID="Winery"/>
<owl:Class rdf:ID="ConsumableThing"/>

4
On peut ensuite créer par héritages les autres classes à l’aide de l’identificateur “rdf:subClassOf ». Dans
l’exemple suivant on définit la classe PotableLiquid (liquide potable) comme une sous classe de
« ConsumableThing »
Exemple:
<owl:Class rdf:ID="PotableLiquid">
<rdfs:subClassOf rdf:resource="#ConsumableThing" />
</owl:Class>
On peut à partir de là, donner une définition sommaire de la classe vin en la faisant hériter de la classe
liquide consommable…
Une fois que l’on a nos classes, on pourra définir les individus qui les composent, il suffit déclarer un
individu, et son type (le type stipule de quelle classe l’individu est une instance).
Exemple :
<owl:Thing rdf:ID="CentralCoastRegion" />

<owl:Thing rdf:about="#CentralCoastRegion">
<rdf:type rdf:resource="#Region"/>
</owl:Thing>
Il peut être parfois difficile de faire la distinction entre sous-classe et individu, le plus simple est de retenir
qu’une sous-classe doit représenter un sous-ensemble de la classe dont elle hérite.

3.3.2. Les propriétés simples


Une fois que l’on a défini les classes, on peut définir les propriétés sur les instances de ces classes, ce sont
elles qui vont permettre à la machine de raisonner sur des individus.
On définit une propriété en donnant son domaine (typiquement une classe) et son espace d’arrivée (qui
peut-être une autre classe, ou un type de donnée XML comme xml:Integer)
Exemple
<owl:ObjectProperty rdf:ID="madeFromGrape">
<rdfs:domain rdf:resource="#Wine"/>
<rdfs:range rdf:resource="#WineGrape"/>
</owl:ObjectProperty>
On peut également dériver des propriétés comme on dérive les classes.

3.4. Les caractéristiques de propriété


OWL permet aussi de définir les caractéristiques suivantes sur les propriétés TransitiveProperty,
SymmetricProperty, FunctionalProperty, inverseOf, InverseFunctionalProperty.
Exemple:

5
<owl:Class rdf:ID="VintageYear" />

<owl:ObjectProperty rdf:ID="hasVintageYear">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:domain rdf:resource="#Vintage" />
<rdfs:range rdf:resource="#VintageYear" />
</owl:ObjectProperty>
Dans cet exemple on stipule que la propriété “hasVintageYear” (est un millésime xxxx) a pour domaine la
classe « Vintage » (millésime), et pour image la classe « VintageYear » (année de millésime), on spécifie
de plus que c’est une propriété fonctionnelle (autrement dit elle agit comme une fonction, elle a au plus
une image)

3.5. Les restrictions de propriété


Enfin on peut également contraindre les images des propriétés à l’aide des identificateurs allValuesFrom,
someValuesFrom, hasValue, ou en spécifiant la cardinalité d’une propriété.
Par exemple on pourrait spécifier plus finement la classe vin en disant qu’elle est une sous-classe de la
classe LiquidePotable et que pour la propriété « hasmaker » les individus de la classe vin doivent avoir
une instance de la classe « Winery » (vignoble)
Exemple:
<owl:Class rdf:ID="Wine">
<rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMaker" />
<owl:someValuesFrom rdf:resource="#Winery" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>

3.6. L'application des ontologies


Comme expliqué précédemment OWL est destiné à développer des ontologies de façon distribuée, il est
donc possible de définir des classes, des individus, ou des propriétés comme étant similaires, dans le cas
où on souhaiterait combiner des ontologies comprenant des classes identiques mais avec des noms
différents.

6
3.7. Les classes complexes (OWL DL)
Il est possible de manipuler les classes crées pour en créer de nouvelles, notamment par réunion, union,
complémentaire : par exemple la classe des choses non comestibles est le complémentaire des choses
comestibles.
Il est également possible de définir les classes en énumérant leur membre, je peux par exemple définir la
« type de vin » en spécifiant que ses instances sont au choix « rouge, rosé, blanc ».
Ou encore déclarer que deux classes sont disjointes (autrement dit qu’elles n’ont pas d’instance en
commun).

4. Utilité de OWL : cas d'usage des ontologies web


La principale motivation à la création par le w3c du langage standard OWL est l'émergence du web
sémantique. Mais en fait les ontologies (et donc OWL) peuvent aider à améliorer n'importe quelle
application utilisant le web. Voici deux des cas d'utilisation typiques décrit par le W3C. Ces cas ont été
utilisés lors de la conception d’OWL pour en déterminer les fonctionnalités les plus importantes.

4.1. Cas d'un portail web


Un portail web permet à des personnes d'une communauté (par exemple des passionnés de littérature)
d'accéder simplement et de manière pratique à des informations et connaissances les concernant. Mais une
simple liste des ressources disponibles peut être insuffisante pour que les membres de la communauté
puissent accéder à toute la richesse des informations disponibles. Définir une ontologie propre au portail
en utilisant OWL peut grandement en améliorer le potentiel. Une ontologie peut offrir une terminologie
pour décrire le contenu et des axiomes pour définir de nouveaux termes à partir de ceux de l'ontologie. Par
exemple, une ontologie pourrait inclure une terminologie telle que journal, publication, personne et auteur.
Elle pourrait ensuite inclure des définitions qui déclarent des choses telles que tous les journaux sont des
publications, ou les auteurs de toutes les publications sont des personnes. En créant une ontologie
suffisamment vaste, on pourra inférer de nombreux nouveaux faits forcément vrais automatiquement. Au
final cela peut permettre de réaliser un moteur de recherche véritablement intelligent, ce qui est une des
grandes motivations à la mise au monde du web sémantique.

4.2. Les bibliothèques multimédia


Les fichiers multimédia sont un exemple typique de cas où des métadonnées sont nécessaires. Une
machine est bien en peine pour extraire automatiquement du sens d'un fichier multimédia (par exemple
comprendre les paroles d'une chanson ou lire un texte pris en photo). Comme les machines ne peuvent
interpréter facilement que le texte, l'utilisation de métadonnées semble évidente, et elle se fait d'ailleurs
déjà depuis longtemps. Malgré tout OWL peut tout de même apporter un réel plus : en effet puisque des
personnes différentes peuvent décrire ces objets non textuels de diverses façons, il importe que les
fonctions de recherche puissent dépasser une simple correspondance de mots-clés. Les ontologies
devraient permettre d'acquérir des connaissances supplémentaires sur le domaine, celle-ci pouvant servir à
améliorer la recherche des images, sons ou vidéos par exemple.
On peut définir deux types d'ontologies pour les médias : des ontologies sur le média (par exemple une
vidéo peut inclure des propriétés permettant d'identifier la longueur du clip et les changements de plan), ou
des ontologies sur le contenu (décrire le sujet de la ressource, tels que la mise en scène ou les participants).
Des informations de contenu peuvent être communes à plusieurs média (un film et un morceau de
musique ont tout deux un auteur), et les ontologies de contenu peuvent donc devenir un puissant outil de
recherche (recherche indépendante du type de média, par exemple trouver les articles sur une personne, les
photos de cette personne et ses vidéos en même temps).

7
4.3. Les outils pour manipuler OWL
Bien que OWL soit un langage très jeune, une importante communauté de développeurs s'y est rapidement
intéressée et de nombreux outils ont vite fait leur apparition. OWL est devenu rapidement le standard le
plus répandu pour la description d'ontologies.
Les outils présentés dans cette section ne sont pas les seuls outils disponibles, ni forcément les meilleurs
outils du domaine. Ils sont cités ici uniquement à titre d'exemple de la richesse logicielle qui accompagne
RDF et OWL, malgré la jeunesse relative de ces deux langages.

4.4. Editeur d'ontologies Protégé


Protégé est un éditeur d'ontologies distribué en open source par l'université en informatique médicale de
Stanford. Protégé n'est pas un outil spécialement dédié à OWL, mais un éditeur hautement extensible,
capable de manipuler des formats très divers. Le support d'OWL, comme de nombreux autres formats, est
possible dans Protégé grâce à un plugin dédié.

4.5. Framework Jena


Jena est un framework écrit en Java, dont l'objectif est de fournir un environnement facilitant le
développement d'applications dédiées au web sémantique. Jena permet de manipuler des documents RDF,
RDFS et OWL, et fournit en plus un moteur d'inférences permettant des raisonnements sur les ontologies.

4.6. OWL validator


Une fois qu'un document OWL est écrit, que ce soit à la main ou à l'aide d'un éditeur tel que Protégé, c'est
une bonne idée de s'assurer de sa validité et de la cohérence des concepts qu'il exprime. D'une manière
plus générale, le respect d'un standard ou de la définition d'un format favorise l'interopérabilité, en
permettant au développeur de s'assurer de l'intégrité des données contenues dans le document qu'il vient
d'écrire.
Tout comme le W3C propose un validateur HTML (http://validator.w3c.org/), il existe différents
validateurs d'ontologies OWL. Certains valident uniquement la syntaxe du document, tandis que d'autres
vérifient également la cohérence des informations contenues dan l'ontologie.

4.7. Validateur RDF du W3C


Le validateur RDF du W3C (http://www.w3.org/RDF/Validator/) permet de valider des documents RDF.
Il permet donc également de s'assurer qu'un document OWL respecte la syntaxe de RDF, ce qui donne
déjà une première indication de la validité d'une ontologie.

4.8. Validateur vOWLidator


Le validateur OWL vOWLidator effectue la validation de documents OWL en s'appuyant sur le
framework Jena. Publié en open source, vOWLidator est disponible comme exécutable (Java est
naturellement requis). Une version en ligne (http://owl.bbn.com/validator/) du validateur est également
disponible et, même si elle ne semble plus maintenue depuis Octobre 2003, elle fournit un moyen de
valider rapidement des ontologies en ligne.

Vous aimerez peut-être aussi