summaryrefslogtreecommitdiff
path: root/grammars/TALK/GF_GoDiS/Core/System
diff options
context:
space:
mode:
authoraarne <unknown>2005-06-27 12:20:33 +0000
committeraarne <unknown>2005-06-27 12:20:33 +0000
commit3c508f4f89557318d8e0b50372a3f0d024e317f0 (patch)
tree3251ede247f32b51ad4d4204e84a1c325c8fe628 /grammars/TALK/GF_GoDiS/Core/System
parentb9e13711db0085b25e9257d1034b43a3a2c47b7e (diff)
added Ann-Charlotte's grammars
Diffstat (limited to 'grammars/TALK/GF_GoDiS/Core/System')
-rw-r--r--grammars/TALK/GF_GoDiS/Core/System/systemCore.gf158
-rw-r--r--grammars/TALK/GF_GoDiS/Core/System/systemCoreEng.gf146
-rw-r--r--grammars/TALK/GF_GoDiS/Core/System/systemCorePro.gf128
-rw-r--r--grammars/TALK/GF_GoDiS/Core/System/systemCoreSwe.gf141
4 files changed, 573 insertions, 0 deletions
diff --git a/grammars/TALK/GF_GoDiS/Core/System/systemCore.gf b/grammars/TALK/GF_GoDiS/Core/System/systemCore.gf
new file mode 100644
index 000000000..e2cc71ab5
--- /dev/null
+++ b/grammars/TALK/GF_GoDiS/Core/System/systemCore.gf
@@ -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;
+
+}
+
+
+
+
+
+
diff --git a/grammars/TALK/GF_GoDiS/Core/System/systemCoreEng.gf b/grammars/TALK/GF_GoDiS/Core/System/systemCoreEng.gf
new file mode 100644
index 000000000..b0cd17c2e
--- /dev/null
+++ b/grammars/TALK/GF_GoDiS/Core/System/systemCoreEng.gf
@@ -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"];
+
+
+}
+
+
diff --git a/grammars/TALK/GF_GoDiS/Core/System/systemCorePro.gf b/grammars/TALK/GF_GoDiS/Core/System/systemCorePro.gf
new file mode 100644
index 000000000..6b037b967
--- /dev/null
+++ b/grammars/TALK/GF_GoDiS/Core/System/systemCorePro.gf
@@ -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";
+
+
+
+}
+
diff --git a/grammars/TALK/GF_GoDiS/Core/System/systemCoreSwe.gf b/grammars/TALK/GF_GoDiS/Core/System/systemCoreSwe.gf
new file mode 100644
index 000000000..67e60a59b
--- /dev/null
+++ b/grammars/TALK/GF_GoDiS/Core/System/systemCoreSwe.gf
@@ -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"];
+
+
+}
+
+