diff --git a/lib/resource-1.0/abstract/Cat.gf b/lib/resource-1.0/abstract/Cat.gf index 88a93ce30..c8431a7bc 100644 --- a/lib/resource-1.0/abstract/Cat.gf +++ b/lib/resource-1.0/abstract/Cat.gf @@ -35,6 +35,7 @@ abstract Cat = Common ** { QCl ; -- question clause, with all tenses e.g. "why does she walk" IP ; -- interrogative pronoun e.g. "who" IAdv ; -- interrogative adverb e.g. "why" + IComp ; -- interrogative complement of copula e.g. "where" IDet ; -- interrogative determiner e.g. "which" --2 Relative clauses and pronouns diff --git a/lib/resource-1.0/abstract/Question.gf b/lib/resource-1.0/abstract/Question.gf index 7f8236285..a09b203bf 100644 --- a/lib/resource-1.0/abstract/Question.gf +++ b/lib/resource-1.0/abstract/Question.gf @@ -6,10 +6,11 @@ abstract Question = Cat ** { -- with an interrogative. fun - QuestCl : Cl -> QCl ; -- does John walk - QuestVP : IP -> VP -> QCl ; -- who walks - QuestSlash : IP -> Slash -> QCl ; -- who does John love - QuestIAdv : IAdv -> Cl -> QCl ; -- why does John walk + QuestCl : Cl -> QCl ; -- does John walk + QuestVP : IP -> VP -> QCl ; -- who walks + QuestSlash : IP -> Slash -> QCl ; -- who does John love + QuestIAdv : IAdv -> Cl -> QCl ; -- why does John walk + QuestIComp : IComp -> NP -> QCl ; -- where is John -- Interrogative pronouns can be formed with interrogative -- determiners. @@ -19,6 +20,9 @@ abstract Question = Cat ** { PrepIP : Prep -> IP -> IAdv ; -- with whom + CompIAdv : IAdv -> IComp ; -- where + + -- More $IP$, $IDet$, and $IAdv$ are defined in -- [Structural Structural.html]. diff --git a/lib/resource-1.0/doc/gfdoc/Cat.html b/lib/resource-1.0/doc/gfdoc/Cat.html index b042ae14d..fd5c650d7 100644 --- a/lib/resource-1.0/doc/gfdoc/Cat.html +++ b/lib/resource-1.0/doc/gfdoc/Cat.html @@ -6,26 +6,29 @@

The category system

-Last update: Sat Feb 25 22:35:53 2006
-% NOTE: this is a txt2tags file. +Author:
+Last update: Thu Apr 20 17:30:07 2006


+


@@ -35,6 +38,8 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

+ +

The category system

Some categories are inherited from Common.

@@ -44,7 +49,7 @@ Some categories are inherited from Common. cat

- +

Top-level units

Constructed in Text: Text. @@ -55,7 +60,7 @@ Constructed in Phrase: Phr and Voc ; -- vocative or "please" e.g. "my darling"

- +

Sentences and clauses

Constructed in Sentence, and also in @@ -71,7 +76,7 @@ Constructed in Sentence, and also in SC ; -- embedded sentence or question e.g. "that it rains"

- +

Questions and interrogatives

Constructed in Question. @@ -80,10 +85,11 @@ Constructed in Question. QCl ; -- question clause, with all tenses e.g. "why does she walk" IP ; -- interrogative pronoun e.g. "who" IAdv ; -- interrogative adverb e.g. "why" + IComp ; -- interrogative complement of copula e.g. "where" IDet ; -- interrogative determiner e.g. "which"

- +

Relative clauses and pronouns

Constructed in Relative. @@ -93,7 +99,7 @@ Constructed in Relative. RP ; -- relative pronoun e.g. "in which"

- +

Verb phrases

Constructed in Verb. @@ -103,7 +109,7 @@ Constructed in Verb. Comp ; -- complement of copula, such as AP e.g. "very warm"

- +

Adjectival phrases

Constructed in Adjective. @@ -112,7 +118,7 @@ Constructed in Adjective. AP ; -- adjectival phrase e.g. "very warm"

- +

Nouns and noun phrases

Constructed in Noun. @@ -139,7 +145,7 @@ as defined in Noun. Ord ; -- ordinal number (used in Det) e.g. "seventh"

- +

Adverbs

Constructed in Adverb. @@ -152,7 +158,7 @@ Many adverbs are constructed in Structural. AdN ; -- numeral-modifying adverb, e.g. "more than"

- +

Numerals

Constructed in Numeral. @@ -161,7 +167,7 @@ Constructed in Numeral. Numeral;-- cardinal or ordinal, e.g. "five/fifth"

- +

Structural words

Constructed in Structural. @@ -175,7 +181,7 @@ Constructed in Structural. Prep ; -- preposition, or just case e.g. "in"

- +

Words of open classes

These are constructed in Lexicon and in additional lexicon modules. diff --git a/lib/resource-1.0/doc/gfdoc/Question.html b/lib/resource-1.0/doc/gfdoc/Question.html index 389f5cafc..7dec0cbd1 100644 --- a/lib/resource-1.0/doc/gfdoc/Question.html +++ b/lib/resource-1.0/doc/gfdoc/Question.html @@ -6,13 +6,17 @@

Questions and interrogative pronouns

-Last update: Sat Feb 25 22:35:56 2006
-% NOTE: this is a txt2tags file. +Author:
+Last update: Thu Apr 20 17:30:13 2006


+ +


@@ -21,6 +25,8 @@ Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

+ +

Questions and interrogative pronouns

     abstract Question = Cat ** {
 
@@ -31,10 +37,11 @@ with an interrogative.

       fun
-        QuestCl    : Cl -> QCl ;                   -- does John walk
-        QuestVP    : IP -> VP -> QCl ;             -- who walks
-        QuestSlash : IP -> Slash -> QCl ;          -- who does John love
-        QuestIAdv  : IAdv -> Cl -> QCl ;           -- why does John walk
+        QuestCl     : Cl -> QCl ;                  -- does John walk
+        QuestVP     : IP -> VP -> QCl ;            -- who walks
+        QuestSlash  : IP -> Slash -> QCl ;         -- who does John love
+        QuestIAdv   : IAdv -> Cl -> QCl ;          -- why does John walk
+        QuestIComp  : IComp -> NP -> QCl ;         -- where is John
 

@@ -46,6 +53,8 @@ determiners. AdvIP : IP -> Adv -> IP ; -- who in Europe PrepIP : Prep -> IP -> IAdv ; -- with whom + + CompIAdv : IAdv -> IComp ; -- where

diff --git a/lib/resource-1.0/english/CatEng.gf b/lib/resource-1.0/english/CatEng.gf index 91e5dfcc3..ada2241b1 100644 --- a/lib/resource-1.0/english/CatEng.gf +++ b/lib/resource-1.0/english/CatEng.gf @@ -24,7 +24,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in { QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; IP = {s : Case => Str ; n : Number} ; - IAdv = {s : Str} ; + IAdv, IComp = {s : Str} ; IDet = {s : Str ; n : Number} ; -- Relative diff --git a/lib/resource-1.0/english/QuestionEng.gf b/lib/resource-1.0/english/QuestionEng.gf index 9f1820f85..bfe4033c7 100644 --- a/lib/resource-1.0/english/QuestionEng.gf +++ b/lib/resource-1.0/english/QuestionEng.gf @@ -1,4 +1,4 @@ -concrete QuestionEng of Question = CatEng ** open ResEng in { +concrete QuestionEng of Question = CatEng ** open ResEng, Prelude in { flags optimize=all_subs ; @@ -17,27 +17,15 @@ concrete QuestionEng of Question = CatEng ** open ResEng in { let cl = mkClause (qp.s ! Nom) {n = qp.n ; p = P3} vp in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ; - QuestSlash ip slash = { - s = \\t,a,p => - let - cls = slash.s ! t ! a ! p ; - who = slash.c2 ++ ip.s ! Acc --- stranding in ExtEng - in table { - QDir => who ++ cls ! OQuest ; - QIndir => who ++ cls ! ODir - } - } ; + QuestSlash ip slash = + mkQuestion (ss (slash.c2 ++ ip.s ! Acc)) slash ; + --- stranding in ExtEng + + QuestIAdv iadv cl = mkQuestion iadv cl ; + + QuestIComp icomp np = + mkQuestion icomp (mkClause (np.s ! Nom) np.a (predAux auxBe)) ; - QuestIAdv iadv cl = { - s = \\t,a,p => - let - cls = cl.s ! t ! a ! p ; - why = iadv.s - in table { - QDir => why ++ cls ! OQuest ; - QIndir => why ++ cls ! ODir - } - } ; PrepIP p ip = {s = p.s ++ ip.s ! Nom} ; @@ -51,4 +39,21 @@ concrete QuestionEng of Question = CatEng ** open ResEng in { n = idet.n } ; + CompIAdv a = a ; + + oper + mkQuestion : + {s : Str} -> Clause -> + {s : Tense => Anteriority => Polarity => QForm => Str} = \wh,cl -> + { + s = \\t,a,p => + let + cls = cl.s ! t ! a ! p ; + why = wh.s + in table { + QDir => why ++ cls ! OQuest ; + QIndir => why ++ cls ! ODir + } + } ; + } diff --git a/lib/resource-1.0/finnish/CatFin.gf b/lib/resource-1.0/finnish/CatFin.gf index a72ed6dbb..ebf04a1f8 100644 --- a/lib/resource-1.0/finnish/CatFin.gf +++ b/lib/resource-1.0/finnish/CatFin.gf @@ -25,6 +25,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in { QCl = {s : Tense => Anteriority => Polarity => Str} ; IP = {s : NPForm => Str ; n : Number} ; IAdv = {s : Str} ; + IComp = {s : Agr => Str} ; IDet = {s : Case => Str ; n : Number} ; -- Relative diff --git a/lib/resource-1.0/finnish/QuestionFin.gf b/lib/resource-1.0/finnish/QuestionFin.gf index 68e66cb87..84f65e8b9 100644 --- a/lib/resource-1.0/finnish/QuestionFin.gf +++ b/lib/resource-1.0/finnish/QuestionFin.gf @@ -28,6 +28,15 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in { s = \\t,a,p => iadv.s ++ cl.s ! t ! a ! p ! SDecl } ; + QuestIComp icomp np = { + s = \\t,a,p => + let + vp = predV (verbOlla ** {sc = NPCase Nom}) ; + cl = mkClause (subjForm np vp.sc) np.a vp ; + in + icomp.s ! np.a ++ cl.s ! t ! a ! p ! SDecl + } ; + PrepIP p ip = {s = appCompl True Pos p (ip ** {a = agrP3 ip.n ; isPron = False})} ; @@ -54,4 +63,6 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in { n = n } ; + CompIAdv a = {s = \\_ => a.s} ; + } diff --git a/lib/resource-1.0/german/CatGer.gf b/lib/resource-1.0/german/CatGer.gf index 6040240d4..659a62185 100644 --- a/lib/resource-1.0/german/CatGer.gf +++ b/lib/resource-1.0/german/CatGer.gf @@ -25,7 +25,8 @@ concrete CatGer of Cat = CommonX ** open ResGer, Prelude in { QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; IP = {s : Case => Str ; n : Number} ; - IAdv = {s : Str} ; + IAdv = {s : Str} ; + IComp = {s : Agr => Str} ; IDet = {s : Gender => Case => Str ; n : Number} ; -- Relative diff --git a/lib/resource-1.0/german/QuestionGer.gf b/lib/resource-1.0/german/QuestionGer.gf index 3a5c2e5d8..b1455cd8f 100644 --- a/lib/resource-1.0/german/QuestionGer.gf +++ b/lib/resource-1.0/german/QuestionGer.gf @@ -46,6 +46,18 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { } } ; + QuestIComp icomp np = { + s = \\t,a,p => + let + vp = predV sein_V ; + cls = (mkClause (np.s ! Nom) np.a vp).s ! t ! a ! p ; + why = icomp.s ! np.a + in table { + QDir => why ++ cls ! Inv ; + QIndir => why ++ cls ! Sub + } + } ; + PrepIP p ip = { s = appPrep p ip.s } ; @@ -65,6 +77,7 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { cn.s ! Weak ! n ! c ; n = n } ; + CompIAdv a = {s = \\_ => a.s} ; } diff --git a/lib/resource-1.0/german/StructuralGer.gf b/lib/resource-1.0/german/StructuralGer.gf index fc0249db1..809865c91 100644 --- a/lib/resource-1.0/german/StructuralGer.gf +++ b/lib/resource-1.0/german/StructuralGer.gf @@ -112,7 +112,7 @@ concrete StructuralGer of Structural = CatGer ** when_IAdv = ss "wann" ; when_Subj = ss "wenn" ; - where_IAdv = ss "war" ; + where_IAdv = ss "wo" ; whichPl_IDet = detLikeAdj Pl "welch" ; whichSg_IDet = detLikeAdj Sg "welch" ; diff --git a/lib/resource-1.0/romance/CatRomance.gf b/lib/resource-1.0/romance/CatRomance.gf index 4fd418a4a..de836e457 100644 --- a/lib/resource-1.0/romance/CatRomance.gf +++ b/lib/resource-1.0/romance/CatRomance.gf @@ -23,10 +23,11 @@ incomplete concrete CatRomance of Cat = -- Question - QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; - IP = {s : Case => Str ; a : AAgr} ; - IAdv = {s : Str} ; - IDet = {s : Gender => Case => Str ; n : Number} ; + QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; + IP = {s : Case => Str ; a : AAgr} ; + IAdv = {s : Str} ; + IComp = {s : AAgr => Str} ; + IDet = {s : Gender => Case => Str ; n : Number} ; -- Relative diff --git a/lib/resource-1.0/romance/QuestionRomance.gf b/lib/resource-1.0/romance/QuestionRomance.gf index 31c734d91..879ed6346 100644 --- a/lib/resource-1.0/romance/QuestionRomance.gf +++ b/lib/resource-1.0/romance/QuestionRomance.gf @@ -41,6 +41,15 @@ incomplete concrete QuestionRomance of Question = in why ++ cls } ; + QuestIComp icomp np = { + s = \\t,a,p,_ => + let + vp = predV copula ; + cls = (mkClause (np.s ! Aton Nom) np.a vp).s ! t ! a ! p ! Indic ; + why = icomp.s ! {g = np.a.g ; n = np.a.n} + in why ++ cls + } ; + PrepIP p ip = { s = p.s ++ ip.s ! accusative } ; @@ -60,4 +69,6 @@ incomplete concrete QuestionRomance of Question = a = a } ; + CompIAdv a = {s = \\_ => a.s} ; + } diff --git a/lib/resource-1.0/scandinavian/CatScand.gf b/lib/resource-1.0/scandinavian/CatScand.gf index 58d158ce5..e395bc7f7 100644 --- a/lib/resource-1.0/scandinavian/CatScand.gf +++ b/lib/resource-1.0/scandinavian/CatScand.gf @@ -25,7 +25,8 @@ incomplete concrete CatScand of Cat = QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; IP = {s : NPForm => Str ; gn : GenNum} ; - IAdv = {s : Str} ; + IAdv = {s : Str} ; + IComp = {s : AFormPos => Str} ; IDet = {s : Gender => Str ; n : Number ; det : DetSpecies} ; -- Relative diff --git a/lib/resource-1.0/scandinavian/QuestionScand.gf b/lib/resource-1.0/scandinavian/QuestionScand.gf index fa90c20b3..31b384cc4 100644 --- a/lib/resource-1.0/scandinavian/QuestionScand.gf +++ b/lib/resource-1.0/scandinavian/QuestionScand.gf @@ -48,6 +48,18 @@ incomplete concrete QuestionScand of Question = } } ; + QuestIComp icomp np = { + s = \\t,a,p => + let + cls = + (mkClause (np.s ! nominative) np.a (predV verbBe)).s ! t ! a ! p ; + why = icomp.s ! agrAdj np.a.gn DIndef + in table { + QDir => why ++ cls ! Inv ; + QIndir => why ++ cls ! Sub + } + } ; + PrepIP p ip = { s = p.s ++ ip.s ! accusative } ; @@ -59,8 +71,10 @@ incomplete concrete QuestionScand of Question = IDetCN idet num ord cn = let g = cn.g in { s = \\c => - idet.s ! g ++ num.s ! g ++ ord.s ++ cn.s ! idet.n ! idet.det ! caseNP c ; + idet.s ! g ++ num.s ! g ++ ord.s ++ cn.s !idet.n ! idet.det ! caseNP c ; gn = gennum g idet.n } ; + CompIAdv a = {s = \\_ => a.s} ; + }