CSEL(仮)
概要
- Common S-Expression Language の略。
- この名前は仮のもので、将来により良い名前を思い付いたら変更する可能性がある。
- 後述の目的を満たす言語が必要であった為、策定する事にした。
目的
真の目的
- (人間等の)知的存在が思考する為の「よりパワフルな言語」を構築する。
- このアイデアの大元は、Greg Eganの「クリスタルの夜」(Crystal Nights)に登場するブースト言語。
- Paul Grahamは「普通のやつらの上を行け」の中で「プログラミング言語は、その力において差がある」と言った。しかしこれはプログラミング言語に限らず、自然言語にもあてはまるのでは?
- つまり、Lispの自然言語版を作りたい。
- おそらく、副作用無し、マクロ有りの、簡約ベースの言語になる気がする。
- この言語によってVM(的機構)及びVM用言語を記述し、そのVMを上位自我とし、VM同士はVM用言語で会話する、みたいな未来を想定。
- つまり、我々は「中国語の部屋」の中の作業員になる。これは一見楽しくなさそうに見えるが、よく考えれば今の我々自体が「中国語の部屋」的な構成になっている。
- 『人間の肉体を持つ自分』と『言葉で思考している自分』とは、実は別のレイヤーの存在であるという事。『人間の肉体を持つ自分』は怒りや悲しみ等、動物レベルの思考能力しかもっていないけど、シンボル操作能力(=言語能力)はあるので、そのシンボル操作能力を使って『中国語の部屋』を構築した。その『中国語の部屋』こそが『言葉で思考している自分』である、という仮説。この仮説が正しければ、更に階を重ねても特に問題は無いように思える(但し、実行コスト面での問題がある。「クリスタルの夜」ではこの問題に対して、脳改造によって、自身の脳をVM実行に特化させる事で解決したように読める)。
大目的
- しかし、真の目的を達成する為の「よりパワフルな言語」の仕様を策定するのは大仕事である。
- よって、ここでは一旦CSELPの目的を満たす言語を作成し、それが完成した後に徐々に真の目的に向けて改良していくという手法を取る。
- なので、現段階での大目的は「CSELPの大目的と同じ」という事とする。
大目的を達成する為に必要となる小目的
- 人間が発音/入力しやすい事。
- その際には「携帯端末から入力」「音声端末から入力」という状況も考慮されている事。
- 入力(可能なら出力も)が、文字列以外の音声等であっても機能できる事。
- コンピュータが解釈しやすい事。
- (人間は入力中に推敲したりするので)人間にも解釈しやすい事。
- (コンピュータだけではなく、人間にも)validationが比較的簡単に行える文法である事。
その他の条件
- CSELPの仕様にも適合するようにする必要がある。
- 既存の自然言語から流用可能な部分は流用してよい(単語とか?)。
- 基本仕様はルールだけ決定し、実際の細かい書式については、サブセットという形を取る。これによって、「日本語ユーザ向けのCSELサブセット」「英語ユーザ向けのCSELサブセット」のように、複数の形態を取れるようにする。
仕様策定の際の方針について
- 今のところは、大雑把な感じで。
- とりあえずこのページには、将来になっても(おそらく)変更されない部分について書いていく。
- 将来に変更される可能性の高そうな、仕様の内の細かい部分は、「CSEL/X.Y」等の各バージョンのページを作り、そっちに書く。
基本仕様
- CSELで記述された文章にはバージョンというメタ情報が存在し、そのバージョン毎に細かい仕様が違うものとする。
- 同様に、サブセットというメタ情報も存在し、これは「日本語」「英語」等に相当する。
- このサブセットにも個別にバージョンがつけられる。おそらく「japanese-0.0」のような文字列になるだろうと思われる。
- サブセットは複数選択が可能なものとする。サブセット同士がコンフリクトを起こす場合の処理については、今のところは未定。
- 現在のところは、文字列表現は基本的にはutf-8で行われる前提とする。
- 前述のバージョンやサブセットと同じく、encodingもメタ情報として選択可能にしてもいいかも。あとでもう少し考える。
- 前述のメタ情報は、CSELテキスト等には含めない。しかしCSELPドキュメントにはヘッダ情報として含まれる。
各バージョンの固有仕様
最終更新 : 2009/11/29 23:37:13 JST