Differences
This shows you the differences between two versions of the page.
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/09/26 20:32] zeman Inventing new feature values. |
user:zeman:interset:how-to-write-a-driver [2007/10/01 13:51] zeman Link fix. |
||
---|---|---|---|
Line 11: | Line 11: | ||
This function has one string argument, the tag. The function returns a reference to a hash of features (feature names are hash keys to the feature values). | This function has one string argument, the tag. The function returns a reference to a hash of features (feature names are hash keys to the feature values). | ||
- | The decoder is not obliged to set any feature. If the decoder decides to set a feature, it should be one of the pre-defined values. This can be checked by a central procedure. However, it is not mandatory, so if the appropriate value is not available, you can use your own, but please do **[[zeman@ufal.mff.cuni.cz|let me know]]** so I can update the central value pool accordingly. (If you set a value that is not documented as a part of the universal set, no one else can benefit from it. If you combine your driver with another driver to convert from your tag set to the other, the other driver' | + | The decoder is not obliged to set any feature. If the decoder decides to set a feature, it should be one of the pre-defined values. This can be checked by a central procedure. However, it is not mandatory, so if the appropriate value is not available, you can use your own, but please do **[[zeman@ufal.mff.cuni.cz|let me know]]** so I can update the [[features|central value pool]] accordingly. (If you set a value that is not documented as a part of the universal set, no one else can benefit from it. If you combine your driver with another driver to convert from your tag set to the other, the other driver' |
If the tagset encodes features separately (e.g., each character is a value of a particular feature): The decoder should be tolerant to unexpected combinations of features (or should be able to be tolerant if asked for it). | If the tagset encodes features separately (e.g., each character is a value of a particular feature): The decoder should be tolerant to unexpected combinations of features (or should be able to be tolerant if asked for it). | ||
+ | |||
+ | |||
===== encode() ===== | ===== encode() ===== | ||
Line 19: | Line 21: | ||
This function has one argument, a reference to a hash of features (feature names are hash keys to the feature values). The function returns a string - the tag. | This function has one argument, a reference to a hash of features (feature names are hash keys to the feature values). The function returns a string - the tag. | ||
- | The encoder should be able to process all possible values from the central pool. If the tagset does not recognize a value, the most appropriate substitute should be chosen. | + | The encoder should be able to process all possible values from the [[features|central pool]]. If the tagset does not recognize a value, the most appropriate substitute should be chosen. |
- | Since any feature can in theory have an array of values instead of a single value, the encoder should either be prepared to arrays (more precisely: array references) anywhere, or call tagset:: | + | Since any feature can in theory have an array of values instead of a single value, the encoder should either be prepared to arrays (more precisely: array references) anywhere, or call '' |
- | **WARNING: | + | **WARNING: |
===== list() ===== | ===== list() ===== |