You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在GF中编码带名词修饰语的名词(如"offset direction")?

如何在GF中编码带名词修饰语的名词(如"offset direction")?

嗨!刚上手GF做语法开发确实会碰到这类细节问题,我来帮你解决这个名词修饰语的复数困扰~

你之前用mkCN (mkN "offset") (mkNP (mkN "direction"))的思路其实跑偏了——mkCN : N -> NP -> CN这个构造器本质是用来生成“X of Y”这种所属关系的结构,比如反过来写mkCN (mkN "direction") (mkNP (mkN "offset"))会得到“direction of offset”,所以你那样用的时候,GF会把第一个名词当成核心修饰成分,复数变化自然就加到它上面,导致出现offsets direction这种不符合预期的结果。

想要实现“offset direction”“income tax”这类名词作定语修饰另一个名词的结构,应该用GF资源语法库(RGL)里的mkAttrCN : N -> CN -> CN构造器。这个构造器的作用是把前面的名词作为属性修饰语,附加到后面的中心名词短语上,复数变化只会作用于中心名词,完全符合你的需求。

举个实际的例子:

oper
  offsetDirection : CN = mkAttrCN (mkN "offset") (mkCN (mkN "direction"));
  incomeTax : CN = mkAttrCN (mkN "income") (mkCN (mkN "tax"));

测试一下复数形式:

  • 单数:mkNP offsetDirection → "offset direction"
  • 复数:mkNP (pl_CN offsetDirection) → "offset directions"
  • 单数:mkNP incomeTax → "income tax"
  • 复数:mkNP (pl_CN incomeTax) → "income taxes"

这样就完美解决你遇到的复数问题啦!

备注:内容来源于stack exchange,提问作者M Soegtrop

火山引擎 最新活动