PROGRAMAS INFORMÁTICOS PARA LA CRÍTICA TEXTUAL

 

FRANCISCO MARCOS MARÍN Y MARÍA PILAR SALAMANCA FERNÁNDEZ

 

El ordenador puede facilitar la investigación filológica. La metodología y los programas utilizados para preparar la edición unificada del Libro de Alexandre constituyen una experiencia nráctica crue muestra estas posibilidades.

 

La utilización del ordenador en trabajos filológicos puede aliviar mucho la carga mecánica del investigador, facilitando su tarea. Esto es especialmente visible cuando se trata de ediciones que han de tener en cuenta distintas versiones, escritas no pocas veces con variantes dialectales, o con diferencias debidas a las distintas épocas en que se realizaron las copias. Al preparar la edición unificada de una obra de la literatura castellana del siglo XIII, el Libro de Alexandre, conservado en un manuscrito del siglo XIV con rasgos leoneses y otro del XV con rasgos orientales (riojanos y aragoneses), se creó un conjunto de programas y disposit.vos lógicos para facilitar la tarea del editor y asegurar la fiabilidad de los resultados. A partir de este conjunto se ha ido desarrollando otro más amplio y preciso, que presentamos ahora1.

Los procedimientos en uso son excesivamente exigentes en lo que concierne a la transcripción y a la pre‑edición del texto. UNITE no requiere ninguna clase de pre‑edición. Para la transcripción, recomendamos que se sigan las normas del Seminario de Estudios Medievales de Madison (Wisconsin) y que se eviten todos los signos que no forman parte del teclado básico (es decir, el de una máquina de escribir con teclado inglés) como tildes y acentos. Téngase en cuenta que es mucho más sencilla la reconversión desde signos de este teclado, visibles en cualquier sistema, que desde unos hexadecimales peculiares de uno de ellos, que pueden sufrir transformaciones impredecibles en los procesos de copia o traslado de un sistema a otro.

Observada la norma de transcripción o, en su defecto, hechos explícitos los criterios de la misma, si difieren, para que se puedan hacer las transformaciones oportunas, debe tenerse en cuenta que el conjunto de programas de UNIFICACION TEXTUAL (UNITE) puede actuar sobre textos en verso que comiencen por tres líneas en blanco y que estén organizados en unidades como mínimo de un verso y como máximo de cinco, separadas por una línea en blanco de la unidad siguiente. Los programas tratan, en principio, hasta seis versiones distintas, pero pueden corregirse con facilidad para tratar el número que se indique, lo mismo sucede para las unidades o conjuntos de versos.

 

EL PAQUETE DE FICHEROS UNITE

 

Este conjunto de ficheros se puede dividir en dos grupos, según realice la entrada de datos desde la pantalla o desde el fichero DAT UNIT DATOS. Tanto uno como otro utilizan los ficheros llamados FTEXi SCRIPT (1 < i< 7), en los que están almacenadas las versiones que se van a comparar.

Los ficheros FTEXi SCRIPT A contienen las versiones que se van a comparar en el proceso de unificación automática. El máximo de versiones que se permiten en el programa es 6, por tanto, existen seis ficheros FTEXI (FTEX1..FTEX6). Dentro de este límite se utilizarán aquellos que sean necesarios, según el número de textos que se quieran comparar. La prioridad de cada versión a la hora de la comparación depende del nombre del fichero en el que esté almacenada y va en orden descendente desde el FTEXI hasta el FTEX6.

 

Reglas para el almacenamiento de las versiones

 

‑ Las tres primeras líneas de los ficheros no serán tenidas en cuenta por el programa, pueden ser utilizadas por el usuario para identificar la versión que se va a almacenar en el fichero.

‑ Los textos deben estar compuestos por conjuntos de versos a los que, por comodidad, llamaremos estrofas, cada una de las cuales puede tener un número variable de versos. Por ahora el máximo de versos está fijado en 5, el mínimo es 1. Se trata del estándar, no de los límites del sistema.

‑ Entre estrofa y estrofa debe haber una línea en blanco de separación y sólo una.

‑ En el final del fichero puede existir como máximo una línea en blanco a partir de la última estrofa.

 

Formato de la estrofa

 

‑ Cada estrofa debe tener un número asignado que figurará al menos en la línea correspondiente al primer verso de dicha estrofa.

‑ La distancia desde el principio de la línea a la numeración, la longitud máxima de dicha numeración, así como la distancia desde ésta al principio del verso propiamente dicho son optativas, pero constantes. Es muy importante que estos valores se correspondan con los aportados al programa en DAT_UNIT o en la pantalla.

‑ El versó propiamente dicho debe comenzar en la misma columna en todos los versos de la estrofa, es decir en aquella correspondiente a la suma de los parámetros: margen antes de la numeración, longitud máxima de ésta y distancia de dicha numeración al principio del verso.

‑ Las palabras pertenecientes a un verso deben estar separadas por un único espacio en blanco, ya que el fin del verso se detecta cuando se llega al fin del línea o a dos espacios blancos seguidos.

‑ Si falta un verso completo en una estrofa, esta línea no se debe dejar en blanco, sino rellenarse con los caracteres: .‑.‑.‑. (punto y guión).

‑ No es necesario que las estrofas estén ordenadas según su numeración, ya que se puede utilizar para ordenarlas el módulo SORT_EST.

El programa UNITE compara los versos en el interior de la estrofa, aunque estén en orden distinto.

 

Como paso previo a la ejecución de cualquiera de los dos grupos de programas, se debe utilizar el módulo SORT_EST MODULE.

 

Resumen del programa SORT_EST

 

Nos ordena de mayor o menor las estrofas copiadas en un fichero. Si el número de dos estrofas coincide, las deja tal y como las encuentra.

Este programa trabaja con ficheros llamados DESORD SCRIPT A, que contienen el texto con las estrofas que queremos ordenar. Además, son necesarios dos ficheros auxiliares, con cualquier contenido, que el programa desechará al final del proceso. Sólo permanecerá el fichero DESORD SCRIPT A con las estrofas ordenadas.

En este fichero se debe escribir el número de la estrofa en las cuatro primeras posiciones de línea. Es necesario escribir el texto desde el comienzo del fichero, es decir, no puede dejarse ninguna línea en blanco al principio y, al final, sólo una.

 

Ejecución con el fichero DAT_UNIT DATOS

 

El fichero DAT_UNIT DATOS se utiliza para que el usuario pueda controlar la ejecución del programa. En este fichero se pide una serie de valores y se indica en qué lugares se deben teclear las respuestas. Conviene recordar que DAT_UNIÓ sólo se puede modificar en los espacios reservados para respuestas.

Además de este fichero existen también UNITE1 PASCAL y el módulo generado a partir de él, UNITE1 MODULE. Integran también el grupo de ficheros los EXEC COMPUNI1 (compila en BATCH el programa UNITE1, su ejecución no es necesaria puesto que ya está generado UNITE1 MODULE) y EJECUNI1, que ejecuta en el BATCH el módulo de UNITE1.

 

El fichero DAT_UNIT DATOS

 

Se trata de un fichero de entrada de datos. En aquellos apartados en los que se pidan datos que, por respuestas anteriores, no son necesarios no hay que insertar nada. Este fichero sólo se puede modificar en los espacios reservados para las respuestas.

Introducir siempre el dato en el espacio indicado por à

 

Establecer si se deben ejecutar los procesos de ayuda a la selección

 

Ejecución de unión de palabras (s/n) à s

Ejecución de separación de palabras (s/n) à s

Ejecución de unificar varias posiciones de una palabra (s/n)? à s

Ejecución de formación de palabras a partir de letras comunes de otras (s/n) à s

 

Introducir los siguientes valores generales:

 

Deben aparecer las estrofas originales en la salida (s/n): à n

Número de versiones originales: à 6

Número de estrofa para comienzo de ejecución: à 1

Número de fases de unificación (1‑5): à 5

Mínimo de palabras comunes (todas vacías) entre dos versos para no tomarlos como descolocados: à 3

Número de espacios desde el principio hasta la numeración de las

estrofas: à 0

Longitud de la numeración: à 4

Distancia desde el final de la numeración hasta el principio de la

estrofa: à 7

Radio de acción del proceso union de_palabras_

(número recomendado 4): à 4

Radio de acción del proceso de separación de_palabras (número recomendado 4): à 4

Radio de acción de unifica_posiciones (se recomienda entre 4 y 6): à 5

Radio de acción de letras_comunes (se recomienda 3): à 3

 

Introducir el mínimo de versiones de coincidencia:

 

Se trata del mínimo de versiones en las que debe coincidir una palabra para ser seleccionada, según las versiones que se estén comparando.

 

Mínimo de versiones cuando comparemos 2

textos: à 2

Mínimo de versiones cuando comparemos 3

textos: à 2

Mínimo de versiones cuando comparemos 4

textos: à 3

Mínimo de versiones cuando comparemos 5

textos: à 3

Mínimo de versiones cuando comparemos 6

textos: à 4

 

Introducir los códigos de las fases de unificación:

 

Los códigos se introducirán en el orden que se desee. Las fases van numeradas del 1 al 5 y son las siguientes:

 

1. Fase inactiva

2. Elimina signos de puntuación

3. Cambio de mayúsculas y vocales acentuadas

4. Unificación de caracteres y grupos de caracteres hacia formas generales

5. Simplificación de letras consecutivas iguales dentro de una palabra

 

El número que sigue a la à es el código de la fase. El orden de aplicación depende de la voluntad del usuario. Ejemplificamos con el orden normal, creciente, de 1 a 5, pero nada impediría un orden decreciente, del 5 al 1, o mixto (3,4,2,5, 1). Téngase en cuenta que la fase 1 es útil sólo cuando se aplica en primer lugar.

 

Código de la primera fase aplicable: à 1

Código de la segunda fase aplicable:à 2

Código de la tercera fase aplicable:  à 3

Código de la cuarta fase aplicable:   à 4

Código de la quinta fase aplicable:   à 5

 

Pasos para la ejecución:

 

1. Preparar los ficheros FTEXi

2. Editar el fichero DAT_UNIT DATOS y modificar si es necesario las respuestas.

3. Ejecutar el programa. La ejecución se puede hacer de dos formas: en nuestra máquina virtual o utilizando el BATCH, esta última normalmente se utilizará para procesos con textos muy largos.

a. UNITE1 para la primera

b. SUBMIT EJECUNI1 (el i di no sec 36) para  el BATCH.

(las opciones del exec SUBMIT se pueden modificar)

El resultado de esta ejecución queda almacenado en el fichero FIRE SALUNIF, que aparecerá en el FILEList, o en el READER si se ha ejecutado en el BATCH.

 

Ejemplo del proceso de unificación

 

Versiones de la estrofa por unificar2

 

Enpec´ol Aristotiles com<m>o om-e bien honrrado

    fijo dixol en buena hedat sodes vos

    llegado pora seyer ome bueno tu lo as agujsado

    sy leuar lo qujers com<m>o lo as empec´ado

 

2. Comec´o don Aristotil cuemo Cumbre ombr<e> bie<n> letrado

    fijo a bona edat sodes embiado

    de seer ombre bueno tenedes lo bien guisado

    si leuar lo q<ui>sierdes cuemo auedes co<m>pec'ado

 

4. Comenzó Aristotiles, como ome bien lenguado,

    é dicho: fijo, á buena edad eres llegado

    de seer ome bueno: fazlo bien á guisado,

    si llevarlo quisieres como has comenzado

 

5. comenc'o Aristotiles como onbre bien lenguado

    e dixo fijo a buena heres llegado

    de ser honbre bueno faslo bien agujsado

    sy lleuarlo qujsjeres como as comenc´ado

 

Observaremos el proceso de unificación, paso por paso, en los versos primero y tercero.

 

Proceso de unificación del primer verso

 

Ejecución del primer intento de selección

 

En esta primera etapa, el programa sólo conserva las coincidencias absolutas, es decir, las palabras que aparecen en la misma posición y con la misma forma en todas las versiones. En este primer verso son tres: Aristotiles, como, bien.

 

51  A          Aristotiles como          bien

     /lenpesol/                   /14ome/      /lonrado/

     /2comeso//2don/ /2aristotil//2cuemo//2omure//2bien//2letrado/

     /45comenso/                                 /45lenguado/

                                            / 5onure/

 

Ejecución de Unifica_Posiciones

 

Dentro del radio de acción seleccionado en DAT_UNIT, el programa elige las palabras que, teniendo la misma forma, aparecen en distinta posición. En este caso, la palabra es bien, que ya aparecía en el texto común al estar en tres textos, y que ahora desaparece de la zona de formas no comunes bajo el verso unificado.

 

51  A           Aristotiles como          bien

     /lenpesol/                   /14ome/     /lonrado/

     /2comeso//2don/ /2aristotil//2cuemo//2omure//2letrado/

     /45 comenso/                             /45lenguado/

                                             /5onure/

 

Ejecución de Letras_Comunes. Fase= 1

 

Mediante la ejecución de letras comunes, se recogen aquellas coincidencias de caracteres que aparecen en la misma posición, aplicando las sucesivas fases: 1, una letra no común, 2, dos letras no comunes, y así hasta tres. Las posiciones que el programa no puede unificar se señalan con guiones.

 

51  A come_so Aristotiles como           bien

      /lenpesol/                 /14ome/      /lonrado/

                   /2don/ /2aristotil//2cuemo//2omure//2letrado/­

                                                   /45lenguado/

                                          /5onure/

 

Ejecución de Letras Comunes. Fase= 2

 

51  A come_so Aristotiles como om_e bien

      /lenpeso1/                               /lonrado/

                    /2don/ /2aristotil//2cuemo/     /2letrado/

                                                     /45lenguado/

                                           /5onure/

 

Ejecución de Letras Comunes. Fase= 3

 

51  A come_so Aristotiles como om_e bien le_ado

      /lenpesol/                                 /lonrado/

                   /2don/ /2aristotil//2cuemo/

                                            /5onure/

 

Proceso de unificación del tercer verso

 

Ejecución del primer intento de selección

 

En este caso, se recogen tres palabras: de, ser, bueno. La selección de ser se realiza del siguiente modo: en el fichero DAT_UNIT habíamos establecido en tres el número de coincidencias entre versiones para que una palabra fuera seleccionada. En una primera lectura de las cuatro versiones del tercer verso, el programa no encuentra esas tres semejanzas necesarias, por lo que avanza en la aplicación de las distintas fases que hemos codificado de uno a cinco. La última de ellas corresponde a la simplificación de letras consecutivas iguales dentro de una palabra. Ello hace idénticas las formas del verbo "ser" de las tres últimas versiones, con lo que el programa puede realizar la selección correspondiente.

 51  C de ser              bueno

       /1pora//1seier//14ome//1tu//12lo//las//laguisado/

                 /2omure/     /2tenedes/ /2bien//24guisado/

                                   /45faslo//45bien//4a/

                 /5onure/                      /5aguisado/

 

Ejecución de Unifica_Posiciones

 

51  C de ser           bueno           bien

      /1pora//1seier/14ome//1tu//121o//las//15aguisado/

                /2omure/     /2tenedes/              /24guisado/

                                  /45faslo/     /4a/

                /5onure/

 

Ejecución de Une_Palabras. Fase= 1

 

El programa une en una palabra los caracteres que aparecen separados en el interior de algún verso, pero unidos en los demás. En las cuatro versiones hemos encontrado la forma guisado, que, por su frecuencia, sería suficiente para ser seleccionada. Ahora bien, en dos casos la palabra es aguijado El programa, respetando nuevamente el radio de acción que le ha sido indicado, busca el elemento que falta en los otros casos y procede a su unión en la forma aguisado

 

51  C de ser           bueno          bien           aguisado

      /1pora//1seier/14ome//1tu//121o//1as/

                /2omure/       /2tenedes/

                                    /45faslo/

               /5onure/

 

Ejecución de Separa_Palabras. Fase= 1

 

En este caso, asistimos al proceso inverso. La forma 1o, común a los cuatro versos, aparece en dos casos precedida por fas (las grafías de faz y fas han sido unificadas). Serían necesarias tres apariciones, por lo que el programa desestima la unión y separa la forma 1o

 

51  C de ser           bueno           lo bien           aguisado

       /1pora//1seier/14ome//1tu/        /1as/

                 /2omure/     /2tenedes/

                                    /45 (fas)/

                 /5onure/

 

Ejecución de Letras Comunes Fase= 2

 

 51  C de ser om_e bueno_as lo bien aguisado

       /1pora//1seier/     /1tu/

                              /21tenedes/

         /5onure/

 

 ESTROFA UNIFICADA COMPLETA

(Tal como aparece en FILE SALUNIF)

 

51  A come_o aristotiles como om_e bien le_ado

      /1enpesol/                                 /1onrado/

                    /2don/    /2aristotil//2cuemo/

                                           /5onure/

51  B fijo dixo_e_a buena eda_ llegado

                               /12sodes//1uos/

                      /2uona/    /2enuiado/

                                               /45eres/

C de ser om_e bueno_as lo bien aguisado

      /1pora//1eiser/    /1tu/

                                /2tenedes/

                /5onure/

51  D si leuarlo quisie_res como as co_nsado

                                   /1quieres//11o/ /1enpesado/ 

                                       /2cuemo//2auedes/

 

Otras facilidades mecánicas

 

Tras la unificación automática de las versiones, podemos facilitarnos más la tarea y acercarnos a la etapa última, la labor filológica que requerirá toda la dedicación del editor humano. Los pasos que podemos seguir son:

 

1. RENACE FILE SALUNIF* UNxxxxxx  SCRIPT*

Rebautizar el fichero nos permitirá procesarlo con HTML y SCRIPT/VS.

2. COPYfÍle UNxxxxx SCRIPT * axxxxxx=*

De este modo, disponemos de dos ficheros: utilizaremos el primero para futuras búsquedas a la hora de decidir entre variantes, el segundo será nuestro fichero de trabajo.

Ejecutaremos FNMAC XEDIT sobre el fichero @xxxxxx. Entre otras cosas, esta macro suprime la numeración de cada verso y la repetición de la numeración de la estrofa, que se conservará sólo en el primer verso, y da el formato de la nota crítica, según los parámetros de GML y SCRIPT/VS.

 

CONCLUSIóN

 

El conjunto UNITE tiene una serie de características propias que deben destacarse: la primera es que no requiere ningún tipo de manipulación o preparación del texto por parte del editor humano. No lleva marcas editoriales de ninguna clase, ni está sometido a ninguna preedición o restricción. La segunda es que, gracias al fichero DAT_UNIT DATOS, el investigador puede pedir al programa que actúe dentro de una gran variedad de posibilidades: comparación parcial, mantenimiento o supresión de las diferencias de grafía y puntuación, radio de búsqueda y ejecución de ciertas rutinas o partes del programa a su gusto o necesidad, mayor o menor exigencia de igualdad para la selección de lo común y preparación de la tabla de palabras vacías como se desee. No olvidemos que el ordenador no hace la edición definitiva, sino que proporciona al editor humano los materiales que éste le pide, preparados como el editor humano desee. El texto resultante, por supuesto, no se presenta al lector con ninguna

extraña transformación gráfica, sino que recobra su apariencia gráfica original, siguiendo, también, las pautas que la persona que prepara la edición le marque. La automatización del proceso puede llegar a ser muy grande, si se comparan varios textos, e incluso total, sin embargo, no se ha pensado que UNITE llegue normalmente a esos extremos, sino que los investigadores tomen las últimas decisiones (incluida la de la total automatización, en ciertos casos).

La detallada descripción de las distintas etapas del trabajo pretende ofrecer a los investigadores las mayores precisiones sobre lo que se puede esperar de la metodología y del conjunto de programas. Debe tenerse en cuenta que el diseño permite, con suma facilidad, su adaptación a necesidades que no sean idénticas a las descritas, sino variaciones de las mismas. Tampoco es imprescindible que los textos estén escritos en castellano, ni siquiera en una lengua románica. La colaboración en este terreno permitirá, sin duda, un mayor desarrollo de nuevas técnicas filológicas.