cerrar-sesion editar-perfil marker video calendario monitor periodico fax rss twitter facebook google-plus linkedin alarma circulo-derecha abajo derecha izquierda mover-vertical candado usuario email lupa exito mapa email2 telefono etiqueta

400440401. BibPort: La creación de referencias bibliográficas

Escrito por Redacción en Tema de portada
no hay comentarios Haz tu comentario
Imagen de logotipo de facebook Imagen de logotipo de Twitter Imagen de Logotipo de Google+ Imagen de logotipo de Linkedin

No obstante, cuando ya existe una colección grande de artículos, la tarea de crear bases de datos de referencias puede ser algo intimidante. El ir introduciendo manualmente con el teclado o la tarea de copiar y pegar de los documentos que tenemos a las bases de datos puede ser una tarea tediosa y proclive a cometer errores. Y con el software bibliográfico que hay, no hay una solución pre-empaquetada que ayude a automatizar la entrada manual inicial de referencias a la base de datos.

En el presente artículo presentamos BibPort, una herramienta automatizada que extrae la información pertinente de un conjunto de documentos de legado para crear bases de datos de referencias bibliográficas mediante los servicios de gestión de referencias de Word 2007.

((BibPort es una herramienta automatizada que extrae la información pertinente de un conjunto de documentos de legado para crear bases de datos de referencias bibliográficas))

En el contexto de extracción de texto bibliográfico, el presente artículo es un estudio de casos al usar las herramientas de Visual Studio de Microsoft para Office (VSTO) (msdn.microsoft.com/office/understanding/vsto) en combinación con Visual Studio 2008 y Word 2007.

Principios de diseño para BibPort

Muchas organizaciones tienes estilos específicos de formateado: IEEE, ACM, APA, y MLA. Una búsqueda web superficial presenta como resultados varias docenas de estilos de cita de uso generalizado. Por lo tanto, un importante objetivo de diseño BibPort aborda la flexibilidad necesaria para trabajar con múltiples formatos de citas.

BibPort no está escrito en código para un formato específico; se pueden añadir nuevos formatos de citas al suministrar nuevos analizadores sintácticos. Lo que es más, mientras que las herramientas individuales de gestión bibliográfica tienden a tener su propio formato, la elección de un formato para la base de datos es flexible dentro de BibPort.

BibPort tiene una arquitectura plug-in que tiene un gestor de analizador sintáctico como front-end a cualquier número de formatos de citas. De igual forma, un gestor de exportaciones sirve como back-end para múltiples motores de exportación para formatos de bases de datos de citas. Los procesos de input/output se modularizan de tal forma que cualquier motor de exportación es capaz de entender el output de cualquier analizador sintáctico.

Análisis sintáctico de una cita

Para distinguir el tipo particular de una referencia –una revista especializada, una conferencia, o un libro– dentro de un formato específico de cita hay que hacer una inferencia basada en pistas textuales que aparecen en cada una de las entradas. La inferencia del tipo de referencia puede ser ampliada para que distinga entre numerosos formatos de cita. Siempre que sea posible, se puede consultar a los usuarios para que eliminen la ambigüedad de los conflictos que puedan resultar de errores tipográficos.

Ambigüedad en una típica entrada de listas de referencia

La Figura 1 es una entrada típica de una lista de referencia formateada en estilo APA. En dicha entrada, el autor “A. Provenzale” tiene un artículo titulado “Page Swapping is Bad. What You Should Know” que ha sido aceptado por “Memory Management and You: Novel Memory Management Techniques.” En esa entrada se produce un problema perceptible porque el título contiene dos frases. Le resulta imposible al analizador sintáctico determinar dónde termina el título específico y dónde empieza el nombre de la revista especializada.

Es crucial, por tanto, subrayar el nombre de la misma para que se pueda interpretar la referencia con éxito. Ello ilustra la necesidad de que el analizador sintáctico entienda los tipos de pistas de formateado visual que se pueden encontrar en las listas de referencia. La capacidad de distinguir pistas visuales requiere al menos un entendimiento rudimentario del formateado de textos (uso de subrayado y cursiva) de un formato de ficheros de procesador de textos.

((BibPort incluye un analizador sintáctico agnóstico de formatos que procesa los tokens de un documento sin entender el formato específico subyacente))

Indicaciones para el formateado de textos que ayudan a resolver ambigüedades

La interpretación correcta de una referencia requiere indicaciones no textuales que ofrece el formateado de textos. Para obtener propiedades no textuales, BibPort requiere de un mecanismo para entender el formato del fichero subyacente del documento. Un manuscrito normalmente se atiene al formato estándar de la herramienta anfitriona de procesamiento de textos, como es la estructura de un documento Word.

BibPort entiende el formato Word y extrae la información no textual de la cita.

La extracción de una referencia mediante indicaciones visuales no es fácil. Muchos formatos corrientes, incluido el formato de documentos Word, codifican la información en formato binario y no en texto simple. Lo que es más, la extracción de indicaciones visuales está ligada al resultado de un procesador de textos específico y es difícil generalizar debido a las diferencias entre formatos de ficheros de los procesadores.


La situación presenta una complejidad adicional, porque puede que un analizador sintáctico tenga que cambiar con el procesador de textos anfitrión. Por ejemplo, cada versión nueva de Word tiende a cambiar de alguna forma el formato estándar del documento, necesitando bien un analizador sintáctico más complicado o varios analizadores para descodificar todos los formatos.

BibPort incluye un analizador sintáctico agnóstico de formatos que procesa los tokens de un documento sin entender el formato específico subyacente. Se puede ampliar la misma estructura interna de datos de BibPort con un envoltorio para que se integre con la estructura de datos del procesador de textos anfitrión para que haga llegar tokens al analizador sintáctico. Muchos procesadores de texto ofrecen una API para acceder a la estructura interna de los documentos. Por ejemplo, Word permite esa interacción mediante VSTO y Word Object Model (WOM).

Ambigüedad dentro de los tipos de referencia

La ambigüedad dentro de una única regla gramatical puede resolverse en parte mediante la información no textual, que puede servir como guía para delimitar el principio y el fin de ciertos elementos (el nombre de una revista especializada) en una entrada de listas de referencia. Los retos siguen estando ahí, no obstante, cuando se analiza sintácticamente un conjunto completo de tipos de referencia.

El estilo típico

No es difícil crear gramática BibPort para un formato de citas – el proceso es similar a la definición de gramática para un lenguaje de programación sencillo. Sin embargo, hay varios formatos de citas que no consiguen distinguir entre tipos similares de publicaciones. En el ejemplo de gramática BibPort para APA (Figura 2), podemos ver que las producciones gramaticales distinguen entre un libro y una revista.

A nivel visual, el título del libro está subrayado totalmente, mientras que el título del artículo no lo está. Este tipo de indicación visual puede servir como atributo para ayudar al analizador sintáctico con una gramática específica. Por tanto, no hay ambigüedad entre un libro y una revista en la gramática APA cuando hay disponible información no textual.

((Otros formatos de citas pueden decidir tratar de forma diferente las revistas y los artículos, y muchas herramientas de gestión distinguen entre artículos de revista y artículos de revistas especializadas))

Observemos no obstante que la gramática para una revista especializada simplemente remite a la gramática para revistas. Ello es así porque el estilo APA no distingue entre revistas y revistas especializadas. Sin embargo, otros formatos de citas pueden decidir tratar de forma diferente las revistas y los artículos, y muchas herramientas de gestión distinguen entre artículos de revista y artículos de revistas especializadas. Por tanto, aunque la gramática pueda ser ambigua, es importante que el analizador sintáctico tenga algún mecanismo para eliminar la ambigüedad de forma que la integración entre estilos diferentes sea posible.

En una especificación de gramática, la información opcional se especifica mediante corchetes; por ejemplo, la información sobre el volumen y el número de la revista de la Figura 2. Es difícil analizar una gramática de citas para que produzca un analizador sintáctico que sea sensible a todas las ambigüedades. El análisis sintáctico dirigido al usuario tiene que quitar la ambigüedad de algunos formatos de citas.

La mayoría de los formatos de citas permiten la descripción de varias docenas de tipos de referencias. En términos de selección de candidatos para referencias ambiguas, BibPort lleva toda entrada de listas de referencia al analizador sintáctico para cada tipo de referencia. De esta forma, los analizadores pueden seguir siendo sencillos y aún así se detectan siempre todas las ambigüedades con sugerencias posibles.

Cuando se encuentra una ambigüedad, hay que implicar al usuario. Desde luego, el resultado de BibPort debería ser fiable, así pues BibPort no adivina la clasificación correcta de una referencia ambigua sin consultar a los usuarios. Como BibPort está integrado en Microsoft Word, a los usuarios les aparece un menú de diálogo cuando hay una entrada ambigua de listado de referencias, y se les pide que clasifiquen la referencia entre las opciones recomendadas.

Se puede realizar una acción similar con una referencia para la que el analizador sintáctico no puede encontrar una correspondencia adecuada de producción. Una interfaz les permite a los usuarios poblar una estructura de datos con la información adecuada, además de indicar el tipo de referencia.

BibPort en acción

Uno de los nuevos conceptos empleados en Office 2007 es la “cinta” que reemplaza al viejo sistema de menús de Office 2003. Con las cintas, los usuarios interactúan con entidades tipo barra de herramientas que permiten cambiarse a contextos distintos que se basan en la tarea que se está realizando. Como VSTO está diseñado para funcionar con Office 2007, permite que los programadores diseñen los elementos de las cintas. En la Figura 3, hemos sustituido los controles BibPort de la cinta “Referencias”, que contiene todas las herramientas bibliográficas nativas de Office.

Como BibPort es una aplicación C# alojada dentro de la plataforma VSTO, puede usar los mecanismos estándar para presentar diálogos y otros tipos de elementos a los usuarios. Aunque BibPort no tiene elementos UI durante una buena parte de su ejecución, la eliminación de la ambigüedad orientada al usuario está disponible mediante un Formulario Windows estándar.

La Figura 4 muestra este proceso mediante un artículo en una revista especializada, que no se distingue de un artículo en una revista de estilo APA. BibPort simplemente presenta a los usuarios cada una de las posibles interpretaciones de la referencia, dejando que ellos guíen a la herramienta.

[(VSTO ofrece una plataforma que puede alojar plug-ins escritos en lenguajes .NET dentro de programas de Office. La aplicación y sus documentos abiertos se presentan como objetos dentro de un plug-in de VSTO)]

Como las referencias se filtran a través de BibPort, se insertan de forma programática en el Gestor de Fuentes de Word, que es parte de las nuevas capacidades de referencia de Word 2007. El gestor de fuentes actúa como una base de datos para referencias, permitiendo que los usuarios inserten las citas con facilidad. Aunque BibPort lo soporta “listo para llevar”, podemos también usar formatos alternativos de bases de datos. BibPort puede simplemente pedir un nombre de fichero de salida al principio del proceso y exportar las referencias al fichero en otro formato nativo del programa.

No obstante, como el Gestor de Fuentes está disponible para ser manipulado mediante VSTO, hemos encontrado que es más interesante dirigirse a este tipo de operación. La Figura 5 muestra al Gestor de Fuentes después de importar un conjunto de referencias a través de BibPort.

Implementación de BibPort con VSTO

VSTO de Microsoft ofrece una plataforma que puede alojar plug-ins escritos en lenguajes .NET dentro de programas de Office. La aplicación y sus documentos abiertos se presentan como objetos dentro de un plug-in de VSTO. Esta colección de objetos VSTO permite la manipulación del programa, además de la navegación de los contenidos subyacentes de documentos de forma estructurada.

Estos objetos están disponibles para todos los tipos de ficheros soportados por programas de Office además de los soportados por filtros de conversión de ficheros tras su comercialización. VSTO representa una abstracción importante que ofrece un medio de procesar muchos documentos rápidamente y con facilidad. Para proporcionar acceso a Word y a sus documentos, VSTO suministra un conjunto de objetos conformes a WOM. Con este conjunto de objetos, podemos inspeccionar los contenidos de un documento de forma detallada.

Elementos de la interfaz de usuario

Se ha portado BibPort mediante tres iteraciones de Visual Studio, comenzando con Word 2003 y la primera versión de VSTO. Aunque se han hecho algunos cambios en las dos primeras revisiones, el código base de BibPort continúa siendo relativamente el mismo entre Visual Studio 2003 y 2005. Las dos primeras versiones iban dirigidas a Word 2003, que usa sistemas tradicionales orientados a menús. La presentación de BibPort a los usuarios implicaba insertar un nuevo menú específicamente para la funcionalidad BibPort. La inserción se consiguió mediante varias líneas de código que registraban el menú y creaban los ganchos a BibPort al inicio de Word.

Con Word 2007, las cintan sustituyen a las barras de herramientas, lo que requirió algunos cambios para la creación de estos elementos de la IU. Visual Studio 2008 incluye un diseñador de cintas o Ribbon Designer que ayuda en la creación de nuevas cintas y extensiones. La Figura 6 muestra la evolución desde la creación de menús de forma programática a la creación de cintas mediante un wizard. Esta capacidad coloca la creación de menús al mismo nivel que el diseño de señala-y-pincha que es frecuente en los Formularios de Windows de Visual Studio.

Indicaciones no textuales

Para comprobar si son ciertas las indicaciones no textuales, BibPort accede a un contenedor de secuencia llamado “Words” situado dentro de un objeto Dominio, que corresponde a un documento abierto dentro de Word. En la Figura 7, el contenedor Words sostiene de forma separada cada palabra individual del documento analizada sintácticamente, además de banderas que indican si se activa un formateado específico (como subrayado, cursiva o negrita). BibPort accede a las banderas de atributos dentro del objeto Word para obtener las indicaciones visuales utilizadas para ayudar a quitar la ambigüedad de una referencia.

Al usar WOM se resuelve la dificultad de tener que entender sobre formatos de fichero, pero introduce un segundo problema: Como Word define la forma en la que se “señalizan” con “tokens” las palabras y caracteres de los documentos, habrá varias categorías de tokens que no se partan de la forma requerida para los analizadores sintácticos de BibPort. Un particular ejemplo de ello es la distribución de la puntuación entre tokens. La matriz Words se diseñó para ser usada con palabras en inglés como su unidad lógica en vez de unidades más discretas con puntuación independiente. De ahí que WOM tienda a agrupar signos de puntuación con palabras en lugar de representarlas como tokens separados.

//listado 1

Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;

while (doc.Words(index).Underline ==

word.WdUnderline.wdUnderlineSingle)

if (doc.Words(index).Text.Trim() == "." &&

doc.Words(index + 1).Underline !=

Word.WdUnderline.wdUnderlineSingle)

break;

title += doc.Words(index++).Text;

if (title == "") return false;

El Listado número 1 es una muestra del código de análisis sintáctico de BibPort. Se invoca este listado concreto de código para establecer si la palabra en curso es el comienzo del título de un libro. Hay varias características en este bloque de código que merece la pena observar. En primer lugar, como BibPort está programado como un AddIn de Word, las distintas entidades WOM están insertadas directamente en un espacio de nombre denominado ThisAddIn. Hay una única referencia Document que está disponible dentro del objeto Application que indica el documento que está actualmente funcionando en Word.


Una segunda observación concierne a la forma de inspección del token del código. En el estilo APA, el único medio de detectar el título de un libro es si está subrayado. Si no lo está, la referencia no es con toda seguridad un libro, así que BibPort deja de analizarla. Como podemos ver, esto se comprueba directamente mediante la comparación de un atributo concreto de una palabra frente a otro valor dentro de WOM que representa un único subrayado.

Gestión de la bibliografía

En Word 2007, se ha ampliado WOM para permitir el acceso del programador al nuevo gestor de fuentes. Sin embargo, la interfaz que proporciona WOM no es nativa; la inserción de un código implica pasar una cadena que contenga la representación XML de la fuente. Por desgracia, este esquema no estaba disponible en Internet en el momento de escribir esto, así que hemos modificado en reverso las etiquetas que se usaron para describir una fuente; véase la Tabla 1. Las referencias en el gestor de código se pueden también encontrar en el fichero XML del directorio de Datos de Aplicación del usuario en el apartado Microsoft\Bibliography\Sources.xml.

Añadir una referencia nueva requiere una simple invocación al método VSTO denominado Globals.ThisAddIn.Application.Bibliography.Sources.Add(xml), pero esta adición puede tener un cierto nivel de complejidad porque el campo Tag de la fuente tiene que ser único. Debido a los servicios COM que se utilizan en VSTO, las excepciones no son algo trivial. Normalmente están mapeadas a un entero y retornan como un código error.

Conclusión

Hay muchas cuestiones que hacen difícil la extracción de texto1. La amplia variedad de formatos de ficheros –RTF, .doc, .wpd, y semejantes– requieren de una aplicación de extracción de texto para que analice sintácticamente muchos tipos de documentos, a la vez que tienen que poder salir en múltiples formatos. BibPort oculta esta complejidad de forma transparente tras una capa de abstracción para ayudarnos a escribir aplicaciones de extracción de una forma más generalizada.


La combinación de VSTO con VS 2008 ha eliminado muchas de las complejidades accidentales que había en el procesamiento de ficheros Word para extraer información bibliográfica. Lo que es más, el gestor de fuente de Word ofrece un conveniente repositorio para esta información, y VSTO ofrece los mecanismos necesarios para usar este nuevo recurso.

Hay varios proyectos que comparten unos objetivos similares a los de BibPort. Hay una gran necesidad de extraer citas bibliográficas de los documentos disponibles de una búsqueda web y bibliotecas digitales2. Quizá el ejemplo más conocido es CiteSeer3, que es un popular sitio web que entiende citas en diferentes formatos para permitir la referencia cruzada de artículos de investigación.

Etiquetas

Noticias relacionadas

Comentarios

No hay comentarios.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Debes haber iniciado sesión para comentar una noticia.