Sparql : premier pas (installation de l’outil)
Petit préambule
Premier billet d’une série que j’espère longue, visant à une petite autoformation personnelle de moi-même pour l’utilisation de SPARQL. Sparql, c’est le langage permettant d’interroger des bases exposant leurs données selon les préconisations du linked data.
Grosso modo, je sais à quoi ressemblent des triplets (qu’ils soient sous forme de turtles, RDFa ou RDF/XML). Mais je ne sais pas comment on les exploite.
Je suis loin d’avoir des projets précis sur l’utilisation, par exemple pour notre opac, de sources de données structurées en linked data. Mais pour arriver à en avoir, j’ai besoin, déjà, d’être capable de manipuler un peu des bases avec un outil local.
J’arrive à exploiter des API non pas pour des web services, mais pour des usages "perso" (càd des manipulations de données sur mon poste, le plus souvent à usage professionnel tout de même), parce que je maîtrise XSL. Dans le cas contraire, je doute que j’imaginerai seulement pouvoir m’en servir dans tel ou tel cas.
Pour SPARQL, il faut que ce soit pareil : commencer en utilisant ce langage pour des besoins très limités, voire complètement fictifs, afin d’avancer peu à peu.
Je ne doute pas d’être à l’occasion ridicule pour ceux qui sont bien plus avancés. S’ils prennent la peine de me le dire alors, ça me permettra de progresser.
Cette série n’est donc pas didactique ou pédagogique comme pouvait l’être la série XSL (ou je maîtrisais le contenu avant de commencer la série). Là, je découvre en même temps. Ce sera certainement plus brouillon — donc encore moins clair qu’avant !
Tutoriel
pour l’apprentissage, je suis les étapes de ce tutoriel : Introducing SPARQL: Querying the Semantic Webby, par Leigh Dodds
Outil
Le plus important, c’est de pouvoir immédiatement tester la chose. Alors…
Pour exécuter des requêtes XSL locales, j’utilise généralement :
- un éditeur XML : XML Copy Editor
- un processeur XSL permettant d’utiliser aussi des fonctions de la version 2 de XSL : Kernow
Pour Sparql, j’ai installé Twinkle :
- sur cette page, lien pour télécharger la version binaire 2.0
- fichier à dézipper, qui crée sur mon bureau un répertoire que je renomme "twinkle"
- Je copie-colle ce répertoire dans C:\Program Files (x86)
- Dans le répertoire C:\Program Files (x86)\twinkle, je fais un clic droit sur le fichier twinkle.jar, et je crée un raccourci que je dépose sur mon bureau
- Je double-clique sur mon raccourci
Testons-z-ensemble
Copiez-collez le texte suivant dans la zone du haut
PREFIX table: <http://www.daml.org/2003/01/periodictable/PeriodicTable#>
SELECT ?name
FROM <http://www.daml.org/2003/01/periodictable/PeriodicTable.owl>
WHERE { ?element table:name ?name. }
et cliquez sur le bouton "Run"
Vous devriez obtenir une liste de résultats
Bravo, vous avez fait une requête Sparlq !
Ca mérite bien une pause (et/ou un chocolat)
Dès que possible, un deuxième billet pour expliquer un peu ce qui vient de se passer.


Bonjour
pour des usages “perso”
Tu peux nous donner un ou deux exemples pas trop "perso"
, pour voir ce à quoi ça peut servir. Par exemples les sites que tu interroges avec ce genre d’outils.
Merci à toi.
B. Majour
@B. Majour : précisément non, je ne peux pas, vu que je découvre Sparql en même temps que je rédige cette série. Donc à ce stade je ne suis pas plus avancé. Et je ne m’en sers pas encore.
Cela dit je soupçonne la chose suivante :
récemment j’ai expliqué comment récupérer une liste de PPN sur la base d’une liste d’ISBN. On arrive assez bien à le faire, mais :
1. c’est du XSL relativement complexe
2. ça tourne longtemps pour extraire ces infos.
Je suppose qu’avec du Sparql, ça donne des requêtes plus faciles à rédiger, et les traitements sont plus rapides. Donc c’est potentiellement à la portée de plus de monde.
Je n’ai donc pas d’exemple concrets à donner (par "perso", je parlais d’usages pro, mais pas en ligne : des trucs que je fais tourner sur mon poste pour manipuler des données).
En revanche je constate une chose : avec la maîtrise de XSL, j’ai l’idée d’exploiter des API (et plus j’en utilise plus j’ai d’idées d’utilisations).
Or les linked data, ce sont des millions de données à disposition. Je suis sûr que je pourrai y trouver rapidement un usage. Quand je saurai comment faire…
Mais à ce stade il ne faut pas compter sur moi pour te "convaincre" par des cas pratiques !
Bonjour,
Une application possible serait d’utiliser les données de dbpedia et en particulier les predicat dbpedia-owl:influencedBy ou dbpedia-owl:influenced pour trouver les relations entre des écrivains ou des réalisateurs.
Ce qui me permettrait d’alimenter "l’outil de découverte" sur le site de la médiathèque et qui utilise l’API last.FM.
Le côté délicat de la chose, c’est le peu de certitude concernant la véracité des informations. Mais Last.FM est tout aussi incertain (pour les biographies par exemple qui sont extraites parfois sur wikipédia donc dbpédia cqfd).
L’autre difficulté :-p c’est la requête elle même… Aurais tu une idée?
A noter qu’un projet d’extraction du wikipédia français a vu le jour. Ce qui permettra d’obtenir plus d’informations qui pourraient nous intéresser directement et ainsi enrichir nos catalogues francophones.
J’en profite pour te remercier pour twinkle et surtout kernow que j’utilise régulièrement.
Bonjour,
Je crois qu’il y a eu un problème dans le copier/coller des liens sur l’exemple de requête SPARQL :
Sur mon navigateur, je lis :
PREFIX table: <http://www.daml.org/2003/01/periodictable/PeriodicTable#>
SELECT ?name
FROM il semblerait que le caractère ">" a été remplacé par ">"
Du coup, le copier/coller de la requête dans Twinkle et son exécution donne… un message d’erreur ! Pas super quand on débute… comme moi !
La requête correcte est :
PREFIX table:
SELECT ?name
FROM
WHERE { ?element table:name ?name. }
J’ai l’impression que cette corruption due au caractère ">" se retrouve dans les billets suivants.
Vous serait-il possible de corriger les liens dans vos exemples ?
Quoi qu’il en soit, merci pour cette remarquable entrée en matière pour SPARQL !
@Jean-Hugues : Effectivement !
Comme vous avez pu le voir d’ailleurs pour le "rendu" de votre propre commentaire, la gestion des > est assez pénible à gérer. Dans mon interface de saisie, l’affichage est correct, et plante dans la publication (peut-être à cause du caractère # qui le précède ?)
Quoiqu’il en soit j’ai remplacé ma balise <code> par <pre> et ça s’affiche correctement. Je vais jeter un coup d’oeil aux billets suivants.
Merci de me l’avoir signalé