Rechercher sur arkzoyd.com

30 mai 2010

Mon blog change d'adresse

J'ai simplifié l'adresse du blog. Vous pourrez désormais vous connecter en tapant simplement arkzoyd.com. L'ancienne adresse devrait rester valide.

26 mai 2010

Le Moteur Sémantique d’Oracle 11g Release 2

Si ça vous intéresse, j'ai écrit une introduction au moteur sémantique d'Oracle 11g Release 2 sur le blog Easyteam. Il présente quelques concepts et un exemple d'utilisation basé sur le modèle "FAMILY" décrit dans le premier chapitre de la documentation produit. N'hésitez pas à partager vos expériences

22 mai 2010

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.

Installer Cytoscape pour le moteur sémantique d'Oracle 11g Release 2

Cytoscape est un logiciel open source utilisé pour visualiser des graphes. Comme vous ne l'ignorez pas, Oracle Spatial contient un ensemble d'outils pour modéliser, charger et interroger des graphes. Il s'agit notamment de Network Data Model (NDM) et du moteur sémantique d'Oracle 11.2. Dans cet article, vous trouverez les principales étapes pour installer Cytoscape et la plugin Oracle pour visualiser les graphes stockés dans les modèles sémantiques d'Oracle 11.2.

Etape 1. Télécharger et installer Cytoscape

Note:
Je n'ai pas réussi à installer la plug-In avec Cytoscape 2.7; Un problème de classpath visiblement ! la plugin ne trouve pas les drivers Oracle malgré l'ajout des jar correspondant... Quelqu'un a-t-il la solution ?
Installer Cytoscape, est simple. Commencez par télécharger la version 2.6.3 depuis le site web Cytoscape. Lancez ensuite l'installation; Sous Ubuntu, ça donne à peu près ça :
sudo sh -c "
export INSTALL4J_JAVA_HOME=/opt/jdk1.6.0_17;
./Cytoscape_2_6_3_unix.sh
"
Répondez comme convenu aux questions et en 4 écrans et 5 minutes, vous voilà au bout de vos peines :


Pour lancer le logiciel, il vous suffit de cliquer sur l'icone correspondante ou sous Ubuntu de lancer
cd $CYTOSCAPE_HOME
./cytoscape.sh

Etape 2. Installer la plug-In Oracle

L'étape suivante consiste à installer la plug-In fournie par Oracle pour Cytoscape; vous pouvez la télécharger depuis la page des logiciels associés à la sémantique sur Oracle Technology Network. Décompresser le fichier semtech_cytoscape_plugin.zip; le répertoire DOC contient la documentation associée à cette plug-In et un cas d'utilisation assez complet. Pour procéder à l'installation :
  • Copiez le fichier oraclerdf.jar du répertoire JAR dans le sous-répertoire plugins de votre installation cytoscape comme ceci:
cd /opt/cytoscape/plugins
sudo cp /tmp/CytoscapePlugin/JAR/oraclerdf.jar .
  • Ajoutez les autres .jar nécessaires à son fonctionnement dans un sous-répertoire de Cytoscape :
cd /opt/cytoscape
sudo mkdir NDM
cd NDM/
sudo cp /tmp/CytoscapePlugin/JAR/*.jar .

ls -l
-rwxr-xr-x 1 root root 2110397 2010-05-22 18:32 ojdbc6.jar
-rwxr-xr-x 1 root root 177354 2010-05-22 18:32 oraclerdf.jar
-rwxr-xr-x 1 root root 1382673 2010-05-22 18:32 xmlparserv2.jar
  • Enfin, modifiez le fichier cytoscape.sh (ou cytospace.sh sous Windows) pour ajouter les .jar dans le classpath java:
$ tail -5 cytoscape.sh


java -Dswing.aatext=true -Xss5M -Xmx512M -cp \
.:/opt/cytoscape263/NDM/ojdbc6.jar:/opt/cytoscape263/NDM/xmlparserv2.jar:/opt/cytoscape263/cytoscape.jar \
cytoscape.CyMain -p plugins "$@"
La plug-In est désormais installée; vous pouvez le vérifiez en sélectionnant le menu "Plugins" après avoir relancé Cytoscape :

Etape 3. Paramètrage de la base de données et schéma exemple

Pour utiliser la plug-In cytoscape, il est nécessaire d'ajouter les éléments associés dans le schéma MDSYS; pour cela, lancez le script ci-dessous :
cd /tmp/CytoscapePlugin/PLSQL
sqlplus / as sysdba

ALTER SESSION SET CURRENT_SCHEMA=MDSYS;
EXECUTE sem_apis.add_sem_index('SP');
EXECUTE sem_apis.add_sem_index('CPS');

@semviz.plb
@semviz_setup.plb
exit
Oracle fournit un schéma exemple dans le même répertoire pour vous aider à appréhender la plugiIn; créez ainsi le schéma user1 après avoir configuré le moteur sémantique et créé un réseau !
sqlplus / as sysdba

@sample_create_user1
@tsnet_sample_script

Etape 4. Utiliser Cytoscape avec Oracle 11g Release 2

Voilà, vous pouvez vous connecter à la base de données depuis Cytoscape en sélectionnant le menu "Plugins -> Semantic Data Visualization for Oracle Database -> Load Data From Oracle Database" comme ci-dessous :

Vous pouvez maintenant exécuter une requête SPARQL pour extraire un sous-ensemble des informations du graphe; sélectionnez le menu "Plugins -> Semantic Data Visualization for Oracle Database -> Get SubSet". Remplacez le prédicat ?p par dans l'écran ci-dessous pour sélectionner l'ensemble des triplets correspondant à la requête {?s sn:friendOf ?o} :


Le graphe ci-dessous s'affiche.

Conclusion

Pour découvrir les autres opérations que vous pourrez réaliser avec le moteur sémantique et Cytoscape, lisez en détail le document fournit avec la plug-In. Soyez patient, je vous promets un exemple plus complet sur l'utilisation du moteur de sémantique d'Oracle 11.2; à bientôt...

04 mai 2010

Prédire l'avenir avec Oracle Database et les algorithmes d'Analyse Prédictive

Pour beaucoup, la Business Intelligence est équivalente à la production de rapports ou les requêtes adhoc par les utilisateurs. C'est vrai que les bases de données apportent de nombreux outils pour fournir aux utilisateurs, dans les meilleurs délais, les informations dont ils ont besoin. Elles présentent ainsi de la manière la plus adéquate possible ce qu'il s'est déjà "passé" aux utilisateurs et aux analystes. Pourtant, là où la Business Intelligence apporte une véritable plus value aux entreprises c'est lorsqu'elle parle de ce que pourrait être le "futur". Simulations et prédictions permettent des retours sur investissement formidables... Avec les options Oracle OLAP et Oracle Data Mining, vos bases de données peuvent, avec un effort minimum, vous aider à mettre en oeuvre ce type d'approches.

Dans cet article, vous trouverez un exemple simple d'analyse prédictive avec Oracle Data Mining, le schéma SH, les API PL/SQL ou Oracle Data Miner. Évidemment les possibilités sont infinies mais, il faut bien commencer par introduire les choses, non ?