WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception d'une ontologie pour une plate forme d'enseignement à distance

( Télécharger le fichier original )
par Saloua & Amina Chettibi & Rouibah
université de jijel - ingénieur informatique 2005
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Implémentation

I. Introduction

Dans ce chapitre nous allons présenter le travail d'implémentation qu'on a fait, qui consistait premièrement à l'édition de notre ontologie sous le langage OWL, suivi par son exploitation dans une application d'annotation et de recherche de documents pédagogiques qui a été développée en JSP, et en fin l'intégration de l'application développée dans la plate forme PLONE.

Avant de s'attarder sur le détail de réalisation le cahier des charges qui nous a été soumis au début du projet sera présenté.

II. Cahier des charges

· L'ontologie doit être implémenté avec les technologies du Web sémantique (OWL, RDF/S, etc.).

· L'ontologie doit être édité avec l'éditeur d'ontologies « protégé 3.1.1 » et le programme qui la manipule doit être codé en « JSP ».

· L'application développée doit être intégrée dans la plate forme PLONE.

· L'application développée doit permettre principalement l`annotation et la recherche de documents à partir de leurs descriptions, fournis par l'ontologie développée.

III. les outils et le langage utilisés III.1. Java Server Pages

Les Java Server pages (JSP) constituent la technologie Java de pages actives, la technologie JSP est bâtie sur la technologie des servlets.

58

 
 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

 

L'API JSP fait partie de J2EE (Java 2 Entreprise Edition), elle donne aux développeurs les moyens de développer des applications Web de façon simple et puissante.

JSP permet de séparer la logique programmatique (le code java) de la présentation (les balises HTML), voici un exemple :

<html> <head>

<title>FactoriellesJSP</title> </head>

<body>

<h1>Table des factorielles</h1>

<%

int fact = 1;

{

fact = fact * i;

out.println(i + "! = " + fact);%><br> <%}%>

</body> </html>

for(int i=1 ;i<=7;i++)

Balises HTML

Code Java

Résultat de l'exécution

Fig.IV.1: Exemple d'un programme JSP > Exécution d'une page JSP

Une page JSP s'exécute selon l'algorithme suivant :

59

 
 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

 

Fig.IV.2 : Exécution d'un JSP

Un conteneur de JSP (JSP container) fournit les services réseaux par lesquels les requêtes et les réponses sont émises, il décode également les requêtes et formate les réponses dans le format approprié. Tous les conteneurs doivent supporter le protocole HTTP.

III.2. Tomcat

Tomcat est le conteneur web le plus utilisé, il est open source gratuit et multi plateformes (écrit en Java) et il est Téléchargeable sur http://jakarta.apache.org/tomcat.

Tomcat possède deux modes de fonctionnement : > Autonome (standalone) :

Tomcat est aussi un serveur Web, il est capable de servir des pages HTML et d'exécuter des Servlets et des JSP.

> Collaboratif (in-process et out-of-process)

Tomcat peut s'installer comme une extension d'un serveur Web (Apache, Microsoft IIS ou Netscape NetServer), ce qui permet des meilleures performances pour le service des pages HTML.

60

 
 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

 

III.3. Protégé

Éditeur d'ontologie open source disponible à l'adresse http://protege.standford.edu , développé au département d'Informatique Médicale de l'Université de Standford.

L'éditeur d'ontologie « Protégé version 3.1.1 », a été utilisé pour éditer l'ontologie de ce projet dans l'objectif de générer automatiquement le code OWL correspondant, ainsi que pour générer une documentation HTML pour notre ontologie.

Il est à noter que « Protégé » offre bien sure beaucoup de fonctionnalités, et on n'en a pas certainement tous utilisés.

III.4. Jena

Jena est disponible à l'adresse : http://jena.sourceforge.net/ .

Jena est un ensemble d'outils (une API) open source développé par HP Labs semantic Web programme ,permettant de lire et de manipuler des ontologies décrites en RDFS ou en OWL et d'y appliquer certains mécanismes d'inférences.

Pour notre projet on utilisé la version 2.3 qui était la version la plus récente de Jena au début de notre projet.

Fig.IV.3 : La page d'accueil de site http://jena.sourceforge.net/

61

Web sémantique

Ontologies & e-learning

Conception

Implémentation

 

Fig.IV.4 : La documentation associé avec Jena 2-3

IV. Implémentation

IV.1. Edition de l'ontologie et génération du code OWL

La première étape de l'implémentation était bien l'édition de l'ontologie avec « Protégé ». IV.1.1. Choix d'un langage de spécification

RDFS paraissait insuffisant pour coder l'ontologie de ce projet, dans la mesure où il ne permet pas d'exprimer des contraintes de cardinalité, c'est pour cette raison que notre choix a été orienté vers OWL.

L'ontologie de ce projet a été codée exactement en « OWL DL », pour les raisons :

> OWL Lite ne permet d'exprimer que des contraintes simples de cardinalité 0 ou 1, tandis que OWL DL permet d'exprimer des cardinalités multiples.

> OWL Full offre un plus haut niveau d'expressivité que demande l'ontologie de ce projet, tandis que OWL DL offre un niveau d'expressivité assez suffisant.

En plus, le codage d'une ontologie sous format OWL présente l'avantage de rendre cette ontologie réutilisable, grâce à l'utilisation des propriétés d'équivalence, de disjonction entre les concepts et entre les relations.

62

 
 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

 

IV.1.2. Normalisation des noms de l'ontologie

Les caractéristiques suivantes d'éditeur d'ontologie affectent le choix de la convention de nomination :

· Le système a-t-il le même espace de nomination pour les classes, attributs et instances ? C'est à- dire, permet-il d'avoir une classe et un attribut ayant le même nom

· Le système est-il sensible à la casse ?

· Quels délimiteurs le système autorise-t-il pour les noms ? C'est-à-dire, les noms peuvent-ils Contenir des espaces, des virgules, etc. ?

L'éditeur d'ontologie « Protégé version 3.1.1 » avec lequel l'ontologie de ce projet a été éditée, maintient un espace de nommage unique pour les classes, attributs et instances. Il est sensible à la casse, et il ne permet l'apparition des espaces dans les noms, les délimiteurs autorisés sont bien « _ » et «-».

C'est pour ces considérations que les noms déjà présentés dans l'ontologie conceptuelle ont été légèrement modifiés, lors de leurs éditions sous « Protégé ».

IV.1.3. Les étapes de l'édition

Dans ce qui suit nous allons présenter comment nous avons édité l'ontologie de ce projet, à partir de lancement de « Protégé » jusqu'à la génération du code OWL et de la documentation HTML correspondante.

1) lancement de « Protégé 3.1.1» sous Windows XP :

Fig.IV.5 : Lancement de Protégé

2) création d'un nouveau projet avec précision respectivement de type de projet, d'espace des noms, de langage avec lequel sera édité l'ontologie :

63

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Choisir

OWL files (.owl or .rdf)

Fig.IV.6 : Choix de type de projet

Protégé propose un espace des noms

Fig.IV.7 : Choix d'un espace des noms

64

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Choisir OWL DL comme langage

Fig.IV.8 : Choix d'un langage

3) Après avoir spécifier les propriétés de projet la page suivante s'affiche, c'est sur cette page qu'on édite l'ontologie :

Champ des concepts Champ des commentaires

Champ des propriétés

Fig.IV.9 : Page d'édition

4) Commencer à éditer les classes, les définitions de classes, les propriétés, les relations et les relations inverses tout en spécifiant les contraintes de cardinalités :

65

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Création d'une Sous classe de `'OWL : Thing»

Fig.IV.10 : Création des classes

Sous concepts

Sur concept

Nom de concept

Ajouter des propriétés

Ajouter des relations

Définition de concept

Fig.IV.11 : Les champs à remplir

66

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Domaine

Nom de la propriété

Type de propriété

Valeurs permises

Fig.IV.12 : Ajout d'une propriété

Contraintes de cardinalités

Fig.IV.13 : Spécification des contraintes de cardinalité

67

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Domaine

Nom de la relation

Image

Relation inverse

Fig.IV.14: Ajout d'une relation

Nom de la relation inverse

Domaine

Image

fig.IV.15 : Ajout de la relation inverse

68

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

5) Après avoir terminer l'édition de l'ontologie, on sauvegarde le projet :

Spécifier un nom pour le fichier OWL

Spécifier un nom pour le projet, et un emplacement

Spécifier un format

<owl:Ontology rdf:about="">

<owl:imports rdf:resource=""/> Concept

Chapitre

</owl:Ontology>

Définition de concept

<owl:Class rdf:ID="chapitre">

<rdfs:comment rdf:datatype=" http://www.w3.org/2001/XMLSchema#string">

un chapitre est un concept d'application, il est le composant de base d'un support du cours il regroupe un ensemble de connaissance nécessaires pour la compréhension du module.

un chapitre est composé d'un ou plusieurs paragraphes. </rdfs :comment>

<rdfs:subClassOf>

<owl:Restriction>

<owl:minCardinality rdf:datatype=" http://www.w3 .org/200 1 /XMLSchema#int"

Relation inverse de Est_composé_chapitre

>1</owl:minCardinality>

69

Fig.IV.16 : Enregistrement de projet Voici un fragment de code OWL généré :

Web sémantique

Ontologies & e-learning

Conception

Implémentation

<owl:onProperty>

<owl:ObjectProperty rdf:ID="inverse_of_est_compose_chapitre"/> </owl:onProperty>

</owl:Restriction>

</rdfs:subClassOf>

<rdfs:subClassOf>

<owl:Restriction> <owl:onProperty>

<owl:DatatypeProperty rdf:ID="num_chapitre"/>

</owl:onProperty>

<owl:cardinality rdf:datatype=" http://www.w3.org/2001/XMLSchema#int" >1</owl:cardinality>

</owl:Restriction>

</rdfs:subClassOf>

<rdfs:subClassOf>

<owl:Restriction>

<owl:cardinality rdf:datatype=" http://www.w3.org/2001/XMLSchema#int" >1</owl:cardinality>

<owl:onProperty>

Propriété num_chapitre

Fig.IV.17 : un fragment de code OWL généré

6) Finalement, on génère la documentation HTML de l'ontologie :

70

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Génération de la documentation

Fig.IV.18 : Génération de la documentation

La page suivante fait partie de la documentation généré, elle correspond à la classe « Support de cours »:

Fig.IV.19 : Documentation de l'ontologie

71

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

IV.1.4. Schéma résumant la phase de l'opérationnalisation

Génération du code OWL

Ontologie Edition de l'ontologie

conceptuelle

Code
OWL

Ontologie opérationnelle

Fig.IV.20 : Phase de l'opérationnalisation

IV.2. Exploitation de code OWL dans un programme JAVA

Après avoir générer le code OWL correspondant à notre ontologie on a été très vite confronté au problème de son exploitation dans un programme JAVA, surtout que peu d'articles sont ceux qui parlent de détail d'implémentation chose qui nous a demandé plus d'effort pour trouver une solution.

En consultant quelques documents [14] et [15], on s'est rendu compte qu'il existe une API appelée Jena qui sert de lien entre un code OWL et un programme JAVA et que Plus de 70% des applications de Web sémantique sont développées en Jena.

Après avoir répondre à la question « comment exploiter le code OWL avec Java », il fallait résoudre un autre problème car tout simplement lorsqu'on a testé Jena sous JBuilder7 elle n'a pas fonctionné, le problème était dans la version de JDK (JAVA Development Kit) qui a été la version « 1.3.1 » et dans la version du serveur Web JSP « Jakarta Tomcat » qui a été la version « 3.3 » il était indispensable qu'on passe à des versions plus récentes.

On a testé Jena avec « JDK version 1.4.2 » et avec « Tomcat version 4.0 » et ça très bien marché, en ce qui concerne le serveur Tomcat, JBuilder7 est muni de la version « 4.0 » tandis que pour le « JDK 1.4.2 » il fallait qu'on le télécharge à partir de site http://java.sun.com.

72

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

1) Installation de JDK 1.4.2 :

Fig.IV.21 : Installation de JDK 1.4.2

2) Pour la configuration des JDKs et des Librairies avec JBuilder7, il faut aller au menu Tools/configure librairies et Tools/configure JDKs

Ajouter Jena

Fig.IV.22: Ajout de la librairie Jena

73

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Ajouter JDK
1.4.2

Fig.IV.23 : Ajout de JDK 1.4.2

IV.2.1. Suivi de session

Le protocole HTTP est un protocole non connecté (on parle aussi de protocole sans états) cela signifie que chaque requête est traitée indépendamment des autres et qu'aucun historique des différentes requêtes n'est conservé.

Il s'agit donc de maintenir la cohésion entre l'utilisateur et la requête, c'est-ce qu'on appelle « suivi de session ».

Il existe 3 méthodes pour garantir le suivi de session :

1) utilisation des cookies.

2) réécriture d'URL.

3) utilisation des champs de formulaire "hidden".

Pour notre application, on a travaillé avec des champs "hidden", car c'était pour nous une méthode simple ce qui ne veut pas dire qu'elle est forcément la meilleure solution.

74

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

IV.2.2. Architecture de l'application développée

Internet/Intranet

Serveur

Environnement d'exécution

API JENA

SERVEUR
WEB

Tomcat

Réponse

Documents

Code OWL

Niveau2 : Applicatif

Niveau3 : Données

Client

Requête (http)

Navigateur Web

Niveau1 : Présentation

Fig.IV.24 : Architecture de l'application

V. La démarche suivie pour l'annotation des documents La démarche qu'on a suivi pour annoter les documents consistait à :

> Ajouter les métadonnées décrivant un document au fichier OWL qui code l'ontologie d'application.

> Stocker les documents dans un emplacement précis (dans notre cas le dossier nommé « My ») sur le serveur.

> Gérer l'accès aux documents grâce au métadonnée « URI ».

VI. Exécution de l'application

La dernière étape de ce projet était de faire exécuter notre application en dehors de son environnement de développement « JBuilder7 », de manière qu'elle sera intégrable sur la plate forme « PLone », pour réaliser ça on a :

75

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

> Installer le serveur « Tomcat version 4.1» sur le port « 8086 » au lieu du port «8080 » pour le faire cohabiter avec le serveur de la plate forme « Plone » qui réside sur le port « 8080 » :

Port 8086

Fig.IV.25 : Installation de serveur Tomcat > Placer notre application sous le répertoire « Webapps » de Tomcat :

Notre application

Fig.IV.26 : Emplacement de l'application

76

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

> Problème rencontré

Durant l'exécution de notre application, et en particulier en exécutant les JSP faisant appel à Jena, un problème a survenu sur le serveur Tomcat.

Après avoir faire quelques recherches sur le net pour déterminer la cause du problème, et plus exactement en consultant les FAQ (Frequently Asked Questions) de Jena, on s'est rendu compte qu'il s'agit d'un problème de version du parseur XML « Xerces» de Tomcat, qui était une version plus ancienne que celle requise par Jena, problème qui n'était pas posé sous JBuilder7.

Pour résoudre ce problème il fallait qu'on change le fichier « xmlParserAPIs.jar», ainsi que le fichier « xercesImpl.jar » qui se trouvent sous le répertoire « endorsed » de Tomcat, par ceux associés avec Jena.

VI.1. Images d'exécution de l'application

Dans ce qui suit nous allons présenter quelques captures d'écran d'exécution de notre application, mais avant de commencer en voici quelque remarques :

> La génération des identificateurs des enseignants des modules, et tous les individus de l'ontologie est automatique ce qui décharge l'administrateur ainsi que les enseignants de gérer eux même les identificateurs qui doivent être unique pour chaque individu.

> La recherche est insensible à la casse.

> Un champ vide dans une requête implique que l'utilisateur accepte toute valeur possible pour ce champ.

> Pour tester sur le format de certains champs : les champs numérique, champ de date etc. on a utiliser quelque « Java Script».

Les images suivantes présentent un scénario complet de l'utilisation de notre application, afin de mieux expliquer son fonctionnement:

VI.1.1 Annotation d'un module

L'administrateur effectue l'annotation d'un module, qu'il soit le module « Logique pour l'IA », qui est un module de 5 ING informatique, option « Intelligence Artificielle » ayant pour identificateur « module_1 » :

77

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

Module Logique pour l'IA

Fig.IV.27 : Annotation d'un module VI.1 .2. Annotation d'un enseignant

*L'administrateur effectue l'annotation d'une enseignante, qu'elle soit Melle « Ghebghoub Ouafia » ayant pour identificateur (login) «enseignant_1 » :

Le choix des modules se fait sur un autre écran

Enseignante
Ghebghoub Ouafia

Fig.IV.28: Annotation d'un enseignant

78

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

* l'administrateur affecte le module « Logique pour l'IA » à « Melle : Ghebghoub Ouafia » :

Liste des modules non encore affectés

Fig.IV.29 : Affectation d'un module à un enseignant

VI.1.3. Annotation d'un document

*Un enseignant commence à annoter un document par saisir son login :

Login de
l'enseignant

Fig.IV.30 : Saisie de login de l'enseignant

79

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

*L'enseignant doit choisir un module parmi ceux qu'il enseigne :

Choix de module Logique pour l'IA

Fig.IV.31: choix d'un module

*L'enseignant doit préciser le type de document qu'il veut annoter :

Choix d'un support
de cours

Fig.IV.32 : Choix de type de document à annoter

80

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

*L'enseignant doit préciser les caractéristiques de sont support de cours (nombre de chapitre, de paragraphe par chapitre..), afin qu'on lui génère automatiquement un formulaire d'acquisition de métadonnées :

Un cours avec un chapitre, un paragraphe et sans figure.

Fig.IV.33 : préparation à la génération de formulaire d'acquisition des métadonnées

*L'enseignant doit maintenant annoter son document :

2005/2006

http://localhost:8086/projetfinal/my/cours.pdf

Logique propositionnelle&Logique des prédicats

Fig.IV.34 : Annotation d'un support de cours

81

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

VI.1.4. Recherche de documents

*Une recherche de document commence à cet écran, ce dernier permet grâce aux boutons « ? » de passer vers d'autres écrans pour lancer des requêtes à propos de document, de l'auteur de document et de module que concerne ce document :

Fig.IV.35 : écran de recherche de document

*Un utilisateur cherche un document de type support de cours, qui a été rédigé à l'année universitaire « 2005/2006 »

2005/2006

Support de cours

Fig.IV.36: Recherche d'un support de cours

82

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

*Toujours dans la même requête, l'utilisateur passe vers un autre écran où il spécifie qu'il cherche un support de cours ayant pour mots-clés « Logique propositionnelle »:

Logique propositionnelle

Fig.IV.37: Recherche d'un support de cours (suite)

*Le résultat de la requête sera envoyé vers la page de départ :

Support_cours_1

Fig.IV.38: Recherche d'un support de cours (suite)

83

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

* Si encore il veut continuer sa requête en cherchant un auteur particulier :

L'utilisateur spécifie le nom et le prénom de
l'enseignant

Fig.IV.39 : Recherche d'un support de cours (suite)

* L'identificateur de l'enseignant qui correspond à sa requête sera envoyé aussi à la page initiale :

Fig.IV.40 : Recherche d'un support de cours (suite)

84

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

*de plus il cherche un document concernant un module particulier, il passe à l'écran suivant :

Logique pour l'IA

Fig.IV.41: Recherche d'un support de cours (suite)

* Une fois terminer, il lance la recherche de l'URI de document qui correspond à sa requête : Rappelons nous « un support de cours avec un mot clés «logique propositionnelle », rédigé à l'année universitaire « 2005/2006 » par un enseignant ayant pour nom « Ghebghoub » et pour prénom « Ouafia » et qui concerne un module ayant pour nom « logique pour l'IA », et pour niveau «cinquième année » et qui est un module de cycle « long » qui est sans TD et sans TP.

Lancer la recherche de
l'URI

Fig.IV.42 : Lancement de la recherche de l'URI

85

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

*Le résultat de la recherche est bien le document ayant pour URI

« http://localhost : 8086/projetfinal/cours.pdf », par un simple clique sur le lien le document se visualise :

Le résultat de la recherche

Fig.IV.43 : Résultat de la recherche

86

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

VI.2. Intégration de l'application sur la plate forme « Plone »

L'intégration de notre application sur la plate forme Plone, consistait à ajouter des lien dans L'espace de travail réservé à chacun des acteurs vers les tâche qui lui sont propres :

> L'administrateur

Fig.IV.44 : Espace administrateur

87

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

> L'enseignant

Fig.IV.45 : Espace enseignant

88

 

Web sémantique

Ontologies & e-learning

Conception

Implémentation

> Les étudiants

Fig.IV.46: Espace étudiant

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Aux âmes bien nées, la valeur n'attend point le nombre des années"   Corneille