Wfurent 语语法概述
\newcommand{\wd}[2]{\texttt{#1}^{#2}}
\]
让神明白
文字产生于史前的祭祀,史前的人们改造了原始的语言规则,使得句子拥有“唯一语义性”(至少保证语法树可被唯一生成),以清晰(而不那么像人话)地传递对神的祈求。后来人们逐渐适应了改造语言,产生了系统的 Wfurent 语。
词性
词语 \(W\) 具有唯一的词性标志——对象数 \(k\in\mathbb Z_{\ge 0}\),记为 \(W^k\)。(儿童读物上会标注哦~)硬要和英文语法对应的话,\(k=0\) 的词可以认为是 n/pron,\(k=1\) 的词可能是 adj/adv,\(k\ge1\) 的词可能是 v/prep 等。不考虑口语词。
基本语法
- \(S=/W^0/\) 是句子。为了体现语法分析中的同一性,我们把这样的 \(S\) 和 \(W^0\) 都叫做对象。对象是内部完成匹配、整体可作为一个 \(W^0\) 参与成句的语块。
- \(S=/S_1\ S_2\ \cdots\ S_k\ W^k/\) 是句子,其中 \(S_{1..k}\) 是对象,\(W^k\) 的解释规则由其词义决定,\(k>0\)。我们把这样的 \(W^k\) 称为操作词。操作词是内部未完成匹配、整体可作为一个 \(W^{k'}\) 参与成句的语块。
- 所有句子能且仅能通过上述规则产生。语法正确的语段由且仅由多个句子并列而成。
例如,英语 "I buy you a gift",我们规定 \(/S_1\ S_2\ S_3\ \wd{buy}3/\) 解释为“\(S_1\) 给 \(S_2\) 买了 \(S_3\)”,那么上句改写成 Wfurent 语法形式就是 \(/\wd{I}0~\wd{you}0~\wd{gift}0~\wd{buy}3/\)(没有冠词),这也是一个对象。同时,其中的 \(/\wd{gift}0~\wd{buy}3/\) 就可以视为一个操作词 \(W^2\)。
特殊词语
【占位对象】如果只想表达“我买了一件礼物”,又没有相应语义的动词怎么办?Wfurent 语提供了一系列占位对象。例如 \(\wd{de}0\),无实意,占据操作词的一个对象匹配位置。于是“我买了一件礼物”:\(/\wd{I}0~\wd{de}0~\wd{gift}0~\wd{buy}3/\)。为了避免 \(\wd{de}0\) 连用影响观感,Wfurent 语还有一些小小的“语法糖”,例如复占位对象 \(\wd{dew}-=(\wd{de}0~\wd{de}0)\),虽然等号左右的词语就是完全等价的,但是我们建议 \(\wd{dew}-\) 展开出的两个占位对象被同一个操作词匹配。另外,还有全占位对象 \(\wd{det}-\),它满足 \(/\wd{det}-~W^k/=/\underbrace{\wd{de}0}_{k~\text{times}}~W^k/\),用于对象化一个操作词(通常表示动作,所以可以理解为名化动词)。它可以简写 \((\wd{det}-~W^k)='W^k\),读音为在 \(W^k\) 前加一个轻声的 /t/。
【可变操作词】那“苹果、香蕉、菠萝和梨子”怎么办?并列词“和”为 \(\wd{la}2\),难道要“和”三次吗?对这些有并列意义的词,Wfurent 语提供还提供了“可变操作词”和“端点对象”。可变操作词记为 \(W^*\),端点对象是 \(\wd{meo}0\),用法是 \(/\wd{meo}0\ S_1\ S_2\ \cdots\ W^*/\),意义不言自明。虽然符合语法,但 Wfurent 人民诚挚地建议您,不要说 \(/\wd{meo}0\ W^*/\) 这样的废话文学。“苹果、香蕉、菠萝和梨子”:\(/\wd{meo}0\ \wd{apple}0\ \wd{banana}0\ \wd{pineapple}0\ \wd{pear}0\ \wd{lan}*/\)。(鬼畜素材:《\(/\wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{de}0\ \wd{la}2\ \wd{la}2\ \wd{la}2\ \wd{la}2\ \wd{la}2/\) 和它的另外 41 种说法》。)
【名词动化】我们已经有了动词(操作词)名化(对象化)的手段,或者说这种手段在存在 \(\wd{de}0\) 的语言中是自然而然的。实际上,Wfurent 语还提供了用于名词动化的操作词 \(\wd{cat}2\),在 \(/S_1~S_2~\wd{cat}2/\) 中,对象 \(S_2\) 被动化为一个 \(W^1\)(通常用作形容词或副词)修饰 \(S_1\)。例如“香蕉酸奶”(banana yogurt):\(/\wd{yogurt}0~\wd{banana}0~\wd{cat}2/\) 什么酸奶香蕉猫。
进阶语法
Wfurent 语允许对操作词的 Curry 化使用。
直接从例子出发,“我们或坚持或徘徊或放弃,我们或生活或生存或死亡,我们或新生或苟延或沉沦”(We [persist, linger or abandon], [live, survive or die], and [revive, remain or sank]),中括号用来划定 or 的结合范围,可见英语没办法强行说出这样一个句子。但这个句子可以用 Wfurent 语说(不妨认为上述英文动词都是 \(W^1\)):
/&\wd{y}0~\wd{w}0~\wd{la}2\\
&\wd{meo}0\\
&\quad\wd{meo}0~\wd{persist}1~\wd{linger}1~\wd{abandon}1~\wd{lon}*\\
&\quad\wd{meo}0~\wd{live}1~\wd{survive}1~\wd{die}1~\wd{lon}*\\
&\quad\wd{meo}0~\wd{revive}1~\wd{remain}1~\wd{sank}1~\wd{lon}*\\
&\wd{lan}*/
\end{aligned}
\]
(这样排版仅为方便语法分析。)其中 \(\wd{lon}*\) 是 \(\wd{lo}2\)(“或者”)的可变操作词形式。分析这个句子,内层的 \(\wd{meo}0~\cdot~\wd{lon}*\) 结构表达了三个动作的“或者”,整体构成了一个新的操作词。可以再形式化一点,令 \(\mathcal W^k\) 表示 Wfurent 语中一切对象数为 \(k\) 的语块构成的集合,那么
\]
就可以视作一个 Curry 化的函数,它将 \(n\) 个 \(W^k\)(“函数”)以“或者”的逻辑关系并列,打包成一个新的 \(W^k\)。当然,这就要求内部语块在完成内部匹配后,要不留下的都是对象(\(\in\mathcal W^0\)),要不留下的都是对象数相同的操作词。
类似地,外层的 \(\wd{meo}0~\cdot~\wd{lan}*\) 以“并且”的逻辑关系将三个泛函打包成一个新的泛函(\(\in\mathcal W^1\)),它对应着英文原句中的九个动词以及它们的并列逻辑。最后这个 \(W^1\) 匹配了对象词(语块)\(\wd{y}0~\wd{w}0~\wd{la}2\)(“你”+“我”+“和”,即“你和我”“你我”。原则上 \(\wd{w}0\) 可以表示“我”“我们”,但这里作为语气上的强调就写成“你我”了),构成了完整句子。
需要注意的是,只有 \(\wd{meo}0\) 衍生的结构能够进行泛函运算,因为只有它能够将操作词向前匹配对象的过程截留。
再举一个简单的例子,“我想要香蕉、苹果和菠萝味酸奶”:
/&\wd{w}0~\wd{yogurt}0\\
&\wd{meo}0\\
&\quad\wd{banana}0~\wd{cat}2\\
&\quad\wd{apple}0~\wd{cat}2\\
&\quad\wd{pineapple}0~\wd{cat}2\\
&\wd{lan}*\\
&\wd{tawa}2/
\end{aligned}=\begin{aligned}
/&\wd{w}0~\wd{yogurt}0\\
&\wd{meo}0\\
&\quad\wd{banana}0\\
&\quad\wd{apple}0\\
&\quad\wd{pineapple}0\\
&\wd{lan}*\\
&\wd{cat}2~\wd{tawa}2/
\end{aligned}
\]
其中 \(\wd{tawa}2\) 指“X 想要 Y”。我们同时也发现 \(\wd{cat}2\) 对 \(\wd{meo}0\) 结构具有分配律。
欢迎大家提供必要的语法结构设定,提供一些词语也可以啦!
Wfurent 语语法概述的更多相关文章
- Objective-C语法概述
Objective-C语法概述 简称OC 面向对象的C语言 完全兼容C语言 可以在OC里面混入C/C++代码 可以开发IOS和Mac OS X平台应用 语法预览 关键字 基本上都是以@开头(为了与C语 ...
- javascript运算符语法概述
× 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...
- MySQL 安装 启动 基本语法概述
MySQL 安装 启动 基本语法概述 MySQL安装和配置 我是直接使用安装包:mysql-installer-community-5.6.10.1.msi 安装的时候其中有几点要注意: 1.记住端口 ...
- Xaml语法概述及属性介绍
Xaml语法概述 1.命名空间 xmal每个元素都对应着一个类,但是在xmal中,只提供类名是不够的,需要知道该类实在.net的哪个命名空间下面.Xaml解析器才能够正确的解析. 1 < ...
- <关于JSP技术>运行机制及语法概述(附对本次同济校内ACM选拔赛决赛的吐槽)
(一)JSP运行的机制 JSP是一种建立在Servlet规范功能之上的动态网页技术,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过和ASP不同的是JSP文件中嵌入的是Java代码和JS ...
- Drools 规则文件语法概述
概述(Overview) 以.drl为扩展名的文件,是Drools中的规则文件,规则文件的编写,遵循Drools规则语法.下面详细介绍一下Drools规则文件语法.具体参考官方文档: https:// ...
- QT (QSS) 编程, QSS语法概述。。setstylesheet
http://www.cnblogs.com/davesla/archive/2011/01/30/1947928.html 转载] QT皮肤(QSS)编程 借用css 的灵感, Qt也支持Qt自己的 ...
- python语法_1基础语法概述
http://www.runoob.com/python3 章节:教程.基础语法.数据类型.解释器.注释.运算符. 大纲 查看python版本 实现第一个python3.x程序,hello world ...
- holiday06-英语语法-语序和五种基本句式
第六天 英语五种基本句式: 基本句式一:S V (主+谓) 基本句式二:S V P (主+系+表) 基本句式三:S V O (主+谓+宾) 基本句式四:S V o O(主+谓+间宾+直宾) 基本句式五 ...
- javascript基础语法——词法结构
× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫 ...
随机推荐
- mysql 查询两个日期之间所有天数(查询近两个月所有日期)
本文转自博文:https://blog.csdn.net/qq_42795259/article/details/126722209 遇到一个需求需要查询近两个月所有日期,如下图: 首先实现解决问题如 ...
- 【填算符】(log 值域的做法)
比赛在这里呢 填算符 下发题解说的神马东西,赛时根本想不到 讲一个赛时想得到的 \(O(n\log 值域)\) 的思路,很好理解 我们处理出二进制下每一位上的 1 的最后一次出现的位置,将第 \(i\ ...
- Chapter 1 内容梳理
目录 程序的编译与执行 编译环境 程序的编译 程序的执行 标准输入与标准输出 例程导入 标准输入与输出对象 输入与输出符号详解 函数角度理解[用函数的副作用] 运算符角度理解 定位符号(scope o ...
- 基于Java+SpringBoot心理测评心理测试系统功能实现七
一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...
- Mac之终端工具iterm2
1. 安装 iTerm2 下载地址:https://www.iterm2.com/downloads.html 下载的是压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到 Applica ...
- 小白PDF阅读器开发-页面元素分割
以前用手机看PDF格式的电子书时,总感觉非常别扭,PDF格式的电子书在手机上缩放严重,字体太小,想看清楚得来回放大拖动,看书的兴致就在来回缩放拖动间被消耗没了!每次用手机看PDF电子书时就想着得做款能 ...
- docker构建supervisor镜像
1 介绍 记录使用docker 构建包含 supervior 的镜像, supervisor: 是一个管理和监控进程的程序,可以方便的通过配置文件来管理我们的任务脚本 将supervisor构建到系统 ...
- web移动端触屏事件
1.移动端与pc端的区别 (1)移动端没有鼠标,自然也没有鼠标事件.所以onmousedown之类的事件监听在移动端时无效的. (2)移动端为了响应双击事件,onclick事件有300ms的延迟,接下 ...
- 前端每日一知之让Chrome支持小于12px的文字
脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来
- cajviewer逆向分析-HN文件格式分析和010editor模板开发
文章首发于 https://mp.weixin.qq.com/s/7STPL-2nCUKC3LHozN6-zg 概述 本文介绍对cajviewer中对HN文件格式的逆向分析并介绍如何编写相应的010e ...