D2R Server : accéder à des bases de données avec SPARQL et comme données liées

Traducteur

Julien Plu

D2R Server est un outil pour publier des bases de données relationnelles sur le Web sémantique. Il permet aux navigateurs RDF et HTML de naviguer dans le contenu de la base de données, et permet d'effectuer des requêtes sur celle-ci en utilisant le langage SPARQL. C'est une partie de la plate-forme D2RQ. Commentez

- Titre : D2R Server : accéder à des bases de données avec SPARQL et comme données liées

- Traducteur : Julien Plu

- Parution : 7 avril 2012

- Mise à jour : 12 janvier 2016

- Public visé :

- Licence : Copyright ® 2012-2016 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. À propos de D2R Server

- II. Fonctionnalités

- III. Démarrer D2R Server

- III-A. Démarrer D2R Server à partir de la ligne de commande

- III-B. Démarrer D2R Server dans un conteneur de servlets

- IV. Configuration de D2R Server

- IV-A. Configuration des options au niveau du serveur

- IV-B. Jeu de données et ressources des métadonnées

- IV-B-1. Modèles par défaut personnalisables

- IV-B-2. Personnaliser les modèles des métadonnées

- IV-B-3. Exemple de modèle

- V. Optimisation des performances

- VI. Remerciements

I - À propos de D2R Server

D2R Server est un outil pour publier le contenu des bases de données relationnelles sur le Web sémantique, un espace d'information mondial composé de données liées.

Les données sur le Web sémantique sont modélisées et représentées en RDF. D2R Server utilise une association D2RQ personnalisable pour associer le contenu d'une base de données dans ce format et permet aux données RDF d'être navigables et recherchables - les deux principaux paradigmes d'accès au Web sémantique.

Les requêtes venant du Web sont réécrites en requêtes SQL par correspondance. Cette traduction à la volée permet une publication du RDF en direct, à partir de grandes bases de données et élimine le besoin de réplication des données dans un espace de stockage RDF dédié.

II - Fonctionnalités

Naviguer dans le contenu d'une base de données
Une simple interface Web, permettant la navigation au travers du contenu des bases de données, donne aux utilisateurs des données RDF une vue « lisible pour l'Homme ».

Des URI déréférençables
En suivant les principes des données liées, D2R Server assigne une URI à chaque entité qui est décrite dans la base de données, et rend ces URI déréférençables - à savoir, une description RDF peut être récupérée simplement en accédant à l'URI de l'entité sur le Web. Les navigateurs Web sémantiques comme Marbles ou LinkSailor peuvent suivre les liens d'une entité à l'autre, surfant sur le Web de données.

Négociation de contenu
En suivant les bonnes pratiques, l'interface Web ordinaire et le graphe RDF navigable partagent les mêmes URI. En lire plus à propos des interfaces offertes par D2R Server, incluant des exemples de requêtes et de réponses HTTP, dans la note technique Publishing Databases on the Semantic Web.

Point d'accès et explorateur SPARQL
L'interface SPARQL permet aux applications d'appliquer des requêtes sur la base de données en utilisant le langage SPARQL 1.1 avec le protocole SPARQL. Un simple explorateur SPARQL est inclus.

Télécharger les contenus de BLOB/CLOB
D2R Server peut être configuré pour fournir les fichiers stockés dans la base de données en BLOBs ou CLOBs. Plus…

Fournir le vocabulaire
Si les nouvelles classes et propriétés sont introduites pour un déploiement de D2R, le serveur peut leur faire des URI déréférençables dans l'esprit des données liées, et permet une configuration de leurs labels, commentaires, et des propriétés additionnelles. Plus…

Publier des métadonnées
Les métadonnées, comme l'attribution de licences et la provenance des informations, peuvent être attachées à tout document RDF et page Web publiés par D2R Server. Plus…

III - Démarrer D2R Server

En premier, télécharger la distribution D2RQ.

Pour le développement et le test, D2R Server peut être démarré à partir de la ligne de commande. Le fonctionnement recommandé pour la production est de déployer l'application Web D2R Server dans un conteneur de servlets comme Apache Tomcat ou Jetty.

Voir aussi : Commencer avec D2RQ

III-A - Démarrer D2R Server à partir de la ligne de commande

D2R Server peut être démarré comme une application serveur autonome qui inclut son propre serveur Web. Ceci est recommandé pour le test et le développement.

d2r-server [-p port] [-b serverBaseURI]
[--fast] [--verbose] [--debug]
mapping-file.ttl

mapping-file.ttl
est le nom du fichier d'association D2RQ à utiliser.

Si aucun fichier d'association n'est fourni, alors la connexion à la base de données doit être spécifiée dans la ligne de commande en utilisant les mêmes paramètres de connexions comme pour l'outil generate-mapping, et une association par défaut sera utilisée.

-p port
D2R Server sera démarré sur ce port, par défaut sur 2020.

-b serverBaseURI
L'URI de base où D2R Server est démarré, par défaut sur http://localhost:2020/, doit être spécifié si D2R Server doit être accessible à partir d'autres machines, ou s'il est supposé être démarré sur un autre port que 2020.

--fast
Active les optimisations de bleeding-edge, techniques avancées qui se traduisent par de meilleures performances, mais peuvent ne pas être testées suffisamment. Généralement, nous recommandons l'utilisation de cette option sauf si des problèmes sont observés.

--verbose
Active la journalisation des informations.

--debug
Active l'enregistrement des informations de débogage.

III-B - Démarrer D2R Server dans un conteneur de servlets

D2R Server peut être démarré comme une application Web J2EE à l'intérieur d'un conteneur de servlets existant, comme Apache Tomcat ou Jetty. Ceci est recommandé pour une utilisation en production.

1. Assurez-vous que votre fichier d'association inclut un bloc de configuration, comme décrit dans la section de configuration du serveur. Définir l'URI de base avec http://servername/webappname ;

2. Changez les paramètres de configFile dans /webapp/WEB-INF/web.xml avec le nom de votre fichier de configuration. Pour le déploiement, nous recommandons de placer le fichier d'association dans le répertoire /webapp/WEB-INF/ ;

3. Dans le répertoire principal de D2R Server, lancez ant war. Ceci crée le fichier d2rq.war. Vous aurez besoin d' Apache Ant pour cette étape ;

4. Optionnellement, si vous voulez un nom différent pour votre application Web, renommez le fichier en webappname.war ;

5. Déployez le fichier .war dans votre conteneur de servlets, par exemple en le copiant dans le répertoire webapps de Tomcat.

IV - Configuration de D2R Server

Le serveur peut être configuré en ajoutant un bloc de configuration dans le fichier d'association. Cela consiste en une instance de d2r:Server avec les propriétés de configuration. Un exemple qui suit :

@prefix d2r: <http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/config.rdf#> .
@prefix meta: <http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/metadata#> .

<> a d2r:Server;
rdfs:label "Mon D2R Server";
d2r:baseURI <http://localhost:2020/>;
d2r:port 2020;
d2r:vocabularyIncludeInstances true;

d2r:sparqlTimeout 300;
d2r:pageTimeout 5;

meta:datasetTitle "Mon jeu de données" ;
meta:datasetDescription "Mon jeu de données beaucoup de jolies ressources." ;
meta:datasetSource "Cet autre jeu de données" ;

meta:operatorName "John Doe" ;
meta:operatorHomepage  ;
.

IV-A - Configuration des options au niveau du serveur

Les propriétés de configuration suivantes peuvent être fixées pour une instance de d2r:Server :

rdfs:label

Le nom du serveur affiché tout au long de l'interface HTML.

d2r:baseURI

L'URI de base du serveur. Identique au paramètre de la ligne de commande -b.

d2r:port

Port du serveur. Identique au paramètre de la ligne de commande -p.

d2r:vocabularyIncludeInstances

Contrôle si les représentations RDF et HTML des classes du vocabulaire listeront aussi les instances, et si les représentations des propriétés listent aussi des triplets utilisant la propriété (par défaut à true).

d2r:autoReloadMapping

Spécifie si les changements dans le fichier d'association doivent être détectés automatiquement (par à défaut à true). Cette fonctionnalité est pratique pour le développement, mais a des implications de performance, donc cette valeur doit être fixée à false pour les systèmes en production.

d2r:limitPerClassMap

Spécifie un maximum pour le nombre d'entités par association de classe qui seront affichées dans les pages « répertoires » de l'interface Web. Cela empêche les pages de devenir trop grandes, mais empêche les utilisateurs d'explorer toutes les données à travers l'interface Web. Cette fixation n'affecte pas la sortie RDF ou les requêtes SPARQL. La valeur par défaut est 50. Utiliser false pour désactiver la limite.

d2r:limitPerPropertyBridge

Spécifie un maximum pour le nombre de valeurs de chaque pont de propriétés qui seront affichées dans l'interface Web. Cela empêche les pages de devenir trop grandes, mais empêche les utilisateurs d'explorer toutes les données au travers de l'interface Web. Cette fixation n'affecte pas les représentations RDF ou les requêtes SPARQL.

d2r:sparqlTimeout

Spécifie un délai d'attente en secondes pour le SPARQL endpoint du serveur. Une valeur de 0 ou une valeur négative désactive le délai d'attente.

d2r:pageTimeout

Spécifie un délai d'attente en secondes pour la génération des pages de description d'une ressource. Une valeur de 0 ou une valeur négative désactive le délai d'attente.

d2r:metadataTemplate

Remplace le modèle de métadonnées de la ressource par défaut, se réfère à un fichier RDF encodé en TTL. La valeur littérale spécifie un nom de chemin soit absolu, soit relatif pour l'adresse du fichier de configuration du serveur. Voir ci-dessous pour une description des places réservées disponibles dans ce modèle.

d2r:datasetMetadataTemplate

Remplace le modèle de métadonnées du jeu de données par défaut, se réfère à un fichier RDF encodé en TTL. La valeur littérale spécifie un nom de chemin soit absolu soit relatif pour l'endroit du fichier de configuration du serveur. Voir ci-dessous pour une description des places réservées disponibles dans ce modèle.

d2r:disableMetadata

Permet la création et la publication automatique des métadonnées du jeu de données et des ressources. Les valeurs possibles sont « true » ou « false ». Notez que «true» est la valeur par défaut si ce drapeau est manquant.

d2r:documentMetadata

Une alternative plus simple à d2r:metadataTemplate : la valeur doit être un nœud anonyme. Toutes les déclarations impliquant ce nœud anonyme seront copiées comme métadonnées dans tout document RDF généré par D2R Server, avec le nœud anonyme remplacé par l'URL du document.

Notez que davantage d'options de configuration peuvent être fixées ailleurs dans le fichier d'association. La configuration du niveau de base de données est spécifiée sur les instances de d2rq:Database, et la configuration du moteur de requête de D2RQ est spécifiée sur une instance de d2rq:Configuration.

IV-B - Jeu de données et ressources des métadonnées

Souvent, fournir une information additionnelle sur les ressources fournies est souhaitable. Les principales zones pour cette information additionnelle incluent l'attribution de licences, la provenance, et les descriptions générales du jeu de données. D2R Server a un support complet pour ces soi-disant métadonnées. D'abord, les métadonnées peuvent être fournies sur deux niveaux : chaque ressource servie peut avoir des métadonnées assignées, et le jeu de données complet servi par l'installation de D2R Server peut aussi avoir des métadonnées assignées. Les modèles de métadonnées sont des documents RDF, qui peuvent contenir des espaces réservés, qui sont remplacés par des informations spécifiées par l'utilisateur, des valeurs de configuration, ou les informations d'exécution. Les métadonnées de la ressource sont ajoutées dans les réponses RDF et HTML pour chaque ressource requise, pendant que le jeu de données des métadonnées est servi à une seule URL qui est créée en ajoutant /dataset à la valeur de configuration de d2r:baseURI. La plupart des métadonnées d'un jeu de données sont autogénérées à partir d'un fichier d'association, avec les métadonnées du jeu de données spécifiées par l'utilisateur mélangées dans la représentation RDF et HTML des métadonnées du jeu de données.

IV-B-1 - Modèles par défaut personnalisables

Pour simplifier le processus servant le jeu de données et la ressource des métadonnées, D2R Server est expédié avec deux modèles par défaut, qui sont facilement personnalisables à travers la configuration du serveur. Ces modèles par défaut utilisent une combinaison du vocabulaire Provenance pour décrire le processus de création des données d'une manière lisible par un ordinateur, le vocabulaire VoID pour interconnecter les jeux de données, et le vocabulaire Dublin Core pour les termes généraux d'auteur. Les modèles par défaut sont localisés dans le répertoire webapp/WEB-INF/ de la distribution de D2R.

Les modèles par défaut sont personnalisables dans le bloc de configuration du serveur, par exemple :

@prefix d2r: <http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/config.rdf#> .
@prefix meta: <http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/metadata#> .

<> a d2r:Server;
#[...]

meta:datasetTitle "Mon jeu de données" ;
meta:datasetDescription "Mon jeu de données beaucoup de jolies ressources." ;
meta:datasetSource "Cet autre jeu de données" ;

meta:operatorName "John Doe" ;
meta:operatorHomepage  ;
.

Les valeurs suivantes, spécifiées par l'utilisateur, peuvent être définies pour les modèles des métadonnées par défaut :

meta:datasetTitle

Une expression littérale donnant un titre pour le jeu de données servi par cette installation de D2R Server.

meta:datasetDescription

Une expression littérale donnant une description pour le jeu de données servi par cette installation de D2R Server.

meta:datasetSource

Une expression littérale mentionnant la source pour le jeu de données servi par cette installation de D2R Server.

meta:operatorName

Une expression littérale décrivant l'opérateur ou l'organisation du serveur.

meta:operatorHomepage

Une ressource URL décrivant l'opérateur ou l'organisation du serveur.

IV-B-2 - Personnaliser les modèles des métadonnées

Même si nous vous recommandons d'utiliser les modèles par défaut, il y aura toujours des utilisateurs qui souhaiteront fixer leurs propres modèles de métadonnées pour le jeu de données et pour chaque ressource. Pour ces cas, D2R Server supporte la suppression des modèles par défaut pour la ressource et le jeu de données des métadonnées. Dans la configuration du serveur, les drapeaux d2r:metadataTemplate et d2r:datasetMetadataTemplate peuvent être utilisés respectivement dans ce but. Nous recommandons d'utiliser les modèles par défaut comme point de départ. Il doit être noté que, dans le cas de la description du jeu de données, la plupart des informations sont autogénérées à partir de la configuration du serveur et de l'association D2RQ. Les modèles par défaut peuvent alors être remplacés comme suit :

@prefix d2r: <http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/config.rdf#> .

<> a d2r:Server;
#[...]
d2r:metadataTemplate "/un/chemin/absolue/vers/ressource-metadonnees.ttl" ;
d2r:datasetMetadataTemplate "../un/chemin/relatif/vers/jeudedonnees-metadonnees.ttl" ;
.

À l'intérieur de ces modèles, les espaces réservés peuvent être utilisés pour représenter les valeurs de configuration, ou les informations d'exécution. Les espaces réservés de ce modèle sont organisés en trois groupes qui représentent les sources de données disponibles : runtime, config, database et metadata. Tous les URI de l'espace réservé suivent le schéma about:metadata:groupname:identifier.

Les groupes d'espaces réservés suivants sont actuellement disponibles :

Groupe d'espace réservé : exécution
Les espaces réservés dans ce groupe sont remplacés avec l'exécution des données de D2R Server. Actuellement, D2R Server supporte l'exécution des espaces réservés suivants :

about:metadata:runtime:time

Remplacé par un terme littéral xsd:dateTime qui représente la date et l'heure courantes.

about:metadata:runtime:resource

Remplacé par l'URI de la ressource sur laquelle on a appliqué une requête.

about:metadata:runtime:page

Remplacé par l'URL de la ressource sur laquelle on a appliqué une requête.

about:metadata:runtime:graph

Remplacé par l'URI du graphe RDF courant qui est servi par D2R Server.

about:metadata:runtime:dataset

Remplacé par l'URL de la description du jeu de données de D2R Server (par exemple : http://d2r.example:123/dataset).

Groupe d'espace réservé : config
Ce groupe d'espaces réservés correspond aux options de la configuration pour l'instance de d2r:Server. Par exemple, l'espace réservé about:metadata:config:baseURI est remplacé avec la valeur de la propriété d2r:baseURI définie sur l'instance d2r:Server.

Groupe d'espace réservé : server
Ce groupe d'espaces réservés correspond aux options de configuration pour l'instance de d2rq:Database. Par exemple, l'espace réservé about:metadata:database:jdbcDSN est remplacé avec la valeur de la propriété d2rq:jdbcDSN définie dans l'instance d2rq:Database.

Groupe d'espace réservé : metadata
Les espaces réservés dans ce groupe permettent l'inclusion des attributs des métadonnées additionnelles. Ces attributs sont définis comme propriétés de l'instance d2rq:Database venant de l'espace de nom http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/metadata# (abrégé avec le préfixe meta: dans ce qui suit). Chaque espace réservé about:metadata:metadata:identifier est remplacé par la valeur de la propriété spécifiée utilisant le prédicat meta:identifier correspondant.

Dans l'exemple qui suit, la propriété meta:operatorHomepage est fournie, dont la valeur remplacera les mentions de about:metadata:metadata:operatorHomepage dans le modèle des métadonnées :

@prefix meta: <http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/metadata#> .

<> a d2r:Server;
d2r:metadataTemplate "metadata.ttl";
meta:operatorHomepage <http://example.org/URI_of_publisher> ;

IV-B-3 - Exemple de modèle

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xhv:  <http://www.w3.org/1999/xhtml/vocab#> .

<about:metadata:runtime:graph> foaf:primaryTopic <about:metadata:runtime:resource> .
<about:metadata:runtime:graph> xhv:license <about:metadata:metadata:license> .

Ce modèle ajoute deux triplets dans les graphes RDF fournis par l'instance du D2R Server correspondant. Le premier triplet affirme que le premier sujet du graphe RDF fourni est la ressource sur laquelle a été appliquée la requête. Le second triplet identifie la licence du graphe RDF fourni et requiert que l'attribut des métadonnées http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/metadata#license soit spécifié dans le fichier d'association.

V - Optimisation des performances

Ici quelques conseils simples pour améliorer les performances de D2R :

- définissez des clés primaires chaque fois que vous le pouvez et créez des index le cas échéant (par exemple sur les clés étrangères). Outre l'optimisation de la performance de la base de données, ceci sera repris et utilisé pour d'autres optimisations dans D2RQ ;

- utilisez les dernières optimisations en lançant D2R Server avec --fast (ou activez d2rq:useAllOptimizations) ;

- fournissez les propriétés conseils ;

- indiquez les directions dans les d2rq:join pour activer les optimisations des jointures ;

- donnez plus d'espace de tas à D2R Server au moyen du paramètre -Xmx de Java dans d2r-server ou d2r-server.bat (par défaut : -Xmx1G) ;

- pour éviter de trop grandes pages, dans l'interface Web, envisagez le changement des valeurs de d2r:limitPerClassMap, d2r:limitPerPropertyBridge ;

- pensez à changer les valeurs du délai d'attente pour les requêtes SPARQL et pour la génération d'une page ;

- pour accélérer la génération des grandes pages, envisagez la définition de d2rq:resultSizeLimit, d2rq:limit, et d2r:vocabularyIncludeInstances ;

- fixez d2rq:autoReloadMapping à false quand cette propriété n'est pas nécessaire ;

- les bases de données sont souvent livrées avec des configurations de développement modélisées pour un faible encombrement plutôt que pour la performance. Par exemple, quelques bons conseils concernant l'optimisation de MySQL peuvent être trouvés ici.

VI - Remerciements

Merci à Richard Cyganiak pour son aide et ses conseils à la réalisation de cette traduction, à Thibaut Cuvelier pour ses corrections ainsi qu'à _Max_ et FRANOUCH pour leur correction orthographique.