Migdal

スライムさん
スライムさん

Posted on

人工言語コンペ 2026年春(第15回)投稿作品

いやー、なんでこんなに忙しいんでしょうね。

挨拶 coi rodo mi'e .slaimsan.
どうもこんにちは、スライムさんです。
コンペですね。色々ありましたが、人工言語コンペやっていきます。

お題

「無」の持つ性質を文法に組み込んだ言語を作ってください
審査要件

  1. 言語体系
  2. その言語のどこに「無」が組み込まれているか
  3. 簡単な例文いくつか(文法の性質が活きているとなおよい)

以下は出来ればで提出
ex1.その言語を話す主体の特徴と居住地域
ex2.その主体たちの間での今年の流行語

大分難しいお題ですね。工学っぽさのあるお題で、個人的には得意分野かもというのが第一印象でしたが、仕事の忙しさでなんもできてなかったのですが、昔作りかけた言語の素を眺めながら考えていたら、ひらめきがやってきたので書いていきます。

1. ムボイン語

時々言及してたのですが、母音を使わない言語「ムボイン語」というのを検討したことがあります。完成していなかったのですが、昨日たまたま当時検討していた時のエクセルファイルを覗いていて、これを再利用してコンペに使えないだろうかと思い始め、完成させる決意をしました。

1-a. 音素(潜在形)

使う音は、次の7種類です。

M, N, G, F, S, X, L

これらは厳密には音そのものではなく、「潜在形」です。実際の単語になる時は別な形である「顕在形」になります。

Gは軟口蓋破裂音ではなく軟口蓋鼻音を表します。アルファベットの中で一番近いやつということで、Gを使っています。またXは(無声)軟口蓋摩擦音を表します。X本来の音ですね。

これらの音を選んだ理由ですが、全て持続音になります。すなわち、その音を持続して出すことができる音です。p, t, kなどの破裂音は持続できないのですが、鼻音、摩擦音は持続させることができます。これらの音であれば、母音が無くても長く発音して聞き取りやすくできると考えました。

1-b. 音素(顕在形)

前項で出てきた7つの音は潜在形で、実際の単語になる時は別な形になります。(潜在形は大文字、顕在形は小文字で表すことにします。)

そもそもなんでこんなことになっているかと言うと、同じ音が続いた時になんかその音を発音したか聞き取りが難しくなるので、間に緩衝音を挟むようにすることにしたからです。それ以外にも、連続して発音するのが難しい組み合わせに対しては、緩衝音を入れる仕組みにしています。

と言うわけで、潜在形の音が並んだ時に、実際の顕在形がどうなるかをまとめた表が以下になります。

↓前の音/後の音→ M N G F S X L
M mbmb mbnd mbng mpf mps mpx mbl
N ndmb ndnd ndng ntf nts ntx ndl
G ngmb ngnd ngng nkf nks nkx ngl
F fmb fnd fng fpf fs fx fl
S smb snd sng sf sts sx sl
X xmb xnd xng xf xs xkx xl
L lmb lnd lng lf ls lx ltl

たとえば、MN という潜在形を持つ語がある時、実際の顕在形は mbng という語になります。
法則は以下です。

  1. 鼻音系は対応する破裂音が付属する。後ろに来る音が摩擦音の場合は無声化して、それ以外は有声化する。(なお、語末であれば破裂音は無声化するのを標準とする。)

  2. 同じ摩擦音が連続する場合は、間に対応する破裂音を入れる。これにより、後ろの音は破擦音となる。

  3. Lが連続する時は t を挟む。

これらの規則により、子音だけにも関わらず、比較的発音と聞き取りのしやすい語形が生まれるのではと思っています。

1-c. 単語

単語の形はエクセルで生成しました。いつもなのですが、単語の発音が似た発音(レーベンシュタイン距離が1以下)にならないように単語を自動生成する仕組みを持っていまして、それを使いました。この仕組みを使って潜在形が3文字以下になる単語は49語まで生成できるので、今回の言語は49語だけ実装することにしました。
単語に割り当てる意味は、レテシミ語が52語なので、少し削ってあげればそのまま適用できそうなので、これを利用します。
この結果出来上がった単語と意味は、本記事の一番最後に辞書として載せておきます。また気力があったら、ZpDICにもまとめておきます。

2. BNF記法

はい、これで単語は出来上がりました。なので、文法を作っていきたいのですが、その前に個人的に紹介しておきたい表記法がありますので、ここに記載しておきます。この後に出てくる文法にはあんまり影響がないので、読み飛ばしても良いですが、アイディアの源泉となっているものなので、参考としてみて頂ければと思います。

2-a. BNF記法の基本

コンピュータの世界で時々出てくるのですが、なんらかの構文を説明するときにバッカス・ナウア記法というのが使われることがあります。「Aという要素は、α, β, γのどれかを指します。」「Bという要素は、 δの後にAが続くものを指します」という構造を式で羅列して、構文を説明する表記法です。先に示した例文を、BNF記法で書くと下記のようになります。

<A> ::= "α" | "β" | "γ"
<B> ::= "δ"

まず、説明したい要素を式の左側に書きます。その要素に名前を付けて "<" と ">" で囲みます。その名前を付けた要素が具体的にどういうものの組み合わせなのかを等号 ::= の後に続けます。要素の候補が複数ある場合は "|" で併記して列挙していきます。

2-b. 実例

古くはパーニニ文法がBNF記法と同じ構造になっていたりするので、言語の文法の説明をするときにBNF記法を利用すると良いのではと、個人的には思っています。
BNF記法を使えば、例えば英語の文法の説明は、下記のような形になります。(英語の文法を網羅しているわけではなく、一部分だけの説明です。)

<文> ::= <主語> <動詞>
| <主語> <動詞> <補語>
| <主語> <動詞> <目的語>
| <主語> <動詞> <目的語> <目的語>
| <主語> <動詞> <目的語> <補語>
<主語> ::= <一般名詞> | "I" | "you" | "he" | "she" | "it" | "we" | "they"
<目的語> ::= <一般名詞> | "me" | "you" | "him" | "her" | "it" | "us" | "them"
<補語> ::= <形容詞> | <一般名詞>

最初の <文> のところで5つの型が提示されています。いわゆる5文型ですね。(最近の英語教育では、5文型とかやらないような雰囲気なので、さも当たり前のように言うのもどうなんだろう。) 文には SV, SVC, SVO, SVOO, SVOCの5種類があると言っているのが <文> の内容ですね。
その後に、主語というのは何か、目的語とは何か、補語とは何かをブレイクダウンして説明しています。動詞と一般名詞と形容詞が具体的に何なのかここには書いてないですが、皆さんが知っている動詞、名詞、形容詞がここに長々と羅列されていくと考えてください。

このように式で書かれていると、スッキリしませんかね? この内容を文章で書くと、結構長々と書かれることになるので、逆に難しいと個人的には感じます。

2-c. 拡張BNF記法

素のままのBNF記法だと表現力が弱すぎて、よくある構造を記載するのに冗長になるので、実際に使われるのは各々拡張した表記法を使うことが多いです。

例えば1回以上の繰り返しを表す "+" を要素の記号の後ろに置く拡張があります。

<要素A> ::= <要素B>+

と書かれていたら、「要素Aは、要素Bの1回以上の繰り返し」のことになります。「要素B」「要素B 要素B」「要素B 要素B 要素B」……が要素AとしてOKになります。これを素のBNFで書くと、

<要素A> ::= <要素B> <要素A> | <要素B>

という感じで書くことになります。再帰的な表記を使っていることに注意してください。一応表せていますが、冗長なのと分かりにくさがあるので、拡張記法の方が分かりやすいのではないでしょうか。

他にも、省略可能な要素がある時に、拡張BNFでは "[" と "]" で囲む表記があります。

<要素A> ::= [ <省略可能な要素> ] <必須の要素>

みたいな感じです。これを素のBNFで表そうとすると

<要素A> ::= <省略可能な要素> <必須の要素> | <必須の要素>

のようになり、冗長になってしまいます。省略可能の記号があると、表記が短くて済みますね。後マイナーですが、空文を明示的に表すε(イプシロン)という記号が使われることもあります。上記の省略可能な要素の例で言うなら、

<省略可能な要素> ::= <foo> | <bar> | ε

と定義しておくことで、

<要素A> ::= <省略可能な要素> <必須の要素>

とすることができるというわけです。
さて、このイプシロンですが、覚えておいてください。これが、今回のお題への解答のキーになる要素です。

3.アイディアと文法の実装

さて、コンペのお題に戻ってみましょう。

「無」の持つ性質を文法に組み込んだ言語を作ってください

「あ、拡張BNFのイプシロンと相性良さそうじゃん。」と、お題を聞いた時に直観しました。なのでこれを文法に取り込みたいと思っていました。しかしどう文法に反映させようか思いつかずにいました。しかし、先程思いつきました! それは……

3-a. アイディアの核心

目的語が省略されたら、その文章は否定文になる。

というアイディアです。例示して説明します。

I drank water.
私は水を飲んだ。

これは目的語がちゃんとある文です。ここから目的語を除いた

I drank .
私はを飲んだ。

という文を考えます。省略されていることを明示するため、εを活用して

I drank ε.
私はεを飲んだ。

と書いても良いです。この時の意味の解釈として「飲んだものに該当するものが無かった」と考え、「私は何も飲まなかった。」という意味を表すものと定義するわけです。

目的語の省略として最初は思いつきましたが、別に主語でも同じことができます。

ε drank water.
εは水を飲んだ。

つまり「誰も水を飲まなかった。」という意味にするわけです。
どうでしょうか? 該当する対象が「無」であることを上手く利用できているのではないでしょうか?

3-b. 文法

ミニマムな言語なので、大した機能は付けられないですね。ガッツリ機能をそぎ落としましょう。文法がミニマルな言語としてはタコ語があります。参考にします。
タコ語は "a" という機能語で文の要素を区切って、2番目の要素に動詞を置くという文法です。動詞の後ろに来る要素は目的語になりますが、目的語を2個続けて、SVOOの構造にすることも可能です。
今回のムボイン語では、要素が省略されていることが明示的に分かる方が嬉しいので、動詞は一番最後の要素として置くルールとします。 ムボイン語では唯一の機能語として "nts" を定義します。タコ語の "a" に相当する語です。

3-c. BNF記法による定義

せっかくBNF記法の説明をしたので、ムボイン語の文法をBNF記法で書いてみることにします。

<文> ::= <主語> <機能語> <動詞>
| <主語> <機能語> <目的語> <機能語> <動詞>
| <主語> <機能語> <目的語> <機能語> <目的語> <機能語> <動詞>
<機能語> ::= "nts"
<主語> ::= <句>
<目的語> ::= <句>
<句> ::= <内容語>+ | ε
<動詞> ::= <内容語>+

一番最初の定義は、文の型が3種類あって、SV, SOV, SOOV が文として認められることを表しています。
2つ目の定義は、"nts"が機能語であることを明示しています。
その次の定義は、主語と目的語はどちらも句であるとしています。この定義は無くても良いのですが、人間の理解のしやすさのために入れました。
句は内容語の羅列であることを言っているのがその次の定義ですが、ここで重要なのが ε です。これで「省略してもよい」ということが分かります。
最後に動詞も内容語の羅列ですが、省略できないということが句の定義との比較で分かるかと思います。最後に何か内容語を言わないと、文が終わった感じがしなくなるかなと思ったのと、動詞が空になるのは無いだろうという考えです。

3-d. 例文

最後にいくつか例文を書いて終わりにします。後続の辞書も参考にしてください。

fmb nts mbmbmb nts fpfx
人間 機能語 水 機能語 食べる
人間が水を飲む。

fmb nts nts fpfx
人間 機能語 機能語 食べる
人間は何も食べない。

今回の案の核心部分の例文ですね。単なる否定もできます。

fmb nts mbndnd nts fpfx lnd
人間 機能語 木 機能語 食べる ない
人間は木を食べない。

否定を前置するのか後置するのか決めてなかったのですが、今ここで後置に決めました。

主語の方の省略で否定もできます。

nts mbmbmb nts fpfx
機能語 水 機能語 食べる
誰も水を飲んでいない。

前置詞のような便利な機能は無いので、より複雑な文章にするには、2つ以上の文に分ける方針とします。例えば「人々は家に行く」のような文章であれば

fmb xndng nts ngng
人間 多い 機能語 行く
多くの人が行く。

fmb xndng nts fndmb nts ngmbng
人間 多い 機能語 家 機能語 存在
多くの人が家に居る。

のように2文に分けます

A. 辞書

潜在形 顕在形 意味
NS nts 唯一の機能語
LN lnd ala not no zero 無い 否定語 対義語の生成
XF xf toki talk say 話す 言葉
SX sx pona good 良い
FM fmb jan human 人間 soweli animal 獣 犬 生き物 活動体全般
GG ngng kama come move 来る tawa to 向かう
ML mbl sona know 知る
XNG xndng mute many much 多い
SFG sfng tenpo time 時
FXG fxng wile will want 望む
GMG ngmbng lon exist 存在する ある
NGG ndngng ken can 可能 できる
MSG mpsng suli big high 大きい 偉い
SNX sntx moku eat 食べる
FFX fpfx ma place 場所 地
GXX nkxkx luka hand 手
NMX ndmpx lukin look see watch見る
MGX mbnkx pali make 作る
LLX ltlx wan unite 合わせる
FNM fndmb tomo home building 家 建物
GFM nkfmb kiwen stone 石
NXM ntxmb tu cut 切る split 割る two
MMM mbmbmb telo water 水
LSM lsmb nimi name 名前 word単語
XLM xlmb pana give 与える
GNF ngntf sin new 新しい other
NFF ntfpf meli woman 女
MXF mpxf pilin feel 感じる
LGF lnkf kepeken use 使う 機能を発揮する
XSF xsf lupa hole 穴
SLF slf kulupu group 群れ
NNL ndndl open open 開ける
MFL mpfl pini finish 終わる
LML lmbl kon air wind 空気 風
XGL xngl mama parent 親
SSL stsl sewi high up above 上
FLL fltl pimeja black dark 黒
MNN mbndnd kasi plant 木
LXN lxnd lipu flat 平ら
XMN xmbnd palisa stick 棒
SGN sngnd insa inner 内側
FSN fsnd pakala hit 打つ
GLN nglnd sijelo body 体
LFS lfs sike circle 丸
XXS xkxs sinpin front 前
SMS smps seli hot warm 暖かい
FGS fnks linja line 糸 線
GSS nksts kule color 色
NLS ndls poka side 側

人気順のコメント(0)