4824578 ビルディングブロックは、 -および|それぞれより複雑なグリフを構成するシンボル。これらのシンボルは、等しい部屋の3つ以上のシンボルを詰めるようにチェーンしています。
例:
| 結果 | コード | 結果 | コード |
|---|---|---|---|
27-26-26 | 2468|24578 |
(および)シンボルを使用してコンポーネントをグループ化できるため、水平と垂直の混合パッキングが正しい順序で発生する可能性があります。
例:
| 結果 | コード | 結果 | コード |
|---|---|---|---|
(48|37)-(25678|27)-(37|15) | (46-68)|(246-268)|(24-28) |
他のキャラクターやラジカルは、新しいキャラクターを構築するために直接参照できます。パーサーは、C/C ++ #include機能と同様に、参照グリフの内容を文字列に直接捨てます。これにより、より複雑な漢字を説明することが特に簡単になります。それらのほとんどはラジカルで構成されています。
例:
| 結果 | コード | 結果 | コード |
|---|---|---|---|
廿|468|由|(八) | ((車|(山))-(殳))|(手) | ||
((口)-(口))|(甲)|十 | (((木)-(缶)-(木))|(冖))|((鬯)-(彡)) |
ベースラインパーサーはrrpl_parser.jsに含まれており、このインタラクティブなデモを駆動します。 node.jsだけでなく、ブラウザー側のjavascriptで使用できます。
//require the module: (or in html, <script src="./rrpl_parser.js"></script>)
var parser = require ( './rrpl_parser.js' ) ;
//obtain an abstract syntax tree
var ast = parser . parse ( "(48|37)-(25678|27)-(37|15)" ) ;
//returns line segments (normalized 0.0-1.0) that can be used to render the character
var lines = parser . toLines ( parser . toRects ( ast ) ) ; RRPLデータはJSONファイルに保存できます。これは、Unicode文字をそれぞれの説明にマッピングするルートオブジェクトです。
{
"一" : "48" ,
"丁" : "468|26|27" ,
"上" : "246|248" ,
"不" : "(48-45678-48)|(3-26-1)" ,
"丕" : "不|一" ,
"中" : "(46-2468-68)|(24-2468-28)" ,
"串" : "中|中"
}これらのファイルの参照は、通常、レンダリングが試行される前に最初に拡張されます。これは2つの方法で実行できます。 1つ目は、 rrpl_parser.jsでparser.preprocess(json_object)を使用し、2番目はcompile.jsを使用することです。これらのファイルのヘッダーコメントには、より多くのドキュメントがあります。
JSONファイルは、 compress.jsを使用してオリジナルのサイズの約半分のバイナリファイルにさらに圧縮されます(および非圧縮されます)。ハーフバイトを使用してRRPLアルファベットの各シンボルをエンコードします。

preview.html Webページを生成します。 $node render.js preview path/to/input.json
realtime.html Webページを生成します:(入力ファイルで定義されている文字は参照に使用できます) $node render.js realtime path/to/input.json
$node export_glyphs.js path/to/input.json path/to/output/folder 0
render.jsが生成するものとは反対に、これらのSVGには単純なストロークの代わりにグリフの「アウトライン」が含まれています。 export_glyphs.jsのソースコードで厚さなどのより多くの設定を微調整できます。コマンドラインAPIは後で来ます。
pip install fontforge )例は、 tools/forge_font.pyにあります。 RRPLはすべての漢字を短い数字に減らすため、その構造は、マルコフチェーン、RNN、LSTMなどのシーケンシャルモデルによって、それほど困難なく学習できます。 RNN(再発性ニューラルネットワーク)を言語に適用して、存在しない漢字を幻覚させました。以下は、〜1000のRRPL文字の説明で一晩トレーニングすることで生成された一部の文字で、PIX2PIXモデルを使用してビジュアルをレンダリングします。そのプロジェクトの別のレポはまもなく作成されます。

rrpl.jsonには、最新の進行中のバージョンが含まれています。そこには約5,000文字がありますが、50,000人以上の漢字が存在しています!助けてくれてありがとう。このプロジェクトを支援したい場合は、ファイルに新しい文字を追加して、プルリクエストを送信してください。詳細については、Lingdonh [at] Andrew [dot] cmu [dot] eduにメールを送信して、私に連絡してください。
以下は、これまでにRRPLを使用して示された5000以上のすべての漢字のレンダリングです。画像をクリックして拡大します。
