Compilación
Para compilar un autómata es necesario:
El fichero con la información de las palabras.
Que debe tener el siguiente formato:
palabra_1[\tinformación_1][\tinformación_2]...\n
palabra_1[\tinformación_1][\tinformación_2]...\n
...
Donde \t representa una tabulación, \n un salto de línea y los corchetes opcionalidad.
Por ejemplo, definimos un diccionario con cuatro palabras en el que asociamos el lema (forma canónica) a las palabras (formas) del mismo, del siguiente modo:
desestimas\tdesestimar\n
tres\ttres\n
violeta\tvioleta\n
violetas\tvioleta\n
En este caso, además, la información asociada a las palabras (lemas) no es de tipo numérica, y lo que queremos es que esos lemas estén en otro autómata diferente, de manera que desde el primer diccionaro se referencie al segundo.
Por lo tanto, en nuestro caso definimos otro diccionario para los lemas, que no incluyen ninguna información:
desestimar\n
tres\n
violeta\n
El fichero de configuración para el compilador.
En este caso, uno para compilar los lemas:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE setup SYSTEM "setup_nadfa.dtd">
<setup path="./" output_binary_file="automata_lemas.bin">
<key file="lemas.txt" number_mappings="0"/>
</setup>
y otro para compilar las formas:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE setup SYSTEM "setup_nadfa.dtd">
<setup path="./" output_binary_file="automata_formas.bin">
<key file="formas.txt" mappings_number="2"/>
<info name="lema" function="word_to_index" automaton_id="2" type="guint32"/>
<input_automaton automaton_id="2" file="automata_lemas.bin"/>
</setup>
La DTD setup_nadfa.dtd puede verse en el directorio src del paquete descargable. Describimos a continuación los atributos que puede incluír cada uno de sus elementos:
Ejecutar:
$nadfac conf_lemas.xml
$nadfac conf_formas.xml
Donde conf_lemas.xml y conf_formas.xml son los archivos de configuración descritos anteriormente para lemas y formas respectivamente.
Acceso:
Para ver como se realiza la carga en memoria y utilización de los autómatas recomendamos echar un vistazo a los ficheros libnadfa_bin_print.c y libndfa_bin.h. Este último muestra las funciones que exporta la librería que gestiona los autómatas compilados.
De momento no disponemos de una descripción completa documentada del API de acceso a los autómatas compilados. Lo haremos en cuanto nos sea posible.