Mémoire CNAM en vue d’obtenir le diplôme d’ingénieur CNAM en informatique
description
Transcript of Mémoire CNAM en vue d’obtenir le diplôme d’ingénieur CNAM en informatique
14 décembre 2004 Virginie CARPENA 1
Interface cliente générique pour le pilotage
de serveurs linguistiquesMémoire CNAM en vue d’obtenir
le diplôme d’ingénieur CNAM en informatique
14 décembre 2004 Virginie CARPENA 2
Introduction• Laboratoire CLIPS Équipe GETA
• Équipe pluridisciplinaire
• Les thèmes de recherche- TAO du traducteur- TAO du rédacteur
• La mise en place d’outils linguistiques• moteurs (compilateurs, analyseurs, transducteurs, générateurs)• données (lexiques, grammaires, corpus)
14 décembre 2004 Virginie CARPENA 3
Introduction• But du mémoire : développer une application
- rendre les outils disponibles via le WEB- éditer et modifier les outils linguistiques en local- synchroniser les données linguistiques avec le serveur- envoyer des commandes et récupérer le résultat
14 décembre 2004 Virginie CARPENA 4
PLAN1. Vue générale et contexte de l’étude
1.1 Présentation des serveurs linguistiques1.2 Présentation d’une première interface CASH 1.3 Objectifs et contraintes de la nouvelle application
2. Analyse et conception2.1 Analyse conceptuelle2.2 Conception technique2.3 Choix de conception
3. Réalisation de WICALE3.1 Application finale3.2 L’interface de programmation (API)
Conclusion
14 décembre 2004 Virginie CARPENA 5
ARIANE-G5• Est un environnement de développement de
systèmes de TA• 5 langages de haut niveau : LSPL
• ATEF analyse morphologique• ROBRA analyse syntaxique et transfert• TRACOMPL transformations complémentaires• EXPANS outils dictionnaires• SYGMOR génération morphologique
• Tourne sur une machine IBM-H30 sous VM/CMS
14 décembre 2004 Virginie CARPENA 6
Couple langues
Machine Disque
Phase
Corpus
Texte
Dictionnaires Formats Variables Grammaires Procédures
Liste des linguiciels
Chaînes d’exécution
Données ARIANE-G5
14 décembre 2004 Virginie CARPENA 7
ARIANE-G5• Les commandes
Exemple : LISNOMTEXT Langue source Cible Nom corpus LISNOMTEXT RU5 * ESSAI
MOT Param 1 Param2 …Param n
14 décembre 2004 Virginie CARPENA 8
ARIANE-G5• Les accès
• Via le courrier électronique (SMTP)En mode différé
• Via TELNET implémenté par des sockets TCP/IP
En temps réel
14 décembre 2004 Virginie CARPENA 9
PILAF• Est un logiciel de traitement de l’écrit permettant :
• l’analyse et la génération morphologique• La lemmatisation• La construction de structures de dépendances
• Disponible sur le Mac, Windows, UNIX et WEB
14 décembre 2004 Virginie CARPENA 10
Dictionnaires Catégories lexicales Modèles Règles Variables
Liste des linguiciels
Données PILAF
14 décembre 2004 Virginie CARPENA 11
PILAF• Les commandes
Analyse morphologique
jeu de caractères (ISO / ASCII), la lemmatisation (OUI / NON), le type de sortie (texte, HTML, et LISP) le texte ou le fichier à analyser.
Exemple « La nouvelle année scolaire »Forme CAT. VariablesLa detp sin fem tre codnouvelle subc sin fem
nouvelle adjq sin fem…
14 décembre 2004 Virginie CARPENA 12
PILAF : communication
• Les accès• Via le WEB (protocole HTTP)
Client
Serveur
HTTP (analyse.py) GET, POST
Résultats
14 décembre 2004 Virginie CARPENA 13
UNL• Est une définition d'un format d'échange (langage
UNL) • Code la sémantique d'un document • permet la « déconversion » dans la langue du lecteur
14 décembre 2004 Virginie CARPENA 14
Couple langues
Dictionnaires Formats Variables Grammaires
Liste des linguiciels
Données UNL
14 décembre 2004 Virginie CARPENA 15
UNL• Les commandes
Déconversion document UNL à déconvertir.
Monkeys eat bananas.
14 décembre 2004 Virginie CARPENA 16
UNL• Les accès
• Via TELNET implémenté par des sockets TCP/IP
14 décembre 2004 Virginie CARPENA 17
CASH pour ARIANE-G5
14 décembre 2004 Virginie CARPENA 18
Objectifs et contraintes de WICALE
Pilotage de EDL
linguistes, linguistes amateurs,
…
Serveur ARIANE-G5 PILAF UNL, ou autre
Synchronisation de données
Modification, création de linguiciels
Exécution d’une commande et réception du résultat
Préparation et envoi de commandes
Navigation, consultation des linguiciels
14 décembre 2004 Virginie CARPENA 19
Les donnéesCLIENT
Image de l’EDL ARIANE-G5 Image de l’EDL PILAF Image de l’EDL ...
Programmes de WICALE (fichiers de paramètres)
14 décembre 2004 Virginie CARPENA 20
Les scénariosChoix de l’EDL à utiliser
Lancement d’une commande Récupération des résultats Affichage des résultats et/ou sauvegarde
Affichage des paramètres courants de l’EDL Modification de ces paramètres
Création / édition d’un script Lancement du script / récupération Téléchargement des données linguistiques Edition des données linguistiques Synchronisation des données linguistiques
14 décembre 2004 Virginie CARPENA 21
Les contraintes• La portabilité• La généricité ou adaptabilité• La facilité de déploiement et d’utilisation• La localisation
14 décembre 2004 Virginie CARPENA 22
PLAN1. Vue générale et contexte de l’étude
1.1 Présentation des serveurs linguistiques1.2 Présentation d’une première interface CASH1.3 Objectifs et contraintes de la nouvelle application
2. Analyse et conception2.1 Analyse conceptuelle2.2 Conception technique2.3 Choix de conception
3. Réalisation de WICALE3.1 Application finale3.2 L’interface de programmation (API)
Conclusion
14 décembre 2004 Virginie CARPENA 23
Analyse conceptuelleLes fonctionnalités
• Afficher la listes des EDL• Synchroniser les données linguistiques • afficher la liste des commandes• Saisir des paramètres d’une commande (contrôle)• Envoyer la commande et réceptionner du résultat• Travailler sur le résultat• Préparer un script de commande• Deux modes de fonctionnement :
• Résultat à l’écran• Résultat dans un fichier (format texte)
14 décembre 2004 Virginie CARPENA 24
Analyse conceptuelle
PARAMETRE
EDL
COMPOSANT COMMANDE
SYNTAXE RESULTAT
ETAPE SYNTAXE
ETAPE RESULTAT
TEXTE
CASE A COCHER
LISTE DEROULANTE
LISTE
hérite
1 n 0 n
1 1
1 1
1 1 0 n
1
0 n
1
0 n
1
CHOIX FICHIER
14 décembre 2004 Virginie CARPENA 25
Conception technique
Localisation
Généricité et adaptabilité
Portabilité
Piloter des EDL
JAVA, C++…
Déploiement facilité d’utilisation
14 décembre 2004 Virginie CARPENA 26
Démarche en spirale
Objectifs et
contraintes
Prépare phase
suivante
Choix techniques
DéveloppeEt vérifie application
14 décembre 2004 Virginie CARPENA 27
Les choix techniquesPiloter des EDL
ISO-8859-1UnicodeUTF-8
• Stockage des données en local
Fichiers XML au format UTF-8
BDXML…
14 décembre 2004 Virginie CARPENA 28
Les choix techniquesPiloter des EDL
UNLTelnet
• Communiquer avec les EDL
ARIANE-G5 via Telnet implémenté par des sockets TCP/IPPILAF via le protocole HTTPUNL via Telnet implémenté par des sockets TCP/IP
ARIANE-G5SMTP, ouTELNET
PILAFHTTP
14 décembre 2004 Virginie CARPENA 29
Les choix techniquesPortabilité
JAVA
JAVAC++
14 décembre 2004 Virginie CARPENA 30
Les choix techniquesLocalisation
Séparer le code des textes affichés
Séparer code et texte,Multi-appli
14 décembre 2004 Virginie CARPENA 31
Les choix techniquesGénéricitéAdaptabilitéFacilité de déploiement et d’utilisation ISO-8859-1
UnicodeUTF-8
Fichiers XML au format UTF-8Expressions régulières
BDXML…
14 décembre 2004 Virginie CARPENA 32
Résumé des choix techniquesPiloter des EDL
Portabilité Généricité et adaptabilité
Déploiement et facilité d’utilisation Localisation
protocole TCP/IP
JAVA
XML Expressions régulières
14 décembre 2004 Virginie CARPENA 33
JAVA• Sa portabilité• Son kit de développement
Compresseur de classes (jar.exe)Générateur de documentation Java (javadoc.exe)
• Son API de base• Les aspects réseau• La mise en œuvre d’interfaces graphiques• La localisation• Le codage• La manipulation d’expressions régulières• La manipulation de fichiers XML
• Ses environnements de développement
14 décembre 2004 Virginie CARPENA 34
Les aspects réseau• La communication par socket : Envoi d’une
commandeClient Serveur
Début de sessionDélimiteur d’enreg
Commande ARIANE
Délimiteur de finFin de session
<<< Mot passe >>>--commentaire--ARIANET-LIDIA20.
/*--------------------------------------------*/
MACHINE = CARPENA
DISQUE = 191
LGS = *
LGC = *
**
TRAIT = LIENLANG ( * , * )
/*--------------------------------------------*/
<<< Mot passe >>>--commentaire--ARIANET-LIDIA20.
14 décembre 2004 Virginie CARPENA 35
Les aspects réseau// Initialisation du socket et des flots de communication
socket = new Socket(tupai.imag.fr, 5768);isr = new InputStreamReader(socket.getInputStream(),"iso-8859-1"); in = new BufferedReader(isr);out = new PrintWriter(socket.getOutputStream(),true);
14 décembre 2004 Virginie CARPENA 36
Les aspects réseau//Envoie de la commandeout.print(sDEBFIN_SESSION + constante.CRLF); //DEBUT de sessionout.print(sCommande + constante.CRLF);out.print(sDEBFIN_SESSION + constante.CRLF); //FIN de sessionout.flush();avec sCommande = /*-----------------------------------------------------------------------------------*/** Operation de phase:M C ou GMACHINE = CARPENADISQUE = 191LGS = *LGC = *TRAIT = LIENLANG ( * , * )/*-----------------------------------------------------------------------------------*/
14 décembre 2004 Virginie CARPENA 37
Les aspects réseau• La communication par le protocole HTTP
Client ServeurConnexion
Envoi POST + paramètres
http ://clips.imag.fr/cgi-bin/pilaf/gene.py?
POST mot=bouillir&categorie=ppas&variables=fem+plu
14 décembre 2004 Virginie CARPENA 38
Les aspects réseauConnexion au serveur … url = new URL("http ://clips.imag.fr/cgi-bin/pilaf/gene.py?");server = (HttpURLConnection)url.openConnection(); server.setRequestMethod(« POST »); server.setRequestProperty("Content-type", "application/x-www-form-urlencoded"); server.connect();…BufferedWriter bw = new BufferedWriter(new OutputStreamWriter (server.getOutputStream())); String s = mot=bouillir&categorie=ppas&variables=fem+plu ;bw.write(s, 0, s.length());bw.flush();bw.close();
14 décembre 2004 Virginie CARPENA 39
Expressions régulières• Système puissant permettant de retrouver un mot ou une
phrase• Expressions mathématiques : opérateurs, valeurs,
variables• Utilisé par les linguistes
14 décembre 2004 Virginie CARPENA 40
Expressions régulières• Exemple : recherche de la réponse renvoyé par le serveur
<HTML><HEAD><TITLE>Résultat génération</TITLE></HEAD><BODY BGCOLOR="FFFFFF">
<TABLE WIDTH="100%"><TR><TD BGCOLOR="#666699" HEIGHT=30VALIGN=CENTER><FONT FACE="Verdana, Arial" SIZE="+2" COLOR="WHITE"><B>Résultat de la génération<B></FONT>
</TD></TR></TABLE><VAR>Vous avez choisi le jeu de caractères :</VAR>ISO<HR><BR><VAR>Voici la génération demandée : </VAR>bouillir <B>ppas </B><I>plu fem</I><HR>
<PRE>Forme Lemme <B>CAT.</B> Variables<HR>bouillies bouillir <B>ppas </B> plu fem
</PRE><TABLE WIDTH="100%"><TR><TD BGCOLOR="#666699"> </TD></TR></TABLE>
</BODY></HTML>
14 décembre 2004 Virginie CARPENA 41
XML• Langage extensible de balises• Structuré en 3 parties
• Prologue<?xml version="1.0" encoding="UTF-8"?>
• Informations facultatives<!DOCTYPE caract_utf-8 [<!ENTITY a_grave "à">
• La syntaxe<LST_COMMANDE><CDE><num_cde>1</num_cde></CDE></LST_COMMANDE>
14 décembre 2004 Virginie CARPENA 42
XML• Force de XML
• Lisibilité• Structure arborescente• Universalité et portabilité• Déploiement• Intégrabilité• Extensibilité
14 décembre 2004 Virginie CARPENA 43
XML : Les API Sax et DOMSAX mode évènementiel DOM mode hiérarchique
Instructions complexes
Stocker les informations
Passe en revue plusieurs fois l’arborescence
Temps de réponse
Rapide Charge en mémoire le doc
simple
14 décembre 2004 Virginie CARPENA 44
Choix de conceptionProgramme Wicale.jar
Interface (classe abstraite)
HTTP Socket TCP/IP Autres ..
SERVEUR
XML
14 décembre 2004 Virginie CARPENA 45
Choix de conception : les paquetages
IHM
OBJET
SERVEUR
UTIL (globale)
PRINCIPAL
14 décembre 2004 Virginie CARPENA 46
Choix de conception : la charte• Les conventions d’écriture inspirées des règles java• Règles de nommage• Règles générales : commentaires de fonctions, …
@see@param tous les paramètres d’entrée@return tous les paramètres de sortie@author @version@since Modifié le JJ/MM/YYYY Par AUTHOR
14 décembre 2004 Virginie CARPENA 47
Choix de conception : l’interface graphique
FrmAPropos
FrmParametre
FrmComposant
FrmSynchro
FrmResultat
FrmMain
FrmSaisieParam
FrmScript
FrmNavigation
14 décembre 2004 Virginie CARPENA 48
Choix de conception : le paramétrage
14 décembre 2004 Virginie CARPENA 49
Choix de conception : le paramétrage
Le fichier commande.xml• liste des commandes
<LST_COMMANDE><GPE_COMMANDE nom_groupe="Les actions et interrogations globales">
<nom_groupe>Les actions et interrogations globales</nom_groupe><type_groupe>GENERAL</type_groupe>
<COMMANDE num_cde="0"><num_cde>0</num_cde> <nom_cde>GENERAL</nom_cde><intitule_cde></intitule_cde>
14 décembre 2004 Virginie CARPENA 50
Choix de conception : le paramétrageLe fichier commande.xml• liste des paramètres de commande
<PARAMETRE_SAISIE><PARAMETRE>
<nom_param>Machine</nom_param><libelle_param>LBL_MACHINE</libelle_param><pos_lib_X>10</pos_lib_X><pos_lib_Y>40</
pos_lib_Y><type_param>ComboBox</type_param><valeur_def_param>CARPENA</valeur_def_param><pos_X>20</pos_X><pos_Y>60</pos_Y><dim_X>160</dim_X><dim_Y>20</dim_Y><VALEUR_LISTE></VALEUR_LISTE>
</PARAMETRE>
14 décembre 2004 Virginie CARPENA 51
Choix de conception : le paramétrageLe fichier commande.xml• liste des paramètres de commande
<PARAMETRE_SAISIE><PARAMETRE>
<nom_param>Machine</nom_param></PARAMETRE><PARAMETRE>
<nom_param>Disque</nom_param></PARAMETRE>
14 décembre 2004 Virginie CARPENA 52
Choix de conception : le paramétrage
Le fichier commande.xml• La syntaxe des commandes
<SYNTAXE><ETAPE>
<mot_cle>MACHINE = </mot_cle><num_param>0</num_param><expression>.*</expression><separateur>&retour_chariot;</
separateur><saisie_obligatoire>true</
saisie_obligatoire></ETAPE>
MACHINE = CARPENADISQUE = 191
14 décembre 2004 Virginie CARPENA 53
Choix de conception : le paramétrage
Le fichier commande.xml• Le traitement du résultat
<RESULTAT><resultat_OK>-> Tout est O.K.</resultat_OK><resultat_type>-> Tout est O.K.</resultat_type><ETAPE>
<nom_methode>find</nom_methode><expr_deb>Liste des noms de corpus</expr_deb>
<expr_corps>[A-Za-z0-9.,?!\-()\*\/\s\r\n&caract_sub;&caract_accent; :=_$ :+]*</expr_corps><expr_fin>-LISTE TERMINEE-</expr_fin>
<expr_concat>&retour_chariot;</expr_concat><expr_remplacement></expr_remplacement>
</ETAPE>
14 décembre 2004 Virginie CARPENA 54
PLAN1. Vue générale et contexte de l’étude
1.1 Présentation des serveurs linguistiques1.2 Présentation d’une première interface CASH 1.3 Objectifs et contraintes de la nouvelle application
2. Analyse et conception2.1 Analyse conceptuelle2.2 Conception technique2.3 Choix de conception
3. Réalisation de WICALE3.1 Application finale3.2 L’interface de programmation (API)
Conclusion
14 décembre 2004 Virginie CARPENA 55
WICALE
14 décembre 2004 Virginie CARPENA 56
WICALE
14 décembre 2004 Virginie CARPENA 57
WICALE
14 décembre 2004 Virginie CARPENA 58
WICALE
14 décembre 2004 Virginie CARPENA 59
Réalisation de WICALE L’interface de programmation
fr.imag.clips.wicale.ihm FrmAPropos, FrmResultat, FrmSaisieParam
fr.imag.clips.wicale.objet Commande, paramètre, paramètreCommande, serveur, syntaxe, valeurliste
fr.imag.clips.wicale.serveur Interface Serveur Linguistique
Serverhttp
ServerSocket
fr.imag.clips.wicale.util Constante, Erreur, ExprReg,Fichier, Impression, Xml
14 décembre 2004 Virginie CARPENA 60
PLAN1. Vue générale et contexte de l’étude
1.1 Présentation des serveurs linguistiques1.2 Présentation d’une première interface CASH 1.3 Objectifs et contraintes de la nouvelle application
2. Analyse et conception2.1 Analyse conceptuelle2.2 Conception technique2.3 Choix de conception
3. Réalisation de WICALE3.1 Application finale3.2 L’interface de programmation (API)
Conclusion
14 décembre 2004 Virginie CARPENA 61
ConclusionApplication réalisée
gère sur le client une image des linguicielssynchronise les donnéescommunique avec le serveur
ÉvaluationPortablegénérique et adaptabilitéDéploiement et facile d’utilisation
14 décembre 2004 Virginie CARPENA 62
ConclusionÉvolution et perspectives
ouvrir un fichier à partir d’un autre composantouvrir un éditeur de texte de leur choixenchaîner des commandes de plusieurs EDL