介绍
PGF API通过主GF可执行文件中的内置HTTP服务器作为Web服务提供。用启动GF激活-服务器
标志:
$gf-服务器这是GF版本3.8。文档根=/usr/share/gf-3.8/www启动HTTP服务器,打开http://localhost:41296/在您的web浏览器中。
编译的GF语法(A.pgf(磅/平方英尺)
文件)可以通过将其放在文档根下的某个位置在web应用程序中使用。当请求访问.pgf(磅/平方英尺)
文件中,GF web服务器将加载和缓存语法,并解释URL(在url编码查询格式)。您得到的响应通常是JSON格式格式,但也可以是图像或纯文本。
例如,如果我的语法.pgf
是直接放在文档根下的语法,则可以使用以下URL访问语法:
http://localhost:41296/my_grammar.pgf
URL中不包含任何参数时的默认值是一个响应,其中包含一些有关语法的一般信息,这些信息以JSON格式编码。要执行特定命令,必须告诉您要执行的命令。命令编码在参数中命令
即:
http://localhost/my_grammar.pgf?命令=
cmd公司
哪里cmd公司是命令的名称。大多数命令都需要额外的参数,这些参数也被编码为参数。下面介绍了支持的命令及其参数。
命令
语法
此命令提供有关语法的一些一般信息。如果没有给定“command”参数,也会执行此命令。
输出
包含以下字段的JSON对象:
名称 |
语法中抽象语法的名称 |
用户语言 |
语法中与用户浏览器中设置的默认语言最匹配的具体语言 |
类别 |
语法中定义的所有抽象语法类别的列表 |
功能 |
语法中定义的所有抽象语法函数的列表 |
语言 |
语法中可用的具体语言列表 |
每种语言都用具有这两个字段的对象进行描述:
名称 |
语言的具体语法名称 |
语言代码 |
根据ISO标准即英语 对于英语,背景 保加利亚人等。 |
语言代码需要在语法中指定flags language=。。。
。web服务接收浏览器中设置的语言的代码,并将其与语法中定义的代码进行比较。如果存在匹配项,则服务返回相应的具体语法名称。如果未找到匹配项,则按字母顺序返回第一种语言。
正在分析
此命令解析字符串并返回抽象语法树列表。
命令 |
应该是解析 |
- |
猫 |
解析器的开始类别 |
语法的默认开始类别 |
输入 |
要分析的字符串 |
空字符串 |
从 |
用于分析的具体语法的名称 |
将尝试语法中的所有语言 |
限制 |
限制返回的树数(gf>3.3.3) |
没有应用限制 |
输出
对象列表,其中每个对象表示每个输入语言的分析。对象有三个字段:
从 |
解析中使用的具体语言 |
括号 |
解析器中带括号的字符串 |
树 |
抽象语法树列表 |
typeErrors(类型错误) |
类型检查器中的错误列表 |
抽象语法树以普通字符串的形式发送。类型错误是具有两个字段的对象:
外国直接投资 |
指向发生错误的括号字符串中的括号的林id |
消息 |
错误的文本消息 |
当前实现要么返回抽象语法树列表,要么返回类型错误列表。通过检查字段树是否为空,我们可以检查类型检查是否成功。
线性化
该命令采用抽象语法树并生成指定语言的字符串。
命令 |
应该是使线性化 |
- |
树 |
线性化的抽象语法树 |
- |
到 |
线性化中使用的具体语法的名称 |
将生成语法中所有语言的线性化 |
输出
翻译
翻译是一个两步的过程。首先用源语言分析输入句子,然后用目标语言线性化生成输出句子。因此,此命令的输入和输出是解析命令和线性化命令的输入/输出的并集。
命令 |
应该是翻译 |
- |
猫 |
解析器的开始类别 |
语法的默认开始类别 |
输入 |
要翻译的输入字符串 |
空字符串 |
从 |
源语言 |
将尝试语法中的所有语言 |
到 |
目标语言 |
将生成语法中所有语言的线性化 |
限制 |
限制使用多少解析树(gf>3.3.3) |
没有应用限制 |
输出
输出是具有以下字段的对象列表:
从 |
解析中使用的具体语言 |
括号 |
解析器中带括号的字符串 |
翻译 |
翻译列表 |
typeErrors(类型错误) |
类型检查器中的错误列表 |
每个翻译都是一个具有两个字段的对象:
每个线性化都是一个具有两个字段的对象:
字段 |
描述 |
到 |
线性化中使用的具体语言 |
文本 |
产生的句子 |
类型错误是具有两个字段的对象:
外国直接投资 |
指向发生错误的括号字符串中的括号的林id |
消息 |
错误的文本消息 |
当前实现要么返回翻译列表,要么返回类型错误列表。通过检查字段翻译是否为空,我们可以检查类型检查是否成功。
随机生成
此命令生成随机抽象语法树,其中顶级函数将属于指定的类别。子树的类别将由父函数的类型签名确定。
命令 |
应该是随机的,随机的 |
- |
猫 |
发电机的启动类别 |
语法的默认开始类别 |
限制 |
生成的最大树数 |
1 |
输出
输出是只有一个字段的对象列表:
列表的长度受限制参数的限制。
单词完成
单词补全是解析的一种特殊情况。如果有一个不完整的句子,那么首先对其进行语法分析,然后使用语法分析图的状态来预测语法正确的句子中可能出现的一组单词。
命令 |
应该是完成 |
- |
猫 |
解析器的开始类别 |
语法的默认开始类别 |
输入 |
光标左侧已键入的字符串 |
空字符串 |
从 |
用于分析的具体语法的名称 |
将尝试语法中的所有语言 |
限制 |
生成的最大树数 |
将返回所有单词 |
输出
输出是一个对象列表,其中有两个字段描述完成。
抽象语法树可视化
此命令将抽象语法树呈现为图像。支持多种图像格式。
命令 |
应该是抽象树 |
- |
树 |
要呈现的抽象语法树 |
- |
格式 |
输出格式(gf>3.3.3) |
png公司 |
输出
默认情况下,输出是PNG格式的图像。Content-Type设置为图像/png
,因此可视化生成的图像的最简单方法是添加HTML元素<img/>
指向可视化命令的URL,即:
<img src=“http://localhost/my_grammar.pgf?command=abtrtree&tree=。。。"/>
这个格式
参数也可以是gif格式
,高级副总裁
或全球价值观
,用于GIF(图像/gif
)、SVG(image/svg+xml
)或graphviz(文本/纯文本
)格式。
分析树可视化
此命令呈现与特定抽象语法树相对应的解析树。生成的图像为PNG格式。
命令 |
应该是解析树 |
- |
树 |
要呈现的抽象语法树 |
- |
从 |
渲染中使用的具体语法的名称 |
- |
格式 |
输出格式(gf>3.3.3) |
png公司 |
选项 |
其他渲染选项(gf>3.4) |
- |
其他渲染选项包括:诺列夫
,没有乐趣
和诺卡特
(布尔值,默认为false);节点(nodefont)
,叶子字体
,节点颜色
,叶色
,节点格式
和叶状花纹
(字符串具有内置默认值)。
输出
默认情况下,输出是PNG格式的图像。Content-Type设置为图像/png
,因此可视化生成的图像的最简单方法是添加HTML元素<img/>
指向可视化命令的URL,即:
<img src=“http://localhost/my_grammar.pgf?command=parsetree&tree=。。。"/>
这个格式
参数也可以是gif格式
,高级副总裁
或全球价值观
,用于GIF(图像/gif
)、SVG(image/svg+xml
)或graphviz(文本/纯文本
)格式。
单词对齐图
此命令显示语法中某些句子和所有语言的单词对齐图。句子是从给定的抽象语法树生成的。
命令 |
应该是对齐 |
- |
树 |
要呈现的抽象语法树 |
- |
格式 |
输出格式(gf>3.3.3) |
png公司 |
到 |
图表中包含的语言列表(gf>3.4) |
语法支持的所有语言 |
输出
默认情况下,输出是PNG格式的图像。Content-Type设置为图像/png
,因此可视化生成的图像的最简单方法是添加HTML元素<img/>
指向可视化命令的URL,即:
<img src=“http://localhost/my_grammar.pgf?command=alignment&tree=。。。"/>
这个格式
参数也可以是gif格式
,高级副总裁
或全球价值观
,用于GIF(图像/gif
)、SVG(image/svg+xml
)或graphviz(文本/纯文本
)格式。
单词依赖关系图
此命令(在GF>=3.8中可用)以各种格式输出单词依赖关系图。
命令 |
应该是去树 |
- |
树 |
要呈现的抽象语法树 |
- |
格式 |
输出格式,见下文 |
点 |
到 |
要在图表中使用的具体语法的名称 |
- |
这个格式
是以下之一:
png公司
,gif格式
,全球价值观
:用graphviz渲染,
高级副总裁
,乳胶
:普遍依赖性图表,以SVG格式用于网页或作为LaTeX图片代码用于LaTeX文档,
conll公司
,麦芽标签
和麦芽输入
:文本格式
未记录的命令
还有一些其他命令缺少适当的文档:
阿伯杰森
,浏览
,下载
,生成
,线性化所有
,线性化表
,lookupmorpho(查找形态)
,翻译组
.
有关详细信息,请参阅源代码。
使用C运行时系统的命令
GF包括PGFAPI的两个实现:传统的Haskell实现和较新的C实现。上面记录的命令都使用Haskell实现。以下命令使用C实现:
c-解析
,c线性化
,c-linearizeA全部
,中文翻译
,c-lookupmorpho
,c-冲洗
,c语法
,c-抽象树
,c-语法树
,c-前字
.
它们实现了与相应命令相同的功能,但没有c(c)-
前缀,尽管它们支持哪些参数有一些限制,并且输出的JSON数据结构也有一些差异。
使用这些命令时,语法将由C运行时系统加载和缓存。如果您使用来自Haskell和C实现的命令,并且语法相同,则语法将加载两次。
www.grammaticalframework.org