Cross Model

From Apertium
Jump to navigation Jump to search
Main article: Crossdics

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:

  • $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 ($, @) 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