03.19.204
Données sans tables, sous forme de graphe
(Sujet, Prédicat, Objet)
Langage de requêtes standardisé par le W3C
Proche du SQL mais adapté au RDF
SELECT DISTINCT ?titre
WHERE {
?film <hasTitle> ?titre.
?film <hasCasting> ?acteur.
?acteur <hasName> "Johny Depp"
}
Recherche tous les titres de films où joue Johny Depp
Toutes les valeurs sont remplacées par des identifiants
La table est représentée dans un arbre de recherche
Elle est triée dans l'ordre lexicographique
Les réponses aux requêtes du type {Sujet ?p ?o}
sont des intervalles
SELECT ?x WHERE { ?x Predicat Objet }
L'ordre lexicographique n'optimise pas cette requête
Sujet
, Prédicat
, Objet
}
On enregistre la différence avec le triplet précédent
Un octet d'en-tête indique la taille de la représentation de cette différence
Pour optimiser d'autres requêtes simples
SELECT ?x ?y WHERE { ?x ?a ?z }
SELECT ?x WHERE { ?x ?a ?b }
En utilisant précédemment
Problème d'optimisation des requêtes avec jointures
Réalisation d'un graphe
Noeuds : triplets
Arrêtes : si une variable apparaît dans 2 requêtes
Comment ordonner ces jointures ?
Seaux | V1 | V2 | # | ||
---|---|---|---|---|---|
A | 1 | 2 | 6 | ||
E | D | 1 | 3 | 7 | |
4 | 2 | 4 | |||
C | 4 | 6 | 2 | ||
4 | 7 | 3 |
SEAUX | # | 2-disctint | 1-disctint | |
---|---|---|---|---|
Etape 1 | A | 6 | 1 | 1 |
B | 2 | 1 | 1 | |
Etape 2 | C | 5 | 2 | 1 |
D | 11 | 2 | 2 | |
Etape 3 | E | 16 | 4 | 2 |
Pour chaque seau b, calcul de :
s=s ; s=p ; s=o
p=s ; p=p ; p=o
o=s ; o=p ; o=o
Exemple :
(s=p) = # { {t triplet de b} ×t.sujet = t'.prédicat {t' triplet} }
X = ?a P O | Y = S P ?a | Z = S P ?a |
(Σ s=o) = 5000 |
(Σ o=s) = 3000 (Σ o=o) = 2000 |
(Σ o=s) = 8000 (Σ o=o) = 7000 |
sup # X.Y = 3000 | sup # Y.Z = 2000 | sup # X.Z = 5000 |
Analyse des motifs fréquents dans le graphe
Ce fait selon les prédicats.
Non évident : cas des boucles par exemple.
Classement par le nombre de noeuds utilisés.
Un motif est conservé seulement si ses sous-motifs sont des motifs fréquents.
Calcul en quelques minutes des 1000 motifs les plus fréquents.