Northern Sámi and Norwegian/tNxIntros

From Apertium
Jump to navigation Jump to search

Here come the comments on the beginning of each tNx file. Read at own risk, you may have forgotten to update them...


This is the first pass. Responsibilities of this file include:

  • Chunking (all rules)
  • Handling part-of-speech changes introduced by bidix.
    • Rules match on source tags, so a sme verb which is specified as a nob noun has to be handled by the verb rule (this leads to some redundancy, hopefully we'll get a bidix module soon)
  • (De-)compounding
    • See rule: NOM.CMP NOM
  • goahti-derivation
    • See rule: VERB Der/goahti
  • Simple noun phrases
    • Heads and their simple modifiers/specifiers: adj nom, adj adj nom, det adj adj nom, num adj nom
    • See rule: DET ADJ_ATTR NOM
    • See macro: out_nom
  • Insert prepositions based on nominal case
    • These get their own chunk; t2x might have to remove them in co-ordination or post-position rules or might change them if the verb requires something else
    • See macro: set_caseprep
  • Verb auxiliaries
    • Tags from sme verbs are used to output finite verb auxiliaries before the main verb. All verbs get their own chunks, as do lemq's (since they can move around noun phrases in t3x)
    • See macro: out_verb


This is the second pass. Responsibilities of this file include:

  • Simple anaphora resolution; we keep track of gender of p3 sg subjects using the variables "ana_m_f" and "ana_gen", applying this to GD-tagged SN's and all FV's.
    • See rule: FV, SN
    • Note: this only applies gender in a forward direction, applying gender from the noun to pronoun in 'Pron is N' constructions happens in t3x
  • Keeping track of verb temps for eg. Actio.Ess (which is tagged TD) using the variable "ana_temps"
    • See rule: FV, V.TD
  • Co-ordination
    • Removes superfluous prepositons
    • See rule: SN CNP SN, FV CVP FV
  • Some definiteness changes for genitive clauses etc.
    • See rule: SN_rN SN
  • Moving postpositions
    • See rule: SN ADPOS -> ADPOS SN
  • Removing prepositions when case is governed by adpositions
    • See rule: PR SN_RPOST adpos
  • Removing essive caseprep ('som') after vcop
    • See rule: vcop-FV caseprep-PR.ess
  • Removing Pcle.Qst and putting the Qst tag on the preceding chunk, so that they're treated as if there were no space
    • See rule: SN PCLE.Qst
    • PCLE.Qst variants could probably be added to many of the other rules here too, still TODO, but the most likely seem to be covered.


  • relatives (SN "who" SV SV* -> SN), both 'real' and those that started life as Agent Constructions
  • 'adpos' covers both Pr and Po, tag them as such in t1x so that the rules here don't overgeneralise


This is the third pass. Responsibilities of this file include:

  • V2 Movement etc., rules which involve verb, adverb and/or noun chunks
    • See rule: SPEC SN FV
  • Inserting dropped pronouns
    • Overridden by rules matching the maybe-[LR]SUBJ categories; these include unknowns and should just be passed through unchanged.
    • See macro: set_pro
  • Inserting adverbs to indicate modality
    • See macro: set_adv
  • Correct definiteness using the larger context (eg. verb animacy / number / temps)
    • See macro: set_defnes2
  • Change perfect participle of non-finites to preterite when following the negation verb
    • See rules with FV.Neg
  • Using verb animacy/number to guess GD/ND subject gender/number
    • See macro modify_GD_ND_subj3
    • Only regards pre-verbal GD/ND subjects, post-verbal are handled in t2x


  • Using verb animacy/number to guess GD/ND subject gender/number
    • See macro modify_GD_ND_subj3


This is the fourth pass. Responsibilities of this file include:

  • Inserting articles
    • See rule: pre_nom
    • See macro: maybe_out_det2
  • Cleanup
    • Making sure tags are consistent with nob.dix (esp. adjectives, personal pronouns)
    • See macro: clean_adj
    • See macro: clean_det (also used for numerals)
  • Does not output spaces occuring after a 'cmp'
    • See rule: det_cmp_nom

TODO: prpers entries in nob.dix, to avoid the clean_pron mess.