SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Plan
Chapitre 5
SPARQL
I – Introduction
II – Définitions et Concepts
III – Point d’accès
IV – Requête
Chapitre 5 SPARQL
1 4 GI - 2018/2019
I - Introduction
 SPARQL est un langage de requête sur des données RDF.
 SPARQL signifie Simple Protocol And RDF Query Language
 SPARQL permet de :
 rechercher et Extraire l'information sous forme d‘IRI, de nœuds vides ou
de littéraux.
 Construire de nouveaux graphes RDF à partir de l'information obtenue
 Transformer les données RDF d'un vocabulaire à un autre,
Chapitre 5 SPARQL
2 4 GI - 2018/2019
I - Introduction
 SPARQL permet 4 types de requêtes :
 SELECT retourne les résultats de la requête sous forme de tableau.
 CONSTRUCT retourne les résultats sous forme d'un nouveau graphe RDF.
 ASK retourne un résultat booléen d'une assertion donnée.
 DESCRIBE retourne un graphe RDF décrivant les résultats obtenus.
 La structure d'une requête SPARQL est similaire à celle du langage SQL
 Le principe de fonctionnement de SPARQL consiste à rechercher des
sous-graphes dans un graphe (graph matching)
 le langage SPARQL est basé sur la notion de graphes et de triplets et les
requêtes sont décrites par des modèles (patterns) et des variables.
Chapitre 5 SPARQL
3 4 GI - 2018/2019
II – Définitions et Concepts
4 GI - 2018/2019
Chapitre 5 SPARQL
4
Graphe RDF
@prefix ex: <http://example.org/stuff/1.0/>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix schema: <http://schema.org/>.
@prefix dbr: <http://dbpedia.org/resource/> .
@prefix dcterms: <http://purl.org/dc/terms/>.
http://data.europeana.eu/item/04802/243FA8
618938F4117025F17A8B813C5F9AA4D619
dcterms:subject
foaf:Person
rdf:type
ex:Alice
foaf:knows
ex:Bob
https://www.wikidata
.org/wiki/Q12418
foaf:tpic_interest
"14 july 1990"^^xsd:date
schema:birthdate
dbr:leonardo_da_Vinci
dcterms:creator
"Mona Lisa"
dcterms:title
"the video 'La Joconde
à Washington"
dcterms:title
II – Définitions et Concepts
4 GI - 2018/2019
Chapitre 5 SPARQL
5
 Un triplet RDF en syntaxeTurtle
<https://www.wikidata.org/wiki/Q12418> dcterms:title "Mona Lisa".
 Un modèle de triple SPARQL, avec une seule variable
<https://www.wikidata.org/wiki/Q12418> dcterms:title ?title .
 Toutes les parties d'un modèle de triple peuvent être des variables
?subject dcterms:title ?title .
II – Définitions et Concepts
4 GI - 2018/2019
Chapitre 5 SPARQL
6
 Correspondance entre modèle de triplet et graphe RDF
<https://www.wikidata.org/wiki/Q12418> dcterms:title ?title .
http://data.europeana.eu/item/04802/243FA8
618938F4117025F17A8B813C5F9AA4D619
dcterms:subject
foaf:Person
rdf:type
ex:Alice
foaf:knows
ex:Bob
https://www.wikidata
.org/wiki/Q12418
foaf:tpic_interest
"14 july 1990"^^xsd:date
schema:birthdate
dbr:leonardo_da_Vinci
dcterms:creator
"Mona Lisa"
dcterms:title
"the video 'La Joconde
à Washington"
dcterms:title
II – Définitions et Concepts
4 GI - 2018/2019
Chapitre 5 SPARQL
7
 Correspondance entre modèle de triplet et graphe RDF
?ressource dcterms:title ?title .
http://data.europeana.eu/item/04802/243FA8
618938F4117025F17A8B813C5F9AA4D619
dcterms:subject
foaf:Person
rdf:type
ex:Alice
foaf:knows
ex:Bob
https://www.wikidata
.org/wiki/Q12418
foaf:tpic_interest
"14 july 1990"^^xsd:date
schema:birthdate
dbr:leonardo_da_Vinci
dcterms:creator
"Mona Lisa"
dcterms:title
"the video 'La Joconde
à Washington"
dcterms:title
II – Définitions et Concepts
4 GI - 2018/2019
Chapitre 5 SPARQL
8
 Combiner plusieurs modèles de triples permet de créer un modèle
graphique
?subject foaf:tpic_interest ?interset .
?subject rdf:type foaf:Person .
 La syntaxe SPARQL est basée surTurtle, ce qui permet des abréviations
par exemple : Listes des couple objets et prédicats:
?subject foaf:tpic_interest ?interset ;
rdf:type foaf:Person .
II – Définitions et Concepts
4 GI - 2018/2019
Chapitre 5 SPARQL
9
 Les modèles graphiques permettent le parcours d’un graphique RDF
?someone foaf:tpic_interest ?ressource.
?ressource dcterms:creator dbr:leonardo_da_Vinci .
?ressource dcterms:title "Mona Lisa" .
II – Définitions et Concepts
Structure générale d’une requête SPARQL
Chapitre 5 SPARQL
10 4 GI - 2018/2019
BASE <http://example.com/>
PREFIX peo: <http://example.com/.../>
...
FROM
...
SELECT
...
WHERE {
...
}
ORDER BY
LIMIT
...
Déclarations des préfixes (Prefix declarations) :
permettant d’abréger les URI.
Définitions des ensemble de données (Dataset
definition) : indiquant le(s) graphe(s) RDF à interroger
Clause de résultat (result clause) : identifiant les
informations à renvoyer à partir de la requête.
Modèle de requête (query pattern): spécifiant les
éléments à interroger dans les ensembles de données
spécifiées.
Modificateurs de requête (Query modifiers):
permettant de découper, ordonner et réorganiser les
résultats de la requête.
III – Point d’accès
Point d’accès SPARQL
 Les requêtes SPARQL sont exécutées sur des ensemble de données
RDF (RDF Dataset) constituées de graphe RDF.
 Un point d ’accès SPARQL (SPARQL endpoint) accepte les requêtes et
renvoie les résultats via HTTP.
 Les résultats des requêtes SPARQL peuvent être renvoyés dans
différents formats:
 HTML
 XML
 RDF/XML
 JSON
 …
Chapitre 5 SPARQL
11 4 GI - 2018/2019
III – Point d’accès
 Parmi les points d ’accès SPARQL permettant d’exécuter des requêtes :
 SPARQLer : http://sparql.org/sparql.html
 OpenLink'sVirtuoso : http://demo.openlinksw.com/sparql
 Redland's Rasqal : http://librdf.org/query/
 Dbpedia : http://dbpedia.org/sparql
 ...
 Liste des points d ’accès (services) SPARQL :
http://esw.w3.org/topic/SparqlEndpoints
 Les exemples de ce cours porteront sur le cinéma et sont exécutées sur le point
d’accès dbpedia : http://dbpedia.org/sparql.
 Les requêtes SPARQL seront appliqué à la base de connaissance DBpedia.org
Chapitre 5 SPARQL
12 4 GI - 2018/2019
III – Point d’accès
 Dbpedia : http://dbpedia.org/sparql
Chapitre 5 SPARQL
13 4 GI - 2018/2019
IV – Requête
Variable et Modèle
variables et modèles de triple
 Les variables SPARQL commencent par un '?' et peuvent
correspondre à n'importe quel nœud (ressource ou littéral) de
l'ensemble des données RDF.
?x, ?person, ?name, ...
 le caractère '?' ne fait pas partie du nom de la variable
Exemple d’une requête SPARQL simple
Chapitre 5 SPARQL
14 4 GI - 2018/2019
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT ?resource ?etiquette
WHERE {
?resource rdfs:label ?etiquette
}
IV – Requête
PREFIX
Le PREFIX
 Grâce à PREFIX il est possible d’utiliser des URIs relatifs.
SELECT ?film ?titre
WHERE {
?film <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?titre.
}
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?film ?titre
WHERE {
?film rdf:type ?titre.
}
Chapitre 5 SPARQL
15 4 GI - 2018/2019
IV – Requête
SELECT
La clause SELECT
 La clause SELECT identifie les variables à faire apparaître dans la
réponse de la requête.
 les variables qui suivent la clause SELECT représentent les colonnes du
tableau où les réponses sont affichées
Chapitre 5 SPARQL
16 4 GI - 2018/2019
IV – Requête
WHERE
 le Raccourci *
SELECT * sélectionne toutes les variables mentionnées dans la requête
La clause WHERE
 La clause WHERE définit des conditions qui doivent être respectées.
 La plupart des requêtes SPARQL contiennent un modèle de graphe
composé d’un ensemble de modèles de triplets
Chapitre 5 SPARQL
17 4 GI - 2018/2019
SELECT *
WHERE {
?film rdf:type ?titre.
}
SELECT ?film ?titre
WHERE {
?film rdf:type ?titre.
}
IV – Requête
WHERE
4 GI - 2018/2019
Chapitre 5 SPARQL
18
Plusieurs modèles triples dans WHERE
 Ainsi, nous pouvons utiliser plusieurs modèles de triples pour extraire
plusieurs propriétés concernant une ressource particulière.
 Chaque triplet devient alors une condition pour la requête.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?film ?titre
WHERE {
?film a <http://dbpedia.org/ontology/Film> .
?film rdfs:label ?titre
}
 Avec le premier triplet: ?film a <http://dbpedia.org/ontology/Film> .
nous recherchons toutes les IRIs des films.
 Avec le deuxième triplet: ?film rdfs:label ?titre
nous recherchons les titres des films.
Et
IV – Requête
LIMIT
4 GI - 2018/2019
Chapitre 5 SPARQL
19
Le modificateur LIMIT
 LIMIT n signifie qu’on donne au maximum n résultats
Le modificateur OFFSET
 OFFSET permet de n'afficher le résultat qu’à partir de la ligne indiquée.
IV – Requête
WHERE - DISTINCT
4 GI - 2018/2019
Chapitre 5 SPARQL
20
Le modificateur DISTINCT
 DISTINCT ?x ?y permet d'enlever les doublons
IV – Requête
WHERE - FILTER
4 GI - 2018/2019
Chapitre 5 SPARQL
21
La fonctions FILTER
 FILTER( contrainte) restreindre l'ensemble des résultats selon la
contrainte construite avec des opérateurs et/ou des fonctions
 Opérateurs
 logiques : !, &&, ||
 mathématiques : +, -, *, /
 de comparaison : =, ! =, <, >
 Fonctions prédénies
 tests : isURI, isBlank, isLiteral
 accesseurs : str, lang, datatype
 autre : sameTerm, langMatches, regex
IV – Requête
WHERE - FILTER
4 GI - 2018/2019
Chapitre 5 SPARQL
22
 tests :
 isURI(term) : renvoie vrai si term est un URI
 isBlank(term) : renvoie vrai si term est un noeud anonyme
 isLiteral(term) : renvoie vrai si term est un littéral
 accesseurs :
 str(term) : renvoie la chaîne de caractères correspondant à term
 lang(lit) : renvoie le code langue de lit
 datatype(lit) : renvoie l‘IRI du type de lit
 autre
 sameTerm(term1, term2) : renvoie vrai si les termes sont égaux
 langMatches(lang, rang) : renvoie vrai si le langage lang appartient
au domaine rang
 regex(text, motif [,option]) : renvoie vrai si l'expression donnée
par motif correspond à la chaîne text selon l'option spéciée
IV – Requête
WHERE - FILTER
4 GI - 2018/2019
Chapitre 5 SPARQL
23
 Quelque expression régulier
Special characters Meaning
* 0 or more
+ 1 or more
? 0 or 1
{3} Exactly 3
{3,} 3 or more
Special characters Meaning
^ Start of string, or start of line in multi-line pattern
A Start of string
< Start of word
> End of word
Special characters Meaning
(a|b) a or b
[abc] Range (a or b or c)
[^abc] Not (a or b or c)
[a-q] Lower case letter from a to q
[0-7] Digit from 0 to 7
IV – Requête
WHERE - FILTER
4 GI - 2018/2019
Chapitre 5 SPARQL
24
 Exemple : LangMatches(...)
Dans cet exemple, nous affichons les résumés uniquement en français.
IV – Requête
WHERE - FILTER
4 GI - 2018/2019
Chapitre 5 SPARQL
25
Exemple : regex(text, motif [,options])
 SPARQL fournit une opération pour tester les chaînes, basée sur des
expressions régulières.
 Dans cet exemple on affiche les titres des films qui commencent par "Le"
IV – Requête
WHERE - OPTIONAL
4 GI - 2018/2019
Chapitre 5 SPARQL
26
La fonction OPTIONAL
 Déclare un motif optionnel. C’est une partie du modèle de graphe qui
n’est pas obligatoire.
 Dans l’exemple suivant, on affiche tous les films, qu’ils aient la propriété
dbpprop:released ou non :
IV – Requête
FROM
4 GI - 2018/2019
Chapitre 5 SPARQL
27
La clause FROM
 Le mot-clé FROM permet de spécifier le(s) graphique(s) cible de la
requête.
IV – Requête
ORDER BY
4 GI - 2018/2019
Chapitre 5 SPARQL
28
La clause ORDER BY
 La clause ORDER BY établit l'ordre d'une séquence de solutions. Elle
permet de classer les résultats selon un ordre :
 croissant ORDER BY DESC(?variable)
 ou décroissant ORDER BY ASC(?vriable)
IV – Requête
GROUP BY & HAVING
4 GI - 2018/2019
Chapitre 5 SPARQL
29
La clause GROUP BY
 La clause GROUP BY sert à agréger certaines valeurs avec l’une des fonctions
d’agrégations : Count, Sum, Avg, Min, Max, ...
La clause HAVING
 Permet d’appliquer un filtre sur des valeurs groupées
 Afficher 10 résultats correspondant aux acteurs ayant fait au plus que 100 films.
IV – Requête
CONSTRUCT & ASK
4 GI - 2018/2019
Chapitre 5 SPARQL
30
 De plus, une requête SPARQL peut avoir d'autres finalités que de fournir
un ensemble de correspondances aux variables spécifiées dans le SELECT:
 CONSTRUCT
Permet de construire un nouveau graphe RDF.
 ASK.
Permet de demander si une requête dispose d'au moins une solution
Exercices
4 GI - 2018/2019
Chapitre 5 SPARQL
31
SPARQL endpoint : http://dbpedia.org/sparql
1. Retourne la liste des acteurs du film "A Kid in King Arthur’s Court"
2. Compte le nombre d’acteurs dans le film "A Kid in King Arthur’s Court"
3. Ecrire une requêtes SPARQL pour avoir le noms et les dates de
naissances des personnes nées à Paris et triés par ordre alphabétique
4. Ecrire une requêtes SPARQL pour avoir la liste des pays (“landlocked” c-
à-d sans accès à la mer) avec une population de plus de 15M d’habitants
5. Ecrire une requêtes SPARQL pour demander une question, est ce que
l’Amazon est plus long que le Nil
4 GI - 2018/2019
Chapitre 5 SPARQL
32
1. Retourne la liste des acteurs du film A Kid in King Arthur’s Court
SELECT DISTINCT ?nom
WHERE {
?movie dc:title "A Kid in King Arthur’s Court".
?movie movie:actor ?actors .
?actors movie:actor_name ?nom .
}
4 GI - 2018/2019
Chapitre 5 SPARQL
33
2. Compte le nombre d’acteurs dans le film A Kid in King Arthur’s Court
SELECT (count(*))
WHERE {
?movie dc:title “A Kid in King Arthur’s Court”.
?movie movie:actor ?actors .
}
Exercices
4 GI - 2018/2019
Chapitre 5 SPARQL
34
3. Ecrire une Requêtes SPARQL pour avoir le noms et les dates de
naissances des personnes nées à Paris et triés par ordre alphabétique :
Exercice 1
4 GI - 2018/2019
Chapitre 5 SPARQL
35
4. Ecrire une Requêtes SPARQL pour avoir la liste des pays (“landlocked” c-
à-d sans accès à la mer) avec une population de plus de 15M d’habitants
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?country_name ?population
WHERE { ?country a type:LandlockedCountries ; rdfs:label
?country_name ; prop:populationEstimate ?population .
FILTER (?population > 15000000) . }
Exercice 1
4 GI - 2018/2019
Chapitre 5 SPARQL
36
5. Ecrire une Requêtes SPARQL pour Demander une question, est ce que
l’Amazon est plus long que le Nil
PREFIX prop: <http://dbpedia.org/property/>
ASK
{
<http://dbpedia.org/resource/Amazon_River>
prop:length ?amazon .
<http://dbpedia.org/resource/Nile>
prop:length ?nile .
FILTER(?amazon > ?nile) .
}
Bibliographie
4 GI - 2018/2019
Chapitre 5 SPARQL
37
 https://www.w3.org/TR/rdf-sparql-query/
 https://jena.apache.org/tutorials/sparql.html
 http://www.thefigtrees.net/lee/sw/sparql-faq
 https://en.wikibooks.org/wiki/SPARQL/Expressions_and_Functions#REGEX
 http://fr.dbpedia.org/sparqlTuto/tutoSparql.html

Contenu connexe

Similaire à ___WS_Chap-5__SPARQL.pdf

ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...SemWebPro
 
Sudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesSudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesY. Nicolas
 
Interroger efficacement des bases de données relationnelles avec sparql et ontop
Interroger efficacement des bases de données relationnelles avec sparql et ontopInterroger efficacement des bases de données relationnelles avec sparql et ontop
Interroger efficacement des bases de données relationnelles avec sparql et ontopSemWebPro
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Apache SPARK ML : principes, concepts et mise en œuvre
Apache SPARK  ML : principes, concepts et  mise en œuvre Apache SPARK  ML : principes, concepts et  mise en œuvre
Apache SPARK ML : principes, concepts et mise en œuvre MICHRAFY MUSTAFA
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Carrefour IST : Identifiants et référentiels dans HAL
Carrefour IST : Identifiants et référentiels dans HALCarrefour IST : Identifiants et référentiels dans HAL
Carrefour IST : Identifiants et référentiels dans HALOAccsd
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
Enrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD Workshop
Enrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD WorkshopEnrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD Workshop
Enrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD WorkshopBenjamin MOREAU
 
Informatique Décisionnelle décisionnelle
Informatique Décisionnelle décisionnelleInformatique Décisionnelle décisionnelle
Informatique Décisionnelle décisionnelleHajer Trabelsi
 
Langage RDF/RDFs
Langage RDF/RDFsLangage RDF/RDFs
Langage RDF/RDFsRached Krim
 
Découverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HALDécouverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HALGautier Poupeau
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 

Similaire à ___WS_Chap-5__SPARQL.pdf (20)

SPARQL_1.1
SPARQL_1.1SPARQL_1.1
SPARQL_1.1
 
Opendata
OpendataOpendata
Opendata
 
ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...ÉVolution d'un système de publication de données techniques automobiles, modé...
ÉVolution d'un système de publication de données techniques automobiles, modé...
 
Sudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesSudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de données
 
5 sw
5 sw5 sw
5 sw
 
___WS_Chap-4__RDFS.pdf
___WS_Chap-4__RDFS.pdf___WS_Chap-4__RDFS.pdf
___WS_Chap-4__RDFS.pdf
 
Interroger efficacement des bases de données relationnelles avec sparql et ontop
Interroger efficacement des bases de données relationnelles avec sparql et ontopInterroger efficacement des bases de données relationnelles avec sparql et ontop
Interroger efficacement des bases de données relationnelles avec sparql et ontop
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Apache SPARK ML : principes, concepts et mise en œuvre
Apache SPARK  ML : principes, concepts et  mise en œuvre Apache SPARK  ML : principes, concepts et  mise en œuvre
Apache SPARK ML : principes, concepts et mise en œuvre
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Carrefour IST : Identifiants et référentiels dans HAL
Carrefour IST : Identifiants et référentiels dans HALCarrefour IST : Identifiants et référentiels dans HAL
Carrefour IST : Identifiants et référentiels dans HAL
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Enrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD Workshop
Enrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD WorkshopEnrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD Workshop
Enrichissement de Données RDF Integrées à la Volée - EGC2019 - AWD Workshop
 
Informatique Décisionnelle décisionnelle
Informatique Décisionnelle décisionnelleInformatique Décisionnelle décisionnelle
Informatique Décisionnelle décisionnelle
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Langage RDF/RDFs
Langage RDF/RDFsLangage RDF/RDFs
Langage RDF/RDFs
 
Découverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HALDécouverte du SPARQL endpoint de HAL
Découverte du SPARQL endpoint de HAL
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 

Plus de OuailChoukhairi

Plus de OuailChoukhairi (8)

the-blockchain-innovation-hub.pptx
the-blockchain-innovation-hub.pptxthe-blockchain-innovation-hub.pptx
the-blockchain-innovation-hub.pptx
 
BI_Part1_2020.pdf
BI_Part1_2020.pdfBI_Part1_2020.pdf
BI_Part1_2020.pdf
 
_3_expo_MM.pdf
_3_expo_MM.pdf_3_expo_MM.pdf
_3_expo_MM.pdf
 
Data Mining (Partie 3).pdf
Data Mining (Partie 3).pdfData Mining (Partie 3).pdf
Data Mining (Partie 3).pdf
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Data Mining (Partie 1).pdf
Data Mining (Partie 1).pdfData Mining (Partie 1).pdf
Data Mining (Partie 1).pdf
 
_2_expo_DW_DM.pdf
_2_expo_DW_DM.pdf_2_expo_DW_DM.pdf
_2_expo_DW_DM.pdf
 
_1_expo_SIAD.pdf
_1_expo_SIAD.pdf_1_expo_SIAD.pdf
_1_expo_SIAD.pdf
 

___WS_Chap-5__SPARQL.pdf

  • 1. Plan Chapitre 5 SPARQL I – Introduction II – Définitions et Concepts III – Point d’accès IV – Requête Chapitre 5 SPARQL 1 4 GI - 2018/2019
  • 2. I - Introduction  SPARQL est un langage de requête sur des données RDF.  SPARQL signifie Simple Protocol And RDF Query Language  SPARQL permet de :  rechercher et Extraire l'information sous forme d‘IRI, de nœuds vides ou de littéraux.  Construire de nouveaux graphes RDF à partir de l'information obtenue  Transformer les données RDF d'un vocabulaire à un autre, Chapitre 5 SPARQL 2 4 GI - 2018/2019
  • 3. I - Introduction  SPARQL permet 4 types de requêtes :  SELECT retourne les résultats de la requête sous forme de tableau.  CONSTRUCT retourne les résultats sous forme d'un nouveau graphe RDF.  ASK retourne un résultat booléen d'une assertion donnée.  DESCRIBE retourne un graphe RDF décrivant les résultats obtenus.  La structure d'une requête SPARQL est similaire à celle du langage SQL  Le principe de fonctionnement de SPARQL consiste à rechercher des sous-graphes dans un graphe (graph matching)  le langage SPARQL est basé sur la notion de graphes et de triplets et les requêtes sont décrites par des modèles (patterns) et des variables. Chapitre 5 SPARQL 3 4 GI - 2018/2019
  • 4. II – Définitions et Concepts 4 GI - 2018/2019 Chapitre 5 SPARQL 4 Graphe RDF @prefix ex: <http://example.org/stuff/1.0/>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix schema: <http://schema.org/>. @prefix dbr: <http://dbpedia.org/resource/> . @prefix dcterms: <http://purl.org/dc/terms/>. http://data.europeana.eu/item/04802/243FA8 618938F4117025F17A8B813C5F9AA4D619 dcterms:subject foaf:Person rdf:type ex:Alice foaf:knows ex:Bob https://www.wikidata .org/wiki/Q12418 foaf:tpic_interest "14 july 1990"^^xsd:date schema:birthdate dbr:leonardo_da_Vinci dcterms:creator "Mona Lisa" dcterms:title "the video 'La Joconde à Washington" dcterms:title
  • 5. II – Définitions et Concepts 4 GI - 2018/2019 Chapitre 5 SPARQL 5  Un triplet RDF en syntaxeTurtle <https://www.wikidata.org/wiki/Q12418> dcterms:title "Mona Lisa".  Un modèle de triple SPARQL, avec une seule variable <https://www.wikidata.org/wiki/Q12418> dcterms:title ?title .  Toutes les parties d'un modèle de triple peuvent être des variables ?subject dcterms:title ?title .
  • 6. II – Définitions et Concepts 4 GI - 2018/2019 Chapitre 5 SPARQL 6  Correspondance entre modèle de triplet et graphe RDF <https://www.wikidata.org/wiki/Q12418> dcterms:title ?title . http://data.europeana.eu/item/04802/243FA8 618938F4117025F17A8B813C5F9AA4D619 dcterms:subject foaf:Person rdf:type ex:Alice foaf:knows ex:Bob https://www.wikidata .org/wiki/Q12418 foaf:tpic_interest "14 july 1990"^^xsd:date schema:birthdate dbr:leonardo_da_Vinci dcterms:creator "Mona Lisa" dcterms:title "the video 'La Joconde à Washington" dcterms:title
  • 7. II – Définitions et Concepts 4 GI - 2018/2019 Chapitre 5 SPARQL 7  Correspondance entre modèle de triplet et graphe RDF ?ressource dcterms:title ?title . http://data.europeana.eu/item/04802/243FA8 618938F4117025F17A8B813C5F9AA4D619 dcterms:subject foaf:Person rdf:type ex:Alice foaf:knows ex:Bob https://www.wikidata .org/wiki/Q12418 foaf:tpic_interest "14 july 1990"^^xsd:date schema:birthdate dbr:leonardo_da_Vinci dcterms:creator "Mona Lisa" dcterms:title "the video 'La Joconde à Washington" dcterms:title
  • 8. II – Définitions et Concepts 4 GI - 2018/2019 Chapitre 5 SPARQL 8  Combiner plusieurs modèles de triples permet de créer un modèle graphique ?subject foaf:tpic_interest ?interset . ?subject rdf:type foaf:Person .  La syntaxe SPARQL est basée surTurtle, ce qui permet des abréviations par exemple : Listes des couple objets et prédicats: ?subject foaf:tpic_interest ?interset ; rdf:type foaf:Person .
  • 9. II – Définitions et Concepts 4 GI - 2018/2019 Chapitre 5 SPARQL 9  Les modèles graphiques permettent le parcours d’un graphique RDF ?someone foaf:tpic_interest ?ressource. ?ressource dcterms:creator dbr:leonardo_da_Vinci . ?ressource dcterms:title "Mona Lisa" .
  • 10. II – Définitions et Concepts Structure générale d’une requête SPARQL Chapitre 5 SPARQL 10 4 GI - 2018/2019 BASE <http://example.com/> PREFIX peo: <http://example.com/.../> ... FROM ... SELECT ... WHERE { ... } ORDER BY LIMIT ... Déclarations des préfixes (Prefix declarations) : permettant d’abréger les URI. Définitions des ensemble de données (Dataset definition) : indiquant le(s) graphe(s) RDF à interroger Clause de résultat (result clause) : identifiant les informations à renvoyer à partir de la requête. Modèle de requête (query pattern): spécifiant les éléments à interroger dans les ensembles de données spécifiées. Modificateurs de requête (Query modifiers): permettant de découper, ordonner et réorganiser les résultats de la requête.
  • 11. III – Point d’accès Point d’accès SPARQL  Les requêtes SPARQL sont exécutées sur des ensemble de données RDF (RDF Dataset) constituées de graphe RDF.  Un point d ’accès SPARQL (SPARQL endpoint) accepte les requêtes et renvoie les résultats via HTTP.  Les résultats des requêtes SPARQL peuvent être renvoyés dans différents formats:  HTML  XML  RDF/XML  JSON  … Chapitre 5 SPARQL 11 4 GI - 2018/2019
  • 12. III – Point d’accès  Parmi les points d ’accès SPARQL permettant d’exécuter des requêtes :  SPARQLer : http://sparql.org/sparql.html  OpenLink'sVirtuoso : http://demo.openlinksw.com/sparql  Redland's Rasqal : http://librdf.org/query/  Dbpedia : http://dbpedia.org/sparql  ...  Liste des points d ’accès (services) SPARQL : http://esw.w3.org/topic/SparqlEndpoints  Les exemples de ce cours porteront sur le cinéma et sont exécutées sur le point d’accès dbpedia : http://dbpedia.org/sparql.  Les requêtes SPARQL seront appliqué à la base de connaissance DBpedia.org Chapitre 5 SPARQL 12 4 GI - 2018/2019
  • 13. III – Point d’accès  Dbpedia : http://dbpedia.org/sparql Chapitre 5 SPARQL 13 4 GI - 2018/2019
  • 14. IV – Requête Variable et Modèle variables et modèles de triple  Les variables SPARQL commencent par un '?' et peuvent correspondre à n'importe quel nœud (ressource ou littéral) de l'ensemble des données RDF. ?x, ?person, ?name, ...  le caractère '?' ne fait pas partie du nom de la variable Exemple d’une requête SPARQL simple Chapitre 5 SPARQL 14 4 GI - 2018/2019 PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> SELECT ?resource ?etiquette WHERE { ?resource rdfs:label ?etiquette }
  • 15. IV – Requête PREFIX Le PREFIX  Grâce à PREFIX il est possible d’utiliser des URIs relatifs. SELECT ?film ?titre WHERE { ?film <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?titre. } PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?film ?titre WHERE { ?film rdf:type ?titre. } Chapitre 5 SPARQL 15 4 GI - 2018/2019
  • 16. IV – Requête SELECT La clause SELECT  La clause SELECT identifie les variables à faire apparaître dans la réponse de la requête.  les variables qui suivent la clause SELECT représentent les colonnes du tableau où les réponses sont affichées Chapitre 5 SPARQL 16 4 GI - 2018/2019
  • 17. IV – Requête WHERE  le Raccourci * SELECT * sélectionne toutes les variables mentionnées dans la requête La clause WHERE  La clause WHERE définit des conditions qui doivent être respectées.  La plupart des requêtes SPARQL contiennent un modèle de graphe composé d’un ensemble de modèles de triplets Chapitre 5 SPARQL 17 4 GI - 2018/2019 SELECT * WHERE { ?film rdf:type ?titre. } SELECT ?film ?titre WHERE { ?film rdf:type ?titre. }
  • 18. IV – Requête WHERE 4 GI - 2018/2019 Chapitre 5 SPARQL 18 Plusieurs modèles triples dans WHERE  Ainsi, nous pouvons utiliser plusieurs modèles de triples pour extraire plusieurs propriétés concernant une ressource particulière.  Chaque triplet devient alors une condition pour la requête. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?film ?titre WHERE { ?film a <http://dbpedia.org/ontology/Film> . ?film rdfs:label ?titre }  Avec le premier triplet: ?film a <http://dbpedia.org/ontology/Film> . nous recherchons toutes les IRIs des films.  Avec le deuxième triplet: ?film rdfs:label ?titre nous recherchons les titres des films. Et
  • 19. IV – Requête LIMIT 4 GI - 2018/2019 Chapitre 5 SPARQL 19 Le modificateur LIMIT  LIMIT n signifie qu’on donne au maximum n résultats Le modificateur OFFSET  OFFSET permet de n'afficher le résultat qu’à partir de la ligne indiquée.
  • 20. IV – Requête WHERE - DISTINCT 4 GI - 2018/2019 Chapitre 5 SPARQL 20 Le modificateur DISTINCT  DISTINCT ?x ?y permet d'enlever les doublons
  • 21. IV – Requête WHERE - FILTER 4 GI - 2018/2019 Chapitre 5 SPARQL 21 La fonctions FILTER  FILTER( contrainte) restreindre l'ensemble des résultats selon la contrainte construite avec des opérateurs et/ou des fonctions  Opérateurs  logiques : !, &&, ||  mathématiques : +, -, *, /  de comparaison : =, ! =, <, >  Fonctions prédénies  tests : isURI, isBlank, isLiteral  accesseurs : str, lang, datatype  autre : sameTerm, langMatches, regex
  • 22. IV – Requête WHERE - FILTER 4 GI - 2018/2019 Chapitre 5 SPARQL 22  tests :  isURI(term) : renvoie vrai si term est un URI  isBlank(term) : renvoie vrai si term est un noeud anonyme  isLiteral(term) : renvoie vrai si term est un littéral  accesseurs :  str(term) : renvoie la chaîne de caractères correspondant à term  lang(lit) : renvoie le code langue de lit  datatype(lit) : renvoie l‘IRI du type de lit  autre  sameTerm(term1, term2) : renvoie vrai si les termes sont égaux  langMatches(lang, rang) : renvoie vrai si le langage lang appartient au domaine rang  regex(text, motif [,option]) : renvoie vrai si l'expression donnée par motif correspond à la chaîne text selon l'option spéciée
  • 23. IV – Requête WHERE - FILTER 4 GI - 2018/2019 Chapitre 5 SPARQL 23  Quelque expression régulier Special characters Meaning * 0 or more + 1 or more ? 0 or 1 {3} Exactly 3 {3,} 3 or more Special characters Meaning ^ Start of string, or start of line in multi-line pattern A Start of string < Start of word > End of word Special characters Meaning (a|b) a or b [abc] Range (a or b or c) [^abc] Not (a or b or c) [a-q] Lower case letter from a to q [0-7] Digit from 0 to 7
  • 24. IV – Requête WHERE - FILTER 4 GI - 2018/2019 Chapitre 5 SPARQL 24  Exemple : LangMatches(...) Dans cet exemple, nous affichons les résumés uniquement en français.
  • 25. IV – Requête WHERE - FILTER 4 GI - 2018/2019 Chapitre 5 SPARQL 25 Exemple : regex(text, motif [,options])  SPARQL fournit une opération pour tester les chaînes, basée sur des expressions régulières.  Dans cet exemple on affiche les titres des films qui commencent par "Le"
  • 26. IV – Requête WHERE - OPTIONAL 4 GI - 2018/2019 Chapitre 5 SPARQL 26 La fonction OPTIONAL  Déclare un motif optionnel. C’est une partie du modèle de graphe qui n’est pas obligatoire.  Dans l’exemple suivant, on affiche tous les films, qu’ils aient la propriété dbpprop:released ou non :
  • 27. IV – Requête FROM 4 GI - 2018/2019 Chapitre 5 SPARQL 27 La clause FROM  Le mot-clé FROM permet de spécifier le(s) graphique(s) cible de la requête.
  • 28. IV – Requête ORDER BY 4 GI - 2018/2019 Chapitre 5 SPARQL 28 La clause ORDER BY  La clause ORDER BY établit l'ordre d'une séquence de solutions. Elle permet de classer les résultats selon un ordre :  croissant ORDER BY DESC(?variable)  ou décroissant ORDER BY ASC(?vriable)
  • 29. IV – Requête GROUP BY & HAVING 4 GI - 2018/2019 Chapitre 5 SPARQL 29 La clause GROUP BY  La clause GROUP BY sert à agréger certaines valeurs avec l’une des fonctions d’agrégations : Count, Sum, Avg, Min, Max, ... La clause HAVING  Permet d’appliquer un filtre sur des valeurs groupées  Afficher 10 résultats correspondant aux acteurs ayant fait au plus que 100 films.
  • 30. IV – Requête CONSTRUCT & ASK 4 GI - 2018/2019 Chapitre 5 SPARQL 30  De plus, une requête SPARQL peut avoir d'autres finalités que de fournir un ensemble de correspondances aux variables spécifiées dans le SELECT:  CONSTRUCT Permet de construire un nouveau graphe RDF.  ASK. Permet de demander si une requête dispose d'au moins une solution
  • 31. Exercices 4 GI - 2018/2019 Chapitre 5 SPARQL 31 SPARQL endpoint : http://dbpedia.org/sparql 1. Retourne la liste des acteurs du film "A Kid in King Arthur’s Court" 2. Compte le nombre d’acteurs dans le film "A Kid in King Arthur’s Court" 3. Ecrire une requêtes SPARQL pour avoir le noms et les dates de naissances des personnes nées à Paris et triés par ordre alphabétique 4. Ecrire une requêtes SPARQL pour avoir la liste des pays (“landlocked” c- à-d sans accès à la mer) avec une population de plus de 15M d’habitants 5. Ecrire une requêtes SPARQL pour demander une question, est ce que l’Amazon est plus long que le Nil
  • 32. 4 GI - 2018/2019 Chapitre 5 SPARQL 32 1. Retourne la liste des acteurs du film A Kid in King Arthur’s Court SELECT DISTINCT ?nom WHERE { ?movie dc:title "A Kid in King Arthur’s Court". ?movie movie:actor ?actors . ?actors movie:actor_name ?nom . }
  • 33. 4 GI - 2018/2019 Chapitre 5 SPARQL 33 2. Compte le nombre d’acteurs dans le film A Kid in King Arthur’s Court SELECT (count(*)) WHERE { ?movie dc:title “A Kid in King Arthur’s Court”. ?movie movie:actor ?actors . }
  • 34. Exercices 4 GI - 2018/2019 Chapitre 5 SPARQL 34 3. Ecrire une Requêtes SPARQL pour avoir le noms et les dates de naissances des personnes nées à Paris et triés par ordre alphabétique :
  • 35. Exercice 1 4 GI - 2018/2019 Chapitre 5 SPARQL 35 4. Ecrire une Requêtes SPARQL pour avoir la liste des pays (“landlocked” c- à-d sans accès à la mer) avec une population de plus de 15M d’habitants PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX type: <http://dbpedia.org/class/yago/> PREFIX prop: <http://dbpedia.org/property/> SELECT ?country_name ?population WHERE { ?country a type:LandlockedCountries ; rdfs:label ?country_name ; prop:populationEstimate ?population . FILTER (?population > 15000000) . }
  • 36. Exercice 1 4 GI - 2018/2019 Chapitre 5 SPARQL 36 5. Ecrire une Requêtes SPARQL pour Demander une question, est ce que l’Amazon est plus long que le Nil PREFIX prop: <http://dbpedia.org/property/> ASK { <http://dbpedia.org/resource/Amazon_River> prop:length ?amazon . <http://dbpedia.org/resource/Nile> prop:length ?nile . FILTER(?amazon > ?nile) . }
  • 37. Bibliographie 4 GI - 2018/2019 Chapitre 5 SPARQL 37  https://www.w3.org/TR/rdf-sparql-query/  https://jena.apache.org/tutorials/sparql.html  http://www.thefigtrees.net/lee/sw/sparql-faq  https://en.wikibooks.org/wiki/SPARQL/Expressions_and_Functions#REGEX  http://fr.dbpedia.org/sparqlTuto/tutoSparql.html