Publié le :

Test d'intégration SPARQL local avec SAS-SPARQLwrapper

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par configurer les options de log pour les macros et inclut la définition des macros du 'sparqlquery.sas©'. Il utilise ensuite la macro `%sparqlupdate` pour insérer un ensemble de sept titres de livres dans un graphe SPARQL spécifique (`http://example/bookStore`) sur un serveur local (`localhost:8890`). Après l'insertion, la macro `%sparqlquery` est appelée pour exécuter une requête `SELECT *` afin de récupérer tous les titres précédemment ajoutés. Les résultats de cette requête sont stockés dans une table SAS© nommée 'query'. Enfin, `PROC PRINT` est utilisée pour afficher le contenu de cette table 'query', permettant de vérifier que l'insertion et la récupération des données ont été réussies.
Analyse des données

Type : EXTERNE


Les données sont gérées directement au sein d'un endpoint SPARQL externe, accessible via `http://localhost:8890/sparql/`. Le script procède à la 'création' de ces données via une instruction `INSERT DATA` SPARQL et à leur récupération via une instruction `SELECT *` SPARQL. Bien que le script initie la création des données, celles-ci résident dans une base de données tierce, ce qui en fait une source externe du point de vue de SAS.

1 Bloc de code
Configuration et inclusion de macros
Explication :
Ce bloc configure les options SAS pour afficher les logs des exécutions de macros (`mprint`, `mlogic`) et inclut le fichier 'sparqlquery.sas', qui contient les définitions des macros `%sparqlupdate` et `%sparqlquery` nécessaires pour interagir avec un endpoint SPARQL.
Copié !
1options mprint mlogic nocenter;
2%include "sparqlquery.sas";
3 
2 Bloc de code
Macro %sparqlupdate Data
Explication :
Appel de la macro `%sparqlupdate` pour envoyer une instruction SPARQL `INSERT DATA` à l'endpoint spécifié. Cette instruction ajoute sept triplets (représentant des livres avec leurs titres) dans le graphe `<http://example/bookStore>` de la base de données SPARQL. Le paramètre `debug=Y` active la journalisation détaillée de l'exécution.
Copié !
1%sparqlupdate(
2endpoint=http://localhost:8890/sparql/update,
3update=%str(
4PREFIX dc: 1.1/>
5INSERT DATA
6{
7GRAPH {
8 dc:title "A new book 1" .
9 dc:title "A new book 2" .
10 dc:title "A new book 3" .
11 dc:title "A new book 4" .
12 dc:title "A new book 5" .
13 dc:title "A new book 6" .
14 dc:title "A new book 7" .
15}
16}
17),
18resultdsn=updateresult,
19debug=Y
20);
3 Bloc de code
Macro %sparqlquery
Explication :
Exécution d'une requête SPARQL `SELECT *` via la macro `%sparqlquery`. Cette requête vise à récupérer tous les sujets (`?s`) et leurs titres (`?o`) du graphe, correspondant aux données insérées précédemment. Les résultats sont stockés dans la table SAS `query` pour une utilisation ultérieure dans SAS.
Copié !
1%sparqlquery(
2endpoint=http://localhost:8890/sparql/query,
3query=%str(
4PREFIX dc: 1.1/>
5SELECT *
6{
7 ?s dc:title ?o .
8}
9 ),
10querymethod=queryGET,
11resultdsn=query,
12sparqlquerysxlemap=%str(sparqlquery-sxlemap.map),
13debug=Y
14);
4 Bloc de code
PROC PRINT
Explication :
La procédure `PROC PRINT` est utilisée pour afficher le contenu de la table SAS `query`. Cela permet de visualiser les résultats de la requête SPARQL et de confirmer que les données ont été correctement récupérées de l'endpoint externe.
Copié !
1PROC PRINT DATA=query width=min;
2RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Program : example-localhost-virtuoso-01.sas Purpose : Basic test of SAS-SPARQLwrapper using a query and local server