summaryrefslogtreecommitdiff
path: root/examples/query/small/patentsQuery/Query.gf
blob: 83eb8789208e605234f9881f6b26ce8e285757d6 (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
abstract Query = {

flags
  startcat = Move ;

-- general query language, which can be specialized with any lexicon

cat
  Move ;       -- top-level utterance,    e.g. "give me all Bulgarian persons that work at Google"
  Query ;
  Answer ;
  Set ;        -- the set requested,      e.g. "all persons"
  Relation ;   -- something of something, e.g. "subregion of Bulgaria"
  Kind ;       -- type of things,         e.g. "person"
  Property ;   -- property of things,     e.g. "employed at Google"
  Individual ; -- one entity,             e.g. "Google"
  Activity ;   -- action property,        e.g. "work at Google"
  Name ;       -- person, company...      e.g. "Eric Schmidt"
  Loc ;
  Org ;
  Pers ;
  [Individual] {2} ; -- list of entities, e.g. "Larry Page, Sergey Brin"

fun
  MQuery  : Query -> Move ;
  MAnswer : Answer -> Move ;

  QSet    : Set  -> Query ;  -- (give me | what are | which are | ) (S | the names of S | S's names)
  QWhere  : Set  -> Query ;  -- where are S
  QInfo   : Set  -> Query ;  -- (give me | ) (information about | all about) S

  AKind  : Set  -> Kind     -> Answer ; -- S is a K
  AProp  : Set  -> Property -> Answer ; -- S is P
  AAct   : Set  -> Activity -> Answer ; -- S As

  SAll    : Kind -> Set ;  -- all Ks | the Ks
  SOne    : Kind -> Set ;  -- one K
  SIndef  : Kind -> Set ;  -- a K
  SPlural : Kind -> Set ;  -- Ks
  SOther  : Kind -> Set ;  -- other Ks
  SInd    : Individual  -> Set ;  -- X
  SInds   : [Individual] -> Set ; -- X and Y

  KRelSet  : Relation -> Set -> Kind ; -- R of S | S's R
  KRelKind : Kind -> Relation -> Set -> Kind ; -- K that is R of S
  KRelPair : Kind -> Relation -> Kind ; -- S's with their R's
  KProp    : Property -> Kind -> Kind ; -- P K | K that is P
  KAct     : Activity -> Kind -> Kind ; -- K that Ps
  KRel     : Relation -> Kind ; -- R ---??
}