Difference between revisions of "Finnish"

From Apertium
Jump to navigation Jump to search
Line 5: Line 5:
 
== Grammar stuff ==
 
== Grammar stuff ==
   
  +
Common formulas:
  +
  +
=== Adposition to case suffix ===
  +
  +
  +
<pre>
  +
<section-def-macros>
  +
<def-macro n="adp-mangler" npar="1">
  +
<choose>
  +
<!-- adp to case mappigngs -->
  +
<!-- based on adp lexeme only -->
  +
<when>
  +
<test>
  +
<equal><clip pos="1" side="sl" part="lem"/><lit v="I"/></equal>
  +
</test>
  +
<let>
  +
<var n="adpcase"/>
  +
<lit-tag v="ine"/>
  +
</let>
  +
<let>
  +
<var n="maybeadp"/>
  +
<lit v=""/>
  +
</let>
  +
</when>
  +
<when>
  +
<test>
  +
<equal><clip pos="1" side="sl" part="lem"/><lit v="i"/></equal>
  +
</test>
  +
<let>
  +
<var n="adpcase"/>
  +
<lit-tag v="ine"/>
  +
</let>
  +
<let>
  +
<var n="maybeadp"/>
  +
<lit v=""/>
  +
</let>
  +
</when>
  +
<when>
  +
<test>
  +
<equal><clip pos="1" side="sl" part="lem"/><lit v="fra"/></equal>
  +
</test>
  +
<let>
  +
<var n="adpcase"/>
  +
<lit-tag v="ela"/>
  +
</let>
  +
<let>
  +
<var n="maybeadp"/>
  +
<lit v=""/>
  +
</let>
  +
</when>
  +
...
  +
...
  +
...
  +
<rule comment="adp noun">
  +
<pattern>
  +
<pattern-item n="adp"/>
  +
<pattern-item n="noun"/>
  +
</pattern>
  +
<action>
  +
<call-macro n="adp-mangler">
  +
<with-param pos="1"/>
  +
</call-macro>
  +
<out>
  +
<chunk name="adpnoun" case="caseFirstWord">
  +
<tags>
  +
<tag><lit-tag v="NP"/></tag>
  +
<tag><var n="adpcase"/></tag>
  +
</tags>
  +
<lu>
  +
<clip pos="2" side="tl" part="lem"/>
  +
<clip pos="2" side="tl" part="a_noun"/>
  +
<clip pos="2" side="tl" part="a_number"/>
  +
<var n="adpcase"/>
  +
</lu>
  +
<b pos="0"/>
  +
<lu>
  +
<var n="maybeadp"/>
  +
</lu>
  +
</chunk>
  +
</out>
  +
</action>
  +
</rule>
  +
  +
</pre>
   
   

Revision as of 12:21, 16 February 2021

Grammar stuff

Common formulas:

Adposition to case suffix

  <section-def-macros>
    <def-macro n="adp-mangler" npar="1">
      <choose>
        <!-- adp to case mappigngs -->
        <!-- based on adp lexeme only -->
        <when>
          <test>
            <equal><clip pos="1" side="sl" part="lem"/><lit v="I"/></equal>
          </test>
          <let>
            <var n="adpcase"/>
            <lit-tag v="ine"/>
          </let>
          <let>
            <var n="maybeadp"/>
            <lit v=""/>
          </let>
        </when>
        <when>
          <test>
            <equal><clip pos="1" side="sl" part="lem"/><lit v="i"/></equal>
          </test>
          <let>
            <var n="adpcase"/>
            <lit-tag v="ine"/>
          </let>
          <let>
            <var n="maybeadp"/>
            <lit v=""/>
          </let>
        </when>
        <when>
          <test>
            <equal><clip pos="1" side="sl" part="lem"/><lit v="fra"/></equal>
          </test>
          <let>
            <var n="adpcase"/>
            <lit-tag v="ela"/>
          </let>
          <let>
            <var n="maybeadp"/>
            <lit v=""/>
          </let>
        </when>
...
...
...
    <rule comment="adp noun">
      <pattern>
        <pattern-item n="adp"/>
        <pattern-item n="noun"/>
      </pattern>
      <action>
        <call-macro n="adp-mangler">
          <with-param pos="1"/>
        </call-macro>
        <out>
          <chunk name="adpnoun" case="caseFirstWord">
            <tags>
              <tag><lit-tag v="NP"/></tag>
              <tag><var n="adpcase"/></tag>
            </tags>
            <lu>
              <clip pos="2" side="tl" part="lem"/>
              <clip pos="2" side="tl" part="a_noun"/>
              <clip pos="2" side="tl" part="a_number"/>
              <var n="adpcase"/>
            </lu>
            <b pos="0"/>
            <lu>
              <var n="maybeadp"/>
            </lu>
          </chunk>
        </out>
      </action>
    </rule>


See also

Languages in github

Language pairs in github