Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:mlbda:tmes:rdf_et_sparql_jena

TME RDF et SPARQL Jena

Ce TME utilise l'outil ARQ de Jena qui permet de stocker et d'interroger des données RDF. Pour s'en servir, suivre les étapes suivantes :

  1. créer un répertoire jena et y extraire le contenu de apache-jena-2.12.1.tar.gz en tapant
     mkdir /tmp/jena && tar xzf /Infos/bd/sparql/apache-jena-2.12.1.tar.gz -C /tmp/jena
  2. mettre à jour la variable d'environnement $PATH en tapant
    cat /Infos/bd/sparql/jena-export.txt >> ~/.bashrc && source ~/.bashrc

Pour vérifier que vous avez bien configuré jena, taper

which arq

vous deviez obtenir

/tmp/jena/apache-jena-2.12.1/bin/arq

Pour avoir l'aide, taper

arq -h

Pour charger les données : Désarchiver l'archive contenant les jeux de données sont disponibles dans l'archive en tapant

 tar xvf /Infos/bd/sparql/TME-RDF.tar
cd  TME-RDF 

puis vérifier que le répertoire contient bien les fichiers :

 Ex1.ttl  Ex2.ttl Ex3.ttl    Ex4.ttl

Pour vérifier que le format des fichiers correspond bien au format turttle, taper

 turtle Ex1.ttl  |wc -l

et vérifier que vous obtenez bien 7.

Pour tester une requête taper

arq --data Ex4.ttl --query test.spl

et observer le résultat obtenu. Ce dernier doit avoir la forme ci-dessous.

-----------------------
| dept        | COUNT |
=======================
| "chemistry" | 1     |
| "surgery"   | 1     |
| "urbanism"  | 1     |
| "culture"   | 2     |
-----------------------

Travail à faire

Exercice facultatif

Construire des requêtes SPARQL à partir des motifs de l'exercice 2 du TD et les tester sur les triplets du fichier Ex2.ttl.

Exercice obligatoire

Reprendre les exercices 3 et 4 du TD en utilisant, respectivement, les triplets des fichiers Ex3.ttl et Ex4.ttl. Vous pouvez utiliser les fichiers qx_Ex3.spl et qx_Ex4.spl fournis. Écrivez chaque requête dans un fichier séparé.

Réponses attendues Exercice 3:

  • Q1: Extraire l’ensemble des IRI des sujets

 idem en retournant les noms locaux

  • Q2: Même question avec les prédicats.

  • Q3: Les villes citées dans des triples de cette base.

  • Q4: Les personnes qui ont étudié dans la même université que l’un de leur parents (sans prendre en compte la propriété childOf).

  • Q5: Les personnes qui ont étudié dans une université où leur deux parents ont étudié.

  • Q6:Donnez les personnes qui ont étudié dans une université où aucun de leur parent n’a étudié. Pas de résultat.
  • Q7: Donnez les noms et les universités des personnes qui ont au moins un frère ou une soeur.
p u
:john :ucsd
:richard :mit
:liz :cmu

*Question subsidiaire Donnez les noms et les universités des personnes qui ont au moins un frère ou une soeur et qui n'ont pas de frère ou de soeur qui ont étudié à la même université qu'elles.

  • Q8: Extraire les personnes qui étudient dans une ville différente de celle où ils habitent.

  • Q9: Extraire les personnes qui sont ami(e)s d’un(e) ami(e) de Liz. Remarque : ne pas retourner Liz et les ami(e)s direct(e)s de Liz!

Réponses attendues Exercice 4:

  • Q1: Noms des employés avec leur job suivant l’ordre alphabétique décroissant de leur nom.

  • Q2: Les 3 premiers employés suivant l’ordre alphabétique de leurs noms de famille (surname).

  • Q3: Les 3 premiers employés, qui ont un nom de famille (surname) et qui sont les mieux payés.

  • Q4: Les employés qui ne sont ni médecin ni chanteur.

  • Q5: Les employés dont le nom commence par l.

  • Q6: Le plus grand salaire (sans utiliser ORDER BY et LIMIT). Retourner l'employé et son salaire.

  • Q7 : Les couples d'employés qui gagnent le même salaire (chaque couple d'employés doit apparaître une seule fois). Indice : utiliser la fonction str(?v) pour extraire la chaîne de caractères à partir de ?v.

  • Q8 : Les couples d'employés tels que la différence entre leurs salaires est supérieure à 5. Indice : utiliser xs:integer(?l) pour convertir le literal ?l en entier. Ajouter le préfixe prefix xs: <http://www.w3.org/2001/XMLSchema#>

  • Q9: Le nombre de départements.

Documentation diverse

  • Pour comparer des chaînes de caractères, utiliser la fonction regex(str(?n), “expression régulière”)
site/enseignement/master/mlbda/tmes/rdf_et_sparql_jena.txt · Dernière modification: 09/12/2020 09:15 par amine