Live2D

Wfurent 语语法概述

\[\textit{Litar!} \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\)):

\[\begin{aligned} /&\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\) 的语块构成的集合,那么

\[\wd{meo}0~\cdot~\wd{lon}*:(\mathcal W^k)^n\to\mathcal W^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\) 衍生的结构能够进行泛函运算,因为只有它能够将操作词向前匹配对象的过程截留。

  再举一个简单的例子,“我想要香蕉、苹果和菠萝味酸奶”:

\[\begin{aligned} /&\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\) 结构具有分配律。


  欢迎大家提供必要的语法结构设定,提供一些词语也可以啦!

posted @ 2024-08-11 12:57  Rainybunny  阅读(172)  评论(6编辑  收藏  举报