Solutions PDF
Solutions PDF
Solutions PDF
1 XPath
0
/
1
A
2 11
B E
3 5 6 7 8 10 12 13 15
C F C F C F D C C
4 9 14
D D D
Solution : //C 2
2. Les enfants de tous les noeuds A.
Solution : /A/* 2
3. Les descendants de tous les noeuds A.
Solution : A//* 2
4. Les petits-enfants D de tous les noeuds A.
Solution : //A/*/D 2
5. Tous les noeuds C qui nont pas de fils D.
Solution : //C[not(D)] 2
6. Les petits-enfants C de tous les noeuds A qui nont pas denfant D.
Solution : //A/*/C[not(D)] 2
7. Tous les frres gauche des noeuds C.
Solution : //C/preceding-sibling::* 2
8. Le premier frre droite de chaque noeud C.
Solution : //C/preceding-sibling::*[1] 2
2 Modle RDF
Exercice page: 1
SOLUTIONS SOLUTIONS SOLUTIONS
Marie
Ville Region
nom
rdf:type marie habite rdf:type rdf:type
Personne se_situe_en
paris idf
rdf:type pierre
habite nom nom
nom
"Pierre" Paris Ile de france
Exercice page: 2
SOLUTIONS SOLUTIONS SOLUTIONS
<rdf:type rdf:resource=#Ville/>
<nom>paris</nom>
<se_situe_en rdf:resource==idf/>
</rdf:Description>
<rdf:Description rdf:ID=idf>
<rdf:type rdf:resource==Region/>
<nom>Ile de France</nom>
</rdf:Description>
ou (types sous forme de nomde balises, version compacte) :
<Personne rdf:ID=pierre>
<nom>Pierre</nom>
<habite>
<Ville rdf:ID=paris>
<se_situe_en>
<Region rdf:ID=idf>
<nom>Ile de France</nom>
</Region>
</se_situe_en>
</Ville>
</habite>
</Personne>
<Personne rdf:ID=marie>
<nom>Marie</nom>
<habite rdf:resource=paris/>
</Personne>
Expressions Turtle (plusieures solutions possibles) :
Triplets :
#pierre #habite #paris .
#pierre #nom Pierre .
#pierre rdf:type #Personne .
#marie #habite #paris .
#marie #nom Marie .
#marie rdf:type #Personne .
#paris rdf:type #Ville .
#paris #nom Paris .
#paris #se_situe_en #idf .
#idf rdf:type Region .
#idf #nom Ile de France .
Plus compacte :
#pierre #habite #paris; #nom Pierre; rdf:type #Personne .
#marie #habite #paris; #nom Marie; rdf:type #Personne .
#paris rdf:type #Ville; #nom Paris; #se_situe_en #idf .
#idf rdf:type Region; #nom Ile de France .
2
Exercice 2.2 : Est-ce que G1 est minimal ?
Solution : RDF-XML :
Exercice page: 3
SOLUTIONS SOLUTIONS SOLUTIONS
<rdf:Description rdf:id="pierre">
<habite>
<rdf:Description rdf:id="paris"/>
</habite>
</rdf:Description>
<rdf:Description rdf:id="marie">
<habite>
<ville>
<se_situe_en>
<region rdf:id="idf" nom="Ile de France"/>
</se_situe_en>
</ville>
</habite>
</rdf:Description>
Encodage en Turtle (noeud blanc implicite) :
#pierre #habite #paris .
#marie #habite [rdf:type #Ville; #se_situe_en #idf ] .
#idf rdf:type Region ;
#nom Ile de France .
o (noeud blanc explicite, ensemble de triplets)
#pierre #habite #paris .
#marie #habite _a .
_a rdf:type #Ville .
_a #se_situe_en #idf .
#idf rdf:type Region ;
#nom Ile de France .
2
Exercice 2.4 : Montrez que G1 |= G2 .
Solution : non : en ajoutant les deux arcs (marie, habite, _a) et (_a, rgion, idf) G1 (_a correspond
un noeud blanc), il existe un mapping de G1 G2 vers un sous-graphe de G1 G2 . 2
Exercice 2.6 : Est-ce quil est possible de reprsenter sous forme dun graphe RDF la proposition Marie habite la mme
ville que Pierre mais on ne sait pas laquelle (sans ajouter des nouveaux types de proprits) ?
Solution : Non : Dans le langage RDF-XML, un noeud blanc peut seulement tre le sujet de plusieurs proprits et il
nest pas possible dexprimer des jointures o un noeud blanc est lobjet de plusieurs proprits.
Exemple : {(marie, habite, V ), (pierre, habite, V )} o V est un noeud blanc ne peut pas tre exprim en RDF. Par
contre, il est possible de dfinir un motif de graphe (requte) SPARQL qui vrifie si Marie habite la mme ville que
Pierre : #marie #habite V . #pierre #habite V . 2
Exercice page: 4
SOLUTIONS SOLUTIONS SOLUTIONS
3 SPARQL
<rdfs:Class rdf:ID="Cours"/>
<rdfs:Class rdf:ID="Etudiant"/>
<rdfs:Class rdf:ID="Enseignant"/>
<rdf:Property rdf:ID="enseigne_par">
<rdfs:domain rdf:resource="#Cours"/>
<rdfs:range rdf:resource="#Enseignant"/>
</rdf:Property>
<rdf:Property rdf:ID="inscrit_dans">
<rdfs:range rdf:resource="#Cours"/>
<rdfs:domain rdf:resource="#Etudiant"/>
</rdf:Property>
<rdf:Property rdf:ID="nom">
<rdfs:domain rdf:resource="#Cours"/>
<rdfs:domain rdf:resource="#Etudiant"/>
<rdfs:domain rdf:resource="#Enseignant"/>
<rdfs:range rdf:resource="rdfs:Literal"/>
</rdf:Property>
<rdf:Property rdf:ID="prerequis">
<rdfs:domain rdf:resource="#Cours"/>
<rdfs:range rdf:resource="#Cours"/>
</rdf:Property>
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select ?N
where { ?C :nom ?X ; :enseigne_par ?P .
?P :nom ?N
filter (?X = "BDIA-M2")}
ou
prefix : <http://www.owl-ontologies.com/bdia#>
select ?N
where { [ :nom ?X ; :enseigne_par [ :nom ?N] ]
filter (?X = "BDIA")}
2
2. Les prrequis (noms de cours) demands pour le cours BDIA-M2.
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select ?N
where { [ :nom ?X ; :prerequis [ :nom ?N] ]
filter (?X = "BDIA-M2")}
2
3. Les classes avec la proprit nom.
Solution :
Exercice page: 5
SOLUTIONS SOLUTIONS SOLUTIONS
prefix : <http://www.owl-ontologies.com/bdia#>
select ?C
where { :nom rdfs:domain ?C }
2
4. Les instances de classes avec la proprit nom.
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select ?X
where { ?X :nom [] }
2
5. Les cours avec leurs prrequis (si prsents).
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select ?N
where { ?A :nom ?X; rdf:type :Cours . OPTIONAL { ?A :prerequis [ :nom ?N] }}
2
6. Les noms des enseignants qui enseignent deux cours diffrents.
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select distinct ?N
where {?B :enseigne_par ?A .
?C :enseigne_par ?A .
?A :nom ?N .
filter (?B != ?C) }
2
7. Les noms des tudiants qui suivent deux cours diffrents du mme enseignant.
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select distinct ?N
where { ?B :enseigne_par ?A .
?C :enseigne_par ?A .
?E :inscrit_dans ?B ; :inscrit_dans ?C .
?E :nom ?N
filter (?B != ?C) }
2
8. Les noms des cours sans prerquis (ngation).
Solution :
prefix : <http://www.owl-ontologies.com/bdia#>
select distinct ?N
where { ?A :nom ?N ; rdf:type :Cours .
optional { ?A :prerequis ?B }
filter (!bound(?B))
2
Exercice 3.2 : On suppose que tous les triplets (schma RDFS et graphe RDF) sont stockes dans une table relationnelle
RDF (S, P, O). Traduisez les requtes prcdentes en SQL.
Solution :
Exercice page: 6
SOLUTIONS SOLUTIONS SOLUTIONS
Smantique SPARQL
Soit donn le graphe RDF suivant :
D ={ (B1, name, paul), (B1, phone, 777 3426), (1)
(B2, name, john), (B2, email, [email protected]), (2)
(B3, name, george), (B3, webP age, www.george.edu), (3)
(B4, name, ringo), (B4, email, [email protected]), (4)
(B4, webP age, www.starr.edu), (B4, phone, 888 4537)} (5)
Exercice page: 7
SOLUTIONS SOLUTIONS SOLUTIONS
Solution : JP 1KD = 1 (?A?E?W ) = (B2, [email protected], N U LL), 2 (?A?E?W ) = (B4, [email protected], www.starr.edu)
2
2. P 2 = (((?A, name, ?N )OP T (?A, email, ?E))OP T (?A, webP age, ?W )).
Exercice page: 8
SOLUTIONS SOLUTIONS SOLUTIONS
C u R.D
Solution :
{x | C(x) y(R(x, y) D(y))}
ou
{x | C(x) y(R(x, y) D(y))}
2
C u R.D
Solution :
{x | C(x) y(R(x, y) E(y))}
ou
{x | C(x) y(R(x, y) E(y))}
2
C u R.E
Solution :
1. Normalisation (pousser la ngation) :
(a) x(C(x) y(R(x, y) D(y)) z(R(x, z) E(z)))
(b) x(C(x) y(R(x, y) D(y)) z(R(x, z) E(z)))
2. Mthode par tableau :
1 x(C(x) y(R(x, y) D(y)) z(R(x, z) E(z)))
2 (exists) C(a) y(R(a, y) D(y)) z(R(a, z) E(z))
3 (conj) C(a)
y(R(a, y) D(y))
z(R(a, z) E(z))
4 (exists,conj) R(a, b)
D(b)
5 (forall) R(a, b) E(b)
R(a, b) E(b)
6 (disj)
CLASH TERMINAISON
Il existe un modle M avec I(C) = {a}, I(R) = {(a, b)}, I(D) = {b}, I(E) = . 2
Exercice page: 9
SOLUTIONS SOLUTIONS SOLUTIONS
<owl:Class rdf:ID="Activite"/>
<owl:Class rdf:ID="ActiviteSportive">
<rdfs:subClassOf rdf:resource="#Activite"/>
</owl:Class>
<owl:Class rdf:ID="SejourActif">
<owl:equivalentClass>
<owl:Restriction>
<owl:someValuesFrom rdf:resource="#Activite"/>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="activites"/>
</owl:onProperty>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
<owl:Class rdf:ID="SejourSportif">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="#activites"/>
<owl:allValuesFrom rdf:resource="#ActiviteSportive"/>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
Exercice 4.4 : Reprsentez cette ontologie sous forme dexpressions dune logique de description (TBox).
Solution :
ActiviteSportive v Activite
SejourSportif activites.ActiviteSportive
SejourActif activites.Activite
2
Exercice 4.5 : Montrez formellement que SejourSportif nest pas un sous-concept de SejourActif .
Solution : Il suffit de montrer quil existe un modle pour SejourSportif u SejourActif dans la terminologie pr-
cdente (SejourSportif u SejourActif est une dfinition cohrente).
Preuve par tableau :
On remplace tous les concepts par leur dfinition (unfolding)
On transforme le concept en formule logique (introduire les variables)
Normalisation : On pousse les ngations vers les concepts et les rles en utilisant les quivalences logiques : par
exemple, x(F (x)) devient x(F (x)), ...
On applique les oprations de rcriture dfinies pour les tableaux : limination des quantificateurs et des connecteurs
logiques
A la fin : on cherche les conflits (CLASH) et des modles possibles
Exercice page: 10
SOLUTIONS SOLUTIONS SOLUTIONS
Remplacer y et z par Y (Y est une variable qui peut tre remplace par toutes les instances du domaine
dinterprtation ) :
(activites(t, Y ) ActiviteSportive(Y )) (activites(t, Y ) Activite(Y ))
Rgle de conjonction :
activites(t, Y ) ActiviteSportive(Y )
activites(t, Y ) Activite(Y )
Solution : On essaie de prouver V acheumange.M outon v (il nexiste pas de modle pour V acheumange.M outon
dans la terminologie prcdente) :
Unfolding : par la terminologie on sait que
V egetarien
z }| {
la vache est un animal vgtarien : Animal u mange.Animal
le mouton est un animal : Animal
On tend le concept initial : V ache u Animal u mange.Animal u mange.(M outon u Animal)
reprsentation avec des variables : x(V ache(x)Animal(x)y(mange(x, y) Animal(y))z(mange(x, z)
M outon(z) Animal(z)))
limination des quantificateurs (Y peut tre remplac par nimporte quelle instance du domaine dinterprtation) :
p1 p2 p3 p4
z }| { z }| { z }| { z }| {
V ache(v) Animal(v) (mange(v, Y ) Animal(Y )) mange(v, Y ) M outon(Y ) Animal(Y )
Exercice page: 11
SOLUTIONS SOLUTIONS SOLUTIONS
Solution : On essaye de montrer quil existe un modle pour Animalu(mange.Animal) dans la terminologie :
Il nest pas possible dtendre le concepts avec des connaissances de la terminologie.
Pousser les ngations : Animal u mange.Animal
Introduction des variables : Animal(x) mange(x, y) Animal(y)
Modles : toutes les interprtations avec au moins deux animaux x et y ou x mange y : I(Animal) = {x, y}, I(mange) =
{(x, y)}.
Remarque : I(Animal) = {x}, I(mange) = {(x, x)} est aussi un modle.
2
3. Les cochons peuvent manger du Mouton.
Solution : On essaye de montrer quil existe un modle pour Cochon u mange.M outon :
Extension avec la terminoloie et introduction de variables : x(Cochon(x) Animal(x) y(mange(x, y)
M outon(y) Animal(y))
Elimination des variables : Cochon(c) Animal(c) mange(v, m) M outon(m) Animal(m)
Modle possible : AnimalI = {c, m}, CochonI = {c}; M outonI = {m}, mangeI = {(c, m)}
2
Exercice page: 12