Apertium-quality/Configuration
Contents
Apertium Quality XML Configuration Format[edit]
The Apertium Quality Configuration format is a fairly simple XML format for declaring which files are required for running an automatic test, or however another tool uses the data.
The format is essentially as follows:
<config> <test-type> <content attribs=stuff /> </test-type> <config>
Currently supported test types:
- coverage
- tagging
- regression
- morph
- generation
Currently supported content elements:
- test
- corpus
For a more detailed overview, see the schema.
Example[edit]
Here is a template of the XML file:
<config xmlns="http://apertium.org/xml/quality/config/0.1"> </config>
This simple document takes several elements dependant on the type of file you want to declare for each test.
<config xmlns="http://apertium.org/xml/quality/config/0.1"> <coverage> <corpus generator="gencrp.py" language="mt-he" path="relative-level-crp.txt" /> <corpus generator='someotherscript.bash' language="mt-he" path="../belowhere.crp.txt /> </coverage> <regression> <test language="mt-he" path="http://whatever/test.xml" /> <test language="mt-he" path="localfile.xml" /> </regression> </config>
Regression Test Format[edit]
The format for creating regression tests is extremely simple. It is
simply a Mediawiki template called test
.
Example[edit]
The parameters are pipe-delimited as follows:
{{test|<language>|<original text>|<expected result>}}
or
{{test|<language>|<original text>|<expected result>|<comment>}}
.
An example of usage:
* {{test|fr|I am three years old.|J'ai trois ans.|Checks correct verb use}}
The above shows up on the wiki as:
- (fr) I am three years old. → J'ai trois ans. :: Checks correct verb use.
Usage as Regression Test[edit]
In order to access your wiki page as a regression test, simply add Special:Export between wiki/ and your page name. For example, http://wiki.apertium.org/wiki/French_and_Breton/Regression_tests becomes http://wiki.apertium.org/wiki/Special:Export/French_and_Breton/Regression_tests. Simply paste that link as the parameter to aq-regtest and you're good to go.
Morph Test Format[edit]
The morph testing format is simply a YAML file (a markup similar to, but simpler than, JSON) with several directives of how your morphological tests should be conducted.
Here's the basic layout:
Config: CONFIG_OPT: App: application_to_run Gen: generation_file.fst Morph: morf_file.fst Tests: Name of test to be run: input: expected output more input: more expected output some input: [one output, another possible output]
As you can see, the string input doesn't require quotes to be considered a string, making writing these tests for programmers and non-programmers alike a breeze. Some strings must be quoted however, as you will see below.
Example[edit]
This is a real world example of how a test file can look:
Config: hfst: App: hfst-optimised-lookup Gen: ../tr-ky.autogen.hfst Morph: ../ky-tr.automorf.hfst Tests: "[twol] Мягкий знак deletion before suffix": июль<n><dat> : июлга "[twol] L desonorisation": адам<n><pl><nom> : адамдар адам<n><pl><nom>+э<cop><p3><sg> : адамдар адам<n><pl><nom>+э<cop><p3><pl> : адамдар "[twol] Double vowel harmony in suffix": дүйнө<n><rloc> : дүйнөдөгү "[lexc] 1st person singular possessive": ат<n><px1sg><nom> : атым ат<n><px1sg><nom>+э<cop><p3><sg> : атым ат<n><px1sg><nom>+э<cop><p3><pl> : атым салт<n><px1sg><nom> : салтым салт<n><px1sg><nom>+э<cop><p3><sg> : салтым салт<n><px1sg><nom>+э<cop><p3><pl> : салтым