Spatio-temporal Wikidata. Exploration de données ouvertes et liées du Web 3.0
Histoire de cadre : élaboration d’une trajectoire spatio-temporelle
Cet article est le fruit d’un dialogue interdisciplinaire entre membres du GT Notebook initié dans le cadre d’un atelier proposé à la journée d’études normande sur les données de la recherche qui s’est déroulée en décembre 2021. Il présente une analyse exploratoire reproductible de données ouvertes et liées d’un fragment de graphe Wikidata, interrogeables sous la forme de triplets RDF. Les enjeux d’un tel processus inter-disciplinaire sont esquissés en conclusion. Une ébauche des requêtes SPARQL élaborées a fait l’objet d’une présentation et d’échanges au sein des ateliers du Web Sémantique au printemps 2021.
Introduction
Cet article ou notebook présente une exploration du graphe Wikidata (cf. parties 1.2 et 3) et le traitement des données extraites (cf. parties 2 et 4).
Du requêtage en langage SPARQL (cf. partie 1.3) au traitement et à la représentation des données issues du graphe Wikidata, il présente, étape par étape, l’ensemble de la chaîne de traitement réalisée. Le processus exploratoire, parfois itératif, a été conservé afin de mieux comprendre l’approche réflexive des auteurs et autrice. Ce notebook retranscrit les démarches scientifique et méthodologique adoptées.
Le schéma organisant ces données est esquissé dans la partie 1. Afin de permettre une reproduction des traitements et des résultats présentés, les données automatiquement collectées au 11 mars 2025 et utilisées sont mises à disposition (cf. partie 2.2). L’idée de départ conduit à la démarche suivante en 3 étapes :
- requêter les données (ou suivre des chemins) du graphe
Wikidata,
- identifier certaines des modalités du graphe pouvant comporter une
dimension spatiale et temporelle et ainsi,
- reconstruire et représenter une ou des trajectoires dans le temps et l’espace.
Compte tenu du formalisme et de l’hétérogénéité des données non
supervisées de Wikidata, deux images d’objet sont choisies pour l’étude
: un artiste peintre et une de ses peintures, exposée au sein de musées
ou d’institutions culturelles dans le monde. Pour reproduire
partiellement l’expérimentation, un exemple d’exploration du graphe
Wikidata pour diverses images d’artistes peintres est proposée dans la
partie 7.
NB : le terme “image” utilisé ici correspond à une sémantique de
l’individu présent dans l’espace numérique sous la forme de données et
de métadonnées en relation avec d’autres images d’objet, selon Hui (2015). En ce sens, les œuvres
elles-mêmes, photographiées ou scannées sous différents formats (eg.
.jpg .png) sont désignées par le terme d’“illustrations” ou de fichiers.
Pour simplifier le discours, l’image d’individu est désignée par
l’individu lui-même : par exemple, l’image du peintre Johannes Vermeer,
l’entité Wikidata de valeur Q41264 définie par ses relations dans
l’espace numérique, est désignée par Johannes Vermeer ou Vermeer. Le
fichier .jpg Wikidmédia de son autoportrait supposé, fragment de l’œuvre
intitulée “l’Entremetteuse”, est une illustration représentant le
peintre.
1 Wikimédia, Wikidata & W3C
1.1 Données ouvertes et liées du graphe Wikidata
Wikidata est une base de connaissances libre, éditée de manière collaborative et hébergée par la fondation Wikimedia. Son contenu étant placé sous licence CC0 (« Transfert dans le Domaine Public »), elle permet de centraliser l’accès aux données utilisées par différents projets Wikimedia (Wikipédia (2021)).
Les informations saisies dans Wikidata sont des données ouvertes
“brutes” multilingues non supervisées qui sont liées, notamment, aux
articles de l’encyclopédie contributive Wikipedia. Wikidata est à
différencier de l’ontologie DBpedia1 (figure 1) au sens où l’ontologie
sous-jacente de Wikidata n’est pas formalisée a priori - ce qui
est le cas de DBpedia -, mais elle émerge des usages et pratiques de la
communauté Wikidata. En effet, les deux dispositifs à vocation
encyclopédique diffèrent dans leurs finalités initiales. DBpedia est un
effort de la communauté scientifique pour extraire des informations
structurées du projet encyclopédique Wikipedia et les lier à d’autres
formalismes de données du Web sémantique. Wikidata est un dispositif de
curation2 ou d’annotation de données par les
contributeurs et contributrices de Wikipedia ou Wikidata.
Source : Wikidata-Basics | Wikidata Hackathon event for the Festival of Creative Learning, 2018
La base Wikidata fournit un support à de nombreux autres sites
et services au-delà des seuls projets de Wikimedia. Son contenu est
exporté dans des formats standards et peut être lié ou aligné à d’autres
ensembles de données ouvertes sur le Web des données3. Wikidata offre ainsi
un large domaine d’informations générales sur notre univers ou ses
représentations et des liens vers d’autres graphes ou bases de données.
Il contient à ce jour plus de 100 millions d’items.
La dynamique
de création collective de ce projet encyclopédique peut être saisie à
l’oreille grâce à l’application développée par Stephen LaPorte et
Mahmoud Hashemi.
1.2 Standard RDF du W3C
Le RDF (Resource Data Framework) est un cadre général de modélisation utilisé pour décrire formellement les ressources du Web4 via leurs métadonnées afin de permettre le traitement par inférence de telles descriptions. Développé par le W3C5, le RDF est le formalisme de base du Web sémantique.
Au sein de ce paradigme, un document ou une ressource consiste en un ensemble de triplets6, chacun associant un sujet, un prédicat et un objet :
- le “sujet” du prédicat 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, une autre ressource ou une valeur associée à la propriété (ou prédicat).
Le sujet et l’objet, dans le cas où ce sont des ressources, peuvent
être identifiés par un identifiant unique de la ressource (URI7), une
valeur ou être des nœuds anonymes. Le prédicat est nécessairement
identifié par un identifiant unique de la ressource. Par exemple, la
déclaration “Bob s’intéresse à Mona Lisa” est formalisée de la manière
suivante :
Un dépôt de triplets RDF ainsi formé correspond à un
multigraphe orienté étiqueté : chaque triplet correspond alors à une
arête orientée dont l’étiquette est le prédicat, le sujet est le nœud
source et l’objet est le nœud cible (figure 3).
1.3 Le langage SPARQL
SPARQL8 (prononcé sparkle, en français : « étincelle ») est à la fois un langage de requête et un protocole qui permettent de rechercher, d’ajouter, de modifier ou de supprimer des triplets RDF disponibles à travers le Web. Aujourd’hui, le Web de données (représenté par le nuage du Linked Open Data ou ses domaines) est interrogeable via des centaines de services SPARQL qui mettent à disposition de plus en plus de graphes de données ouvertes et liées comme c’est le cas du projet plurilingue Wikidata (Wikipédia (2022)).
Vocabulaire ou espace de noms
Dans Wikidata les entités et leurs coordonnées spatiales et temporelles sont modélisées selon les fragments de graphes lisibles par l’humain et la machine dans divers formats9 : XML, json, turtle, etc. Ces différents formats proposent une sérialisation différente d’un même modèle, le RDF. Ce sont des graphes de connaissances qui décrivent des entités et leurs relations. Pour Wikidata comme pour d’autres modèles de données, il existe un vocabulaire spécifique. En général, les ontologies du Web sémantique disposent d’un vocabulaire décrit au sein d’espaces de noms associés au micro-monde décrit.
Par exemple, pour modéliser les données des réseaux sociaux, il
existe un vocabulaire dédié Friend of a friend (FOAF) ; pour les
ressources bibliographiques, la BnF mobilise notamment le vocabulaire Functional Requirements for Bibliographic Records
(FRBR) élaboré par la Fédération internationale des
associations et institutions de bibliothèques (IFLA) etc. Un autre
exemple est l’ontologie du domaine associée à la diffusion de la musique
fondée en 2002 avec l’initiative MusicBrainz (Swartz 2002), “corne d’abondance des
communs” musicaux, déployée avec l’émergence du Web.
L’espace de nom de l’ontologie de Wikipedia, DBpedia est accessible à
cette URL : https://dbpedia.org/ontology/.
Préfixes et requêtes
À chaque vocabulaire utilisé pour construire la requête sont associés différents préfixes10. Dans le cas présenté, la déclaration du vocabulaire mobilisé (celui de Wikidata notamment) est intégrée aux packages utilisés. Toutefois, en général, il est nécessaire de le préciser dans l’en-tête de la requête SPARQL, sous une certaine forme :
PREFIX préfixe: <espace de nom>
Les éléments d’un triplet prennent alors la forme suivante :
prédicat = préfixe:propriété
domaine/co-domaine = préfixe:entité
Le préfixe identifie le cadre de définition de concept. Par exemple,
l’entité “ville” peut être décrite par “la ville de l’urbaniste”, “la
ville du géographe”, “la ville selon l’Insee”, etc. En effet, les
ontologies et les vocabulaires sont généralement construits dans un
cadre disciplinaire (histoire, épidémiologie, géographie, biologie,
etc.) ou de domaine d’activité (bibliothèques, musées, archives, etc.).
Il est donc possible de retrouver un même terme désignant une entité ou
un concept, mais qui le définit différemment. Par exemple, supposons que
les termes ou concepts d’un champ de l’urbanisme sont décrits dans
l’espace numérique dans une page
http://mondomaineurbanisme.fr/, et ceux d’un champ de la
géographie dans une autre page
http://mondomainegeographie.fr/ (toutes deux fictives ici).
Les préfixes associés, respectivement
PREFIX urba:<http://mondomaineurbanisme.fr/#> et
PREFIX geo:<http://mondomainegeographie.fr/#> par
exemple, permettent non seulement de simplifier la syntaxe :
<http://mondomaineurbanisme.fr/#>:ville en
urba:ville ou
<http://mondomainegeographie.fr/#>:ville en
geo:ville mais aussi de résoudre les questions de
définition ou de polysémie d’un même terme (ici “ville”) dans deux
domaines disciplinaires différents.
Classiquement, pour rechercher dans le vocabulaire DBpedia (dbo) des entités qui ont pour type ville dans le vocabulaire RDF (rdf), on peut écrire le triplet sous la forme suivante :
?city rdf:type dbo:city
sous réserve de déclarer en tête de la requête SPARQL les préfixes des vocabulaires DBpedia et RDF :
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Puis, si on souhaite connaître leur pays de rattachement, dans le vocabulaire DBpedia, on peut écrire un second triplet :
?city dbo:country ?country
Au sein des deux triplets, le point d’interrogation ?
permet de préciser, dans la requête, quelles sont les entités
recherchées : des objets de type ville (dbo:city) dans la
variable ?city et leur pays respectif
(dbo:country) dans la variable ?country.
Avec la déclaration des espaces de noms et la simplification de la syntaxe utilisant des préfixes, il est possible d’interroger des graphes (bases de données dites NoSQL11) au moyen d’un protocole SPARQL sur un point de présence (SPARQLEndPoint) au sein d’un réseau HTTP.
Dans la suite, plusieurs préfixes Wikidata spécifiques aux entités et aux types de propriétés sont utilisés. Dans le cadre de notre étude, le tableau suivant récapitule les classes et propriétés utilisées, ainsi que quelques préfixes du schéma Wikidata utilisés pour former les triplets :
| classe ou propriété | préfixe | exemple(s) de chemin | label Wikidata |
|---|---|---|---|
| P31 | wdt |
?identifiant wdt:P31 ?naturedelelement | nature de l’élément |
| Q5 | wd |
?identifiant wdt:P31 wd:Q5 | être humain |
| P373 | wdt |
?identifiant wdt:P373 ‘Johannes Vermeer’ | a pour catégorie |
| P18 | wdt |
?identifiant wdt:P18 ?image | a pour image |
| P170 | wdt, ps |
?oeuvre wdt:P170 wd:Q41264 OU ?oeuvreSt ps:P170 wd:Q41264 |
créé par (Q41264 identifie le peintre Johannes Vermeer) |
| P276 | wdt, p |
?oeuvre wdt:P276 ?lieu OU ?oeuvre p:P276 ?lieuSt |
a pour lieu |
| P625 | wdt |
?musee wdt:P625 ?coord | coordonnées |
| P580 | pq |
?lieuSt pq:P580 ?dated | a pour date de début |
| P582 | pq |
?lieuSt pq:P582 ?datef | a pour date de fin |
| label, language | wikibase |
SERVICE wikibase:label { bd:serviceParam wikibase:language “[AUTO_LANGUAGE], fr,en”.} |
syntaxe du service de nom et de langue de l’API WikidataQueryService |
Dans le cas où le prédicat de Wikidata est utilisé avec le préfixe
p, ps ou pq, la donnée associée
est une assertion (spécifiée dans la tableau par le suffixe -St),
c’est-à-dire un autre triplet. Ces spécificités du graphe Wikidata sont
abordées dans la partie
3.
2 Packages et données
2.1 Packages utilisés
Les packages utilisés pour réaliser l’ensemble de la chaîne de traitement présenté dans ce document sont les suivants :
wikidataR12 (et son extensionWikidataQueryServiceR) : permet d’écrire une requête pour interroger le graphe de données Wikidata au moyen d’une interface de programmation d’application (API) pour le service de requêtes Wikidata en langage SPARQL13 ;
rnaturalearth: met à disposition les données géographiques de Natural Earth ;
sf: permet la gestion et la manipulation de données géographiques vectorielles ;
dplyr: pour la manipulation des données ;
mapview: pour l’affichage interactif de données géographiques (repose sur la librairie JavaScript Leaflet) ;
tmap: pour la création de cartes thématiques ;
ggplot2: permet la production de graphiques basés sur la grammaire graphique (Wilkinson 2005) ;
av: génère des vidéos à partir d’images ou de graphiques R ;
patchwork: permet de combiner plusieurs graphiquesggplot2dans la fenêtre graphique ;
jpeg: permet l’import, l’enregistrement et l’affichage des images matricielles (format bitmap) ;
Vous pouvez utiliser les lignes de code suivantes pour installer ces packages :
# Liste des packages du CRAN nécessaires
liste_packages <- c("WikidataR",
"WikidataQueryServiceR",
"remotes",
"rnaturalearth",
"sf",
"dplyr",
"mapview",
"tmap",
"ggplot2",
"av",
"patchwork",
"jpeg")
# Packages à installer
liste_packages_a_installer <- liste_packages[!(liste_packages %in% installed.packages()[,"Package"])]
# Installation des packages manquants
install.packages(liste_packages_a_installer)
# Pour les versions les plus récentes de RStudio
# see https://stackoverflow.com/questions/78402917/compiling-error-for-packages-installation\
#-after-updating-to-r-4-4-on-ubuntu-22-0 et, le cas échéant, décommenter ci-dessous.
# install.packages("progress")glitter développé par Lise Vaudor
permet l’écriture de requêtes SPARQL dans un formalisme proche de
pratiques associées au langage R sans maîtriser la syntaxe SPARQL, pour
sonder divers graphes (dont Wikidata). Celui-ci n’est pas disponible sur
le CRAN.
Les informations sur le système d”exploitation et les versions des
packages utilisés pour générer ce notebook sont
disponibleq en fin de document.
2.2 Données collectées
Plusieurs sources de données sont utilisées pour ce travail exploratoire :
- des données issues du graphe Wikidata ;
- une couche géographique Natural Earth ;
- des fonds de carte accessibles via Leaflet.
3 Exploration du graphe Wikidata
Voici quelques éléments basiques du langage SPARQL permettant d’interroger la base de données Wikidata :
- la clause
SELECTdes données interrogées renvoie les variables spécifiques (avecCOUNT, qui renvoie le nombre des ces données ou avecGROUP_CONCAT, qui les concatène au sein d’une collection, regroupées parGROUP BYet triées parORDER BY),
- qui, accompagnée de la clause
WHERE { }, les lie à l’interrogation de propriétés et données associées, suivant les chemins du graphe,
- avec un service WikiLabel spécifique au point d’accès Wikidata
Query Service, du fait du caractère plurilingue de certaines
données du graphe Wikidata, permettant de limiter le résultat à la
langue choisie
wikibase:languagedu labelwikibase:labelassocié à l’entité ou la propriété recherchée,
- ou encore avec la fonctionnalité
OPTIONALde la clauseWHEREqui permet de renvoyer les variables même si les données liées aux propriétés ne sont pas instanciées (nœuds vides),
- et les différents préfixes associés aux spécificités des propriétés
simples, directes et indirectes, etc. des fragments de graphe de
Wikidata (+d’info).
Afin de permettre une bonne compréhension des requêtes réalisées pour la collecte de données sans entrer dans le détail de la syntaxe propre à SPARQL, celles-ci sont formulées de la manière suivante :
SELECT [données interrogées] [comptage ou concatenage] WHERE
{
[chemins principaux du graphe]
[chemins optionnels du graphe]
[service Wikilabel]
}
[groupe]
[ordonne]3.1 Modèle des données : artistes peintres et trajectoires de leurs œuvres
Le fragment de graphe de l’image Wikidata d’une peinture, objet du processus exploratoire, est illustré sous la forme d’un tableau dans la figure 4 ci-dessous.
Source : Wikidata
Pour plus d’informations, vous pouvez consulter l’introduction à Wikidata ou la page Wikibase dédiée au formalisme du dépôt de données Wikidata.
Après plusieurs explorations, nous avons décidé de nous intéresser, dans une première étape, au peintre néerlandais du XVIIe siècle, Johannes Vermeer.
Les fonctions find_item et find_property du
package WikidataR permet d’interroger le graphe à
partir d’une chaîne de caractères.
1. Entités liées à “Johannes Vermeer”
Il est par exemple possible de collecter les entités (item) correspondant à la chaîne de caractères “Johannes Vermeer” :
# Chercher les entités du graphe Wikidata correspondant à "Johannes Vermeer"
resultat_item <- find_item("Johannes Vermeer")
print(resultat_item)
Wikidata item search
Number of results: 10
Results:
1 Johannes Vermeer (Q41264) - Dutch painter (1632–1675)
2 Jan Vermeer van Haarlem the Elder (Q3159680) - painter from the Northern Netherlands and father of Barend, Isaac, and Jan Vermeer or van der Meer II (1628-1691)
3 Johannes Vermeer (Q15283995) - art exhibition
4 Johannes Vermeer (Q102229722) - Ph.D. Vrije Universiteit Amsterdam 1983
5 Johannes Vermeer (exhibition catalogue) (Q15284018) - catalogue of the Johannes Vermeer exhibition at the National Gallery of Art, 1995-1996
6 Johannes Vermeer catalog raisonné, 1908 (Q26235177) - catalog raisonné of Vermeer works by Cornelis Hofstede de Groot
7 Johannes Vermeer (Q2164464) - international train between Amsterdam and Cologne
8 Johannes Vermeer (Q124100835) - civil servant in the Dutch East Indies
9 Johannes Vermeer (Q19280548) - street in Ouderkerk aan de Amstel, the Netherlands
10 Johannes Vermeer Award (Q2141982) - Dutch art award
Une seule entité de valeur Q41264 parmi les dix
collectées semble correspondre à l’image au sens de (Hui 2015)
de l’objet Johannes Vermeer, le peintre recherché. Le résultat de la
requête find_item est composé d’un ensemble d’informations
($id, $repository, etc.).
$id
[1] "Q41264"
$title
[1] "Q41264"
$pageid
[1] 43555
$concepturi
[1] "http://www.wikidata.org/entity/Q41264"
$repository
[1] "wikidata"
$url
[1] "//www.wikidata.org/wiki/Q41264"
$display
$display$label
$display$label$value
[1] "Johannes Vermeer"
$display$label$language
[1] "en"
$display$description
$display$description$value
[1] "Dutch painter (1632–1675)"
$display$description$language
[1] "en"
$label
[1] "Johannes Vermeer"
$description
[1] "Dutch painter (1632–1675)"
$match
$match$type
[1] "label"
$match$language
[1] "en"
$match$text
[1] "Johannes Vermeer"
Le champ match correspond à la chaîne de caractères
recherchée : il est de $type label,
en$language en, sous forme de $text
Johannes Vermeer.
2. Propriétés liées à “artiste”
Pour connaître les propriétés (properties) associées à celle
des termes “artiste” ou “peintre” par exemple, on utilise
find_property.
Wikidata property search
Number of results: 5
Results:
1 creator (P170) - maker of this creative work or other object (where no more specific property exists)
2 Joconde author ID (P7711) - identifier for a person in the Service des Musées de France Joconde authority file
3 Artists in Canada record number (P5239) - authority control maintained by National Gallery of Canada Library listing biographical data for artists who were born in Canada or worked in Canada
4 make-up artist (P4805) - person in charge of make-up
5 game artist (P3080) - game artist(s) that produced art assets for role-playing games, collectible card games, video game, etc.
3. Propriétés liées à “peintre”
Wikidata property search
Number of results: 1
Results:
1 creator (P170) - maker of this creative work or other object (where no more specific property exists)
La propriété associée au terme choisi “peintre” (P170)
semble être celle liant un créateur à son œuvre ou autre objet. On
comprend comment ce terme est lié à cette propriété dans le modèle de
Wikidata en explicitant le champ $match :
$type
[1] "alias"
$language
[1] "fr"
$text
[1] "peintre"
La chaîne de caractères “peintre” est une forme textuelle
$text de $type “alias” de la propriété
P170, dans la langue française.
3.2 Déterminer l’identifiant Wikidata d’un peintre
Ces premières investigations du graphe permettent de comprendre que, pour collecter de manière précise des données spatio-temporelles associées aux œuvres créées par Johannes Vermeer, les modalités d’interrogation nécessitent d’identifier de manière suffisamment explicite l’entité recherchée telle qu’elle est modélisée au sein du fragment de graphe (figure 5).
SELECT
s’applique aux éléments figurés en données en sortie. Les propriétés et
objets associés (en entrée ou sortie), c’est-à-dire les chemins du
graphe, sont insérés dans l’accolade de WHERE.
Formalisation de la requête de recherche d’identifiant :
Sélection de(s) identifiant(s) où {
l'identifiant est de type humain; # chemin principal
et il entre dans la catégorie "Johannes Vermeer"; # chemin principal (fin)
}
Écriture de la requête en SPARQL :
SELECT ?identifiant
WHERE
{
?identifiant wdt:P31 wd:Q5;
wdt:P373 'Johannes Vermeer'.
}
Assignation de la requête dans R sous forme de chaîne de caractères dans un objet (le symbole “\” est un caractère d’échappement permettant de conserver une structure verbeuse de la requête) :
query <- "SELECT ?identifiant \
WHERE \
{ \
?identifiant wdt:P31 wd:Q5; \
wdt:P373 'Johannes Vermeer'. \
}"A l’aide de la fonction query_wikidata du
package WikidataR, nous commençons dans un premier
temps par obtenir l’identifiant Wikidata du peintre. Il est possible de
réaliser la même requête avec le package
WikidataQueryServiceR.
WikidataR
Exécution de la requête avec WikidataR :
Données récupérées :
Le résultat renvoyé par cette requête nous permet de vérifier que l’image de l’objet Johannes Vermeer est bien identifiée dans Wikidata :
- par la valeur “Q41264”, résultat de la requête réalisée avec le
package
WikidataR;
- par l’identifiant uniforme de ressource https://www.wikidata.org/wiki/Q41264 pour
WikidataQueryServiceR.
Avec WikidataR, on obtient une valeur de la base de
données sous la forme d’une chaîne de caractères commençant par Q suivi
d’un nombre à plusieurs chiffres.
WikidataQueryServiceR, on obtient un
identifiant uniforme de ressource sur un réseau qui adopte une syntaxe
associée à la norme d’internet. Un URI permet d’identifier une ressource
de manière pérenne (même si celle-ci est déplacée ou supprimée).
3.3 Lister les œuvres du peintre et trouver leurs localisations géographiques
Dans cette seconde étape, on se propose de lister les œuvres de
Johannes Vermeer avec leurs localisations. Au sein du graphe Wikidata,
on fait l’hypothèse que les coordonnées de la localisation d’une œuvre,
c’est-à-dire la valeur point(x,y), sont celles du musée ou
de l’institution où l’œuvre est actuellement exposée ou située. Afin
d’obtenir cette localisation à partir de l’identifiant du peintre, on
trace un premier chemin du graphe tel qu’illustré dans la figure 6.
On utilise le terme SPARQL OPTIONAL pour permettre de
collecter les données y compris dans le cas où l’information de
localisation d’une œuvre n’existerait pas dans Wikidata.
point(x,y) donne les coordonnées géographiques dans
le système de référence World Geodetic System (WGS84).
Le nom des œuvres et des musées (suffixe “Label”) est obtenu par le
service wikibase:label du package
WikidataQueryServiceR, dans la langue
wikibase:language choisie ou la fonction
sqp_label du package glitter.
3.3.1 Construction des requêtes
WikidataR
Formalisation de la recherche des œuvres de Vermeer et de leur localisation :
Sélectionner les données œuvre, musée et coordonnées telles que {
l'œuvre a pour peintre Johannes Vermeer; # chemin principal
en option {
l'œuvre est localisée dans un musee # chemin optionnel
ce musée a pour localisation les coordonnées # chemin optionnel
}
}
Écriture de la requête en SPARQL :
SELECT ?oeuvre ?musee ?coord WHERE
{
?oeuvre wdt:P170 wd:Q41264 .
OPTIONAL
{
?oeuvre wdt:P276 ?musee .
?musee wdt:P625 ?coord
}
}
Assignation de la requête dans R sous forme de chaîne de caractères dans un objet et exécution de la requête :
query <- "SELECT ?oeuvre ?musee ?coord WHERE \
{ \
?oeuvre wdt:P170 wd:Q41264 . \
OPTIONAL \
{ \
?oeuvre wdt:P276 ?musee .
?musee wdt:P625 ?coord \
} \
}"
## Exécution de la requête
data2_WR <- WikidataR::query_wikidata(query)Données récupérées :
WikidataQueryServiceR
Formalisation de la recherche des œuvres de Vermeer et de leur localisation désignées par leur nom en anglais :
Sélectionner les noms des données oeuvre, musée et les coordonnées telles que {
l'œuvre a pour peintre Johannes Vermeer; # chemin principal
en option {
l'œuvre est localisée dans un musee # chemin optionnel
ce musée a pour localisation les coordonnées # chemin optionnel
}
en langue anglaise (en) # service Wikilabel
}
Écriture de la requête en SPARQL :
SELECT ?oeuvreLabel ?museeLabel ?coord WHERE
{
?oeuvre wdt:P170 wd:Q41264 .
OPTIONAL
{
?oeuvre wdt:P276 ?musee .
?musee wdt:P625 ?coord
}
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en".
}
}
Assignation de la requête dans R sous forme de chaîne de caractères dans un objet et exécution de la requête :
query_label <- "SELECT ?oeuvreLabel ?museeLabel ?coord WHERE \
{ \
?oeuvre wdt:P170 wd:Q41264 . \
OPTIONAL \
{ \
?oeuvre wdt:P276 ?musee .
?musee wdt:P625 ?coord \
} \
SERVICE wikibase:label \
{ \
bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], en \". \
} \
}"
## Exécution de la requête
data2_WQSR <- query_wikidata(query_label)Données récupérées :
3.4 Premiers éléments d’analyse exploratoire
3.4.1 Quelques constats sur le graphe et les données
On constate que les données (non supervisées) du graphe Wikidata concernant les lieux d’exposition des œuvres de Vermeer et leurs coordonnées géographiques sont hétérogènes :
- certaines œuvres semblent n’avoir aucune localisation, l’information n’étant pas disponible dans le graphe Wikidata tel qu’interrogé (voir ci-dessous),
- d’autres semblent être liées à des lieux correspondant à des données d’une autre nature qu’un musée ou une institution (par exemple, Frick Collection ou Gallery of Honour),
- enfin, parmi les œuvres localisées, certaines présentent plusieurs localisations de nature différente (par exemple, l’œuvre “A Young Woman Standing at a Virginal”) et, dans certains cas, plusieurs fois le même musée avec éventuellement des coordonnées très légèrement distinctes (par exemple, “The Geographer” au Städel Museum).
Plusieurs hypothèses peuvent être esquissées, outre la question des différentes langues qui peuvent générer des doublons :
un même musée peut avoir plusieurs coordonnées géographiques renseignées (plusieurs couples du
Point(x,y)très proches, par exemple pour le Städel Museum),la localisation d’une œuvre peut conduire à une entité qui n’est ni un musée ni une institution culturelle mais le nom d’une collection (par exemple The Frick Collection) ou d’une salle d’un musée,
une même œuvre peut être située dans plusieurs musées (ou plusieurs fois dans un même musée), peut-être à des périodes différentes.
Ces constats sont liés non seulement au caractère non supervisé et collectif (hétérogène, voire lacunaire) de la production des données, mais aussi à la complexité de la saisie des données dans le graphe Wikidata. En effet, les modalités d’interrogation du graphe Wikidata sont multiples, en fonction notamment de la profondeur du graphe qui est sondée et de la qualité de l’affectation de valeurs à ses instances.
La série de requêtes présentées jusqu’à présent interroge les entités
Wikidata renseignées au moyen des valeurs simples du prédicat de
localisation, c’est-à-dire avec le préfixe wdt. Pour aller
plus en profondeur dans le graphe, vérifier la qualité de l’information
de localisation et déterminer sa composante temporelle, il est
nécessaire d’entrer plus en détail dans une autre forme d’instanciation
du graphe, spécifique à Wikidata, à savoir les valeurs complexes ou
déclarations (voir notamment la figure 7).
wdt) et les relations au sein des déclarations au moyen des
propriétés directes spécifiques (préfixes p,
ps ou pq) utilisées infra. Source : Wikibase
3.4.2 Le
corpus des œuvres de (P170) Johannes Vermeer selon
Wikidata
Pour bien comprendre la différence entre l’interrogation “en surface”
du graphe et celle “en profondeur”, on sonde deux modalités de la
propriété P170 créé par dont le peintre Vermeer est l’objet
pour identifier le corpus de ses œuvres.
Valeurs simples ou “quasi-vérités”
Formalisation de la recherche d’une liste ordonnée des œuvres de
Vermeer, en langue anglaise, mobilisant le préfixe Wikidata
wdt associé aux valeurs simples :
Sélectionner les données œuvre et leur nom telles que {
l'œuvre a pour créateur le peintre Johannes Vermeer; # chemin principal
en langue anglaise (en) # service Wikilabel
}
par ordre décroissant # ordonne
Écriture de la requête en SPARQL :
SELECT ?oeuvre ?oeuvreLabel
WHERE
{
?oeuvre wdt:P170 wd:Q41264
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en ".
}
}
ORDER BY DESC(?oeuvre)
Assignation de la requête dans R sous forme de chaîne de caractères dans un objet et exécution de la requête :
query_valeur_simple <- "SELECT ?oeuvre ?oeuvreLabel WHERE \
{ \
?oeuvre wdt:P170 wd:Q41264 \
SERVICE wikibase:label \
{ \
bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], en \". \
} \
} \
ORDER BY DESC( ?oeuvre )"
## Exécution de la requête
resultats_oeuvres_valeur_simple <- WikidataQueryServiceR::query_wikidata(query_valeur_simple)Nombre d’œuvres associées avec une valeur simple :
[1] 37
Valeurs complexes ou déclarations
Formalisation de la recherche d’une liste ordonnée des œuvres de
Vermeer, en langue anglaise, mobilisant les préfixes Wikidata
p/ps associés aux déclarations (valeurs complexes) :
Sélectionner les données œuvre et leur nom telles que {
l'œuvre est liée à une assertion de création au peintre Johannes Vermeer; # chemin principal
en langue anglaise (en) # service Wikilabel
}
par ordre décroissant # ordonne
Écriture de la requête en SPARQL :
SELECT ?oeuvre ?oeuvreLabel
WHERE
{
?oeuvre p:P170/ps:P170 wd:Q41264
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en ".
}
}
ORDER BY DESC(?oeuvre)