Compilación
Para compilar un autómata é necesario:
O ficheiro coa información das palabras.
Que debe ter o seguinte formato:
palabra_1[\tinformación_1][\tinformación_2]...\n
palabra_1[\tinformación_1][\tinformación_2]...\n
...
Donde \t representa unha tabulación, \n un salto de liña e os corchetes opcionalidade.
Por exemplo, definimos un dicionario con catro palabras no que asociamos o lema (forma canónica) ás palabras (formas), do seguinte modo:
desestimas\tdesestimar\n
tres\ttres\n
violeta\tvioleta\n
violetas\tvioleta\n
Neste caso, ademais, a información asociada ás palabras (lemas) non é de tipo numérica, e o que queremos é que eses lemas estean noutro autómata diferente, de maneira que, desde o primeiro dicionaro se referencie ao segundo.
Polo tanto, no noso caso definimos outro dicionario para os lemas, que non inclúen ningunha información:
desestimar\n
tres\n
violeta\n
O ficheiro de configuración para o compilador.
Neste caso, un para compilar os 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>
e outro para compilar as 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>
A DTD setup_nadfa.dtd pode verse no directorio src do paquete descargable. Describimos a continuación os atributos que pode incluír cada un dos seus elementos:
Executar:
$nadfac conf_lemas.xml
$nadfac conf_formas.xml
Onde conf_lemas.xml e conf_formas.xml son os arquivos de configuración descritos anteriormente para lemas e formas respectivamente.
Acceso:
Para ver como se realiza a carga en memoria e a utilización dos autómatas recomendamos botar un vistazo aos ficheiros libnadfa_bin_print.c e libndfa_bin.h. Este último mostra as funcións que exporta a libraría que xestiona os autómatas compilados.
De momento non dispoñemos dunha descrición completa documentada da API de acceso aos autómatas compilados. Farémolo en canto nos sexa posible.