Archived
63 lines
2.7 KiB
EmacsLisp
63 lines
2.7 KiB
EmacsLisp
// lang-sw.el - Swahili NLG tests: SVO assertion with verb agreement prefix.
|
|
//
|
|
// Swahili is SVO, agglutinative, noun-class system. Subject agreement is
|
|
// marked as a prefix on the verb: paka (cat, class M-WA) takes "a-" prefix.
|
|
// "anakula" = a (3sg M-WA agreement) + na (present tense) + kula (eat).
|
|
//
|
|
// Questions use the intonation strategy — same SVO order with "?" punctuation.
|
|
//
|
|
// The verb surface form "anakula" is supplied as a pre-inflected form because
|
|
// Swahili noun-class agreement is not yet in the morphology engine; when
|
|
// morphology-sw.el loads full tables it will conjugate from "kula" + agreement.
|
|
//
|
|
// Expected outputs (approximate):
|
|
// assert: "Paka anakula samaki." (SVO with verb agreement prefix)
|
|
// question: "Paka anakula samaki?" (intonation — same order, ?)
|
|
|
|
fn test_assert() -> String {
|
|
// SVO: subject=Paka (cat), verb=anakula (he/she-PRES-eat), object=samaki (fish)
|
|
let form: [String] = native_list_empty()
|
|
let form = native_list_append(form, "intent")
|
|
let form = native_list_append(form, "assert")
|
|
let form = native_list_append(form, "agent")
|
|
let form = native_list_append(form, "paka")
|
|
let form = native_list_append(form, "predicate")
|
|
let form = native_list_append(form, "anakula")
|
|
let form = native_list_append(form, "patient")
|
|
let form = native_list_append(form, "samaki")
|
|
let form = native_list_append(form, "location")
|
|
let form = native_list_append(form, "")
|
|
let form = native_list_append(form, "tense")
|
|
let form = native_list_append(form, "present")
|
|
let form = native_list_append(form, "aspect")
|
|
let form = native_list_append(form, "simple")
|
|
let form = native_list_append(form, "lang")
|
|
let form = native_list_append(form, "sw")
|
|
return realize(form)
|
|
}
|
|
|
|
fn test_question() -> String {
|
|
// Intonation question: SVO order unchanged, ? punctuation
|
|
let form: [String] = native_list_empty()
|
|
let form = native_list_append(form, "intent")
|
|
let form = native_list_append(form, "question")
|
|
let form = native_list_append(form, "agent")
|
|
let form = native_list_append(form, "paka")
|
|
let form = native_list_append(form, "predicate")
|
|
let form = native_list_append(form, "anakula")
|
|
let form = native_list_append(form, "patient")
|
|
let form = native_list_append(form, "samaki")
|
|
let form = native_list_append(form, "location")
|
|
let form = native_list_append(form, "")
|
|
let form = native_list_append(form, "tense")
|
|
let form = native_list_append(form, "present")
|
|
let form = native_list_append(form, "aspect")
|
|
let form = native_list_append(form, "simple")
|
|
let form = native_list_append(form, "lang")
|
|
let form = native_list_append(form, "sw")
|
|
return realize(form)
|
|
}
|
|
|
|
println(test_assert())
|
|
println(test_question())
|