Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
user:zeman:interset:how-to-write-a-driver [2007/10/01 17:38] zeman |
user:zeman:interset:how-to-write-a-driver [2008/03/06 16:28] zeman Correction: Actually this has already been implemented. |
| |
**Note:** This approach cannot encode situations where some combinations of feature values are plausible and some are not! For instance, if positions [2] and [3] in a tag encode gender and number, respectively, and if ''NNQW'' means a logical disjunction of the tags ''NNFS'' and ''NNNP'', then you cannot encode the situation in DZ Interset precisely. If you do not want to discard either ''NNFS'' or ''NNNP'' (by storing the other only), you can say that gender = ''F'' or ''N'' and number = ''S'' or ''P'' but by that you have also introduced ''NNFP'' and ''NNNS'' as possibilities. The approach may be revised in future. | **Note:** This approach cannot encode situations where some combinations of feature values are plausible and some are not! For instance, if positions [2] and [3] in a tag encode gender and number, respectively, and if ''NNQW'' means a logical disjunction of the tags ''NNFS'' and ''NNNP'', then you cannot encode the situation in DZ Interset precisely. If you do not want to discard either ''NNFS'' or ''NNNP'' (by storing the other only), you can say that gender = ''F'' or ''N'' and number = ''S'' or ''P'' but by that you have also introduced ''NNFP'' and ''NNNS'' as possibilities. The approach may be revised in future. |
| |
| |
| |
| |
... | ... |
$replacement = tagset::common::check_value($feature, $value, $permitvals); | $replacement = tagset::common::check_value($feature, $value, $permitvals); |
| </code> |
| |
| Alternatively, the following checks **and replaces** values of all features in a feature structure: |
| |
| <code perl> |
| tagset::common::enforce_permitted_values($fstruct, $permitvals); |
</code> | </code> |
| |
| |
See [[user:zeman:interset:Common Problems]] for a list of suggestions for phenomena difficult to match between tagsets and the Interset. | See [[user:zeman:interset:Common Problems]] for a list of suggestions for phenomena difficult to match between tagsets and the Interset. |
| |
| |
| |
| |
| |
===== Test your driver ===== | ===== Test your driver ===== |
| |
When you have written a driver for a new tagset, you should test it. The driver package contains a test script called ''driver-test.pl''. When running it, give the driver name as argument, without the ''tagset::'' prefix. You can also use the ''-d'' option to turn on debug messages (list of tags being tested): | When you have written a driver for a new tagset, you should test it. The driver package contains a test script called ''driver-test.pl''. When running it, give the driver name as argument, without the ''tagset::'' prefix. You can also use the ''-d'' option to turn on debug messages (list of tags being tested). |
| |
<code> | <code>driver-test.pl ar::conll</code> |
driver-test.pl ar::conll | |
</code> | Running ''driver-test.pl'' without arguments will list the drivers available on the system. |
| |
Note that only drivers implementing the ''list()'' function can be tested. | Note that only drivers implementing the ''list()'' function can be tested. |