Le moteur sémantique d’Oracle 11g Release 2 permet de réaliser des choses étonnantes. Vous manipulerez facilement plusieurs milliards de triplets avec les algorithmes de graphes de spatial, le partitioning et la compression avancée. D’un autre côté, Jena est LE framework de sémantique web open source de référence. Il est donc naturel que les 2 produits soient intégrés pour tirer partie de la puissance de la base de données Oracle et de la couverture des derniers standards sémantiques de Jena.
Pour permettre cette intégration, Oracle fournit un adaptateur qui implémente les API des modèles et graphes de Jena. Dans cet article, vous trouverez les éléments pour installer Joseki, un point d’accès HTTP SPARQL qui s’appuie sur Jena. Avec l’adaptateur Oracle, Joseki, installé dans Weblogic, vous offrira une interface directe sur le moteur sémantique d’Oracle. J’espère que cet article sera le prétexte pour certains d’entre vous afin de découvrir le moteur sémantique d’Oracle 11g Release 2. Si vous avez des projets sur ce thème, n’hésitez pas à partager vos idées en commentant cet article.
Etape 1. Installer WebLogic sur Ubuntu Lucid Lynx
Pour installer Joseki, il faut un serveur d’applications Java EE ou, au moins, un moteur de servlet. Weblogic est le meilleur candidat pour cette opération puisque la documentation (Oracle® Database Semantic Technologies Developer’s Guide – 11g Release 2 (11.2) – Jena Adapter for Oracle Database) décrit avec précision comment réaliser cette installation. Utilisateur d’Ubuntu, j’ai donc commencé par installer le serveur d’applications d’Oracle sur mon laptop. Pour cela :
- Téléchargez la version générique de Weblogic depuis Oracle Technology Network (OTN).
- Lancez l’installation de Weblogic avec Java SE 6 puis laissez-vous guidé :
java -jar wls1033_generic.jar
- Une fois l’installation réalisée, créez un nouveau domaine en lançant l’utilitaire Quick Start comme ci-dessous :
$WEBLOGIC_HOME/wlserver_10.3/common/quickstart/quickstart.sh
Sélectionnez ensuite
"Getting Started with Weblogic Server 10.3.3"
puis"Create a new Weblogic Domain"
pour créer un domaine à votre serveur Weblogic
- Si vous créez un domaine
base_domain
, démarrez ensuite le domaine comme ci-dessous :cd /opt/oracle/user_projects/domains/base_domain/
startWebLogic.shVous pouvez vous connecter à la console weblogic à partir d’une URL :
http://localhost:7001/console
Etape 2. Paramétrer la source de données JDBC
Afin d’installer Joseki, il faut créer une source JDBC nommée OracleSemDS
. Connectez-vous à la console et remplissez les propriétés comme ci-dessous en les adaptant à votre contexte :
Name : | OracleSemDS |
JNDI Name: | OracleSemDS |
Database Type: | Oracle |
Database Driver: | Oracle’s Driver (Thin) Versions: 9.0.1,9.2.0,10,11 |
User: | user1 |
Password: | user1 |
URL: | jdbc:oracle:thin:@localhost:1521:BLACK |
Veuillez à publier la source de données sur le serveur en cochant la boite à cocher correspondant sur l’onglet « Targets » de la source de données JDBC, comme ci-dessous :
Etape 3. Créer un modèle sémantique
Pour mettre à profit Jena avec votre base de données Oracle 11g Release 2, il faut créer un modèle sémantique. Vous pouvez utiliser le modèle de votre choix, y compris, par exemple, le modèle FAMILY
disponible dans le premier chapitre du guide de développement sémantique d’Oracle 11.2.
Etape 4. Créer le fichier joseki.war
A cause du modèle de licence de Joseki, Oracle ne peut pas fournir le fichier .war avec l’adaptateur Jena directement; il vous faudra donc le construire vous-même. Pour cela, vous devrez :
- Télécharger la dernière version de Joseki (aka 3.4.1)
- Télécharger l’adaptateur Jena d’Oracle.
Une fois les fichiers .zip sur votre serveur, lancez le script ci-dessous :
unzip joseki-3.4.1.zip
mkdir jena_adaptor
mv jena_adaptor_for_release11.2.zip
jena_adaptor/.
cd jena_adaptor
unzip jena_adaptor_for_release11.2.zip
cd ..
mkdir warfile
cd warfile
cp ../jena_adaptor/joseki/* .
cp -rf ../Joseki-3.4.1/webapps/joseki/StyleSheets .
mkdir WEB-INF
cp ../jena_adaptor/web/* WEB-INF
mkdir WEB-INF/lib
cp ../Joseki-3.4.1/lib/*.jar WEB-INF/lib
cp ../jena_adaptor/jar/*.jar WEB-INF/lib
cp $ORACLE_HOME/md/jlib/sdordf.jar WEB-INF/lib
cp $ORACLE_HOME/jdbc/lib/ojdbc6.jar WEB-INF/lib
Une fois le répertoire créé avec l’ensemble des fichiers nécessaires, vous pouvez vérifier son contenu comme indiqué dans la documentation; modifiez oracle:defaultModel
dans le fichier joseki-config.ttl
puis créez le fichier joseki.war comme ci-dessous :
ls -1R .
zip -r ../joseki.war *
Etape 5. Déployer l’application
Déployez le fichier joseki.war
depuis la console Weblogic :
Etape 6. Utiliser le point d’accès HTTP
Vous pouvez utiliser Joseki pour faire vos requêtes SPARQL comme ci-dessous :
Exécutez, par exemple la requête qui suit :
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX owl: <http://www.w3.org/2000/07/owl#>
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
PREFIX ouext: <http://oracle.com/semtech/jena-adaptor/ext/user-def-function#>
PREFIX oext: <http://oracle.com/semtech/jena-adaptor/ext/function#>
PREFIX sn: <http://socialnetwork.org/schema.rdf#>
PREFIX ORACLE_SEM_FS_NS: <http://oracle.com/semtech#timeout=100,qid=123>
SELECT ?sc ?c
WHERE
{ ?sc sn:friendOf ?c}
Le résultat s’affiche aussitôt avec une feuille de style de conversion du XML en HTML :
Conclusion
Grâce à l’adaptateur Oracle pour Jena, comme Joseki, vous pourrez simplement vous connecter à un référentiel stocké dans Oracle 11g Release 2 en manipulant les API Jena. Il en est de même avec l’adaptateur Sesame. De cette manière vous pourrez exécutez des requêtes avec l’opérateur SEM_MATCH
de manière transparente et bénéficiez de tous les standards sémantiques : OWL, SPARQL et leurs extensions.
1 réflexion sur “Adaptateur JENA pour la Technologie Sémantique d'Oracle 11g Release 2”
Bonjour,
Tres bon article.
Dans le cas d’utilisation de Jena, attention à la version du jar « sdorfclient.jar ». (cf support Oracle pr ptach) et eviter de tomber ds le cas suivant :
http://forums.oracle.com/forums/thread.jspa?threadID=1018178&tstart=0
Cdlt,
Les commentaires sont fermés.