Vous êtes sur la page 1sur 56

RDF et RDFS

O.Curé [199 ]
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é [200 ]
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é [201 ]
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é [202 ]
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é [203 ]
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é [204 ]
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é [205 ]
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é [206 ]
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é [207 ]
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é [208 ]
Représentation graphique
Noeud : sujet et objet
arc : prédicat

Génération : http://www.w3.org/RDF/Validator/ O.Curé [209 ]


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é [210 ]
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é [211 ]
Liaisons entre déclarations

O.Curé [212 ]
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é [213 ]
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é [214 ]
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é [215 ]
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é [216 ]
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é [217 ]


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é [218 ]
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:resour ce=”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>
Faire référence à un objet décrit dans le
document.
</rdf:RDF>
O.Curé [219 ]
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é [220 ]
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é [221 ]
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é [222 ]
and its graph

O.Curé [223 ]
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é [224 ]
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é [225 ]
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é [226 ]
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é [227 ]
Réification – le graphe

O.Curé [228 ]
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é [229 ]
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é [230 ]
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é [231 ]
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é [232 ]
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é [233 ]
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é [234 ]
Les primitives de RDFS
 Les primitives de RDF plus 16 nouvelles
primitives (6 classes et 9 propriétés).
 Pour les classes :

O.Curé [235 ]
Les primitives de RDFS
(propriétés)

O.Curé [236 ]
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é [237 ]
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é [238 ]
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é [239 ]
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é [240 ]
Documentation
 rdfs:comment : documentation (pour
l'être humain) d'une ressource
 rdfs:label : description du nom d'une
ressource.

O.Curé [241 ]
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é [242 ]
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é [243 ]
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é [244 ]
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é [245 ]
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é [246 ]
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é [247 ]
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é [248 ]
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é [249 ]
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é [250 ]
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é [251 ]
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é [252 ]
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é [253 ]
 Ok mais comment exploiter cela pour
développer des applications ?

O.Curé [254 ]

Vous aimerez peut-être aussi