语法框架是一种计算机编程语言,专门为编写自然语言的语法而设计,它有能力并行处理多种自然语言。《语法框架:为多种自然语言语法编程》全面介绍了如何利用语法框架为自然语言编写语法,以及如何在旅游手册、口语对话系统和自然语言处理系统等实用系统中加以应用。书中的例子和练习涉及多种自然语言,读者可以从中学习如何从计算语言学的视角看待自己的母语。
阅读《语法框架:为多种自然语言语法编程》不需要语言学基础知识,因此,特别适合计算机科学家和程序员使用。此外,《语法框架:为多种自然语言语法编程》从程序语言理论的视角展示了处理多种自然语言语法的新途径,因此,语言学家也会对《语法框架:为多种自然语言语法编程》产生兴趣。
第1章 导论
1.1 本书内容
1.2 如何使用本书
1.3 语法在语言处理中的作用
1.4 语法成本
1.5 多语性
1.6 语义动作和互操作性
1.7 应用语法和资源语法
1.8 GF的历史及其应用
1.9 相关工作
第Ⅰ部分 语法框架辅导
第2章 多语种语法的基本概念
2.1 BNF语法格式
2.2 GF系统的使用
2.3 在GF系统中测试一个语法
2.4 用于意大利语的BNF语法
2.5 BNF语法和翻译
2.6 抽象句法与具体句法
2.7 在GF里翻译
2.8 语法模块结构
2.9 BNF语法的局限性
2.10 阻止和元变量
2.11 自由变异
2.12 歧义
2.13 剩余问题
2.14 图示形象化和命令行解释器转义
2.15 词法分析和反词法分析
2.16 字符编码
第3章 参数、表格和记录
3.1 形态变异问题
3.2 参数和表格
3.3 变量特征与固有特征
3.4 记录与记录类型
3.5 线性化类型与一致
3.6 GF中的函数编程:运算定义
3.7 Food语法的再探讨
3.8 在GF里测试词形变化和运算
3.9 部分调用
3.10 非连续成分
3.11 非衔接词法
第4章 可模块化与可扩展的语法编写
4.1 可复用的资源模块
4.2 数据抽象
4.3 分支表达式和字符串匹配
4.4 智能词形生成函数
4.5 阿拉伯语词法回顾
4.6 区分运算类型和定义
4.7 运算重载
4.8 模块扩展和继承
4.9 继承和打开
4.10 依存图
4.11 参数的代数数据类型
4.12 记录扩展和子类型
4.13 元组与乘积类型
4.14 前缀依存选择和模式宏
4.15 编译时字符串和运行时字符串
第5章 使用资源语法库
5.1 库的目的和覆盖范围
5.2 词典和短语规则
5.3 词汇范畴和规则
5.4 短语范畴和规则
5.5 资源API
5.6 库的路径
5.7 示例:英语
5.8 多语言语法的函子实现
5.9 界面和实例
5.10 多语言语法的设计模式
5.11 分工再探讨
5.12 重写函子
5.13 编译时转移
5.14 作为语言本体的资源语法
5.15 资源API概览
5.16 结构扁平化
5.17 时态和极性
5.18 浏览资源语法库
第6章 抽象句法里的语义动作和条件
6.1 作为逻辑框架的GF
6.2 依存类型
6.3 选择限制
6.4 多态性
6.5 具体句法中的依存类型
6.6 证明对象
6.7 证明携带文件
6.8 受限多态性
6.9 约束变量与高阶抽象句法
6.10 照应表达式
6.11 语义定义
6.12 内涵等式和外延等式
6.13 语义动作和运行时转换
6.14 预定义类
6.15 概率GF语法
第Ⅱ部分 更大规模语法及其应用
第7章 嵌入语法与代码生成
7.1 可移植语法格式
7.2 嵌入解释器及其API
7.3 Haskell中的嵌入GF应用
7.4 PGF模块
7.5 独立翻译器
7.6 翻译器循环
7.7 答疑系统
7.8 GF数据类型的输出
7.9 将其全部放在一起
7.10 网络服务器应用程序
7.11 其他宿主语言的嵌入语法
7.12 多语言句法编辑
7.13 语音识别的语言模型
7.14 统计语言模型
7.15 多模态对话系统
第8章 形式语言与自然语言接口
8.1 算术表达式
8.2 作为线性化的代码生成
8.3 带变量的程序
8.4 赋值的具体句法
8.5 变量的自由句法
8.6 GF对于定义形式语言是有用的吗
8.7 由逻辑生成自然语言
8.8 自然语言的逻辑语义学
8.9 分形语法
第9章 开始资源语法编程
9.1 概览
9.2 微型资源语法
9.3 特征设计
9.4 谓项
9.5 互补性
9.6 限定
9.7 修饰
9.8 词汇插入
9.9 意大利语中的微型资源
9.10 实现词法
9.11 实现修饰和限定
9.12 实现动词短语和互补
9.13 实现谓项
9.14 实现剩余的部分
9.15 并列和抽取
第10章 扩展资源语法库
10.1 资源语法的模块结构
10.2 所需工作量统计
10.3 一种新语言的工作流程
10.4 重用微型资源的代码
10.5 研发-测试周期
10.6 非ASCII字母和转写
10.7 编码原则
10.8 资源语法中的函子
10.9 扩大句法分析文本的覆盖范围
10.10 引导一个资源词典
附录A 小型资源语法
A.1 抽象句法
A.2 意大利语助动词资源模块
A.3 意大利语具体句法
A.4 意大利语词法词形变化表API
A.5 测试词典
A.6 语法API
附录B 语言学术语词汇表
第Ⅲ部分 语法框架参考手册
附录C 语法框架编程语言
C.1 GF概览
C.2 模块系统
C.3 判断
C.4 类型与表达式
C.5 标志与编译指示
C.6 GF语法
附录D 语法框架资源语法库
D.1 范畴系统
D.2 语法规则
《语法框架:为多种自然语言语法编程》:
5.14 作为语言本体的资源语法
资源语法是句法的语法,而不是语义的语法。它们的目标是,涵盖多种语言的句法结构,并且这些结构是独立于它们的应用目的和应用领域的。如何在GF中理解这一点呢?特别是如何能够在脑子里没有语义结构的时候构建一个抽象句法?
我们可以把资源语法的抽象句法作为语言本体来考虑。它是一个语言对象的领域,用语言类组织起来,遵循严格的组合规则。在西方语法传统中,两千年的研究和教育已经建立起了一套相当标准的概念,并已经在20世纪作为精确的数学模型被形式化了,又在后来的几十年中,以计算机程序实现的方式形式化。GF资源语法库就是这样的一个模型及其实现的例子。
独立于语言的语言本体思想是西方这一传统的一个组成部分。它起源于古希腊语,后来很快适用于拉丁语。因为希腊语和拉丁语是紧密联系的语言,因此并不困难。后来,同样的理念被应用到了现代欧洲语言中,甚至其他语系的语言中,像芬兰语和阿拉伯语。有时,这些传统的语法概念过于牵强,实际上并不适合所有的语言。不过,拥有一个共同的概念框架,对实践和理论都有利。
外语学习者可以从之前语言中熟悉的相关概念得到帮助。
可以利用以前的工作实现资源语法。在GF中,抽象句法给出了语法必须涵盖内容的“检查表”。而且,具体句法的代码也可重复使用。
如果该资源语法可作为界面并允许函子使用,应用语法的编写可以最大程度地简洁。
语言类型学中有明确的概念讨论语言之间的相似处和不同点。
因此,不同语言之间,什么是相同的,什么是不同的?当我们翻看一本传统的语法书的目录时,对于几乎任何一种语言,我们都会找到一章讲名词、另一章讲形容词、动词,可能还有讲其他词类的内容。经常还会有章节讲句法,包含像句子的组成这样的主题。
对于每种词类,一本典型的语法书里会有关于词形变化特征的章节(如格、性和时态),之后,作为实质性的部分,会有词形变化表。这些部分在各语言之间差别很大。例如,性在某些语言中有三个值,而在其他语言中只有两个值。某些语言,如芬兰语,没有性。但是,总的情况是,语法书所给出的词类对所有的语言都是共同的,而特征和词形变化,当然还有词语本身是不同的。
……