Sciences et Technologies de l´Information et de la Communication pour l´Éducation et la Formation |
Volume 12, 2005 |
Un entrepôt pour stocker et rechercher des composants logiciels utiles aux EIAHIssam Rebaï Crip5, Université Paris 5 et ESIEA Recherche, ESIEA Nicolas Maisonneuve Crip5, Université Paris 5 Jean-Marc Labat Lip6, Université Paris 6 RÉSUMÉ : La visibilité des recherches en France dans le domaine des EIAH est restée réduite malgré la qualité de nombre de ces travaux, en particulier à cause de la difficulté à construire un environnement opérationnel suffisamment développé pour être expérimenté en situation réelle. Tester et faire fonctionner un outil obligent généralement les chercheurs à développer des programmes complémentaires souvent disponibles ailleurs mais non référencés. Pour mieux valoriser les travaux de recherche et éviter de re-développer plusieurs fois les mêmes fonctionnalités, une condition est donc que les réalisations logicielles soient décrites et indexées dans un espace commun, l'espace de stockage pouvant lui être distribué. Dans cet article, nous présentons la conception et la réalisation d’un entrepôt destiné à stocker, indexer et rechercher des composants logiciels nécessaires aux EIAH. Nous proposons également un schéma de métadonnées pour décrire ces composants logiciels en nous inspirant des standards existants mais en apportant des compléments car nous pensons que, en particulier les aspects techniques, ne sont pas suffisamment décrits. MOTS CLÉS : Entrepôt, composant logiciel pédagogique, indexation, métadonnées. ABSTRACT : Although there are numerous research works in France about e-learning environments with a great quality, their visibility is rather weak. This is due to the difficulty to construct operational environment, with enough development to be experimented in the real world. The problem is that one need to develop a lot of complementary software in order to test a tool. Very often, these tools exist somewhere, but without being referenced. To avoid this shortcoming, these tools must be described and indexed in a repository, or in a set of distributed repositories. In this paper, we present the design and the implementation of such a repository, dedicated to components for designing e-learning environments. We also propose a metadata schema to describe them, inspired of existing schema such LOM, but with some complements, due to the fact that there are software components. KEYWORDS : Repository, pedagogical software component, indexation metadata. 1. IntroductionDepuis plus de 20 ans, des projets de recherche en France portent sur la conception et le développement d'environnements d’apprentissage ou d'outils logiciels offrant de nouvelles fonctionnalités. Cependant, le passage à l’échelle est resté réduit malgré la qualité de beaucoup de ces travaux. Les causes de cet état de fait sont multiples mais il nous semble que la raison majeure vient de la difficulté à construire un environnement opérationnel complet, c'est-à-dire incluant toutes les fonctionnalités nécessaires à un usage en situation réelle. C'est pourquoi, même si les résultats de ces recherches sont intéressants, souvent le produit final reste inexploité. En effet, la majorité des projets de recherche n'a pas pour objectif de construire un EIAH complet et opérationnel mais de se pencher sur un problème particulier et d'essayer de lui trouver une solution. Le résultat est souvent une application ou un prototype rendant un service particulier. Faute d'intégration dans un EIAH opérationnel, le fruit de ces recherches reste souvent limité à la phase d’expérimentation. D'un autre côté, tester et faire fonctionner un outil en situation réelle obligent généralement les chercheurs à développer des programmes complémentaires, éventuellement disponibles ailleurs mais non référencés et donc inaccessibles. Pour mieux valoriser les travaux de recherche et éviter de re-développer plusieurs fois les mêmes fonctionnalités, une première condition est donc que les réalisations logicielles soient décrites et indexées dans un espace commun, l'espace de stockage pouvant, lui, être distribué1. C'est dans ce contexte que le Réseau Thématique Pluridisciplinaire "Apprentissage, Formation et Education" a lancé une action spécifique pour définir une plate-forme de mutualisation des travaux de la communauté française, voire francophone, de recherche sur les EIAH. Grâce à un travail de réflexion mené collectivement, nous avons défini un ensemble de scénarios d'usage d'une telle plate-forme qui a abouti à définir les fonctionnalités souhaitées : Déposer/Rechercher, Publier/Souscrire, Assembler, Évaluer/Expérimenter, Gérer un projet, Participer à la communauté de pratique (AS Plate-forme, 2005). Parallèlement à cette initiative, un travail a été entrepris au Crip5 depuis octobre 2001 d’une part pour définir un schéma de métadonnées décrivant les composants logiciels pédagogiques et d’autre part pour concevoir et réaliser un entrepôt de composants logiciels dédié aux EIAH s’appuyant sur ce schéma de métadonnées. Bien entendu, le groupe de recherche du Crip5 a participé à l'action spécifique dans la mesure où l'objectif de cette recherche portait sur l'une des fonctionnalités essentielles (déposer/rechercher) de la plate-forme de mutualisation. L'objet de cet article est de décrire les travaux réalisés, travaux qui permettront dans un proche avenir de tester le dépôt incluant la description, l'indexation et la recherche de composants. Cet article est structuré de la manière suivante : Le deuxième paragraphe fait un rapide tour d’horizon des viviers de connaissances existants en montrant que le besoin que nous avons énoncé ci-dessus n’est pas couvert. Dans le troisième paragraphe, nous proposons une catégorisation des composants logiciels nécessaires aux EIAH. Dans le quatrième paragraphe, nous proposons un ensemble de métadonnées pour les composants logiciels pédagogiques. Dans le cinquième paragraphe, nous présentons l’architecture générale du système, les mécanismes de dépôt et de recherche ainsi que l’outil d’indexation et de recherche. Dans le sixième paragraphe, nous terminons l’article par une conclusion, quelques perspectives ouvertes par ce travail et une annexe sur quelques considérations techniques. 2. Quand les viviers de connaissances et les métadonnées ignorent les composants logicielsLes travaux que nous avons menés découlent d’un constat simple : La communauté EIAH ne s’est guère préoccupée du recensement des constituants applicatifs de leurs plates-formes de formation. Ces constituants, rarement développés sous forme de composants logiciels, sont pourtant stratégiques. Ils sont la concrétisation du savoir-faire de la communauté et le résultat de son investissement en recherche. Combien de micro-mondes, de tuteurs intelligents, d’outils auteurs, de gestionnaires de scénarios pédagogique ne sont pas recensés ? Cependant, la communauté s’est investie activement depuis une dizaine d’années pour créer des métadonnées, développer des outils d’indexation des ressources pédagogiques, des viviers de connaissances en vue de les stocker et des outils de recherches pour les retrouver. À ce jour, il existe plusieurs schémas de métadonnées destinés à décrire les ressources pédagogiques. L’un des premiers à être utilisé fut le (Dublin Core, 2005). Il comporte 15 métadonnées destinées à décrire des ressources documentaires. L’alliance ARIADNE (Ariadne, 2005) est à l’origine du LOM (Learning Object Metadata, défini par le consortium IMS) (LOM, 2002), standard résultant d’un compromis entre les acteurs de la communauté à l’échelle internationale. Bien que doté de 80 éléments classés en 9 rubriques, ce schéma est critiqué parce qu’il n’est pas en adéquation avec les pratiques et les besoins du terrain pour décrire des ressources pédagogiques (Najjar et al., 2003), (Afnor, 2002). SCORM (ADL, 2001), qui rassemble des acteurs du ministère de la défense aux États-Unis, comporte aussi un jeu de métadonnées construit sur la base des travaux de l'Advanced Distributed Learning (ADL) et l'Aviation Industry CBT Committee (AICC, 2005). Ces schémas ne sont pas adaptés à la description des composants logiciels constituant les EIAH car ils ne comportent que peu de métadonnées pour décrire l’aspect logiciel spécifique de ces composants comme les besoins techniques (matériels et logiciels) pour les faire fonctionner, leurs caractéristiques (services, propriétés, méthodes) et encore moins les règles et les dépendances d’assemblage nécessaires aux informaticiens développant les EIAH. Cette situation nous a amené à proposer, dans le paragraphe 4, un jeu de métadonnées dédié spécialement aux composants logiciels. En ce qui concerne les viviers ou les entrepôts de ressources pédagogiques, il en existe plusieurs. ARIADNE (Ternier et al., 2003) dispose d’un vivier de ressources pédagogiques. La région Rhône Alpes finance, dans le cadre de GreCo, le projet ARPEM (Archivage de Ressources PEdagogiques Multimédia) (Mermet et al., 2002) de capitalisation, d’indexation et de mutualisation contrôlée des ressources pédagogiques universitaires de l’Académie de Grenoble. Au Canada, le CRSNG (Conseil de Recherches en Sciences Naturelles et en Génie) (CRSNG, 2005) a accordé une subvention de 7,5 millions de dollars canadiens pour une période de 5 ans à la Télé-université et à ses partenaires universitaires, au nombre de six, pour monter le réseau (LORNET, 2005) qui a commencé il y a un peu plus d’an. Parmi les objectifs de ce réseau, nous retrouvons le rassemblement dans un vivier des ressources pédagogiques produites. Ce réseau est un des rares qui intègre dans ses objectifs la gestion des composants logiciels intégrables dans le système d'opération du téléapprentissage TELOS. "Athabasca Digital Library in a Box" (ADLIB, 2005) d’Athabasca University est un autre exemple canadien d’entrepôt de ressources pédagogiques indexées selon le LOM. L’un des problèmes avec ces viviers ou entrepôts de ressources pédagogiques est qu’ils ne supportent qu’un seul jeu de métadonnées, celui défini une fois pour toutes lors de leur création. De ce fait il est impossible de les utiliser pour indexer des composants logiciels sans leur apporter des modifications majeures. En effet, les outils de description, les bases d’index ou de stockage et les outils de recherches sont taillés sur le modèle des métadonnées qu’ils prennent en charge. Récemment, le réseau thématique pluridisciplinaire, s’est engagé en lançant une action spécifique pour spécifier une plate-forme de mutualisation des travaux de la communauté de recherche sur les EIAH. Cette plate-forme est définie pour comporter un entrepôt hébergeant les composants logiciels utiles aux informaticiens concepteurs de plates-formes de formation. Elle permettra, à terme, de retrouver des composants logiciels pour les assembler et construire des environnements d’apprentissage à des fins d’expérimentation ou d’exploitation. La construction de cet entrepôt est une tâche à laquelle nous participons. Dans le paragraphe 5 de cet article, nous explicitons le modèle que nous avons adopté pour le construire. Devant la complexité de la définition d’un jeu de métadonnées d’une part et d’autre part devant la nécessité absolue que ce jeu repose sur le plus large consensus possible, nous avons défini un modèle de conception de la plate-forme qui nous permet d’avoir une indépendance entre l’entrepôt et le schéma de métadonnées utilisé pour la description des composants logiciels. Ainsi, même si nous proposons un jeu de métadonnées, la plate-forme construite est générique dans le sens où elle peut être paramétrée relativement aisément par tout jeu de métadonnées. 3. Les composants logiciels dans les EIAH3.1 Quels composants ?La notion de composant est ancienne mais, encore aujourd’hui, plusieurs définitions sont proposées dans la littérature (Allen et al., 1998), (Brown et al., 1998). Même si ces définitions sont différentes selon le contexte et les technologies dans lesquelles elles ont été énoncées, elles ont fondamentalement le même objectif : la réutilisabilité (Ezran et al., 1999), (Sommerville, 1992). Par réutilisation, on entend la possibilité de construire une nouvelle application en récupérant le code et les parties de programmes développées auparavant. Pour ce qui nous concerne, nous proposons la définition suivante, inspirée de la définition de (Szyperski, 2002). Définition D1 Un composant logiciel est une entité autonome de déploiement respectant un modèle de composant2, qui encapsule des codes informatiques et qui décrit par des interfaces les interactions qu’il autorise avec d’autres composants. Un avantage essentiel des composants est qu’il est possible de les assembler soit pour créer des applications soit, par recomposition, pour créer de nouveaux composants de granularité plus importante. Cependant, contrairement aux ressources pédagogiques, où la notion de granularité paraît une notion essentielle, nous estimons que la granularité n’est pas un facteur clé. A priori, la granularité pourrait être liée au nombre de services offerts. Mais, on ne voit pas, contrairement aux ressources pédagogiques, comment définir des classes homogènes si ce n’est celle des composants unitaires ne comportant qu’un seul service. Nous pensons qu’il est préférable d’indiquer, comme mesure de la complexité du composant, la profondeur d’assemblage ce que nous appelons ordre de composition. Cet ordre de composition est défini par :
Cela nous paraît plus intéressant pour donner une idée sur la taille du composant. Quoi qu’il en soit, la granularité n’est pas un critère de sélection. Dans le cadre de la plate-forme de mutualisation (décrite dans le paragraphe 5), nous ne voulons stocker que des composants logiciels utiles aux EIAH. Cependant, réaliser un logiciel complet nécessite des composants intervenant à différents niveaux du système. Nous introduisons ainsi, dans le cadre des EIAH, quatre classes de composants logiciels : les composants logiciels pédagogiques (CLP), les composants logiciels de services(CLS), les composants logiciels techniques (CLT) et les composants logiciels de fabrication (CLF). Remarque Dans la communauté EIAH, les développements logiciels sont encore rarement faits sous forme de composants. Cette situation rend, la réutilisation extrêmement délicate si ce n’est impossible. Certains travaux (Rosselle, 2003) ont montré cette difficulté et ont fait des propositions de solutions pour y remédier. 3.2 Classification des composants participant à la composition des EIAHSelon le rôle que les composants logiciels jouent dans l’EIAH, nous avons constaté que leurs descriptions sont pour une part spécifiques. Pour faciliter leurs recherches par les futurs utilisateurs de la plate-forme de mutualisation, nous les avons regroupés en classes, de telle sorte que les composants d’une même classe aient un schéma de description commun. Nous avons obtenu ainsi 4 classes, homogènes du point de vue de la description des composants logiciels y figurant. 3.2.1 Les composants logiciels pédagogiquesDéfinition D2 Un composant logiciel pédagogique (CLP) est un composant "métier" participant directement au processus d'apprentissage humain. Cette notion de "composant métier" est conforme à l’approche Ingénierie logicielle Dirigée par les Modèles (IDM ou en anglais Model Driven Architecture – MDA) qui préconise de séparer les aspects métiers des aspects techniques lors de la construction d’une application (Blanc, 2005). Des exemples typiques sont les gestionnaires (ou players) de scénarios pédagogiques, les simulateurs ou les résolveurs de problèmes à vocation pédagogique, les outils d’évaluation de l’apprenant. Ce sont des composants réutilisables essentiellement dans les EIAH. Remarque Un problème de vocabulaire se pose car, généralement, les auteurs parlent de "composants pédagogiques" pour désigner des "ressources pédagogiques" ou des "objets pédagogiques" (Bourda, 2001), (Grandbastien, 2002), (Pernin, 2003). Une "ressource pédagogique" est un élément numérique contenant une information destinée à l’enseignement et susceptible d’intervenir dans la constitution d’un cours. Un "objet pédagogique" est un élément constitué d’un ensemble d’objets et/ou de ressources ayant un objectif pédagogique et une durée déterminée. Par exemple, une image, un schéma ou une démonstration de théorèmes sont des ressources pédagogiques alors qu’un ensemble de pages web avec cours, exercices, et démonstrations constitue un objet pédagogique. Les Assets dans SCORM sont d’autres exemples de ressources pédagogiques. Cependant la différence est parfois difficile à faire : une applet Java réalisant une simulation peut être considérée comme une ressource ou comme un objet selon son contenu. D’après la définition D2, les CLP ayant des contenus disciplinaires peuvent être aussi, selon le cas, considérés comme des "objets pédagogiques". C’est le cas de certaines applets Java, de certains composants Flash. Il n’y a inclusion ni dans un sens, ni dans l’autre : un objet pédagogique ne joue le rôle d'un CLP que s'il comporte des instructions de traitements. De ce fait, un cours html en ligne n'est pas un CLP alors qu’une applet de simulation d’une expérience en physique l’est. Inversement, certains CLP ne sont pas des objets pédagogiques. Par exemple, un player de scénario pédagogique ne fait pas partie en tant que tel d’un cursus de formation. Ce n’est donc pas un objet pédagogique. Il faut donc éviter de confondre les objets pédagogiques, les ressources pédagogiques et les composants logiciels pédagogiques (CLP). 3.2.2 Les composants logiciels de serviceDéfinition D3 Un composant logiciel de service (CLS) est un composant apportant une plus-value fonctionnelle aux EIAH, mais non spécifique aux EIAH. C'est un composant utile, mais pas indispensable, pour garantir la vocation pédagogique de l'EIAH. Il offre des services annexes et assure une meilleure ergonomie et maniabilité pour les utilisateurs. C'est le cas, par exemple, des synthétiseurs vocaux, des adaptateurs d'interfaces ou des outils de communication (messagerie, chat, forum, etc.). Il est utilisable dans les EIAH mais aussi dans d’autres domaines d'application. 3.2.3 Les composants logiciels techniquesDéfinition D4 Un composant logiciel technique (CLT) est un composant fournissant les mécanismes de base nécessaires à la constitution de l’infrastructure des EIAH pour garantir le bon fonctionnement des CLP et des CLS. C'est un composant n’apportant pas de fonctionnalités pédagogiques aux EIAH. Il est susceptible d'être utilisé dans tous les domaines. Ces composants seront principalement utilisés pour la construction de l'infrastructure des plates-formes EIAH ou comme intermédiaires entre des CLP et des CLS peu interopérables. C'est le cas, par exemple, des composants de persistance (sauvegarde des données), d'impression, de formatage de texte (transformation d'un texte XML en pdf), d'adaptateur de structures de données (jouant le rôle de "glu" entre des composants), etc. Le constructeur d'EIAH disposera alors d'une large palette de composants logiciels techniques, utiles, lui facilitant sa tâche. La majorité de ceux-ci proviendront des environnements de développement ou des librairies des langages de programmation. 3.2.4 Les composants logiciels de fabricationEn plus des CLP, CLS et CLT, nous avons défini une quatrième classe appelée CLF (Composant Logiciel de Fabrication) regroupant les constituants des outils auteurs permettant de créer des scénarios pédagogiques, des images animées, des QCM, etc. Ces éléments, qui ont un rôle en amont de la phase d’utilisation des EIAH, sont néanmoins des composants qu’il est utile de partager dans la plate-forme de mutualisation. 3.3 Structure d’un EIAHSelon les précédentes définitions, un EIAH peut être vu comme l’assemblage de :
Remarques : - les objets pédagogiques peuvent comporter des CLP. - les CLF ne font pas partie de l’EIAH.
Figure 1 : Constitution d’un EIAH selon la vue composant De ce fait, dans notre approche, un EIAH est vu comme un ensemble d’objets pédagogiques du domaine enseigné s’appuyant sur une architecture constituée par l’assemblage de CLP, CLS et CLT. Quant aux objets pédagogiques, ils peuvent être créés par les CLF. Pour constituer un EIAH, il est non seulement nécessaire de trouver les objets pédagogiques mais aussi les composants logiciels de la plate-forme EIAH les supportant. Cela implique que les composants logiciels soient décrits et indexés finement grâce à un ensemble de métadonnées. 4. Une proposition de métadonnées pour les composants utiles aux EIAHLes composants logiciels doivent être décrits avec des métadonnées adéquates assurant une double fonctionnalité. La première consiste à faciliter la recherche de ces composants selon plusieurs critères et la deuxième à connaître leurs caractéristiques pour savoir comment les manipuler. Définir ces métadonnées est une opération complexe car il faut être conforme aux règles reconnues de bonnes pratiques (Vidal et al., 2004). 4.1 Quel jeu de métadonnées ?Pour que les métadonnées soient pertinentes, il faut, lors de leur création, veiller à respecter les points suivants :
Nous proposons, dans ce qui suit, un jeu de métadonnées, respectant au maximum les consignes précédentes, baptisé LSCM (Learning Software Component Metadata) pour décrire les composants logiciels intervenant dans la constitution des EIAH. 4.2 LSCM : Méthodologie d’obtention suivieFace à la quasi absence de schéma de métadonnées dédié aux composants logiciels3 et plus spécialement à ceux destinés à l’apprentissage et l’enseignement, nous avons décidé d’en construire un nouveau. Pour cela, nous avons commencé par recenser un maximum de schémas servant à décrire des documents numériques, des ressources pédagogiques et des logiciels. Nous avons également étudié des sites de téléchargement d’applications et les métadonnées contenues dans les descripteurs de déploiement des applications. À partir du Dublin Core, du LOM, de l’Open Software Description (OSD, 2005), du Basic Interoperability Data Model (BIDM, 1995), des champs de description trouvés dans les sites de développement collaboratif ou des sites de publication des Components-off-the-shelf (composant sur étagère) (COTS, 2005), nous avons établi une liste de tous les champs obligatoires et facultatifs qu’ils utilisent pour décrire leurs éléments. Cette liste, résultat de la fusion de tous les champs trouvés, nous l’avons "nettoyée" en supprimant les éléments synonymes. Après plusieurs itérations, nous avons classé les éléments obtenus dans des groupes homogènes (besoins logiciels, caractéristiques techniques, dépendances d’assemblage, etc.) facilitant leur organisation et leur repérage. Nous avons synthétisé ce premier résultat sur l’existant dans un document interne de travail non présenté ici. Dans une deuxième phase, nous avons construit une autre liste sans utiliser l’étude précédente, c'est-à-dire en partant d’une liste vide. L’objectif de cette phase est de voir s’il est possible de trouver de nouvelles métadonnées utiles pour la description des composants logiciels mais non recensées dans notre étude de l’existant. Faute d’avoir pu mobiliser des experts motivés pour proposer de nouvelles métadonnées, nous avons joué le rôle de plusieurs acteurs (concepteurs, développeurs, assembleurs, utilisateurs de composants logiciels) en nous posant à chaque fois les questions suivantes : "Que voudrais-je savoir sur ce programme ou composant ?", "Que pourrais-je dire sur ce programme ou composant ?". Le résultat a été une liste de propriétés diverses et variées. Dans une troisième phase, nous avons confronté ces deux listes en effectuant une étape de fusion manuelle, avec plusieurs cycles de nettoyage et une phase d’homogénéisation. Ensuite, en se basant sur les comptes rendus des réunions présentant ce travail et les critiques faites dans des articles sur les schémas de métadonnées existants, comme le LOM, nous avons affiné l’organisation des éléments de notre liste, supprimé les éléments superflus et ajouté ceux qui étaient réclamés lors des présentations. Lors de cette phase, nous avons organisé plusieurs réunions restreintes de validation avec des chercheurs de différentes disciplines (informaticiens, didacticiens, pédagogues). Ces réunions ont permis de lever des ambiguïtés, d’ajouter d’autres éléments auxquels nous n’avions pas pensé auparavant et de retirer ceux qui étaient difficiles à renseigner. Cette opération a été itérée quatre fois avec à chaque fois une nouvelle version de travail de la LSCM. C’est ainsi qu’est née la première version de LSCM. C’est cette version que nous avons implémentée et qui sera mise à la disposition de la communauté pour expérimentation. Il reste à faire des tests d’usage auprès d’acteurs de terrain, ceux-ci nous ayant fait défaut dans ces trois phases. 4.3 Structure de la LSCMComme nous avons structuré les composants en quatre classes, nous avons choisi de subdiviser les métadonnées en deux sections :
4.4 SCM : Présentation succincte de la section communeLes métadonnées de la section SCM permettent d’indexer tous les composants logiciels par rapport à leurs caractéristiques générales ou techniques indépendantes de leur domaine d’application. Elles sont organisées dans les douze rubriques suivantes, classées sous un élément racine nommée SCM :
Figure 2 : Rubrique "informations techniques"
Figure 3 : Rubrique "Relation"
Figure 4 : Élément "interface" de la rubrique "Caractéristiques composant"
Nous ne détaillons pas plus cette partie car cela nécessiterait de rentrer dans des détails techniques de bas niveau. Si le LOM peut suffire à décrire des objets et des ressources pédagogiques, nous sommes convaincus qu’il ne permet pas de couvrir tous les besoins de description des composants logiciels pédagogiques. C’est pourquoi nous faisons cette proposition. Les différences principales portent sur la description des caractéristiques des composants. Dans le LOM, les caractéristiques techniques d’un objet pédagogique se limitent aux sept métadonnées de la rubrique "Technique". C’est largement suffisant pour des entités simples comme la majorité des objets pédagogiques. Quand il s’agit d’éléments aussi complexes que les composants logiciels, cette rubrique devient rapidement insuffisante pour décrire les exigences matérielles et logicielles nécessaires au fonctionnement du composant. Comme nous venons de le voir, la LSCM comporte deux rubriques importantes par rapport au LOM : " Informations Techniques" et "Caractéristiques Composant". Ces informations sont essentielles pour les informaticiens car elles leur permettent de connaître les conditions nécessaires à la réutilisation et les connexions qu’ils doivent établir pour la réaliser. Ces deux rubriques disposent de plusieurs métadonnées dotées d’une structure générique permettant de définir les propriétés et de les renseigner. Dans le LOM, il n’existe aucune métadonnée permettant de décrire si finement ces aspects. Le schéma entier ainsi qu’un tableau établissant champ par champ une correspondance avec le LOM et DublinCore peuvent être consultés à l’adresse (LSCM, 2005). 4.5 LM : étude détaillée de la section spécifique aux CLPLa LM (Learning Metadata) est la section spécifique dédiée aux composants de la classe CLP. La LM comporte des métadonnées ayant trait au domaine de la formation, de l’apprentissage, de la didactique et de la pédagogie. Celles-ci sont décrites par six rubriques placées sous un élément racine nommée LM. Dans la suite nous détaillons le rôle et le contenu des champs principaux de ces six rubriques. Remarques :
4.5.1 Rubrique CatégorieCette rubrique offre le moyen de classer les CLP en sous familles. Elle précise soit le type d’outils logiciels, soit la "classe d’environnements informatiques" (Tchounikine, 2002) dédiés à l’apprentissage dans laquelle le composant peut être rangé. Si le CLP est un outil logiciel, sa catégorie est précisée (par exemple "player de scénario", "traceur"). S’il est du type "classe d’environnements informatiques", la catégorie est définie en fonction du problème et du but ciblé par le composant et non par rapport aux disciplines d’enseignement (Mathématique, Physique, Anglais, etc.). La stratégie pédagogique sous-jacente supportée par le composant est dans ce cas un bon critère de qualification. Pour faciliter le renseignement de cette métadonnée, nous proposons une liste de valeurs devant être complétée pour couvrir toutes les classes d’environnements informatiques. Cette liste comporte entre autres les catégories "tuteur intelligent", "micro-monde", "composant support de pédagogie de projet". 4.5.2 Rubrique UtilisationLa rubrique "Utilisation" est obligatoire. Elle est principalement destinée aux usagers finaux du composant et aux concepteurs de logiciels de formation. Elle permet aux utilisateurs finaux, lors de la phase de sélection des composants candidats à un assemblage, de choisir ceux qui répondent à leurs contexte et conditions d’utilisation. Cette rubrique contient trois métadonnées précisant les conditions d’exploitation et les situations de formation prévues par les concepteurs et supportées par le composant. Ces métadonnées sont : Cadre spatio-temporelC’est un champ obligatoire indiquant le cadre temporel (synchrone, asynchrone, mixte) et le cadre spatial (à distance, présentiel, mixte). La combinaison de ces deux axes permet de construire une liste, associée à la métadonnée, comportant des termes comme : "Formation à distance synchrone". Relation Inter ApprenantsC’est un champ obligatoire indiquant la nature des interactions apprenant-apprenant supportées par le composant. Plus précisément, cette métadonnée permet de répondre aux questions suivantes : Quels types de rapports peuvent avoir les apprenants entre eux en utilisant le composant ? Peuvent-ils travailler collectivement ou individuellement ? Auront-ils une relation de coopération ou de compétition ? 4.5.3 Rubrique PédagogieLa rubrique "Pédagogie" est obligatoire. Elle décrit le composant selon un angle pédagogique en donnant des indications sur les méthodes et les démarches d'enseignement implémentées ou supportées par le composant et sur le contexte pédagogique dans lequel il est prévu de l’utiliser. Les informations de cette rubrique sont renseignées par les concepteurs du composant et servent aux utilisateurs pour décider s’ils veulent réutiliser le composant dans leur activité d’enseignement. Les valeurs de ces champs ne sont pas sujettes à évolution. Si le composant logiciel subit des modifications ayant un impact sur ses propriétés pédagogiques, alors il s’agit d’une nouvelle version. Dans ce cas, il faut créer une nouvelle instance de description. ModèleC’est le modèle pédagogique auquel les concepteurs du composant se sont référés pour programmer ses services. Le nombre de modèles pédagogiques est très réduit. Ils sont tous issues d’écoles de pensée. Nous associons à cette métadonnée une liste comportant les termes suivants : "constructiviste", "institutionnel", "transmissif", "appropriatif", etc. StratégiePour un modèle pédagogique donné, la stratégie pédagogique spécifie la méthode modélisée par le composant pour atteindre le but d’apprentissage. Une stratégie pédagogique est un ensemble de méthodes et de démarches formalisées et appliquées, qui vont déterminer des choix de techniques et de situations pédagogiques, par rapport au but de l'apprentissage. Bien sûr, la stratégie n’est pas complètement indépendante du modèle indiqué dans la métadonnée précédente, mais, à un modèle donné, peuvent, malgré tout, correspondre plusieurs stratégies. La liste de termes associée à cette métadonnée contient par exemple les stratégies : "découverte guidée", "découverte avec médiation", "résolution de problèmes", "exposition simple", "exposition avec dialogue", etc. 4.5.4 Rubrique DidactiqueLa rubrique "Didactique" est obligatoire. Contrairement à la rubrique "Pédagogie", on décrit ici les disciplines et les savoirs manipulés par le composant. Bien que le champ de la didactique soit bien élargi aujourd’hui, l’objectif de cette rubrique se limite au renseignement de l’objet de l’enseignement, de la transmission des connaissances et des capacités ainsi que des moyens nécessaires au déroulement de l’enseignement. Cette rubrique comporte les éléments : Domaine EnseignementC’est un champ obligatoire précisant les disciplines ou les sous disciplines ciblées et manipulées par le composant. Ces disciplines sont généralement organisées sous forme d’une arborescence. La spécification d’une branche ou d’une sous discipline précise (feuille de l’arbre) est privilégiée afin d’affiner la description. Si le composant manipule plusieurs sous-disciplines n’appartenant pas à la même discipline générale, il faudra lui associer plusieurs instances de cette métadonnée. La figure 5 donne un extrait de l’arbre des disciplines. Bien entendu, ce sont les experts de chaque discipline qui devraient fournir une ontologie de leur domaine. Figure 5 : Exemple d’arborescence des disciplines et sous-disciplines But DidactiqueC’est un champ obligatoire déclarant les effets attendus par l’utilisation du composant. Il permet entre autres d’outiller les futurs enseignants lors de la planification et de les sensibiliser au degré de difficulté variable que peut susciter l’usage du composant. Les buts sont déclarés par des phrases comportant un verbe d’action de type "être capable de". Par exemple, il est possible d’indiquer : "Maîtriser la résolution des équations du second degré". Chaque but doit être déclaré dans une instance spécifique de cette métadonnée. SavoirC’est un élément facultatif. En particulier, si le CLP est un outil logiciel ne manipulant aucun savoir particulier, cette rubrique n’est pas remplie. En revanche, si c’est un environnement dédié à l’apprentissage d’un domaine particulier, les connaissances théoriques, pratiques ou comportementales auxquelles le composant peut faire appel sont énumérées. Il s’agit des savoirs que le composant est capable d’analyser, d’interpréter, de traiter ou de communiquer à ses utilisateurs. Il est constitué des sept métadonnées suivantes :
Ces 7 métadonnées sont facultatives. RessourceC’est un élément facultatif permettant de renseigner les types de ressources pédagogiques manipulés par le composant pour fournir ses services. Pour chaque type de ressources, il faut créer une instance comportant les éléments suivants :
RecommandationC’est un champ facultatif permettant au fournisseur du composant de proposer des recommandations didactiques aux utilisateurs sur l’usage du composant dans une situation d’apprentissage. 4.5.5 Rubrique ExploitationLa rubrique "Exploitation" est facultative. Elle permet, dans le cas où le composant propose des services directement accessibles à des acteurs humains, de les énumérer et de décrire leurs propriétés. Il ne s’agit pas du manuel d’utilisation du composant. Son objectif n’est pas d’expliciter comment exploiter les services mais de préciser les interactions que peut avoir un acteur avec le composant. Cette rubrique comporte les éléments suivants : ServiceC’est un élément obligatoire permettant de décrire un service offert par le composant. Chaque service dispose d’un attribut "id" facultatif permettant de l’identifier de façon unique. Il servira pour faire des référencements par la suite. Les métadonnées de cette structure sont :
ActeurC’est un élément obligatoire permettant de décrire un acteur concerné par les services du composant et susceptible d’interagir avec. Les métadonnées de cette structure sont identiques aux métadonnées de "Service" :
RelationC’est un élément facultatif permettant d’associer les services aux acteurs. Son objectif est de dire qu’un service "S" est destiné à un acteur "A". Il s’agit, en effet, de l’implémentation d’une association n-n, comme dans les bases de données relationnelles. Chacune doit comporter les métadonnées suivantes :
4.5.6 Rubrique DuréeCette rubrique est optionnelle. Elle permet d’énumérer les actions ou les usages du composant ayant ou nécessitant une durée d’exécution pouvant avoir un impact sur le bon déroulement de l’apprentissage. Les fournisseurs donnent, ici, une estimation de la durée d’exécution ou d’exploitation de l’action. La rubrique "Durée" comporte une seule métadonnée "Action". Elle permet de renseigner l’intervalle de temps minimal et l’intervalle de temps recommandé d’une action. Une action correspond à l’exécution, en cascade, d’un ou de plusieurs services. Cette métadonnée comporte les champs suivants : Nom, Durée Minimale, Durée Recommandée, Unité de Mesure temporelle. 4.5.7 Bilan pour la LMEn ce qui concerne les CLP, nous retrouvons donc dans la LSCM toutes les métadonnées définies dans le LOM. De ce fait, il est possible, à partir d’une description LSCM, de renseigner toutes les métadonnées d’une description LOM. L’inverse n’est pas vrai car la description ci-dessus introduit des champs inexistants dans le LOM comme " But Didactique " ou " Pre-requis ". Il est important de noter que, si nous avons essayé d’être exhaustifs dans la description de ces CLP, il y a seulement 7 champs obligatoires, a priori assez faciles à remplir, dans la mesure où à la plupart d’entre eux sont fournis avec une liste de valeurs. Il s’agit de : " catégorie ", " EspaceTemps ", " relationInterApprenants ", " Modèle ", " Stratégie ", " DomaineEnseignement ", et " ButDidactique ". La minimisation du nombre de métadonnées obligatoires est important car l’effort demandé pour les remplir doit absolument être limité. Les métadonnées propres des composants logiciels appartenant aux classes CLS, CLT et CLF ne font pas l'objet d'une présentation dans cet article. 5. Plate-forme de mutualisationNous présentons dans cette partie l’architecture de la plate-forme de mutualisation ECR (Educational Component Repository) que nous avons développée. Par le terme plate-forme, nous n’entendons pas un environnement de formation, une nième plate-forme d’enseignement à distance, mais un environnement destiné aux chercheurs et membres de la communauté. De quoi s’agit-il ? Dans le cadre de l’action spécifique lancée par le Réseau Thématique Pluridisciplinaire "Apprentissage, Formation et Éducation", plusieurs fonctionnalités souhaitées par la communauté ont été recensées. La plate-forme ECR vise à couvrir la fonctionnalité Déposer/Rechercher. Il s’agit de doter la communauté d’un espace de partage et d’échange des composants logiciels comme c’est le cas pour les objets pédagogiques dans ARIADNE. Cette espace permet, par exemple, à un chercheur qui a développé un module de résolution d’exercices d’algèbre de le mettre à disposition de la communauté pour être intégré à un EIAH et expérimenté en situation réelle. Nous verrons dans le paragraphe 5.5 comment il faut procéder pour chercher un composant logiciel. Mais, avant de décrire comment utiliser la plate-forme pour déposer et rechercher des composants logiciels, nous présentons la plate-forme elle-même (voir figure 7) que nous avons souhaité être le plus générique possible, comme nous l’avons déjà mentionné dans le paragraphe 2. 5.1 L’ECR, une instance de plate-forme génériqueEn ce qui concerne la plate-forme, nous nous sommes fixés, lors de la conception, une contrainte forte qui a eu pour conséquence de complexifier sa conception et sa réalisation. Cette contrainte postule que la plate-forme soit générique dans le sens précisé ci-après. Nous avons défini un modèle de conception de la plate-forme qui nous permet d’avoir une indépendance entre l’entrepôt lui-même et les divers éléments (schéma de métadonnées, base d’index, formulaires à remplir) utilisés pour la description et l’indexation des composants logiciels. Autrement dit, elle doit être totalement indépendante des métadonnées qu’elle va gérer4. Cet aspect nous a paru essentiel dans la mesure où :
Figure 6 : Instanciation de la plate-forme générique dans divers contextes.
Cela a impliqué que :
Comme le montre le schéma (figure 7), nous avons développé la plate-forme sous forme de composants (voir annexe pour quelques informations sur les composants logiciels utilisés) en respectant le modèle MVC (Model-View-Controller). Les composants les plus importants sont le composant d’indexation et celui de recherche. Les processus "déposer", "indexer" et "rechercher" offerts par la plate-forme sont décrits dans les paragraphes suivants. Le composant "configuration Entrepôt" permet de paramétrer les deux composants d’indexation et de recherche ainsi que la base d’index et la base de données XML. L’administrateur l’utilise pour analyser le modèle (schéma XSD ou instance XML) des documents à indexer. L’analyse recense les éléments XML (métadonnées) pouvant être indexés et détermine le type d’indexation le plus approprié pour chaque élément. Le résultat est affiché dans un formulaire à l’administrateur. Ce dernier ajuste le paramétrage automatique et valide la configuration. Le composant se charge alors de formater les bases de données et de configurer les paramètres des composants. Le composant d’administration permet à l’administrateur de gérer la base de gestion des entités déposées. Cette dernière gère les connexions utilisateurs, leur droit d’accès aux entités et le suivi des statuts de ces dernières. Enfin, l’application e-package (voir figure 7) est une application cliente destinée aux déposants de composants logiciels. Une fois installée sur le poste client, elle permet de renseigner les métadonnées des composants logiciels et de construire un paquetage contenant les composants à envoyer au serveur. Figure 7 : Plate-forme ECR "Educational Component Repository" Dans ce contexte, réaliser la plate-forme ECR revient à configurer la plate-forme générique avec le schéma LSCM et à développer les pages spécifiques (page d’accueil, documentation, etc.) du site Internet. 5.2 Processus de l’action "déposer"Revenons au cas du chercheur voulant déposer son logiciel de résolution d’exercices d’algèbre. Premièrement, il doit lister tous les composants qui sont nécessaires pour que son logiciel fonctionne. Pour cela, il doit créer, manuellement ou moyennant l’outil e-package une fiche de description, respectant le modèle LSCM, et ceci pour chaque composant logiciel. Il regroupe par la suite le code binaire du composant, la documentation, optionnellement le code source, et les fiches de métadonnées dans une archive au format ZIP portant l’extension .ecp (ecp : Educational Component Package). Un fichier manifeste décrivant le contenu du paquetage doit y être inclus. Il envoie ensuite ce paquetage au serveur moyennant l’application e-package qui établit une communication Web Service ou en se rendant sur le serveur à travers un formulaire de dépôt. Dès lors le paquetage est pris en charge par les responsables de la plate-forme de mutualisation. 5.3 Processus de contrôle du paquetageAu niveau du serveur (voir figure 7), la réception du paquetage ecp déclenche un processus de contrôle de la validité du paquetage. S’il a le bon format, la bonne extension et si le manifeste est valide, il est mis en attente dans un dossier de rétention. Dans le cas contraire, il est retourné au déposant. À chaque entrée d’une archive dans le dossier de rétention un message est envoyé au gestionnaire de l’entrepôt. Celui-ci vérifie que le contenu du manifeste est cohérent et que les fiches de métadonnées sont valides par rapport au schéma LSCM. Si ce n’est pas le cas, il rejette le paquetage et le renvoie au déposant. En cas de succès du contrôle, le paquetage est mis dans un dossier "spoule"5 de contrôle. Quand plusieurs paquetages sont présents dans le "spoule" de contrôle, un message est envoyé aux experts chargés de contrôler la validité de la description des composants pour leur signaler qu’il y a de nouveaux paquetages à traiter. Si des anomalies sont détectées dans les métadonnées, ils contactent le déposant du composant pour lui signaler les modifications à apporter. L’opération est itérée jusqu’à ce que les métadonnées soient valides. Quand c’est le cas, le paquetage est transféré à l’entrepôt de stockage. Les fichiers de métadonnées sont alors extraits et transmis vers l’outil d’indexation. Ils sont alors stockés dans la base XML et indexés. La base d’index est alimentée par le résultat de l’indexation. Le paquetage, lui, est archivé dans un dossier dépôt. Un message est ensuite envoyé au déposant pour lui signaler l’acceptation et la publication de son paquetage et de ses composants. À partir de cet instant, les composants peuvent être recherchés via l’outil de recherche intégré à l’ECR. Remarque : Les paquetages en attente dans le "spoule" de contrôle peuvent être indexés dans une base d’index secondaire. Si les composants de ces paquetages peuvent être recherchés, ils sont marqués "non valides". Ils n’ont pas la garantie de conformité donnée par les experts attestant de la conformité des métadonnées avec les caractéristiques réelles du composant. 5.4 Processus d’indexationIndexer un ensemble d’entités permet une recherche plus performante (plus rapide et plus pertinente). Pour ce faire, il faut créer un index qui est une liste ordonnée d'unités d'information appelées "mots-clés" et jugées pertinentes pour la recherche d'une entité. Ainsi, chaque entité indexée est liée à un ensemble de mots-clés la caractérisant, permettant à l'utilisateur de la retrouver. Dans notre cas il va de soi qu'indexer un composant logiciel signifie indexer sa description. La description est mise sous format XML pour faciliter l’échange entre les institutions et assurer une meilleure interopérabilité avec des systèmes informatisés hétérogènes, comme le souligne Michel Crampes (Crampes, 2003). 5.4.1 Champs de recherche : l’entrée de l’indexDans la mesure où nous souhaitons disposer d’une recherche multicritère, il faut disposer de plusieurs index, chacun décrivant une même entité selon un point de vue différent. À chaque index est associée une étiquette appelée champ de recherche. L’ensemble des champs de recherche forme la base d’index. Au moment de la configuration, l’administrateur doit construire la base d’index en déclarant les champs de recherche. La généricité de la plate-forme est assurée par l’indépendance de la structure de la base d’index par rapport à celle des documents décrivant les entités à indexer. Pour cela, le système extrait de ces documents les informations sous forme de mots-clés qui vont alimenter les champs de recherche. Cette indépendance a pour autre avantage d’autoriser l’indexation d’informations provenant de formats hétérogènes de données (Base de données relationnelle, fichier texte basique, HTML). Les champs de recherche sont a priori plus stables (mais modifiables si nécessaire) que les schémas de métadonnées. Quand des documents de description sont écrits dans des formats autres que XML, ils sont transformés pour devenir conforme à l’ensemble des champs de recherche acceptés par l’outil d’indexation (voir ci-dessous étape 1). Grâce à l’utilisation de feuilles XSL6 (outil de manipulation de fichier XML) il est possible de modifier la structure originelle du document tout en gardant une structure sémantique minimale. Cette solution simple permet (1) de résoudre le problème de l’hétérogénéité des structures en attribuant à chacune une feuille XSL spécifique et donc (2) de rechercher précisément une information sans connaître sa localisation dans le document. 5.4.2 Les étapes d’indexationL’indexation se passe en 2 étapes principales. Étape 1 – Transformation du document à indexer dans le format d’indexation XML.Le but de cette étape est de mettre le document à indexer sous la forme de couples {champ, texte à indexer} dans un format XML, nommé format d’indexation. Le format d’indexation est choisi par le responsable de la plate-forme lors de son instanciation. Il contient les champs et les informations qui vont alimenter la base d’index. Le format d'indexation est constitué d’une liste d’éléments de type : <champ>texte à indexer</champ>. Par exemple, soit un document 1 contenant des métadonnées à indexer (voir Listing 1). Pour pouvoir les introduire dans la base d’index, le document 1 sera transformé par le système dans le format d’indexation (voir Listing 2). Comme nous pouvons le constater les noms des balises dans le document 1 sont différents de ceux des balises du format d’indexation. Comme il existe une corrélation sémantique, il est possible de réaliser cette transformation (Exemples : author ⬄ contributeur, keyword ⬄ theme). Ainsi, lors de la définition du format d’index, le responsable de la plate-forme a la possibilité de choisir les informations les plus pertinentes pour effectuer les recherches. Dans l’exemple, les champs de recherches sont "recherche", "creation", "contributeur", "theme", "langage" et "description". Cela permet d’optimiser la recherche tout en réduisant la taille de la base d’index. <doc> <meta> <creation date=”03/03/03”> <author>Raymonde Bayles</author> </creation> <modification> <author>Céline Maisonneuve</author> </modification> <language>java</language> </keywords> <keyword>indexation</keyword>... <keyword>composant</keyword>... </keywords> <summary>This indexing system is amazing !</summary> </meta> ...... </doc> Listing 1 : Document 1 à indexer <document uid=”xmldb://description/id=12”> <creation>03/03/2003</creation> <contributeur>Raymonde Bayles</contributeur> <contributeur>Céline Maisonneuve</contributeur> <theme>indexation</theme> <theme>composant</theme <langage>java</langage> <description>This indexing system is amazing !</description> </document> Listing 2 : Transformation du document 1 dans le format d’indexation Cette transformation dans le format d’indexation est effectuée à l’aide d’une feuille XSL, responsable du mapping entre la structure du document et les champs de recherche. Ceci permet de résoudre le problème d’hétérogénéité explicité auparavant. Remarque : Pour les documents écrits dans des formats autres que XML, en amont de l’indexation, il faut utiliser les fonctionnalités du framework (voir annexe technique) qui permettent de transformer divers formats de données en flux XML. À partir de là, nous avons affaire à une nouvelle structure. Il suffit, comme vu précédemment, d’appliquer des feuilles XSL pour régler le problème d’hétérogénéité. Étape 2 – Indexation sur les champs de recherche typésUne fois le document à indexer mis dans le format d’indexation, il suffit d’effectuer une indexation pour chaque couple {champ, texte à indexer} afin d’en extraire des couples {champ, mot-clé} (notre document xml peut finalement être vu comme un vecteur de couples {champ, mot-clé}). Ce processus d’indexation dépend du type du champ (nombre, date, mot-clé libre ou contrôlé, texte à analyser). Ces informations sont définies dans un fichier de configuration lors de l’instanciation de la plate-forme. Par exemple, pour un champ type "texte", nous pouvons indiquer au système l’analyseur analytique et linguistique à utiliser pour extraire les mots-clés à indexer (stoplist, stemming, etc.). Cela permet entre autre de définir le filtre anti-dictionnaire pour ignorer les mots fonctionnels fréquents et le filtre de lemmatisation à utiliser. Autre exemple, pour le type "mot-clé contrôlé", il est possible d’imposer une vérification de l’appartenance des mots-clés à une taxinomie avant d’effectuer l’indexation (Grandbastien, 2002). Figure 8 : Étape 2 – Indexation d'un document 5.5 Processus de l’action "rechercher"Pour effectuer une recherche de composants, l’utilisateur sélectionne une combinaison de plusieurs champs de recherche appelée profil de recherche. Un profil de recherche définit essentiellement les champs sur lesquels sont réalisées les recherches et le mode utilisé (voir ci-dessous). Il est ainsi possible d’avoir un formulaire de recherche destiné à des informaticiens, des didacticiens, des enseignants, etc. Les recherches sont réalisées à partir de la base d’index. À la réception de la requête de recherche, le système fournit une liste des composants répondant aux critères de la requête. L’utilisateur consulte alors les métadonnées des composants qui l’intéressent. S’il décide de récupérer un composant, le paquetage le contenant lui sera transmis en entier. La recherche dans la base d’index se fait selon deux modes complémentaires : la recherche par mot-clé (avec la possibilité d’une recherche multicritères) et la recherche par navigation. Dans la recherche par mot-clé, nous avons des fonctionnalités semblables aux moteurs de recherche sur Internet (genre Google). En ce qui nous concerne nous utilisons en interne le moteur de recherche fulltext Lucene (Lucene, 2003) d’Apache qui nous permet d’avoir une notion de pertinence dans les documents retournés. Dans la recherche par navigation, se pose le problème de la classification de l’entité selon plusieurs critères en fonction des attentes de l’utilisateur. En effet, une entité complexe, comme un composant logiciel pédagogique, est assez difficile à classer selon un seul arbre hiérarchique car elle peut être vue de différentes manières. On peut par exemple souhaiter classer un CLP selon le critère modèle pédagogique, le domaine d’enseignement ou le langage de programmation dans lequel il est écrit. Pour répondre à cette difficulté de classement des résultats (entités complexes), nous utilisons le concept de classification par facette (Prieto-Diaz, 1991). Cela consiste en une collection de "petites" listes ou hiérarchies de classification orthogonales les unes aux autres (voir partie droite de la figure 9). Dans l’exemple de la figure 9, nous avons deux facettes de classification : Celle de gauche permet de classer les entités selon le domaine d’enseignement de l’entité et celle de droite selon le niveau d’enseignement. Ces petites hiérarchies, nommées facettes sont des listes de mots-clés caractérisant un aspect de l’entité. Chacune est alors classée suivant plusieurs vues indépendantes les unes des autres. L'un des avantages, par rapport à une classification hiérarchique unique, est qu'elle offre une meilleure compréhension de l'ensemble des données en séparant mieux les divers aspects de l’entité. Dans notre système, une facette est associée à un champ de recherche type mot-clé : elle peut donc être plate ou hiérarchique si le champ est contrôlé par une taxinomie ou une ontologie, par exemple exprimée avec OWL (OWL, 2005). En conjuguant plusieurs champs caractérisant chacun un aspect de l’entité et en classant les résultats suivant les mots-clés de ces champs, nous obtenons une classification multi facettes. Figure 9 : Exemple de classification par facette – à gauche la facette thème, à droite la facette niveau 5.6 Langage de requêtes et de réponses XMLNous avons créé un langage de requêtes, basé sur XML, et qui fournit un résultat dans une syntaxe compréhensible par Lucene. Par exemple, dans le listing 3, nous avons mis le code XML de l'exemple suivant de requête multicritères : Rechercher les entités ayant dans les champs de recherche info_technique et info_pedagogie les mots-clés "Programme" et "logiciel" avec une priorité plus élevée pour le champ de recherche info_technique. Ces entités doivent avoir dans le champ de recherche date une valeur comprise entre "01/01/2000" et "01/12/2004" et, dans le champ de recherche niveau, pas le mot-clé "college". On distingue trois types de requêtes unitaires :
En plus des requêtes unitaires, il est possible de construire des requêtes composées. La requête définie par l’élément group groupe un ensemble de sous requêtes grâce à un opérateur logique ET/OU (attribut operator). À noter que chacune des requêtes précédentes possède l’attribut prohibited jouant le rôle d’un opérateur type not, comme c’est le cas pour la keywordquery dans le listing 3. L’ensemble de ces types de requête permet une recherche aisée pour trouver l’entité souhaitée. Il est également possible de faire des recherches par affinement, c'est-à-dire d'exécuter une requête sur les résultats obtenus lors d'une précédente recherche grâce à l’attribut optionnel onquery de l’élément query où l’identifiant de la requête à affiner doit être précisé. <search> <query onquery=123 > <group operator=”and”> <fulltextquery query=”programme AND logiciel”> <field name=”info_technique” boost=”2.0”/> <field name=”info_pedagogie” boost=”1.0”/> </fulltextquery> <rangequery field=”date” from=”01012000” to=”01012004” /> <keywordquery field=”niveau” keyword=”college” prohibited=true/> </group> </query> <results> <summary> <field name=”titre”/> <field name=”description_fr”/> <summary> <classified field=”theme”/> <classified field=”niveau”/> </results> </search> Listing 3 : Exemple de requête XML La deuxième partie (élément results) d’une requête xml sert à configurer le formatage des résultats. Elle offre la possibilité de paramétrer le tri des résultats (pertinence ou selon un champ donné) de classer les documents suivant des facettes (élement classified), de définir les champs à afficher pour le résumé des documents résultats (élement summary), de définir le nombre de résultats par page, etc. (voir listing 3). L'exécution de la requête retourne, dans un format XML (voir listing 4), la liste des entités répondant aux critères de recherche. Pour l'exemple précédent, le système renvoie deux entités :
Listing 4 : Résultat de la requête du listing 3 Comme nous l’avons vu, le système d’indexation et de recherche est flexible et permet des recherches complexes. De plus comme il a été développé sous forme de composant, il pourra lui aussi être décrit et indexé, et pourra servir dans d’autres domaines que les EIAH. 6. Conclusion et PerspectivesCapitaliser et réutiliser des composants logiciels pour construire des EIAH nécessitent de les décrire finement et de les mettre à disposition de la communauté dans une plate-forme de mutualisation. C’est à cette tâche que nous nous sommes attelés. Dans cet article, nous avons proposé sur le plan théorique et conceptuel :
Sur le plan des réalisations logicielles nous avons implémenté la LSCM dans un schéma XSD du W3C. De plus nous avons développé les outils suivants :
Comme il existe de nombreux schémas de métadonnées et plus encore de profils d’application (LOM-FR, CanCore, Normetic, etc.), pour que ce travail ait une chance de perdurer, il est essentiel que cette plate-forme soit totalement indépendante du schéma de métadonnées qu’elle utilise. "Totalement" signifie que toutes les données utiles pour la configurer (schéma de métadonnées, champs de recherches, structure de la base d’index et de la base XML) sont externes à la plate-forme et surtout qu’à partir de ces données, toutes les interfaces utilisateurs (pour décrire et rechercher des composants) sont automatiquement générées par le composant de configuration de la plate-forme. Ceci permet de réutiliser la plate-forme avec d’autres schémas de métadonnées. L’aspect générique de la plate-forme a été testé en produisant différentes instanciations de la plate-forme. D’une part en construisant la plate-forme dénommée ECR (Educational Component Repository) basée sur le schéma de métadonnées que nous proposons par ailleurs pour décrire les composants logiciels utiles pour construire des EIAH, d’autre part en construisant pour notre propre usage une plate-forme pour stocker des documents scientifiques. Dans les deux cas, nous avons obtenu une plate-forme qui fonctionne correctement pour déposer ou rechercher des entités numériques, que ce soit des composants logiciels ou des documents. Seule difficulté, les interfaces pour déclarer les fichiers de données nécessaires pour configurer la plate-forme ne sont pas totalement réalisées. Il faudrait maintenant que l’entrepôt soit expérimenté par l’ensemble de la communauté française, tant sur le plan du jeu de métadonnées qui est proposé mais qui pourra évoluer grâce à l’indépendance de celles-ci vis-à-vis de l’entrepôt, que sur le plan de la réalisation informatique. Cet entrepôt devrait intervenir lui-même comme une brique de la plate-forme de mutualisation dont la spécification a fait l’objet de l’action spécifique présentée dans ce même numéro. Nous espérons même qu’à terme, si les tests se révèlent satisfaisants, il puisse être une brique du "Shared Virtual Lab", action fondamentale au sein du réseau Kaleidoscope. RéférencesRéférences bibliographiquesAFNOR CN36 (2002). Afnor Commentaires français sur la LOM (draft 6.4) doc ISO, SC36N0255, 2002 ALLEN P., FROST S. (1998) Component-Based Development for Enterprise Systems: Apply the Select Perspective TM, SIGS Books/Cambridge University Press. ISBN 0521649994 IEEE Standard for Information Technology - Software Reuse - Data Model for Reuse Library Interoperability: Basic Interoperability Data Model (BIDM). IEEE Std 1420.1, 1995. http://standards.ieee.org/reading/ieee/std/se/1420.1-1995.pdf (consulté en décembre 2005) BLANC X., (2005) : MDA en action - Ingénierie logicielle guidée par les modèles, Édition Eyrolles, ISBN : 2-212-11539-3 BOURDA Y., (2001). Objets pédagogiques, vous avez dit objets pédagogiques ?. Cahier GUTenberg n° 39-40, p. 71-79. BROWN A.W., WALLNAU K.C. (1998), The Current State of CBSE, IEEE Software September/October 1998 CRAMPES, M., RANWEZ, S., PLANTIE, M. et VAUDRY, C, (2003). Qualités d'une indexation portée par XML et une ontologie au regard d'un standard, in "Ressources numériques, XML et éducation", Sciences et Techniques Éducatives, Hermès, Hors série, 2003, pp. 105-135, ISBN 2-7462-0682-X EZRAN M., MORSIO M., COLIN T. (1999). Réutilisation logicielle – Guide pratique et retour d'expériences. Paris, Édition Eyrolles. ISBN 2-212-09066-8 GOLDBERG A. (1984). Smalltalk 80, the Interactive Programming Environment. Addison-Wesley GRANDBASTIEN .M.(2002) Quelques questions à propos de l’indexation et de la recherche de ressources pédagogiques sur le Web. In Baron G.-L. et Bruillard E. Eds. Les technologies en éducation : Perspectives de recherche et questions vives. Paris : INRP - MSH - IUFM de Basse Normandie. p. 211-220. LOM v1.0 (2002) Final Draft Standard for Learning Object Metadata. IEEE Standards Department. IEEE P1484.12.1-2002 MERMET J.-M., CARRERE C., BAILLY P. (2002) ARPEM : Où comment repérer les OPNIs ...Une expérience originale de capitalisation et de mutualisation d'objets pédagogiques multimédias, Conférence TICE, Lyon, 2002 NAJJAR J, DUVAL E., TERNIER S., NEVEN F.(2003), Towards Interoperable Learning Object Repositories: the ARIADNE Experience, IADIS International Conference WWW/Internet 2003, Algarve, Portugal, 5-8 November 2003, Vol. I, pp. 219-226. PERNIN J.P.(2003) Objets pédagogiques : unités d'apprentissage, activités ou ressources ?. Revue "Sciences et Techniques Educatives", Hors série 2003. PFAFF G., TEN HAGEN P.J.W. (1993). Seheim workshop on User Interface Management Systems. Berlin, Springer Verlag. PRIETO-DIAZ R. (1991). Implementing Faceted Classification for Software Reuse. Communications of the ACM, 43(5):88 -- 97, May 1991. ROSSELLE M. (2003) Étude des objectifs d'une plate-forme de coopération pour les EIAH, Actes de a conférences EIAH 2003 p379-390 SOMMERVILLE I., (1992). Le génie logiciel. Addison Wesley, France. SZYPERSKI C. (2002), Component software beyond object-oriented programming. Addison Wesley, États-Unis. TCHOUNIKINE P., (2002), Pour une ingénierie des Environnements Informatiques pour l'Apprentissage Humain, In: Revue I3, Vol. 2 n°1, p. 59-95 TERNIER S., NEUVEN F., DUVAL E., MACOWICZ M., EBEL N. (2003): Web Services for Learning Object Repositories : the case of ARIADNE Knowledge Pool System., Proceedings of WWW03 Conference, Budapest, 20-24 Mai 2003, Hongrie. VIDAL Ph., ALIBERT A., BROISIN J. (2004), Normalisation et Standardisation des Objets d'Apprentissage: l'expÈrience ARIADNE, Colloque Miage et e-Mi@ge, Marrakech, Morocco 15-17 March 2004. Références à des sites InternetAdvanced Distributed Learning, 2001. SCORM Metadata set. Available at: http://www.adlnet.org. (consulté en décembre 2005). Athabasca Digital Library in a Box, http://library.athabascau.ca/, (consulté en juin 2005) http://www.aicc.org/, (consulté en décembre 2005) Ariadne Foundation, available on http://www.ariadne-eu.org/ (consulté en décembre 2005). AS Plate-forme pour la recherche en EIAH, Contributions de l’Action Spécifique « Conception d’une Plate-forme pour la recherche en EIAH » à l’ingénierie des Environnements Informatiques pour l’Apprentissage Humain, Revue STICEF, Volume 12, 2005, ISSN : 1764-7223, mis en ligne le 21/02/2006, http://sticef.org Projet Cocoon, Framework open source d’Apache, http://cocoon.apache.org (consulté en décembre 2005). COTS A trader for COTS components. http://www.cotstrader.com. (consulté en décembre 2005) Conseil de Recherches en Sciences Naturelles et en Génie, http://www.nserc.ca/indexfr.htm, (consulté en décembre 2005) Dublin Core Metadata Initiative, http://dublincore.org/, (consulté en décembre 2005) http://www.application-servers.com/articles/multicouches/index.1_0.html, (consulté en décembre 2005) Réseau LORNET, http://www.lornet.org/, (consulté en décembre 2005) Schéma de métadonnées: Learning Software Component Metadata, http://www.math-info.univ- paris5.fr/ECR/metadata/LSCM (consulté en décembre 2005) Lucene, Apache Lucene project, http://lucene.apache.org (consulté en décembre 2005). The Open Software Description Format, http://www.w3.org/TR/NOTE-OSD (consulté en décembre 2005) OWL, Ontology Web Language www.w3.org/TR/owl-features/ (consulté en décembre 2005). Exist DB, http://exist.sourceforge.net/ (consulté en 2005). Xindice, http://xml.apache.org/xindice/ (consulté en 2005).
Annexe : Quelques considérations techniquesChoix du FrameworkParmi tous les frameworks7 de développement web étudiés (Struts, Freemarker, Turbine, Cocoon), nous avons choisi Cocoon (Cocoon, 2005) qui est historiquement un moteur de publication web centré XML permettant de récupérer des sources de données variées (fichiers XML, HTML, SQL, LDAP, bases XML, etc.) et de les mettre sous forme XML. Il est particulièrement adapté pour la publication de données sur différents types de clients (navigateurs classiques, terminaux WAP, PDF, Web service) en utilisant des feuilles XSL. Il possède aussi des extensions pour la mise en oeuvre de portails, de l'internationalisation, de la génération d'images, etc. C'est une application web au sens J2EE, c'est à dire que Cocoon s'installe très facilement dans n'importe quel conteneur de servlets, tel que Tomcat. Avec la version 2 il est devenu un véritable framework de développement web MVC+, fondé notamment sur les concepts suivants :
Figure 10 : Un pipeline comprenant un composant Generator, plusieurs composants Transformer (un transformateur relié à une base SQL, un autre relié à un web service) et un composant Serializer. Choix du type de SGBD : XML ou relationnelL'autre choix important (et plus discutable dans l'état actuel des standards et des réalisations logicielles) a été de choisir une base de données XML native. Comme nous utilisons le standard XML comme format d'échange, nous disposons donc deux solutions :
Nous avons choisi la deuxième solution (la base de données Exist) car (i) les bases XML natives commencent à être matures et (ii) la structure de la base de données n’est pas statique contrairement aux bases relationnelles : on peut avoir dans la même collection, des documents de structures différentes. Lors d'un ajout ou d'une modification, on peut ou non valider un document XML suivant un schéma. Choix du moteur de recherche interne pour l’outil d’indexation et de rechercheEnfin, nous avons choisi Lucene (Lucene, 2005) qui est une librairie java pour moteur de recherche et d’indexation "full-text". Il peut être utilisé comme noyau de toute fonctionnalité de recherche. Il fonctionne avec toutes sortes de données textuelles; toutefois, il n'offre pas de support intégré pour Word, Excel, PDF ou XML. Point important concernant Lucene : il ne s'agit que d'un moteur de recherche. Il n'intègre pas de GUI web, ni de robot (web crawler). Il utilise un algorithme de recherche puissant et efficace comportant notamment un classement par score de pertinence, une recherche sur des intervalles de dates et sur plusieurs index. Lucene a été utilisé dans notre développement comme noyau du module d’indexation et de recherche dans l’entrepôt ECR. 1 Remarquons que cette condition n’est pas suffisante : une autre difficulté est liée au fait que les logiciels développés, en tout cas dans la communauté EIAH, ne le sont que trop rarement sous forme de composants, ce qui rend la ré-utilisabilité difficile. Cet aspect de la question n’est pas l’objet de cet article. 2 Il est important de noter qu’un composant logiciel ne respectant pas un modèle de composant est inexploitable dans les plates-formes de développement. Autrement dit, la notion de composant est indissociable de celle de modèle de composants. Une définition classique est : Un modèle de composants définit des standards spécifiques d’interaction et de composition. La mise en œuvre d’un modèle de composants est un ensemble précis d’éléments logiciels requis pour permettre l’exécution de composants selon ce modèle. 3 La communauté génie logiciel s’est beaucoup moins investie que la communauté EIAH dans la définition de schémas de métadonnées. 4 La seule contrainte que nous nous sommes fixée réside dans le fait que nous allons indexer des documents semi structurés, du XML en occurrence. 5 Nous avons choisi ce terme de spoule que l’on voit dans certains dictionnaires d’informatique par analogie avec le "spool" d’impression qui est constitué de la liste des fichiers en attente d’impression (ici en attente de stockage définitif). 6 XSLT est un langage de règles utilisé par les processeurs XSLT. Il permet de travailler sur le contenu d’un document XML. Il offre la possibilité de le transformer en divers documents XML ayant des structures différents. Outre cette transformation il permet également de générer des formats tels que HTML, RTF (Rich Text Format) ou XSL-FO (ex : pdf) 7 Les frameworks sont des structures logicielles qui définissent des gabarits dans lesquels s'insèrent les objets spécifiques à une application. En pratique, un framework, ou squelette d'application, est un ensemble de classes qui fournissent, aux applications s’appuyant dessus, des services métiers et parfois des services techniques. A propos des auteursIssam Rebaï est ATER à l’université René Descartes (Paris 5). Il termine une thèse menée sous la tutelle conjointe du laboratoire CRIP5 et de l’ESIEA Recherche (École Supérieure d’Informatique Électronique Automatique). Son sujet de thèse porte sur la conception et le développement d'une plate-forme permettant la capitalisation de composants logiciels pour les environnements d'apprentissage humain. Adresse : Laboratoire CRIP5 – Université René Descartes (Paris V), 45 rue des Saints Pères 75270 Paris Cedex 06 Courriel : issam.rebai@math-info.univ-paris5.fr Toile : http://www.math-info.univ-paris5.fr/~rebi Nicolas Maisonneuve est ingénieur diplômé de l'ESIEA. Il a poursuivi en obtenant le DEA IARFA de l'université Paris6 au cours duquel il a participé à ce projet. Il travaille maintenant à l'université de Sydney. Courriel : n.maisonneuve@gmail.com Jean-Marc Labat a soutenu une thèse en intelligence artificielle (90) portant sur les environnements informatiques pour l’apprentissage humain, puis une habilitation à diriger des recherches (97), il a ensuite été promu professeur d’informatique à l’université René Descartes où il a dirigé pendant 4 ans le laboratoire Crip5. Depuis février 2005, il a rejoint l’université Pierre et Marie Curie. Il est responsable d’une équipe de recherche au sein du Lip6 et dirige L’UTES, un service commun de l’université. Il est l’actuel président de l'ATIEF. Ses travaux portent sur la modélisation et le suivi de l’apprenant, et plus généralement sur la modélisation cognitive de l’utilisateur en situation de résolution de problèmes. Adresse : L'UTES, Université Paris 6, 12, rue cuvier 75005 Paris Courriel : Jean-Marc.Labat@upmc.fr Toile : www.lip6.fr/~labat/
|
|
Référence de l´article :
Issam Rebaï, Nicolas Maisonneuve, Jean-Marc Labat , Un entrepôt pour stocker et rechercher des composants logiciels utiles aux EIAH, Revue STICEF, Volume 12, 2005, ISSN : 1764-7223, mis en ligne le 08/03/2006, http://sticef.org © Revue Sciences et Technologies de l´Information et de la Communication pour l´Éducation et la Formation, 2005 |