Ad

InglésFrancésEspañol

Editor gratuito en línea | DOC > | XLS > | PPT >


icono de página de OffiDocs

Revisión gramatical de Lingucomponent

OffiDocs proporciona OpenOffice en línea, por lo que estamos interesados ​​en el Verificador gramatical de Lingucomponent, cuyos objetivos son diseñar, desarrollar e implementar un corrector gramatical para inglés y otros idiomas admitidos. Una API de revisión gramatical ha estado disponible en OpenOffice.org desde la versión 3.0.

La revisión gramatical se ve como una implementación particular de un proceso de iteración y marcado de texto, otros procesos de iteración/marcado como la revisión ortográfica o el etiquetado inteligente básicamente pueden funcionar de la misma manera (aunque actualmente no están implementados así). Si se menciona la verificación gramatical en la siguiente documentación, esto puede verse como un marcador de posición para la tarea más general de marcado de texto. Como los objetos que llevan a cabo la iteración del texto son conscientes del proceso de marcado particular para el que se utilizan, básicamente es posible ajustar la iteración para las necesidades de ese proceso.

El proceso de revisión gramatical consiste en

- uno o más documentos a verificar

- una o más implementaciones de correctores gramaticales, cada una de las cuales admite al menos un idioma.

- uno o más diálogos de revisión gramatical (como máximo una instancia por documento)

- un menú contextual al hacer clic en el texto marcado como incorrecto

- un iterador de verificación de gramática global (común a todos los documentos) implementado como singleton, que verifica una oración (de un documento arbitrario) a la vez.

- un objeto de subproceso por corrector gramatical que se utiliza para realizar la comprobación sin bloquear la GUI

- objetos que iteran a través del texto de un documento, un objeto que representa una sola tarea de revisión gramatical que se solicitó

- objetos que representan bloques de texto en un documento de texto ("párrafos planos") que se abstraen de la estructura concreta del documento y brindan acceso al texto mediante cadenas de texto simples y valores enteros que describen posiciones y longitudes de subcadenas.

 

Objetos y sus interfaces.

Tenemos tres partes trabajando juntas. La primera parte proviene del documento que se está comprobando y es una implementación específica para el tipo particular de documento (por ejemplo, Writer o Calc). Encapsula el acceso al texto del documento. Un documento que desee verificar errores gramaticales debe ser compatible con la interfaz com.sun.star.text.XFlatParagraphIteratorProvider. A través de esta interfaz, debe poder proporcionar objetos que implementen com.sun.star.text.XFlatParagraphIterator que devuelvan objetos que implementen com.sun.star.text.XFlatParagraph. La última interfaz se deriva de com.sun.star.text.XTextMarkup. A continuación, llamaremos a estos objetos "iteradores de párrafo plano" (FPIterator) y "párrafos planos" (FP). Si se usa la palabra "párrafo", esto también denotará un "FP", no un párrafo real en el documento ya que no siempre ambos son iguales.

Un FP no es necesariamente un párrafo como en el contexto de los documentos, puede ser una colección de ellos (por ejemplo, una lista) y no solo contiene el flujo de texto sino también otro contenido de texto como marcos de texto, encabezados y pies de página, etc. El núcleo del documento puede manejar dichos objetos de FP de manera eficiente. Esta es una implementación específica del documento. El FP no revela la estructura de texto interna completa o sus atributos, solo se puede acceder a su contenido como una cadena que contiene el bloque de texto completo.

Un FPIterator es un objeto que permite iterar a través de todos los objetos FP que juntos forman el contenido del texto del documento. El orden en que se iteran los párrafos es arbitrario y un detalle de implementación del FPIterator. El contenido de texto "regular" por lo general debe proporcionarse en la dirección de lectura, pero cómo encajan otros textos como encabezados y pies de página (que existen solo una vez pero se repiten en cada página) o marcos de texto (que pueden estar incrustados en el flujo de texto) es no predeterminado. La iteración a través del texto siempre se asigna a un proceso de marcado de texto que tratará todo el documento. Por lo tanto, la iteración se cerrará al final del documento y no terminará antes de que todos los párrafos se hayan marcado como "verificados" para el proceso de marcado en particular (como la revisión gramatical). Los párrafos marcados como "marcados" se omitirán en la iteración. Entonces, para los clientes de un FPIterator, es simple usarlos: solicite nuevos objetos FP hasta que no se devuelva ninguno y no se preocupe por cómo se implementa.

La segunda parte es un corrector gramatical. Un corrector gramatical es un componente que implementa la interfaz com.sun.star.linguistic2.XGrammarChecker. Para cada idioma puede haber un componente particular que sea capaz de verificar errores gramaticales en ese idioma. La configuración dirá qué componente es responsable de qué idioma. La implementación de com.sun.star.linguistic2.XGrammarChecker que representa un componente en particular encapsulará la API "privada" de este componente de revisión gramatical. Esta API privada puede estar basada en UNO o Java puro, una interfaz CLI o COM, una API C, etc., todo lo que se puede usar o conectar dentro de una implementación de una interfaz UNO. Como la interfaz es bastante pequeña, no debería ser muy complicado envolver los correctores gramaticales existentes para usarlos en OpenOffice.org.

En el medio se encuentra el tercer componente, que media entre los otros dos. Implementa la "lógica" del proceso de revisión gramatical. Como se comunica con las otras dos partes por su API UNO definida, solo esta parte central es independiente del tipo de documento en particular o del componente de verificación gramatical. Un servicio de UNO llamado com.sun.star.linguistic2.GrammarCheckingIterator es el componente que realmente lleva a cabo el proceso de revisión gramatical para todos los escenarios admitidos. Es un singleton que controla todos los procesos de verificación gramatical en ejecución y, por lo tanto, también conoce todos los componentes de verificación gramatical existentes. Implementa la interfaz com.sun.star.linguistic2.XGrammarCheckingIterator y también proporciona un objeto que implementa com.sun.star.linguistic2.XGrammarCheckingResultListener. A continuación, este objeto se llamará GCIterator.


Ejecutar Chrome Extensions

Ad