Descripción
Polyglot es una herramienta desarrollada bajo el proyecto Cíclope. Su objetivo es traducir páginas html usando un sistema de tipo Wiki (ref: Enciclopedia Wikipedia). Aquí se trata de traducir todas las páginas del proyecto Cíclope pero se podrá usar por cualquiera persona que quiera traducir sus páginas WEB.
Idea general:
Esta herramienta está diseñada para traducir páginas Web. Por eso, el administrador tiene primero que configurar el sistema, cosa que se hace en línea gracias al enlace "Usar Polyglot". De esta configuración se generarán varios ficheros:
- un fichero de carga SQL que rellenará la base de datos.
- tantos ficheros PHP como los ficheros HTML que ha dado el proprietario. Estos ficheros permetirán hacer peticiones a la base de datos y así, según el navegador, poner la página en uno u otro de los idiomas.
- tres ficheros PHP: "translate.php" y "review.php" que permiten a los usuarios proponer y revisar traducciones; y "adminitration.php" que gestiona la consola de administration.
- un fichero TXT, "README.txt" para ayudar al propietario a instalar estos ficheros.
Catálogo de requisitos
- El software Polyglot será bajo la licencia GPL.
- El software Polyglot tiene el objetivo de traducir documentos escritos con un languaje de marcas.
- El software Polyglot tendrá una interfaz HTTP que permitira a los usuarios traducir los documentos.
- El sistema Polyglot tendrá una base de datos asociada en la cual se encontraran varias tablas describidas en la parte que corresponde.
- El sistema Polyglot tendrá uno ó más administradores quienes se ocuparán de la parte de configuración, especialmente de las jerarquías de traductores y de los idiomas.
- El sistema Polyglot generará un fichero SQL, tantos ficheros PHP como los HTML dados por el proprietario y ficheros PHP de utilisación.
- Las páginas PHP generadas por el sistema Polyglot deberán tener un mecanismo de autentificación para los traductores y los administradores.
- Según la configuración elegida por el proprietario, el sistema Polyglot permitirá usar una jerarquía de traductores ó permitirá a cualquier usuario de proponer una traducción.
- El traductor "anónimo" es el traductor con el nivel más bajo en cada jerarquía. Puede también hacer sugerencias para traducir las etiquetas pero aparecerán en la página solamente cuando un traductor registrado lo hará revisado.
- Para cada especialidad, el propietario definirá una jerarquía de traductores.
- Un traductor puede aparecer en tantas jeraquias como le permiten sus capacidades linguisticas.
- las sugerencias hechas por los traductores tendrán un número de version, así, cuando se revisa la etiqueta, se puede ver todas las propuestas de traducción y eligir la mejora entre estas.
- Las etiquetas serán representadas por la surgencia revisada o propuesta por el nivel más alto, ordenadas por fecha.
Concepción de la aplicación
Diagrama de los actores
- Proprietario: Es él a quien pertenecen los documentos que traducir. Genera los ficheros SQL y PHP gracias a la interfaz de Polyglot y despues, los instala en su servidor.
Decide de la configuración del sistema (idiomas, traductores, jerarquías)
- Administrator: Una vez entrado en la consola de administración
- Translator level n: Once he/she has entered the system, he/she can suggest translations and he/she has to accept translations suggested or accepted by the translators from lower levels and the anonymous ones.
- Anonymous translator: He/she can suggest translations at any time.
- Browser: It can do petition HTTP to the system to see the page of the administrator.
Concepción de la Base de Datos
Modelo entidad/relación
En el sistema encontramos diferentes entidades:
- TAG (Etiqueta): es la representación conceptual del texto de la página. Será un conjunto de palabras. Este contiene solo un campo que es la clave primaria "tagID".
- PAGE (Página): almacena las etiquetas. Tiene 2 campos: "pageID" que es la clave primaria y "path" que da el camino del fichero.
- USER (Usuario): es un administrador o un traductor de cualquier nivel. tiene un "userLogin" y un "password" para conectarse al sistema. El campo "isAdmin" permite saber si el usuario es administrador.
- LANGUAGE (Idioma): representa el idioma de la etiqueta. se representa por su "isoCode" que son dos letras definidas por el ISO 639 Language Codes y un campo "name" que da el nombre inglés del idioma.
- SPECIALITY (Especialidad): es la dirección de traducción. Tiene una clave compuesta por las dos letras de origen más 2 más, las de destino, por ejemplo, ES2FR para español-francés.
Y diferentes relaciones entre estas:
- Una página está compuesta de cero o más etiquetas.
- De una página descienden cero o más páginas.
- Un usuario supervisa cero o más usuarios.
- Un usuario tiene una o más especialidades.
- Una sugerencia es una etiqueta propuesta por un usuario en una idioma. Puede haber más de una sugerencia por una etiqueta por el mismo idioma.
Modelo relacional
Aplicando las reglas, obtenemos el modelo relacional correspondiente al modelo entidad/relación.
Las relaciones 1,1/.,n se vuelven en una clave extranjera en la parte .,n. Así, encontramos "PageID" en la tabla T_TAG; "backPage" en T_PAGE; y "bosslogin" en T_USER.
De otro modo, las relaciones .,m/.,n generan una nueva tabla, en la cual se encuentran las claves de las tablas-madre.
Es el caso de la tabla T_SUGGESTION que resulta de la relación entre TAG, LANGUAGE y USER, encontramos en esta tabla las tres claves de las tablas corespondiendas: "tagID", "isoCode" y "userLogin". En lugar de guardar estas tres claves como clave primaria, cambiamos por una clave distinta llamada "suggestionID". Añadimos campo "text" para definir el texto, valor de la etiqueta en el idioma, dos campos "father" y "son" que muestran por una misma etiqueta e idioma las diferentes versiones propuestas por los traductores, un campo "reviewer" que nombra quien revisó esta propuesta, y por fin un campo "date".
Es el caso también de la tabla T_SPEC_USER en la cual entontramos las dos claves extranjeras "specID" y "userLogin". Añadimos un campo "level" que define para cada traductor sus capacidades lingüisticas en la especialidad.