Module 2

Le web de données

Activité 2.4 SPARQL en pratique

3 Utiliser le modèle RDF pour décrire des ressources sur le web de données.
8 Utiliser le logiciel Protégé pour la représentation et le traitement des connaissances.
9 Construire des requêtes SPARQL sur une base de connaissances.
10 Analyser des raisonnements sur une base de connaissances.

Au cours de cette activité, vous vous approprierez le logiciel Protégé (compétence 8) et vous l’utiliserez pour interroger une base de données RDF à l’aide du langage SPARQL (compétence 9). SPARQL ne permet pas seulement de récupérer des informations qui sont explicitement décrites dans la base RDF, mais aussi d’inférer de nouvelles informations à partir de celles présentes dans la base (compétence 10).

Cette activité pratique comprend deux parties. Dans la première (A), vous formulez et exécutez des requêtes SPARQL sur une base RDF pour en extraire le contenu. Dans la seconde partie (B), vous allez formuler et exécuter des requêtes pour enrichir le contenu de la base RDF.

Les deux parties de l’exercice constituent le travail noté 3 du cours évalué sur 18 points.

Partie A – Interrogation d’une base RDF (12 points)

  1. Installez et configurez la version 4.3 du logiciel Protégé à l’aide des sections 1, 2, 3 et 8 du guide Introduction à Protégé.

    Note : Ne pas importer de vocabulaires (section 4 et 5) à ce stade-ci. Dans les consignes qui suivent, il sera précisé quand vous devez importer tel ou tel vocabulaire.

  2. Dans Protégé, ouvrez la base RDF B4 au format Turtle.
  3. Consultez la partie A du gabarit Requêtes SPARQL. Vous utilisez ce gabarit pour communiquer le résultat de votre travail au chargé d’encadrement.
  4. Formulez en SPARQL et exécutez successivement dans Protégé les requêtes simples suivantes pour interroger la base B4. Consignez les requêtes et les résultats de chaque requête dans le gabarit Requêtes SPARQL. Utilisez des termes significatifs pour nommer les variables dans les requêtes. Soyez attentif à la déclaration des espaces de nommage et à la composition des URI dans les requêtes. Pour déclarer les espaces de nommage et utiliser les préfixes adéquats, veuillez-vous référer au document Liste des préfixes.

    Requête 1
    Dans quelle(s) ville(s) est installée la TÉLUQ?

    Requête 2
    Combien d’étudiants sont inscrits à la TÉLUQ?

    Note : Dans certains cas, dans Protégé les requêtes retournent la réponse accompagnée de la référence au type de donnée (exemple : ^^<https://www.w3.org/2001/XMLSchema#nonNegativeInteger>). C’est la responsabilité des programmes utilisateurs des requêtes d’offrir un format plus présentable à l’utilisateur.

    Requête 3
    Quels sont les membres de l’UER Science et Technologie? Ordonnez les réponses par ordre alphabétique.

    Requête 4
    Quels sont les membres de l’UER Science et Technologie qui s’intéressent au web sémantique?

    Note : Utilisez < et > pour identifier une ressource pour laquelle l’espace de nommage n’est pas spécifié dans l’entête de la requête.

    Requête 5
    Quels sont les membres de l’UER Science et Technologie dont le patronyme est « Paquette »? Affichez dans les réponses le titre de la personne (M. ou Mme).

    Note : En formulant la requête, précisez le type des données utilisées. Par exemple, ici, vous devez préciser que « Paquette » est une chaîne de caractères (^^xsd :string). Pour identifier le type de données, veuillez-vous référer, au besoin, à la Liste des types de données.

    Requête 6
    Quels sont les cours offerts par la TÉLUQ? Affichez l’auteur du cours et si applicable les sujets du cours dans les réponses. De plus, ordonnez les réponses par ordre alphabétique.

    Requête 7
    Établissez une liste de cinq cours de la TÉLUQ. Affichez la description du cours dans les réponses.

    Requête 8
    En les classant par ordre alphabétique, quels sont les cinq premiers cours de la TÉLUQ? Affichez la description du cours dans les réponses.

  5. Formulez en SPARQL et exécutez dans Protégé les requêtes complexes suivantes pour interroger la base B4. Consignez également les résultats de chaque requête dans le gabarit Requêtes SPARQL. Vous pouvez consigner les résultats en les recopiant ou en intégrant une capture d’écran contenant les résultats.

    Note : Pour réaliser une capture d’une partie de l’écran : Windows et Mac OS X.

    Requête 9
    Quelles sont les personnes qui ont travaillé avec Gilbert Paquette sur des projets de recherche aujourd’hui finis? Et quels sont ces projets? Ordonnez les résultats par ordre alphabétique en fonction des projets.

    Requête 10
    Modifiez la requête 9 afin d’éviter les réponses pour lesquelles Gilbert Paquette a été un collaborateur de Gilbert Paquette!

    Note : Le W3C, lors de la standardisation de SPARQL n’a pas retenu UNSAID dont il est question dans l’ouvrage de référence et a privilégié FILTER NOT EXISTS et MINUS.

    Requête 11
    Quelles sont les personnes non scientifiques, employées au LICEF ou à la TÉLUQ, qui ont travaillé avec Gilbert Paquette sur des projets aujourd’hui finis? Et quels sont ces projets? Si applicable, indiquez à quel groupe appartient la personne. Ordonnez les résultats par ordre alphabétique en fonction des projets.

    Requête 12
    Quels sont les projets finalisés ou non auxquels participe Gilbert Paquette et qui ont débuté après le 1er janvier 2009? Quel est la date de démarrage de chaque projet? Si applicable, indiquez la date de fin du projet. Ordonnez les résultats par ordre chronologique, le premier étant le projet le plus ancien.

    Note : Ne pas oublier d’écrire les requêtes en spécifiant le type des données utilisées (par exemple ^^xsd:date).

    Requête 13
    Quel est le premier projet (finalisé ou non) de Gilbert Paquette depuis 2008? Quelle est la date de démarrage du projet? Si applicable, indiquez la date de fin du projet.

    Requête 14
    Quel est le dernier projet finalisé par Gilbert Paquette depuis 2008 ? Quelle est la date de démarrage du projet ?

    Requête 15
    Combien de cours a créé Gilbert Paquette?

    Requête 16
    Combien chaque programme contient-il de cours? À quel cycle d’étude appartient chaque programme? Regroupez les réponses par programme.

    Requête 17
    Existe-t-il un cours dont le sujet est le web sémantique?

    Note : Utilisez la ressource suivante de Dbpedia pour formuler la requête : https://dbpedia.org/resource/Semantic_Web

    Requête 18
    Le cours INF 6070 fait-il partie d’un programme de 1er cycle?

    Requête 19
    Gilbert Paquette a-t-il conçu plus de deux cours?

    Note : Utilisez les sous-requêtes (subqueries).

Partie B – Enrichissement d’une base RDF (6 points)

Note : Lors de l’utilisation de la fonction CONSTRUCT de SPARQL, Protégé n’ajoute pas dynamiquement les nouveaux triplets à la base RDF comme on pourrait s’y attendre. Si vous voulez voir l’effet d’une extension de la base de triplets, il vous faut alors les ajouter manuellement dans le fichier Turtle. D’autres outils le font  automatiquement. C’est le cas par exemple de Virtuoso ou de Callimachus.

  1. Consultez maintenant la partie B du gabarit Requêtes SPARQL.
  2. Toujours en utilisant la base RDF B4 dans Protégé, formulez en SPARQL (en utilisant la fonction CONSTRUCT) et exécutez les requêtes suivantes. Ces requêtes permettent d’enrichir la base RDF de nouveaux triplets. Consignez les résultats de chaque requête dans la partie B du gabarit Requêtes SPARQL.

    Requête 20
    Tous les employés de la TÉLUQ ont pour page web institutionnelle (foaf:workplaceHomepage) la page web institutionnelle de la TÉLUQ : https://www.teluq.ca.

    Requête 21
    Une personne  qui est le créateur d’un cours et qui est membre de l’UER Science et Technologie est également un scientifique et un employé de la TÉLUQ.

    Note : Utilisez dct:creator et db:Scientist pour formuler la requête.
    Ajoutez manuellement à la base RDF les résultats de la requête directement dans le fichier B4 puisque Protégé, contrairement à d’autres logiciels, ne le fait pas automatiquement à la suite d’une requête CONSTRUCT. Assurez-vous notamment que la base augmentée contienne le fait que Daniel Lemire et France Henri sont des employés de la TÉLUQ et des scientifiques.

    Requête 22
    Dire qu’une personne est le créateur d’un cours revient à dire que cette personne a fait ce cours.

    Note : Utilisez dct:creator et foaf:made pour formuler la requête.  Ajoutez manuellement à la base RDF les résultats de la requête.

    Requête 23
    Modifiez la requête 6 en utilisant foaf:made et observez les résultats obtenus en les comparant à ceux obtenus avec la requête 6.

    Requête 24
    Les personnes qui ont travaillé sur un projet commun se connaissent.

    Note : Utilisez foaf:knows. Évitez de dire qu’une personne se connaît elle-même! Affichez les personnes par ordre alphabétique.

  3. Le travail terminé, déposez le résultat de votre travail dans l’outil de dépôt de travaux de la TÉLUQ. Selon la feuille de route, vous devriez communiquer ce fichier à votre chargé d’encadrement à la semaine 6 du cours.

License

Le contenu du site du cours INF 6070 de la TÉLUQ est diffusé sous licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0.

Les autorisations au-delà du champ de cette licence peuvent être obtenues auprès de Gilbert Paquette.