阿尔法
使用GF插件生成的自然语言翻译正式证明
通过使用GF插件,在中开发的正式证明阿尔法可以翻译成自然语言。目前,可以提供英语、法语和瑞典语的翻译,以及用户可以添加更多语言(但有些语言知识和熟悉GF公司是必需的)。GF插件知道如何翻译所有Alfa内置语法(各种形式的定义和表达式),并提供默认值用户定义标识符的翻译。然而,为了获得漂亮的文本用户需要提供合适的翻译以及任何新的证明中引入的定义。这些翻译由指定添加语法注释定义。这个语法注释是用GF提供的简单语言编写的。
一个例子
要激活GF插件,请使用以下命令启动Alfa:
alfa--插件GF
作为一个简单的例子,让我们看看如何翻译自然数和英语中自然数的加法。我们开始吧通过在Alfa中以通常的方式定义这些事情:
我们已经可以得到这个的英文翻译。通过选择GF:工程师作为默认声明视图来自查看菜单,我们可以得到以下内容:
也可以选择定义并应用从菜单窗口中选择如何显示它们的命令,例如。,GF:以英语显示,GF:全部显示翻译,显示默认声明看法。您还可以选择部分表达式并应用类似的命令。
下一步是告诉GF如何翻译国家
和+
到英语。
我们首先考虑国家
.数据类型(集)的名称通常为翻译成名词。在这种情况下,我们想使用短语自然数.名词可以用单数也可以用复数形式,所以翻译必须指出这两种形式。幸运的是,语法注释语言提供了一些辅助功能让这变得容易。对于正则名词,其复数形式通过添加秒
到此为止,这特别容易。
输入的翻译国家
在Alfa中,选择定义属于国家
(或者只是定义中LHS中的名称)并选择命令GF:更改英语翻译国家在菜单窗口中。现在您应该看到一个文本编辑器包含默认翻译的窗口国家
:
现在,我们可以用所需的翻译替换默认翻译:
注意,用引号括起来的字符串("
)应包含单个单词和操作符++
用于形成包含多个单词的短语。功能注册中国
负责添加秒
直到最后一句话论点短语,在其复数形式使用的地方。
当我们按下好 啊,的翻译主窗口中的定义将相应更新:
请注意国家
适当地翻译为一自然数或自然数取决于上下文。
我们继续翻译构造器零
和成功
。(能够选择它们并编辑它们翻译,您可能首先必须将声明视图切换回完整的定义.)
虽然集合的名称的行为类似于名词、构造函数和其他集合元素的行为更像专有名称。对于零
和成功
,我们输入以下内容翻译:
零@_=mkPN“零”
成功@_n=类似Succ“继任者”n
功能mkPN公司
创建简单的专有名称和像Succ
构建这样的短语这个xxx个属于yyy年,其中xxx个是一个单词和yyy年是另一个专有名称:最后,我们为操作符添加一个翻译+
.我们选择翻译a+b
到短语a的总和和b
,可以用作专有名称。
+a b=likeSum“总和”a b
我们现在已经完成了示例,最终的英语翻译为:
已知错误和限制
- 添加新数据类型后,GF插件不会更新为有关新构造函数的信息。解决方法:保存和重新打开文档。
- 用户定义的实体只能与它们具有相同的arity在他们的定义中有。例如
+
上面是2,因此必须始终应用于2论据。有点像映射(+2)xs
,这可能否则是完全合理的,目前无法翻译正确地。
另请参见