GiellaLT provides an infrastructure for rule-based language technology aimed at minority and indigenous languages, and streamlines building anything from keyboards to speech technology.
Full agreement singular, e.g. vuosttaš albmáin
=> vuosmuin almain
Full agreement plural, e.g. vuosttaš albmáid
=> vuosmuid almaid
List with adjectives, pronouns, numbers which has agreement in the target language, and not in the source language (the same as for half agreement)
<def-cat n="agreement-attr">
<cat-item lemma="vuosttas" tags="adj.ord.attr.*"/>
<cat-item lemma="vuosttaš" tags="adj.ord.attr.*"/>
<cat-item lemma="aiddonas" tags="adj.*.attr.*"/>
<cat-item lemma="aiddonas" tags="adj.attr.*"/>
<cat-item lemma="dárbbašlaš" tags="adj.*.attr.*"/>
<cat-item lemma="dárbbašlaš" tags="adj.attr.*"/> ....
```
List with the tags in the noun, when the attribute should have full agreement, Sg and plural
<def-cat n="agreem-sg">
<cat-item tags="n.*.sg.nom.*"/>
<cat-item tags="np.*.sg.nom.*"/>
<cat-item tags="np.sg.nom.*"/>
<cat-item tags="n.*.sg.acc.*"/>
<cat-item tags="n.*.sg.com.*"/>
<cat-item tags="n.sg.nom.*"/>
<cat-item tags="n.sg.acc.*"/>
<cat-item tags="n.sg.com.*"/>
<cat-item tags="*.n.sg.nom.*"/>
<cat-item tags="*.n.sg.acc.*"/>
<cat-item tags="*.n.sg.com.*"/>
</def-cat>
<def-cat n="agreem-pl">
<cat-item tags="n.*.pl.nom.*"/>
<cat-item tags="n.*.pl.gen.*"/>
<cat-item tags="n.*.pl.acc.*"/>
<cat-item tags="n.*.pl.ill.*"/>
<cat-item tags="n.*.pl.loc.*"/>
<cat-item tags="n.*.pl.abe.*"/>
<cat-item tags="n.*.pl.com.*"/>
<cat-item tags="n.pl.nom.*"/>
<cat-item tags="n.pl.gen.*"/>
<cat-item tags="n.pl.acc.*"/>
<cat-item tags="n.pl.ill.*"/>
<cat-item tags="n.pl.loc.*"/>
<cat-item tags="n.pl.abe.*"/>
<cat-item tags="n.pl.com.*"/>
<cat-item tags="*.n.pl.nom.*"/>
<cat-item tags="*.n.pl.gen.*"/>
<cat-item tags="*.n.pl.acc.*"/>
<cat-item tags="*.n.pl.ill.*"/>
<cat-item tags="*.n.pl.loc.*"/>
<cat-item tags="*.n.pl.abe.*"/>
<cat-item tags="*.n.pl.com.*"/>
</def-cat> ```
<section-def-attrs>
<def-attr n="a_npagree_type">
<attr-item tags="adj"/>
<attr-item tags="adj.ord"/>
<attr-item tags="prn.ind"/>
<attr-item tags="prn.dem"/>
<attr-item tags="prn.itg"/>
<attr-item tags="prn.rel"/>
<attr-item tags="num"/>
</def-attr>
<def-macro n="agreement-adj-ind-sg-2Posit" npar="2">
<let>
<clip pos="1" side="tl" part="tags"/>
<concat>
<clip pos="1" side="tl" part="a_npagree_type"/>
<clip pos="2" side="tl" part="a_nbr"/>
<clip pos="2" side="tl" part="a_cas"/>
</concat>
</let>
</def-macro>
<def-macro n="agreement-adj-ind-pl-2Posit" npar="2">
<choose>
<when> <!-- with pl.com -->
<test>
<and>
<equal>
<clip pos="2" side="tl" part="a_cas"/>
<lit-tag v="com"/>
</equal>
<equal>
<clip pos="2" side="tl" part="a_nbr"/>
<lit-tag v="pl"/>
</equal>
</and>
</test>
<let>
<clip pos="2" side="tl" part="tags"/>
<concat>
<lit-tag v="n"/>
<clip pos="2" side="tl" part="a_ntype"/>
<clip pos="2" side="tl" part="a_nbr"/>
<clip pos="2" side="tl" part="a_cas"/>
</concat>
</let>
<let>
<clip pos="1" side="tl" part="tags"/>
<concat>
<clip pos="1" side="tl" part="a_npagree_type"/>
<clip pos="2" side="tl" part="a_nbr"/>
<lit-tag v="gen"/>
</concat>
</let>
</when>
<otherwise>
<!-- default -->
<let>
<clip pos="2" side="tl" part="tags"/>
<concat>
<lit-tag v="n"/>
<clip pos="2" side="tl" part="a_ntype"/>
<lit-tag v="pl"/>
<clip pos="2" side="tl" part="a_cas"/>
</concat>
</let>
<let>
<clip pos="1" side="tl" part="tags"/>
<concat>
<clip pos="1" side="tl" part="a_npagree_type"/>
<clip pos="2" side="tl" part="a_nbr"/>
<clip pos="2" side="tl" part="a_cas"/>
</concat>
</let>
</otherwise>
</choose>
</def-macro>
Full agreement singular:
<rule comment="REGLA: agreement-attr n-sg agreement">
<pattern>
<pattern-item n="agreement-attr"/>
<pattern-item n="agreem-sg"/>
</pattern>
<action>
<call-macro n="remove-semtag-1Posit"><with-param pos="2"/></call-macro>
<let><clip pos="2" side="tl" part="x_func"/><lit v=""/></let>
<let><clip pos="2" side="tl" part="a_func"/><lit v=""/></let>
<call-macro n="agreement-adj-ind-sg-2Posit"><with-param pos="1"/><with-param pos="2"/></call-macro>
<out>
Full agreement plural:
<rule comment="REGLA: agreement-attr n-pl">
<pattern>
<pattern-item n="agreement-attr"/>
<pattern-item n="agreem-pl"/>
</pattern>
<action>
<call-macro n="convert-deriv-1Posit"><with-param pos="1"/></call-macro>
<call-macro n="convert-deriv2-1Posit"><with-param pos="1"/></call-macro>
<call-macro n="convert-deriv-1Posit"><with-param pos="2"/></call-macro>
<call-macro n="convert-deriv2-1Posit"><with-param pos="2"/></call-macro>
<let><clip pos="2" side="tl" part="x_func"/><lit v=""/></let>
<let><clip pos="2" side="tl" part="a_func"/><lit v=""/></let>
<call-macro n="agreement-adj-ind-pl-2Posit"><with-param pos="1"/><with-param pos="2"/></call-macro>