Difference between revisions of "Cross Model"
Jump to navigation
Jump to search
m |
|||
| Line 11: | Line 11: | ||
<pattern> |
<pattern> |
||
<e> |
<e> |
||
<p> |
|||
<l>'''$lemmaA'''<s n="'''$cat'''"/><s n="'''@tailA'''"/></l> |
<l>'''$lemmaA'''<s n="'''$cat'''"/><s n="'''@tailA'''"/></l> |
||
<r>'''$lemmaB'''<s n="'''$cat'''"/><s n="'''*'''"/></r> |
<r>'''$lemmaB'''<s n="'''$cat'''"/><s n="'''*'''"/></r> |
||
| Line 17: | Line 17: | ||
</e> |
</e> |
||
<e> |
<e> |
||
<p> |
|||
<l>'''$lemmaB'''<s n="'''$cat'''"/><s n="'''*'''"/></l> |
<l>'''$lemmaB'''<s n="'''$cat'''"/><s n="'''*'''"/></l> |
||
<r>'''$lemmaC'''<s n="'''$cat'''"/><s n="'''@tailC'''"/></r> |
<r>'''$lemmaC'''<s n="'''$cat'''"/><s n="'''@tailC'''"/></r> |
||
| Line 26: | Line 26: | ||
<action> |
<action> |
||
<e> |
<e> |
||
<p> |
|||
<l>'''$lemmaA'''<s n="'''$cat'''"/><s n="'''@tailA'''"/></l> |
<l>'''$lemmaA'''<s n="'''$cat'''"/><s n="'''@tailA'''"/></l> |
||
<r>'''$lemmaC'''<s n="'''$cat'''"/><s n="'''@tailC'''"/></r> |
<r>'''$lemmaC'''<s n="'''$cat'''"/><s n="'''@tailC'''"/></r> |
||
Revision as of 09:35, 8 February 2008
- Main article: Crossdics
Contents
Cross Model
Default cross action
By default, the apertium-crossdics tool uses a simple cross model (schemas/cross-model.xml) defining only a default pattern-action rule.
<cross-model>
<cross-action id="default" a="ebenimeli">
<description>Default pattern</description>
<pattern>
<e>
<p>
<l>$lemmaA</l>
<r>$lemmaB</r>
</e>
<e>
<p>
<l>$lemmaB</l>
<r>$lemmaC</r>
</e>
</pattern>
<action-set>
<action>
<e>
<p>
<l>$lemmaA</l>
<r>$lemmaC</r>
</e>
</action>
</action-set>
</cross-action>
</cross-model>
In the example above:
$catis a variable that can store just one element (for example,). In this example we use a variable because we need to use the value in theactionelement. Besides that, we force the value of the firstelement to be the same. There is another symbol (?) that can be used if we don't want to use the value afterwards.- the symbol
*is a sequence of 0 or moreelements. @tailAand@tailCare also sequences of 0 or moreelements, but, in this particular case, we store the value in a variable because we need to use it afterwards (in theactionelement).
How to use these symbols (?,*) and variables ($, @) will be explained in a new section.
Defining additional cross actions
More specific cross actions might be needed in order to cross certain language pairs correctly. Defining a new cross schema with concrete pattern-action elements solves this problem.
These patterns and actions are described in XML, as follows:
<!DOCTYPE cross-model SYSTEM "crossmodel.dtd"> <cross-model> <cross-action id="pattern-1" a="author"> <pattern>...</pattern> <action-set>...</action-set> </cross-action> ... <cross-action id="pattern-n" a="author"> <pattern>...</pattern> <action-set>...</action-set> </cross-action> </cross-model>
Click on each element in the schema above or read more about cross model elements.
Example of pattern-action
Pattern
<cross-action id="pattern-1" a="ebenimeli">
<description>Pattern 1</description>
<pattern>
<e>
<p>
<l>$lemmaA</l>
<r>$lemmaB</r>
</e>
<e r="RL">
<p>
<l>$lemmaB</l>
<r>$lemmaC</r>
</e>
</pattern>
<action-set>
<action>
<e>
<p>
<l>$lemmaA</l>
<r>$lemmaC</r>
</e>
</action>
</action-set>
</cross-action>
Example of how this cross action could be applied.
See also
External links
- Full example of cross model.
- Cross model DTD