630 likes | 1.04k Views
Mémoire CNAM en vue d’obtenir le diplôme d’ingénieur CNAM en informatique. Interface cliente générique pour le pilotage de serveurs linguistiques. Introduction. Laboratoire CLIPS Équipe GETA Équipe pluridisciplinaire Les thèmes de recherche - TAO du traducteur - TAO du rédacteur
E N D
Mémoire CNAM en vue d’obtenir le diplôme d’ingénieur CNAM en informatique Interface cliente générique pour le pilotage de serveurs linguistiques Virginie CARPENA
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) Virginie CARPENA
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 Virginie CARPENA
PLAN 1. Vue générale et contexte de l’étude 1.1 Présentation des serveurs linguistiques 1.2 Présentation d’une 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 L’interface de programmation (API) Conclusion Virginie CARPENA
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 Virginie CARPENA
Données ARIANE-G5 Virginie CARPENA
ARIANE-G5 • Les commandes Exemple : LISNOMTEXT Langue source Cible Nom corpus LISNOMTEXT RU5 * ESSAI MOT Param 1 Param2 …Param n Virginie CARPENA
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 Virginie CARPENA
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 Virginie CARPENA
Données PILAF Virginie CARPENA
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. Variables La detp sin fem tre cod nouvelle subc sin fem nouvelle adjq sin fem… Virginie CARPENA
PILAF : communication • Les accès • Via le WEB (protocole HTTP) Virginie CARPENA
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 Virginie CARPENA
Données UNL Virginie CARPENA
UNL • Les commandes Déconversion document UNL à déconvertir. Monkeys eat bananas. Virginie CARPENA
UNL • Les accès • Via TELNET implémenté par des sockets TCP/IP Virginie CARPENA
CASH pour ARIANE-G5 Virginie CARPENA
Objectifs et contraintes de WICALE Virginie CARPENA
Les données Virginie CARPENA
Les scénarios Virginie CARPENA
Les contraintes La portabilité La généricité ou adaptabilité La facilité de déploiement et d’utilisation La localisation Virginie CARPENA
PLAN 1. Vue générale et contexte de l’étude 1.1 Présentation des serveurs linguistiques 1.2 Présentation d’une 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 L’interface de programmation (API) Conclusion Virginie CARPENA
Analyse conceptuelle Les 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) Virginie CARPENA
Analyse conceptuelle Virginie CARPENA
Conception technique Virginie CARPENA
Démarche en spirale Choix techniques Objectifs et contraintes Prépare phase suivante Développe Et vérifie application Virginie CARPENA
Les 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 Virginie CARPENA
Les choix techniques Piloter des EDL ARIANE-G5 SMTP, ou TELNET Communiquer avec les EDL 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 Virginie CARPENA
Les choix techniques Portabilité JAVA C++ JAVA Virginie CARPENA
Les choix techniques Séparer code et texte, Multi-appli Localisation Séparer le code des textes affichés Virginie CARPENA
Les choix techniques BD XML … Généricité Adaptabilité Facilité de déploiement et d’utilisation ISO-8859-1 Unicode UTF-8 Fichiers XML au format UTF-8 Expressions régulières Virginie CARPENA
Résumé des choix techniques Virginie CARPENA
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 Virginie CARPENA
Les aspects réseau • La communication par socket : Envoi d’une commande Client Serveur Début de session Délimiteur d’enreg Commande ARIANE Délimiteur de fin Fin de session Virginie CARPENA
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); Virginie CARPENA
Les aspects réseau //Envoie de la commande out.print(sDEBFIN_SESSION + constante.CRLF); //DEBUT de session out.print(sCommande + constante.CRLF); out.print(sDEBFIN_SESSION + constante.CRLF); //FIN de session out.flush(); avec sCommande = /*-----------------------------------------------------------------------------------*/ ** Operation de phase:M C ou G MACHINE = CARPENA DISQUE = 191 LGS = * LGC = * TRAIT = LIENLANG ( * , * ) /*-----------------------------------------------------------------------------------*/ Virginie CARPENA
Les aspects réseau • La communication par le protocole HTTP Client Serveur Connexion Envoi POST + paramètres Virginie CARPENA
Les aspects réseau Connexion 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(); Virginie CARPENA
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 Virginie CARPENA
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> Virginie CARPENA
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> Virginie CARPENA
XML • Force de XML • Lisibilité • Structure arborescente • Universalité et portabilité • Déploiement • Intégrabilité • Extensibilité Virginie CARPENA
XML : Les API Sax et DOM Virginie CARPENA
Choix de conception Virginie CARPENA
Choix de conception : les paquetages Virginie CARPENA
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 Virginie CARPENA
Choix de conception : l’interface graphique Virginie CARPENA
Choix de conception : le paramétrage Virginie CARPENA
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> Virginie CARPENA
Choix de conception : le paramétrage Le 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> Virginie CARPENA