mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
135 lines
3.6 KiB
Plaintext
135 lines
3.6 KiB
Plaintext
--# -path=.:prelude
|
|
|
|
concrete GodisSystemSem of GodisSystem = PredefCnc ** open Prolog in {
|
|
|
|
lincat
|
|
|
|
Move,
|
|
[Move],
|
|
S,
|
|
ShortAns,
|
|
Proposition,
|
|
Question,
|
|
YNQ, AltQ,
|
|
[Proposition],
|
|
VPProposition,
|
|
[VPProposition],
|
|
Action,
|
|
Reason = PStr;
|
|
|
|
|
|
lin
|
|
|
|
-- usr = ss "usr";
|
|
-- sys = ss "sys";
|
|
|
|
----------------------------------------------------------------------
|
|
-- questions
|
|
|
|
action_Q = pWhQ "action";
|
|
issue_Q = pWhQ "issue";
|
|
|
|
ynq q = q;
|
|
altq qs = pp1 "set" (pBrackets qs);
|
|
BaseProposition = pSeq;
|
|
ConsProposition = pSeq;
|
|
|
|
----------------------------------------------------------------------
|
|
-- propositions
|
|
|
|
not = pp1 "not";
|
|
-- done = pp1 "done";
|
|
fail = pp2 "fail";
|
|
-- und = pp2 "und";
|
|
|
|
----------------------------------------------------------------------
|
|
-- vp-propositions
|
|
|
|
action = pp1 "action";
|
|
issue = pp1 "issue";
|
|
|
|
vp_ynq p = p;
|
|
vp_altq qs = pp1 "set" (pBrackets qs);
|
|
BaseVPProposition = pSeq;
|
|
ConsVPProposition = pSeq;
|
|
|
|
----------------------------------------------------------------------
|
|
-- short answers
|
|
|
|
notS = pp1 "not";
|
|
|
|
----------------------------------------------------------------------
|
|
-- dialogue moves
|
|
|
|
answer_yes = pp1 "answer" (pp0 "yes");
|
|
answer_no = pp1 "answer" (pp0 "no");
|
|
|
|
greet = pp0 "greet";
|
|
quit = pp0 "quit";
|
|
ask = pp1 "ask";
|
|
askYNQ = pp1 "ask";
|
|
askAltQ = pp1 "ask";
|
|
answer = pp1 "answer";
|
|
answerVP = pp1 "answer";
|
|
shortAns = pp1 "answer";
|
|
|
|
request = pp1 "request";
|
|
confirm a = variants{ pp1 "confirm" a;
|
|
pp2 "report" a (pp0 "done") };
|
|
reportFailure a r = pp2 "report" a (pp1 "failed" r);
|
|
|
|
answerFailure q r = pp1 "answer" (pp2 "fail" q r);
|
|
|
|
----------------------------------------------------------------------
|
|
-- ICM
|
|
|
|
icm_acc_pos = icmFeedback0 "acc" "pos";
|
|
icm_con_neg = icmFeedback0 "con" "neg";
|
|
icm_per_neg = icmFeedback0 "per" "neg";
|
|
icm_per_int = icmFeedback0 "per" "int";
|
|
icm_sem_neg = icmFeedback0 "sem" "neg";
|
|
icm_sem_int = icmFeedback0 "sem" "int";
|
|
icm_und_neg = icmFeedback0 "und" "neg";
|
|
icm_reraise = icmSingle0 "reraise";
|
|
icm_loadplan = icmSingle0 "loadplan";
|
|
icm_accommodate = icmSingle0 "accomodate";
|
|
|
|
icm_per_pos = icmFeedback1 "per" "pos";
|
|
icm_und_int_prop p = icmFeedback1 "und" "int" (pOper "*" (pp0 "usr") p);
|
|
icm_und_pos_prop p = icmFeedback1 "und" "pos" (pOper "*" (pp0 "usr") p);
|
|
icm_acc_neg_prop = icmFeedback1 "acc" "neg";
|
|
icm_acc_neg_que q = icmFeedback1 "acc" "neg" (pp1 "issue" q);
|
|
icm_sem_pos_move = icmFeedback1 "sem" "pos";
|
|
icm_sem_pos_shortAns = icmFeedback1 "sem" "pos";
|
|
icm_und_pos_vp p = icmFeedback1 "und" "pos" (pOper "*" (pp0 "usr") p);
|
|
icm_und_int_vp p = icmFeedback1 "und" "int" (pOper "*" (pp0 "usr") p);
|
|
icm_reraise_act = icmSingle1 "reraise";
|
|
|
|
icm_und_int_altq q = icmFeedback1 "und" "int"(pOper "*" (pp0 "usr") q);
|
|
icm_reraise_whq = icmSingle1 "reraise";
|
|
icm_reraise_ynq = icmSingle1 "reraise";
|
|
icm_reraise_altq = icmSingle1 "reraise";
|
|
icm_accommodate_whq = icmSingle1 "accomodate";
|
|
icm_accommodate_ynq = icmSingle1 "accomodate";
|
|
icm_accommodate_altq = icmSingle1 "accomodate";
|
|
icm_reaccommodate_whq = icmSingle1 "reaccomodate";
|
|
icm_reaccommodate_ynq = icmSingle1 "reaccomodate";
|
|
icm_reaccommodate_altq = icmSingle1 "reaccomodate";
|
|
|
|
BaseMove m = m;
|
|
ConsMove m = pSeq m;
|
|
|
|
godis_utterance = pBrackets;
|
|
|
|
|
|
oper
|
|
|
|
icmSingle0 : Str -> PStr = \icm -> pStr ("icm" ++ ":" ++ icm);
|
|
icmSingle1 : Str -> PPStr = \icm -> pOper ":" (icmSingle0 icm);
|
|
|
|
icmFeedback0 : Str -> Str -> PStr = \lvl,pol -> icmSingle0 (lvl ++ "*" ++ pol);
|
|
icmFeedback1 : Str -> Str -> PPStr = \lvl,pol -> icmSingle1 (lvl ++ "*" ++ pol);
|
|
|
|
|
|
}
|