Tutoriel pour construire un écosystème Eclipse de développement Java d'applications sémantiques avec Jena

Le projet du web sémantique propose un ensemble de technologies permettant de représenter la signification d'une ressource accessible par le web, et qui a pour cœur, le Ressource Description Framework (RDF). Pour le concepteur Java d'applications sémantiques, l'emploi du RDF impose des particularités qui lui sont propres, qu'il s'agisse : de la diffusion par le web de la sémantique d'une ressource; de l'exploitation de la sémantique par un programme Java; ou encore, de la conception de l'application Java en tant que telle. Le présent tutoriel, qui s'adresse au concepteur Java d'applications sémantiques, présente une procédure de construction d'un écosystème de développements fondé sur l'Eclipse Web Tools Project (WTP) qui intègre Apache Jena ainsi que l'API Java du RDF. Le tutoriel débute par la présentation de l'objectif du tutoriel et se poursuit par la procédure d'installation et de configuration d'Eclipse. La section III présente la procédure d'intégration de Jena à Eclipse alors que la section IV présente la procédure de publication d'un graphe RDF sur un serveur web local. Le tutoriel se termine par une discussion.

Ce tutoriel s'adresse à un concepteur déjà familier avec la programmation Java avec Jena.

Pour réagir au contenu de ce tutoriel, un espace de dialogue vous est proposé sur le forum Commentez Donner une note à l'article (5).

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Objectif

I-A. Besoin

La confection d'une application sémantique nécessite l'intégration de plusieurs composants logiciels en un écosystème permettant de :

  • éditer un graphe RDF ;
  • éditer et compiler un programme Java ;
  • diffuser le graphe RDF par un serveur web interne ;
  • manipuler le contenu du graphe RDF par l'intermédiaire d'une API Java ;
  • effectuer des requêtes par l'intermédiaire d'une API Java ;
  • contrôler le mécanisme de raisonnement sur le graphe par l'intermédiaire d'une API Java.

I-B. Solution

Pour répondre au besoin, il est proposé de construire un écosystème qui intègre le Framework Jena à l'IDE Eclipse du projet Web Tool Platform (WTP) selon la figure présentée ci-dessous.

Image non disponible

I-C. Prérequis logiciel

Ce tutoriel est réalisé à partir des logiciels suivants :

  • Eclipse Kepler J2EE Sr2 32 bits version 4.3.2 du site http://www.eclipse.org ;
  • Jena 2.12.1 du site http://jena.apache.org :

    • la bibliothèque du binaire apache-jena-2.12.1.zip,
    • la bibliothèque du code source jena-2.12.1-source-release.zip.

II. Installer et configurer Eclipse

Cette étape décrit les instructions permettant : d'installer Eclipse, d'y configurer son apparence et de franciser l'environnement.

II-A. Installer Eclipse

  • 1 - Décompressez le fichier eclipse-jee-kepler-SR2-win32.zip dans le répertoire de votre choix ( par exemple : c:\eclipse-jee).
  • 2 - Démarrez Eclipse : C:\eclipse-jee\eclipse\eclipse.exe.
  • 3 - Choisir l'espace de travail approprié (par exemple : c:\eclipse-jee\espacedetravail)
Image non disponible
  • 4 - Aperçu
Image non disponible

II-B. Changer l'apparence

La modification de l'apparence est réalisée afin de clarifier la présentation de l'IDE et d'ajouter des éléments de présentation.

  • 1 - Exécutez Window->Preferences.
  • 2 - Sous General sélectionnez Show heap status (cette option permet d'afficher l'état de la mémoire au coin inférieur droit de l'IDE).
Image non disponible
  • 3 - Sélectionnez le thème « Windows 7 Classic » dans la sélection General -> Apperance
Image non disponible
  • 4 - Redémarrez Eclipse (Exécutez File -> Restart)
  • 5 - Aperçu du résultat
Image non disponible

II-C. Franciser Eclipse

Le projet Eclipse comporte un ensemble de modules permettant de modifier la langue de présentation de l'IDE. Babel est le projet associé à cette fonctionnalité d'Eclipse. Pour franciser Eclipse, réalisez les opérations suivantes :

  • 1 - Exécutez Help -> Install New Software
Image non disponible
Image non disponible
  • Cliquez OK; puis attendez ;
  • 4 - Sélectionnez Babel Language Packs in French
Image non disponible
  • 5 - Cliquez sur Next ;
  • 6 - Puis encore Next ;
  • 7 - Dans la fenêtre Review License, sélectionnez I Accept the terms of the license agreements; puis cliquez Finish ;
  • 8 - Après l'installation, redémarrez Eclipse ;
  • 9 - Aperçu
Image non disponible

II-D. Résumé

À cette étape du tutoriel, l'environnement Eclipse est prêt à intégrer les modules de Jena.

III. Intégrer Jena à Eclipse

Cette étape du tutoriel vise à intégrer Jena dans l'IDE Eclipse par la démarche suivante.

III-A. Décompresser les fichiers de Jena

  • 1 - Créer le répertoire Jena.
  • 2 - Dans le répertoire, décompressez les fichiers : apache-jena-2.12.1.zip et jena-2.12.1-source-release.zip.

III-B. Créer un projet Java

À l'intérieur d'un espace de travail, Eclipse permet de créer des projets de toutes sortes. Pour le besoin du tutoriel, nous allons créer un projet de type Java.

  • 1 - Exécutez la commande Fichier -> Nouveau - >Projet
Image non disponible
  • 2 - Sélectionnez Projet Java; puis Suivant
Image non disponible
  • 3 - Dans le nom du Projet, indiquez TutorielJena.
  • 4 - Sous JRE, sélectionnez Utiliser l'environnement par défaut; puis cliquez Suivant
Image non disponible
  • 5 - Puis cliquez Terminer
Image non disponible
  • 6 - Répondez Oui à la demande de choisir la perspective associée à Java
Image non disponible
  • 7 - Aperçu
Image non disponible

III-C. Créer la classe BonjourDeJena

Cette phase du tutoriel présente les étapes pour créer la classe qui utilisera quelques fonctionnalités de Jena.

  • 1 - Avec le bouton de droite, cliquez le projet TutorielJena ; puis sélectionnez Nouveau ; puis Classe
Image non disponible
  • 2 - Entrez les valeurs suivantes : sous Paquetage, entrez : tutorieljena, et sous Nom, entrez : BonjourDeJena, puis cliquez Terminer
Image non disponible

III-D. Intégrer la bibliothèque Jena

Pour intégrer la bibliothèque de Jena, la première étape consiste à écrire un petit programme qui utilise du code de Jena puis d'ajuster les préférences d'Eclipse afin que le programme puisse exploiter les fonctionnalités de Jena. L'intégration du code source de Jena permettra de configurer le mécanisme de documentation à chaud d'Eclipse.

III-D-1. Créer du code Jena

  • 1 - Dans la fenêtre de la classe BonjourDeJena, entrez le code suivant :
 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
package tutorieljena;

import com.hp.hpl.jena.rdf.model.Model;

public class BonjourDeJena {

    public static void main(String[] args) {
        Model monModele = ModelFactory.createDefaultModel();
    }
}

Notez les indicateurs en rouge. Ils servent à informer le développeur des erreurs constatées par l'IDE. Dans l'exemple plus bas, le message qui apparaît en passant la souris au-dessus de Model, indique que le type n'est pas valide. Cette erreur provient de la non-intégration des bibliothèques de Jena à l'IDE.

Image non disponible

III-D-2. Ajouter les bibliothèques de Jena

L'ajout des bibliothèques de Jena est réalisé par les préférences de l'IDE. Voici les étapes de l'ajout des bibliothèques de Jena.

  • 1 - Exécutez la commande Fenêtre -> Preferences.
  • 2 - Dans le dialogue Préférences, choisissez : Java + Chemin de Compilation + Bibliothèque utilisateur ; puis cliques sur Nouveau…
Image non disponible
  • 3 - Entrez le nom BibJena ; puis cliquez OK
Image non disponible
  • 4 - Ajouter les fichiers Jar de Jena en cliquant sur Ajout des fichiers JAR externes.
  • 5 - Naviguer jusqu'au répertoire lib de Jena (C:\Jena\apache-jena-2.12.1\lib).
  • 6 - Sélectionnez l'ensemble des fichiers jar ; puis cliquez Ouvrir
Image non disponible
  • 7 - Aperçu
Image non disponible

III-D-3. Associer le code source

Pour chaque fichier Jar, il est possible d'y associer le code source correspondant.

  • 1 - Défilez la barre déroulante et localisez le fichier jena-core-2.12.1.jar.
  • 2 - Sélectionnez Connexion de la source ; puis cliquez Modifier
Image non disponible
  • 3 - Sélectionnez External Location ; puis cliquez Fichier externe.
  • 4 - Dans le répertoire C:\Jena\apache-jena-2.12.1\lib-src sélectionnez le fichier jena-core-2.12.1-sources.jar ; puis cliquez Ouvrir…
Image non disponible
Image non disponible
  • 5 - Refaire la même opération pour les fichiers : jena-arq-2.12.1-sources.jar, jena-iri-1.1.1-sources.jar, jena-sdb-1.5.1-sources.jar, jena-tdb-1.1.1-sources.jar.
  • 6 - Aperçu; puis cliquez OK
Image non disponible

III-D-4. Attacher BigJena au projet

  • 1 - De retour à l'édition du projet.
  • 2 - Avec le bouton de droite de la souris, sélectionnez le projet TutorielJena.
  • 3 - Choisir l'élément de menu Chemin de génération->Ajouter des bibliothèques
Image non disponible
  • 4 - Choisir Bibliothèque utilisateur; puis Suivant
Image non disponible
  • 5 - Sélectionnez BibJena ; puis Terminer
Image non disponible
  • 6 - Aperçu
Image non disponible

Après l'ajout de BibJena, le projet a été recompilé par Eclipse. Cependant, une erreur est toujours identifiée à la classe ModelFactory. Cette erreur est corrigée par la procédure qui suit.

III-D-5. Corriger l'erreur à ModelFactory

En déplaçant le curseur au-dessus de l'erreur, l'IDE présente une fenêtre de dialogue contextuel qui propose quelques solutions de correction. Parmi les propositions, le correctif importer ModelFactory (com.hp.hpl.jena.rdf.model) est présenté.

Image non disponible
  • 1 - Choisissez le correctif importer ModelFactory (com.hp.hpl.jena.rdf.model).
Image non disponible

La ligne import com.hp.hpl.jena.rdf.model.ModelFactory est automatiquement ajoutée et les erreurs sont corrigées.

III-E. Valider l'intégration

Pour valider l'intégration de la bibliothèque de Jena, il est proposé de compléter le programme avec du code de Jena et d'exécuter le code.

III-E-1. Compléter le code

Dans l'éditeur, complétez le code suivant :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
package tutorieljena;

import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;

public class BonjourDeJena {
  public static void main(String[] args) {
    Model monModele = ModelFactory.createDefaultModel();
    // Créer une ressource MESSAGE
    Resource message = monModele.createResource("http://webtutoriel/message");
    // Créer une propriété VALEUR
    Property valeurProp = monModele.createProperty("http://webtutoriel/valeur");
    // Assigner une valeur à la ressource
    message.addProperty(valeurProp, "Bonjour à tous");
    // Imprimer le contenu du modèle dans la syntaxe TTL 
    monModele.write( System.out , "TTL");
  }
}

Après avoir créé le modèle monModele, le programme appelle la création de la ressource message et de la propriété valeurProp. Par la suite, le programme associe la valeur " Bonjour à tous " à la ressource message. Le programme se termine par l'impression du modèle en format Turtle TTL à la console.

III-E-2. Exécuter le code

En cliquant le bouton (Image non disponible) , le programme BonjourDeJena est exécuté et le résultat est présenté dans la vue Console.

Image non disponible

IV. Publier localement un graphe

Cette section du tutoriel configure l'environnement afin de publier localement un graphe sur un serveur web local et exécuter du code Jena qui lit le graphe à partir du serveur.

IV-A. Créer un projet web statique

  • 1 - Exécutez la commande : Fichier -> Nouveau -> Projet
Image non disponible
  • 2 - Dans l'assistant Nouveau projet ; choisir Web+Projet Web Statique ; puis cliquez Suivant
Image non disponible
  • 3 - Dans Project Name, indiquez WebTutoriel ; puis cliquez Terminer
Image non disponible
  • 4 - Acceptez d'afficher la perspective web.
  • 5 - Aperçu
Image non disponible

Remarquez la position du curseur qui indique que l'IDE présente la perspective web. Il est possible de revenir à la perspective Java en cliquant sur le bouton Java.

IV-B. Créer et publier un graphe

Les étapes suivantes sont réalisées dans le répertoire WebContent du projet WebTutoriel. Le répertoire WebContent contient l'ensemble des fichiers qui seront publiés serveur web interne.

IV-B-1. Créer le graphe

  • 1 - Sélectionnez WebContent avec le bouton droit de la souris.
  • 2 - Sélectionnez Nouveau -> Fichier
Image non disponible
  • 3 - Dans le nom du fichier, entrez bonjour.ttl ; puis cliquez Terminer
Image non disponible
  • 4 - Dans la fenêtre de texte, entrez le code suivant :
 
Sélectionnez
<http://webtutoriel/message> <http://webtutoriel/valeur> "Bonjour le monde" .

Puis fermez le fichier bonjour.ttl

Image non disponible

IV-B-2. Publier le graphe

Cette étape permet d'indiquer le projet à publier par serveur web.

  • 1 - Exécutez la commande Fichier -> Nouveau -> Autres.
  • 2 - Dans l'assistant sélectionnez Serveur + Serveur puis cliquez Suivant
Image non disponible
  • 3 - Sélectionnez Aperçu HTTP ; puis Suivant
Image non disponible
  • 4 - Dans Nouveau Serveur Sélectionnez WebTutoriel ; cliquez Ajouter ; puis Terminer
Image non disponible
  • 5 - Aperçu

Dans la vue Serveurs, il est constaté que le serveur @localhost est prêt à diffuser le contenu de WebTutoriel.

Image non disponible
  • 6 - Cliquez sur le bouton ( Image non disponible ) en triangle vert pour démarrer le serveur :

    • à l'état [Démarré, Synchronisé] le graphe est en état de diffusion sur le serveur ;
    • le bouton ( Image non disponible ) permet d'arrêter le serveur ;
    • après le départ, le message suivant apparaît à la console :
      « Le graphe est publié à l'adresse http://localhost:8080/WebTutoriel/bonjour.ttl ».

IV-B-3. Coder et exécuter la lecture du graphe à partir du web

Pour coder le programme de lecture du graphe à partir du web, réalisez les étapes suivantes :

  • 1 - Sélectionnez avec le bouton droit de la souris, le paquetage Java tutorieljena.
  • 2 - Exécutez Nouveau -> Classe
Image non disponible
  • 3 - Dans l'assistant Nouvelle classe Java, entrez le nom BonjourDeJenaWeb, puis Terminer.
  • 4 - Entrez le code suivant dans l'éditeur de classe
 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
package tutorieljena;

import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;

public class BonjourDeJenaWeb {
  public static void main(String[] args) {
    // Créer mon modèle
    Model monModele = ModelFactory.createDefaultModel();
    // Lire le contenu du fichier bonjour.ttl à partir du web et
    // mettre le contenu dans monModel
    monModele.read( "http://localhost:8080/WebTutoriel/bonjour.ttl");
    // Obtenir la ressource "message"
    Resource message = monModele.getResource("http://webtutoriel/message");
    // Obtenir la propriété "valeurProp"
    Property valeurProp = monModele.getProperty("http://webtutoriel/valeur");
    // Obtenir la valeur associée au message 
    String valeur = message.getProperty(valeurProp).getString();
    // Présenter la valeur associée au message
    System.out.println("La valeur du message est: " + valeur.toString());
    // Présenter le contenu de monModele en format RDF/XML
    monModele.write( System.out , "RDF/XML");
  }
}

En prévision d'exécuter le programme, il est nécessaire de s'assurer que le serveur HTTP soit à l'état : [Démarré, Synchronisé]

Image non disponible

Réalisez les étapes suivantes pour exécuter la classe BonjourDeJenaWeb :

  • 1 - Avec le bouton de droite de la souris, Cliquez la classe BonjourDeJenaWeb.java ;
  • 2 - Sélectionnez Exécuter en tant que -> Application Java
Image non disponible
  • 3 - Observez le résultat : Le message Bonjour le monde, contenu dans le fichier ainsi que le contenu de monModele sont présentés dans la Console
Image non disponible

IV-B-4. Exercice de validation

En tant qu'exercice de validation, il est proposé de réaliser les étapes suivantes :

  • 1 - Dans le fichier bonjour.ttl, remplacez la valeur du message par commentaire de votre choix ;
  • 2 - Sauvez le fichier ;
  • 3 - Attendez la disponibilité du serveur ;
  • 4 - Exécutez la classe BonjourDeJenaWeb.java ;
  • 5 - Observez si le message apparaît correctement à la Console.

V. Conclusion et remerciements

Il a été vu dans ce tutoriel une procédure de construction d'un écosystème de développement d'application pour le web sémantique. L'écosystème intègre Apache Jena à l'environnement de programmation Eclipse. De plus, le tutoriel présente une procédure permettant d'exploiter les ressources d'Éclipse afin de simuler la diffusion web d'un graphe RDF. Le concepteur devrait trouver dans cet écosystème, les éléments fondamentaux à la confection d'une application sémantique.

Nous tenons à remercier Claude Leloup pour sa relecture attentive de cet article et Mickaël Baron pour la mise au gabarit.

VI. Bibliographie

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2015 Michel Héon. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.