Compilation de Virtuoso et chargement de DBpedia

Ce tutoriel fait suite à celui sur l'exécution du framework d'extraction de DBpedia. Il est consacré à la compilation et à la configuration de Virtuoso ainsi qu'à l'importation des triplets de DBPedia. Cette compilation a été faite sous Ubuntu 13.10. Il faut vous assurer d'avoir tous les prérequis : Commentez Donner une note à l'article (5).

 
Sélectionnez
sudo apt-get install autoconf automake libtool bison flex gawk gperf libssl-dev

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Étape 1 : clonage du dépôt Git

La première chose à faire est de cloner le dépôt Git du projet Virtuoso Open Source. Il sera admis que le clonage se fasse dans le home :

 
Sélectionnez
git clone https://github.com/openlink/virtuoso-opensource.git virtuoso

Il faut maintenant choisir la dernière version :

 
Sélectionnez
cd virtuoso
git checkout -b stable/7 origin/stable/7

II. Étape 2 : compilation

Vous devez à présent générer le fichier configure, pour cela lancez la commande :

 
Sélectionnez
./autogen.sh

Ensuite, faire un export de certaines options de compilation :

 
Sélectionnez
export CFLAGS="-O2 -m64"

Puis lancer le configure en précisant un dossier d'installation :

 
Sélectionnez
./configure --prefix=XX --program-transform-name="s/isql/isql-v/" --enable-dbpedia-vad --enable-rdfmappers-vad --enable-conductor-vad

L'option --program-transform-name permet de renommer l'interface de commande SQL de Virtuoso en isql-v pour éviter un conflit avec celle de unixODBC. Pensez à remplacer XX par l'endroit où vous souhaitez l'installer. Dans ce tutoriel, il sera installé dans /usr/bin/virtuoso/.

Le configure couvre le strict minimum pour ce que nous voulons faire, mais on peut lui rajouter beaucoup d'autres modules. Pour cela, faites :

 
Sélectionnez
./configure -h

Afin d'en voir la liste et choisir ceux que vous voudrez installer en plus.

Ensuite, lancez la compilation et l'installation :

 
Sélectionnez
make && sudo make install

III. Étape 3 : configuration

Maintenant que Virtuoso est installé, il faut le configurer. Pour commencer il faut faire en sorte qu'il démarre en même temps que la machine, pour cela il faut éditer le fichier ~/virtuoso/debian/init.d. Modifier :

 
Sélectionnez
DAEMON=/usr/bin/virtuoso-t

par :

 
Sélectionnez
DAEMON=/usr/bin/virtuoso/bin/virtuoso-t

Modifier :

 
Sélectionnez
DBBASE=/var/lib/virtuoso/db

par :

 
Sélectionnez
DBBASE=/usr/bin/virtuoso/var/lib/virtuoso/db

Ensuite, le copier dans le init.d du système :

 
Sélectionnez
sudo cp ~/virtuoso/debian/init.d /etc/init.d/virtuoso

Et pour finir, lancer ces trois liens symboliques :

 
Sélectionnez
sudo ln -s /etc/init.d/virtuoso /etc/rc2.d/S99virtuoso
sudo ln -s /etc/init.d/virtuoso /etc/rc3.d/S99virtuoso
sudo ln -s /etc/init.d/virtuoso /etc/rc5.d/S99virtuoso

Donner à Virtuoso l'accès au port 80 sans pour autant lui donner les droits root :

 
Sélectionnez
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/virtuoso/bin/virtuoso-t

Une fois ceci fait, il faut installer le VAD de DBpedia, pour ceci il faut suivre aussi certaines étapes :

  • étape 1 : ouvrir isql /usr/bin/virtuoso/bin/isql-v ;
  • étape 2 : taper toutes ces lignes de commande :
 
Sélectionnez
registry_set ('dbp_decode_iri',   'on');
registry_set ('dbp_domain',       'http://fr.dbpedia.org');
registry_set ('dbp_graph',        'http://fr.dbpedia.org');
registry_set ('dbp_lang',         'fr');
registry_set ('dbp_DynamicLocal', 'on');
registry_set ('dbp_category',     'Catégorie');
registry_set ('dbp_imprint',      'http://dbpedia.fr/doc/Imprint');
registry_set ('dbp_website',      'http://localhost/projects/dbpedia/');
registry_set ('dbp_lhost',        ':80');
registry_set ('dbp_vhost',        'http://fr.dbpedia.org');

Attention à bien mettre le paramètre DynamicLocal à 1 dans le fichier de configuration de Virtuoso /usr/bin/virtuoso/var/lib/virtuoso/db/virtuoso.ini.

Puis installer le package pour DBpedia :

 
Sélectionnez
vad_install('/usr/bin/virtuoso/share/virtuoso/vad/dbpedia_dav.vad', 0);

IV. Étape 4 : chargement des données DBpedia

Maintenant que tout est installé et configuré, il faut charger les données dans Virtuoso. Pour cela il faut copier les archives des dumps de DBPedia effectués par l'outil d'extraction dans un dossier autorisé de Virtuoso. Pour cela, ouvrez le fichier /usr/bin/virtuoso/var/lib/virtuoso/db/virtuoso.ini et modifiez la variable DirsAllowed :

 
Sélectionnez
DirsAllowed = ., /usr/bin/virtuoso/share/virtuoso/vad, /mon/dossier/de/dumps/

Remplacez donc /mon/dossier/de/dumps/ par le chemin que vous souhaitez. Mais n'oubliez pas que ce dossier doit contenir les données que vous souhaitez charger dans Virtuoso. Redémarrez maintenant Virtuoso :

 
Sélectionnez
sudo service virtuoso restart

Maintenant il faut insérer les données, pour cela ouvrir /usr/bin/virtuoso/bin/isql-v puis taper :

 
Sélectionnez
ld_dir ('/mon/dossier/de/dumps', '*.nt.gz', 'http://fr.dbpedia.org');

Vous pouvez lui donner les fichiers archivés, il s'occupera de les extraire tout seul. Une fois ceci fait, sortez de isql et ouvrez le fichier (ou créez-le s'il n'existe pas) global.graph à l'endroit où se trouvent les archives de données pour y ajouter le nom de votre graphe http://fr.dbpedia.org. Retournez maintenant dans isql pour charger toutes les données :

 
Sélectionnez
rdf_loader_run();

Il ne reste plus qu'à attendre le message disant que tout s'est bien passé. Pour vérifier si toutes les données sont bien présentes, une simple petite requête :

 
Sélectionnez
SPARQL SELECT count(*) FROM <http://fr.dbpedia.org> WHERE { ?s ?p ?o };

S'il vous sort un résultat autre que 0 c'est que des données ont bien été insérées.

V. Réinstallation du graphe si besoin

Afin de réinstaller le graphe, il faut auparavant purger la liste des archives de la table qui les gère :

 
Sélectionnez
delete from db.dba.load_list;

Ensuite, toujours dans isql, entrez les commandes suivantes :

 
Sélectionnez
log_enable(3,1);
SPARQL CLEAR GRAPH  <http://fr.dbpedia.org>;

Lancez maintenant les commandes ld_dir et rdf_loader_run vues précédemment afin de recharger les données dans Virtuoso.

VI. Remerciements

Merci à Philippe DUVAL et Claude Leloup pour leur relecture orthographique.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2013-2016 Julien Plu. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.