Upload
haamid
View
36
Download
2
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Vers un « méta-EDL », puis un « EDL générique » pour la TAO
Hong-Thai NGUYENSystèmes et Logiciels
Mémoire de Master 2 de Recherhche
EDL classique: caractéristiques générales
EDI(Environnement de Développement
Intégré)
EDL(Environnement de Développement
Linguistique)
ExempleJDeveloper(Java), Visual Studio
(Visual Basic, Visual C++), ECLIPSE …
ARIANE-G5 (ATEF, ROBRA …)
Utilisateur Programmeurlinguiste, lexicographe, gestionnaire,
utilisateur …
Langage Langage de programmation Langage Spécialisé
Type de composant variables, procédures, modules, …variables, grammaires, dictionnaires,
…
Taille de composant assez petit grande (dictionnaire, grammaire)
« Entrée » Donnée Corpus
Cycle de développement de ressource
plutôt stable en perpétuelle évolution
Génie Génie logiciel Génie linguiciel
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).
3
Exemple 1: ARIANE-G5
obligatoire facultative
Étape (A,T,G)phase phase
Linguiciel
DicoGram Proc …
Corpus
brut traité
Points spécifiques:
•Chaînes d’exécutions (mise au point)
•Chaînes de production
•LSPL (5 dans ARIANE-G5)
•Composants
4
Exemple 1: ARIANE-G5 (suite)
5
Exemple 2: INTEX/Nooj(Fonctionnalités)
Format extérieur
Analyse
Normalisation un texte
Levée d’ambiguïtés
Analyse syntaxique
Analyse morphologique
Texte Source
Interface à manipulation
directe
6
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
7
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
WICALE2.0
Comment un méta-EDL évolue vers un EDL
EDL 1 EDL 2 …
Méta EDL
Linguiste
Échange de commandes & données
Synchronisation entre des linguiciels
Édition en locale des linguiciels source
Navigation sur des linguiciels source
Support aux linguistes
Spécifique à un EDL
générique
Fonctionnalités (de bas en haut )Architecture générale d’un EDL
CASH
WICALE1.0
WICALE1.1
EDLgénérique
9
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
10
Démarche envisagée
1. 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
2. Trouver & appliquer un méthode générique de « réingénérie » de LSPL faits par d’autres
3. Faire cela en étant utilisateur (développeur linguiste)
• maquette UNL-Vietnamien en construction
11
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
12
État de l’art de WICALE 1.0
• 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
WICALE 1.0
ARIANE-G5 PILAF …
Imagelocale
ÉditionNavigation
13
Possibilités pour l’édition
Appel d’un éditeur existant (1)
Développement d’un éditeur (2)
AvantagesProfite des fonctions de l’éditeur
Simple à réaliser
Indépendance de l’environnement
Inconvénients Difficulté de
« contrôler » l’édition Coût de développement
Intervention sur les tâches en cours du système d’exploitation (1.1)
Conservation des fichiers ouverts dans une liste (1.2)
Dépendance du système d’exploitation
Éditeur restant actif après l’édition
Intervention sur les fichiers hors WICALE
14
É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
16
É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
17
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
18
Fonction de navigationNavigation dans CASH (HyperCard sur Mac)
Désir d’une fonction de navigation « à la CASH »
( non réalisable comme dans CASH)
19
Type de navigation désiréNavigation de type hypertexte
Génération du source linguiciel au format HTML
20
Navigation: solution retenue
Génération statique
On conserve WICALE 1.0, et c’est réalisable
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
Navigation:vers une solution combinée
Factorisation Marquage Génération
22
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)
23
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
24
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)
25
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
…
26
Méta-EDL miroirUn 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
27
Méta-EDL intégrateurUn 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
28
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
méta EDL EDL Autonome
WICALE 1.0 + - -
CASH + + -
ARIANE-G5 - + +
WICALE 2.0 + ± -
WICALE 3.0 + + -
WICALE 4.0 + + +
29
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 »
30
Fin
?
Merci !
31
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
32
Démonstrations de WICALE 1.1
33
Démonstrations de la fonction d’édition de WICALE 1.1
34
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 »
35
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 »
36
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
37
Récapitulatif des solutionsSolution 1 Solution 2 Solution 3
Ressources disponibles
Compilateur AY2XML en cours
Aucune Eclipse est gratuit
ImplémentationRéalisation de deux phases: marquage et génération
Réimplémenter WICALE 1 vers un langage sur le Web
Réimplémenter WICALE 1 vers un plug-inRedéfinir l’architecture de données sur Eclipse
ExtensibilitéExtensible vers un WICALE plus ambitieux
InextensibleDépendant à Eclipse
Grands inconvénients
Génération statique en local
Inefficace sur des opérations interactives
Génération statique en local
38
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- Source de ROBRA d’ARIANE-G5 Sortie du compilateur AY2XML
<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>
…
<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>
…
Factorisation
39
Démonstrations de la fonction de navigation de WICALE 2.0 (2)
…<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>…
…
CHGMT(C;@S) ==
-SI- MT(@S)-INC-IPR -ALORS MT(C):=IPR;
-SNSI- MT(@S)-INC-SPR -ALORS-MT(C):=IPR;
…
Marquage
Sortie du compilateur AY2XML
Sortie du module Wigen de WICALE 2.0
40
Démonstrations de la fonction de navigation de WICALE 2.0 (3)
<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é
Fichier SXLT detransformation
Génération
41
Génération dynamiquehttp://nom_machine:porte/WicaleCatalog.po?action=query;ID=DecVar.DeclVar.Deco.Var.MT&option=normal;page=3
Enhydra serveur
WICALE sous Enhydra
page = 3
ID = DecVar.DeclVar.Deco.Var.MT
Fichier XML traité
Recherche tous les éléments dans page « 3 »
Mise en rélief du élément « DecVar.DeclVar.Deco.Var.MT »
42
INTEX/Nooj (suite)