2025 Q1
2 年経ってしまった
以下の要素を加えて v0.4 を作りたい
unrooted にする
place structure を導入する
unrooted にする
https://gyazo.com/0d0d025f3d493fc8793e13a5ab4a73f8
のような構造を
https://gyazo.com/e24a0bab1a51d0cd916cb345db72cc1a
のようにする
こうすることで、構造の組み替えが可能になる
https://gyazo.com/1896144cb4f059a429f82043ec897a2d
この形にするとbipuukは、二分木という感じが薄れて、単語や句にあたるパターンを回転縮小変形して繫いで句を作る、フラクタルな言語という感じになるので芸術言語性が高い
place structure を導入する
まずは cons と nil によるリスト構造を考える
https://gyazo.com/538f0dba4e3b8e3d56457f7f88ecaba6
述語と、項のリストをくっつける
https://gyazo.com/c32570ffc851b908eddd45aef059706a
rooted なくっつけ方も考えられる
https://gyazo.com/47b5a461aacc51558950655fe9c0c173
が、unrooted な方が先に述べたように組み換えを適用しやすい
例えば、述語と項リストの結合は述語に対して項を適用し続けたものともみなせる
https://gyazo.com/3a097b266abdcf4c8839a08b84f473d0
また、存在グラフ的に、項を抽出することができる
https://gyazo.com/de0c72895086f4ea9fc1f57d3faf3f91
rooted な場合、根の節や周辺の辺は何を意味するのか?というのがある
例えば、文そのもの、真偽値、イベント、とか
これは x1 を項として抽出する場合を考えると割と邪魔である
ロジバンや Toaq では x1 抽出が無標で事象抽出が有標
lo dansu : 踊る人
lo nu dansu : 踊るという事象
márao : 踊る人
é marao : 踊るという事象
ので、述語と項リストを直接くっつけた方が x1 の抽出が楽
リスト
可変長個の引数をとる方法として汎用的に使えるかもしれない
記法を導入したい
/ A \ / B \ / C → [ A | B | C ]
カンマだと左は詰めて右はスペースを空けないと個人的に気持ち悪いので、対称な区切り文字にしたいということで | が有力
項の割り当て
項の数は 3 つくらいまでにしたい
あとは BAI 類的なのでくっつける
大体以下のパターン
X は〇〇である
X は〇〇する(自動詞)
X は X を〇〇する(他動詞)
X は X に X を〇〇する(二重他動詞)
個人的な好みで、内項を述語に近い側、外項を述語から遠い側にしたい
純粋関数型言語の標準関数の項の順番が参考にできる
例えば Haskell の map 操作では操作したいオブジェクトが最後に来る Map.lookup key map
カリー化して map への操作をまとめやすい
能格言語が好き
リストは省略しても良い
/ 殺す \ [ A | B ]
/ 死ぬ \ [ A ]
で同じ役割の項を同じ場所に配置できる
能動性の有無が考えられる動詞を同じ単語にするか別の単語にするかは未定だが
二重他動詞(ditransitive verbs)は?
Map.insert key value map は key と value を逆にしたいかも
/ 与える \ / Theme \ / Recipient \ / Donor がいい
参考にロジバン
dunda : x1 は x2 を x3 に与える
勘でしかないけど、ロジバンの x1, x2, x3, ... を [ x2 | x3 | ... | x1 ] で配置するといいのでは
具体例
私はりんごを食べる
https://gyazo.com/758e5591a909da092ec7c98f6ae3a47e
組み換えて
https://gyazo.com/70fe1feaa978d9b9c0f75f62228940d6
主題を前に持ってくると SVO っぽくなる
抽象(WIP)
code:txt
/P\x
P(x)
/\P
ιx.P(x)
/\P:/\Q
ιx.P(x) = ιx.Q(x)
/P\/\Q
# 項にする場合
//P\x\v
P(x)(v)
/\/P\x
ιv. P(x)(v)
^P(x)
# イベント抽出にする場合
/lonu\/P\x
ιv. v is the event of P(x)
lonu(P(x))
# イベント述語抽出にする場合
/nu\/P\x
λv. v is the event of P(x)
//nu\/P\x\v
v is the event of P(x)
/\/nu\/P\x
ιv. v is the event of P(x)
^nu(P(x))
yx(^pf, ^qx)
yx(^pf, ^qx)
//yx\pf\qx yxpfqxi
/yx\/pf\qx yxpfqxo
Yx(^Pf, ^Qx)
//Yx\Pf\Qx
/Yx\/Pf\Qx
__yxpfqx
_yx_pfqx
yX(^pF, ^qX)
//yX\pF\qX
/yX\/pF\qX