Separable verbs

From Apertium
Revision as of 05:45, 26 September 2007 by (talk)
Jump to navigation Jump to search


Apertium may have some problems when dealing with separable verbs. Separable verbs are verbs that are formed with a verb stem, and a particle. For futher information see Wikipedia article here. These exist in most Germanic languages, and also languages such as Hungarian.

For example, in Afrikaans, the verb "to announce" is "aankondig". The usage is as follows:

  • Sterrekundiges kondig [die ontdekking] aan.
  • Astronomers announce [the discovery].

The stem "kondig" does not by itself mean anything, only in conjunction with the particle "aan", however this is not always the case. The past participle is formed by inserting "ge" in between the particle and the stem, for example:

  • Sterrekundiges het [die ontdekking] aangekondig.
  • Astronomers have announced [the discovery].

Currently Apertium has difficulty supporting this kind of feature in the morphological dictionaries.

Possible solutions

Several paradigms

Currently in the Afrikaans-English pair, separable verbs are dealt with as follows: Three paradigms are defined for verbs. The first is a list of possible particles/affixes (for example, "aan", "op", "onder", ...), the second is the "ge" past tense marker, the third is the standard verb ending paradigm.

So, for each separable verb, the definition looks something like:

  <e lm="kondig"><par n="attached__particles"/><par n="ge__past"/><i>kondig</i><par n="breek__vblex"/>

This allows us to analyse:

  • aankondig (announce)
  • aangekondig (announced)
  • kondig (announce) — Note: this is incorrect!

However, in an example such as above, where the "aan" portion is moved after the noun phrase in the sentence, we cannot analyse this, we instead rely on the fact that "kondig" does not have a meaning without "aan". Unfortunately this is not always the case...

Take for example, the verbs "onderdruk" and "druk". The former means "to suppress", the latter means "to press" or "to squeeze". So when we try and translate "onderdruk" → "suppress", instead we get "press under", or "squeeze under". This is not a good translation in this instance (although in many cases it can work, viz. "terugkry" → "kry terug" → "get back").

Furthermore, we cannot define "druk" as "suppress" and simply let the particle take care of itself, because "druk" has another meaning.

Infix paradigm

We could also consider using an infix paradigm. This is differently unclean from the other method. So for example, we would have a paradigm like ge__pref:

  <pardef n="ge__pref">
    <e lm="ge">

Note that in this case, we don't have any grammatical symbols on the right side. We then specify a multiword as follows:

  <e lm="wegloop"><i>weg</i><par n="ge__pref"/><i>loop</i><par n="breek__vblex"/></e>

This allows us to analyse:

  • wegloop (run away)
  • weggeloop (ran away)

This does not allow us to analyse simply "loop" (to run), we would need a separate paradigm for this. It also has the downside that both forms need to be specified in the bilingual dictionary, so for example:

  <e><p><l>run away</l><s n="vblex"/></l><r>wegloop<s n="vblex"/></r></p></e>
  <e><p><l>run away</l><s n="vblex"/><s n="past"/></l><r>weggeloop<s n="vblex"/></r></p></e>

It remains to be seen if the pay-off here, in having better translations is worth the cost in duplication of entries. Furthermore this still does not take care of "real separable" verbs.

Marking separable stems

If we mark the lemmata of verbs that can be used in separable contexts. We then use rules to say for example:

Sterrekundiges kondig [die ontdekking] aan.
               kondig NP               aan.   → announce NP

Sterrekundiges druk   [die ontdekking] onder.
               druk   NP               onder. → suppress NP

Sterrekundiges druk   [die ontdekking].
               druk   NP               ø      → press NP

This could be dealt with either in transfer or pre-transfer. If it was dealt with in pre-transfer,

^Sterrekundige<n><pl>$ ^kondig<vblex><pres><sep>$ ^die<det><def><sg>$ ^ontdekking<n><sg>$ ^aan<pr><sep>$^.<sent>$

Upon seeing the <sep> tag, the pre-transfer would chomp NPs until reaching either <sent> or an adverb, preposition, or whatever with another <sep> tag. Upon finding this tag, it would re-order the fragment thusly:

^Sterrekundige<n><pl>$ ^aankondig<vblex><pres>$ ^die<det><def><sg>$ ^ontdekking<n><sg>$^.<sent>$

The affix is put in its proper place before the verb, the <sep> tags are removed, and then the fragment is passed onto the transfer.

See also

Further reading

  • ten Hacken, P. and Bopp, S. (1998) "Separable Verbs in a Reusable Morphological Dictionary for German". Proceedings of the 36th annual meeting on Association for Computational Linguistics. pp. 471 - 475