Slides de l'atelier JDEV2017 : SPARQL, avancé
Vous saurez après cet atelier : lire un document RDF écrit en Turtle, découvrir une ontologie au travers d’un service SPARQL et lire la documentation officielle de SPARQL.
1. Web 3.0 Hosting & Factory
Karima Rafes, BorderCloud
02/07/2017
Atelier : SPARQL, avancé
Les bases pour écrire une requête
2. Karima Rafes
karima.rafes@gmail.com
@Karima_Rafes
http://karimarafes.me
Développeuse Web (des données) depuis 1999
CanalPlus (Canalnumédia), Orange Lab, Globecast, Experte UE, INRIA, etc.
Fondatrice et CEO de BorderCloud depuis 2010
Logiciels-Formations-Conseils
Email : karima.rafes@bordercloud.com
Twitter : @BorderCloudInfo
http://www.bordercloud.com/
Doctorante depuis 2014
Sujet de thèse : Gestion des données de la recherché en utilisant le Web sémantique
5. 5
Formations
Conduite du changement
Web sémantique et Web des données
– Responsable : comprendre les enjeux
– Architecte de système d’information : savoir mettre en place
– Développeur : savoir interroger les données
– Administrateur de bases de données : savoir tester
l’interopérabilité des solutions
Points forts : Utilisation d’un outil d’Elearning : TPO
• Aucune base en programmation n’est nécessaire
• Poursuivre les exercices à la maison
• Obtenir un résultat partageable avec ses collègues
7. 7
Editeur logiciel / R&D
Plateforme LinkedWiki – U Paris Saclay
TPOnline (3e version) – IAE Amiens, ITESCIA
SPARQLScore – U Paris Sud
Développement de prototypes pour
constituer des bases de connaissances
– SHS : droit canonique, éducation (U-PSud Droit, ENS Cachan)
– Chimie analytique : LipSys², IPS2 (U Paris Sud)
– Science de la vie : LATMOS (IPSL)
8. 8
Centre de formation
215 Rue Jean Jacques Rousseau
92130 Issy les Moulineaux
RER C : à la station "Issy"
T2 : Les Moulineaux ou Jacques-Henri Lartigue
9. 9
Programme
JDEV 2017
Atelier (3h)
SPARQL, initiation (Mardi 9h)
SPARQL, niveau avancé (Mercredi 14h)
Groupe de travail (1h30)
Quelles sont les compétences professionnelles à
développer par les administrateurs de systèmes
d’information dédiés à la gestion des
connaissances ? (Mercredi 17h30)
Référencement des données pour la recherche :
retour d’expériences du Center for Data Science
de l’université Paris-Saclay ? (Jeudi 9h)
10. 10
Outil utilisé
durant le JDEV
Version ouverte à tous :
http://linkedwiki.com
Version de l’université Paris Saclay :
https://io.datascience-paris-saclay.fr
VIDEO
Version pour les TP d’étudiants
http://www.bordercloud.com/TPO.php
Exemple de résultat :
http://tpo.bordercloud.com/K.php?i=38fd050b9ed02069d5bf9716c8338ad8
11. 11
Objectifs
1. Comprendre le Resource Description
Framework (RDF)
– SPARQL est un langage de requêtes pour
interroger des données RDF
2. Savoir lire le format Turtle
– qui nous servira à décrire les exemples de
requêtes SPARQL.
3. Découvrir une ontologie via SPARQL
12. Les bases de la syntaxe1.
RDFa
JSON-LD
Supports Multiple Graphs
RDF/XML
Turtle
N-Triples
TriG
N-Quads
13. 13
Introduction
Comme en SQL, SPARQL 1.1 offre les
moyens d'écrire et de lire des données à
travers de simples requêtes sans se soucier
des formats divers (XML/Turtle) qui servent
à la maintenance de la base de données.
Cependant, pour interroger la BDD, il est
nécessaire de comprendre comment les
données sont représentées en RDF.
15. 15
Définitions
HTTP
HyperText Transfer Protocol
Un protocole pour la gestion et le transfert de documents
dans les systèmes d'information décentralisés.
Définit un certain nombre de méthodes et les actions
attendues que le serveur doit effectuer lors de la réception
de ces méthodes.
Sert à sérialiser des ressources comme un flux d'octets
Par exemple
– une photo d'une personne
– Récupérer des descriptions au sujet des ressources qui ne
peuvent pas être envoyés sur le réseau
– Par exemple. la personne elle-même
16. 16
Définitions
URL, URI et IRI
URL (Uniform Resource Locator)
– Identifie un emplacement sur le Web
– Adresse d'un document qui peut être trouvé à
travers Internet
URI (Uniform Resource Identifier)
– Fournit un moyen plus générique pour
identifier tout ce qui existe dans le monde
IRI (Internationalized Resource Identifier)
– Internationalisation URI
IRI ⊇ URI ⊇ URL
17. 17
Définitions
HTML
HyperText Markup Language
Un langage de balisage pour la composition et la
présentation des différents types de contenu dans
les pages Web
– Par exemple. texte, images, multimédia
Les documents fournis par HTTP sont généralement
exprimés en HTML
– HTML5
• recommandation actuelle
• balises supplémentaires
• Prolonge le soutien pour le multimédia et le contenu mathématique
18. 18
Définitions
XML
eXtensible Markup Language
Permet la définition stricte de la structure d’une
information à l’aide de balises
– définition des balises avec un document XSD (XML
Schema Definition)
Le modèle RDF peut se représenter à travers
une syntaxe XML. Le modèle RDF peut se
représenter avec d’autres formats
19. 19
Définition
document RDF
Un document structuré en RDF (Resource
Description Framework) est un modèle de
graphe destiné à décrire de façon formelle
les ressources Web et leurs métadonnées,
de façon à permettre le traitement
automatique (par des machines) de telles
descriptions.
Un document structuré en RDF est constitué
d'un ensemble de triplets.
25/05/2015
20. 20
Document RDF
Est un fichier
A une adresse unique sur le Web
Contient des triplets qui forme un graphe
Un Document RDF est un graphe
Ce graphe a pour ID l’adresse du
document RDF sur le Web
On parle de « Dataset » (jeu de données)
21. 21
Cool IRI d’un document RDF
sur le Web sémantique
Un cool IRI est un IRI qui est
lisible et qui reste le même
pour un être humain et la
machine.
Cependant, il faut que le
document soit différent.
Source :
https://www.w3.org/TR/cooluris/
22. 2225/05/2015
# sert dans l’IRI à faire
référence à une sous
partie d’un document
Web
Les redirections permet
de sélectionner le format
adapté du document pour
un humain ou une
machine.
IRI d’un document sur le
Web sémantique
Content negociation
23. 23
Définition
Un triplet RDF
Un triplet RDF est une association :
sujet ─── prédicat ───> objet
Le sujet représente la ressource à décrire ;
Le prédicat représente un type de propriété
applicable à cette ressource ;
L'objet représente une donnée ou une autre
ressource : c'est la valeur de la propriété.
25/05/2015
24. 24
Un triplet RDF
Le sujet d'un triplet peut-être:
un IRI (Internationalized Resource Identifier)
ou un nœud anonyme.
Le prédicat d'un triplet est nécessairement un IRI.
L'objet d'un triplet peut être :
un IRI
ou un nœud anonyme.
ou un littéral
25/05/2015
25. 25
REMARQUE :
Les nœuds anonymes
sont à bannir
Le concept de nœud anonyme semble intéressant
et simplifie sur papier la représentation d'un
document RDF (comme avec le schéma plus bas).
Cependant, ce concept est souvent implémenté de
manière différente dans les logiciels, ce qui
entraîne des problèmes de compatibilité et remet en
question l’interopérabilité des documents RDF.
En attendant que ce problème soit réglé, il faut
éviter d'utiliser des nœuds anonymes et donner
un IRI arbitraire unique.
25/05/2015
26. 26
Définition
graphe RDF
Un graphe RDF, ainsi formé de triplets, est
un multigraphe orienté étiqueté.
Chaque triplet correspond alors à un arc
orienté dont le label est le prédicat, le nœud
source est le sujet et le nœud cible est
l'objet.
sujet ─── prédicat ───> objet
25/05/2015
27. 27
Définition
Les syntaxes RDF
• Les documents RDF peuvent être écrits en différentes
syntaxes, y compris en XML (Extensible Markup
Language).
• Mais RDF en soi n'est pas un dialecte XML.
• Il est possible d'avoir recours à d'autres syntaxes pour
exprimer les triplets. Par exemple avec N3, Turtle, N-
Quads, etc.
Bien que RDF/XML — sa version XML— ne soit qu'une syntaxe (ou
sérialisation) du modèle, elle est souvent appelée RDF. Un abus de
langage qui désigne à la fois le graphe de triplets et la présentation
XML qui lui est associée.
25/05/2015
28. 28
Syntaxes/formats
pour le modèle RDF
Les syntaxes RDF bien qu’à destination des machines doivent
rester lisible par les humains (en théorie).
Listes des syntaxes possibles
– N-Triples
– Turtle
– N-Quads
– TriG
– RDF/XML
– JSON-LD
– RDFa
Evolution de 1999 à 2016...
Evolution portée par les développeurs
Turtle
family RDFa
JSON-LD
Supports Multiple
Graphs
RDF/XML
Turtle
N-Triples
TriG
N-Quads
29. 29
Définition
Graphe nommé
(graph named)
Quand une BDD charge un document RDF :
Les triplets sont généralement stockés dans un graphe qui
prend le nom par défaut de l’adresse du fichier sur le Web.
On parle de graphe nommé.
Si la syntaxe RDF du document supporte les multi-graphes,
la BDD chargera les triplets en fonction de leurs graphes.
30. 30
Définition
Syntaxe : RDF/XML
Le format RDF/XML n'est utilisé dans la
logique d'une base de données que comme
un format d'échange entre des bases de
données.
Format dump
Inconvénient : le format RDF/XML n'est en principe pas
écrit directement par un être humain, car trop verbeux.
Avantage : permet de garantir l’intégrité des données à
condition de définir une grammaire (XSD)
31. 31
Définition
Syntaxe : RDF/Turtle
Turtle (Terse RDF Triple Language)
Syntaxe pour exprimer des informations exprimées
dans un modèle RDF.
Syntaxe similaire à SPARQL.
Avantage : le format RDF/Turtle est bien moins
verbeux et plus simple à écrire pour les
développeurs.
Nous utiliserons le format Turtle pour nos
exemples, car le W3C lui-même utilise cette syntaxe
pour ses exemples dans ses recommandations.
32. 32
Ce qu’il faut
savoir faire
Que ce soit du Turtle ou du XML, un document
RDF n'est en principe jamais écrit directement
par l'utilisateur final de la base de données.
Cependant, les développeurs et les
administrateurs doivent pouvoir lire au
minimum le format Turtle pour lire les
documentations du domaine, définir des tests
d’interopérabilité, des contraintes d’intégrité et
les règles d’inférence.
34. 34
Exemple 1:
Description RDF d'une
personne nommée Eric Miller
• une personne a comme identifiant
http://www.w3.org/People/EM/contact#me
• son nom est Eric Miller,
• son adresse email est em@w3.org,
• il a le titre de Docteur.
35. 35
Exemple 1:
Description RDF d'une
personne nommée Eric Miller
La ressource, est déjà sous forme d'IRI :
"http://www.w3.org/People/EM/contact#me" est
ici le sujet.
– Le sujet ne peut être qu'un IRI.
L'objet est :
"Eric Miller" (avec le prédicat "quel est son nom"),
em@w3.org (avec le prédicat "quel est son email"), et
"Dr." (avec le prédicat "quel est son titre").
36. 36
Exemple 1:
Description RDF d'une
personne nommée Eric Miller
Les prédicats sont aussi des IRIs.
Par exemple, l'IRI pour chaque prédicat :
"quel est son nom" est
http://www.w3.org/2000/10/swap/pim/contact#fullName
"quel est son email" est
http://www.w3.org/2000/10/swap/pim/contact#mailbox
"quel est son titre" est
http://www.w3.org/2000/10/swap/pim/contact#personalTitle
37. 37
De plus, le sujet a le type personne, c'est-à-dire :
L'IRI du prédicat type est
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
L'IRI de la classe Person est
http://www.w3.org/2000/10/swap/pim/contact#Person
Exemple 1:
Description RDF d'une
personne nommée Eric Miller
38. 38
Par conséquent, les "sujet, prédicat, objet" suivants, c'est-à-dire
les triplets RDF suivants peuvent être exprimés:
http://www.w3.org/People/EM/contact#me,
http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
http://www.w3.org/2000/10/swap/pim/contact#Person
http://www.w3.org/People/EM/contact#me,
http://www.w3.org/2000/10/swap/pim/contact#fullName,
"Eric Miller”
Exemple 1:
Description RDF d'une
personne nommée Eric Miller
39. 39
Par conséquent, les "sujet, prédicat, objet" suivants, c'est-à-dire
les triplets RDF suivants peuvent être exprimés:
http://www.w3.org/People/EM/contact#me,
http://www.w3.org/2000/10/swap/pim/contact#personalTitle,
"Dr."
http://www.w3.org/People/EM/contact#me,
http://www.w3.org/2000/10/swap/pim/contact#mailbox,
em@w3.org
Exemple 1:
Description RDF d'une
personne nommée Eric Miller
40.
41. 41
Spectroscopie Raman
Raman Evolution
Li
pilot process 2,27359
longitude
48,7623
latitude
li@u-psud.fr
李
fullname
30/05/1977
bday
Ultimate Instrument
Exercice 1
Ecrire les triplets RDF
qui représentent :
43. 43
Types de données
IRIs
Un IRI est utilisé dans un triplet pour faire référence à un
sujet, mais aussi pour l'objet, qui peut être une référence.
IRI ou Internationalized Resource Identifier (en français
« Identificateur de ressource internationalisé ») est un type
d'adresse informatique prenant en compte les divers
alphabets utilisés dans les différentes langues du monde.
Les adresses IRI suivent une norme datant de 1998,
généralisant et internationalisant les adresses URI
(Uniform Resource Identifier), qui sont elles-mêmes un sur-
ensemble des plus connues URL (Uniform Resource
Locator) utilisées pour les adresses Web.
44. 44
Types de données
IRI absolu
Un IRI est absolu quand il se compose :
1.des lettres décrivant le protocole pour atteindre cette
référence (par exemple http pour le protocole Web)
2.suivie de «://»
3.puis du nom de domaine
4.ensuite, chaque nœud du chemin est séparé par « / »
5.pour finir par le nom du document qui contient la
référence
6.si la référence est une sous-partie d'un document, on
ajoute « # » suivi du nom de l'ancre de la référence dans
le document.
45. 45
Types de données
IRI absolu
http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140225/#section-turtle
L'utilisation des IRI absolus implique une notation très
verbeuse. Pour éviter de réécrire la même racine de certaines
IRI, on peut créer des préfixes et écrire des IRI relatifs.
46. 46
Types de données
IRI relatif
Un IRI est relatif quand il se compose
1.d'un préfixe
2.du séparateur ":"
3.du reste du chemin de l'IRI
Dans un document RDF au format Turtle ou
dans une requête SPARQL, les IRI absolus
sont entourés par '<' et '>' et la définition
des préfixes est écrite au début du document.
47. 47
Types de données
IRI et leurs préfixes
On utilise souvent les mêmes préfixes par
convention. Voici les préfixes les plus courants :
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs: http://www.w3.org/2000/01/rdf-schema#
owl: http://www.w3.org/2002/07/owl#
xsd: http://www.w3.org/2001/XMLSchema#
dc: http://purl.org/dc/elements/1.1/
foaf: http://xmlns.com/foaf/0.1/
Si vous ne connaissez pas un préfixe dans un
exemple, vous pouvez utiliser le site http://prefix.cc
48. 48
Types de données
IRI au format Turtle
Exemple d'un document RDF au format Turtle sans
préfixe qui contient un seul triplet :
<http://book.example/org1>
<http://book.example/affiliates>
<http://book.example/auth1> .
Exemple d'un document RDF au format Turtle avec
préfixe :
prefix doc: <http://book.example/>
doc:org1 doc:affiliates doc:auth1 .
49. 49
Types de données
IRI au format Turtle
On peut également définir un préfixe par défaut si
on n'indique pas le nom du préfixe :
prefix : <http://book.example/>
:org1 :affiliates :auth1 .
Et aussi :
base <http://book.example/>
<org1> <affiliates> <auth1> .
50. 50
Types de données
Littéraux
Un littéral peut être l'objet d'un triplet RDF, mais il ne
peut pas être le sujet, ni le prédicat/propriété.
La syntaxe générale pour les littéraux est composée :
1.d'une chaîne de caractères (entre guillemets, "...", ou
entre des apostrophes, '...‘, entre triple guillemets pour
faire du multiligne """…""")
2. d'une balise optionnelle de langue (language tag)
(introduite par @)
3.d'une balise optionnelle pour décrire le type de
données du littéral. Le type prend la forme d'un IRI
relatif ou absolu (introduit par ^^).
51. 51
Types de données
Littéraux
Par exemple, dans SPARQL et Turtle, on peut
écrire :
"chat" est équivalent à "chat"^^xsd:string
'chat'@fr est équivalent à 'chat'^^xsd:string@fr,
vous remarquerez le tag langue français
"""The librarian said, "War and Peace". """
52. 52
Types de données
Littéraux
Pour les numériques :
1 est équivalent à "1"^^xsd:integer
"1.3"^^xsd:decimal
1.300 est équivalent à "1.300"^^xsd:decimal
1.0e6 est équivalent à "1.0e6"^^xsd:double
Par souci de commodité, les entiers peuvent être
écrits directement (sans les guillemets et sans un
type de données explicite) mais pas les nombre à
virgule.
54. 54
Types de données
Littéraux
Il est possible de définir son propre type de
données :
"xyz"^^<http://example.org/ns/userDatatype>
Avec un prefixe appNS :
"06 89 45 64 64"^^appNS:appDataType
55. Datatype Exemple dans SPARQL Définition
xsd:string "du texte unicode" séquence de caractères
xsd:boolean true
false
true ou false
xsd:integer -1
0
12678967543233
+100000
contient au minimum 18 digits ; le
maximum de digits dépend de la
plateforme
xsd:decimal -1.23
12678967.543233
+100000.00
"210"^^xsd:decimal
contient au minimum 18 digits ; le
maximum de digits dépend de la
plateforme
xsd:double -1E4
1267.43233E12
12.78e-2
"12"^^xsd:double
"-0"^^xsd:double
"0"^^xsd:double
IEEE double précision 64 bits
xsd:date "2002-10-10"^^xsd:date yyyy-mm-dd
xsd:dateTime "2002-10-10T12:00:00Z"^^xsd:dateTime
"2002-10-10T12:00:00-05:00"^^xsd:dateTime
"2002-10-10T12:00:00+01:00"^^xsd:dateTime
standard ISO 8601 (yyyy-mm-
ddThh:mm:ss+01:00 en France)
xsd:time "13:20:00"^^xsd:time standard ISO 8601 (hh:mm:ss)
Liste des types SPARQL les plus utilisés
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
58. 58
Format Turtle 1.1
Pour se rapprocher de SPARQL voici le même
document avec la version 1.1 de la syntaxe :
prefix dt: <http://example.org/datatype#>
prefix ns: <http://example.org/ns#>
prefix : <http://example.org/ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
:x ns:name "cat"@en .
:x ns:color “black”^^dt:color.
:y ns:p "42"^^xsd:integer .
:y ns:p "abc"^^dt:specialDatatype .
59. 59
Format Turtle
la définition des préfixes au début du document
la syntaxe sous forme de triplets
le point à la fin de chaque triplet
Un document RDF/Turtle est très proche de la syntaxe de
SPARQL (et offre des copier-coller bien pratique).
REMARQUE POUR TURTLE 1.0
Vous remarquerez le "@" devant le mot clé "prefix", ainsi que le
point à la fin de chaque définition de préfixes. Ces détails sont
importants, car ils sont source d'erreurs quand on fabrique une
requête SPARQL à partir d'exemple RDF/Turtle 1.0.
60. 60
Format Turtle
les raccourcis
• Le sujet des triplets est souvent le même.
Pour éviter de le répéter, on insère le
caractère ";" devant un prédicat pour
indiquer que le sujet est le même que le
précédent triplet.
• Quand le sujet et le prédicat sont les
mêmes, on peut utiliser une virgule devant
un objet pour éviter de les recopier.
61. 61
Format Turtle
Même exemple avec les raccourcis :
prefix dt: <http://example.org/datatype#>
prefix ns: <http://example.org/ns#>
prefix : <http://example.org/ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
:x ns:name "cat"@en ;
ns:color “black”^^dt:color.
:y ns:p "42"^^xsd:integer , "abc"^^dt:specialDatatype .
63. 63
Exercice 3 : écrire en turtle le
graphe suivant en utilisant les
raccourcis.
Utiliser le service prefix.cc pour retrouver
les prefixes.
http://prefix.cc/
Utiliser le service suivant pour tester votre
document turtle
http://rdfunit.aksw.org/demo/
68. La seule chose à préciser pour accéder à un endpoint
SPARQL public. C’est son adresse sur le Web.
Un agent ou un humain peut à partir de cette
information découvrir l’ontologie qu’il utilise et
découvrir les données qu’ils possèdent.
Les exercices suivants vont vous montrer comment un
agent va découvrir l’ontologie d’une base de données
sans connaissances préalables.
69. 69
Exercice 1 :
Afficher tous les triplets
Vous allez vous connecter à :
http://tpo.bordercloud.com/
L’authentification est effectuée via Google
Attendre qu’on active votre compte
Créer une « Linked Page »
Vous allez afficher dans un tableau les 10
premiers triplets contenus dans le endpoint IODS:
https://io.datascience-paris-saclay.fr/sparql
73. 73
Partager : shortlink
1. Ouvrir l’onglet Share
2. Copier le shortlink de votre linked page
dans un nouvelle onglet de votre
navigateur.
3. Avec ce lien, vous pourrez partager votre
travail avec vos collègues.
75. 75
Exercice 2 : Tableau en sortie
1. Ajouter une nouvelle partie
2. Copier la requête et son endpoint
précédente
3. Remplacer l’étoile par 2 variables de
votre requête
4. Sauvegarder
76. 76
Exercice 2 : correction
SELECT DISTINCT
?property ?literalOrObject
where
{
?subject ?property ?literalOrObject .
}
LIMIT 10
Quel est la différence
avec le précèdent exercice ?
77. 77
Exercice 3 :
Changer le nom d’une
colonne
Vous utiliserez la syntaxe suivante pour changer le
nom des colonnes dans l’entête de la requête.
(?subject AS ?Sujet)
79. 79
Graphe par défaut
&
graphe nommé
Un endpoint SPARQL est un service HTTP
connecté à une base de données RDF.
Cette base de données contient des triplets
regroupés au sein de graphes.
• Un graphe (sans nom) par défaut existe
• Et zéro ou plusieurs graphes nommés
peuvent exister.
80. 80
Exercice 4 :
Référence à un graphe
Dans l’exercice précédent, votre requête ne
contenait aucune référence à un graphe. Ainsi, la
requête a affiché un résultat à l’aide de tous les
graphes disponibles.
Vous allez recopier la requête suivante où vous
afficherez les triplets d’un seul graphe.
81. 81
Exercice 4 :
Afficher tous les triplets dans
un graphe
SELECT DISTINCT
(?subject AS ?Sujet) ?property ?literalOrObject
where
{
GRAPH <https://io.datascience-paris-saclay.fr>
{
?subject ?property ?literalOrObject .
}
}
LIMIT 10
82. 82
Exercice 5 :
Afficher la liste des graphes
1. Avec la requête précédente, vous allez
remplacer l’IRI du graphe nommé pour le
remplacer par une variable graphe.
2. Afficher uniquement une colonne qui contient
l’IRI des graphes disponibles.
84. 84
Et les ontologies ?
Définitions
Les ontologies du Web sémantique, comme
le vocabulaire RDF, RDFS ou encore OWL
(Web Ontology Language), fournissent des
éléments de base pour la définition
d'ontologies ou de vocabulaires destinés à
structurer des ressources RDF.
85. 85
Et les ontologies ?
Définitions
Les ontologies du Web sémantique, comme
le vocabulaire RDF, RDFS ou encore OWL
(Web Ontology Language), fournissent des
éléments de base pour la définition
d'ontologies ou de vocabulaires destinés à
structurer des ressources RDF.
86. 86
SPARQL est agnostique
aux ontologies
(pour le moment ?)
Une requête SPARQL forme un masque qui
sera ensuite soumis aux données pour obtenir
des résultats.
A priori, SPARQL est agnostique aux
ontologies et l’intégrité des données est
généralement pas ou peu implémentée dans
les bases de données.
En bref, on peut trouver n’importe quelle
structure. Il faut savoir découvrir les données.
87. 87
En pratique…
ontologie trouver la doc
Quand on découvre un dataset (des données à
travers un endpoint sparql)
On commence par faire la liste des concepts
SELECT DISTINCT ?type WHERE{
GRAPH <https://io.datascience-paris-saclay.fr>
{
# a est équivalent à rdf type
?o a ?type .
}
}
88. 88
En pratique…
ontologie trouver la doc
Quand on découvre un dataset
(des données à travers un endpoint sparql)
– On commence par faire la liste des concepts
• Avec le prédicat : ?sujet a ?concept
– Ensuite 2 options :
• Option 1 : on utilise l’IRI du concept pour obtenir la
documentation en ligne correspondant à
l’ontologie observée dans ce dataset.
• Option 2 : on fait la liste des propriétés disponibles
pour ce concept.
89. 89
Exercice 6
Afficher tous les concepts
– Du graphe
https://io.datascience-paris-saclay.fr
– Contenu dans le endpoint
https://io.datascience-paris-saclay.fr/sparql
90. 90
Exercice 6 : correction
SELECT DISTINCT ?type WHERE{
GRAPH <https://io.datascience-paris-saclay.fr>
{
# a est équivalent à rdf type
?o a ?type .
}
}
93. 93
Exercice 8
Dans la liste des propriétés disponibles,
retrouver la longitude et la latitude.
Afficher dans un tableau la longitude et la
latitude des sujets qui sont de type Point.
95. 95
Exercice 9
Afficher les propriétés des sujets qui sont
de type Point pour découvrir la propriété
titre et la description des sujets.
Afficher dans un tableau les sujets de type
Point avec les colonnes respectant cet
ordre : la latitude, la longitude, le titre et la
description
Remplacer le graphique Table par
sgvizler.visualization.Map
97. 97
Conclusion
Vous savez :
lire un document RDF écrit en turtle
découvrir une ontologie au travers d’un service SPARQL
lire une documentation SPARQL en français
https://fr.wikiversity.org/wiki/SPARQL_Protocol_and_RDF_Query_Language
lire la documentation officielle de SPARQL.
https://www.w3.org/TR/sparql11-query/
Demandez notre catalogue de formations pour
apprendre à utiliser et déployer le Web des
données dans votre organisation