Title: Interface cliente g
1Mémoire CNAM en vue dobtenir le diplôme
dingénieur CNAM en informatique
- Interface cliente générique pour le pilotage
- de serveurs linguistiques
2Introduction
- Laboratoire CLIPS Équipe GETA
- Équipe pluridisciplinaire
- Les thèmes de recherche
- - TAO du traducteur
- - TAO du rédacteur
- La mise en place doutils linguistiques
- moteurs (compilateurs, analyseurs,
transducteurs, générateurs) - données (lexiques, grammaires, corpus)
3Introduction
- 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
4PLAN
1. Vue générale et contexte de létude 1.1
Présentation des serveurs linguistiques 1.2
Présentation dune première interface CASH 1.3
Objectifs et contraintes de la nouvelle
application 2. Analyse et conception 2.1 Analyse
conceptuelle 2.2 Conception technique 2.3 Choix
de conception 3. Réalisation de WICALE 3.1
Application finale 3.2 Linterface de
programmation (API) Conclusion
5ARIANE-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
6Données ARIANE-G5
7ARIANE-G5
- Les commandes
- Exemple
- LISNOMTEXT Langue source Cible Nom corpus
- LISNOMTEXT RU5 ESSAI
MOT
Param 1 Param2 Param n
8ARIANE-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
9PILAF
- Est un logiciel de traitement de lécrit
permettant - lanalyse et la génération morphologique
- La lemmatisation
- La construction de structures de dépendances
- Disponible sur le Mac, Windows, UNIX et WEB
10Données PILAF
11PILAF
- 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. Variables
- La detp sin fem tre cod
- nouvelle subc sin fem
- nouvelle adjq sin fem
12PILAF communication
- Les accès
- Via le WEB (protocole HTTP)
13UNL
- 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
14Données UNL
15UNL
- Les commandes
- Déconversion document UNL à déconvertir.
Monkeys eat bananas.
16UNL
- Les accès
- Via TELNET implémenté par des sockets TCP/IP
17CASH pour ARIANE-G5
18Objectifs et contraintes de WICALE
19Les données
20Les scénarios
21Les contraintes
- La portabilité
- La généricité ou adaptabilité
- La facilité de déploiement et dutilisation
- La localisation
22PLAN
1. Vue générale et contexte de létude 1.1
Présentation des serveurs linguistiques 1.2
Présentation dune première interface CASH 1.3
Objectifs et contraintes de la nouvelle
application 2. Analyse et conception 2.1 Analyse
conceptuelle 2.2 Conception technique 2.3 Choix
de conception 3. Réalisation de WICALE 3.1
Application finale 3.2 Linterface de
programmation (API) Conclusion
23Analyse conceptuelle
- Les fonctionnalités
- Afficher la listes des EDL
- Synchroniser les données linguistiques
- afficher la liste des commandes
- Saisir des paramètres dune 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)
24Analyse conceptuelle
25Conception technique
26Démarche en spirale
Choix techniques
Objectifs et contraintes
Prépare phase suivante
Développe Et vérifie application
27Les choix techniques
Piloter des EDL
BD XML
- Stockage des données en local
ISO-8859-1 Unicode UTF-8
Fichiers XML au format UTF-8
28Les choix techniques
Piloter des EDL
ARIANE-G5 SMTP, ou TELNET
PILAF HTTP
UNL Telnet
ARIANE-G5 via Telnet implémenté par des sockets
TCP/IP PILAF via le protocole HTTP UNL via
Telnet implémenté par des sockets TCP/IP
29Les choix techniques
Portabilité
JAVA C
JAVA
30Les choix techniques
Séparer code et texte, Multi-appli
Localisation
Séparer le code des textes affichés
31Les choix techniques
BD XML
Généricité Adaptabilité Facilité de déploiement
et dutilisation
ISO-8859-1 Unicode UTF-8
Fichiers XML au format UTF-8 Expressions
régulières
32Résumé des choix techniques
33JAVA
- 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 dinterfaces graphiques
- La localisation
- Le codage
- La manipulation dexpressions régulières
- La manipulation de fichiers XML
- Ses environnements de développement
34Les aspects réseau
- La communication par socket Envoi dune commande
Client
Serveur
Début de session Délimiteur denreg Commande
ARIANE Délimiteur de fin Fin de session
ltltlt Mot passe gtgtgt--commentaire--ARIANET-LIDIA20. /--------------------------------------------/ MACHINE CARPENA DISQUE 191 LGS LGC TRAIT LIENLANG ( , ) /--------------------------------------------/ ltltlt Mot passe gtgtgt--commentaire--ARIANET-LIDIA20.
35Les aspects réseau
// Initialisation du socket et des flots de
communication socket new Socket(tupai.imag.fr,
5768) isr new InputStreamReader(socket.getInp
utStream(),"iso-8859-1") in new
BufferedReader(isr) out new PrintWriter(socket.
getOutputStream(),true)
36Les aspects réseau
//Envoie de la commande out.print(sDEBFIN_SESSION
constante.CRLF) //DEBUT de session out.print(sC
ommande constante.CRLF) out.print(sDEBFIN_SESSI
ON constante.CRLF) //FIN de session out.flush()
avec sCommande /----------------------------
--------------------------------------------------
-----/ Operation de phaseM C ou G MACHINE
CARPENA DISQUE 191 LGS LGC
TRAIT LIENLANG ( , ) /-------------------
--------------------------------------------------
--------------/
37Les aspects réseau
- La communication par le protocole HTTP
Client
Serveur
Connexion Envoi POST paramètres
http //clips.imag.fr/cgi-bin/pilaf/gene.py? POST motbouillircategorieppasvariablesfemplu
38Les aspects réseau
Connexion au serveur url new URL("http
//clips.imag.fr/cgi-bin/pilaf/gene.py?") server
(HttpURLConnection)url.openConnection() serve
r.setRequestMethod( POST ) server.setRequestPr
operty("Content-type", "application/x-www-form-url
encoded") server.connect() BufferedWriter bw
new BufferedWriter(new OutputStreamWriter
(server.getOutputStream())) String s
motbouillircategorieppasvariablesfemplu bw
.write(s, 0, s.length()) bw.flush() bw.close()
39Expressions 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
40Expressions régulières
- Exemple recherche de la réponse renvoyé par le
serveur - ltHTMLgtltHEADgtltTITLEgtReacutesultat
geacuteneacuterationlt/TITLEgtlt/HEADgtltBODY
BGCOLOR"FFFFFF"gt - ltTABLE WIDTH"100"gtltTRgtltTD BGCOLOR"666699"
HEIGHT30VALIGNCENTERgtltFONT FACE"Verdana,
Arial" SIZE"2" COLOR"WHITE"gtltBgtReacutesultat
de la geacuteneacuterationltBgtlt/FONTgt - lt/TDgtlt/TRgtlt/TABLEgtltVARgtVous avez choisi le jeu de
caractegraveres lt/VARgt - ISOltHRgtltBRgtltVARgtVoici la geacuteneacuteration
demandeacutee - lt/VARgtbouillirnbspnbspltBgtppasnbspnbsplt/Bgtlt
Igtplu femlt/IgtltHRgt - ltPREgtForme Lemme
ltBgtCAT.lt/Bgt VariablesltHRgtbouillies
bouillir ltBgtppas lt/Bgt plu fem - lt/PREgtltTABLE WIDTH"100"gtltTRgtltTD
BGCOLOR"666699"gtnbsplt/TDgtlt/TRgtlt/TABLEgt - lt/BODYgtlt/HTMLgt
41XML
- Langage extensible de balises
- Structuré en 3 parties
- Prologue
- lt?xml version"1.0" encoding"UTF-8"?gt
- Informations facultatives
- lt!DOCTYPE caract_utf-8
- lt!ENTITY a_grave "224"gt
- La syntaxe
- ltLST_COMMANDEgt
- ltCDEgtltnum_cdegt1lt/num_cdegtlt/CDEgt
- lt/LST_COMMANDEgt
42XML
- Force de XML
- Lisibilité
- Structure arborescente
- Universalité et portabilité
- Déploiement
- Intégrabilité
- Extensibilité
43XML Les API Sax et DOM
SAX mode évènementiel DOM mode hiérarchique
Instructions complexes Stocker les informations Passe en revue plusieurs fois larborescence Temps de réponse
Rapide Charge en mémoire le doc simple
44Choix de conception
45Choix de conception les paquetages
46Choix 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,
- _at_see
- _at_param tous les paramètres dentrée
- _at_return tous les paramètres de sortie
- _at_author
- _at_version
- _at_since Modifié le JJ/MM/YYYY Par AUTHOR
47Choix de conception linterface graphique
48Choix de conception le paramétrage
49Choix de conception le paramétrage
- Le fichier commande.xml
- liste des commandes
- ltLST_COMMANDEgt
- ltGPE_COMMANDE nom_groupe"Les actions et
interrogations globales"gt - ltnom_groupegtLes actions et interrogations
globaleslt/nom_groupegt - lttype_groupegtGENERALlt/type_groupegt
- ltCOMMANDE num_cde"0"gt
- ltnum_cdegt0lt/num_cdegt
- ltnom_cdegtGENERALlt/nom_cdegt
- ltintitule_cdegtlt/intitule_cdegt
50Choix de conception le paramétrage
- Le fichier commande.xml
- liste des paramètres de commande
- ltPARAMETRE_SAISIEgt
- ltPARAMETREgt
- ltnom_paramgtMachinelt/nom_paramgt
- ltlibelle_paramgtLBL_MACHINElt/libelle_paramgt
- ltpos_lib_Xgt10lt/pos_lib_Xgtltpos_lib_Ygt40lt/pos_li
b_Ygt - lttype_paramgtComboBoxlt/type_paramgt
- ltvaleur_def_paramgtCARPENAlt/valeur_def_paramgt
- ltpos_Xgt20lt/pos_Xgtltpos_Ygt60lt/pos_Ygt
- ltdim_Xgt160lt/dim_Xgtltdim_Ygt20lt/dim_Ygt
- ltVALEUR_LISTEgt
- lt/VALEUR_LISTEgt
- lt/PARAMETREgt
51Choix de conception le paramétrage
- Le fichier commande.xml
- liste des paramètres de commande
- ltPARAMETRE_SAISIEgt
- ltPARAMETREgt
- ltnom_paramgtMachinelt/nom_paramgt
- lt/PARAMETREgt
- ltPARAMETREgt
- ltnom_paramgtDisquelt/nom_paramgt
- lt/PARAMETREgt
52Choix de conception le paramétrage
- Le fichier commande.xml
- La syntaxe des commandes
- ltSYNTAXEgt
- ltETAPEgt
- ltmot_clegtMACHINE lt/mot_clegt
- ltnum_paramgt0lt/num_paramgt
- ltexpressiongt.lt/expressiongt
- ltseparateurgtretour_chariotlt/separateurgt
- ltsaisie_obligatoiregttruelt/saisie_obligatoiregt
- lt/ETAPEgt
MACHINE CARPENA DISQUE 191
53Choix de conception le paramétrage
- Le fichier commande.xml
- Le traitement du résultat
- ltRESULTATgt
- ltresultat_OKgt-gt Tout est O.K.lt/resultat_OKgt
- ltresultat_typegt-gt Tout est O.K.lt/resultat_typegt
- ltETAPEgt
- ltnom_methodegtfindlt/nom_methodegt
- ltexpr_debgtListe des noms de corpuslt/expr_debgt
- ltexpr_corpsgtA-Za-z0-9.,?!\-()\\/\s\r\ncaract_s
ubcaract_accent _ lt/expr_corpsgtltexpr_fin
gt-LISTE TERMINEE-lt/expr_fingt - ltexpr_concatgtretour_chariotlt/expr_concatgt
- ltexpr_remplacementgtlt/expr_remplacementgt
- lt/ETAPEgt
54PLAN
1. Vue générale et contexte de létude 1.1
Présentation des serveurs linguistiques 1.2
Présentation dune première interface CASH 1.3
Objectifs et contraintes de la nouvelle
application 2. Analyse et conception 2.1 Analyse
conceptuelle 2.2 Conception technique 2.3 Choix
de conception 3. Réalisation de WICALE 3.1
Application finale 3.2 Linterface de
programmation (API) Conclusion
55WICALE
56WICALE
57WICALE
58WICALE
59Réalisation de WICALE
Linterface 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
60PLAN
1. Vue générale et contexte de létude 1.1
Présentation des serveurs linguistiques 1.2
Présentation dune première interface CASH 1.3
Objectifs et contraintes de la nouvelle
application 2. Analyse et conception 2.1 Analyse
conceptuelle 2.2 Conception technique 2.3 Choix
de conception 3. Réalisation de WICALE 3.1
Application finale 3.2 Linterface de
programmation (API) Conclusion
61Conclusion
Application réalisée gère sur le client une
image des linguiciels synchronise les
données communique avec le serveur Évaluation P
ortable générique et adaptabilité Déploiement
et facile dutilisation
62Conclusion
Évolution et perspectives ouvrir un fichier à
partir dun autre composant ouvrir un éditeur de
texte de leur choix enchaîner des commandes de
plusieurs EDL