This repository was archived by the owner on Jan 21, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathChitchat.gf
More file actions
83 lines (62 loc) · 3.07 KB
/
Chitchat.gf
File metadata and controls
83 lines (62 loc) · 3.07 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
abstract Chitchat = {
flags startcat = Sentence;
cat Sentence; cat Restriction;
fun SayQuestion : Question -> Sentence; --is something the case?
fun SayStatement : Statement -> Sentence; --something is the case
fun SayDenial : Denial -> Sentence; --something is not the case
fun SayYesStatement : Statement -> Sentence; --yes, something is the case
fun SayNoDenial : Denial -> Sentence; --no, something is not the case
fun SayNoDenialBut : Denial -> Restriction -> Sentence; -- no, something is not the case, but
fun SayNoStatement : Statement -> Sentence; --no, something is the case
cat Question; --is something the case?
cat Statement; --something is the case
cat Denial; --something isn't the case
fun Ask : Clause -> Question;
fun State : Clause -> Statement;
fun Deny : Clause -> Denial;
cat Clause; --something is/isn't/is? the case
-----------
--Templates
-----------
fun QReside : Person -> Question; --where does [person] live?
fun CResideCountry : Person -> Country -> Clause; --[somebody] lives in [country]
fun CResideCity : Person -> City -> Clause; --[somebody] lives in [city]
fun QOriginate : Person -> Question; --where does [person] come from?
fun COriginateCountry : Person -> Country -> Clause; --[somebody] comes from [country]
fun COriginateCity : Person -> City -> Clause; --[somebody] comes from [city]
fun CSettlement : Person -> Settlement -> Clause; --somebody lives in [a large city/a small town/...]
fun CSettlementCountry : Person -> Settlement -> Country -> Clause; --somebody lives in [a large city/a small town/...] in [country]
fun CHaveGBFriend : Person -> GBFriend -> Clause; --[person] has [girlfriend/boyfriend]
fun QMaritalStatus : Person -> Question; --is [person] single or married?
fun CMaritalStatus : Person -> MaritalStatus -> Clause; --[person] is [single/married/...]
fun CHaveJob : Person -> Clause; --[person] has a job
fun CJobStatus : Person -> JobStatus -> Clause; --[person] is [employed/unemployed/...]
fun QName : Person -> Question; --what is [person]'s name?
fun CName : Person -> Name -> Clause; --[person]'s name is [...]
fun DontGetFunnyIdeas : Restriction;
fun NotApproving : Person -> Restriction;
fun NeverthelessHappy : Restriction;
----------
--Entities
----------
cat Person;
fun P1f, P1m : Person; --me feminine, me masculine
fun P2tf, P2tm : Person; --you informally feminine, you informally masculine
fun P2vf, P2vm : Person; --you politely feminine, you politely masculine
fun P3f, P3m : Person; --he, she
fun PMother, PFather : Person -> Person; --[someone]'s mother, [someone]'s father
cat Country;
fun Ireland, CzechRepublic, Latvia : Country;
cat City;
fun Dublin, Brno, Riga : City;
cat Settlement;
fun BigCity, SmallTown, Village : Settlement;
cat GBFriend;
fun Girlfriend, Boyfriend : GBFriend;
cat MaritalStatus;
fun Single, Married, Divorced, Widowed : MaritalStatus;
cat JobStatus;
fun Student, Unemployed, SelfEmployed, Retired : JobStatus;
cat Name;
fun AName : Name; --placeholder for a name, linearize as "..."
}