Skip to content

Sparql : premier pas (installation de l’outil)

14/06/2012

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 turtlesRDFa 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 Webbypar 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 :

  1. sur cette pagelien pour télécharger la version binaire 2.0
  2. fichier à dézipper, qui crée sur mon bureau un répertoire que je renomme « twinkle »
  3. Je copie-colle ce répertoire dans C:\Program Files (x86)
  4. 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
  5. Je double-clique sur mon raccourci
La zone supérieure sert à écrire les requêtes, la zone du bas permet d’afficher les résultats.

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.

7 commentaires
  1. B. Majour permalink
    14/06/2012 12:25

    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

  2. 14/06/2012 12:35

    @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 !

  3. 18/06/2012 20:10

    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.

  4. Jean-Hugues Morneau permalink
    07/01/2013 19:21

    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#&gt;
    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 !

  5. 08/01/2013 09:16

    @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é

Trackbacks

  1. Sparql : deuxième pas « Bibliothèques [reloaded]
  2. Utiliser les SPARQL Endpoint comme si c’était des API « Bibliothèques [reloaded]

Les commentaires sont fermés.

%d blogueurs aiment cette page :