summaryrefslogtreecommitdiff
path: root/examples/dialogue/Dialogue.gf
blob: 41f805c9322e347d51a0d6f4863c2928230d51c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
abstract Dialogue = {

  flags startcat=Move ;

  cat
    Move ;
    Action ;
    Proposition ;
    Question ;
    Kind ;
    Object Kind ;
    Oper0 ;
    Oper1 Kind ;
    Oper2 Kind Kind ;

  fun
    IRequest : Action -> Input ;
    IConfirm : Action -> Input ;
    IAnswer  : Proposition -> Input ;
    IIssue   : Question -> Input ;

    IYes     : Input ;
    INo      : Input ;
    IObject  : (k : Kind) -> Object k -> Input ;

    PAction  : Action -> Proposition ;

    QKind  : Kind -> Question ;

    AOper0 :                 Oper0                             -> Action ;
    AOper1 : (k   : Kind) -> Oper1 k   -> Object k             -> Action ;
    AOper2 : (k,m : Kind) -> Oper2 k m -> Object k -> Object m -> Action ;

    OAll   : (k : Kind) -> Object k ;
    OIndef : (k : Kind) -> Object k ;
    ODef   : (k : Kind) -> Object k ;

-- multimodality

  cat
    Click ;
    Input ;  -- multimodal asynchronous input
    Speech ; -- speech only
  fun
    OThis     : (k : Kind) -> Click -> Object k ;
    OThisKind : (k : Kind) -> Click -> Object k ;

    MInput : Input -> Move ;
    SInput : Input -> Speech ;

    MkClick : String -> Click ;
}