Difference between revisions of "Cross-model ro"

From Apertium
Jump to navigation Jump to search
 
(5 intermediate revisions by one other user not shown)
Line 20: Line 20:
</cross-action>
</cross-action>
</cross-model>
</cross-model>

Faceţi click pe oricare element din schema de mai sus sau citiţi mai mult despre [[Cross Model Elements ro|elementele unui model de încrucişare]].


=== Exemplu de acţiune-tipar (pattern-action) ===
=== Exemplu de acţiune-tipar (pattern-action) ===
Line 93: Line 91:
* Eticheta <code><t/></code> este o secvenţă de 0 sau mai multe elemente <code><s n="..."/></code>.
* Eticheta <code><t/></code> este o secvenţă de 0 sau mai multe elemente <code><s n="..."/></code>.
* <code><t n="tailA"/></code> şi <code><t n="tailC"/></code> sunt de asemenea secvenţe de 0 sau mai multe elemente <code><s n="..."/></code>, dar, în acest caz particular, stocăm valoarea într-o variabilă pentru că trebuie să o folosim apoi (în elementul <code>action</code>).
* <code><t n="tailA"/></code> şi <code><t n="tailC"/></code> sunt de asemenea secvenţe de 0 sau mai multe elemente <code><s n="..."/></code>, dar, în acest caz particular, stocăm valoarea într-o variabilă pentru că trebuie să o folosim apoi (în elementul <code>action</code>).
=Elemente=

==Elementul <code>cross-model</code> ==

Elementul <code>cross-model</code> este un set de acţiuni de încrucişare (elemente <code>cross-action</code>).

<!DOCTYPE cross-model SYSTEM "crossmodel.dtd">
<'''cross-model'''>
<'''cross-action''' id="pattern-1" a="author">
...
</'''cross-action'''>
<'''cross-action''' id="pattern-2" a="author">
...
</'''cross-action'''>
...
<'''cross-action''' id="pattern-n" a="author">
...
</'''cross-action'''>
</'''cross-model'''>

== Elementul <code>cross-action</code> ==

Fiecare acţiune de încrucişare este formată dintr-o pereche (pattern,action-set).

<'''cross-action''' id="pattern-1" a="author">
<description>Cross action 1</description>
<'''pattern'''>
...
</'''pattern'''>
<'''action-set'''>
<action>
...
</action>
...
<action>
...
</action>
</'''action-set'''>
</'''cross-action'''>

==Elementul <code>pattern</code>==
<!--
Elementul <code>pattern</code> defineşte "cum" vor arăta elementele care vor fi încrucişate.
-->

'''<pattern>'''
''&lt;!-- Element in bilingual dictionary AB-->''
'''<e>'''
&lt;p>
<l>$lemmaA<s n="..."/>...<s n="..."/></l>
<r>$lemmaB<s n="..."/>...<s n="..."/></r>
</p>
'''</e>'''
''&lt;!-- Element in bilingual dictionary BC-->''
'''<e''' r="RL"'''>'''
&lt;p>
<l>$lemmaB<s n="n"/>...<s n="..."/></l>
<r>$lemmaC<s n="n"/>...<s n="..."/></r>
</p>
'''</e>'''
'''</pattern>'''

==Elementul <code>action-set</code>==

Elementul <code>action-set</code> este o listă de acţiuni care vor fi executate când o pereche de elemente candidate sunt conform tiparului (pattern-ului).

'''<action-set>'''
'''<action>'''
<e>
&lt;p>
<l>$lemmaA<s n="n"/><s n="..."/>...<s n="..."/></l>
<r>$lemmaC<s n="n"/><s n="..."/>...<s n="..."/></r>
</p>
</e>
'''</action>'''
'''<action>'''
...
'''</action>'''
'''</action-set>'''

== Valori pentru elementul <code>&lt;s></code> ==

=== Simboluri ===

<e>
&lt;p>
<r>$lemmaA<s n="adj"/></l>
<r>$lemmaB<s n="adj"/></r>
</p>
</e>

Folosiţi simboluri (precum în <code><s n="adj"/></code>) pentru a potrivi elementul.

=== Variabile ===

Există două tipuri de variabile:

* '''Eticheta <code><v n="..."/></code>''': un element <code>&lt;s></code>. De exemplu, <code><v n="cat"/></code> se poate referi la <code>&lt;s n="adj"/></code>. Valoarea "adj" va fi stocată în variabila "cat".
* '''Eticheta <code><t n="..."/></code>''': este folosită pentru a indica secvenţa unor elemente <code>&lt;s></code>. În acest caz, <code><t n="tail"/></code>, se poate referi la secvenţa <code><s n="n"/><s n="m"/><s n="sg"/></code>. Secvenţa "n.m.sg" va fi stocată în variabila "tail".

Exemplu:

<e>
&lt;p>
<l>$lemmaA<v n="'''cat'''"/><t n="'''tailA'''"/></l>
<r>$lemmaB<v n="cat"/><t/></r>
</p>
</e>

Dacă nu folosiţi valoarea <code><v...></code> sau <code><t...></code>, nu definiţi niciun atribut <code>n</code>, astfel:
* '''<code><v/></code>''': 1 element <code><s n="..."/></code>.
* '''<code><t/></code>''': 0 sau mai multe element(e) <code><s n="..."/></code>.

Exemplu:

<e>
&lt;p>
<l>$lemmaA<s n="n"/>'''<v/>'''<s n="sg"/></l>
<r>$lemmaB<s n="n"/>'''<t/>'''</r>
</p>
</e>

În exemplul de mai sus, <code><v/></code> poate fi <code><s n="m"/></code>, <code><s n="f"/></code>, etc, dar valoarea nu este stocată într-o variabilă pentru că nu este folosită în nicio acţiune de încrucişare (cross action).


These special tags are explained in the section [[Cross_Model_Elements#Values_for_.3Cs.3E_element|Cross Model Elements]]


== Vezi şi ==
== Vezi şi ==
Line 100: Line 220:


== Linkuri externe ==
== Linkuri externe ==
* Exemplu complet de [http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-crossdics/schemas/cross-model.xml?view=markup&sortby=date cross model].
* Exemplu de [http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-crossdics/schemas/cross-model.xml?view=markup&sortby=date cross model] complet.
* [http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-crossdics/schemas/crossmodel.dtd?view=markup&sortby=date Cross model DTD]
* [http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-crossdics/schemas/crossmodel.dtd?view=markup&sortby=date Cross model DTD]



[[Category:Dixtools]]
[[Category:Documentaţie în română]]

Latest revision as of 10:26, 3 September 2011

Main article: Crossdics

Cross Model[edit]

Definirea acţiunilor de încrucişare (cross actions)[edit]

Acţiunile de încrucişare sunt necesare pentru încrucişarea corectă a perechilor de limbi.

Aceste tipare şi acţiuni sunt descrise în XML. De exemplu:

<!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>

Exemplu de acţiune-tipar (pattern-action)[edit]

Tipar[edit]

<cross-action id="pattern-1" a="ebenimeli">
  <description>Pattern 1</description>
  <pattern>
    <e>
      <p>
        <l>$lemmaA<v n="X"/></l>
        <r>$lemmaB<v n="Y"/></r>

    </e>
    <e r="RL">
      <p>
        <l>$lemmaB</l>
        <r>$lemmaC</r>

    </e>
  </pattern>
  <action-set>
    <action>
      <e>
        <p>
          <l>$lemmaA<v n="X"/></l>
          <r>$lemmaC<v n="Y"/></r>

      </e>
    </action>
  </action-set>
</cross-action>

Exemplu cum această acţiune de încrucişare ar putea fi aplicată.

Acţiune de încrucişare implicită[edit]

Implicit, unealta apertium-crossdics foloseşte un model de încrucişare simplu (schemas/cross-model.xml). Acesta defineşte o singură regulă pattern-action.

<cross-model>
  <cross-action id="default" a="ebenimeli">
    <description>Default pattern</description>
    <pattern>
      <e>
        <p>
          <l>$lemmaA<v n="cat"/><t n="tailA"/></l>
          <r>$lemmaB<v n="cat"/><t/></r>

      </e>
      <e>
        <p>
          <l>$lemmaB<v n="cat"/><t/></l>
          <r>$lemmaC<v n="cat"/><t n="tailC"/></r>

      </e>
    </pattern>
    <action-set>
      <action>
        <e>
          <p>
            <l>$lemmaA<v n="cat"/><t n="tailA"/></l>
            <r>$lemmaC<v n="cat"/><t n="tailC"/></r>

        </e>
      </action>
    </action-set>
  </cross-action>
</cross-model>

În exemplul de mai sus:

  • <v n="cat"/> este o variabilă care poate reţine doar un element (de exemplu, ). În acest exemplu am folosit o variabilă deoarece avem nevoie să folosim valoarea în elementul action. Mai forţăm şi valoarea primului element să fie identică. Acolo mai este un simbol (<v/>) care poate fi folosit dacă nu vrem să folosim apoi valoarea.
  • Eticheta <t/> este o secvenţă de 0 sau mai multe elemente .
  • <t n="tailA"/> şi <t n="tailC"/> sunt de asemenea secvenţe de 0 sau mai multe elemente , dar, în acest caz particular, stocăm valoarea într-o variabilă pentru că trebuie să o folosim apoi (în elementul action).

Elemente[edit]

Elementul cross-model[edit]

Elementul cross-model este un set de acţiuni de încrucişare (elemente cross-action).

<!DOCTYPE cross-model SYSTEM "crossmodel.dtd">
<cross-model>
  <cross-action id="pattern-1" a="author">
  ...
  </cross-action>
  <cross-action id="pattern-2" a="author">
  ...
  </cross-action>
  ...
  <cross-action id="pattern-n" a="author">
  ...
  </cross-action>
</cross-model>

Elementul cross-action[edit]

Fiecare acţiune de încrucişare este formată dintr-o pereche (pattern,action-set).

<cross-action id="pattern-1" a="author">
  <description>Cross action 1</description>
  <pattern>
    ...
  </pattern>
  <action-set>
    <action>
      ...
    </action>
    ...
    <action>
      ...
    </action>
  </action-set>
</cross-action>

Elementul pattern[edit]

<pattern>
  <!-- Element in bilingual dictionary AB-->
  <e>
    <p>
      <l>$lemmaA...</l>
      <r>$lemmaB...</r>

  </e>
  <!-- Element in bilingual dictionary BC-->
  <e r="RL">
    <p>
      <l>$lemmaB...</l>
      <r>$lemmaC...</r>

  </e>
</pattern>

Elementul action-set[edit]

Elementul action-set este o listă de acţiuni care vor fi executate când o pereche de elemente candidate sunt conform tiparului (pattern-ului).

<action-set>
  <action>
    <e>
      <p>
        <l>$lemmaA...</l>
        <r>$lemmaC...</r>

    </e>
  </action>
  <action>
  ...
  </action>
</action-set>

Valori pentru elementul <s>[edit]

Simboluri[edit]

<e>
  <p>
    <r>$lemmaA</l>
    <r>$lemmaB</r>

</e>

Folosiţi simboluri (precum în ) pentru a potrivi elementul.

Variabile[edit]

Există două tipuri de variabile:

  • Eticheta <v n="..."/>: un element <s>. De exemplu, <v n="cat"/> se poate referi la <s n="adj"/>. Valoarea "adj" va fi stocată în variabila "cat".
  • Eticheta <t n="..."/>: este folosită pentru a indica secvenţa unor elemente <s>. În acest caz, <t n="tail"/>, se poate referi la secvenţa . Secvenţa "n.m.sg" va fi stocată în variabila "tail".

Exemplu:

<e>
  <p>
    <l>$lemmaA<v n="cat"/><t n="tailA"/></l>
    <r>$lemmaB<v n="cat"/><t/></r>

</e>

Dacă nu folosiţi valoarea <v...> sau <t...>, nu definiţi niciun atribut n, astfel:

  • <v/>: 1 element .
  • <t/>: 0 sau mai multe element(e) .

Exemplu:

<e>
  <p>
    <l>$lemmaA<v/></l>
    <r>$lemmaB<t/></r>

</e>

În exemplul de mai sus, <v/> poate fi , , etc, dar valoarea nu este stocată într-o variabilă pentru că nu este folosită în nicio acţiune de încrucişare (cross action).


Vezi şi[edit]

Linkuri externe[edit]