RDF et RDFS - University of Paris-Est Marne-la-Valléeperso.univ-mlv.fr/ocure/RDF.pdfO.Curé [200 ]...

Preview:

Citation preview

O.Curé [199 ]

RDF et RDFS

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).

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.

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

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

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

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

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.

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.

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>

O.Curé [209 ]

Représentation graphique

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

Noeud : sujet et objetarc : prédicat

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/

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>

O.Curé [212 ]

Liaisons entre déclarations

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>

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>

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>

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>

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>

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>ocure@univ-mlv.fr</vcard:EMAIL>

</dc:creator>

</rdf:Description>

</rdf:RDF>

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>ocure@univ-mlv.fr</vcard:EMAIL>

</rdf:Description>

</rdf:RDF>

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

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)

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)

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>

O.Curé [223 ]

and its graph

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.

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>

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

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>

O.Curé [228 ]

Réification � le graphe

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”/>

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>ocure@univ-mlv.fr</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=”ocure@univ-mlv.fr“/>

</rdf:Description>

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>

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>

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.

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#�

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 :

O.Curé [236 ]

Les primitives de RDFS (propriétés)

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.

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.

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.

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é.

O.Curé [241 ]

Documentation

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

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

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>

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>

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

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.

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/

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>

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>

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>

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>

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.

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>

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>

O.Curé [254 ]

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

Recommended