Adaptateur JENA pour la Technologie Sémantique d'Oracle 11g Release 2

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 :

  • 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.sh

    Vous 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 :

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”

Les commentaires sont fermés.