incomplete concrete ExtendFunctor of Extend = Cat ** open Grammar in { lincat RNP = Grammar.NP ; RNPList = Grammar.ListNP ; lin BaseVPS = variants {} ; ConsVPS = variants {} ; lin GenNP = variants {} ; -- NP -> Quant ; -- this man's GenIP = variants {} ; -- IP -> IQuant ; -- whose GenRP = variants {} ; -- Num -> CN -> RP ; -- whose car GenModNP num np cn = DetCN (DetQuant DefArt num) (AdvCN cn (PrepNP possess_Prep np)) ; -- this man's car(s) ; DEFAULT the car of this man GenModIP = variants {} ; -- Num -> IP -> CN -> IP ; -- whose car(s) CompBareCN cn = CompCN cn ; -- (est) professeur ; DEFAULT is a teacher StrandQuestSlash = QuestSlash ; -- whom does John live with ; DEFAULT with whom does John live StrandRelSlash = RelSlash ; -- that he lives in ; DEFAULT in which he lives EmptyRelSlash = RelSlash IdRP ; -- he lives in ; DEFAULT in which he lives MkVPS vp = variants {} ; -- Temp -> Pol -> VP -> VPS ; -- to sleep / hasn't slept ConjVPS = variants {} ; -- Conj -> [VPS] -> VPS ; -- has walked and won't sleep PredVPS = variants {} ; -- NP -> VPS -> S ; -- she [has walked and won't sleep] ComplVPSVV = variants {} ; -- VV -> VPS -> VP ; -- want to sleep and to walk PredVPSVV = variants {} ; -- NP -> VV -> VPS -> VP ; -- she wants to sleep and to walk ProDrop pro = pro ; -- am tired ; DEFAULT I am tired ICompAP = variants {} ; -- AP -> IComp ; -- "how old" IAdvAdv = variants {} ; -- Adv -> IAdv ; -- "how often" CompIQuant iquant = CompIP (IdetIP (IdetQuant iquant NumSg)) ; -- which (is it) [agreement to NP] ; DEFAULT which [no agreement] PrepCN prep cn = PrepNP prep (MassNP cn) ; -- Prep -> CN -> Adv ; -- by accident [Prep + CN without article] ; DEFAULT CN as mass term FocusObj = variants {} ; -- NP -> SSlash -> Utt ; -- her I love FocusAdv = variants {} ; -- Adv -> S -> Utt ; -- today I will sleep FocusAdV = variants {} ; -- AdV -> S -> Utt ; -- never will I sleep FocusAP = variants {} ; -- AP -> NP -> Utt ; -- green was the tree ParticipleAP = variants {} ; -- VP -> AP ; -- (the man) looking at Mary EmbedPresPart = variants {} ; -- VP -> SC ; -- looking at Mary (is fun) PassVPSlash = variants {} ; -- VPSlash -> VP ; -- be forced to sleep PassAgentVPSlash = variants {} ; -- VPSlash -> NP -> VP ; -- be begged by her to go PastPartAP = variants {} ; -- VPSlash -> AP ; -- lost (opportunity) ; (opportunity) lost in space PastPartAgentAP = variants {} ; -- VPSlash -> NP -> AP ; -- (opportunity) lost by the company NominalizeVPSlashNP = variants {} ; -- VPSlash -> NP -> NP ; ExistsNP = variants {} ; -- NP -> Cl ; -- there exists a number / there exist numbers PurposeVP = variants {} ; -- VP -> Adv ; -- to become happy ComplBareVS = variants {} ; -- VS -> S -> VP ; -- say she runs SlashBareV2S = variants {} ; -- V2S -> S -> VPSlash ; -- answer (to him) it is good FrontExtPredVP = variants {} ; -- NP -> VP -> Cl ; -- I am here, she said InvFrontExtPredVP = variants {} ; -- NP -> VP -> Cl ; -- I am here, said she AdjAsCN = variants {} ; -- AP -> CN ; -- a green one ; en grön (Swe) AdjAsNP = variants {} ; -- AP -> NP ; -- green (is good) ReflRNP = variants {} ; -- VPSlash -> RNP -> VP ; -- love my family and myself ReflPron = variants {} ; -- RNP ; -- myself ReflPoss = variants {} ; -- Num -> CN -> RNP ; -- my car(s) PredetRNP = variants {} ; -- Predet -> RNP -> RNP ; -- all my brothers ConjRNP = variants {} ; -- Conj -> RNPList -> RNP ; -- my family, John and myself Base_rr_RNP = variants {} ; -- RNP -> RNP -> RNPList ; -- my family, myself Base_nr_RNP = variants {} ; -- NP -> RNP -> RNPList ; -- John, myself Base_rn_RNP = variants {} ; -- RNP -> NP -> RNPList ; -- myself, John Cons_rr_RNP = variants {} ; -- RNP -> RNPList -> RNPList ; -- my family, myself, John Cons_nr_RNP = variants {} ; -- NP -> RNPList -> RNPList ; -- John, my family, myself ComplVV = variants {} ; -- VV -> Ant -> Pol -> VP -> VP ; -- want not to have slept SlashV2V = variants {} ; -- V2V -> Ant -> Pol -> VPS -> VPSlash ; -- force (her) not to have slept CompoundN = variants {} ; -- N -> N -> N ; -- control system / controls system / control-system CompoundAP = variants {} ; -- N -> A -> AP ; -- language independent / language-independent GerundCN = variants {} ; -- VP -> CN ; -- publishing of the document (can get a determiner) GerundNP = variants {} ; -- VP -> NP ; -- publishing the document (by nature definite) GerundAdv = variants {} ; -- VP -> Adv ; -- publishing the document (prepositionless adverb) WithoutVP = variants {} ; -- VP -> Adv ; -- without publishing the document ByVP = variants {} ; -- VP -> Adv ; -- by publishing the document InOrderToVP = variants {} ; -- VP -> Adv ; -- (in order) to publish the document ApposNP = variants {} ; -- NP -> NP -> NP ; -- Mr Macron, the president of France, AdAdV = variants {} ; -- AdA -> AdV -> AdV ; -- almost always UttAdV = variants {} ; -- AdV -> Utt ; -- always(!) PositAdVAdj = variants {} ; -- A -> AdV ; -- (that she) positively (sleeps) CompS = variants {} ; -- S -> Comp ; -- (the fact is) that she sleeps CompQS = variants {} ; -- QS -> Comp ; -- (the question is) who sleeps CompVP = variants {} ; -- Ant -> Pol -> VP -> Comp ; -- (she is) to go DetNPFem = DetNP ; iFem_Pron = i_Pron ; youFem_Pron = youSg_Pron ; weFem_Pron = we_Pron ; youPlFem_Pron = youPl_Pron ; theyFem_Pron = they_Pron ; youPolFem_Pron = youPol_Pron ; UttAccNP = UttNP ; -- him (accusative) ; DEFAULT he UttDatNP np = UttAccNP (lin NP np) ; -- him(dative) ; DEFAULT he UttAccIP = UttIP ; -- whom (accusative) ; DEFAULT who UttDatIP ip = UttAccIP (lin IP ip) ; -- whom (dative) ; DEFAULT who }