« SPARQL Protocol and RDF Query Language/Travail pratique/Faire un serveur SPARQL » : différence entre les versions
Contenu supprimé Contenu ajouté
Obsolete |
m Robot : Remplacement de texte automatisé (-(<|</)source([ \t>]) +\1syntaxhighlight\2) |
||
Ligne 54 :
==== Fedora 17 x86_64 ====
* Installer les dépots Sparql.pro and Epel :
<
rpm -ivh sparql-pro-1.0.0-1.noarch.rpm</
* Puis installer 4Store :
<
* La première fois, il faudra créer la base de données par défaut : DefaultKB
** Vous pourrez changer son nom mais il vous faudra alors changer les fichiers /etc/4store.conf et /etc/init.d/4store.
<
Vous pourrez désinstaller 4Store mais la base de données ne sera pas détruite (en théorie)
* Pour démarrer le service HTTP :
<
* Le service utilise le port 8181 : <code>http://localhost:8181/status/</code>
** Vous pourrez changer le port 8181 (lire la documentation : man 4store.conf )
* Et vous pouvez lancer au démarrage du serveur le service avec la commande :
<
==== CentOs 6 x86_64 ====
* Installer les dépots Sparql.pro and Epel :
<
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh sparql-pro-1.0.0-1.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm</
* Puis installer 4Store :
<
* La première fois, il faudra créer la base de données par défaut : DefaultKB
** Vous pourrez changer son nom mais il vous faudra alors changer les fichiers /etc/4store.conf et /etc/init.d/4store.
<
Vous pourrez désinstaller 4Store mais la base de données ne sera pas détruite (en théorie)
* Pour démarrer le service HTTP :
<
* Le service utilise le port 8181 : <code>http://localhost:8181/status/</code>
** Vous pourrez changer le port 8181 (lire la documentation : man 4store.conf )
* Et vous pouvez lancer au démarrage du serveur le service avec la commande :
<
==== Ubuntu ====
Il faut insérer dans le fichier /etc/apt/sources.list le dépôt (en France) qui va contenir le package, par exemple :
<
Ensuite, il faut mettre à jour apt-get avec ce nouveau dépot :
<
sudo apt-get update
</syntaxhighlight>
Vous pouvez maintenant installer 4Store via la commande suivante sur '''Ubuntu''':
<
sudo apt-get install 4store
</syntaxhighlight>
=== Installation manuelle ===
Ligne 122 :
'''Ubuntu'''
Voici la commande à exécuter pour installer les premières dépendances :
<
sudo apt-get install automake libtool gtk-doc-tools flex bison libxml2-dev libglib2.0-dev libpcre3-dev avahi-daemon libavahi-client-dev libavahi-glib-dev libreadline-dev git-core
</syntaxhighlight>
'''Fedora'''
Voici la commande à exécuter pour installer les premières dépendances :
<
yum install gcc glib2-devel libxml2-devel pcre-devel avahi avahi-devel avahi-glib-devel readline-devel ncurses-devel termcap libtermcap-devel expat-devel zlib-devel libtool automake flex gtk-doc bison git-core
</syntaxhighlight>
==== Installation des librairies Redland : Raptor, Rasqal ====
Ligne 138 :
'''Ubuntu'''
<
sudo apt-get install redland
</syntaxhighlight>
'''Fedora'''
<
sudo yum install redland
</syntaxhighlight>
{{remarque|contenu=
Ligne 151 :
Afficher le nombre de triplets et les erreurs s’il y en a.
<
rapper -c myFile.RDF
</syntaxhighlight>
Convertir le fichier "ontology.owl" en entrée (format automatiquement détecté) dans le format NTriples pour être enregistré dans le fichier "ontology.n3".
<
rapper ontology.owl -o ntriples > ontology.n3
</syntaxhighlight>
Voir les formats possibles en entrée et en sortie.
<
rapper --help
</syntaxhighlight>
}}
Ligne 170 :
Cependant '''pour Fedora uniquement''', il faut ajouter une ligne dans le fichier /etc/sysconfig/iptables (attention : il faut ajouter cette ligne juste après la dernière ligne qui commence par "-A INPUT") :
<
-A INPUT -m state --state NEW -m udp -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
</syntaxhighlight>
Cette ligne est nécessaire au logiciel Avahi qu'utilise 4Store.
Pour prendre en compte cette modification sous Fedora :
<
service iptables restart
</syntaxhighlight>
==== Compilation & installation ====
4Store est encore un jeune logiciel et ne peut pas encore être installé via des packages. Le plus simple est encore de le compiler à partir des dernières sources avec la méthode suivante :
<
cd ~/projets
git clone https://github.com/garlik/4store.git
Ligne 202 :
#create the folder of logs
sudo mkdir /var/log/4store
</syntaxhighlight>
'''Ubuntu'''
<
sudo make install
</syntaxhighlight>
'''Fedora'''
<
su -
make install
</syntaxhighlight>
Pour tester (attention : seule la première série de tests doit passer au vert, les autres tests concernent la partie en cours de développement) :
<
make test
</syntaxhighlight>
== Mode d’emploi du serveur ==
Ligne 224 :
=== Créer une base de données ===
<
sudo 4s-backend-setup test
</syntaxhighlight>
=== Démarrer le serveur SPARQL ===
Ici, nous exécuterons le service sur le port 8081 (paramètre -p) et nous désirons voir les erreurs en sortie (paramètre -D, mode debug).
<
sudo 4s-backend test
sudo 4s-httpd -D test -p 8081
</syntaxhighlight>
=== Vérifier l'état du serveur SPARQL ===
Ligne 243 :
=== Arrêter le serveur SPARQL ===
<
sudo killall 4s-httpd
sudo killall 4s-backend
</syntaxhighlight>
=== Supprimer une base de données ===
<
sudo killall 4s-httpd
sudo killall 4s-backend
sudo 4s-backend-destroy test
</syntaxhighlight>
== Service automatique ==
Ligne 263 :
=== Installation (niveau expert) ===
On commence par créer notre base de données, ou silo de données, qui contiendra nos graphes. On va l'appeler "DefaultKB" (KB pour KnowledgeBase).
<
sudo 4s-backend-setup DefaultKB
</syntaxhighlight>
On va maintenant fabriquer rapidement un service 4Store pour démarrer et arrêter le service SPARQL avec la base de données "DefaultKB".
Ligne 271 :
==== Debian/Ubuntu ====
On fabrique le script pour lancer le service automatiquement au démarrage du serveur :
<
sudo vim /etc/init.d/4s-httpd
</syntaxhighlight>
Copier dans ce fichier le code suivant pour un système débian:
<
#! /bin/sh -e
DAEMON_BACKEND="/usr/local/bin/4s-backend"
Ligne 329 :
esac
exit 0
</syntaxhighlight>
On autorise l'exécution de ce script :
<
sudo chmod 0755 /etc/init.d/4s-httpd
</syntaxhighlight>
On teste le service :
<
sudo service 4s-httpd start
</syntaxhighlight>
On vérifie que les processus 4s-httpd et 4s-backend ont démarré (il peut y avoir plusieurs processus 4s-httpd ou backend) avec la commande suivante :
<
ps -AL | grep 4s
</syntaxhighlight>
On vérifie que le serveur fonctionne avec le lien : <code>http://localhost:8081/status</code>
<
sudo service 4s-httpd stop
</syntaxhighlight>
On vérifie que le serveur s'est arrêté avec le même lien, qui doit afficher "serveur inconnu" ou "incapable de se connecter".
On déclare le service 4s-httpd au système et on le lance pour la dernière fois manuellement.
<
sudo update-rc.d 4s-httpd defaults
sudo service 4s-httpd start
</syntaxhighlight>
==== RHEL/CentOS ====
Exemple de code pour un système Archlinux:
<
#! /bin/bash
. /etc/rc.conf
Ligne 422 :
esac
exit 0
</syntaxhighlight>
On autorise l'exécution de ce script :
<
sudo chmod 0755 /etc/init.d/4s-httpd
</syntaxhighlight>
On teste le service :
<
sudo service 4s-httpd start
</syntaxhighlight>
On vérifie que les processus 4s-httpd et 4s-backend ont démarré (il peut y avoir plusieurs processus 4s-httpd ou backend) avec la commande suivante :
<
ps -AL | grep 4s
</syntaxhighlight>
On vérifie que le serveur fonctionne avec le lien : <code>http://localhost:8081/status</code>
<
sudo service 4s-httpd stop
</syntaxhighlight>
On vérifie que le serveur s'est arrêté avec le même lien, qui doit afficher "serveur inconnu" ou "incapable de se connecter".
On déclare le service 4s-httpd au système et on le lance pour la dernière fois manuellement.
<
sudo /sbin/chkconfig 4s-httpd on
sudo service 4s-httpd start
</syntaxhighlight>
=== Désinstallation ===
Pour désinstaller ce service voici la commande :
<
sudo update-rc.d -f 4s-httpd
</syntaxhighlight>
=== Mode d’emploi ===
Ligne 462 :
==== Démarrer le service ====
<
sudo service 4s-httpd start
</syntaxhighlight>
==== Arrêter le service ====
<
sudo service 4s-httpd stop
</syntaxhighlight>
==== Redémarrer le service ====
<
sudo service 4s-httpd restart
</syntaxhighlight>
==== Voir les logs du service ====
Cette commande va vous permettre de suivre en temps réel les logs de votre service et ainsi voir les requêtes SPARQL.
<
sudo tail -f /var/log/4store/query-DefaultKB.log
</syntaxhighlight>
== Tests du service avec PHP ==
Ligne 485 :
=== Installation ===
Pour installer la dernière version de PHP4store :
<
sudo apt-get install curl php5-curl
sudo pear channel-discover bordercloud.github.com/pear
sudo pear install bordercloud/php4store
</syntaxhighlight>
=== Tests ===
Ligne 495 :
On va créer un projet test4store et ouvrir un nouveau fichier query.php :
<
cd ~/projets
mkdir test4store
cd test4store
vim query.php
</syntaxhighlight>
On copie dans le fichier query.php le code suivant :
<
<?php
Ligne 591 :
}
var_dump($res);
</syntaxhighlight>
Ce code est un des exemples de la [http://bordercloud.github.com/pear/doc/php4store-0.4.4/Bourdercloud-PHP4store/Endpoint.html documentation de PHP4Store].
On exécute notre exemple :
<
php query.php
</syntaxhighlight>
Si tout fonctionne, la dernière ligne devrait ressembler à ceci :
<
ASK :bool(true)
</syntaxhighlight>
Vous pouvez également voir les logs du serveur et ainsi voir toutes les requêtes SPARQL envoyées par votre programme PHP :
<
sudo tail -f /var/log/4store/query-DefaultKB.log -n100
</syntaxhighlight>
Maintenant, tout est en place pour apprendre à utiliser SPARQL !
|