420 likes | 532 Views
Vers un « méta-EDL », puis un « EDL générique » pour la TAO. Mémoire de Master 2 de Recherhche. Hong-Thai NGUYEN Systèmes et Logiciels. EDL classique : caractéristiques générales.
E N D
Vers un « méta-EDL », puis un « EDL générique » pour la TAO Mémoire de Master 2 de Recherhche Hong-Thai NGUYEN Systèmes et Logiciels
EDL classique: caractéristiques générales C’est un environnement de programmation linguistique qui connecte ou intègre un ou plusieurs LSPL (langage spécialisé pour la prog. linguistique). Un EDL permet aux développeurs linguistes de construire et mettre au point des applications « langagières » (gestion, manipulation des linguiciels ou données, compilation, test, débogage).
Étape (A,T,G) phase phase Linguiciel Corpus brut traité Dico Gram Proc … Exemple 1: ARIANE-G5 • Points spécifiques: • Chaînes d’exécutions (mise au point) • Chaînes de production • LSPL (5 dans ARIANE-G5) • Composants obligatoire facultative
Format extérieur Texte Source Exemple 2: INTEX/Nooj(Fonctionnalités) Analyse Interface à manipulation directe Analyse morphologique Analyse syntaxique Normalisation un texte Levée d’ambiguïtés
Exemple 2: INTEX/Nooj(Exemple de développement direct avec éditeur graphique) Graphe reconnaissant « le » ou « la » suivi «d’un mot », puis de « est » Concordance du graphe équivalent à l’expression: (le+la) <MOT> est
Méta-EDL • Définition: système permettant de « piloter » un ou n EDL à distance • Besoins: • n=1: CASH, méta-EDL spécifique pour ARIANE-G5 • n>1: WICALE, un méta EDL générique • Méthode de construction actuelle: • Gérer en local une copie des linguiciels. • source • non compilé • Échanger avec l’EDL: • des commandes • des données
CASH WICALE 2.0 WICALE 1.1 WICALE 1.0 Comment un méta-EDL évolue vers un EDL EDL générique générique Linguiste Spécifique à un EDL Méta EDL Support aux linguistes Navigation sur des linguiciels source Édition en locale des linguiciels source Synchronisation entre des linguiciels EDL 2 … EDL 1 Échange de commandes & données Architecture générale d’un EDL Fonctionnalités (de bas en haut )
Perspective: vers un EDL « générique »,« complet » et « miroir » • Définitions: un méta EDL générique et complet • Générique: ouvert à plusieurs EDL, comme WICALE 1.0 • Complet: offrant toutes les fonctionnalités de développement (édition, navigation, aides à la construction des grammaires, automates, dictionnaires) • « miroir »: pouvant fonctionner en local (autonome) nécessité d’importer ou de réimplémenter chaque LSPL: • Compilateur • Moteur • méta-EDL « intégrateur » • Pour construire des application « hétérogène », ex: • Sylla + ARIANE-G5 TAO pour le lao • UNL Deco + CASH + ARIANE-G5 Déconvertisseur UNL-Français
Démarche envisagée • Produire un méta-EDL générique complet • en s’inspirant de CASH • à partir de WICALE 1.0 50% réalisés pendent mon stage de M2R • Trouver & appliquer un méthode générique de « réingénérie » de LSPL faits par d’autres • Faire cela en étant utilisateur (développeur linguiste) • maquette UNL-Vietnamien en construction
Plan de la suite • EDL classique • « méta EDL » • « vers un EDL générique » • État de l’art de WICALE 1.0 • Création d’une fonction d’édition: WICALE1.0 • Création d’une fonction de navigation: WICALE 2.0 • Axes de recherche pour le futur • Conclusion
État de l’art de WICALE 1.0 Image locale • Buts du projet WICALE 1.0: réaliser un méta-EDL • Générique, pilotant au moins ARIANE-G5 • Portable (au contraire de CASH) • État actuel • WICALE 1.0 réalisé par V.Carpena 2003-04 en Java • Objectifs tous atteints: • échange des messages et fichiers entre EDL et machine en local • Paramétrisation pour connecter à plusieurs EDL (ARIANE-G5, PILAF, UNL) • A faire au-delà: • Édition des linguiciels, des corpus, des arbres • Navigation dans les linguiciel • Aides au développeur linguiste comme CASH Navigation Édition WICALE 1.0 ARIANE-G5 PILAF …
Édition: caractéristiques implémentées • Édition par appel d’un éditeur de texte quelconque • Édition simultanée de plusieurs fichiers • Protection contre les erreurs de manipulation • Deux modes d’ouverture : V (voir) ou M (modifier) • Édition sur une copie du source (sécurité totale) • Gestion de cohérence à l’aide des dates de dernière modification
Démonstrations de la fonction d’édition de WICALE 1.1 Liste des fichiers ouverts Édition par Notepad
Édition: conclusion et perspectives • Résultat: • WICALE 1.1 permet l’édition • il peut déjà être utilisé comme un « mini CASH » • méta-EDL local minimal (CASH - -) • mais générique • Perspectives: • Intégration d’un éditeur graphique: • pour les arbres et graphes • en construction par (Émile Verdurand) • Création d’éditeurs « syntaxiques » liés aux LSPL différents • Support aux linguistes
Plan de la suite • EDL classique • « méta EDL » • « vers un EDL générique » • État de l’art de WICALE 1.0 • Création d’une fonction d’édition: WICALE1.0 • Création d’une fonction de navigation: WICALE 2.0 • Axes de recherche pour le futur • Conclusion
Fonction de navigation Navigation dans CASH (HyperCard sur Mac) Désir d’une fonction de navigation « à la CASH » ( non réalisable comme dans CASH)
Type de navigation désiré Navigation de type hypertexte Génération du source linguiciel au format HTML
Navigation: solution retenue génération statique « à la Doxygen » en local: • Factorisation: • Extraction des éléments dans le source • transformation du source en un format intermédiaire adéquat (comme XML) • Marquage: Création des liens entre les occurrences d’un élément et sa définition • Génération: Fabrication de la sortie HTML On conserve WICALE 1.0, et c’est réalisable Génération statique
Factorisation Marquage Génération Navigation:vers une solution combinée
Navigation: conclusion • Résultat: • Conforme au modèle proposé • Fonctions supplémentaire: indexage des éléments, recherche des éléments • On a un EDL un peu moins complet (CASH -) • Il reste des choses à faire: • Transformation du fichier par XSLT à compléter (quand le compilateur AY2XML traitera tous les LSPL)
Plan de la suite • EDL classique • « méta EDL » • « vers un EDL générique » • État de l’art de WICALE 1.0 • Création d’une fonction d’édition: WICALE1.0 • Création d’une fonction de navigation: WICALE 2.0 • Axes de recherche pour le futur • Conclusion
Axes de recherche pour le futur • méta-EDL générique complet. WICALE 3.0 • méta-EDL intégrateur: pour construire des linguiciels à partir de plusieur EDL WICALE 4.0 • méta-EDL miroir: réingénierie des LSPL des différents EDL • EDLM: idem + mutualisation (Youcef Bey)
Méta-EDL générique complet • Un méta-EDL complet et générique peut: • travailler avec plusieurs EDL • offrir lui-même toutes les fonctionnalités d’un EDL • Édition graphique • Édition syntaxique • …
Méta-EDL miroir • Un méta-EDL miroir (intergiciel linguistique) peut: • se connecter aux EDL différents • les remplacer totalement (développement, exécution). Mais il ne permet pas de « composer » les EDL existants • Réingénierie des LSPL
Méta-EDL intégrateur • Un méta-EDL intégrateur (portail linguistique): • est un méta-EDL pour plusieurs EDL • est un EDL de « deuxième niveau » permettent: • composer ces EDL différents • pour construire des applications « hétérogènes » • Langage de composant
Conclusion & perspectives (1) • Rappel: • Étude des EDL, taxonomie • Ajout de l’édition WICALE 1.1 • Ajout de la navigation WICALE 2.0 • Étude prospective sur les (méta-) EDL (intégrateur) du futur
Conclusion & perspectives (2) • En cours • maquette UNL-Vietnamien • traducteur des linguiciels en XML (avec JCD,CB) • Études d’un autre EDL (stage chez Systran) • Durant la thèse • Réingéniérie des LSPL • Construction de WICALE 3.0, méta-EDL générique et complet • Vers un EDL universel, « intégrateur » et « miroir »
Fin ? Merci !
Plan • Introduction • EDL classique • Méta EDL • Vers un EDL « générique » • Démarche envisagée • L’état de l’art de méta EDL • Fonction d’édition dans un EDL • Fonction de navigation dans un EDL • Axes de recherche pour le futur • Conclusion et perspectives
Possibilité de navigation Solutions possibles (2) Solution 2: Construction un service Web: • Utilisation que Web browser chez client • Génération dynamique des vues • Compliqué à réaliser • Idée d’un EDL « intergiciel »
Possibilité de navigation Solutions possibles (2) Solution 2: Construction un service Web: • Utilisation que Web browser chez client • Génération dynamique des vues • Compliqué à réaliser • Idée d’un EDL « intergiciel »
Possibilité de navigation Solutions possibles (3) Solution 3: utilisation d’Eclipse et construction des modules supplémentaires: • Créer un plug-in sur la plate-forme pour connecter Eclipse et l’EDL. • Redéfinir l’architecture de données de cet EDL sur les fichiers manifest d’Eclipse (Workspace). • Eclipse réalise la fonction de navigation • Inextensible • Idée de connexion avec plug-in chez client
<Prca valeur="CHGMT" ligne="587" dcol="1" fcol="5"> < !-- Déclaration de procédure CHGMT --> <CibleJ2Courant valeur="C" ligne="587" dcol="7" fcol="7"/> <SourceJ1 valeur="S" ligne="587" dcol="10" fcol="10"/> <Resaff> <Si> <Inclut> <Var valeur="MT" ligne="589" dcol="18" fcol="19"> <SourceJ1 valeur="S" ligne="589" dcol="22" fcol="22"/> </Var> <Val valeur="IPR" ligne="589" dcol="29" fcol="31"/> </Inclut> </Si> <Alors> <Affect> <Var valeur="MT" ligne="589" dcol="44" fcol="45"> <CibleJ2Courant valeur="C" ligne="589" dcol="47" fcol="47"/> </Var> <Val valeur="IPR" ligne="589" dcol="51" fcol="53"/> </Affect> </Alors> … </Prca> … <DecVar valeur="dv" ligne="1" dcol="10" fcol="11"> <DeclVar> <Deco valeur="deco" ligne="2" dcol="8" fcol="11"> … <Var valeur="MT" ligne="311" dcol="1" fcol="2"> < !-- Déclaration de variable MT --> <TypeExclusif/> <Val valeur="IMP" ligne="311" dcol="12" fcol="14"/> <Val valeur="IPR" ligne="311" dcol="16" fcol="18"/> <Val valeur="SPR" ligne="311" dcol="20" fcol="22"/> <Val valeur="IPA" ligne="311" dcol="24" fcol="26"/> <Val valeur="SPA" ligne="311" dcol="28" fcol="30"/> <Val valeur="INF" ligne="311" dcol="32" fcol="34"/> <Val valeur="PPR" ligne="311" dcol="36" fcol="38"/> <Val valeur="PPA" ligne="311" dcol="40" fcol="42"/> <Val valeur="FUT" ligne="311" dcol="44" fcol="46"/> <Val valeur="CDL" ligne="311" dcol="48" fcol="50"/> </Var> … Démonstrations de la fonction de navigation de WICALE 2.0 (1) -DECVAR- dv -DECO- deco MT==(IMP,IPR,SPR,IPA,SPA,INF,PPR,PPA,FUT,CDL). SEXE == (FEMININ, MASCULIN). DGA == (SYN, ANA, NO). ... CHGMT(C;@S) == -SI-MT(@S)-INC-IPR-ALORS-MT(C):=IPR; -SNSI- MT(@S)-INC-SPR -ALORS- MT(C):=IPR; -SNSI- MT(@S)-INC-IPF -ALORS- MT(C):=IPA; -SNSI- MT(@S)-INC-SPF -ALORS- MT(C):=SPR; -SNSI- MT(@S)-INC-IPA -ALORS- MT(C):=IPA; -SNSI- MT(@S)-INC-FUT -ALORS- MT(C):=FUT; -SNSI- MT(@S)-INC-CDL -ALORS- MT(C):=SPA; -SNSI- MT(@S)-INC-IMP -ALORS- MT(C):=IMP; -SNSI- SUBV(@S)-E-INF -ALORS- MT(C):=INF; -SNSI- SUBV(@S)-E-PPR -ALORS- MT(C):=PPR; -SNSI- SUBV(@S)-E-PPA -ALORS- MT(C):=PPA; -FSI-. ... -FIN- Factorisation Source de ROBRA d’ARIANE-G5 Sortie du compilateur AY2XML
Démonstrations de la fonction de navigation de WICALE 2.0 (2) … CHGMT(C;@S) == -SI- MT(@S)-INC-IPR -ALORS MT(C):=IPR; -SNSI- MT(@S)-INC-SPR -ALORS-MT(C):=IPR; … … <Si> <Inclut> <Var dcol="18" fcol="19" ligne="589" valeur="MT"> <SourceJ1 dcol="22" fcol="22" ligne="589" valeur="S"/> <WICALE> < !-- Information ajouté après la génération de Wigen --> <CONTENT> <FULLNAME> <!--Nom d’élément constitué par le chemin, unique dans un fichier--> "DecVar.DeclProc.Prca.Resaff.Si.Inclut.Var.MT« </FULLNAME> <NAME> < !-- Nom original d’élément MT--> MT </NAME> <LINK> < !-- Lien vers la définition de MT --> "WicaleCatalog.po?action=query&ID=DecVar.DeclVar.Deco.Var.MT& option=normal&page=3 » </LINK> </CONTENT> <WERVION>versionID</WERVION < !-- Information de version de cet élément, non encore utilisée --> </WICALE> </Var> … </Prca> … … <Prca> … <Var valeur="MT" ligne="589" dcol="18" fcol="19"> <SourceJ1 valeur="S" ligne="589" dcol="22" fcol="22"/> </Var> … </Prca> … Marquage Sortie du module Wigen de WICALE 2.0 Sortie du compilateur AY2XML
Démonstrations de la fonction de navigation de WICALE 2.0 (3) Fichier SXLT de transformation <HTML> ... <TR id="rowelement"><TD align="center"><A name="DecVar.DeclProc.Prca.CHGMT">CHGMT</A></TD><TD><A><A name=""DecVar.DeclProc.Prca.CHGMT"">CHGMT</A> <!—Définition le nom de l’élement (CHGMT) --> == -SI- -ALORS- <!—Syntaxe transforme par XSLT le module “Prca” --> <A href=""WicaleCatalog.po?action=query&ID=DecVar.DeclVar.Deco.Var.MT&option=normal&page=3"" name=""DecVar.DeclProc.Prca.Resaff.Alors.Affect.Var.MT"">MT</A> <!—Définition du nom de l’occurrence (MT) et lien vers sa définition--> ... </HTML> Fichier XML traité Génération
Génération dynamique http://nom_machine:porte/WicaleCatalog.po?action=query;ID=DecVar.DeclVar.Deco.Var.MT&option=normal;page=3 page = 3 ID = DecVar.DeclVar.Deco.Var.MT Enhydra serveur WICALE sous Enhydra Recherche tous les éléments dans page « 3 » Mise en rélief du élément « DecVar.DeclVar.Deco.Var.MT » Fichier XML traité