summaryrefslogtreecommitdiff
path: root/examples/godis-tram/Common/GodisLangSwe.gf
diff options
context:
space:
mode:
Diffstat (limited to 'examples/godis-tram/Common/GodisLangSwe.gf')
-rw-r--r--examples/godis-tram/Common/GodisLangSwe.gf150
1 files changed, 150 insertions, 0 deletions
diff --git a/examples/godis-tram/Common/GodisLangSwe.gf b/examples/godis-tram/Common/GodisLangSwe.gf
new file mode 100644
index 000000000..6970f89c6
--- /dev/null
+++ b/examples/godis-tram/Common/GodisLangSwe.gf
@@ -0,0 +1,150 @@
+--# -path=.:prelude:resource-1.0/abstract:resource-1.0/common:resource-1.0/scandinavian:resource-1.0/swedish
+
+instance GodisLangSwe of GodisLang =
+ open Prelude, PredefCnc, GrammarSwe, ParadigmsSwe, ConstructX,
+ MorphoSwe, CommonScand, (Lex=LexiconSwe), (Irreg=IrregSwe) in {
+
+oper
+
+----------------------------------------------------------------------
+-- focus
+
+embed_NP a b x = {s = \\c => a ++ (x.s ! c) ++ b; a = x.a; lock_NP = <>};
+
+
+----------------------------------------------------------------------
+-- user utterances
+
+userGreet = ss ["hej"];
+userQuit = ss ["hejdå"];
+userNo = ss ["nej"];
+userYes = ss ["ja"];
+userOkay = variants { ss ["okej"]; ss ["ok"]; ss ["okay"] };
+
+userCoordinate x y = ss (x.s ++ "och" ++ optStr "sedan" ++ y.s);
+
+thank_you_Str = variants{ "schysst"; "tack"; userOkay.s };
+i_want_to_Str = variants{ "jag" ++ variants{ "vill"; ["skulle vilja"] };
+ ["kan du"] };
+please_Str = "tack";
+this_that_Str = variants{ variants{"den";"det"} ++ optStr "här";
+ "denna"; "detta" };
+
+not_user_prop p = ss ( "inte" ++ p.s );
+not_user_short a = ss ( "inte" ++ a.s );
+
+----------------------------------------------------------------------
+-- system utterances
+
+hello = mkUtt ["MP3 spelaren är redo"];
+goodbye = mkUtt ["Hejdå"];
+yes = mkUtt ["Ja"];
+no = mkUtt ["Nej"];
+
+is_that_correct_Post = mkUtt [", är det korrekt"];
+returning_to_Pre = mkUtt ["Återgår till"];
+returning_to_act_Pre = mkUtt ["Återgår till att"];
+returning_to_issue_Pre = mkUtt ["Återgår till frågan om"];
+what_did_you_say = mkUtt ["Vad sa du"];
+what_do_you_mean = mkUtt ["Vad menar du"];
+i_dont_understand = mkUtt ["Jag förstår inte riktigt"];
+cant_answer_que_Pre = mkUtt ["Ledsen , jag kan inte svara på frågor om"];
+not_valid_Post = mkUtt ["går inte att välja"];
+
+icm_acc_pos = mkUtt thank_you_Str;
+icm_con_neg = mkUtt ["Hallå?"];
+icm_reraise = mkUtt ["Så ,"];
+icm_loadplan = mkUtt ["Få se"];
+icm_accommodate = mkUtt ["Visst"];
+
+icm_per_pos x = mkUtt (["Jag tyckte du sa"] ++ x.s);
+
+
+----------------------------------------------------------------------
+-- noun phrases
+
+sing_NP s = regNP s (s+"s") SgUtr ** {lock_NP = <>};
+plur_NP s = regNP s (s+"s") Plg ** {lock_NP = <>};
+
+NPgen_NP = NP_of_NP;
+
+NP_Cl np = {s = \\t,a,b,o => np.s ! nominative; lock_Cl = <>};
+
+prefix_N n1 n2 = {s = \\n,s,c => n1.s!Sg!Indef!Gen ++ n2.s!n!s!c;
+ g = n2.g;
+ lock_N = <>};
+
+
+----------------------------------------------------------------------
+-- actions/verb phrases
+
+VPing act = act;
+vp2Utt vp = mkUtt (infVP vp (agrP3 utrum Sg));
+-- UttVP vp;
+
+
+----------------------------------------------------------------------
+-- general syntactical operations
+
+disjunct_QCl q q' =
+ {s = \\t,a,p,x => q.s!t!a!p!x ++ "eller" ++ q'.s!t!a!p!x;
+ lock_QCl = <>};
+
+negate_Cl c =
+ {s = \\t,a,p,o => c.s!t!a!(case p of {Neg=>Pos; Pos=>Neg})!o;
+ lock_Cl = <>};
+
+-- disjunct_Utt u u' = ss (u.s ++ "eller" ++ u'.s);
+-- disjunct_VP vp vp' =
+-- insertObj (\\agr => "eller" ++ (ImpVP vp').s!Pos!(agr.gn)) vp;
+
+
+----------------------------------------------------------------------
+-- verbs
+
+see_V = Irreg.se_V;
+
+do_V2 = Lex.do_V2;
+have_V2 = Lex.have_V2;
+understand_V2 = Lex.understand_V2;
+
+know_VQ = mkVQ Irreg.veta_V;
+wonder_VQ = Lex.wonder_VQ;
+
+say_VS = Lex.say_VS;
+
+fail_VV = mkVV (mkV "misslyckas" "misslyckas" "misslyckas" "misslyckades" "misslyckats" "misslyckad");
+like_VV = want_VV;
+
+----------------------------------------------------------------------
+-- nouns, proper nouns, common nouns and noun phrases
+
+information_N = mk2N "information" "informationer";
+
+you_NP = UsePron youSg_Pron;
+
+----------------------------------------------------------------------
+-- closed word categories
+
+of_på_Prep = mkPrep "på";
+for_Prep = mkPrep "för";
+
+not_Predet = {s = \\_ => "inte"; lock_Predet = <>};
+
+no_Quant = {s = table {Sg => \\_ => table {Utr => "ingen";
+ Neutr => "inget"};
+ Pl => \\_,_ => "inga"};
+ det = DIndef;
+ lock_Quant = <>};
+
+all_Quant = {s = \\_,_ => "alla";
+ det = DIndef;
+ lock_QuantPl = <>};
+
+
+
+----------------------------------------------------------------------
+
+i_dont_want_to = ["jag vill inte"];
+
+}