在 GF 中生成所有格

you*_*ahi 3 gf

我检查了 GF 库中的“\xe2\x80\x99s”,如“我的朋友\xe2\x80\x99s house”,但我似乎找不到创建这种关系的正确方法。希望有人指导我解决这个问题。

\n

ina*_*sit 5

核心 RGL 中确实没有 的所有格功能。仅使用 RGL API 可以获得的最接近的是“我朋友的房子”。

然而,有一个名为Extend 的模块,它有一个函数GenNP : NP -> Quant

那么如何使用扩展呢?您一直在使用RGL API,当您打开语法和范式模块时,所有操作mkX都可用。Extend 模块比核心 RGL 新得多,因此其功能未在概要中显示。但您可以像使用语法和范式模块一样使用它们。这是一个用法示例:

resource Test = open SyntaxEng, ParadigmsEng, LexiconEng, ExtendEng in {

  oper
    -- "the house of my friend"
    house1 : NP = mkNP the_Det (mkCN (mkN2 house_N) (mkNP i_Pron friend_N)) ;

    -- "my friend's house"
    house2 : NP =
      let myFriend : NP = mkNP i_Pron friend_N ;
          myFriends : Quant = GenNP myFriend ;   -- GenNP is from ExtendEng
       in mkNP myFriends house_N ;
}
Run Code Online (Sandbox Code Playgroud)

如果您对如何使用 Extend 还有任何疑问,我将很乐意为您提供帮助!

将其复制到名为 Test.gf 的文件中,然后像平常一样打开 GF shell。然后您可以使用 flag 导入文件-retain,该文件允许您使用命令评估操作cc。像这样:

(You need to be inside the GF shell, not on the command line)
> i -retain Test.gf 
> cc -one house1
the house of my friend

> cc -one house2
my friend's house
Run Code Online (Sandbox Code Playgroud)