Vers un « méta-EDL », puis un « EDL générique » pour la TAO

42
Vers un « méta-EDL », puis un « EDL générique » pour la TAO Hong-Thai NGUYEN Systèmes et Logiciels Mémoire de Master 2 de Recherhche

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

Transcript of Vers un « méta-EDL », puis un « EDL générique » pour la TAO

Page 1: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 2: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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).

Page 3: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 4: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

4

Exemple 1: ARIANE-G5 (suite)

Page 5: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 6: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 7: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 8: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 9: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 10: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 11: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 12: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 13: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 14: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 15: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

Démonstrations de la fonction d’édition de WICALE 1.1

Liste des fichiers ouverts Édition par Notepad

Page 16: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 17: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 18: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

18

Fonction de navigationNavigation dans CASH (HyperCard sur Mac)

Désir d’une fonction de navigation « à la CASH »

( non réalisable comme dans CASH)

Page 19: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

19

Type de navigation désiréNavigation de type hypertexte

Génération du source linguiciel au format HTML

Page 20: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 21: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

Navigation:vers une solution combinée

Factorisation Marquage Génération

Page 22: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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)

Page 23: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 24: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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)

Page 25: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 26: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 27: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 28: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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 + + +

Page 29: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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 »

Page 30: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

30

Fin

?

Merci !

Page 31: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 32: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

32

Démonstrations de WICALE 1.1

Page 33: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

33

Démonstrations de la fonction d’édition de WICALE 1.1

Page 34: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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 »

Page 35: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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 »

Page 36: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 37: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 38: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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

Page 39: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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&amp;ID=DecVar.DeclVar.Deco.Var.MT&amp; option=normal&amp;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

Page 40: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

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="&quot;DecVar.DeclProc.Prca.CHGMT&quot;">CHGMT</A>

<!—Définition le nom de l’élement (CHGMT) --> == -SI- -ALORS- <!—Syntaxe transforme par XSLT le module “Prca” --><A href="&quot;WicaleCatalog.po?

action=query&amp;ID=DecVar.DeclVar.Deco.Var.MT&amp;option=normal&amp;page=3&quot;" name="&quot;DecVar.DeclProc.Prca.Resaff.Alors.Affect.Var.MT&quot;">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

Page 41: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

41

Génération dynamiquehttp://nom_machine:porte/WicaleCatalog.po?action=query;ID=DecVar.DeclVar.Deco.Var.MT&amp;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 »

Page 42: Vers un « méta-EDL », puis un « EDL générique » pour la TAO

42

INTEX/Nooj (suite)