mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
query language versions merged
This commit is contained in:
@@ -9,14 +9,18 @@ cat
|
|||||||
Move ; -- top-level utterance, e.g. "give me all Bulgarian persons that work at Google"
|
Move ; -- top-level utterance, e.g. "give me all Bulgarian persons that work at Google"
|
||||||
Query ;
|
Query ;
|
||||||
Answer ;
|
Answer ;
|
||||||
Set ; -- the set requested, e.g. "all persons"
|
Set ; -- the set requested, e.g. "all persons"
|
||||||
Interrogative ; -- interrog. pron. e.g. "who"
|
Interrogative ; -- interrog. pron. e.g. "who"
|
||||||
Function ; -- something of something, e.g. "subregion of Bulgaria"
|
Function ; -- something of something, e.g. "subregion of Bulgaria"
|
||||||
Kind ; -- type of things, e.g. "person"
|
Kind ; -- type of things, e.g. "person"
|
||||||
Relation ; -- relation between things,e.g. "employed at"
|
Relation ; -- relation between things,e.g. "employed at"
|
||||||
Property ; -- property of things, e.g. "employed at Google"
|
Property ; -- property of things, e.g. "employed at Google"
|
||||||
Individual ; -- one entity, e.g. "Google"
|
Individual ; -- one entity, e.g. "Google"
|
||||||
Name ; -- person, company... e.g. "Eric Schmidt"
|
-- 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"
|
[Individual] {2} ; -- list of entities, e.g. "Larry Page, Sergey Brin"
|
||||||
|
|
||||||
fun
|
fun
|
||||||
@@ -39,6 +43,7 @@ fun
|
|||||||
AInd : Set -> Individual -> Answer ; -- S is I
|
AInd : Set -> Individual -> Answer ; -- S is I
|
||||||
AName : Set -> Name -> Answer ; -- N is the name of S
|
AName : Set -> Name -> Answer ; -- N is the name of S
|
||||||
AProp : Set -> Property -> Answer ; -- S is P
|
AProp : Set -> Property -> Answer ; -- S is P
|
||||||
|
-- AAct : Set -> Activity -> Answer ; -- S As --+
|
||||||
|
|
||||||
SAll : Kind -> Set ; -- all Ks | the Ks
|
SAll : Kind -> Set ; -- all Ks | the Ks
|
||||||
SFun : Set -> Function -> Set ; -- S's Rs
|
SFun : Set -> Function -> Set ; -- S's Rs
|
||||||
@@ -59,10 +64,15 @@ fun
|
|||||||
KFunKind : Kind -> Function -> Set -> Kind ; -- K that is R of S
|
KFunKind : Kind -> Function -> Set -> Kind ; -- K that is R of S
|
||||||
KFunPair : Kind -> Function -> Kind ; -- S's with their R's
|
KFunPair : Kind -> Function -> Kind ; -- S's with their R's
|
||||||
KProp : Property -> Kind -> Kind ; -- P K | K that is P
|
KProp : Property -> Kind -> Kind ; -- P K | K that is P
|
||||||
|
-- KAct : Activity -> Kind -> Kind ; -- K that Ps
|
||||||
KFun : Function -> Kind ; -- R ---??
|
KFun : Function -> Kind ; -- R ---??
|
||||||
|
|
||||||
IName : Name -> Individual ;
|
IName : Name -> Individual ;
|
||||||
|
|
||||||
|
NLoc : Loc -> Name ;
|
||||||
|
NOrg : Org -> Name ;
|
||||||
|
NPers : Pers -> Name ;
|
||||||
|
|
||||||
PCalled : Individual -> Property ; -- also called I
|
PCalled : Individual -> Property ; -- also called I
|
||||||
PCalleds : [Individual] -> Property ; -- also called I or J
|
PCalleds : [Individual] -> Property ; -- also called I or J
|
||||||
|
|
||||||
@@ -100,10 +110,10 @@ fun
|
|||||||
Region : Function ;
|
Region : Function ;
|
||||||
Subregion : Function ;
|
Subregion : Function ;
|
||||||
|
|
||||||
USA : Country ;
|
-- USA : Country ;
|
||||||
California : Country ;
|
-- California : Country ;
|
||||||
Bulgaria : Country ;
|
-- Bulgaria : Country ;
|
||||||
OblastSofiya : Name ;
|
-- OblastSofiya : Name ;
|
||||||
|
|
||||||
FName : Function ;
|
FName : Function ;
|
||||||
FNickname : Function ;
|
FNickname : Function ;
|
||||||
@@ -111,20 +121,46 @@ fun
|
|||||||
|
|
||||||
SJobTitle : JobTitle -> Set ; -- a programmer
|
SJobTitle : JobTitle -> Set ; -- a programmer
|
||||||
|
|
||||||
CEO : JobTitle ;
|
-- JobTitles
|
||||||
ChiefInformationOfficer : JobTitle ;
|
JobTitle1 : JobTitle ;
|
||||||
|
JobTitle2 : JobTitle ;
|
||||||
Microsoft : Name ;
|
JobTitle3 : JobTitle ;
|
||||||
Google : Name ;
|
JobTitle4 : JobTitle ;
|
||||||
|
|
||||||
|
-- Locations
|
||||||
|
Location1 : Loc ;
|
||||||
|
Location2 : Loc ;
|
||||||
|
Location3 : Loc ;
|
||||||
|
Location4 : Loc ;
|
||||||
|
|
||||||
|
-- Organizations
|
||||||
|
Organization1 : Org ;
|
||||||
|
Organization2 : Org ;
|
||||||
|
Organization3 : Org ;
|
||||||
|
Organization4 : Org ;
|
||||||
|
|
||||||
|
-- Persons
|
||||||
|
Person1 : Pers ;
|
||||||
|
Person2 : Pers ;
|
||||||
|
Person3 : Pers ;
|
||||||
|
Person4 : Pers ;
|
||||||
|
|
||||||
|
-- CEO : JobTitle ;
|
||||||
|
-- ChiefInformationOfficer : JobTitle ;
|
||||||
|
|
||||||
|
-- Microsoft : Name ;
|
||||||
|
-- Google : Name ;
|
||||||
|
|
||||||
|
-- SergeyBrin : Name ;
|
||||||
|
-- LarryPage : Name ;
|
||||||
|
-- EricSchmidt : Name ;
|
||||||
|
-- MarissaMayer : Name ;
|
||||||
|
-- UdiManber : Name ;
|
||||||
|
-- CarlGustavJung : Name ;
|
||||||
|
-- Jung : Name ;
|
||||||
|
-- BenFried : Name ;
|
||||||
|
|
||||||
|
|
||||||
SergeyBrin : Name ;
|
|
||||||
LarryPage : Name ;
|
|
||||||
EricSchmidt : Name ;
|
|
||||||
MarissaMayer : Name ;
|
|
||||||
UdiManber : Name ;
|
|
||||||
CarlGustavJung : Name ;
|
|
||||||
Jung : Name ;
|
|
||||||
BenFried : Name ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -73,26 +73,6 @@ lin
|
|||||||
|
|
||||||
SJobTitle t = mkNP a_Det t ;
|
SJobTitle t = mkNP a_Det t ;
|
||||||
|
|
||||||
USA = mkCountry "USA" "American" ;
|
|
||||||
Bulgaria = mkCountry "Bulgaria" "Bulgarian" ;
|
|
||||||
California = mkCountry "California" "Californian" ;
|
|
||||||
OblastSofiya = mkName "Oblast Sofiya" ;
|
|
||||||
|
|
||||||
CEO = mkCN (mkN "CEO") ;
|
|
||||||
ChiefInformationOfficer = mkCN (mkN "Chief Information Officer") ;
|
|
||||||
|
|
||||||
Microsoft = mkName "Microsoft" ;
|
|
||||||
Google = mkName "Google" ;
|
|
||||||
|
|
||||||
SergeyBrin = mkName "Sergey Brin" ;
|
|
||||||
LarryPage = mkName "Larry Page" ;
|
|
||||||
EricSchmidt = mkName "Eric Schmidt" ;
|
|
||||||
MarissaMayer = mkName "Marissa Mayer" ;
|
|
||||||
UdiManber = mkName "Udi Manber" ;
|
|
||||||
CarlGustavJung = mkName "Carl Gustav Jung" ;
|
|
||||||
Jung = mkName "Jung" ;
|
|
||||||
BenFried = mkName "Ben Fried" ;
|
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkCountry : Str -> Str -> {np : NP ; a : A} =
|
mkCountry : Str -> Str -> {np : NP ; a : A} =
|
||||||
\n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
|
\n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
|
||||||
@@ -102,5 +82,29 @@ oper
|
|||||||
mkFunction : Str -> Fun =
|
mkFunction : Str -> Fun =
|
||||||
\s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ;
|
\s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
-- JobTitles
|
||||||
|
JobTitle1 = mkCN (mkN "'JobTitle1") ;
|
||||||
|
JobTitle2 = mkCN (mkN "'JobTitle2") ;
|
||||||
|
JobTitle3 = mkCN (mkN "'JobTitle3") ;
|
||||||
|
JobTitle4 = mkCN (mkN "'JobTitle4") ;
|
||||||
|
|
||||||
|
-- Locations
|
||||||
|
Location1 = mkName "'Location1" ;
|
||||||
|
Location2 = mkName "'Location2" ;
|
||||||
|
Location3 = mkName "'Location3" ;
|
||||||
|
Location4 = mkName "'Location4" ;
|
||||||
|
|
||||||
|
-- Organizations
|
||||||
|
Organization1 = mkName "'Organization1" ;
|
||||||
|
Organization2 = mkName "'Organization2" ;
|
||||||
|
Organization3 = mkName "'Organization3" ;
|
||||||
|
Organization4 = mkName "'Organization4" ;
|
||||||
|
|
||||||
|
-- Persons
|
||||||
|
Person1 = mkName "'Person1" ;
|
||||||
|
Person2 = mkName "'Person2" ;
|
||||||
|
Person3 = mkName "'Person3" ;
|
||||||
|
Person4 = mkName "'Person4" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ lincat
|
|||||||
Relation = Rel ; -- = {ap : AP ; vp : VP ; prep : Prep} ;
|
Relation = Rel ; -- = {ap : AP ; vp : VP ; prep : Prep} ;
|
||||||
Individual = NP ;
|
Individual = NP ;
|
||||||
Name = NP ;
|
Name = NP ;
|
||||||
|
Loc = NP ;
|
||||||
|
Org = NP ;
|
||||||
|
Pers = NP ;
|
||||||
[Individual] = [NP] ;
|
[Individual] = [NP] ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
@@ -176,5 +179,8 @@ lin
|
|||||||
NCountry c = c.np ;
|
NCountry c = c.np ;
|
||||||
PCountry c = propAP (mkAP c.a) ;
|
PCountry c = propAP (mkAP c.a) ;
|
||||||
|
|
||||||
|
NLoc n = n ;
|
||||||
|
NOrg n = n ;
|
||||||
|
NPers n = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,26 +90,6 @@ lin
|
|||||||
|
|
||||||
SJobTitle t = mkNP a_Det t ;
|
SJobTitle t = mkNP a_Det t ;
|
||||||
|
|
||||||
USA = mkCountry "USA" "amerikansk" ;
|
|
||||||
Bulgaria = mkCountry "Bulgarien" "bulgarisk" ;
|
|
||||||
California = mkCountry "Kalifornien" "Kalifornisk" ;
|
|
||||||
OblastSofiya = mkName "Oblast Sofiya" ;
|
|
||||||
|
|
||||||
CEO = mkCN (mkN "VD" "VD:ar") ;
|
|
||||||
ChiefInformationOfficer = mkCN (mkN "chefsinformatör" "chefsinformatörer") ;
|
|
||||||
|
|
||||||
Microsoft = mkName "Microsoft" ;
|
|
||||||
Google = mkName "Google" ;
|
|
||||||
|
|
||||||
SergeyBrin = mkName "Sergey Brin" ;
|
|
||||||
LarryPage = mkName "Larry Page" ;
|
|
||||||
EricSchmidt = mkName "Eric Schmidt" ;
|
|
||||||
MarissaMayer = mkName "Marissa Mayer" ;
|
|
||||||
UdiManber = mkName "Udi Manber" ;
|
|
||||||
CarlGustavJung = mkName "Carl Gustav Jung" ;
|
|
||||||
Jung = mkName "Jung" ;
|
|
||||||
BenFried = mkName "Ben Fried" ;
|
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkCountry : Str -> Str -> {np : NP ; a : A} =
|
mkCountry : Str -> Str -> {np : NP ; a : A} =
|
||||||
\n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
|
\n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
|
||||||
@@ -121,4 +101,30 @@ oper
|
|||||||
mkFunctionP : N -> Prep -> Fun =
|
mkFunctionP : N -> Prep -> Fun =
|
||||||
\n,p -> {cn = mkCN n ; prep = p} ;
|
\n,p -> {cn = mkCN n ; prep = p} ;
|
||||||
|
|
||||||
|
|
||||||
|
lin
|
||||||
|
-- JobTitles
|
||||||
|
JobTitle1 = mkCN (mkN "'JobTitle1") ;
|
||||||
|
JobTitle2 = mkCN (mkN "'JobTitle2") ;
|
||||||
|
JobTitle3 = mkCN (mkN "'JobTitle3") ;
|
||||||
|
JobTitle4 = mkCN (mkN "'JobTitle4") ;
|
||||||
|
|
||||||
|
-- Locations
|
||||||
|
Location1 = mkName "'Location1" ;
|
||||||
|
Location2 = mkName "'Location2" ;
|
||||||
|
Location3 = mkName "'Location3" ;
|
||||||
|
Location4 = mkName "'Location4" ;
|
||||||
|
|
||||||
|
-- Organizations
|
||||||
|
Organization1 = mkName "'Organization1" ;
|
||||||
|
Organization2 = mkName "'Organization2" ;
|
||||||
|
Organization3 = mkName "'Organization3" ;
|
||||||
|
Organization4 = mkName "'Organization4" ;
|
||||||
|
|
||||||
|
-- Persons
|
||||||
|
Person1 = mkName "'Person1" ;
|
||||||
|
Person2 = mkName "'Person2" ;
|
||||||
|
Person3 = mkName "'Person3" ;
|
||||||
|
Person4 = mkName "'Person4" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
26
examples/query/TestQuery.gf
Normal file
26
examples/query/TestQuery.gf
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
abstract TestQuery = Query ** {
|
||||||
|
|
||||||
|
fun
|
||||||
|
USA : Country ;
|
||||||
|
California : Country ;
|
||||||
|
Bulgaria : Country ;
|
||||||
|
OblastSofiya : Name ;
|
||||||
|
|
||||||
|
CEO : JobTitle ;
|
||||||
|
ChiefInformationOfficer : JobTitle ;
|
||||||
|
|
||||||
|
Microsoft : Name ;
|
||||||
|
Google : Name ;
|
||||||
|
|
||||||
|
SergeyBrin : Name ;
|
||||||
|
LarryPage : Name ;
|
||||||
|
EricSchmidt : Name ;
|
||||||
|
MarissaMayer : Name ;
|
||||||
|
UdiManber : Name ;
|
||||||
|
CarlGustavJung : Name ;
|
||||||
|
Jung : Name ;
|
||||||
|
BenFried : Name ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
38
examples/query/TestQueryEng.gf
Normal file
38
examples/query/TestQueryEng.gf
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
concrete TestQueryEng of TestQuery = QueryEng **
|
||||||
|
open
|
||||||
|
LexQueryEng,
|
||||||
|
ParadigmsEng,
|
||||||
|
IrregEng,
|
||||||
|
SyntaxEng,
|
||||||
|
ExtraEng,
|
||||||
|
(L = LangEng),
|
||||||
|
(M = MakeStructuralEng),
|
||||||
|
Prelude
|
||||||
|
in {
|
||||||
|
|
||||||
|
-- test lexicon
|
||||||
|
|
||||||
|
lin
|
||||||
|
USA = mkCountry "USA" "American" ;
|
||||||
|
Bulgaria = mkCountry "Bulgaria" "Bulgarian" ;
|
||||||
|
California = mkCountry "California" "Californian" ;
|
||||||
|
OblastSofiya = mkName "Oblast Sofiya" ;
|
||||||
|
|
||||||
|
CEO = mkCN (mkN "CEO") ;
|
||||||
|
ChiefInformationOfficer = mkCN (mkN "Chief Information Officer") ;
|
||||||
|
|
||||||
|
Microsoft = mkName "Microsoft" ;
|
||||||
|
Google = mkName "Google" ;
|
||||||
|
|
||||||
|
SergeyBrin = mkName "Sergey Brin" ;
|
||||||
|
LarryPage = mkName "Larry Page" ;
|
||||||
|
EricSchmidt = mkName "Eric Schmidt" ;
|
||||||
|
MarissaMayer = mkName "Marissa Mayer" ;
|
||||||
|
UdiManber = mkName "Udi Manber" ;
|
||||||
|
CarlGustavJung = mkName "Carl Gustav Jung" ;
|
||||||
|
Jung = mkName "Jung" ;
|
||||||
|
BenFried = mkName "Ben Fried" ;
|
||||||
|
|
||||||
|
}
|
||||||
38
examples/query/TestQuerySwe.gf
Normal file
38
examples/query/TestQuerySwe.gf
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
--# -path=.:present
|
||||||
|
|
||||||
|
concrete TestQuerySwe of TestQuery = QuerySwe **
|
||||||
|
open
|
||||||
|
LexQuerySwe,
|
||||||
|
ParadigmsSwe,
|
||||||
|
IrregSwe,
|
||||||
|
SyntaxSwe,
|
||||||
|
ExtraSwe,
|
||||||
|
(L = LangSwe),
|
||||||
|
(M = MakeStructuralSwe),
|
||||||
|
Prelude
|
||||||
|
in {
|
||||||
|
|
||||||
|
-- test lexicon
|
||||||
|
|
||||||
|
lin
|
||||||
|
USA = mkCountry "USA" "amerikansk" ;
|
||||||
|
Bulgaria = mkCountry "Bulgarien" "bulgarisk" ;
|
||||||
|
California = mkCountry "Kalifornien" "Kalifornisk" ;
|
||||||
|
OblastSofiya = mkName "Oblast Sofiya" ;
|
||||||
|
|
||||||
|
CEO = mkCN (mkN "VD" "VD:ar") ;
|
||||||
|
ChiefInformationOfficer = mkCN (mkN "chefsinformatör" "chefsinformatörer") ;
|
||||||
|
|
||||||
|
Microsoft = mkName "Microsoft" ;
|
||||||
|
Google = mkName "Google" ;
|
||||||
|
|
||||||
|
SergeyBrin = mkName "Sergey Brin" ;
|
||||||
|
LarryPage = mkName "Larry Page" ;
|
||||||
|
EricSchmidt = mkName "Eric Schmidt" ;
|
||||||
|
MarissaMayer = mkName "Marissa Mayer" ;
|
||||||
|
UdiManber = mkName "Udi Manber" ;
|
||||||
|
CarlGustavJung = mkName "Carl Gustav Jung" ;
|
||||||
|
Jung = mkName "Jung" ;
|
||||||
|
BenFried = mkName "Ben Fried" ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user