Moteurs de composition pour le système d'information sémantique et adaptatif



Documents pareils
Chapitre 1 : Introduction aux bases de données

Télécom Nancy Année

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Université Paris XI Faculté des sciences d Orsay THÈSE. présentée pour l obtention du grade de Docteur en Sciences de l Université Paris-Sud XI Orsay

(VM(t i ),Q(t i+j ),VM(t i+j ))

Linked Open Data. Le Web de données Réseau, usages, perspectives. Eric Charton. Eric Charton

Compte-rendu de projet de Système de gestion de base de données

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Architecture d'entreprise : Guide Pratique de l'architecture Logique

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Types de REA produites dans le cadre de la séquence pédagogique

Théories de la Business Intelligence

OASIS Date de publication

SECTION 5 BANQUE DE PROJETS

Fiche méthodologique Rédiger un cahier des charges

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

Brève introduction à la recherche d!information sur le Web à base d!agents logiciels

Gestion collaborative de documents

2. Activités et Modèles de développement en Génie Logiciel

SOUTIEN INFORMATIQUE DEP 5229

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Pourquoi l apprentissage?

Université de Bangui. Modélisons en UML

Qu'est-ce que le BPM?

ÉCONOMIE ET GESTION LYCÉES TECHNOLOGIQUE ET PROFESSIONNEL

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

ANNEXE 1. Si vous souhaitez ajouter un descriptif plus détaillé de l offre à votre annonce, merci de le joindre accompagné de ce formulaire.

Objectif. Participant. Prérequis. Oracle BI Suite EE 10g R3 - Développer des référentiels. 5 Jours [35 Heures]

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Deuxième partie. Approche globale d'implémentation d'un projet PLM

Baccalauréat technologique

IFT2255 : Génie logiciel

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

modélisation solide et dessin technique

Catalogue des formations Edition 2015

Logiciel EV3 LEGO MINDSTORMS Education

Master Technologies numériques appliquées à l'histoire Deuxième année

L'évolution de VISUAL MESSAGE CENTER Architecture et intégration

L apprentissage automatique

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Bachelier Bibliothécaire- Documentaliste!

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Classification Automatique de messages : une approche hybride

RÉSUMÉ DESCRIPTIF DE LA CERTIFICATION (FICHE RÉPERTOIRE)

Chapitre 2. Classes et objets

Domaine 1 : S approprier un environnement informatique de travail. Domaine 3 : Créer, produire, traiter et exploiter des données.

LECTURE CRITIQUE. Accompagner les enseignants et formateurs dans la conception d une formation en ligne

Petite définition : Présentation :

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Dans cette définition, il y a trois notions clés: documents, requête, pertinence.

Business Intelligence avec SQL Server 2012

Brique BDL Gestion de Projet Logiciel

MEDIAplus elearning. version 6.6

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Annexe : La Programmation Informatique

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

SEP 2B juin 20. Guide méthodologique de calcul du coût d une prestation

Utiliser Access ou Excel pour gérer vos données

What s New. HOPEX V1 Release 2. MEGA International Avril V1R2 What's New 1

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Conduite et Gestion de Projet - Cahier des charges

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Discussion et implémentation dans un dispositif de scénarisation, d une évaluation diagnostique de l apprenant

Microsoft Application Center Test

ERP5. Gestion des Services Techniques des Collectivités Locales

Bases de Données. Plan

L IMPACT DES N.T.I.C. DANS LA FORMATION PROFESSIONNELLE DES CADRES DE L INSTITUTION MILITAIRE

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Communiqué de Lancement

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

Contenus détaillés des habiletés du Profil TIC des étudiants du collégial

TEXT MINING von 7

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

PROGRAMMES D INFORMATIQUE Cycle préparatoire de l enseignement de base

LES INTERFACES HOMME-MACHINE

Utiliser Freemind à l'école

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Banque d outils d aide à l évaluation diagnostique

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Ingénierie et gestion des connaissances

Une méthode d apprentissage pour la composition de services web

MEGA Application Portfolio Management. Guide d utilisation

Les modules SI5 et PPE2

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Chapitre 3 : outil «Documents»

Sage CRM. 7.2 Guide de Portail Client

PRÉSENTATION DES RÉSULTATS DE L'ENQUÊTE SUR LES SERVICES NUMÉRIQUES

Présentation de l'architecture QlikView. Livre blanc sur la technologie QlikView. Date de publication : octobre

Cours Composant 2. Qualité logicielle et spécications algébriques

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

SweetyPix, mode d'emploi

Utilisation des médicaments au niveau des soins primaires dans les pays en développement et en transition

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Transcription:

Institut de la Francophonie pour l'informatique Institut National des Télécommunications MÉMOIRE DE FIN D'ÉTUDES MASTER EN INFORMATIQUE Moteurs de composition pour le système d'information sémantique et adaptatif DO Ngoc Kien Responsable de stage : Amel BOUZEGHOUB Ce stage a été réalisé au sein de l'équipe Base des données du département Informatique de l'institut National des Télécommunications GET/INT 13 septembre 2006

Remerciements Je tiens tout particulièrement à remercier Amel Bouzeghoub pour sa proposition de ce sujet de stage, son encadrement, ses aides et ses précieux conseils pendant 6 mois de mon stage. Je tiens également à remercier Guy Bernard de m'avoir accueilli chaleureusement dans l'équipe de recherche de l'institut National des Télécommunications (INT). Je voudrais aussi remercier toutes les personnes qui m'ont aidé et supporté, je pense plus particulièrement à Bruno Defude et Serge Garlatti pour leurs conseils judicieux ainsi que les membres du projet SIAS qui m'ont accompagné dans cette formidable expérience. Mes plus sincères remerciements vont également à tous les professeurs et les personnels de l'institut de la Francophonie pour l'informatique (IFI) pour m'avoir enseigné et donné des cours de très bonne qualité pendant mes études à l'ifi. Enn, je remercie ma famille, mes parents et mes amis pour leur soutien, soit-il scientique, humain ou spirituel. Sans eux, mon travail n'aurait pas abouti. i

Résumé L'évolution actuelle des systèmes d'information (SI) va vers plus de personnalisation et de réutilisation dans un environnement informatique marqué par la répartition et les technologies du web (dont les services web). La notion de composition de ressources (documents, présentations, composants, services web..) devient centrale. Ce stage s'intéresse aux systèmes d'information adaptatifs et sémantiques vues comme des systèmes dynamiques, distribués et adaptatifs fondés sur des mécanismes de composition et des modèles sémantiques. L'idée principale est donc de chercher à mieux analyser la notion de composition pour être capable de dénir ensuite des moteurs de composition beaucoup plus réutilisables et exibles. Mots-clefs : Sémantique web, adaptation, services web, composition, système d'information sémantique, ontologies, métadonnées. ii

Abstract Nowadays, information systems need to deal with large distributed repositories, the reuse of their resources and adaptation. The composition of documents, components, and web services is one of their main issues. This intership focuses on semantic and adaptive information systems which are viewed as dynamic, distributed and adaptive systems based on composition engines and semantic models. A composition engine has the ability to compute an adapted information system on the y according to user needs. The main goal is to analyze the composition concept for designing composition engines which can be as exible and reusable as we can. Keywords : Semantic web, adaptation, web services, composition, semantic information system, ontologies, metadata. iii

Table des matières Résumé Abstract 1 Introduction 1 1.1 Problématique.................................... 1 1.2 Objectif du stage................................... 3 1.3 Environnement de travail.............................. 3 1.4 Contribution de stage................................ 3 1.5 Organisation du mémoire.............................. 4 2 Systèmes de composition existants 5 2.1 Scarce......................................... 5 2.1.1 Ontologies................................... 6 2.1.2 Architecture.................................. 6 2.1.3 Composition et Adaptation......................... 7 2.1.4 Discussion................................... 8 2.2 Système de composition de ressources pédagogiques................ 8 2.2.1 Ontologies................................... 9 2.2.2 Architecture.................................. 9 2.2.3 Composition et Adaptation......................... 10 2.2.4 Discussion................................... 11 2.3 KMP.......................................... 11 2.3.1 Ontologies................................... 12 iv ii iii

2.3.2 Architecture.................................. 12 2.3.3 Composition et Adaptation......................... 12 2.3.4 Discussion................................... 12 2.4 Système de composition de Web services...................... 13 2.4.1 Ontologies................................... 13 2.4.2 Architecture.................................. 13 2.4.3 Composition et Adaptation......................... 14 2.4.4 Discussion................................... 15 2.5 Conclusion....................................... 16 3 Modèle de l'utilisateur et techniques d'adaptation 18 3.1 Modélisation de l'utilisateur............................. 18 3.1.1 Représentation................................ 18 3.1.2 Initialisation................................. 23 3.1.3 Construction................................. 25 3.1.4 Feed-back................................... 25 3.2 Adaptation et Recommandation........................... 26 3.2.1 Adaptation dans les systèmes de recherche adaptative.......... 26 3.2.2 Adaptation dans les systèmes hypermédia................. 26 3.2.3 Recommandation............................... 29 3.3 Conclusion....................................... 30 4 Proposition d'un moteur de composition et d'adaptation générique 32 4.1 Scénario workow................................... 33 4.1.1 Architecture du système........................... 34 4.1.2 Discussion................................... 36 4.2 Proposition de moteur de composition générique................. 36 4.2.1 Graph générique............................... 37 4.2.2 Architecture générale............................. 39 4.2.3 Processus de composition générique..................... 41 4.3 Conclusion....................................... 44 v

5 Réalisation 46 5.1 Moteurs d'inférence.................................. 46 5.1.1 Ontobroker.................................. 47 5.1.2 JESS...................................... 49 5.1.3 Autres moteurs d'inférence......................... 51 5.1.4 Conclusion.................................. 51 5.2 Implantation de moteur de composition générique................. 52 5.2.1 Architecture générale............................. 52 5.2.2 Métadonnées de graphe en F-Logique.................... 54 5.2.3 Implantation de Graphe........................... 54 5.2.4 Algorithme d'instanciation de graphe.................... 56 5.3 Application de moteur générique.......................... 58 5.3.1 Composition de document virtuel...................... 58 5.3.2 Composition des services web........................ 61 5.3.3 Composition des ressources pédagogiques................. 64 5.4 Conclusion....................................... 65 6 Conclusions et perspectives 67 6.1 Conclusion....................................... 67 6.2 Perspectives...................................... 68 Bibliographie 72 vi

Table des gures 2.1 L'architecture de SCARCE............................. 7 2.2 L'architecture du système de composition des ressources pédagogiques..... 10 2.3 Un exemple d'une ressource composée dans SIMBAD............... 10 2.4 L'architecture de Trader des services web..................... 14 3.1 un exemple de modèle de recouvrement....................... 20 3.2 Schéma de modèle de l'utilisateur multi dimensionnel [8]............. 22 3.3 Un modèle de l'utilisateur multi dimensionnel [8]................. 23 3.4 Techniques d'adaptation dans le système hypermédia............... 27 4.1 Un workow...................................... 34 4.2 L'architecture basée sur la norme de WFMC.................... 35 4.3 Le graphe générique................................. 37 4.4 Le diagramme classe du graph............................ 38 4.5 L'architecture générale................................ 40 4.6 Création de graphe.................................. 41 4.7 Instanciation de graphe............................... 43 4.8 Consommation de graphe.............................. 45 5.1 L'architecture de Ontobroker............................ 48 5.2 Utiliser Jess avec OWL................................ 50 5.3 L'architecture à 5 couches en général........................ 52 5.4 L'architecture de moteur de composition générique à 5 couches......... 53 5.5 Le diagramme de classe du graphe......................... 55 5.6 Le diagramme de classe des noeuds......................... 56 vii

5.7 Les classes de gestion des graphes.......................... 57 5.8 La anciene et nouvelle structure de code source de Scarce............ 60 5.9 Application du moteur générique pour la composition des services web..... 62 5.10 Architecture de composition de services web utilisant le moteur d'exécution work- ow.......................................... 64 5.11 Architecture de composition de services web utilisant la composition logique et physique de Scarce.................................. 65 viii

Chapitre 1 Introduction 1.1 Problématique Ce stage s'intègre dans le cadre du projet SIAS (Système d'informations Adaptifs et Sémantiques) 1. Ce projet s'inscrit directement dans le cadre des projets structurants initialisés par le GET 2. Il est le produit d une collaboration entre l'int 3 et l'enst-b 4. Actuellement, les communautés Adaptive hypermédia, services web (W3C, Web sémantique et Web Intelligence), documents numériques (ACM Symposium on Document Engineering, documents virtuels), E-learning (réseaux d'excellences Prolearn) abordent une problématique commune sous des angles diérents : le besoin de réutiliser des ressources (documents, présentations, composants, services web...) indexées par des métadonnées sémantiques et les ontologies correspondantes pour la conception des nouveaux systèmes d'informations fondés sur le web sémantique et les standards du W3C. La notion même de "moteur de composition" devient dès lors centrale et permet d'aborder le problème de manière plus conceptuelle. L'idée du projet SIAS incitatif est donc de chercher à mieux analyser la notion de composition pour être capable de dénir ensuite des moteurs de composition beaucoup plus réutilisables et exibles. Ensuite, c'est de proposer une nouvelle manière de concevoir des SIAS fondée sur la composition. La notion de composition est centrale dans notre vision et la plupart des projets existants au GET dans notre domaine ont déjà développé un, voire même plusieurs moteurs de 1 Site web du projet : http ://sias.enstb.org 2 Groupe des Ecoles des Télécommunications. Site web : http ://www.get-telecom.fr 3 Institut National de Télécommunication. Site web : http ://www.int-evry.fr 4 École Nationale Supérieure des Télécommunications de Bretagne. Site web : http ://www.enst-bretagne.fr 1

1.1 Problématique 2 composition comme les projets SIMBAD 5 et Scriptures 6. Il est nécessaire d'unier toutes les propositions déjà faites autour d'un unique moteur de composition susamment exible. Un premier travail à faire est d'étudier ce qui diérencie et unie les approches basées sur la composition de ressources plutôt statiques (comme des documents) de celles basées sur la composition de programmes (comme les services web). Chacune des approches propose un modèle de composition fondé sur certains principes fondamentaux. L'adéquation de ceux-ci aux domaines d'application visés garantit sa réutilisation comme l'environnement de conception de SIAS, mais xe aussi les limites de celui-ci. Une autre dimension est celle du domaine d'application (e-learning, journalisme,..). A un certain niveau d'abstraction, trois principes de composition peuvent être étudiés : 1. La composition de ressources statiques qui sont organisées à priori et sélectionnées dynamiquement à partir de leurs métadonnées; 2. La composition de web services qui sont également organisées à priori et sélectionnées dynamiquement à partir de leurs métadonnées décrivant aussi leurs comportements; 3. La composition dynamique de services web qui génère le schéma de composition en fonction des requêtes des clients lors de l'exécution. Cette analyse doit ensuite nous conduire à proposer une modélisation ne de la notion de composant et de composition. Plusieurs modèles devront être explorés ici à diérents niveaux, même si nous privilégions à priori les modèles issus du sémantique web. Actuellement, chaque équipe est penchée sur sa propre problématique et ses mécanismes particuliers de composition sans aborder nécessairement le problème de "moteur de composition générique". L'innovation de ce projet réside donc dans l'étude même de la notion de composition, de la réutilisation et de la exibilité des moteurs de composition et de ses impacts sur la conception des systèmes d'information de demain. Notre principale innovation et contribution consiste à généraliser les diérentes avancées de ces équipes et à les intégrer dans un cadre unié. 5 SIMBAD (Semantic Interoperability for Mobile collaborative and ADaptive application) est un projet de l'int qui s'intéresse à la description et à la composition de ressources pédagogiques et de workows. 6 Scriptures est un projet de l'enstb qui s'est intéressé à la composition de ressources multimédia statiques avec le moteur de composition SCARCE [15] appliqué au journalisme, au E-learning et au Knowledge management.

1.2 Objectif du stage 3 1.2 Objectif du stage Dans le cadre du projet SIAS, ce stage a pour objectifs de : Etudier les approches de composition existantes et les systèmes d'adaptation et personnalisation; Proposer un modèle de composition générique; Appliquer le modèle proposé à la composition de documents virtuels(dv), de services web(sw) et de ressources pédagogiques(rp). 1.3 Environnement de travail Les travaux de recherche qui sont présentés dans ce rapport ont été menés au sein de l'équipe de base de données, du département Informatique (INF) - un des neuf départements de l'int, situé à Evry, France. Cette équipe regroupe plusieurs enseignants-chercheurs de l'int travaillant dans le domaine des bases des données, des technologies web, des services et workow. L'équipe a acquis de très bonnes compétences dans la manipulation complexe de ressources et de services dans un environnement réparti à grande échelle et dynamique (projet GET SIMBAD). Une thèse s'intéressant particulièrement à la composition dynamique de ressources et à la personnalisation des contenus a été soutenue en 2005. L'INT a participé avec les principales équipes de recherche en EIAH 7 française (le laboratoire TRIGONE de Lille entre autre) à l'as- Plateforme du RTP39 [13]. Les spécications d'un portail de mutualisation d'outils (pouvant être vus comme des " services ") pour la communauté EIAH a permis d'identier les bonnes pratiques en matière d'ingénierie des EIAH facilitant ainsi la réutilisation et la composition des services oerts par la communauté. 1.4 Contribution de stage La principale contribution de ce travail est la proposition d'un modèle de composition générique basé sur les systèmes de composition existants et sa réalisation et son application pour la composition de DV, RP et SW. 7 Environnements Informatiques pour l'apprentissage Humain

1.5 Organisation du mémoire 4 1.5 Organisation du mémoire Après avoir présenté de manière succincte le contexte et la problématique de ce stage, je présente maitenant l'organisation générale du mémoire. La suite du mémoire est composé de 5 chapitres regroupés en 2 parties : Première partie : Etat de l'art Dans cette partie, je présente un état de l'art des systèmes de composition et d'adaptation. Je me focalise sur deux aspects : la composition et l'adaptation au prol d'utilisateur. Le chapitre 2 fait la synthèse des systèmes de composition existants Scarce, KMP, SIMBAD et SW en mettant en évidence leur points forts et faibles. Le chapitre 3 décrit le modèle de l'utilisateur ainsi que des techniques principales dans un système d'adaptation et personnalisation. Deuxième partie : Proposition et Réalisation de moteur de composition générique Dans cette partie, je dénis mon modèle de composition générique et son implantation. Le chapitre 4 présente ma proposition de moteur de composition générique et l'architecture générale du modèle de composition. Le chapitre 5 illustre l'implantation de l'architecture générale de moteur de composition générique proposée ainsi que ses applications dans les trois domaines étudiés à savoir : les documents virtuels, les services web et les ressources pédagogiques Enn, le chapitre 6 donne quelques conclusions et les perspectives du travail.

Chapitre 2 Systèmes de composition existants Dans ce chapitre, notre objectif est d'examiner le principe de composition en faisant des synthèses sur les systèmes de composition existants comme SCARCE, le système de composition de ressources pédagogique SIMBAD, le système de composition des services web. Nous présentons leurs fonctionnalités, leurs architectures respectives et nous dressons une étude comparative de ses systèmes. Actuellement, la notion de composition est très populaire et devient centrale dans plusieurs systèmes d'informations. La construction de logiciel basée sur des composants existe depuis longtemps. Le nouveau système obtenu est établi plus rapidement et de façons plus économique en assemblant des composants plutôt de le développer à partir de zéro. Les systèmes que nous allons étudier est de construire la nouvelle ressource à partir des ressources existants. Cette composition est basée sur la technologie Sémantique Web 1 et l'ontologie 2. 2.1 Scarce SCARCE 3 est un moteur de composition exible pour le document virtuel (ICCARS 4 ) basé sur la technologie Web Sémantique [15, 17]. Un document virtuel est construit à partir de l'ensemble des fragments selon une structure narrative prédénie par l'auteur. 1 Le Web actuel est essentiellement syntaxique, dans le sens que la structure des documents (ou ressources au sens large) est bien dénie, mais que son contenu reste quasi inaccessible aux traitements machines. Seuls les humains peuvent interpréter leurs contenus. La nouvelle génération de Web - Le Web sémantique - a pour ambition de lever cette diculté. Les ressources du Web seront plus aisément accessibles aussi bien par l'homme que par la machine, grâce à la représentation émantique de leurs contenus.[19] 2 Une ontologie est une spécication formelle explicite d'une conceptualization partagée.[17] 3 SemantiC and Adaptive Retrieval and Composition Engine 4 Integrated and Collaborative Computer Assisted Reporting System (http ://iccars.enst-bretagne.fr) 5

2.1 Scarce 6 2.1.1 Ontologies SCARCE est fondé sur les quatres ontologies suivantes : Ontologie du domaine : C'est l'ontologie qui représente l'ensemble des concepts du domaine et aussi leurs relations. Cette ontologie peut décrire le contenu des fragments et aussi des connaissances, préférences de l'utilisateur. Ontologie de l'application : C'est l'ontologie qui représente les notions et les termes dans l'application. Par exemple, dans cette application de composition de document virtuel, on a des notions comme AdaptationMethod, DirectGuidance, TypeDocument, Article, Report... Un schéma de méta-données : Les métadonnées 5 sont structurées selon un schéma de métadonnés. Ce schéma permet de rechercher, gérer et utiliser des informations hétérogères. Le schéma de métadonnées est composé de diérentes sections (général, cycle de vie, technique, journalisme, classication, méta-données et droits), chaque section correspond à un point de vue particulier sur la ressource. Ontologie de l'utilisateur : Le modèle de l'utilisateur dans Scarce est assez complet. C'est un modèle multidimensionnels. Il contient 5 dimensions : Données personnelles, Préférences, Connaissances, Historique, Session. Scarce utilise le modèle du domaine pour modéliser les connaissances de l'utilisateur. Les connaissances de l'utilisateur sont une liste d'éléments (concept, niveau). 2.1.2 Architecture Un document virtuel est généré automatiquement au moment de la consultation. Le moteur Scarce a utilisé la structure narrative pour assurer la sémantique du document virtuel. Une structure narrative est un type de graphe orienté avec des noeuds et des relations sémantiques entre les noeuds. Elle contient aussi un ensemble de règles d'appartenance pour faire l'adaptation basée sur le stéréotype de l'utilisateur. Le moteur de composition va générer dynamiquement les pages web dont le contenu est personnalisé (cf.gure.2.1).

2.1 Scarce 7 2.1.3 Composition et Adaptation Fig. 2.1 L'architecture de SCARCE Pour construire un document virtuel, le moteur Scarce doit composer des fragments existants. Le document virtuel est composé selon le document générique (structure narrative) créé par l'auteur. Ce moteur se compose trois sous-moteurs : la composition sémantique, la composition logique et la composition physique (cf.gure.2.1). La composition sémantique a des fonctions de recherche, de choix et d'organisation des informations de façon sémantique et adaptée à l'utilisateur. En fait, il instancie les structures narratives à partir de l'ensemble des fragments. La composition logique assemble les informations fournie par la composition sémantique en un chier XML. La particularité de la composition logique est de faire l'adaptation de présentation (contenu personnalisé) et de navigation (inspiré des systèmes hypermédia adaptatifs). La composition physique (présentation) transforme le chier XML fournie par la composition logique en page web HTML grâce à XSLT. Cette page web est achée dans le navigateur de l'utilisateur avec un contenu personnalisé. 5 Une métadonnée est l'information additionnelle qui décrit les données auxquelles elle est associée

2.2 Système de composition de ressources pédagogiques 8 2.1.4 Discussion Scarce présente un modèle complet de composition de document virtuel. Les ontologies utilisées sont riches détaillés et bien construites. Le modèle de l'utilisateur est aussi puissant. Les connaissances de l'utilisateur sont bien représentées en utilisant le modèle du domaine. Scarce implémente aussi la propagation des connaissances de l'utilisateur sur le modèle du domaine en utilisant les règles en F-logique 6. Mais, ce modèle n'est pas mis à jour pendant l'exécution de l'application. La composition est fondée sur l'évaluation des fragments pour un type d'utilisateur particulier selon les règles d'appartenance (adaptation basée sur les règles). Scarce a utilisé l'adaptation de navigation dans l'application d'hypermédia pour permettre à l'utilisateur de naviguer à travers le document virtuel. Cependant, les relations dans la structure narrative et la description de fragment sont simples. La structure narrative contient seulement des relations hiérarchiques et le seul contenu des fragments sont décrits par le métadonnées. La technique de composition dans Scarce est aussi simple. Il est donc dicile d'appliquer ses techniques de composition et d'adaptation à l'autres domaines. De plus, les codes source de Scarce ne sont pas claires et structurés. Le moteur de Scarce a été appliqué dans le projet Candle 7 et KMP (présenté dans la section 2.3). 2.2 Système de composition de ressources pédagogiques Le système de composition de ressources pédagogiques est pour but de fournir des ressources pédagogiques ou des cours personnalisés à l'apprenant en sappuyant sur son modèle. L'article[13] présente une théorie sur la description des ressources pédagogiques élémentaires et aussi de ressources composées (ex : un cours) en assemblant des ressources élémentaires. Le système pédagogique adaptif présenté par Duitama se compose de méthodes d'évaluation des ressources et de diérents modèles. 6 Le langage F-Logic est un langage déductif de base de données orientée objets qui combine la sémantique déductive et l'expressivité des langages de bases de données déductives avec la richesse de modélisation des modèles de données orientés objets.[17] 7 Collaborative And Network Distributed Learning Environment (http ://www.candle.eu.org)

2.2 Système de composition de ressources pédagogiques 9 2.2.1 Ontologies Il y a trois ontologies dans ce système : Modèle du domaine : Il s'agit de décrire l'ensemble des concepts pour un domaine de connaissances donné comme l'informatique. Les concepts sont reliés par des relations (hiérarchiques, background...) Modèle de l'apprenant : Il est similaire au modèle de l'utilisateur dans Scarce. C'est également un modèle multi-dimensionnel avec 2 dimensions : les préférences (nom, email, préférés...) et les connaissances (un vecteur d'élément (rôle, niveau, concept)). En comparaison avec le modèle de l'utilisateur de scarce, la représentation des connaissances est très proche. Modèle des ressources (méta-données) : Il s'agit de décrire les ressources pédagogiques en utilisant le modèle du domaine. Chaque ressource possède les parties suivantes : Prérequis est l'ensemble des triplets (concept, rôle, niveau). Contenu décrit le contenu des ressources. C'est également un ensemble des triplets (concept, rôle, niveau). Fonction d'acquisition met à jour le modèle d'apprenant. Elle est aussi un ensemble de triplets (concept, rôle, niveau). Caractéristiques éducatives LOM 8 ont d'autres caractéristiques factuelles sous forme d'un ensemble (prédicat, valeur). En comparaison avec le métadonnées décrivant les fragment dans Scarce, le contenu d'un fragment est aussi l'ensemble des concepts du domaine mais le fragment ne possède pas de prérequis ni de fonction d'acquisition. 2.2.2 Architecture Ce système comprend trois niveaux : Domaine, Composant et Utilisateur (cf.gure.2.2). Comme j'ai présenté dans la section précédente, le domaine est représenté par une ontologie. Le niveau composant contient les ressources élémentaires ou les ressources composées. L'utilisateur va rechercher et manipuler ces ressources. 8 Learning Object Metadata est un standard de l'ieee qui fournit un moyen ecace de repérer et d'indexer des objets d'apprentissage.

2.2 Système de composition de ressources pédagogiques 10 Fig. 2.2 L'architecture du système de composition des ressources pédagogiques 2.2.3 Composition et Adaptation Composition Sa thèse a présenté la composition statique des ressources pédagogiques. Cette composition est représentée par un graphe avec des noeuds (ressources) et les opérateurs entre les noeuds. Un exemple d'une ressource pédagogique composée est montrée dans la gure 2.3. Fig. 2.3 Un exemple d'une ressource composée dans SIMBAD Duitama a décrit trois types d'opérateurs : ALT, SEQ et PAR. Il présente aussi la notion d'échecs lorsque l'apprenant n'a pas acquis le ou les concepts développé(s) par un composant. Avant de livrer la ressource composée à l'utilisateur, le système génère tous les chemins possibles. Les techniques d'adaptation sont appliquées sur ces chemins pour donner une liste ordonnées à l'utilisateur. Une ressource composée peut avoir des noeuds intentionnels. Les noeuds intentionnels sont représentés par une requête. Au moment de l'exécution, le système traite la requête pour obtenir les ressources adéquates. Ce type de noeud est similaire au noeud dans la structure narrative

2.3 KMP 11 dans Scarce. Adaptation Étant donné que le système proposé par Duitama est orienté vers la recherche adaptive de ressources pédagogiques, la technique d'adaptation employée est extraite des techniques d'adaptation des systèmes de recherche adaptifs. Cette adaptation est basée sur des règles selon le stéréotype de l'utilisateur. Il y a 3 types de règles : Des règles pour la ré-écriture des requêtes; Des règles pour la ré-écriture des prérequis qui gurent dans les requêtes; Des règles pour le ltrage des résultats des requêtes. 2.2.4 Discussion Le première concerne l'aspect pédagogique qui n'est pas ou très peu traité. En eet, les interactions entre l'apprenant et l'enseignant ne sont pas traités. Seule la composition de ressource puis l'adaptation à un apprenant sont développés. Dans ce système, l'utilisateur ne peut pas dénir ses règles d'adaptation lui-mêmes pour le ltrage des ressources obtenues. Une autre limitation liée au type d'adaptation où seules l'adaptation au niveau de connaissances de l'apprenant et à ses préférences sont exploitées. Il n'y a pas d'adaptation de présentation et d'exécution des ressources. De plus, les codes source ne sont pas disponibles. Par contre, les modèles (de l'utilisateur, du domaine et de ressources) sont bien représentés en RDF 9 et RDFS 10. 2.3 KMP KMP (Knowledge Management Platform) est un projet de Telecom Valley qui fait la conception et l'analyse des usages communautaires d'un service web de compétences partagées par un 9 RDF est un modèle pour dénir l'information sur Internet, en exprimant la signication des termes et des concepts sous une forme que les ordinateurs peuvent aisément traiter. RDF peut employer XML pour sa syntaxe et URIs pour indiquer des entités, des concepts, des propriétés et des relations. 10 RDFS(RDF Schema) est une langue pour donner dénir une carte conceptuelle des vocabulaires de RDF qui permet de créer des vocabulaires de métadonnées, qui indique également comment manipuler et marquer les éléments.

2.3 KMP 12 réseau inter-rmes et inter-institutions dans le domaine des télécommunications. L'objectif de KMP est de construire une solution innovante de gestion des connaissances partagées entre diérents acteurs, au sein d'une même communauté de pratique. Cette solution repose sur l'analyse, la conception, la réalisation et l'évaluation d'un prototype de service web de compétences, de type hypermédia adaptatif. Il s'agit d'un moteur de composition dynamique de site web à partir d'une spécication fondée sur les connaissances explicites d'une communauté de pratiques. Ce prototype sera une composante d'un portail web destiné à une communauté d'entreprises, d'institutionnels et d'organismes académiques impliqués dans le domaine des télécommunications; la communauté étudiée dans l'application est la Telecom Valley. KMP est réalisé à INRIA et aussi à ENST-B (Brest). 2.3.1 Ontologies KMP est basé sur le moteur de composition Scarce. Il ajoute une ontologie de domaine de Télécom pour gérer des connaissances de Telecom Valley. TelecomValley : Cette ontologie décrit les compétences, les échanges de valeurs... des Télécom Valley. 2.3.2 Architecture L'architecture de KMP est basée sur celle de Scarce. La composition sémantique est simpli- ée et le mécanisme de composition logique et physique est utilisé pour la gestion des requêtes de l'utilisateur. 2.3.3 Composition et Adaptation En fait, KMP annonce l'utilisation de la structure narrative pour gérer la chaîne de valeurs de Télécom Valley mais en réalité il ne l'utilise pas. Il n'y a donc pas de composition dans KMP. L'adaptation à ce jour n'est pas encore réalisé. 2.3.4 Discussion Ce projet est une application de l'architecture de Scarce. Cependant, il n'y a pas de composition et d'adaptation qui sont pourtant les points forts de Scarce.

2.4 Système de composition de Web services 13 2.4 Système de composition de Web services Actuellement, il existe de plus en plus des travaux de recherche sur la composition de services web pour créer de nouveaux services web[28, 20, 2, 25]. L'idée de la composition des services web est de créer un nouveau service web en combinant des services existants en se basant sur leurs comportements pour répondre aux besoins de l'utilisateur. 2.4.1 Ontologies Pour rechercher les services de manière sémantique, il faut annoter des services web. Le langage OWL-S (OWL pour la description des services web) est actuellement le plus utilisé dans ce domaine. Oussama Kassem Zein[28] a proposé un modèle de métadonnées pour les services webs qui contient 3 dimensions : propriétés statiques (comme localisation, nom,...), propriétés dynamiques (enchaînement des opérations) et l'interface (description des opérations, leur paramètres et attributs). Moussa Lo et Fabien Gandon[20] ont utilisé OWL-S 11 pour faire l'annotation des services web. Ils ajoutent une élément " semantictype " dans OWL-S pour annoter la sémantique des opérations dans les services web. Cette modication sert à trouver et composer des services web. 2.4.2 Architecture L'architecture de l'application de composition des services web est basée sur le modèle Trader de Oussama et Broker de Moussa Lo et Fabien Gandon. Deux modèles-là sont très proches. Le modèle Trader utilise Ontobroker comme moteur d'inférence pour stocker les descriptions du service web. Grâce à cela, Trader peut rechercher en utilisant de la sémantique sur Ontobroker pour trouver les services web satisfaisants aux besoins de l'utilisateur. Exporter est le fournisseur des services web. Importer est le consommateur de services web. Tout d'abord, Exporter inscrit tous les services web qu'il fournit à Trader (cf.gure.2.4 (1)). Ensuite, Trader les annotent et les stockent dans Ontobroker (cf. g 2.3 (2)). Des que Importer reçoit une re- 11 OWL est une recommandation de W3C qui décrit les services web.

2.4 Système de composition de Web services 14 quête il la transmet à Trader (cf.gure.2.4(3)). Trader consulte Ontobroker qui lui renvoie les services web satisfaisants la requête(cf.gure.2.4 (4, 5)). Trader transmet la description des services web trouvés à Importer (cf.gure.2.4 (6)). Importer utilise cette description pour appeler directement Expoter an d'il exploite les services web (cf.gure.2.4 (6, 7)). Fig. 2.4 L'architecture de Trader des services web Dans le cas où Trader ne trouve pas les services web correspondant aux besoins de l'utilisateur, il va procéder à la composition de services existants pour fournir à l'utilisateur un service web composé. 2.4.3 Composition et Adaptation Composition La composition des services web se classe en 3 types : La composition statique est la composition des services web qui est dénie au moment de compilation; La composition semi-dynamique est la composition dont le schéma des types de services web est prédéni. Au moment de l'exécution, le système va chercher les instances des services web qui satisfont les types des services web puis les utiliser; La composition dynamique est la composition des services web au moment de l'exé-

2.4 Système de composition de Web services 15 cution. C'est-à-dire qu'à partir de la demande de l'utilisateur, le système va chercher et générer dynamiquement le schéma de composition de type service web et ensuite chercher des instances des services web à exécuter. Par exemple, dans l'article de Moussa Lo et Fabien Gandon, un système de composition de web services est proposé et réalisé en se basant sur le moteur d'inférence Corese. celui de Oussama est basé sur le moteur d'inférence Ontobroker. En comparaison avec la composition de documents virtuels et de ressources pédagogiques, le type de composition utilisé correspond à la composition semi-dynamique de services web est similaire. A partir d'un schéma prédénit, au moment de l'exécution on va chercher les ressources pour instancier ce schéma. La composition dynamique des services web semble être très diérente de la composition de documents virtuels et de ressources pédagogiques. Dans cette composition, l'utilisateur exprime sa demande, le système compose des services web dynamiquement en se basant sur les descriptions des services web existants. Oussama a réalisé la composition dynamique en faisant des requêtes en F-logique pour trouver le schéma de composition qui satisfait aux besoins de l'utilisateur. Moussa a écrit les règles dans Corese pour établir les chemins de composition qui satisfait aux besoins de l'utilisateur. Les deux approches utilisent la même technique de composition. Adaptation Dans les applications de composition de services web, l'aspect d'adaptation au modèle de l'utilisateur se résume à l'adaptation de la demande des entrées et sorties de l'utilisateur. De plus l'autre aspect d'adaptation, le plus important et le plus complexe,à savoir, l'adaptation au contexte de l'exécution de services web n'est pas traité. 2.4.4 Discussion Dans cette section, nous avons présenté la composition de services web. Les ressources assemblées sont ici les services web élémentaires. Deux services web peuvent être composés s'ils satisfont la condition de types "Input-Ouput". Grâce aux métadonnées de services web, on peut construire des règles d'inférences pour déduire automatiquement si la condition est veriée. La composition des services web est diérente par rapport à la composition de documents

2.5 Conclusion 16 virtuel et de ressources pédagogiques. En eet, la composition dynamique de services web génère un schéma de composition selon les besoins de l'utilisateur, alors que dans la composition de documents virtuels et de ressources pédagogiques, le schéma de composition est prédénit. 2.5 Conclusion Nous avons étudié dans ce chapitre la notion de composition ainsi que des systèmes basés sur des techniques de composition diérentes. La plupart de système réalisent la composition en se basant sur la recherche sémantique. Ils utilisent plusieurs descriptions (métadonnées) pour annoter le et les composent. On peut distinguer deux types de composition : La composition selon un schéma pré-dénit (Scarce, Simbad,..). L'auteur dénit le schéma de composition (ex : une ressources composée). A chaque fois qu'une ressource composée est sollicitée, le système assigne des ressources élémentaires au schéma prédéni. La composition dynamique. Il n'y a pas de schéma prédénit. En réponse à une requête de l'utilisateur, si le système ne trouve pas de ressources satisfaisants, il va composer les ressources existants. La composition dynamique des services web se fait en 2 étapes : Composer les types de services web pour avoir un schéma de composition. Composer des instances de services web selon le schéma qui a été fait dans la première étape. Nous avons constaté que chaque type de composition convient à une application diérente. Le premier type de composition est approprié au domaine pédagogique parce que l'enseignant ou l'auteur du cours peut prédénir les étapes à suivre ou le schéma du cours selon ses connaissances pédagogiques. Le système fait la composition selon ce schéma-là. Le deuxième type de composition est approprié l'application de composition de services web. A partir du type de service souhaité par l'utilisateur ainsi que les entrées/sorties de celui-ci, le système génère automatiquement le schéma de composition. Une autre propriété commune aux systèmes étudiées (Scarce, Simbad) est le fait d'intégrer un mécanisme d'adaptation. L'adaptation peut se faire au moment de la composition comme pour Scarce, ou au moment de l'exécution comme pour Simbad. L'adaptation est utilse lorsque le nombre de ressources satisfaisant une requête est important. Le système choisit alors la "meilleure" ressource, c'est-à-dire la ressource la mieux adaptée au prol de l'utilisateur. Dans

2.5 Conclusion 17 le cas où l'adaptation intervient au moment de la composition, la nouvelle ressource est "bien" construite et adaptée mais n'est pas réutilisable. Lorsque l'adaptation intervient après le processus de composition, plusieurs ressources alternatives sont alors possibles. La prise en compte du prol de l'utilisateur va permettre de choisir l'alternative la mieux adaptée. Les diérentes alternatives générées (graphe d'achage) peuvent être réutilisées dans d'autres contexte. Nous allons présenter dans le chapitre suivant le modèle de l'utilisateur ainsi que les techniques d'adaptation.

Chapitre 3 Modèle de l'utilisateur et techniques d'adaptation Dans ce chaptire, notre objectif est de décrire les techniques de modélisation de l'utilisateur ainsi que des méthodes d'adaptation et de personnalisation que nous appliquons dans notre projet. Ces méthodes sont indispensables dans les systèmes adaptatifs, personnalisés et sémantiques. Nous présentons tout d'abord diérentes modèles d'utilisateur et ensuite les techniques liées au prol de l'utilisateur (techniques d'initialisation, de construction et de mis à jour du prol de l'utilisateur)(la section 3.1). Nous abordons ensuite les principales techniques d'adaptation et de recommandation (la section 3.2). Enn, nous terminons ce chapitre par quelques remarques. 3.1 Modélisation de l'utilisateur An de permettre l'adaptation et la personnalisation, il est important de répondre à quelques questions. Tout d'abord, comment représenter le prol de l'utilisateur dans l'ordinateur (dans quel modèle)? D'où proviennent des informations pour le construire? Et par quelle méthode? 3.1.1 Représentation Presque toutes les recherches sur les systèmes adaptatifs et personnalisés sont basés sur le modèle d'utilisateur. Cette section est par conséquent très importante dans notre recherche. Un modèle d'utilisateur est une description des ces caractéristiques utiles pour le choix de l'information et sa présentation à l'utilisateur (Graph, Texte...). 18

3.1 Modélisation de l'utilisateur 19 Nous citons ici les approches principales pour modéliser le prol utilisateur le modèle historiques, le modèle vectoriel, le modèle multi-dimensionnel, les réseaux de neurone ou les probabilités bayésiennes... Modèle historique Le système stocke les informations historiques de l'utilisation (ex : les activités, interaction de l'utilisateur : la liste de courriels ou transactions sur Internet) comme un modèle d'utilisateur. Ce modèle est le plus utilisé dans le domaine du E-commerce comme Amazon.com. Il est facile à construire mais dicile à utiliser. Les techniques de fouille des données sont appliquées pour obtenir des connaissances sur l'utilisateur à partir des informations historiques. Modèle vectoriel Ce modèle est très populaire. Dans ce modèle, chaque item (article, document, livre, un élément des informations..) est représenté par un vecteur. Un élément de ce vecteur est un mot ou un terme associé à un poids. Ce poids soite une valeur booléenne ou un chire. Dans le cas de booléen, il signie que le mot ou le terme apparaît dans l'item ou non. Si le poids est un chire, il exprime la fréquence ou la probabilité du mot ou du terme dans l'item. Par exemple, un prol de l'utilisateur qui s'intéresse à la musique peut être représenté par le vecteur suivant. Le poids de chaque mot correspond à sa fréquence d'apparition dans les documents. Modèle de recouvrement ("Rock", 0.8), ("Pop", 0.7) De plus en plus de systèmes adaptatifs utilisent ce modèle pour le prol de l'utilisateur [12, 13, 9]. Ce modèle est fondé sur l'hypothèse qu'une connaissance des l'utilisateurs peut être simplement un sous-ensemble de celle d'un expert. L'idée principale qu'on exprime le prol de l'utilisateur comme sous-ensemble de modèle du domaine en mettant des valeurs aux concepts. Chaque valeur est une estimation du niveau de connaissances ou intérêts de l'utilisateur sur le concept. Ce modèle est facile à mettre à jour mais dicile à initialiser surtout comment déterminer le niveau de connaissances de l'utilisateur. On peut analyser les actions de l'utilisateur pour augmenter ou diminuer les poids sur les concepts. Par exemple :

3.1 Modélisation de l'utilisateur 20 Fig. 3.1 un exemple de modèle de recouvrement Dans cette gure, le modèle du domaine contient les concepts : C1, C2, C3,... et des relations entre les concepts. Le modèle de l'utilisateur est déni par une partie du modèle du domaine. Dans cet exemple, l'utilisateur a des connaissances sur les concepts C1, C2, C3 et C4. Modèle multi-dimensionnel Un prol d'utilisateur peut contenir plusieurs types d'informations : données démographiques, intérêts, but, information historique... Chaque type d'information-là est une dimension dans le modèle multi dimensionnel. Ce type de prol de l'utilisateur est le plus utilisé dans les applications adaptives et en particulier les applications pédagogiques. Dans le moteur Scarce, l'utilisateur est représenté par 5 dimensions : Section personnelle, préférences, connaissances, historique et sessions. Dans le domaine pédagogique, plusieurs normes de prol de l'apprenant qui suivent le modèle multidimensionnel) exisent. On peut citer : PAPI 1 développé par IEEE. Elle est créée pour la communication dans les systèmes collaboratifs. PAPI a 6 dimensions : l'information personnelle, les relations entre les ap- 1 IEEE Public And Private Information

3.1 Modélisation de l'utilisateur 21 prenants et le groupes, la sécurité, les préférences, les informations d'éducation (certicats, diplôme, rapports..), les informations sur les projets et les travaux réalisés. IMS LIP 2 contient des informations semblables à celles trouvées dans le CV d'une personne et plus sur l'expérience des études de l'apprenant. Il contient 11 dimensions : Identication, But, Étude, Activité, Accessibilité, Intérêt, Aliation, Sécurité, Relation entre des éléments de données, Compétence, Certicats. eduperson est une spécication de Internet2 (www.internet2.com) et Educause (www.educause.edu). Cette norme est très détaillée par rapport à l'autres normes. Elle est semblable à PAPI et IMS LIP. Le but est d'échanger des informations, des données concernant l'apprenant entre les universités. Elle contient 43 éléments classés dans deux catégories : les attributs générales (ex : nom, email,..) et les nouveaux attributs (edupersonaliation, edupersonentitlement, edupersonnickname,..). Dolog LP 3 est le modèle d'apprenant suggéré par P.Dolog en RDF. Le but est de fournir le service de personnalisation dans les systèmes d'éducation. Ce modèle est basé sur la combinaison de deux normes : PAPI et IMS LIP et il contient 5 dimensions : identication, préférence, information sur des études, organisation, calendrier. FOAF 4 est aussi un modèle de l'utilisateur en RDF. Il a été développé pour les communautés et groupes sociaux. Il contient aussi 5 dimensions pour décrire une personne. On voit bien que les modèles PAPI, Dolog LP et IMS LIP se concentrent sur l'activité et les accomplissements de l'apprenant. Ces modèles sont donc employés pour la personnalisation dans les systèmes d'éducation adaptatifs. Le système qui utilise eduperson est bien de transférer et rassembler les données de l'utilisateur entre les établissements. PAPI, Dolog LP et IMP LIP peuvent faire cela mais ils n'ont pas autant de détails que eduperson. Parmi les normes citées précédement, FOAF est le seul modèle qui décrit les relations entre les apprenants par la élément "knows". Donc, ce modèle est pour construire les réseaux sociaux d'apprenant. L'autre avantage de FOAF est que la représentation de FOAF est en RDF. Il est ainsi facile à étendre. An de faciliter l'utilisation de modèle multidimensionnel, Mokrane Bouzeghoub et Dimitre Kostadinov [8] ont proposé un ensemble de dimensions ouvertes, capables d'accueillir la plu- 2 Information Management System - Learning Information Package 3 Dolog Learner Prole [4] 4 Friend of a Friend

3.1 Modélisation de l'utilisateur 22 part des informations caractérisant un prol ainsi qu'une plate-forme de gestion des prols de l'utilisateur. Fig. 3.2 Schéma de modèle de l'utilisateur multi dimensionnel [8] Dans cette plate-forme, chaque dimension contient un ensemble d'attributs (simple, complexes). Quelques dimensions sont organisées en sous dimensions selon la nature de leurs attributs. Un attribut du prol est déni par un nom, un type, une expression de préférence et une sémantique. La construction et l'ajout des dimensions pour le prol de l'utilisateur sont ainsi facilités dans cette plate-forme. Un exemple de prol d'utilisateur de 6 dimensions est construit. Les six dimensions sont : Données personnelles : identité de l'utilisateur, données démographique, contacts personnels,... Ces informations sont stables et ne changent pas beaucoup. Domaine d'intérêt : C'est le domaine d'expertise ou son périmètre d'exploitation. Il peut être présenté par l'ensemble de concepts, ou de termes du domaine. Si on utilise une ontologie pour représenter le domaine, on peut proter de la capacité d'inférence du moteur d'inférence de l'ontologie pour obtenir la sémantique associée à chaque terme d'intérêt de l'utilisateur;

3.1 Modélisation de l'utilisateur 23 Fig. 3.3 Un modèle de l'utilisateur multi dimensionnel [8] Qualité attendu : Ce sont les préférences sur l'origine de l'information, sa précision, sa fraîcheur, sa durée de validité et le temps de réponse; Préférences de livraison : La présentation de résultat, préférences esthétiques. Sécurité : Droits d'accès au système Historique des interactions de l'utilisateur : Ce système fournit également des opérateurs qui nous permettent de manipuler les prols de l'utilisateur comme : Créer un prol, valider le prol avec le modèle générique, comparer deux prols... 3.1.2 Initialisation Cette étape est très importante dans tous les systèmes d'adaptation. Elle est liée au problème : Comment initialiser un prol d'utilisateur. Si cette initialisation est bien traitée, le système peut donner les bonnes réponses au nouveau utilisateur. Cependant, on ne perd pas beaucoup de temps pour cette étape parce que les préférences et les connaissances de l'utilisateur changent suivant. On distingue deux types d'initialisation : l'initiation explicite et l'initialisation implicite. Initialisation explicite Un nouveau prol d'utilisateur peut être construit de façon vide, manuelle ou stéréotype. Vide

3.1 Modélisation de l'utilisateur 24 Au début, tous les prols d'utilisateur sont vides. Quand l'utilisateur va faire les interactions avec le système, son prol va être mis à jour. Manuelle A chaque création d'un nouvel utilisateur, l'utilisateur doit fournir ses informations concernant ses concepts préférés, ses préférences... L'avantage de cette approche est qu'elle est facile à implanter. Par contre, elle a besoin de beaucoup d'un grand nombre d'interaction de sa part. L'autre problème c'est que parfois l'utilisateur ne sait pas quels sont ses préférences ou ses concepts préférés, ses connaissances... Deux méthodes manuelles populaires sont : explicite questionnaire ou initial test. Stéréotype Le système regroupe les utilisateurs en classes en fonction de leurs informations personnelles (ex : le cas du système de journaux adaptifs[5]). Les informations utilisées sont les données démographiques comme données personnelles, données géographiques, les certicats des études... d'utilisateur. L'inconvénient de cette approche est qu'elle a besoin de toutes les informations personnelles d'utilisateur mais parfois qui ne sont pas toujours disponibles. Il est en eet dicile de classier les utilisateurs en se basant sur des informations manquées. Initialisation implicite Dans ce cas, le prole d'utilisateur est construit à partir des données sur les interactions d'utilisateur avec le système. Par exemple, si un utilisateur sauvegarde un document sur son disque dur, c'est une preuve qu'il s'intéresse à ce document et il a l'intention de l'utiliser dans l'avenir. D'une manière similaire, si un utilisateur utilise beaucoup de temps pour lire une page Web ou il suit beaucoup de liens dans cette page, on peut en déduire que c'est une page intéressante pour lui. Les techniques utilisées ici sont des techniques de fouille de données. L'avantage de cette approche est qu'elle ne demande pas beaucoup d'eorts de la part des utilisateurs. Cependant elle n'est pas aussi précise que la première approche. Quelques systèmes ont choisi de combiner ces deux approches pour obtenir de meilleures performances.

3.1 Modélisation de l'utilisateur 25 3.1.3 Construction Technique d'extraction des informations Dans l'approche basée sur le modèle vectoriel, chaque item (document) est représenté par un vecteur. La construction de ce vecteur se fait en deux étapes : sélection des caractéristiques (les mots qui n'apportent pas de sens dans le document sont supprimés) et indexation des informations (la fréquence d'apparition de mot dans le document : TF-IDF est utilisée). Apprentissage non supervisé Dans cette technique, les articles ou des documents sont divisés en les catégories diérentes. Chaque catégorie représente un domaine d'intérêt de l'utilisateur. Apprentissage supervisé Cette technique utilise des classicateurs pour classer des documents dans les classes prédénis.. Par exemple dans le système de Speretta, un prol utilisateur est une ontologie avec des concepts pondérés. Chaque fois qu'il y a un nouveau document, un classicateur est utilisé pour déterminer le concept attaché avec ce document. Le poids du concept sélectionné est alors augmenté. 3.1.4 Feed-back Certaines parties du prol d'utilisateur changent souvent par exemple les concepts préférés. Il est de ce fait nécessaire d'avoir des techniques pour mettre à jour automatiquement le prol utilisateur. Ces techniques sont basées sur les informations issues du feed-back de l'utilisateur. Il y a deux types de feed-back : explicit et implicite. Feed-back explicit L'utilisateur peut attribuer des notes aux concepts, indiquant ainsi son degré de préférence. Cette technique est simple mais elle rencontre quelques problèmes notamment parce que l'utilisateur ne donne pas de feed-back surtout lorsqu'ils sont négatifs.

3.2 Adaptation et Recommandation 26 Feed-back implicit Comme la technique d'initiation implicite, le système surveille les interactions entre l'utilisateur et le système. Avec cette technique, on ne demande pas à l'utilisateur de donner explicitement un feed-back. Cette technique génère beaucoup de données et consomme beaucoup de calculs. Aussi, dans les systèmes récents, on combine deux techniques pour réduire considérablement les eorts de l'utilisateur pour obtenir un résultat acceptable. 3.2 Adaptation et Recommandation 3.2.1 Adaptation dans les systèmes de recherche adaptative Expansion des requêtes La technique la plus utilisée pour la recherche adaptative est la reformulation des requêtes de l'utilisateur [7]. A partir de la requête initiale de l'utilisateur, on peut ajouter des informations, des contraintes, des conditions pour générer une nouvelle requête dont le résultat est adapté au prol de l'utilisateur. Dans le système de composition de ressources pédagogiques de la thèse de Duitama [21], un mécanisme de re-écriture de requêtes a été réalisé pour faire de la recherche sémantique des ressources pédagogiques. Re-ordonnancement des résultats de larecherche Cette approche est l'inverse de l'approche ci-dessus. Quand l'utilisateur fait une requête sur le système, le système l'exécute. Après avoir obtenu des résultats, il utilise le prol de l'utilisateur pour ordonner les résultats et donner la liste des meilleurs résultats à l'utilisateur. Dans ce cas, on peut appliquer la technique de ltrage par contenu. Visualisation personnelle des résultats de recherche En se basant sur les préférences de l'utilisateur comme la couleur préférée, la taille..., le système présente le résultat adapté. Il s'agit de l'adaptation de la présentation et de navigation (ex : La composition logique dans Scarce). 3.2.2 Adaptation dans les systèmes hypermédia Les systèmes hypermédia adaptatif[10] fournissent aux utilisateurs les liens et les informations qui semblent les plus pertinentes comme dans AHA[9]. Dans ce type de système, toutes

3.2 Adaptation et Recommandation 27 les interactions entre l'utilisateur et le système sont observées. L'adaptation dans ce système est l'adaptation de navigation des liens et présentation de pages web. Fig. 3.4 Techniques d'adaptation dans le système hypermédia Il y a deux catégories de l'adaptation : Adaptation de présentation L'adaptation de présentation modie les informations présentent dans une page web pour acher leur contenu adapté à une ou plusieurs caractéristiques de l'utilisateur comme le but, les connaissances, les préférences... On distingue les adaptations principales suivantes : Explication additionnelle, prérequise et comparative : l'explication additionnelle consiste à présenter quelques parties des documents à certaines quelques conditions. L'explication prérequise permet d'ajouter des informations explicative si l'utilisateur ne satisfait pas le niveau de connaissances pour comprendre le page courante, le système va

3.2 Adaptation et Recommandation 28 ajouter les informations nécessaires. Dans l'explication comparative, le système ajoute les informations comparatives entre les concepts connus de l'utilisateur et les concepts se trouvant dans les documents. On a deux techniques pour ce type de l'explication : Inclusion continuelle des fragments : Cette technique est employée dans le système AHA. À partir du modèle utilisateur et des concepts dans le modèle de domaine, le système détermine quels fragments devraient être montrés. Stretchtext : Cette technique est employée dans MetaDoc. Dans chaque fragment, il existe une partie qui contient des informations spéciales (informations courtes). Le système détermine quels fragments devraient "être étirés" et quels fragments devraient " être rétrécis " (seul l'information courte du fragment est montrée). Cette décision est prise seulement au moment de la présentation initiale du fragment. Après cela, l'utilisateur peut étirer ou rétrécir des fragments par des clics de souris. Le système peut surveiller les actions de l'utilisateur pour mieux prévoir quels fragments à étirer ou rétrécir dans la page suivante. Explication variantes : Le système gère les diérentes versions du fragment. Avec chaque utilisateur, le système détermine quelle est la meilleure version de présentation du fragment pour l'utilisateur. Selon le modèle de l'utilisateur, la longueur ou la type de la présentation (texte, images, vidéo, sons,...) et tout autre aspect peut être modié. Tri des informations : Le système trie les fragments selon leur pertinence avec l'utilisateur. Ainsi, l'ordre de la présentation des fragments peut devoir être changé selon le modèle de l'utilisateur. Par exemple, quelques utilisateurs peuvent préférer voir un exemple avant une dénition. Adaptation de navigation Le système classe les liens et aide l'utilisateur à choisir le lien qui contient les informations le plus pertinentes et le plus proches avec objectifs et le prol de l'utilisateur. Les techniques de ce type d'adaptation sont suivantes : Guidage direct : à la n de chaque page Web, le système suggère à l'utilisateur la prochaine " meilleure " page à l'utilisateur particulier en fonction de l'utilisateur; Tri : Les liens sont présentées du plus pertinent au moins pertinent par rapport au modèle de l'utilisateur. Cette technique est très utile dans les systèmes de recherche documentaire

3.2 Adaptation et Recommandation 29 et dans les systèmes d'éducation; Masquage : Parfois les liens dans un page Web sont cachés pour un utilisateur particulier parce qu'on considère que ces liens sont non pertinents à ce moment-là pour lui. Il y a 3 types de masquage; adaptation : Masquage des liens : Ceci peut être fait en présentant le lien en tant que " texte normal ". La couleur par défaut employée par le système AHA est le noir pour des liens indésirables. Désactivation des liens : Les liens inadéquats (non pertinents) sont désactivés. Ces liens-là sont peut-être visibles si on combine cette technique d'adaptation avec d'autres comme l'annotation. Suppression des liens : Les liens inadéquats sont supprimés. Annotation : Les liens sont présentés diéremment selon leur pertinence avec le modèle de l'utilisateur. On peut utiliser la couleur ou les textes pour faire l'annotation. 3.2.3 Recommandation Cette section présente les techniques de recommandation. Il existe deux approches principales : Filtrage par le contenu et ltrage collaboratif. L'objectif de ces approches est de recommander les items susceptibles intéressé par l'utilisateur. Filtrage par les informations démographique Cette approche utilise les données démographiques comme âge, genre,... de l'utilisateur pour générer les relations entre un item avec une classe de l'utilisateur. Filtrage par le contenu Dans cette approche, le système cherche les items dont les contenus sont similaires aux items préférés dans le passé déjà stocké qui sont considéré comme un prol de l'utilisateur. Cette approche est basée sur la comparaison du contenu de l'item et du prol de l'utilisateur. Le problème principal de cette approche est comment extraire les caractéristiques du contenu d'item (image, sons ou texte, documents..). Cela réduit la performance. De plus, la nouvelle chose ne sera pas recommandée aux utilisateurs parce que le système a tendance à chercher les items semblable aux items déjà choisis par ces derniers.

3.3 Conclusion 30 Filtrage collaboratif La diérence entre le ltrage par contenu et le ltrage collaboratif est que le ltrage par contenu est appliqué pour un seul utilisateur, par contre le ltrage collaboratif est appliqué à une communauté de l'utilisateur. Le principe du ltrage collaboratif est basé sur les réactions des autres utilisateurs. Le système recommande à un utilisateur les items préférés des autres utilisateurs qui ont des prols proches de lui. Par conséquent, au lieu de calculer la similarité entre le prol et l'item (dans l'approche ltrage par contenu), cette approche calcule la similarité entre les prols des utilisateurs. Les systèmes collaboratifs ont le problème qu'on appelle "démarrage froids". Cela signie que le système vient de démarrer, il n'y a pas encore de votes disponibles pour que le système puisse donner des recommandations. Un autre problème est que si le nombre des utilisateurs est trop petit par rapport avec les éléments dans le système. Dans ce cas, il n'y a pas assez de données pour donner faire une prédiction. C'est pour cette raison que quelques systèmes ont choisi de combiner ces deux méthodes pour bénécier des avantages et limiter les inconvénients des deux méthodes. Méthode hybride En combinant les deux approches précédentes, on peut créer un système de recommandation plus ecace comme Fab[6]. Dans un système hybride, on évite deux problèmes principaux : le démarrage froids de système collaboratif et non recommandation de le cas où le système de ltrage par contenu ne propose pas de nouvelle chose. 3.3 Conclusion Dans ce chapitre, une introduction sur le prol de l'utilisateur et les techniques d'adaptation est présentée. La modélisation de l'utilisateur n'est pas nouvelle mais a gagné l'attention des chercheurs en raison des multiples applications qui nécessite cette modélisation. La technique d'adaptation et de recommandation rend le système plus utile à l'utilisateur. Le système ne donne que les informations adéquates et utiles et les personnalise selon le modèle et le but de l'utilisateur. Ces techniques sont utilisées dans plusieurs domaines mais surtout dans le domaine d'éducation et de recherche d'information. Grâce à ces techniques, on peut développer un mo-

3.3 Conclusion 31 teur de recherche qui donne le meilleur résultat aux utilisateurs ou créer des cours adaptés aux connaissances et préférences de chaque apprenant. Un système adaptatif et de recommandation contient normalement trois composants : Information du domaine Prol d'utilisateur Technique d'adaptation Laes techniques d'adaptation dépendent de la représentation du prol de l'utilisateur. Ainsi, pour développer ce type de système, il faut déterminer ces trois composants. Dans notre projet, nous avons décidé d'utilisaer une ontologie pour la représentation du domaine. Concernant la modélisation de l'utilisateur, le modèle de recouvrement ("overlay" en anglais) est le plus utilisé notamment dans les applications pédagogiques. Nous avons donc utilisé un tel modèle basé sur une ontologie de domaine que nous avons enrichie par diérents types d'information comme le niveau de l'utilisateur ou ses préférences associés aux concepts du domaine. Nous avons également intégré les techniques d'adaptation (de présentation, de navigation) ainsi que les techniques de recommandation.

Chapitre 4 Proposition d'un moteur de composition et d'adaptation générique Le chapitre 2 a décrit les diérents systèmes intégrant la composition et l'adaptation. Le prol d'utilisateur et les techniques d'adaptation sont bien illustrés dans le chapitre 3. La composition et l'adaptation sont réalisées de manière diérent. Ce chapitre a pour but de proposer un moteur de composition générique qui peut être appliqué à plusieurs domaines (DV, RP et SW). A cause de la complexité et an de comparer plusieurs approches mises en oeuvre pour construire un moteur de composition générique, il faut donc avoir un scénario typique pour mieux analyser la notion de composition et clarier un peu ce moteur. La première étape est sans doute la mise en place d'un scénario permettant d'inclure au mieux toutes les applications visées par le projet. Dans un premier temps, chaque équipe partenaire du projet a proposé un scénario illustrant les fonctionnalités de son moteur de composition. Nous avions donc trois scénarios d'usage : Un scénario de composition de documents virtuels; Un scénario de composition de services web; Un scénario de composition de ressources pédagogiques. Après d'avoir fait la synthèse des ces trois scénarios, nous avons remarqué que la composition dans chacun scénario est diérente. Les fragments sont composés statiquement dans la composition de documents virtuels selon la description de ses contenus. Par contre, les services web sont composés dynamiquement en se basant sur la descriptions des ses entrées et ses sorties. Dans la composition de ressources pédagogiques, la composition est fait par les prérequis, 32

4.1 Scénario workow 33 les fonctions d'acquisition et aussi les contenus des ressources pédagogiques. Nous avons donc proposé un scénario basé sur les workows qui a la particularité d'être plus générique. L'étude des travaux existants dans le domaine des applications pédagogiques et dans celui de la composition de services web nous a permis de constater que de nombreuses approches sont basées sur le modèle de workow[27, 23, 16, 18]. L'approche développée dans l'article [18] utilise un workow pour construire un cours à partir d'une base de composants. Leur approche est orientée vers tâche. Dans l'article [27], l'auteur a proposé une architecture d'apprentissage également basée sur le système de workow. Il a aussi donné une dénition formelle d'un cours basé sur le workow en utilisant un réseau de pétri. En fait, leur architecture traite l'adaptation mais elle est très simple. Le système passe les activités à chaque consultation de l'utilisateur. Le composition de services web est réalisée par un système de workow [14]. [14] a présenté un prototype de conception et d'exécution d'une gestion de workow pour construire un nouveau service web à partir des services existants. Le projet SIMDAT 1 utilise le workow pour composer les services web ainsi que les services grid en compte du contexte. SIMDAT a aussi fait la recherche sémantique des services web élémentaires grâce au moteur d'inférence Ontobroker. Tous ces travaux montre que nous pouvons composer les ressources en se basant sur le système de workow. 4.1 Scénario workow Un système de gestion de workow permet de coordonner les diérentes activités d'un processus de façon asynchrone. Il peut être comparé à un système d'exploitation : il contrôle le workow de ressources, d'individus ou d'applications diérentes. Le Workow Management Coalition (WFMC) dénit un workow comme étant l'automatisation, partielle ou entière. Un système de gestion de workows permet de créer, de dénir, le plus souvent graphiquement, et enn d'exécuter des workows. Cette exécution passe par l'assignation, pour chaque activité, de tâches aux personnes compétentes et par l'exécution d'applications informatiques permettant d'automatiser l'activité dans son intégralité ou en partie lorsqu'une intervention humaine est nécessaire. L'utilisateur peut modier le processus avec l'adaptation aux changements de l'environnement. Cette modication peut se faire à court terme, comme la redistribution des 1 Data Grids for Process and Product Development using Numerical Simulation and Knowledge Discovery

4.1 Scénario workow 34 ressources pour balancer la charge, ou à long terme comme la redénition d'une partie du processus pour résoudre l'embouteillage. Fig. 4.1 Un workow La gure 4.1 illustre un workow a les activités représentées par les objets pédagogiques (Learning Object en anglais) suivantes : LO A, LO B, LO C, LO D, LO E, LO F, Exam. Il y a aussi des opérateurs comme AND-SPLIT, AND-JOIN et aussi OR-JOIN et OR-SPLIT. C'est une ressource pédagogique composée. Notre objectif est de : Construire d'un système de gestion de workow qui permet : 1. d'assigner dynamiquement des ressources de façon sémantique; 2. d'adapter des ressources; 3. et personnaliser leur contenu au prol de chaque utilisateur. Prendre en considération le contexte d'exécution du workow. 4.1.1 Architecture du système L'architecture est basée sur l'architecture de WFMC à laquelle on ajoute le moteur de composition. L'architecture du ce système contient les modules suivant : le moteur de composition;

4.1 Scénario workow 35 Fig. 4.2 L'architecture basée sur la norme de WFMC le moteur de workow (gestion d'exécution des workows); l'ensemble des ressources. Les ressources sont sous plusieurs formes : des applications informatiques, des services, des documents... Dans le domaine de l'éducation, on peut adapter cette architecture pour un système pédagogique. Ainsi, on peut créer des cours dynamiquement et adaptés aux apprenants. Les ressources d'un cours sont soit des ressources pédagogiques, soit des ressources humaines (par exemple, le cours donné par l'enseignant). Acteurs du système Dans ce système, il y a cinq acteurs : le concepteur, l'administrateur, l'observateur, le participant et l'utilisateur. Le concepteur modélise le processus de tâches et de construire le workow en utilisant les modèles du domaine, de ressources et utilisateur. L'administrateur gère les utilisateurs du système et paramètre le moteur de composition et d'exécution. L'observateur surveille l'état courant du système. En cas urgent, il a le droit d'intervenir

4.2 Proposition de moteur de composition générique 36 l'exécution de workow. Le participant est la ressource humaine. Il participe aux plusieurs workows en même temps. L'utilisateur exploite des ressources et des workows du système. Il peut choisir une ressource ou un workow et puis les instancier pour avoir la ressource ou le workow personnalisé 4.1.2 Discussion A partir des trois scénarios proposés par les équipes partenaires du projet, j'ai proposé un scénario décrivant les fonctionnalités du futur moteur de composition générique. C'est un scénario basé sur le mécanisme de workow. Nous reprenons dans ce scénario l'idée de la composition dans la gestion de workow. L'architecture de ce moteur générique est inspirée de l'architecture des WFMC que j'ai adapté en ajoutant entre autre un moteur de composition. Cette modication nous donne un système le plus exible qui se compose deux moteurs : un moteur de composition : pour composer et adapter les ressources selon le schéma de workow; un moteur d'exécution : pour exécuter et adapter les workows à l'environnement d'exécution. Dans le moteur de composition, il y a deux tâches : la composition de ressources selon le schéma de workow; l'adaptation de ressources au prol de l'utilisateur. Ces tâches dépendent de chaque domaine de l'application. Dans Scarce, l'adaptation est faite au moment de la composition, alors que dans SIMBAD l'adaptation est faite après la composition. 4.2 Proposition de moteur de composition générique Avec le scénario workow, nous avons déjà eu une vue générale sur du futur de système de composition générique. Nous avons notamment déni les acteurs du système, les principales fonctionnalités et l'architecture générale. De plus, à partir du scénario, nous avons spécié les entrées et les sorties du système : Entrée :

4.2 Proposition de moteur de composition générique 37 un schéma générique (comme un workow) qui est créé par un enseignant (dans Simbad), ou un auteur (dans Scarce). des ressources du système (fragments, services web ou ressources pédagogiques, tâches...). Sortie : un schéma personnalisé pour un utilisateur particulier Dans la suite, nous proposons un moteur de composition générique par la présentation de la notion du graphe générique, son architecture. A la n du chapitre, nous détaillons le processus générique de composition dans le moteur générique. 4.2.1 Graph générique Nous considérons la notion de graphe générique comme un graphe dont les noeuds qui peuvent avoir plusieurs sémantiques (tâche, ressource pédagogique, fragment, concept ou requête) et les relations représentent les transitions entre les noeuds sous la forme d'un opérateur de composition (seq, par, alt ou sync).. La ressource des noeuds n'est connue qu'au moment de l'exécution. Chaque noeud possède des liens vers le modèle du domaine. L'auteur doit donc dénir à la fois le graphe et sa sémantique.. Au moment de l'exécution,le système recherche les ressources qui satisfont à la sémantique de chaque noeud puis adapte le résultat à l'utilisateur. Le graphe générique tente d'intégrer à la fois le modèle de ressources pédagogiques, le modèle de structures narratives et le modèle de workow. Fig. 4.3 Le graphe générique

4.2 Proposition de moteur de composition générique 38 Par exemple : Dans le gure 4.2.1, l'auteur dénit un graphe générique. Ce graphe a trois opérateurs ALT, PAR et SYN. On peut considérer le lien direct entre les noeuds comme étant l'opérateur SEQ. Les noeuds ont des liens vers les concepts de l'ontologie du domaine. An de donner une dénition plus complète de la notion de graphe,j'ai proposé le digramme de class dans la gure 4.2.1. Fig. 4.4 Le diagramme classe du graph Un graphe contient un seul noeud racine (cf.gure.4.2.1). Alors, on a une relation 1-1 entre la classe Graphe et la classe Noeud. Il y a des noeuds et des relations entre les noeuds (Condition de transition) dans un graphe. Une condition de transition permet de relier deux noeuds. Un noeuds est peut-être un sous-graphe. Alors, le graphe est la sous-classe du Noeuds. Il existe

4.2 Proposition de moteur de composition générique 39 deux types du noeuds : le noeud spécique (on assigne les ressources pour ces noeuds au moment de la conception de graphe). Il est peut-être un fragment, un service web, une ressource pédagogique ou une tâche; le noeud sémantique (on assigne une sémantique à ces noeuds au moment de la conception du graphe, et c'est au moment de l'exécution que le système cherche les ressources et les assigner au noeud) contient des liens vers les concepts du domaine. Il est peut-être un noeud de type de concept avec un lien vers un concept du domaine ou de type requête contenant une requête. Les conditions de transition peuvent être de plusieurs types : des transitions de service web, des transitions de ressources pédagogiques et des transitions de documents virtuels. Dans ce dernier cas, elles sont des relations sémantiques entre les noeuds dans la structure narrative.en fait, dans le moteur Scarce, Il n'y a qu'un seul type de transition : la séquence SEQ. L'objectif à terme est de pouvoir intégrer d'autres types d'opérateurs comme ALT, PAR qui qui existent dans le moteur de composition de ressources pédagogiques Simbad. 4.2.2 Architecture générale Dans cette architecture (cf.gure.4.2.2), le moteur de composition se compose de deux parties : un moteur d'inférence et un sélecteur. Le sélecteur sert à prendre des décisions par rapport au choix de la ressource la mieux adaptée à assigner à chaque noeud dans le graphe générique. Les entrées de ce moteur : Ontologie du domaine : Les informations et le vocabulaire du domaine. Si on travaille dans le domaine de l'enseignement de l'informatique, il s'agira du vocabulaire du domaine informatique comme : programmation, base des données, etc. Modèle du graphe générique : C'est les métadonnées pour dénir les graphes de composition. Comment dénir les noeuds, relations entre les noeuds, les opérateurs... Dans l'application de composition de web service, un graphe est une chaîne de type de web services pour avoir un web service composé. Dans l'application des ressources pédagogiques, un graphe est un cours générique qui est dénit par les enseignants. Les enseignants dénis seulement la sémantique du cours et les ordres à suivre dans le cours.

4.2 Proposition de moteur de composition générique 40 Fig. 4.5 L'architecture générale Modèle de l'utilisateur : Il est indispensable dans l'application de l'adaptation et personnalisation. Quand on fait la recherche des ressources et aussi l'instanciation de graphe, on utilise le modèle de l'utilisateur pour choisir le mieux adapté au besoin, au modèle de l'utilisateur et aussi pour évaluer les résultats, les ordonner et les acher en façon personnalisée. Ce modèle est basé sur le modèle du domaine. (cf.section.3.1) Données (Graphe, Ressources, Information de l'utilisateur) : Ce sont vraiment des données de graphe, des ressources et des utilisateurs et des ces méta données précédents. On stocke les graphe prédénit, les ressources (web services, ressource pédagogiques, fragments...) ou les utilisateur du système. Les sorties de ce moteur : Après avoir évalué et adapté, personnalisé des ressources, choisit des ressources pour le graphe, on obtient le graphe d'instanciation dont le contenu est en format XML. L'utilisateur peut exécuter le graphe-là via l'interface d'utilisateur. Après avoir exécuté le graphe, l'utilisateur peut donner des remarques (feed-backs) sur le graphe et le moteur les stocke pour améliorer le processus d'instanciation de graphe suivante.

4.2 Proposition de moteur de composition générique 41 4.2.3 Processus de composition générique Le processus de composition générique se compose 4 étapes. Après la création de graphe et la sélection de graphe, on applique des techniques d'instanciation et d'adaptation pour donner aux utilisateur le graphe personnalisé. Enn, l'utilisateur exploite ce graphe. Création de graphe La première étape est la création de graphe générique. Grâce à l'outil graphique, l'auteur ou l'enseignent peut créer un graphe qui apporte une sémantique, une structure sémantique du contenu. L'auteur peut dénir les noeuds sémantiques en consultant le modèle du domaine et les noeuds spéciques en assignant des ressources aux ces noeuds. Le graphe créé est stocké dans la base de données. L'auteur dénit ainsi des règles d'évaluation de graphe (par exemple : le graphe est bon pour ce qui a des connaissances supérieures à tel pourcentage). Fig. 4.6 Création de graphe

4.2 Proposition de moteur de composition générique 42 Sélection de graphe Après avoir une base des graphes, l'utilisateur peut choisir un graphe pour lui. Il y a deux choix : L'utilisateur choisit le graphe lui-même. A partir d'une liste des graphes, l'utilisateur décide un graphe pour personnaliser. L'utilisateur ne donne que ses besoins. Le système cherche et évalue les résultats de recherche selon le modèle de l'utilisateur et le but de l'utilisateur pour lui donner le graphe le mieux adapté (à ses connaissances et à ses préférences). En fait, j'ai proposé l'utilisation d'un ltrage collaboratif (cf.section 3.2.3) pour choisir le graphe dans cette étape. Cependant, cette méthode n'est pas ecace parce qu'on ne sait pas que ces feed-backs de l'utilisateur sont sur la structure du graphe ou les ressources ou le processus d'instanciation de ce graphe. L'entrée de cette étape : un ensemble des graphes pré-dénis; des modèle de l'utilisateur; des besoins de l'utilisateur. Sortie de cette étape : un graphe générique satisfaisant au besoin de l'utilisateur Instanciation de graphe Après la sélection de graphe, cette étape est d'instancier le graphe choisi pour un utilisateur particulier parce que l'auteur ne dénit que la sémantique et la structure de graphe. Chaque noeud sémantique contient une sémantique. Pour instancier un noeud à un utilisateur, le système doit chercher les ressources satisfaisants de la sémantique de ce noeud et aussi adaptées au modèle de l'utilisateur. Le processus d'instanciation est comme suivant : Au début, grâce au moteur d'inférence d'ontologie, on peut faire la recherche sémantique des ressources en consultant du modèle du domaine. Après cela, on obtient une liste de ressources satisfaisants à la sémantique du noeud. Ensuite, c'est l'évaluation chaque ressource en compte sur le modèle de l'utilisateur pour

4.2 Proposition de moteur de composition générique 43 trouver quelle est la meilleure ressource. Dans Scarce, l'auteur dénit l'ensemble des règles pour cette évaluation. Enn, c'est la décision d'assigner quelle la ressource sur le noeud. Normalement, selon le stratégie d'adaptation (tri, direct guidance...), on peut donner une liste ordonnée des ressources pour que l'utilisateur puisse choisir la meilleure ressource lui-même. Fig. 4.7 Instanciation de graphe Stratégie de composition de ressources : Dans Scarce, le tâche de sélection et d'assignation des ressources se passe les noeuds l'un après l'autre. L'utilisateur navigue le graphe et le système donne une liste des ressources à chaque noeud. Cette approche se pose quelques problèmes surtout le problème de cohérence de graphe. On choisit la meilleure ressource à chaque noeud, mais on n'assure pas que le graphe obtenu est optimal ou non. Par contre, cette approche est facile à réaliser et aussi on a l'interaction avec l'utilisateur au moment de faire la composition. Dans Simbad, on génère tous les graphes si possible. C'est à dire, avec les opérateur ALT ou des ressources diérentes satisfaisants à chaque noeud sémantique, on peut générer les graphes d'instanciation (graphe d'achage). Après avoir le graphe d'achage, on génère tous les chemins entre l'entrée et la sortie si possible. On a une évaluation de chemin de plus. L'utilisateur

4.3 Conclusion 44 choisit un chemin à suivre. Cette approche a des avantages par exemple la cohérence de graphe (dans l'application des ressources pédagogiques c'est le cours) est assurée ansi qu'on peut obtenir une solution optimale. Par contre, la complexité de calcul et l'espace de mémoire sont un vrai gros problème. L'algorithme de génération de graphe d'achage et aussi les chemins consume beaucoup de l'espace de calcul et aussi la mémoire. En fait, on peut combiner deux approches pour avoir un moteur de composition le plus ecace. Consommation de graphe Après avoir un graphe d'instanciation, l'utilisateur peut exécuter ce graphe. Dans cette étape, l'adaptation de présentation et de navigation sont appliquées (cf.section.3.2.2). On ajoute une partie de gestion de changement d'environnement pour que le graphe d'instanciation puisse adapter aux changements d'environnement. Des feed-backs sur le graphe d'instanciation donnés par l'utilisateur sont stockés dans le système (cf.section.3.1.4). Ces feed-backs sont pour but d'améliorer le processus d'instanciation de graphe suivante. Le modèle de l'utilisateur est mis à jour automatique selon les informations dans le graphe (dans l'application des ressources pédagogiques (cf.section.2.2), c'est la fonction d'acquisition de chaque ressource dans le graphe). Les informations du contexte sont utilisées pour gérer des changements d'exécution[22]. 4.3 Conclusion Nous avons proposé un scénario générique pour le moteur de composition générique. Ce scénario nous permet de mieux comprendre les comportements d'un moteur de composition générique. Le workow est appliqué de composer les services web ainsi que les ressources pédagogiques. Notre extension intégrant les techniques de composition et l'adaptation (au contexte ainsi l'utilisateur) au système de WFMC rend le système plus exible et adaptatif. Ensuite, nous avons décrit la notion de graphe générique ainsi que le processus de composition générique. Le graphe générique est capable de modéliser des ressources composées (les services web composés, les ressources pédagogiques composées et aussi les tâches composés).

4.3 Conclusion 45 Fig. 4.8 Consommation de graphe Avant avoir livré ce graphe à l'utilisateur, plusieurs étapes dans le processus que nous avons proposé sont réalisé. Ce processus est unique pour l'instanciation du graphe de tous les domaine. Cette caractéristique nous permet d'appliquer facilement le moteur générique pour plusieurs diérents domaines. An de valider notre proposition, nous avons fait l'implantation de notre approche pour la composition de document virtuel. Ensuite, nous appliquons sur le moteur de recherche sémantique de web service que nous avons construit pour avoir une composition semi-dynamique de services Web. Nous les présentons dans le chapitre suivant.

Chapitre 5 Réalisation Ce chapitre est l'implantation de moteur de composition générique et ses applications dans trois domaines : la composition de documents virtuels, de ressources pédagogiques et de services web. Tout d'abord, c'est une petite analyse sur le moteur d'inférence actuel pour choisir le meilleur moteur d'inférence pour le projet (la section 5.1). Après avoir présenté l'architecture du moteur de composition générique (la section 5.2.1), je détaille l'implantation du graphe (la section 5.2.3) et les deux algorithmes (la section 5.2.4) qui permet de composer les ressources. Enn, c'est la modication de Scarce et la construction de moteur de composition de ressources pédagogiques et de services web (la section 5.3) en appliquant notre moteur générique. 5.1 Moteurs d'inférence Pour implémenter le moteur générique, on a besoin de moteur d'inférence. Cette section fait l'analyse et l'évaluation de diérents environnements de gestion de connaissances et choix de l'un d'entre eux. Aujourd'hui, il existe beaucoup de moteur d'inférence dans le monde de web sémantique. La fonctionnalité principale de ce moteur est raisonnement. La représentation de l'ontologie est peut-être en logique de description (comme DAML-OIL ou OWL) ou en Frame logique (F-logique). Il est facile à transformer le Frame logique en norme logique de Horne. Le langage d'ontologie en logique de description a des limitations de l'expression et aussi diculté de raisonnement quand l'ontologie a beaucoup d'individus. Mais il est normalisé par W3C. Par contre, le moteur de raisonnement en Frame logique est très puissant et aussi le Frame logique 46

5.1 Moteurs d'inférence 47 nous fournit une capacité d'expression remarquable en ajoutant des règles logiques. Les critères de sélection d'un moteur d'inférence sont suivantes : L'expressivité du langage de représentation d'ontologie; L'expressivité du langage de requête sur les ontologies. De plus, c'est le langage qui nous permet de faire les requêtes sur les concepts ou non ou seulement sur les instances d'ontolgie; Le mécanisme du raisonnement de moteur d'inférence; Le performance du moteur d'inférence; L'API de programmation; La licence. Nous examinons successivement les diérentes moteurs : Ontobroker, Jess, Jade et Kaon dans les sections suivantes. Enn nous prenons la décision de choix quel est le moteur utilisé pour le projet. 5.1.1 Ontobroker Ontobroker est un moteur d'inférence d'ontologie (cf.gure.5.1.1). Il se compose trois éléments : Une interface de requête Moteur d'inférence et Un webcrawler (Ontocrawler). Chaque éléments est accompagné d'une langage de formalisation : le langage d'interrogation pour créer les requêtes, la langage de représentation pour les ontologies et la langage d'annotation pour annoter les documents de web avec l'ontologie. Langage de requête Le langage de requête est orienté vers la présentation d'ontologie basé sur Frame logique qui dénit des notions comme la classe, l'attribut et la valeur. Le schéma générique est : O :C[A-V]. (O : Instance, C : Classe, A : Attribut de la classe, V : Valeur d'attribut). Cette schéma est le sens : Objet O est un instance de la classe C qui a l'attribut A qui a la valeur V.

5.1 Moteurs d'inférence 48 Fig. 5.1 L'architecture de Ontobroker Par exemple : FORALL R <- R :Researcher. (Récupérer toutes les chercheurs) Ontobroker nous donne aussi la capacité de faire la requête sur le schéma, sur les concepts d'ontologie comme : FORALL Att, T <- Researcher[Att=T] (Récupérer tous les attributs de la classe Researcher) Représentation d'ontologie dans Ontobroker La représentation d'ontologie dans Ontobroker est Frame logique. Les relations d'ontologie sont : Sous classe : C1 : : C2 (C1 est la sous-classe de C2) Instance : O : C (O est un instance de la classe C) Déclaration des attributs : C1[A=C2] (Instances de la classe C1 ont l' attribut A qui est l'instance de la classe C2). Valuer d'attributs : O[A-V] (Instance O a l'attribut A qui a la valeur V) L'ontologie en F-logique se compose deux ou trois parties : Hiérarchie des concepts Dénition des attributs

5.1 Moteurs d'inférence 49 Règles pour dénir la relation entre les concepts et attributs Discussion Ontobroker supporte Oracle (version 9i) ou Microsoft SQL Server 2000 pour stocker les faits et les règles. Ontobroker est utilisé dans beaucoup de projet sémantique. Il a donné une bonne performance avec les grandes données. Les entrées des Ontobroker sont RDF, RDFS, OWL ou F-logique. On n'a pas donc besoin des autres outils pour transformer des représentations d'ontologie en OWL, RDF... vers en F-Logique. Il est facile à écrire la requête en F-Logique et plus le moteur d'inférence en F-Logique est très puissant. La représentation d'ontologie en F-Logique est très exible qui peut exprimer n'importe quelle relation d'une ontologie en utilisant la règle en F-logique. API en JAVA de Ontobroker est aussi complet. Alors, la construction d'un système sémantique est facile si on utilise Ontobroker. 5.1.2 JESS JESS est un moteur d'inférence en Java. Il utilise le langage CLIPS pour raisonner. Il y a deux types de licence de Jess : gratuit pour la recherche et un produit commerce. Langage de requête Les requêtes sont représentées par les règles spéciaux de JESS qui n'ont pas le truc droit main côté. Le langage de requête et les règles sémantiques web est puissante parce qu'ils respectent la clause de Horne. Avant avoir exécuté, des requêtes sont optimisés. Requête sur l'instance : Par exemple: Jess> (defquery search-by-name "Finds people with a given last name" (declare (variables?ln)) (person (lastname?ln) (firstname?fn) (age?age))) Requête sur les concepts : On ne peut pas faire la requête sur les concepts. Mais on le peut chercher les concepts grâce à API JAVA. Utiliser JESS avec OWL La gure 5.1.2 montre comment utiliser Jess avec Protégé et OWL. Deux outils supplémentaires sont utilisés pour que Jess puisse traiter des entrées OWL : OWL2JESS et SWRL2JESS.

5.1 Moteurs d'inférence 50 OWL2JESS a le rôle de convertir l'ontologie OWL et des instances aux faits de JESS (en anglais FACTS). C'est la base de connaissance de moteur d'inférence. SWRL2JESS : SWRL est un langage de règles du Web sémantique combinant OWL et RuleML. SWRL intègre une syntaxe abstraite de haut niveau pour les règles de Horne dans les sous langages OWL DL et OWL Lite de OWL. Le but de cet outil est de convertir le langage SWRL en règle dans JESS. Avec SWRL, les utilisateurs peuvent créer un nouveau concept et l'ajouter à la base de connaissances. Discussion Fig. 5.2 Utiliser Jess avec OWL Il fournit un API Java complet pour la programmation ou bien on peut utiliser Jess comme un seul programme. Le mécanisme d'inférence dans Jess est au choix de l'utilisateur. On peut utiliser le mécanisme d'inférence par défaut le chaînage avant ou le chaînage arrière. Jess est une application en mémoire. Il est donc sensible à la performance de mécanisme "Java garbage collector" de JVM. Le temps de raisonnement est vite grâce au mécanisme d'indexation de mémoire Rete. Jess est un moteur d'inférence stable et puissant. De plus, il existe plusieurs outils supplémentaires pour faciliter la programmation avec Jess : plugin avec Eclipse, Editeur de règles pour Jess,... De plus, On a des plugins de Protégé pour OWL et JESS (JessTab). L'API de ce moteur est complet et facile à utiliser si on veut développer l'application en Java. La performance semble haute mais nous n'avons pas encore testé. CLIPS est aussi un langage puissante et exible pour la représentation de connaissances et aussi bien adapté à la programme à base

5.1 Moteurs d'inférence 51 de règles et d'objets. SWRL est un langage standard pour le sémantique web. il fournit la capacité d'écrire des règles Horne exprimées en termes de concepts de OWL. Il y a aussi des outils pour SWRL. Pourtant, Jess est un produit commerce mais il est gratuit pour le but de recherche. L'autre point est que le langage de requête est seulement sur les instances. 5.1.3 Autres moteurs d'inférence Jena Jena est un framework (de HP société, gratuit) pour construire des applications web sémantique (Il support RDF, RDFS et OWL). Ce framework comprends : RDF API OWL (lite et full) API, DAML API Langage de requête SDQL Mécanisme d'optimisation des requêtes API pour manipuler avec l'ontologie Kaon Kaon est un moteur d'inférence avec les code sources ouverts. Il fournit un langage de requête sur les instances et aussi les concepts. Comme la plupart des moteurs d'inférence, KAON fournit des APIs pour manipuler avec les ontologies. Les formats supportées sont RDF, RDFS, DAML- OIL. KAON est entrain de développer. Le langage de requête est en état expérimental. En plus, l'api du KAON a seulement supporté au modèle " en-mémoire". 5.1.4 Conclusion Après d'avoir fait une synthèse sur plusieurs moteurs d'inférences, on a décidé de développer le projet avec Ontobroker. Jess est un moteur d'inférence puissant mais il est compliqué à utiliser. Jena ne fournit que le langage de requête sur les instances, pas de concepts. Kaon n'est pas stable. Par contre, Ontobroker a le langage de requête sur les instances et aussi les concepts de l'ontologie. L'autre point, il est facile à écrire les règles d'inférence en F-logique et Ontobroker accepte le langage OWL, RPF ou RDFS comme les entrées du moteur d'inférence. Il est un moteur stable qui est utilisé dans beaucoup de projets comme Scarce.

5.2 Implantation de moteur de composition générique 52 5.2 Implantation de moteur de composition générique 5.2.1 Architecture générale Pour bien construire le moteur de composition, j'ai utilisé le modèle à 5 couches pour avoir une bonne architecture de logiciel. Cette architecture nous permet d'avoir des hauts niveaux de productivité et de réutilisations. On a aussi utilisé la méthode de conception orienté objet pour ce moteur. Je présente quelques points principaux du modèle à 5 couches. En fait, l'architecture à 5 couches isole le périmètre fonctionnel des applications. Fig. 5.3 L'architecture à 5 couches en général Physique Ce qui correspond à la structure physique des données : SGBD,... Mapping Pour faire le mapping entre les objets et la structure physique. Entreprise Ce qui correspond aux objets structurant de l'entreprise. Et aussi, cette couche fournit des services qui permet de créer, supprimer, modier les objets. Application Cette couche regroupe les fonctionnalités de logiciel. Ce sont les cas d'utilisations de logiciel. Client C'est la couche liée à l'interface d'utilisateur.

5.2 Implantation de moteur de composition générique 53 Avantage de cette architecture est qu'il est facile à construire le système en le décomposant en sous-systèmes. De plus, maintenir et élargir le système n'est pas compliqué. En appliquant le modèle à 5 couches au-dessus, j'ai proposé d'une architecture de logiciel pour le moteur de composition sémantique générique. Fig. 5.4 L'architecture de moteur de composition générique à 5 couches La couche la plus base est Physique qui correspond au stockage d'ontologie et aussi des données de système. Nous avons décidé d'utiliser Ontobroker comme le moteur d'inférence pour notre système. Donc, la présentation de l'ontologie est en F-Logique et stocké dans l'ontobroker. A parte de F-logique, on utilise aussi XML pour les méta-données des ressources. La couche Mapping est l'ensemble des services qui fournit la capacité de récupérer et stocker les objets de système sur la couche Physique. Normalement, il contient les API pour manipuler avec ontologie comme les services : Créer un concept d'un ontologie, les relations entre les concepts, les attributs, des instances,... et les modier. Il contient aussi des fonctionnalités qui permettent de travailler avec les ontologies d'utilisateur, de domaine, les métadonnés des ressources et donnés des graphes. La couche Entreprise est l'ensemble des objets de système comme les projets, les graphes, les utilisateurs, les transitions de graphe, etc. Il y a aussi des services qui permettent de manipuler avec ces objets par exemple créer, supprimer, ajouter... La couche Application fournit des fonctionnalités du système aux utilisateurs. Dans notre système, il y a 4 fonctionnalités principales : Composition des graphes, Recherche sémantique, Exécution de graphe et annotation de ressources.

5.2 Implantation de moteur de composition générique 54 La couche la plus haute est Client correspondant à l'interface de l'utilisateur. Dans notre système, on utilise l'interface WEB. On l'a développé en Java et Servlet, HTML. 5.2.2 Métadonnées de graphe en F-Logique Nous avons construit les méta-données du graphe en F-logique. Ces métadonnées nous permet de manipuler et modéliser le graphe générique.[voir Annexe] Par exemple (un extrait de métadonnées de graphe) : CM_Graph::CompositionMaterial. CM_Graph [ name_en ->> "Graph"; name_fr ->> "Graphe"; HasVertex=>> CM_Vertex; HasTransition => CM_Transition; HasRoot=> CM_Node; IsInside=>> CM_Module; HasName =>> STRING ]. // node definition CM_Vertex :: CompositionMaterial. CM_Vertex [ name_en ->> "Vertex"; name_fr ->> "Vertex"; IsInside=>> CM_Graph; HasTitle=>> string ]. CM_Node :: CM_Vertex. CM_Node [ name_en ->> "Node"; name_fr ->> "Noeud"; HasSearchType=>> Granularity ]. 5.2.3 Implantation de Graphe Il y a des classes principales suivants dans le package enterprise.graph. Vertex : C'est la classe qui représente le sommet du graphe. Un sommet est peu-être un sous-graphe, ou un opérateur, ou un noeud. Graph : Un graphe contient l'ensemble des noeuds et opérateurs, et les transitions entre les sommets et un noeud racine OperatorNode : La classe OperatorNode représente une noeud d'opérateur. Chaque noeud d'opérateur a une référence sur un objet d'opérateur comme SEQ, ALT ou PAR. Node : Cette classe représente une noeud normale. Il a une référence vers les ressources. Transition : Grâce à cette classe, les sommets d'un graphe se sont liés. Ensuite, il y a beaucoup des types de noeuds :

5.2 Implantation de moteur de composition générique 55 Fig. 5.5 Le diagramme de classe du graphe SpecicNode : Cette classe représente un noeud qui contient une référence vers une ressource. Cette référence est créée au moment de la création du graphe. SemanticNode : Cette classe représente un noeud sémantique qui contient seulement une sémantique (une référence vers le modèle du domaine). Au moment de création de graphe, on dénit seulement cette sémantique, et au moment d'exécution, le système cherche les ressources satisfaisants à cette sémantique. QueryNode, ConceptNode est les deux sous-classes de cette classe (QueryNode : La sémantique du noeud est représentée par une requête, ConceptNode : La sémantique du noeud est une référence vers un concept du domaine). J'ai créé DV_ ComponentNode pour les noeuds dans la composition de document virtuel (Scarce). Ce noeud est comme le noeud dans la structure narrative dans Scarce. Les classes de gestion du graphe : Ces classes suivantes sont pour faciliter à manipuler avec le graphe. Iterator : Cette classe est pour naviguer les noeuds dans un graphe. GraphContainer : Cette classe est un containeur des graphes. On peut ajouter, supprimer... des graphes dans un containeur.

5.2 Implantation de moteur de composition générique 56 Fig. 5.6 Le diagramme de classe des noeuds GraphMappingManager : Cette classe est pour sauvegarder les graphes vers Ontobroker. Elle supporte aussi la lecture d'un graphe à partir d'ontobroker. GraphSemanticEngine : Cette classe est pour but d'instancier un graphe. C'est comme l'instanciation de structure narrative dans le moteur de document virtuel. Après l'instanciation de graphe, les noeuds sémantiques dans le graphe sont assignées des ressources. 5.2.4 Algorithme d'instanciation de graphe En fait, comme j'ai déjà présenté, on a deux approches d'instanciation du graphe. une approche fondée sur Simbad : on génère toutes les chemins possibles entre le noeud d'entrée et le noeud de sortie et cherche, adapte des ressources en fonction du prol d'utilisateur. Ensuite, on passe le graphe d'instanciation au moteur d'exécution pour le livrer à l'utilisateur. l'autre fondée sur Scarce : on instancie les noeuds dans le graphe un après l'autre au moment d'exécution du graphe. Nous avons implémenté toutes les deux approches dans le moteur de composition générique. Selon le type de l'application, on détermine quelle méthode est utilisée.