文書処理

いろいろゴタゴタとメモ

ターム/シンボルはどのように出現するか? タームの出現は暗黙にレキシコンのレコードを参照すべきで、レキシコン・レコードは意味を与える。 アイテムコレクションのインデックス〈マップテーブル〉は、タームをキーにしてその出現(複数)を返す。 意味が…

さらに概念を整理

トークン空間 ラベル空間 タグ空間(接頭辞許容) ターム空間 テキストターム空間 シンボルターム空間 型名空間(接頭辞許容) 引用キー空間 構造を持つ文字列の空間として: ID空間 フレーズ空間 パス空間 フラグメントID空間 情報担体としてアイテムがある…

ブリットの概念と用語の整理

型ボキャブラリー: 型定義の集まり。 型名: 型名ボキャブラリーのなかで、型定義を識別するラベル オブジェクトのデータ型: オブジェクトとファセットの組み合わせ ファセット: ボキャブラリー名と型名の組み合わせで、オブジェクトと関係付けられる。 …

関係概念を使った整理

含有関係と出現関係について述べる。まず関係型の定義: reltype contains : Item +-> Item reltype containedIn := contains^t reltype occursIn : Term +-> Item reltype hasOccurrence := occursIn^tオーバーロードした定義: reltype (_1 contains _2 at…

VSCode拡張 jq playground をインストール

JQPlayGround が自分用の jq を自分でインストールした。場所は: c:\Users\m-hiyama\AppData\Roaming\Code\User\globalStorage\davidnussio.vscode-jq-playground これで jq.exe の実体は2つになる。最初のインストールは C:\Users\m-hiyama\Work\bin\jq.exe…

セレクト-モディファイ-フィル・パラダイム

セレクト&フィル・パラダイム - (新) 檜山正幸のキマイラ飼育記 メモ編 より「セレクト-モディファイ-フィル・パラダイム」のほうがいいな。 セレクターで抽出して、関数〈純関数〉で変更・加工して、テンプレートの穴を埋める。

参照とハイパーリンク

本編の https://m-hiyama.hatenablog.com/entry/20100416/1271386224 で、reference<WebSite>型とかを出したけど、第二型引数を認める reference<T, A> : 参照先の型はT、トリガーオブジェクト〈アンカー〉の型はAである参照型 すると: reference<integer, address> はメモリーオブジェクト</integer,></t,></website>…

ブリットの構造と解釈

ハブセットを備えたハイパーコレクションがブリット。ハブセットはノード=ハイパーオブジェクトの集合で、ブリット全体がそこから可達となるもの。ブリット内にはオリジナルコンテンツと生成済みコンテンツ〈generated contents〉が入っている。生成済みコ…

セレクト&フィル・パラダイム

処理のパラダイム: セレクターでデータをセレクトする。 セレクトしたデータで、テンプレートのプレースホルダーを埋める。 再帰的に行う。 セレクト&フィルの処理は、比較的に宣言的に書きやすい。セレクター言語とテンプレート言語の組み合わせで書ける…

スレート文書とハイパー文書

Dは文書空間 D = {(v, l)∈V×L | v = dec(l)} とする。文書空間D内の文書族は、集合 S から Dへの写像。index family of documents のこと。一例として、I を文書IDの集合、Σ をツリー構造のパスセグメントラベルの集合。J をフラグメントIDの集合として、A =…

ワーキングフォルダとパッケージ

マルチパッケージをシングルリポジトリに突っ込むモノレポ構成は、文書作成に向いているかもね。ツールの類は ./node_modules/ にまとめて入れて、作業は ./packages/foo/ で行うとか。./packages/foo/ 自体もパッケージ構造を持つし、ワーキングフォルダに…

文書処理のタスク

確認:欲しいもの - (新) 檜山正幸のキマイラ飼育記 メモ編 スケルトン - (新) 檜山正幸のキマイラ飼育記 メモ編 上記記事から言えることを以下に。スケルトンを静的に解釈すれば構造記述だが、動的に解釈すればDSLスクリプトになる。スクリプトは実行される…

依存方針、特にunified/シェブロテイン

まず、全体的にnpmエコシステムとunifiedエコシステムにはどっぷりと完全に依存する。npm, unifiedと一蓮托生。npmパッケージング・フォーマットとか配布〈ディストリビューション〉プラットフォームの仕様・機能・作法に従うし、べったり依存の方式を採用す…

バージョン管理

スケルトン - (新) 檜山正幸のキマイラ飼育記 メモ編 にて: 再現性/追跡性を担保するにはバージョン管理の使用が必要になる。 過去の確認: git tag タグを表示 git log 通常のログ表示 git reflog HEADの移動履歴表示 チェックアウトする: git checkout …

スケルトン

なんか名前を付けないと呼べないから、コースや本の設計書的なヤツをスケルトンと呼ぶことにする。設計書の記述構文とファイルの両方ともスケルトンと呼ぶ。スケルトンは、(間接的に)実行可能なDSLプログラム。したがって、プログラミング言語のお作法で作…

確認:欲しいもの

原稿ファイル〈記事〉が置いてあるディレクトリをワーキングフォルダと呼ぶことにする。ワーキングフォルダ内の文書ファイル達〈ストックされた記事達〉は、なんらかの知性構造〈intelligence structure〉を持つと考える。欲しいもの/やりたいことは: 知性…

ハイパー文書

ハイパー文書の定式化には次が必要 文書空間: おおよそ文書型/データ型に相当する。外延的/構造的に定義する。 文書: おおよそ文書空間の要素。特定の文書型/データ型を持つ。 文書コレクション: 同じ文書空間に所属する文書の集まり。文書空間の部分…

ツリー文書

A = (A, ・, ε) はアクセッサのモノイドとaする。このモノイドは無限でもいいメンバー抽出演算子記号〈member extraction operator symbol〉からの自由半群。集合 X は、文書コレクション、つまり、親の文書空間の部分空間。文書コレクション X + {⊥} にモノ…

unified vfile

プロファイル: new VFile(arg? : (Options | string | buffer | VFile) ) : VFile 引数: arg: Options → 正規の引数 arg: (string | Buffer ) → arg := {value: arg} と再設定 arg:VFile → シャローコピーを返す。 arg: undefined → おそらくデフォルトのV…

unifiedエンジン

https://m-hiyama-memo.hatenablog.com/entry/2022/04/11/145718 の続き。https://github.com/unifiedjs/unified-engine より: import {engine} from 'unified-engine' import {remark} from 'remark' engine( { processor: remark, files: ['.'], extensio…

unifiedの体系

unifiedの分かりにくさ - (新) 檜山正幸のキマイラ飼育記 メモ編 の続き。unifiedフレームワークを整理する。 まず、テキストフォーマット=テキスト型=文字列型の部分集合型 がある。その例は、MD, HTML, JSON, TEXT など。 テキストフォーマットはファイ…

unifiedの利用

Tenjinの方針は“ありもの利用”だから、unifiedは使う。 いわゆる“unified plugin”はすべてそのまま利用したい。 remark-cli のようにコマンドラインから使いたい。 したがって、remark-cli と同じ作りにする必要がある。 設定ファイルもunifiedと共用できる…

unifiedのプラグイン事例と曖昧性

https://github.com/remarkjs/remark から: import {visit} from 'unist-util-visit' /** @type {import('unified').Plugin<[], import('mdast').Root>} */ function myRemarkPluginToIncreaseHeadings() { return (tree) => { visit(tree, (node) => { if …

unifiedの分かりにくさ

unifiedの分かりにくさは、プロセッサ〈プラグイン〉とドライバーの区別がハッキリせず、それらの役割が述べられてないことだろう。 プロセッサは何らかの文書処理をする。 プロセッサの入力と出力は前もって決められた〈仕様化〉された構造(mdast, hastな…

unifiedドライバー

プラグインをドライブするものはドライバーと呼ぼう。unifiedはドライバーだが、remarkやretextもドライバーになっている。ドライバーの使い方は、 driver() .use(pluginA) .use(pluginB, pluginPramForB) .freeze() .process(input) .then(writerCallback);…

型表現とインスタンス構成/分解

抽象型表現は、分配的双デカルト圏における0-コンビネーションのこと。直積と直和と決まった型(0-リテラルセット)から構成される。直積の具体的な作り方と直和の具体的な作り方の情報を添えた型表現を具象型表現と呼ぶ。具象型表現は型構成グラフ(一種の…

続・基本概念

以下はすべて同じ概念の違う呼び名。 形式文法 インターフェイス・モジュール 指標の圏の図式 スピヴァックのアリーナ シェープのファミリー 射になるが、域・余域の呼び名は: 射 域 余域 形式文法 終端記号の集合 規則名の集合 インターフェイス・モジュー…

基本概念

文書空間、Sは文字列の集合〈string型〉$`\newcommand{\u}[1]{\underline{#1} } \newcommand{\o}[1]{\overline{#1} } \newcommand{\mrm}[1]{\mathrm{#1} } \newcommand{\In}{\text{ in } } %`$ signature DocumentSpace within Set { 0-mor L 0-mor V 1-mor …

TenjinIDLとしてのインターフェイス

TenjinIDLとは言え、既存の構文とメカニズムをそのまま使う。それはTypeScript型システム。interfaceとtype alias。この記事ではJSONスキーマ的に使うインターフェイス、事例はhttps://js.studio-kingdom.com/typescript/handbook/interfacesから: interfac…

スキーマとインスタンス

大事なことは、スキーマとインスタンスの扱い。スキーマ間の射の特別な場合がインスタンス。スキーマは、ラベルに対して型〈ソート〉を割り当てる。あるいは、型式〈ソート式 | 0-コンビネーション〉を割り当てる。つまり、スキーマは0-指標。スキーマのあい…