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 :
git clone https://github.com/openlink/virtuoso-opensource.git virtuoso
Il faut maintenant choisir la dernière version :
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 :
./autogen.sh
Ensuite, faire un export de certaines options de compilation :
export CFLAGS="-O2 -m64"
Puis lancer le configure en précisant un dossier d'installation :
./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 :
./configure -h
Afin d'en voir la liste et choisir ceux que vous voudrez installer en plus.
Ensuite, lancez la compilation et l'installation :
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 :
DAEMON=/usr/bin/virtuoso-t
par :
DAEMON=/usr/bin/virtuoso/bin/virtuoso-t
Modifier :
DBBASE=/var/lib/virtuoso/db
par :
DBBASE=/usr/bin/virtuoso/var/lib/virtuoso/db
Ensuite, le copier dans le init.d du système :
sudo cp ~/virtuoso/debian/init.d /etc/init.d/virtuoso
Et pour finir, lancer ces trois liens symboliques :
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 :
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 :
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 :
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 :
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 :
sudo service virtuoso restart
Maintenant il faut insérer les données, pour cela ouvrir /usr/bin/virtuoso/bin/isql-v puis taper :
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 :
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 :
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 :
delete from db.dba.load_list;
Ensuite, toujours dans isql, entrez les commandes suivantes :
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.