Difference between revisions of "Cross Model"

From Apertium
Jump to navigation Jump to search
m
Line 95: Line 95:
 
* <code>@tailA</code> and <code>@tailC</code> are also sequences of 0 or more <code><s n="..."/></code> elements, but, in this particular case, we store the value in a variable because we need to use it afterwards (in the <code>action</code> element).
 
* <code>@tailA</code> and <code>@tailC</code> are also sequences of 0 or more <code><s n="..."/></code> elements, but, in this particular case, we store the value in a variable because we need to use it afterwards (in the <code>action</code> element).
   
How to use these symbols (<code>?</code>,<code>*</code>) and variables (<code>$</code>, <code>@</code>) will be explained in a new section.
+
How to use these symbols (<code>?</code>,<code>*</code>) and variables (<code>$</code>, <code>@</code>) is explained in the section [[Cross_Model_Elements#Values_for_.3Cs.3E_element|Cross Model Elements]]
   
 
== See also ==
 
== See also ==

Revision as of 11:03, 8 February 2008

Main article: Crossdics

Cross Model

Defining cross actions

Cross actions are needed to cross certain language pairs correctly.

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.

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:

  • $cat is 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 the action element. Besides that, we force the value of the first element 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 more elements.
  • @tailA and @tailC are also sequences of 0 or more elements, but, in this particular case, we store the value in a variable because we need to use it afterwards (in the action element).

How to use these symbols (?,*) and variables ($, @) is explained in the section Cross Model Elements

See also

External links