# General Architecture for Text Engineering

General Architecture for Text Engineering o GATE es una suite de herramientas Java desarrolladas en la Universidad de Sheffield, que comenzó en 1995 y hoy es usada por una amplia comunidad de científicos, compañías, profesores y estudiantes para tareas de Procesamiento de lenguajes naturales (PLN o NLP) de todo tipo, incluyendo Extracción de la información, en varios idiomas.
GATE tiene como objetivo eliminar la necesidad de resolver problemas comunes de ingeniería antes de hacer investigación útil, o reingeniería de procesos antes de convertir los resultados de la investigación en aplicaciones. Las funciones principales de GATE cuidan de su parte del león de la ingeniería:
* modelado y persistencia de estructuras de datos especializadas
* medidas, evaluación, benchmarking
* visualización y editado de anotaciones, ontologías, árboles de análisis sintáctico, etc.
* un idioma de transducción de estados finitos para prototipeo rápido y eficiente implementación de métodos de análisis superficial (JAPE, véase más abajo)
* extracción de instancias de entrenamiento para aprendizaje automático
* implementaciones de aprendizaje automático enchufables (Weka, SVM Light, an in-house uneven margins SVM implementation and more.)
Además de las funciones principales, GATE incluye componentes para tareas de procesado de idiomas naturales, p.ej. análisis sintáctico (parse), morfología, etiquetado, herramientas de recuperación de información, componentes de extracción de información para varios idiomas, y muchos otros. Ha sido ampliamente empleado en campos como la bioinformática y otros. GATE Developer y GATE Embedded se lanzan con un sistema de extracción de información (ANNIE) que ha sido adaptado y evaluado ampliamente (sistemas industriales, sistemas de investigación en MUC, TREC, ACE, DUC, Pascal, NTCIR, etc.). ANNIE también se usa para crear metadatos RDF u Web Ontology Language (OWL) (metadata) para contenido sin estructurar (semantic annotation). GATE has been compared to NLTK, R y RapidMiner. Además forma la base de la plataforma semántica KIM.
La comunidad GATE se ha visto involucrada en varios proyectos de investigación europea tales como TAO, SEKT, NeOn, Media-Campaign, Musing, Service-Finder, LIRICS y KnowledgeWeb, así como otros proectos.

## Características

GATE incluye:
* un IDE, GATE Developer: un entorno de desarrollo integrado con componentes incluidos para Procesamiento de lenguajes naturales, con un sistema de extracción de información llamado ANNIE (A Nearly-New Information Extraction System), el cual es un conjunto de módulos que comprenden un tokenizador, un gazetador, un divisor de oraciones, un etiquetador gramatical (de partes del discurso), un transductor reconocedor de nombres de entidades y un etiquetador de correferencia. ANNIE puede usarse como extractor de información, o como punto de partida para tareas más específicas. También incluye un conjunto comprensivo de otros plugins;
* una aplicación web, GATE Teamware: un entorno colaborativo de anotaciones para proyectos de anotación semántica estilo fabril (factory-style) construidos en torno a un motor de flujo de trabajo (workflow engine, en inglés) y una infraestructura de servicio backend fuertemente optimizada;
* un marco de trabajo (framework), GATE Embedded: una biblioteca de objetos optimizada para la inclusión en diversas aplicaciones que da acceso a todos los servicios usados por GATE Developer y otros servicios;
* una arquitectura: una imagen organizacional de la composición de software de procesado de idiomas;
* un proceso para creación de servicios mantenibles y robustos.
También incluirá lo siguiente, que se encuentra bajo desarrollo:
* una wiki/CMS
* una solución de computación en nube para procesamiento a gran escala alojado, GATE Cloud
Los idiomas soportados actualmente incluyen: inglés, español, chino, árabe, francés, alemán, hindi, italiano, cebuano, rumano, ruso.
Se incluyen plugins para funciones como aprendizaje automático con (Weka, RASP, MAXENT, SVM Light, así como integración LibSVM e implementación de perceptrón, para gestión de ontologías como WordNet, para buscar en motores de búsqueda como Yahoo, para etiquetado de partes del discurso con método Brill o TreeTagger, y algunas más.
GATE puede manejar inputs (archivos de entrada) en varios formatos, tales como TXT, HTML, XML, Doc, PDF, y bases de datos Java Serial, PostgreSQL, Lucene, Oracle con ayuda de almacenamiento RDBMS sobre JDBC.
También utiliza lenguaje JAPE ("Java Annotation Patterns Engine") para construcción de reglas para etiquetar documentos. JAPE proporciona transducción de estados finitos sobre anotaciones basadas en expresiones regulares. JAPE es una versión de CPSL – Common Pattern Specification Language. Los transductores JAPE se usan a través de GATE para modificar anotaciones en texto. Se proporciona documentación en la guía de usuario de GATE.

## GATE Developer

GATE Developer es la interfaz de usuario de GATE. Es análoga a sistemas como Mathematica para matemáticos, o Eclipse para programadores en Java, pues provee un entorno gráfico para la investigación y desarrollo de software de procesado de idiomas. También es útil en conjunción con GATE Embedded (la API por la cual la funcionalidad de GATE puede incluirse en aplicaciones); por ejemplo, GATE Developer puede utilizarse para crear aplicaciones que pueden incrustarse entonces vía API.
La GUI de GATE Developer consiste en un menú superior y una fila de icono, un árbol de recursos a la izquierda, un panel tabulado de los visores de recursos en la parte centro-derecha, y un campo de mensajes en la parte inferior.
El árbol de recursos y el menú se usan para cargar, guardar y ejecutar recursos. El árbol muestra los recursos cargados y permite mostrar uno en el visor de recursos haciendo doble clic (o pulsando Enter). Cada recurso cargado puede mostrarse en un visor específico que ocupa la mayor parte del espacio en pantalla.
En esta imagen se puede ver al visor de documentos mostrando un documento y sus anotaciones. En color rosado están <A> anotaciones de hipervínculo de un fichero HTML. La lista de la derecha es la lista de conjuntos de anotaciones y en la tabla inferior está la lista de anotaciones. En el centro se encuentra la ventana del editor de anotaciones.

## GATE Teamware

Teamware es una plataforma basada en web para curación y notación colaborativa. GATE Teamware entrega una interfaz de usuario multifunción sobre la Internet para visionado, adición y edición de anotaciones textuales. La interfaz de manejo basada en web permite realizar las siguientes funciones de puesta en marcha y gestión de proyectos:
* Carga de colecciones de documentos ("corpus” o “corpora”).
* Creación de plantillas reutilizables de proyectos.
* Inicio de proyectos sobre la base de plantillas.
* Asignación de roles de proyectos a usuarios específicos.
* Monitorización de progreso y estadísticas en tiempo real.
* Reportes (informes) del estado del proyecto, actividad del anotador y estadísticas.
* Aplicación de rutinas de proceso basadas en GATE (procesamiento de anotaciones automáticas o proceso de post-anotación).