Difference between revisions of "Cross-model ro"
(Created page with '{{main|Crossdics}} == Cross Model == === Definirea acţiunilor de încrucişare (cross actions) === Acţiunile de încrucişare sunt necesare pentru încrucişarea corectă a p…') |
|||
(9 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 90: | Line 88: | ||
În exemplul de mai sus: |
În exemplul de mai sus: |
||
− | * <code><v n="cat"/></code> |
+ | * <code><v n="cat"/></code> este o variabilă care poate reţine doar un element (de exemplu, <code><s n="adj"/></code>). În acest exemplu am folosit o variabilă deoarece avem nevoie să folosim valoarea în elementul <code>action</code>. Mai forţăm şi valoarea primului element <code><s n="..."/></code> să fie identică. Acolo mai este un simbol (<code><v/></code>) care poate fi folosit dacă nu vrem să folosim apoi valoarea. |
− | * |
+ | * Eticheta <code><t/></code> este o secvenţă de 0 sau mai multe elemente <code><s n="..."/></code>. |
− | * <code><t n="tailA"/></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> == |
||
− | These special tags are explained in the section [[Cross_Model_Elements#Values_for_.3Cs.3E_element|Cross Model Elements]] |
||
+ | Elementul <code>cross-model</code> este un set de acţiuni de încrucişare (elemente <code>cross-action</code>). |
||
− | == See also == |
||
− | * [[Cross Model Elements|Cross model elements]] |
||
− | * [[Pattern-Action example|Pattern-Action example]] |
||
+ | <!DOCTYPE cross-model SYSTEM "crossmodel.dtd"> |
||
− | == External links == |
||
+ | <'''cross-model'''> |
||
− | * Full example of [http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-crossdics/schemas/cross-model.xml?view=markup&sortby=date 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>''' |
||
+ | ''<!-- Element in bilingual dictionary AB-->'' |
||
+ | '''<e>''' |
||
+ | <p> |
||
+ | <l>$lemmaA<s n="..."/>...<s n="..."/></l> |
||
+ | <r>$lemmaB<s n="..."/>...<s n="..."/></r> |
||
+ | </p> |
||
+ | '''</e>''' |
||
+ | ''<!-- Element in bilingual dictionary BC-->'' |
||
+ | '''<e''' r="RL"'''>''' |
||
+ | <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> |
||
+ | <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><s></code> == |
||
+ | |||
+ | === Simboluri === |
||
+ | |||
+ | <e> |
||
+ | <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><s></code>. De exemplu, <code><v n="cat"/></code> se poate referi la <code><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><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> |
||
+ | <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> |
||
+ | <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). |
||
+ | |||
+ | |||
+ | == Vezi şi == |
||
+ | * [[Pattern-Action example|Exemplu de acţiune-tipar (Pattern-Action)]] |
||
+ | |||
+ | == Linkuri externe == |
||
+ | * 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
Contents
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 elementulaction
. 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 elementulaction
).
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]
- Exemplu de cross model complet.
- Cross model DTD