56
O.Curé [199 ]

RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [199 ]

RDF et RDFS

Page 2: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [200 ]

Présentation de RDF (Resource Description Framework)

� Un langage pour décrire des ressources� Exploite les métadonnées pour décrire

les ressources du Web.� Propose donc une interopérabilité entre

applications qui partagent des informations (interprétables par les machines) sur le Web.

� Possède une syntaxe XML (mais ce n'est pas l'unique syntaxe).

Page 3: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [201 ]

RDF, pour faire quoi ?

� Amélioration de la découverte de ressources sur le Web.

� Etablir des catalogues de ressources (décrire le contenu et les relations).

� Développement d'agents intelligents.� Spécifier la sémantique des données

d'un document XML.

Page 4: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [202 ]

Modèle de données RDF

� Equivalent aux réseaux sémantiques [Staab 2000] : graphe orienté avec labels.

� Les noeuds représentent des concepts, des instances et les valeurs des propriétés.

� Les arcs représentent des propriétés entre concepts.

[Stabb2000] : Staab, S. Erdmann, M. Maedche, A., Decker, S. : An extensible approach for modeling ontologies ins RDF(S). ECDL 2000

Page 5: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [203 ]

Modèle de données RDF (2)

� 3 composants� Resources : des données décrites en RDF.

Elles sont décrites à l'aide d'expressions RDF et sont référencées par des URI.

� Properties (predicates) : elles définissent les attributs ou relations utilisés pour décrire les ressource.

� Statements : elles assignent une valeur à une propriété pour une ressource. C'est donc un triplet.

[Stabb2000] : Staab, S. Erdmann, M. Maedche, A., Decker, S. : An extensible approach for modeling ontologies ins RDF(S). ECDL 2000

Page 6: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [204 ]

RDF triplet

� Une déclaration RDF est un triplet constitué d'un sujet, d'une propriété et d'un objet.

� D'un sujet (resource)

� Un objet du domaine

� Pointé par un identifiant (URI) � D'une propriété (predicat � relation)

� Relation binaire sur le domaine entre un sujet et un objet.

� Également une ressource (URI).� D'un objet

Page 7: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [205 ]

Concepts clés de RDF

� Modèle les déclarations sous forme d'un graphe (orienté labellisé).

� Exploite les URI, espace de noms� Possibilité de typer les données� Proposer des litéraux� Plusieurs présentations (XML, N3, N-

triples, graphique).� Exprime des faits simples

Page 8: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [206 ]

Modélisation avec RDF

� Primitives : 7 pour les classes, 7 pour les propriétés et une pour les instances

� Classe :

� rdf:Statement : la classe des triplets contenant un sujet, une propriété et un objet.

� rdf:Property : la classe des propriétés

� rdf:Bag, rdf:Seq et rdf:Alt : les classes des collections.

� rdf:List : la classe des listes RDF.

� rdf:XMLLiteral : un type de donnée,qui permet de définir une classe pour les littéraux XML.

Page 9: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [207 ]

Modélisation avec RDF (2)

� Propriété :

� rdf:first et rdf:rest : représentent la relation entre une liste et son premier élément (le reste des éléments).

� rdf:predicate, rdf:subject et rdf:object : ils définissent les ressources propriété, le sujet et l'objet d'une déclaration (statement).

� rdf:type : pour définir la classe d'appartenance d'une ressource.

� rdf:value : pour définir la valeur d'une propriété lorsque celle-ci est une ressource structurée (un RDF statement).

� Instance

� rdf:nil : pour décrire une liste vide.

Page 10: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [208 ]

Sérialisation XML/RDF

� Code XML/RDF :<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-

syntax-ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="http://www.univ-

mlv.fr/~ocure">

<dc:title>Page de olivier Cure</dc:title>

<dc:author>Olivier Cure</dc:author>

</rdf:Description>

</rdf:RDF>

Page 11: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [209 ]

Représentation graphique

Génération : http://www.w3.org/RDF/Validator/

Noeud : sujet et objetarc : prédicat

Page 12: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [210 ]

Formats N-triples et N3

� Format N-triples<http://www.univ-mlv.fr/~ocure>

<http://purl.org/dc/elements/1.1/title> "Page de

olivier Cure" .

<http://www.univ-mlv.fr/~ocure>

<http://purl.org/dc/elements/1.1/author> "Olivier

Cure" .

� Format N3 @prefix dc: <http://purl.org/dc/elements/1.1/> .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-

syntax-ns#> .

<http://www.univ-mlv.fr/~ocure>

dc:author "Olivier Cure";

dc:title "Page de olivier Cure" .Génération : http://www.mindswap.org/2002/rdfconvert/

Page 13: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [211 ]

Liaisons entre déclarations

� Le sujet d'une déclaration peut être l'objet d'une autre déclaration.

� On obtient alors de graphes orientés labellisés.

<rdf:RDF xmlns:rsrc="http://www.univ-mlv.fr/~ocure/rsrc#"

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://www.univ-

mlv.fr/~ocure">

<dc:author>Olivier Cure</dc:author>

<dc:title>Page Web de Olivier Cure</dc:title>

<rsrc:univ rdf:resource="http://www.univ-mlv.fr"/>

</rdf:Description>

<rdf:Description rdf:about="http://www.univ-mlv.fr">

<rsrc:propb>valeur propb</rsrc:propb>

</rdf:Description>

</rdf:RDF>

Page 14: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [212 ]

Liaisons entre déclarations

Page 15: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [213 ]

On pouvait aussi écrire

<rdf:RDF xmlns:rsrc="http://www.univ-mlv.fr/~ocure/rsrc#"

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description rdf:about="http://www.univ-

mlv.fr/~ocure">

<dc:author>Olivier Cure</dc:author>

<dc:title>Page Web de Olivier Cure</dc:title>

<rsrc:univ>

<rdf:Description rdf:about="http://www.univ-mlv.fr">

<rsrc:propb>valeur propb</rsrc:propb>

</rdf:Description>

</rsrc:univ>

</rdf:Description>

</rdf:RDF>

Page 16: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [214 ]

Sérialisation XML

� Racine RDF et espace de nommage

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-

rdf-syntax-ns#">

...

</rdf:RDF>

Page 17: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [215 ]

Description d'éléments

� Les attributs

� About : pour se référer à une URI d'une ressource existante.

� Id : pour spécifier la création d'une nouvelle ressource

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-

syntax-ns#">

<rdf:Description about=”http://www.univ-mlv.fr/~ocure”>

...

</rdf:Description>

</rdf:RDF>

Page 18: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [216 ]

Propriétés et éléments

� Syntaxe : <propriété>valeur</propriété>

� Utiliser des espaces de noms pour qualifier les propriétés

� Les valeurs sont des éléments ou bien des chaînes de caractères.

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc=”http://purl.org/dc/elements/1.1/”>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure”>

<dc:creator>Olivier Curé</dc:creator>

</rdf:Description>

</rdf:RDF>

Page 19: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [217 ]

Ressources multiples

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc=”http://purl.org/dc/elements/1.1/”>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure/enseignement/IST”>

<dc:creator>Olivier Curé</dc:creator>

<dc:title>Page sur l'enseignement en Master 2 IST</dc:title>

<dc:date>2004-01-01</dc:date>

</rdf:Description>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure/enseignement/Ing2000”>

<dc:creator>Olivier Curé</dc:creator>

<dc:title>Page sur l'enseignement Ingenieurs 2000</dc:title>

<dc:date>2004-01-02</dc:date>

</rdf:Description>

</rdf:RDF>

Page 20: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [218 ]

Imbrication de ressources

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns

#"

xmlns:dc=”http://purl.org/dc/elements/1.1/”

xmlns:vcard=”http://imc.org/vCard/3.0#”>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure

/enseignement/IST”>

<dc:creator>

<vcard:FN>Olivier Curé</vcard:FN>

<vcard:EMAIL>[email protected]</vcard:EMAIL>

</dc:creator>

</rdf:Description>

</rdf:RDF>

Page 21: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [219 ]

Références entre ressources

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc=”http://purl.org/dc/elements/1.1/”

xmlns:vcard=”http://imc.org/vCard/3.0#”>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure

/enseignement/IST”>

<dc:creator rdf:resource=”http://www.univ-mlv.fr/~ocure”/>

</rdf:Description>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure”>

<vcard:FN>Olivier Curé</vcard:FN>

<vcard:EMAIL>[email protected]</vcard:EMAIL>

</rdf:Description>

</rdf:RDF>

Faire référence à un objet décrit dans le document.

Page 22: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [220 ]

Blank nodes

� "A blank node is a node that is not a URI reference or a literal... A blank node is just a unique node that can be used in one or more RDF statements" (*).

� 2 advantages:

� go for n-ary relations.

� make statements about resources that may not have URIs but that are described in terms of relationships with other resources that do have URIs.

* : Resource Description Framework : Concepts and abstract syntax (W3C)

Page 23: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [221 ]

Blank nodes (2)

� A blank node is refered in RDF/XML using and rdf:nodeId attribute.

* : Resource Description Framework : Concepts and abstract syntax (W3C)

Page 24: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [222 ]

Blank node example

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-

syntax-ns#"

xmlns:exterms="http://www.example.org/terms/">

<rdf:Description rdf:about="http://www.univ-

mlv.fr/~ocure">

<exterms:pred1 rdf:nodeID="x1"/>

</rdf:Description>

<rdf:Description rdf:about="http://www.univ-

mlv.fr/~truc">

<exterms:pred1 rdf:nodeID="x1"/>

</rdf:Description>

<rdf:Description rdf:nodeID="x1">

<exterms:pred3>val3</exterms:pred3>

<exterms:pred4>val4</exterms:pred4>

</rdf:Description>

</rdf:RDF>

Page 25: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [223 ]

and its graph

Page 26: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [224 ]

RDF containers

� 3 types :� rdf:Bag : a list with no order and allows

duplicates.

� rdf:Seq : a list with an order and allows duplicates

� rdf:Alt : a list of alternatives (choices)

� With RDF collections, RDF provides support for describing groups containing only the specified members.

Page 27: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [225 ]

rdf:Bag example

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc=”http://purl.org/dc/elements/1.1/”>

<rdf:Description about=”urn:ISBN:0-666-12345-7”>

<dc:creator>

<rdf:Bag>

<rdf:li>Pierre</rdf:li>

<rdf:li>Paul</rdf:li>

<rdf:li>Jean</rdf:li>

</rdf:Bag>

</dc:creator>

</rdf:Description>

</rdf:RDF>

Page 28: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [226 ]

Réification*

� Lorsqu'une déclaration est modelé comme la ressource d'une autre déclaration.

� Exemple : Gabriella déclare que Olivier est le créateur de la page Web �http://www.univ-mlv.fr/~ocure�.

Dans WordNet : regarding something abstract as a material thing

Page 29: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [227 ]

Réification � le code

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-

syntax-ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns:s="http://www.schemas.org/schema/">

<rdf:Description>

<rdf:subject rdf:resource="http://www.univ-

mlv.fr/~ocure"/>

<rdf:predicate

rdf:resource="http://purl.org/dc/elements/1.1/creator"/>

<rdf:object>Olivier</rdf:object>

<rdf:type

rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-

ns#Statement"/>

<s:attributedTo>Gabriella</s:attributedTo>

</rdf:Description>

</rdf:RDF>

Page 30: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [228 ]

Réification � le graphe

Page 31: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [229 ]

Syntaxe abrégée

� On peut convertir les propriétés en attributs

<rdf:Description about=”http://www.univ-mlv.fr/~ocure/enseignement/IST”>

<dc:creator>Olivier Curé</dc:creator>

<dc:title>Page sur l'enseignement en Master 2 IST</dc:title>

<dc:date>2004-01-01</dc:date>

</rdf:Description>

� devient

<rdf:Description about=”http://www.univ-mlv.fr/~ocure/enseignement/IST”

dc:creator=”Olivier Curé” dc:title=”Page sur l'enseignement en Master 2

IST” dc:date=”2004-01-01”/>

Page 32: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [230 ]

Syntaxe abrégée (2)

� La description d'un élément imbriqué peut être réécrit à l'aide d'attributs

<rdf:Description about=”http://www.univ-mlv.fr/~ocure

/enseignement/IST”>

<dc:creator>

<rdf:Description about=”http://www.univ-mlv.fr/~ocure”>

<vcard:FN>Olivier Curé</vcard:FN>

<vcard:EMAIL>[email protected]</vcard:EMAIL>

</rdf:Description>

</dc:creator>

</rdf:Description>

� devient<rdf:Description about=”http://www.univ-mlv.fr/~ocure

/enseignement/IST”>

<dc:creator rdf:resource=”http://www.univ-mlv.fr/~ocure”

vcard:FN=”Olivier Curé” vcard:EMAIL=”[email protected]“/>

</rdf:Description>

Page 33: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [231 ]

Syntaxe abrégée (3)

� La valeur d'un rdf:type devient un élément <?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description about="http://www.univ-mlv.fr/~ocure/">

<rdf:type rdf:resource="http://www.schemas.org/www/Webpage"/>

<dc:creator>Olivier Curé</dc:creator>

<dc:title>Programmation Java XML</dc:title>

<dc:date>2004-01-01</dc:date>

</rdf:Description>

</rdf:RDF>

� Devient <?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns:s="http://www.schemas.org/www/">

<s:Webpage about="http://www.univ-mlv.fr/~ocure/"

dc:creator=”Olivier Curé” dc:title=”Programmation Java XML”

dc:date=”2004-01-01”/>

</rdf:RDF>

Page 34: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [232 ]

Du RDF dans du HTML

<html>

<head>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-

ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description about=""

dc:creator="Olivier Curé"

dc:title="Programmation Java et XML"

dc:date="2004-10-10"/>

</rdf:RDF>

<title>Programmation Java et XML pour les M2 IST</title>

</head>

<body>

.

.

.

</body>

</html>

Page 35: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [233 ]

RDF Schema (RDFS)

� Un langage pour décrire des langages RDF.

� Permet de définir les types de ressources (personne, livre, etc.) ainsi que leurs propriétés (diplôme, titre, auteur, etc.).

� RDFS propose de l'information sur l'interprétation des déclarations RDF.

Page 36: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [234 ]

RDFS (2)

� Etendre RDF à la description d'ontologies.� Hiérarchies de classes et propriétés :

� SubClassOf, subPropertyOf

� range, domain sur les propriétés.

� Annotations � seeAlso, isDefinedBy, label, range, domain,

member

� Préfixe : �rdfs� et URI :�http://www.w3.org/2000/01/rdf-schema#�

Page 37: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [235 ]

Les primitives de RDFS

� Les primitives de RDF plus 16 nouvelles primitives (6 classes et 9 propriétés).

� Pour les classes :

Page 38: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [236 ]

Les primitives de RDFS (propriétés)

Page 39: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [237 ]

Classes et propriétés

� Une ressource peut-être une instance de plusieurs classes. Indication à l'aide de 'rdf:type'.� La ressource

http://www.univ-mlv.fr/~ocure est du type enseignant, personne, etc..

� Enseignant est une sous-classe de personne.

� L'approche est centrée sur les propriétés.

Page 40: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [238 ]

Les classes

� rdf:Property : une propriété est une ressource du type rdf:Property.

� rdfs:Class : Identique à la notion de classe en POO.

� rdfs:subClassOf : indique un relation d'héritage.

Page 41: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [239 ]

Les propriétés

� rdf:type : indique qu'une ressource est un membre de cette classe.

� rdfs:subPropertyOf : indique qu'une propriété est une spécialisation d'une autre propriété.

� rdfs:seeAlso : indique une propriété proposant des informations complémentaires.

Page 42: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [240 ]

Contraintes dans RDFS

� Spécifier domain et range sur les propriétés

� rdfs:range (le co-domaine)� indique la classe à laquelle la valeur d'une

propriété doit appartenir (rdf:Class).

� rdfs:domain (le domaine)� Indique la classe des membres de la

propriété.

Page 43: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [241 ]

Documentation

� rdfs:comment : documentation (pour l'être humain) d'une ressource

� rdfs:label : description du nom d'une ressource.

Page 44: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [242 ]

Exemple - RDFS

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-

ns#"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdfs:Class rdf:ID=”Personne”>

<rdfs:comment>La classe personne</rdfs:comment>

</rdfs:Class>

<rdfs:Class rdf:ID=”Vehicule”>

<rdfs:comment>La classe vehicule</rdfs:comment>

</rdfs:Class>

<rdfs:Class rdf:ID=”Voiture”>

<rdfs:comment>La classe voiture</rdfs:comment>

<rdfs:subClassOf rdf:resource=”#Vehicule”/>

</rdfs:Class>

<rdf:Property rdf:ID=”conducteur”>

<rdfs:domain rdf:resource=”#Vehicule”/>

<rdfs:range rdf:resource=”#Personne”/>

</rdf:Property>

</rdf:RDF>

Page 45: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [243 ]

Exemple RDF

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-

ns#"

xmlns="http://www.univ-mlv.fr/~ocure/schemaVehicule.rdf#”>

<Voiture rdf:ID=”vo001”>

<conducteur>

<Personne rdf:ID=”p101”/>

</conducteur>

</Voiture>

<Voiture rdf:ID=”vo002”/>

<conducteur>

<Personne rdf:ID=”p102”/>

</conducteur>

</Voiture>

</rdf:RDF>

Page 46: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [244 ]

Constats sur RDF(S)

� Puissance expressive insuffisante, il manque :� Cardinalités (min et max)

� Décomposition (disjoint, exhaustivité).

� Axiomes

� Négation

� Ne permet pas de tester la consistance de la KB

Page 47: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [245 ]

RDF/RDFS problèmes

� Pas de distinctions entre classes et instances<Espece, type, Class>

<Lion, type, Espece>

<Simba, type, Lion>

� Les propriétés peuvent avoir des propriétés

� Pas de distinctions entre constructeurs du langage et les termes de l'ontologie.

Page 48: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [246 ]

Exercice

� Ecrire le document RDFS qui va définir les concepts suivants : une personne, un étudiant, un enseignant et un cours. Et les propriétés suivantes : estEnseignant qui va retourner le nom d'un enseignant pour un cours donné, liste étudiants qui va rendre la liste des étudiants pour un cours donné, possèdeNom, valable pour une personne et un cours et le co-domaine est alors une ressource du type :�http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal�.

� Ecrire un document respectant le schéma précédent pour ce cours.

� Valider avec le validateur RDF suivant : http://www.w3.org/RDF/Validator/

Page 49: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [247 ]

Solution : RDFS (1)

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-

rdf-syntax-ns#"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdfs:Class rdf:ID="Personne"/>

<rdfs:Class rdf:ID="Etudiant">

<rdfs:subClassOf rdf:resource="Personne"/>

</rdfs:Class>

<rdfs:Class rdf:ID="Enseignant">

<rdfs:subClassOf rdf:resource="Personne"/>

</rdfs:Class>

<rdfs:Class rdf:ID="Cours"/>

<rdfs:Property rdf:ID="estEnseignant">

<rdfs:domain rdf:resource="#Cours"/>

<rdfs:range rdf:resource="#Enseignant"/>

</rdfs:Property>

Page 50: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [248 ]

Solution : RDFS (2)

<rdfs:Property rdf:ID="etudiantsCours">

<rdfs:domain rdf:resource="#Cours"/>

<rdfs:range

rdf:resource="http://www.w3.org/1999/02/22-rdf-

syntax-ns#Seq"/>

</rdfs:Property>

<rdfs:Property rdf:ID="possedeNom">

<rdfs:domain rdf:resource=”Cours”/>

<rdfs:domain rdf:resource="Personne"/>

<rdfs:range rdf:resource=

"http://www.w3.org/1999/02/22-rdf-syntax-ns#Literal"/>

</rdfs:Property>

</rdf:RDF>

Page 51: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [249 ]

Solution : RDF (1)

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-

rdf-syntax-ns#"

xmlns="http://www.univ-

mlv.fr/~ocure/etudSchema.rdf#">

<Cours rdf:ID="Cours2">

<possedeNom>Ontologie conception et

realisation

</possedeNom>

<estEnseignant>

<Enseignant rdf:ID="oc">

<possedeNom>Olivier Cure</possedeNom>

</Enseignant>

</estEnseignant>

<etudiantsCours>

Page 52: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [250 ]

Solution : RDF (2)

<rdf:Seq>

<rdf:li>

<Etudiant rdf:ID="etud01">

<possedeNom>Pierre Dupont</possedeNom>

</Etudiant>

</rdf:li>

<rdf:li>

<Etudiant rdf:ID="etud02">

<possedeNom>iAlain Durand</possedeNom>

</Etudiant>

</rdf:li>

<rdf:li>

<Etudiant rdf:ID="etud03">

<possedeNom>Marie Martin</possedeNom>

</Etudiant>

</rdf:li>

</rdf:Seq>

</etudiantsCours>

</Cours>

</rdf:RDF>

Page 53: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [251 ]

Une autre version

� Toujours avec le même schéma, on veut maintenant ajouter le cours �XML et Java� du même enseignant et avec la même classe.

Page 54: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [252 ]

Solution 2 : RDF (1)

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns="http://www.univ-mlv.fr/~ocure/etudSchema.rdf#">

<Cours rdf:ID="Cours1">

<possedeNom>XML et Java

</possedeNom>

<estEnseignant rdf:nodeID="oc"/>

<etudiantsCours rdf:nodeID="classeIST"/>

</Cours>

<Cours rdf:ID="Cours2">

<possedeNom>Ontologie conception et realisation

</possedeNom>

<estEnseignant rdf:nodeID="oc"/>

<etudiantsCours rdf:nodeID="classeIST"/>

</Cours>

<Enseignant rdf:nodeID="oc">

<possedeNom>Olivier Cure</possedeNom>

</Enseignant>

Page 55: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [253 ]

Solution 2 : RDF (2)

<rdf:Seq rdf:nodeID="classeIST">

<rdf:li>

<Etudiant rdf:ID="etud01">

<possedeNom>Pierre Dupont</possedeNom>

</Etudiant>

</rdf:li>

<rdf:li>

<Etudiant rdf:ID="etud02">

<possedeNom>Alain Durand</possedeNom>

</Etudiant>

</rdf:li>

<rdf:li>

<Etudiant rdf:ID="etud03">

<possedeNom>Marie Martin</possedeNom>

</Etudiant>

</rdf:li>

</rdf:Seq>

</rdf:RDF>

Page 56: RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ] Présentation de RDF (Resource Description Framework) Un langage pour décrire des

O.Curé [254 ]

� Ok mais comment exploiter cela pour développer des applications ?