Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
This module gives access to (almost) all functions in the resource syntax API defined in Grammar. It uses overloaded function names to reduce the burden of remembering different names.
The principle is simply:
to construct an object of type C, use the function mkC.
For example, to the object
PredVP (UsePron she_Pron) (ComplV2 love_V2 (UsePN paris_PN))
can now also be written
mkCl (mkNP she_Pron) (mkVP love_V2 (mkNP paris_PN))
In addition to exact variants of the Grammar functions, the module
gives some common special cases using deeper terms and default arguments.
An example of deeper terms is two-place coordination such as
mkNP : Conj -> NP -> NP -> NP.
An example of default arguments is present-tense sentences,
mkS : Cl -> S.
The old API can of course be used simultaneously with this one.
Typically, Grammar and Paradigms are needed to be opened in addition
to this.
incomplete resource Constructors = open Grammar in {
oper
mkText : overload {
mkText : Text ; -- [empty text]
mkText : Phr -> Text -> Text -- John walks. ...
} ;
mkPhr : overload {
mkPhr : PConj -> Utt -> Voc -> Phr; -- But go home my friend
mkPhr : Utt -> Phr ; -- Go home
mkPhr : S -> Phr -- I go home
} ;
mkUtt : overload {
mkUtt : S -> Utt ; -- John walks
mkUtt : QS -> Utt ; -- is it good
mkUtt : Pol -> Imp -> Utt ; -- (don't) help yourself
mkUtt : Imp -> Utt ; -- help yourself
mkUtt : IP -> Utt ; -- who
mkUtt : IAdv -> Utt ; -- why
mkUtt : NP -> Utt ; -- this man
mkUtt : Adv -> Utt ; -- here
mkUtt : VP -> Utt -- to sleep
} ;
mkS : overload {
mkS : Tense -> Ant -> Pol -> Cl -> S ; -- John wouldn't have walked
mkS : Cl -> S ; -- John walks
mkS : Conj -> S -> S -> S ; -- John walks and Mary talks
mkS : DConj -> S -> S -> S ; -- either I leave or you come
mkS : Conj -> ListS -> S ; -- John walks, Mary talks, and Bob runs
mkS : DConj -> ListS -> S ; -- either I leave, you come, or he runs
mkS : Adv -> S -> S -- today, I will sleep
} ;
mkCl : overload {
mkCl : NP -> VP -> Cl ; -- John walks
mkCl : VP -> Cl ; -- it rains
mkCl : NP -> RS -> Cl ; -- it is you who did it
mkCl : Adv -> S -> Cl ; -- it is yesterday she arrived
mkCl : NP -> Cl -- there is a house
} ;
mkVP : overload {
mkVP : V -> VP ; -- sleep
mkVP : V2 -> NP -> VP ; -- use it
mkVP : V3 -> NP -> NP -> VP ; -- send a message to her
mkVP : VV -> VP -> VP ; -- want to run
mkVP : VS -> S -> VP ; -- know that she runs
mkVP : VQ -> QS -> VP ; -- ask if she runs
mkVP : VA -> AP -> VP ; -- look red
mkVP : V2A -> NP -> AP -> VP ; -- paint the house red
mkVP : AP -> VP ; -- be warm
mkVP : NP -> VP ; -- be a man
mkVP : Adv -> VP ; -- be here
mkVP : VP -> Adv -> VP ; -- sleep here
mkVP : AdV -> VP -> VP -- always sleep
} ;
mkImp : overload {
mkImp : VP -> Imp ; -- go there now
mkImp : V -> Imp ; -- go
mkImp : V2 -> NP -> Imp -- take it
} ;
mkNP : overload {
mkNP : Det -> CN -> NP ; -- the old man
mkNP : Det -> N -> NP ; -- the man
mkNP : PN -> NP ; -- John
mkNP : Pron -> NP ; -- he
mkNP : Predet -> NP -> NP ; -- all the men
mkNP : NP -> V2 -> NP ; -- the number squared
mkNP : NP -> Adv -> NP ; -- Paris at midnight
mkNP : Conj -> NP -> NP -> NP ; -- John and Mary walk
mkNP : DConj -> NP -> NP -> NP ; -- both John and Mary walk
mkNP : Conj -> ListNP -> NP ; -- John, Mary, and Bill walk
mkNP : DConj -> ListNP -> NP -- both John, Mary, and Bill walk
} ;
mkDet : overload {
mkDet : QuantSg -> Ord -> Det ; -- this best (man)
mkDet : Det ; -- the (man)
mkDet : QuantSg -> Det ; -- this (man)
mkDet : QuantPl -> Num -> Ord -> Det ; -- these five best (men)
mkDet : QuantPl -> Det ; -- these (men)
mkDet : Quant -> Det ; -- this (man)
mkDet : Num -> Det ; -- five (men)
mkDet : Pron -> Det -- my (house)
} ;
mkNum : overload {
mkNum : Num ; -- [no num]
mkNum : Int -> Num ; -- 51
mkNum : Digit -> Num
} ;
mkOrd : overload {
mkOrd : Ord ; -- [no ord]
mkOrd : Int -> Ord ; -- 51st
mkOrd : Digit -> Ord ; -- fifth
mkOrd : A -> Ord -- largest
} ;
mkCN : overload {
mkCN : N -> CN ; -- house
mkCN : N2 -> NP -> CN ; -- son of the king
mkCN : N3 -> NP -> NP -> CN ; -- flight from Moscow (to Paris)
mkCN : N2 -> CN ; -- son
mkCN : N3 -> CN ; -- flight
mkCN : AP -> CN -> CN ; -- big house
mkCN : CN -> AP -> CN ; -- big house
mkCN : CN -> RS -> CN ; -- house that John owns
mkCN : CN -> Adv -> CN ; -- house on the hill
mkCN : CN -> SC -> CN ; -- fact that John smokes, question if he does
mkCN : CN -> NP -> CN -- number x, numbers x and y
} ;
mkAP : overload {
mkAP : A -> AP ; -- warm
mkAP : A -> NP -> AP ; -- warmer than Spain
mkAP : A2 -> NP -> AP ; -- divisible by 2
mkAP : A2 -> AP ; -- divisible by itself
mkAP : AP -> SC -> AP ; -- great that she won; uncertain if she did
mkAP : AdA -> AP -> AP ; -- very uncertain
mkAP : Conj -> AP -> AP -> AP ; -- warm and nice
mkAP : DConj -> AP -> AP -> AP ;-- both warm and nice
mkAP : Conj -> ListAP -> AP ; -- warm, nice, and cheap
mkAP : DConj -> ListAP -> AP -- both warm, nice, and cheap
} ;
mkAdv : overload {
mkAdv : A -> Adv ; -- quickly
mkAdv : Prep -> NP -> Adv ; -- in the house
mkAdv : CAdv -> A -> NP -> Adv ; -- more quickly than John
mkAdv : CAdv -> A -> S -> Adv ; -- more quickly than he runs
mkAdv : AdA -> Adv -> Adv ; -- very quickly
mkAdv : Subj -> S -> Adv ; -- when he arrives
mkAdv : Conj -> Adv -> Adv -> Adv; -- here and now
mkAdv : DConj -> Adv -> Adv -> Adv; -- both here and now
mkAdv : Conj -> ListAdv -> Adv ; -- here, now, and with you
mkAdv : DConj -> ListAdv -> Adv -- both here, now, and with you
} ;
mkQS : overload {
mkQS : Tense -> Ant -> Pol -> QCl -> QS ; -- wouldn't John have walked
mkQS : QCl -> QS -- does John walk
} ;
mkQCl : overload {
mkQCl : Cl -> QCl ; -- does John walk
mkQCl : IP -> VP -> QCl ; -- who walks
mkQCl : IP -> Slash -> QCl ; -- who does John love
mkQCl : IP -> NP -> V2 -> QCl ; -- who does John love
mkQCl : IAdv -> Cl -> QCl ; -- why does John walk
mkQCl : Prep -> IP -> Cl -> QCl ; -- with whom does John walk
mkQCl : IAdv -> NP -> QCl ; -- where is John
mkQCl : IP -> QCl -- which houses are there
} ;
mkIP : overload {
mkIP : IDet -> Num -> Ord -> CN -> IP ; -- which five best songs
mkIP : IDet -> N -> IP ; -- which song
mkIP : IP -> Adv -> IP -- who in Europe
} ;
mkRS : overload {
mkRS : Tense -> Ant -> Pol -> RCl -> RS ; -- who wouldn't have walked
mkRS : RCl -> RS -- who walks
} ;
mkRCl : overload {
mkRCl : Cl -> RCl ; -- such that John loves her
mkRCl : RP -> VP -> RCl ; -- who loves John
mkRCl : RP -> Slash -> RCl -- whom John loves
} ;
mkRP : overload {
mkRP : RP ; -- which
mkRP : Prep -> NP -> RP -> RP -- all the roots of which
} ;
mkSlash : overload {
mkSlash : NP -> V2 -> Slash ; -- (whom) he sees
mkSlash : NP -> VV -> V2 -> Slash ; -- (whom) he wants to see
mkSlash : Slash -> Adv -> Slash ; -- (whom) he sees tomorrow
mkSlash : Cl -> Prep -> Slash -- (with whom) he walks
} ;
mkSC : overload {
mkSC : S -> SC ; -- that you go
mkSC : QS -> SC ; -- whether you go
mkSC : VP -> SC -- to go
} ;