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/
Vous pouvez vous connecter à la console weblogic à partir d'une URL :
startWebLogic.shhttp://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èleFAMILY 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.
unzip joseki-3.4.1.zipUne fois le répertoire créé avec l'ensemble des fichiers nécessaires, vous pouvez vérifier son contenu comme indiqué dans la documentation; modifiez
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
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 fichierjoseki.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/>Le résultat s'affiche aussitôt avec une feuille de style de conversion du XML en HTML :
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}

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érateurSEM_MATCH de manière transparente et bénéficiez de tous les standards sémantiques : OWL, SPARQL et leurs extensions.
1 comments:
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,
Enregistrer un commentaire