Comment installer OWLIM dans Sesame – et jouer avec

Une des choses frustrante quand vous travaillez dans les technologies du web sémantique c’est que leur intérêt n’est pas facile à expliquer à des techniciens qui ont l’habitude de travailler sur des applications fermées, des bases de données, et du XML; exemple :

“RDF ? hé bien tu vois, c’est un peu comme du XML mais en mieux…”

“OWL ? hé bien tu vois, c’est un peu comme un schéma de base de données mais en mieux…”

“Les données ouvertes ? hé bien tu vois, tu peux partager tes données sur le web et les lier aux autres données existantes pour… comment ça tu t’en fiche ?”

Bref. Non, là où la différence se fait et devient tangible, là où l’on touche du doigt l’opposition “structure d’abord, rentre tes données ensuite” (approche SGBD classique, avec données homogènes, centralisées et fermées) versus “rentre tes données d’abord, puis structure à la volée” (approche du monde RDF, avec données hétérogènes, distribuées et interreliées), c’est lorsqu’on illustre cela avec un moteur d’inférence. Le moteur d’inférence qui va rajouter des nouvelles informations à partir des informations existantes est le composant pour lequel il n’y a pas d’équivalent dans le monde SGBD (1); c’est lui qui vient donner tout son sens au reste de la pyramide des technos (XML, URI, RDF, OWL), en interprétant et “motorisant” une ontologie.

On peut citer plusieurs outils d’inférence que l’on connait ici de près ou de loin :

Pour illustrer les fonctionnalités d’inférence sur une ontologie OWL, voici la démarche pour faire fonctionner OWLIM dans Sesame.

Disclaimer : cette démarche vise uniquement à tester le composant, mais ne convient évidemment pas pour un environnement de production.

  1. Téléchargez :
  2. Dézippez :
    1. Dézippez tomcat dans le répertoire de votre choix (<tomcat> dans le reste de la procédure);
    2. Dézippez sesame dans le répertoire de votre choix (<sesame> dans le reste de la procédure);
    3. Copiez les applications sesame <sesame>/war/openrdf-sesame.war et <sesame>/war/openrdf-workbench.war dans <tomcat>/webapps;
    4. Démarrez tomcat en lançant <tomcat>/bin/startup.bat
    5. Dézippez owlim dans le répertoire de votre choix (<owlim> dans le reste de la procédure)
    6. Copiez les deux fichiers se trouvant dans <owlim>/lib (owlim-3.0.beta8.jar et trree-3.0.beta8.jar) à deux endroits :
      • dans <tomcat>/webapps/openrdf-sesame/WEB-INF/lib
      • dans <sesame>/lib
    7. Important : arrêtez et redémarrez votre serveur Tomcat
  3. Configurez :
    1. Lancez <sesame>/bin/console.bat
    2. Copiez le fichier <owlim>/getting-started/owlim.ttl dans C:\Documents and Settings\<votre nom d’utilisateur Windows>\Application Data\Aduna\OpenRDF Sesame console\templates. le sous-répertoire “templates” n’existe pas, vous devrez le créer.
    3. Dans la console sesame, entrez les commandes suivantes (n’oubliez pas le point à la fin de chacune d’elles) :
      1. connect http://localhost:8080/openrdf-sesame.
      2. create owlim.
  4. Utilisez :
    1. Ouvrez votre navigateur à l’adresse http://localhost:8080/openrdf-workbench;
    2. Cliquez sur le repository “owlim”;
    3. Dans le menu de gauche, cliquez sur “Add”;
    4. Dans le champ de formulaire “RDF Data File”, sélectionnez le fichier <owlim>/getting-started/ontology/example.rdfs, laissez tous les autres champs tel quels, puis cliquez sur “Upload”;
    5. Vérifiez qu’une inférence a bien eu lieu :
      1. ouvrez le fichier <owlim>/getting-started/ontology/example.rdfs dans votre éditeur texte préféré, ou dans Protégé ou Swoop si vous ne lisez pas le OWL dans le texte; vous constaterez que :
        1. il définit les classes “Male” et “Female” comme étant l’ensemble des “Humans” ayant la propriété “hasGender” avec une valeur “Male” et “Female” respectivement.
        2. deux instances “John” et “Mary” sont définies comme instance de “Human” avec la propriété “hasGender” valant “Male” et “Female” respectivement;
        3. le fait que “John” soit de classe “Male” et “Mary” de classe “Female” n’est pas dans le fichier;
      2. de retour dans l’interface web de Sesame, cliquez sur “Types” dans le menu de gauche, puis dans la liste qui apparait, cliquez sur “<http://example.org/owlim#Woman>”;
      3. Dans la liste de triplets qui s’affiche, vous constaterez la présence de ce triplet :<http://example.org/owlim#Mary> rdf:type <http://example.org/owlim#Woman>

        Cette information a été inférée à partir du fichier d’origine;

and voilà ! n’hésitez pas à tester plus avant avec vos propres ontologies. Attention cependant, dans cette configuration d’exemple les données ne sont pas persistentes, c’est-à-dire que vous perdrez le contenu du repository lorsque le serveur Tomcat sera arrêté.

Pour plus d’informations sur OWLIM et ses capacités de raisonnement, consultez les documents dans <owlim>/doc.

Happy testing.

(1) : pour la fonctionnalité de “déduction de nouvelles informations” en tous cas, car pour la focntionnalité de “contrôle d’intégrité des données”, le SGBD contrôle de fait l’intégrité des données qu’il enregistre.

Laisser un commentaire

Vous devez être connecté pour rédiger un commentaire.