How to build V + NP + Prep + AP in Grammatical Framework RGL?

41 views Asked by At

I’m trying to represent, using the RGL, the German sentence “sie hält mich für intelligent” ‘she considers me intelligent’, literally “she holds me for intelligent”.

How do I represent “to hold X for Y” as some kind of V-whatever from which I can build a VP, where X is an NP and Y is an AP? I have tried using the category V2A (verb with NP and AP complement), which I’m creating via mkV2A : V -> Prep -> V2A like this:

ParadigmsGer.mkV2A halten_V for_Prep

Here’s a more complete example:

let
  halten_V : V = ParadigmsGer.mkV "halten" "hält" "hielt" "hielte" "gehalten";
in
  mkCl
    she_NP
    (mkVP
      (ParadigmsGer.mkV2A halten_V for_Prep)
      i_NP
      (mkAP (ParadigmsGer.mkA "intelligent"))
    )
;

But this gives me “sie hält für mich intelligent”, literally ‘she holds for me intelligent’. In other words, mkV2A : V -> Prep -> V2A attaches the Prep to the NP, not to the AP. How can I have it the other way, so that the Prep is attached to the AP instead?

2

There are 2 answers

0
Michal Měchura On

I found a way (sort of), which is to treat the “für intelligent” bit as an adverb:

let
    halten_V : V = P.mkV "halten" "hält" "hielt" "hielte" "gehalten";
in
    mkCl
      she_NP
      (mkVP --mich für intelligent halten (to hold me for intelligent)
        (P.mkAdv "für intelligent")
        (mkVP --mich halten (to hold me)
          (P.mkV2 halten_V P.accusative)
          i_NP
        )
      )
;

Feels dirty but works – at least for German where the adjective “intelligent” doesn’t need to inflect because it doesn’t need to agree with anything.

This approach wouldn’t work in another language such as French or Russian where the adjective would need to agree with the object (the “me”) in gender and number. But that’s another question for another day.

0
inariksit On

Which arguments are introduced by prepositions and which aren't, is a feature of each concrete syntax. So for instance Spanish already has this, see https://github.com/GrammaticalFramework/gf-rgl/blob/master/src/spanish/LexiconSpa.gf#L133

paint_V2A = mkV2A (regV "pintar") accusative (mkPrep "en") ;
-- accusative is for the NP arg, "en" for the AP

producing the result

Lang: ComplSlash (SlashV2A paint_V2A (PositA black_A)) (DetCN (DetQuant DefArt NumSg) (UseN house_N))
LangEng: paint the house black
LangSpa: pintar la casa en negro

So I think the best solution would be to add a new mkV2A constructor which takes 2 prepositions, one for the NP argument and other for the AP argument. Then the linearisation of SlashV2A (the function that adds the AP argument and creates a VPSlash missing the NP argument) should also be changed to use the second preposition. The same can be done for all languages where an AP can be introduced by a preposition.

You're welcome to do this and send a pull request!