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.