forked from GitHub/gf-core
added Ann-Charlotte's grammars
This commit is contained in:
26
grammars/TALK/GF_GoDiS/Core/GenResEng.gf
Normal file
26
grammars/TALK/GF_GoDiS/Core/GenResEng.gf
Normal file
@@ -0,0 +1,26 @@
|
||||
-- A file with PreReq and PostReq etc...
|
||||
|
||||
resource GenResEng = {
|
||||
|
||||
param Form = Ques | Req | ReqNeg ;
|
||||
|
||||
|
||||
oper choosePre : Form => Str
|
||||
= table {
|
||||
Ques => ["can i"];
|
||||
Req => variants{ ["i want to"] ; ["i would like to"] };
|
||||
ReqNeg => variants{ ["i do not want to"] ; ["i would not like to"] }
|
||||
|
||||
};
|
||||
|
||||
|
||||
oper choosePost : Form => Str
|
||||
= table {
|
||||
Ques => "";
|
||||
Req => "please";
|
||||
ReqNeg => "please"
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
26
grammars/TALK/GF_GoDiS/Core/GenResSwe.gf
Normal file
26
grammars/TALK/GF_GoDiS/Core/GenResSwe.gf
Normal file
@@ -0,0 +1,26 @@
|
||||
-- A file with PreReq and PostReq etc...
|
||||
|
||||
resource GenResSwe = {
|
||||
|
||||
param Form = Ques | Req | ReqNeg;
|
||||
|
||||
|
||||
oper choosePre : Form => Str
|
||||
= table {
|
||||
Ques => ["kan jag"];
|
||||
Req => variants{ ["jag vill"] ; ["jag skulle vilja"] };
|
||||
ReqNeg => variants{ ["jag vill inte"] ; ["jag skulle inte vilja"] }
|
||||
|
||||
};
|
||||
|
||||
|
||||
oper choosePost : Form => Str
|
||||
= table {
|
||||
Ques => "";
|
||||
Req => "tack";
|
||||
ReqNeg => "tack"
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
133
grammars/TALK/GF_GoDiS/Core/Shared/sharedCore.gf
Normal file
133
grammars/TALK/GF_GoDiS/Core/Shared/sharedCore.gf
Normal file
@@ -0,0 +1,133 @@
|
||||
-- general grammar
|
||||
--# -path=.:../
|
||||
|
||||
abstract sharedCore = {
|
||||
|
||||
cat
|
||||
|
||||
-- Nuance needs a S category, easiest fix.
|
||||
S;
|
||||
|
||||
-- Simple Dialogue Moves
|
||||
DMove;
|
||||
|
||||
|
||||
|
||||
-- Basic forms
|
||||
|
||||
Action Task;
|
||||
SingleAction;
|
||||
Proposition Task;
|
||||
|
||||
Task;
|
||||
|
||||
|
||||
-- Dialogue moves (DMove) are: ask, answer, greet, quit, request, confirm, report
|
||||
|
||||
|
||||
-- Greet
|
||||
-- Simple greet move...
|
||||
Greet ;
|
||||
|
||||
-- Quit
|
||||
-- Simple quit move...
|
||||
Quit;
|
||||
|
||||
-- Answer
|
||||
-- Answers are moves that answer questions, posed or not.
|
||||
Answer Task;
|
||||
NegAnswer Task;
|
||||
|
||||
-- Ask
|
||||
-- Ask moves are those moves that ask for plans.
|
||||
-- "vad vill du göra?" "vad kan jag göra" "hjälp"(?)
|
||||
-- Hur är det med ja/nej frågor?
|
||||
Ask Task;
|
||||
SingleAsk;
|
||||
|
||||
|
||||
-- Request
|
||||
-- Requests are those moves that have no arguments and
|
||||
-- generate no specific informationfilled answers.
|
||||
Request;
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
ICM;
|
||||
Per_ICM;
|
||||
Per_ICM_Followed;
|
||||
Acc_ICM;
|
||||
Acc_ICM_Followed;
|
||||
|
||||
|
||||
|
||||
fun
|
||||
|
||||
makeS : DMove -> S;
|
||||
|
||||
-- Greet
|
||||
makeGreetMove : Greet -> DMove;
|
||||
|
||||
-- Quit
|
||||
makeQuitMove : Quit -> DMove;
|
||||
|
||||
-- Answer
|
||||
makeAnswer : (t : Task) -> Proposition t -> Answer t;
|
||||
makeAnswerMove : (t : Task) -> Answer t -> DMove;
|
||||
|
||||
|
||||
makeNegAnswer : (t : Task) -> Proposition t -> NegAnswer t;
|
||||
makeNegAnswerMove : (t : Task) -> NegAnswer t -> DMove;
|
||||
|
||||
-- Ask
|
||||
singleAsk : (t : Task) -> Ask t -> SingleAsk;
|
||||
makeYesNoAsk : (t : Task) -> Action t -> SingleAsk;
|
||||
makeAsk : SingleAsk -> DMove;
|
||||
|
||||
|
||||
-- Request
|
||||
makeRequest : SingleAction -> Request;
|
||||
makeRequestMove : Request -> DMove;
|
||||
makeNegRequestMove : Request -> DMove;
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
makeICMPer : Per_ICM -> ICM;
|
||||
makeICMAcc : Acc_ICM -> ICM;
|
||||
|
||||
|
||||
|
||||
makeICMMove : ICM -> DMove;
|
||||
|
||||
|
||||
-- LEXICON
|
||||
|
||||
shortAnswer : Task;
|
||||
|
||||
top_command : SingleAction;
|
||||
|
||||
help_command : SingleAction;
|
||||
|
||||
yes : Answer shortAnswer;
|
||||
no : Answer shortAnswer;
|
||||
|
||||
greet_command : Greet;
|
||||
bye_command : Quit;
|
||||
|
||||
|
||||
-- ICMs
|
||||
per_pos : Per_ICM_Followed;
|
||||
per_neg : Per_ICM;
|
||||
per_int : Per_ICM;
|
||||
|
||||
acc_pos : Acc_ICM;
|
||||
acc_neg_alone : Acc_ICM;
|
||||
acc_neg : Acc_ICM_Followed;
|
||||
--acc_int : Acc_ICM;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
55
grammars/TALK/GF_GoDiS/Core/Shared/sharedCoreEng.gf
Normal file
55
grammars/TALK/GF_GoDiS/Core/Shared/sharedCoreEng.gf
Normal file
@@ -0,0 +1,55 @@
|
||||
concrete sharedCoreEng of sharedCore = open GenResEng in {
|
||||
|
||||
--flags lexer=codelit ; unlexer=codelit ; startcat=DMoveList ;
|
||||
flags conversion=finite;
|
||||
|
||||
|
||||
--# -path=.:../
|
||||
|
||||
lin
|
||||
makeS s = {s = s.s};
|
||||
|
||||
|
||||
|
||||
-- Linearization of Greet, Quit, Answer, Ask and Request are moved to
|
||||
-- System and User respectively because of differing linearizations
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
makeICMPer perI = {s = perI.s};
|
||||
|
||||
makeICMAcc accI = {s = accI.s};
|
||||
|
||||
makeICMMove icm = {s = icm.s};
|
||||
|
||||
|
||||
|
||||
|
||||
-- LEXICON
|
||||
|
||||
pattern
|
||||
|
||||
top_command = (variants {["top"] ; ["forget everything"] ; ["start over"]});
|
||||
-- end_command = "quit";
|
||||
|
||||
help_command = variants {"get" ; ""} ++ "help" ;
|
||||
|
||||
yes = variants {"yes" ; "yup" ; "yeppers"};
|
||||
no = variants {"no" ; "nope" };
|
||||
|
||||
greet_command = variants { "hello" ; "hi" ; "yo"};
|
||||
bye_command = variants { ["goodbye"] ; "bye" ; "end" };
|
||||
|
||||
-- ICMs
|
||||
-- Moved to User and System respectively because of differing linearisations
|
||||
-- for user and system.
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
92
grammars/TALK/GF_GoDiS/Core/Shared/sharedCorePro.gf
Normal file
92
grammars/TALK/GF_GoDiS/Core/Shared/sharedCorePro.gf
Normal file
@@ -0,0 +1,92 @@
|
||||
--# -path=.:../
|
||||
|
||||
concrete sharedCorePro of sharedCore = {
|
||||
|
||||
|
||||
flags lexer=code ; unlexer=concat ;
|
||||
flags conversion=finite;
|
||||
|
||||
lin
|
||||
|
||||
-- Borde inte request, question, etc.. ligga i en
|
||||
-- generell resursfil så att man kan komma åt dem.
|
||||
-- Det är inte speciellt snyggt att skriva ut det
|
||||
-- ibland här och ibland i den specifika filen..
|
||||
-- Det känns som om det borde vara en "resurs"fråga.
|
||||
|
||||
-- Det ÄR en resursgrej... titta i video grammatiken:
|
||||
-- prologResource.gf och generalProlog.gf
|
||||
-- som Aarne fixade till från Karins pyssel.
|
||||
-- Hakparanteserna borde också fixas till på samma sätt...
|
||||
|
||||
makeS s = {s = "[" ++ s.s ++ "]"};
|
||||
|
||||
-- Greet
|
||||
makeGreetMove gre = {s = gre.s };
|
||||
|
||||
-- Quit
|
||||
makeQuitMove qui = {s = qui.s };
|
||||
|
||||
-- Answer
|
||||
makeAnswer _ ans = {s = "answer" ++ "(" ++ ans.s ++ ")"};
|
||||
makeNegAnswer _ ans = {s = "answer" ++ "(" ++ "not" ++ "(" ++ ans.s ++ ")" ++ ")"};
|
||||
makeAnswerMove _ sha = {s = sha.s };
|
||||
makeNegAnswerMove _ sha = {s = sha.s};
|
||||
|
||||
-- Ask
|
||||
singleAsk _ ask = {s = "X" ++ "^" ++ ask.s ++ "(" ++ "X" ++ ")"};
|
||||
makeYesNoAsk _ action = {s = action.s};
|
||||
makeAsk ask = {s = "ask" ++ "(" ++ ask.s ++ ")"};
|
||||
|
||||
-- Request
|
||||
makeRequest req = {s = "request" ++ "(" ++ req.s ++ ")" };
|
||||
makeRequestMove reqM = {s = reqM.s};
|
||||
makeNegRequestMove reqM = {s = "not" ++ "(" ++ reqM.s ++ ")"};
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
makeICMPer perI = {s = perI.s};
|
||||
|
||||
makeICMAcc accI = {s = accI.s};
|
||||
-- makeICMAccProp accI prop = {s = accI.s ++ ":" ++ prop.s};
|
||||
|
||||
|
||||
makeICMMove icm = {s = "icm" ++ ":" ++ icm.s};
|
||||
|
||||
-- LEXICON
|
||||
|
||||
pattern
|
||||
top_command = "top";
|
||||
-- end_command = "quit";
|
||||
|
||||
help_command = "help";
|
||||
|
||||
yes = "yes";
|
||||
no = "no";
|
||||
|
||||
greet_command = "greet";
|
||||
bye_command = "quit";
|
||||
|
||||
-- ICMs
|
||||
per_pos = ["per * pos"];
|
||||
per_neg = ["per * neg"];
|
||||
per_int = ["per * int"];
|
||||
|
||||
|
||||
acc_pos = ["acc * pos"];
|
||||
acc_neg = ["acc * neg"];
|
||||
acc_neg_alone = ["acc * neg"];
|
||||
--acc_int = "acc*int";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
54
grammars/TALK/GF_GoDiS/Core/Shared/sharedCoreSwe.gf
Normal file
54
grammars/TALK/GF_GoDiS/Core/Shared/sharedCoreSwe.gf
Normal file
@@ -0,0 +1,54 @@
|
||||
concrete sharedCoreSwe of sharedCore = open GenResSwe in {
|
||||
|
||||
--flags lexer=codelit ; unlexer=codelit ;
|
||||
flags conversion=finite;
|
||||
|
||||
--# -path=.:../
|
||||
|
||||
lin
|
||||
makeS s = {s = s.s};
|
||||
|
||||
-- Linearizations of Greet, Quit, Answer, Ask and Request
|
||||
-- are moved to User and System respectively because of punctuation.
|
||||
|
||||
-- ICM
|
||||
|
||||
makeICMPer perI = {s = perI.s};
|
||||
|
||||
makeICMAcc accI = {s = accI.s};
|
||||
|
||||
|
||||
makeICMMove icm = {s = icm.s};
|
||||
|
||||
|
||||
|
||||
|
||||
-- LEXICON
|
||||
|
||||
pattern
|
||||
|
||||
top_command = (variants {["glömma allt"] ; ["börja om"]});
|
||||
-- end_command = "avsluta";
|
||||
|
||||
help_command = variants {"få" ; "ha"} ++ "hjälp" ;
|
||||
|
||||
yes = variants {"ja" ; "japp" ; "jajamen"};
|
||||
no = variants {"nej" ; "nepp" };
|
||||
|
||||
greet_command = variants { "hej" ; "tjena" ; "hallå"};
|
||||
bye_command = variants { ["hejdå"] ; "sluta" ; "avbryt" };
|
||||
|
||||
|
||||
-- ICMs
|
||||
-- Linearization of ICMs are moved to User and System
|
||||
-- respectively because of differing linearizations.
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
158
grammars/TALK/GF_GoDiS/Core/System/systemCore.gf
Normal file
158
grammars/TALK/GF_GoDiS/Core/System/systemCore.gf
Normal file
@@ -0,0 +1,158 @@
|
||||
-- general grammar
|
||||
--# -path=.:../Shared
|
||||
|
||||
abstract systemCore = sharedCore ** {
|
||||
|
||||
cat
|
||||
|
||||
DMoves;
|
||||
|
||||
|
||||
-- internal forms
|
||||
|
||||
--Proposition;
|
||||
Other_ICM;
|
||||
Other_ICM_Followed;
|
||||
Sem_ICM;
|
||||
Sem_ICM_Followed;
|
||||
Und_ICM;
|
||||
Und_ICM_Followed;
|
||||
|
||||
|
||||
|
||||
-- Confirm
|
||||
-- This is where the system confirms that the action has been taken.
|
||||
Confirm;
|
||||
|
||||
|
||||
-- Report
|
||||
-- This is where the system reports on the actions taken
|
||||
-- i.e. "The song Leviathan was added to the playlist"
|
||||
|
||||
-- The report consists of a Request.
|
||||
Report;
|
||||
Status;
|
||||
|
||||
-- Asks specific for the System
|
||||
SystemAsk;
|
||||
|
||||
|
||||
-- Issues
|
||||
|
||||
Issue;
|
||||
PropIssue;
|
||||
AskIssue;
|
||||
ListIssue;
|
||||
IssueList;
|
||||
ListItem;
|
||||
|
||||
|
||||
fun
|
||||
|
||||
-- BASICS
|
||||
|
||||
makeSofDMoves : DMoves -> S;
|
||||
makeDMPair : DMove -> DMove -> DMoves;
|
||||
makeDMList : DMove -> DMoves -> DMoves;
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
-- Plus en som tar en strang... oj oj for genereringen.
|
||||
-- makeICMPerString : Per_ICM_Followed -> String -> ICM;
|
||||
makeICMPerString : Per_ICM_Followed -> ICM;
|
||||
|
||||
makeICMSem : Sem_ICM -> ICM;
|
||||
makeICMSemMoveReq : Sem_ICM_Followed -> Request -> ICM;
|
||||
makeICMSemMoveAnswer : (t : Task) -> Sem_ICM_Followed -> Answer t -> ICM;
|
||||
makeICMSemMoveAsk : (t : Task) -> Sem_ICM_Followed -> Ask t -> ICM;
|
||||
|
||||
makeICMUnd : Und_ICM -> ICM;
|
||||
makeICMUndProp : (t : Task) -> Und_ICM_Followed -> Proposition t -> ICM;
|
||||
|
||||
makeICMOther : Other_ICM -> ICM;
|
||||
makeICMOtherIssue : Other_ICM_Followed -> ListItem -> ICM;
|
||||
makeICMOtherReq : (t : Task) -> Other_ICM_Followed -> Action t -> ICM;
|
||||
|
||||
makeICMAccIssue : Acc_ICM_Followed -> Issue -> ICM;
|
||||
|
||||
-- !!! Väldigt rekursivt!!!!
|
||||
|
||||
|
||||
|
||||
|
||||
-- Confirm
|
||||
--makeConfirm : SingleAction -> Confirm;
|
||||
makeConfirmMove : Confirm -> DMove;
|
||||
|
||||
|
||||
-- Report
|
||||
|
||||
-- Behöver en till kategori, en Status...
|
||||
-- Hmm... undrar hur jag ska gora det här snyggt.
|
||||
|
||||
|
||||
makeReport : SingleAction -> Status -> Report;
|
||||
makeReportMove : Report -> DMove;
|
||||
|
||||
-- Ask
|
||||
makeSystemAsk : SystemAsk -> DMove;
|
||||
makeAskSet : IssueList -> SystemAsk;
|
||||
makeInstantiatedAsk : (t : Task) -> Action t -> SystemAsk;
|
||||
makeInstantiatedAskSingle : SingleAction -> SystemAsk;
|
||||
|
||||
|
||||
-- Issues
|
||||
|
||||
makePropIssue : (t : Task) -> Proposition t -> PropIssue;
|
||||
|
||||
makeIssueProp : PropIssue -> Issue;
|
||||
makeIssueAsk : AskIssue -> Issue;
|
||||
makeIssueList : ListIssue -> Issue;
|
||||
|
||||
makePropIssue : (t : Task) -> Proposition t -> PropIssue;
|
||||
makeAskIssue : (t : Task) -> Ask t -> AskIssue;
|
||||
|
||||
--makeListItemProp : PropIssue -> ListItem;
|
||||
makeListItemAsk : AskIssue -> ListItem;
|
||||
makeListItemAction : (t : Task) -> Action t -> ListItem;
|
||||
makeListItemSingleAction : SingleAction -> ListItem;
|
||||
|
||||
makeListIssue : ListItem -> ListItem -> ListIssue;
|
||||
makeListIssue2 : ListItem -> ListIssue ->ListIssue;
|
||||
|
||||
makeActualListIssue : ListIssue -> IssueList;
|
||||
|
||||
-- Lexicon
|
||||
makeBasicAsk : SystemAsk;
|
||||
|
||||
sem_pos : Sem_ICM;
|
||||
sem_pos_followed : Sem_ICM_Followed;
|
||||
sem_neg : Sem_ICM;
|
||||
--sem_int : Sem_ICM;
|
||||
|
||||
und_pos : Und_ICM;
|
||||
und_pos_followed : Und_ICM_Followed;
|
||||
und_neg : Und_ICM;
|
||||
und_int : Und_ICM_Followed;
|
||||
|
||||
reraise : Other_ICM;
|
||||
reraise_followed : Other_ICM_Followed;
|
||||
loadplan : Other_ICM;
|
||||
accomodate : Other_ICM_Followed;
|
||||
reaccomodate : Other_ICM_Followed;
|
||||
|
||||
a_String : String;
|
||||
|
||||
status_done : Status;
|
||||
status_initiated : Status;
|
||||
status_pending : Status;
|
||||
status_failed : Status;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
146
grammars/TALK/GF_GoDiS/Core/System/systemCoreEng.gf
Normal file
146
grammars/TALK/GF_GoDiS/Core/System/systemCoreEng.gf
Normal file
@@ -0,0 +1,146 @@
|
||||
concrete systemCoreEng of systemCore = sharedCoreEng ** {
|
||||
|
||||
--flags lexer=text ; unlexer=text ; startcat=DMoveList ;
|
||||
--# -path=.:../:../Shared
|
||||
flags conversion=finite;
|
||||
|
||||
|
||||
lin
|
||||
|
||||
-- Greet
|
||||
makeGreetMove gre = {s = gre.s ++ "!"};
|
||||
|
||||
-- Quit
|
||||
makeQuitMove qui = {s = qui.s ++ "!"};
|
||||
|
||||
-- Answer
|
||||
makeAnswer _ ans = {s = ans.s};
|
||||
makeNegAnswer _ ans = {s = "not" ++ ans.s};
|
||||
makeAnswerMove _ sha = {s = sha.s ++ "."};
|
||||
makeNegAnswerMove _ sha = {s = sha.s ++ "."};
|
||||
|
||||
-- Ask
|
||||
singleAsk _ ask = {s = ask.s};
|
||||
makeYesNoAsk _ action = {s = action.s};
|
||||
makeAsk ask = {s = ask.s ++ "."};
|
||||
|
||||
|
||||
-- Request
|
||||
|
||||
-- makeRequestMove moved to System and User respectively
|
||||
-- because of differing linearizations
|
||||
|
||||
makeRequest req = {s = req.s ++ "."};
|
||||
makeRequestMove req = {s = req.s };
|
||||
makeNegRequestMove req = {s = req.s};
|
||||
|
||||
-- BASICS
|
||||
|
||||
makeSofDMoves dms = {s = dms.s};
|
||||
makeDMPair dm1 dm2 = {s = dm1.s ++ dm2.s};
|
||||
makeDMList dm dms = {s = dm.s ++ dms.s};
|
||||
|
||||
|
||||
-- Confirm
|
||||
|
||||
--makeConfirm req = {s = ["managed to"] ++ req.s ++ "."};
|
||||
makeConfirmMove conM = {s = conM.s ++ "."};
|
||||
|
||||
-- Report
|
||||
makeReport req status = {s = status.s ++ req.s ++ "." };
|
||||
makeReportMove repM = {s = repM.s};
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
-- makeICMPerString perI string = {s = perI.s ++ string.s ++ "."};
|
||||
makeICMPerString perI = {s = perI.s};
|
||||
|
||||
makeICMSem semI = {s = semI.s};
|
||||
makeICMSemMoveReq semI req = {s = semI.s ++ req.s ++ "."};
|
||||
makeICMSemMoveAnswer _ semI ans = {s = semI.s ++ ans.s ++ "."};
|
||||
makeICMSemMoveAsk _ semI ask = {s = semI.s ++ ask.s ++ "."};
|
||||
|
||||
|
||||
makeICMUnd undI = {s = undI.s};
|
||||
makeICMUndProp _ undI prop = {s = prop.s ++ undI.s };
|
||||
|
||||
makeICMAccIssue accI issue = {s = accI.s ++ [", i cannot answer questions about"] ++ issue.s ++ "."};
|
||||
|
||||
makeICMOther otherI = {s = otherI.s };
|
||||
makeICMOtherIssue otherI issue = {s = otherI.s ++ issue.s ++ "."};
|
||||
makeICMOtherReq _ other req = {s = other.s ++ req.s ++ "."};
|
||||
|
||||
|
||||
-- Ask
|
||||
|
||||
makeSystemAsk sysA = {s = sysA.s ++ "?"};
|
||||
makeAskSet set = {s = ["do you want to"] ++ set.s};
|
||||
makeInstantiatedAsk _ insA = {s = ["do you want to"] ++ insA.s };
|
||||
makeInstantiatedAskSingle insA = {s = ["do you want to"] ++ insA.s};
|
||||
|
||||
-- Isues
|
||||
|
||||
makePropIssue _ prop = {s = prop.s};
|
||||
|
||||
makeIssueProp pi = {s = pi.s};
|
||||
makeIssueAsk ai = {s = ai.s};
|
||||
makeIssueList li = {s = li.s};
|
||||
|
||||
--makePropIssue _ prop = {s = prop.s};
|
||||
makeAskIssue _ ask = {s = ask.s};
|
||||
|
||||
-- makeListItemProp propI = {s = propI.s};
|
||||
makeListItemAsk askI = {s = "ask" ++ "about" ++ askI.s};
|
||||
makeListItemAction _ action = {s = action.s};
|
||||
makeListItemSingleAction action = {s = action.s};
|
||||
|
||||
makeListIssue prop1 prop2 = {s = prop1.s ++ "or" ++ prop2.s};
|
||||
makeListIssue2 prop list = {s = prop.s ++ "," ++ list.s};
|
||||
|
||||
makeActualListIssue list = {s = list.s};
|
||||
|
||||
|
||||
pattern
|
||||
|
||||
makeBasicAsk = ["what can i do for you"];
|
||||
|
||||
sem_pos = "okay";
|
||||
sem_pos_followed = [""];
|
||||
sem_neg = ["i am sorry i do not understand ."];
|
||||
-- sem_int = ["what do you mean with"];
|
||||
|
||||
und_pos = ["okay ."];
|
||||
und_pos_followed = ["."];
|
||||
und_neg = ["i do not understand what you mean ."];
|
||||
und_int = [", is this correct ?"]; -- följer yttrandet!!!
|
||||
|
||||
per_pos = ["i thought you said"]; -- följs av en sträng
|
||||
|
||||
reraise = ["so ,"];
|
||||
reraise_followed = ["so ,"];
|
||||
loadplan = ["lets see ."];
|
||||
accomodate = ["i assume you mean"];
|
||||
reaccomodate = ["returning to "];
|
||||
|
||||
|
||||
-- ICMs
|
||||
-- Moved from General because of differing linearisations user and system.
|
||||
|
||||
per_neg = variants {["pardon i did not hear what you said ."] ; ["pardon ?"]; ["sorry ?"]};
|
||||
per_int = variants { ["pardon ?"] ; ["what did you say ?"] };
|
||||
|
||||
acc_pos = "okay";
|
||||
acc_neg = "sorry";
|
||||
acc_neg_alone = "sorry";
|
||||
|
||||
|
||||
status_done = ["managed to"];
|
||||
status_initiated = ["started to"];
|
||||
status_pending = ["waiting to"];
|
||||
status_failed = ["failed to"];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
128
grammars/TALK/GF_GoDiS/Core/System/systemCorePro.gf
Normal file
128
grammars/TALK/GF_GoDiS/Core/System/systemCorePro.gf
Normal file
@@ -0,0 +1,128 @@
|
||||
|
||||
|
||||
concrete systemCorePro of systemCore = sharedCorePro ** {
|
||||
|
||||
|
||||
flags lexer=codelit ; unlexer=concat ;
|
||||
flags conversion=finite;
|
||||
|
||||
|
||||
lincat
|
||||
|
||||
|
||||
-- Confirm
|
||||
-- This is where the system confirms that the action has been taken.
|
||||
Confirm = {s : Str};
|
||||
|
||||
|
||||
-- Report
|
||||
-- This is where the system reports on the actions taken
|
||||
-- i.e. "The song Leviathan was added to the playlist"
|
||||
|
||||
-- The report consists of a Request.
|
||||
Report = {s : Str};
|
||||
|
||||
lin
|
||||
|
||||
-- BASICS
|
||||
|
||||
makeSofDMoves dms = {s = "[" ++ dms.s ++ "]"};
|
||||
makeDMPair dm1 dm2 = {s = dm1.s ++ "," ++ dm2.s};
|
||||
makeDMList dm dms = {s = dm.s ++ "," ++ dms.s};
|
||||
|
||||
|
||||
|
||||
-- Confirm
|
||||
--makeConfirm req = { s = "confirm" ++ "(" ++ req.s ++ ")"};
|
||||
makeConfirmMove conM = {s = "confirm" ++ "(" ++ conM.s ++ ")"};
|
||||
|
||||
|
||||
-- Report
|
||||
makeReport req status = { s = "report" ++ "(" ++ req.s ++ "," ++ status.s ++ ")"};
|
||||
makeReportMove repM = {s = repM.s};
|
||||
|
||||
-- Ask
|
||||
|
||||
makeSystemAsk sysA = {s = "ask" ++ "(" ++ sysA.s ++ ")"};
|
||||
makeAskSet set = {s = set.s};
|
||||
makeInstantiatedAsk _ insA = {s = "action" ++ "(" ++ insA.s ++ ")"};
|
||||
makeInstantiatedAskSingle insA = {s = "action" ++ "(" ++ insA.s ++ ")"};
|
||||
|
||||
|
||||
-- ICM
|
||||
-- Plus en som tar en strang... oj oj for genereringen.
|
||||
-- makeICMPerString perI string = {s = perI.s ++ string.s};
|
||||
makeICMPerString perI = {s = perI.s };
|
||||
|
||||
makeICMSem semI = {s = semI.s};
|
||||
makeICMSemMoveReq semI req = {s = semI.s ++ ":" ++ req.s};
|
||||
makeICMSemMoveAnswer _ semI ans = {s = semI.s ++ ":" ++ ans.s};
|
||||
makeICMSemMoveAsk _ semI ask = {s = semI.s ++ ":" ++ ask.s};
|
||||
|
||||
makeICMUnd undI = {s = undI.s};
|
||||
makeICMUndProp _ undI prop = {s = undI.s ++ ":" ++ "usr" ++ "*" ++ prop.s};
|
||||
|
||||
|
||||
makeICMOther otherI = {s = otherI.s};
|
||||
makeICMOtherIssue otherI issue = {s = otherI.s ++ ":" ++ issue.s};
|
||||
makeICMOtherReq _ other req = {s = other.s ++ ":" ++ req.s};
|
||||
|
||||
makeICMAccIssue otherI issue = {s = otherI.s ++ ":" ++ issue.s};
|
||||
|
||||
-- !!! Väldigt rekursivt!!!!
|
||||
|
||||
-- Isues
|
||||
|
||||
makePropIssue _ prop = {s = prop.s};
|
||||
|
||||
makeIssueProp pi = {s = pi.s};
|
||||
makeIssueAsk ai = {s = ai.s};
|
||||
makeIssueList li = {s = li.s};
|
||||
|
||||
makePropIssue _ prop = {s = prop.s};
|
||||
makeAskIssue _ ask = {s = "X" ++ "^" ++ ask.s ++ "(" ++ "X" ++ ")"};
|
||||
|
||||
--makeListItemProp propI = {s = propI.s};
|
||||
makeListItemAsk askI = {s = "issue" ++ "(" ++ askI.s ++ ")"};
|
||||
makeListItemAction _ action = {s = variants {("action" ++ "(" ++ action.s ++ ")") ;
|
||||
action.s }};
|
||||
makeListItemSingleAction action = {s = variants { ("action" ++ "(" ++ action.s ++ ")") ;
|
||||
action.s }};
|
||||
|
||||
makeListIssue prop1 prop2 = {s = prop1.s ++ "," ++ prop2.s};
|
||||
makeListIssue2 prop list = {s = prop.s ++ "," ++ list.s};
|
||||
|
||||
makeActualListIssue list = {s = "set" ++ "(" ++ "[" ++ list.s ++ "]" ++ ")"};
|
||||
|
||||
|
||||
pattern
|
||||
|
||||
-- LEXICON
|
||||
|
||||
makeBasicAsk = ["x ^ action ( x )"]; -- OBS OBS!!!
|
||||
|
||||
sem_pos = ["sem * pos"];
|
||||
sem_pos_followed = ["sem * pos"];
|
||||
sem_neg = ["sem * neg"];
|
||||
--sem_int = ["sem * int"];
|
||||
|
||||
und_pos = ["und * pos"];
|
||||
und_pos_followed = ["und * pos"];
|
||||
und_neg = ["und * neg"];
|
||||
und_int = ["und * int"];
|
||||
|
||||
reraise = "reraise";
|
||||
reraise_followed = "reraise";
|
||||
loadplan = "loadplan";
|
||||
accomodate = "accomodate";
|
||||
reaccomodate = "reaccomodate";
|
||||
|
||||
status_done = "done";
|
||||
status_initiated = "initiated";
|
||||
status_pending = "pending";
|
||||
status_failed = "failed";
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
141
grammars/TALK/GF_GoDiS/Core/System/systemCoreSwe.gf
Normal file
141
grammars/TALK/GF_GoDiS/Core/System/systemCoreSwe.gf
Normal file
@@ -0,0 +1,141 @@
|
||||
concrete systemCoreSwe of systemCore = sharedCoreSwe ** {
|
||||
|
||||
--flags lexer=codelit ; unlexer=codelit ; startcat=DMoveList ;
|
||||
--# -path=.:../:../Shared
|
||||
flags conversion=finite;
|
||||
|
||||
lin
|
||||
|
||||
-- Greet
|
||||
makeGreetMove gre = {s = gre.s ++ "!"};
|
||||
|
||||
-- Quit
|
||||
makeQuitMove qui = {s = qui.s ++ "!"};
|
||||
|
||||
-- Answer
|
||||
makeAnswer _ ans = {s = ans.s};
|
||||
makeNegAnswer _ ans = {s = "inte" ++ ans.s};
|
||||
makeAnswerMove _ sha = {s = sha.s ++ "."};
|
||||
makeNegAnswerMove _ sha = {s = sha.s ++ "."};
|
||||
|
||||
-- Ask
|
||||
singleAsk _ ask = {s = ask.s};
|
||||
makeYesNoAsk _ action = {s = action.s};
|
||||
makeAsk ask = {s = ask.s ++ "."};
|
||||
|
||||
|
||||
-- Request
|
||||
|
||||
-- makeRequestMove moved to System and User respectively
|
||||
-- because of differing linearizations
|
||||
|
||||
makeRequest req = {s = req.s ++ "."};
|
||||
|
||||
makeRequestMove req = {s = req.s };
|
||||
makeNegRequestMove req = {s = req.s};
|
||||
|
||||
|
||||
|
||||
-- BASICS
|
||||
|
||||
makeSofDMoves dms = {s = dms.s};
|
||||
makeDMPair dm1 dm2 = {s = dm1.s ++ dm2.s};
|
||||
makeDMList dm dms = {s = dm.s ++ dms.s};
|
||||
|
||||
|
||||
-- Confirm
|
||||
|
||||
--makeConfirm req = {s = ["lyckades med att"] ++ req.s ++ "."};
|
||||
makeConfirmMove conM = {s = conM.s};
|
||||
|
||||
-- Report
|
||||
makeReport req status= {s = status.s ++ req.s ++ "."};
|
||||
makeReportMove repM = {s = repM.s};
|
||||
|
||||
|
||||
-- ICM
|
||||
|
||||
--makeICMPerString perI string = {s = perI.s ++ string.s ++ "."};
|
||||
makeICMPerString perI = {s = perI.s};
|
||||
|
||||
makeICMSem semI = {s = semI.s};
|
||||
makeICMSemMoveReq semI req = {s = semI.s ++ req.s ++ "."};
|
||||
makeICMSemMoveAnswer _ semI ans = {s = semI.s ++ "med" ++ ans.s ++ "."};
|
||||
makeICMSemMoveAsk _ semI ask = {s = semI.s ++ ask.s ++ "."};
|
||||
|
||||
|
||||
makeICMUnd undI = {s = undI.s};
|
||||
makeICMUndProp _ undI prop = {s = prop.s ++ "," ++ undI.s};
|
||||
|
||||
makeICMAccIssue accI issue = {s = accI.s ++ issue.s};
|
||||
|
||||
makeICMOther otherI = {s = otherI.s ++ "."};
|
||||
makeICMOtherIssue otherI issue = {s = otherI.s ++ issue.s ++ "."};
|
||||
|
||||
-- Ask
|
||||
|
||||
makeSystemAsk sysA = {s = sysA.s ++ "?"};
|
||||
makeAskSet set = {s = ["vill du"] ++ set.s};
|
||||
makeInstantiatedAsk _ insA = {s = ["vill du"] ++ insA.s};
|
||||
makeInstantiatedAskSingle insA = {s = ["vill du"] ++ insA.s};
|
||||
|
||||
-- Isues
|
||||
|
||||
makePropIssue _ prop = {s = prop.s};
|
||||
|
||||
makeIssueProp pi = {s = pi.s};
|
||||
makeIssueAsk ai = {s = ai.s};
|
||||
makeIssueList li = {s = li.s};
|
||||
|
||||
--makePropIssue prop = {s = prop.s};
|
||||
makeAskIssue _ ask = {s = ask.s};
|
||||
|
||||
-- makeListItemProp propI = {s = propI.s};
|
||||
makeListItemAsk askI = {s = "fråga" ++ "om" ++ askI.s};
|
||||
makeListItemAction _ action = {s = action.s};
|
||||
makeListItemSingleAction action = {s = action.s};
|
||||
|
||||
makeListIssue prop1 prop2 = {s = prop1.s ++ "eller" ++ prop2.s};
|
||||
|
||||
|
||||
|
||||
pattern
|
||||
|
||||
makeBasicAsk = ["vad kan jag göra för dig"];
|
||||
|
||||
sem_pos = "okej";
|
||||
sem_neg = ["förlåt jag förstår inte vad du menar."];
|
||||
-- sem_int = ["vad menar du med"];
|
||||
|
||||
und_pos = "okej.";
|
||||
und_neg = ["jag förstår inte vad du menar."];
|
||||
und_int = ["är det korrekt?"]; -- följer yttrandet!!!
|
||||
|
||||
per_pos = ["jag tyckte du sa"]; -- följs av en sträng
|
||||
|
||||
reraise = ["så ,"];
|
||||
reraise_followed = ["så ,"];
|
||||
loadplan = ["låt oss se ."];
|
||||
accomodate = ["jag antar att du menar"];
|
||||
reaccomodate = ["gå tillbaks till"];
|
||||
|
||||
|
||||
-- ICMs
|
||||
-- Moved from General because of differing linearisations user and system.
|
||||
|
||||
per_neg = variants {"ursäkta"; "förlåt" ; ["ursäkta jag hörde inte vad du sa"]};
|
||||
per_int = variants { "ursäkta" ; ["vad sa du"] };
|
||||
|
||||
acc_pos = "okej";
|
||||
acc_neg = ["ledsen jag kan inte svara på frågor om"];
|
||||
acc_neg_alone = "ledsen";
|
||||
|
||||
status_done = ["lyckades med att"];
|
||||
status_initiated = ["började med att"];
|
||||
status_pending = ["avvaktar med att"];
|
||||
status_failed = ["misslyckades med att"];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
27
grammars/TALK/GF_GoDiS/Core/User/userCore.gf
Normal file
27
grammars/TALK/GF_GoDiS/Core/User/userCore.gf
Normal file
@@ -0,0 +1,27 @@
|
||||
-- general grammar
|
||||
|
||||
abstract userCore = sharedCore ** {
|
||||
|
||||
cat
|
||||
-- A Dialogue Move that consists of a Request and arguments.
|
||||
CompoundedRequest;
|
||||
CompoundedAsk;
|
||||
AnswerList Task;
|
||||
|
||||
|
||||
fun
|
||||
|
||||
makeAnswerListS : (t : Task) -> AnswerList t -> DMove;
|
||||
|
||||
makeCompoundedRequest : CompoundedRequest -> DMove;
|
||||
makeNegCompoundedRequest : CompoundedRequest -> DMove;
|
||||
makeCompoundedAsk : CompoundedAsk -> DMove;
|
||||
|
||||
|
||||
requestCompounded : (t : Task) -> Action t -> Answer t -> CompoundedRequest ;
|
||||
requestCompoundedMulti : (t : Task) -> Action t -> AnswerList t -> CompoundedRequest;
|
||||
|
||||
makeAskMove : (t : Task) -> Ask t -> Answer t -> CompoundedAsk;
|
||||
|
||||
|
||||
}
|
||||
93
grammars/TALK/GF_GoDiS/Core/User/userCoreEng.gf
Normal file
93
grammars/TALK/GF_GoDiS/Core/User/userCoreEng.gf
Normal file
@@ -0,0 +1,93 @@
|
||||
concrete userCoreEng of userCore = sharedCoreEng ** open GenResEng in {
|
||||
|
||||
flags conversion=finite;
|
||||
|
||||
|
||||
lin
|
||||
|
||||
-- Greet
|
||||
makeGreetMove gre = {s = gre.s};
|
||||
|
||||
-- Quit
|
||||
makeQuitMove qui = {s = qui.s};
|
||||
|
||||
-- Answer
|
||||
makeAnswer _ ans = {s = ans.s};
|
||||
makeNegAnswer _ ans = {s = "not" ++ ans.s};
|
||||
makeAnswerMove _ sha = {s = sha.s};
|
||||
makeNegAnswerMove _ sha = {s = sha.s};
|
||||
|
||||
-- Ask
|
||||
singleAsk _ ask = {s = ask.s};
|
||||
makeYesNoAsk _ action = {s = action.s};
|
||||
makeAsk ask = {s = ask.s};
|
||||
|
||||
|
||||
|
||||
|
||||
-- Requests
|
||||
|
||||
|
||||
makeAnswerListS _ alist = {s = alist.s};
|
||||
requestCompounded _ req obj = {s = req.s ++ obj.s};
|
||||
requestCompoundedMulti _ req obj = {s = req.s ++ obj.s };
|
||||
|
||||
makeRequest req = {s = req.s};
|
||||
|
||||
makeCompoundedRequest crq = {s = variants {
|
||||
( (choosePre ! Req) ++ crq.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! Req) ++ crq.s );
|
||||
( crq.s ++ (choosePost ! Req) );
|
||||
( crq.s )
|
||||
}
|
||||
};
|
||||
|
||||
makeNegCompoundedRequest crq = {s = variants {
|
||||
( (choosePre ! ReqNeg) ++ crq.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! ReqNeg) ++ crq.s );
|
||||
( "not" ++ crq.s ++ (choosePost ! Req) );
|
||||
( "not" ++ crq.s )
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
makeRequestMove req = {s = variants {
|
||||
( req.s );
|
||||
( (choosePre ! Req) ++ req.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! Req) ++ req.s );
|
||||
( req.s ++ (choosePost ! Req) )
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
makeNegRequestMove req = {s = variants {
|
||||
( "not" ++ req.s );
|
||||
( (choosePre ! ReqNeg) ++ req.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! ReqNeg) ++ req.s );
|
||||
( "not" ++ req.s ++ (choosePost ! Req) )
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
-- Asks
|
||||
makeCompoundedAsk ask = {s = ask.s};
|
||||
|
||||
makeAskMove _ ques answer = {s = ques.s ++ answer.s};
|
||||
|
||||
pattern
|
||||
-- ICMs
|
||||
-- Moved from General because of differing linearisations for user and system.
|
||||
|
||||
per_neg = variants {"what" ; "pardon"; ["pardon i did not hear what you said"]};
|
||||
per_int = variants { "pardon" ; ["what did you say"] };
|
||||
|
||||
acc_pos = variants { "okay" ; "ok" ; "sure" ; "yup" ; "right" };
|
||||
acc_neg = ["i do not know"];
|
||||
acc_neg_alone = ["i do not know"];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
22
grammars/TALK/GF_GoDiS/Core/User/userCorePro.gf
Normal file
22
grammars/TALK/GF_GoDiS/Core/User/userCorePro.gf
Normal file
@@ -0,0 +1,22 @@
|
||||
concrete userCorePro of userCore = sharedCorePro ** {
|
||||
|
||||
flags lexer=code ; unlexer=concat ;
|
||||
flags conversion=finite;
|
||||
|
||||
|
||||
lin
|
||||
makeAnswerListS _ alist = {s = alist.s};
|
||||
|
||||
makeCompoundedRequest crq = {s = crq.s};
|
||||
makeNegCompoundedRequest crq = { s = "~" ++ crq.s};
|
||||
makeCompoundedAsk ask = {s = ask.s};
|
||||
|
||||
|
||||
requestCompounded _ req obj = {s = "request(" ++ req.s ++ ")," ++ obj.s };
|
||||
requestCompoundedMulti _ req obj = {s = "request(" ++ req.s ++ ")," ++ obj.s };
|
||||
|
||||
makeAskMove _ ques answer = {s = "ask" ++ "(" ++ "X" ++ "^" ++ ques.s ++
|
||||
"(" ++ "X" ++ ")" ++ ")," ++ answer.s};
|
||||
|
||||
}
|
||||
|
||||
98
grammars/TALK/GF_GoDiS/Core/User/userCoreSwe.gf
Normal file
98
grammars/TALK/GF_GoDiS/Core/User/userCoreSwe.gf
Normal file
@@ -0,0 +1,98 @@
|
||||
concrete userCoreSwe of userCore = sharedCoreSwe ** open GenResSwe in {
|
||||
|
||||
flags conversion=finite;
|
||||
|
||||
|
||||
lin
|
||||
|
||||
-- Greet
|
||||
makeGreetMove gre = {s = gre.s};
|
||||
|
||||
-- Quit
|
||||
makeQuitMove qui = {s = qui.s};
|
||||
|
||||
-- Answer
|
||||
makeAnswer _ ans = {s = ans.s};
|
||||
makeNegAnswer _ ans = {s = "inte" ++ ans.s};
|
||||
makeAnswerMove _ sha = {s = sha.s};
|
||||
makeNegAnswerMove _ sha = {s = sha.s};
|
||||
|
||||
-- Ask
|
||||
singleAsk _ ask = {s = ask.s};
|
||||
makeYesNoAsk _ action = {s = action.s};
|
||||
makeAsk ask = {s = ask.s };
|
||||
|
||||
|
||||
-- Request
|
||||
|
||||
-- makeRequestMove moved to System and User respectively
|
||||
-- because of differing linearizations
|
||||
|
||||
makeRequest req = {s = req.s};
|
||||
|
||||
|
||||
|
||||
-- Requests
|
||||
|
||||
|
||||
makeAnswerListS _ alist = {s = alist.s};
|
||||
requestCompounded _ req obj = {s = req.s ++ obj.s};
|
||||
requestCompoundedMulti _ req obj = {s = req.s ++ obj.s };
|
||||
|
||||
|
||||
makeRequestMove req = {s = variants {
|
||||
( req.s );
|
||||
( (choosePre ! Req) ++ req.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! Req) ++ req.s );
|
||||
( req.s ++ (choosePost ! Req) )
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
makeNegCompoundedRequest crq = {s = variants {
|
||||
( (choosePre ! ReqNeg) ++ crq.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! ReqNeg) ++ crq.s );
|
||||
( "inte" ++ crq.s ++ (choosePost ! Req) );
|
||||
( "inte" ++ crq.s )
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
makeCompoundedRequest crq = {s = variants {
|
||||
( (choosePre ! Req) ++ crq.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! Req) ++ crq.s );
|
||||
( crq.s ++ (choosePost ! Req) );
|
||||
( crq.s )
|
||||
}
|
||||
};
|
||||
|
||||
makeNegRequestMove req = {s = variants {
|
||||
( "inte" ++ req.s );
|
||||
( (choosePre ! ReqNeg) ++ req.s ++ (choosePost ! Req) );
|
||||
( (choosePre ! ReqNeg) ++ req.s );
|
||||
( "inte" ++ req.s ++ (choosePost ! Req) )
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
-- Asks
|
||||
makeCompoundedAsk ask = {s = ask.s};
|
||||
|
||||
makeAskMove _ ques answer = {s = ques.s ++ answer.s};
|
||||
|
||||
pattern
|
||||
-- ICMs
|
||||
-- Moved from General because of differing linearisations for user and system.
|
||||
|
||||
per_neg = variants {"va" ; "ursäkta"; "förlåt" ; ["ursäkta jag hörde inte vad du sa"]};
|
||||
per_int = variants { "ursäkta" ; ["vad sa du"] };
|
||||
|
||||
acc_pos = variants { "okej" ; "ok" ; "visst" ; "japp" ; "jaha" };
|
||||
acc_neg = ["vet inte"];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user