1

GF 中用于生成西班牙语句子的正确语法树是什么:

a) 包含虚拟语气。

b) 主语也是句子。

一个例子:

me gusta que mi jefe no trabaje hoy

4

1 回答 1

1

让我们一块一块地构建这个。

bossDoesntWork_S : S = mkS negativePol (mkCl (mkNP i_Pron boss_N) work_V) ;

查看表格,我们看到指示性和虚拟语气都被保留了。

> cc -table bossDoesntWork_S
s . CommonRomance.Indic => mi jefe no trabaja
s . CommonRomance.Conjunct => mi jefe no trabaje

所以现在我们需要把它作为一个参数给一些 VS,它会强制使用虚拟语气。让我们构造一个——ParadigmsSpa 中有一个现成的构造函数名为subjVS : V -> VS.

likeThat_VS : VS = subjVS like_V ;

现在让我们测试一下:

> cc -one mkS ( mkCl (mkNP i_Pron) likeThat_VS bossDoesntWork_S)
yo gusto que mi jefe no trabaje

虚拟语气是正确的,但不幸的是,与格协议无法正常工作。这是一个已知问题,我已尝试修复它,但将其添加到顶部以使一切正常,使整个语法变得非常缓慢。(我想知道如果西班牙语不使用 Romance 函子是否更可行,但这不是我愿意尝试的。:-P)

完整的语法

所以,这个虚拟语气部分很容易。这里有一个语法供你尝试。

resource Subjunctive = open SyntaxSpa, LexiconSpa, ParadigmsSpa in {
  oper
    likeThat_VS : VS = subjVS like_V ;

    bossDoesntWork_S : S = mkS negativePol (mkCl (mkNP i_Pron boss_N) work_V) ;

  -- lexicon

    like_V : V = <like_V2 : V> ; --treat LexiconSpa.like_V2 as V
    work_V : V = mkV "trabajar" ;
}

与格动词的注意事项

那么如何处理与格动词呢?对于 V2,您只需翻转主语和宾语即可。但是对于 VS,它更棘手,并且需要 ~ugly~creative hacks。

现在,我建议进行后处理,如this answer。与格动词作为 a 的好处VS是动词总是以第三人称单数变化,所以你没有像“me gusta s tu”与“me gusta n ustedes”这样的情况。您可以安全地后处理"yo gusto que""me gusta que".

如果 RGL 已修复以包括对与格动词的正确处理,我将更新此答案。

于 2021-05-18T10:35:38.110 回答