Revision history for Perl extension AlignmentSet.


*************************************************************
*** NEW FEATURES of version 1.00                          ***
*************************************************************
- Now the modules are in the "Lingua::" namespace
- The EvaluationResult.pm module now is Lingua::AlignmentEval.pm
- en la funcin "compare" del modulo "AlignmentEval.pm",
  en las tablas en formato latex, la columna "AER" es ahora
  "AER (%)".


*************************************************************
*** NEW FEATURES of version "candidate #2 to version 1.0" ***
*************************************************************

- la funcin convert es ahora "privada" (en Perl slo es en 
  teora) y ha sido "separada" en 2 funciones:

 * chFormat: para slo cambios de formatos, sin tocar el 
   alineado. No se considera que imponer no-null-align o 
   null-align toca el alineado. chFormat no devuelve nada:

   $s2t->chFormat($newLocation[,$newFormat,$alignMode]);

 * processAlignment: para procesar el aligneado con alguna
   funcin del mdulo "Alignment.pm". Para ser ms fiel a la 
   idea de un AlignmentSet, devuelve un nuevo objeto 
   AlignmentSet, ya que el alineado ha cambiado:

   $union = $s2t->processAlignment(\&Alignment::getUnion,$newLocation[,$newFormat,$alignMode]);
   
 Note: la nica incompatibilidad con la versin anterior es que
 processAlignment devuelve ahora un objeto. La funcin convert
 sigue funcionando como antes pero se aconseja ya no usarla.
 	

- Si el hash location slo tiene la clave "sourceToTarget"
  (nica obligatoria), se puede pasar como argumento el
  path en vez de la referencia al hash:
 
 $alSet = AlignmentSet->new([["s2t_path","GIZA"]]);
	
  en vez de

 $alSet = AlignmentSet->new([[{"sourceToTarget"=>"s2t_path"},"GIZA"]]);

 (esta ltima sigue vlida) 


- Nuevas subs:

 * copy: la manera apropiada de copiar el contenido de un 
   AlignmentSet (no copia las direcciones de memoria):

   $sameContentAlSet = $alSet->copy;

 * setWordFiles: para proporcionar las palabras cuando es
   necesario (por ejemplo si el AlignmentSet ha sido definido
   slo con el archivo de links, hace falta aadir las palabras
   para vizualizarlo):

   $alSet= AlignmentSet->new([["myPath"]]);
   ...	
   $alSet->setWordFiles($sourcePath,$targetPath);
   $alSet->visualise(...);

 * setTargetToSourceFile: lo mismo:

   $alSet->setTargetToSourceFile($targetToSourcePath);

 * Alignment::forceGroupConsistency: prohibits situations of the type: if linked(e,f) and linked(e',f) and linked
   (e',f') but not linked(e,f'). In this case the function links e and f'.


- Ahora, si un archivo o directorio tiene que ser creado (para
  escribir el alineado en nuevo formato, por ejemplo), es creado
  as como todo el arbl de directorios necesarios (antes slo se 
  creaba si el ltimo nivel ya exista).


- Cambios en la funcin "visualise", representation "matrix":
 * es ahora posible usar una marca personalizada
 * todas las marcas son compatibles con un alineamiento
   targetToSource, que aparece con marcas giradas de 90
   hacia la izquierda (con respecto a las marcas sourceToTarget).


- CORRECCIN DE BUGS:
 * funcionamiento erroneo de Alignment::forceNullAlign
   (accionada si $alignMode="null-align")
 * error en el tratamiento de archivos de links NAACL
   conteniendo par(es) de frase(s) sin link.


*************************************************************
*** NEW FEATURES of version "candidate #1 to version 1.0" ***
*************************************************************

--> 1. En todos formatos puede haber sourcetotarget and targettosource alignments.
Esto implica cambiar las claves del hash "location":

para NAACL:
"alignment" se cambia por "sourceToTarget" and "targetToSource"

par BLINKER:se aprovecha para hacerlo menos rigido: ahora se especifica
source: entire path of raw text source file
target (optional)
sourceToTarget: directory
targetToSource: directory

--> 2. El unico campo obligatorio del hash "location" es el que dice donde esta el archivo de aligneado: "sourceToTarget". Si solo se trabaja con los links ya no hace falta especificar tambien el source y target (para evaluar, por ejemplo).

--> 3. Sobre los nmeros de pares de frases (sentence pair number):

hay un nmero externo (inputSentPairNum) que es el que se lee del archivo de entrada (si la entrada son los pares 25 a 50, inputSentPairNum va de 25 a 50).
Tambien se necesita un nmero interno (internalSentPairNum), que siempre empieza a 1.
Si en una proxima version se hace possible definir un AlignmentSet desde varios conjuntos de archivos de entrada (por ejemplo los 50 pares de un archivo giza A y los 100 de un archivo giza B), por fuerza la numeracion interna tendra que ser diferente de la de entrada.

Por lo tanto, internalSentPairNum se debe usar por defecto en todos los archivos de salida (dejando la posibilidad, para ciertos formatos, de usar inputSentPairNum para la salida ?).

Ahora la funcin evaluate tambin usa internalSentPairNum: compara el par de frases ensimo que le llega con el ensimo de la referencia, cual sea el nmero que tienen en el archivo de entrada.
 Una excepcin: si el formato es NAACL y el alignMode "as-is", porque en este caso lee a saco las lineas de links de la entrada y los compara tal cual, sin usar la estructura interna.







