SimpleModelingにおける知識処理モデル

Created: 2026-04-27

本稿では、SimpleModeling (シンプルモデリング)における知識を現実世界へ落とし込むメカニズムとして、知識から実行への変換過程を簡潔に定義します。EmbeddingRDFTypeDSLInterpreterEffectを経て現実への作用に至り、全体はContextにより横断的に制御されます。

知識処理モデル

SimpleModelingでは、知識は単なる情報の蓄積ではなく、実行可能な構造へと変換される対象です。本モデルは、その変換過程を明示的に定義します。

Knowledge Processing Pipeline in SimpleModelingKnowledge Processing Pipeline in SimpleModelingContextKnowledgeDSLTypeInterpreterEffectEmbeddingRDFAST(Free Structure)functionType -> Type(Morphism)procedureType -> Effect[Type](Kleisli Morphism)Realitypureeffectfulrun

この図は、知識が現実世界に作用するまでの全体構造を表しています。

Embedding

Embeddingは知識を意味空間として表現します。類似性に基づく探索や発見を担います。

  • 曖昧な意味

  • 類似検索

  • AI主導の探索

ベクトルDBによって実現します。

RDF

RDFは知識をグラフ構造として表現し、関係性を明示します。

  • 関係の明示

  • 知識の接続

  • 構造化

RDF DBまたはグラフDBで実現します。

Type

Typeは意味を厳密な構造として定義します。

CML (Cozy Modeling Language)で記述します。

DSL

DSL振る舞い (Behavior)を記述します。ここでは副作用はまだ発生せず、意図としての計算が表現されます。

  • AST(自由構造)

  • function(射: TypeType

  • procedure(Kleisli射: Type → EffectType

  • 操作定義

  • フロー

CMLで記述します。

Interpreter

InterpreterDSLに意味を与え、Effectへ変換します。

  • DSL ⇒ Effect

  • 実行戦略の定義

Effect

Effectは副作用を含む計算を表します。まだ実行されておらず、現実に作用する能力として存在します。

  • IO / Task / ZIO

  • 遅延評価

  • 合成可能

Reality

RealityはEffectが評価された結果として現れます。

EffectRealityrun

Realityはパイプラインの単なる出力ではなく、Effectの評価の結果を現実世界に反映したものです。データベースやファイルに対する書き込み、コンソール出力、UIでの対話といった現実世界での処理が行われます。

文脈

アプリケーションの文脈によって各層の処理が影響を受けます。

例えば、同じユーザー登録処理でも、開発環境ではメール送信を行わずログ出力に置き換え、本番環境では実際にメールサービス(SES等)を利用する、といった振る舞いの違いがContextによって制御されます。また、B2BアプリケーションではorganizationIdが必須となる一方、個人向けアプリでは不要になるなど、Typeの構造自体もContextに依存 (Dependency)して変化します。

Contextはこの目的で使用する全ての層に作用する横断的要素です。

ContextPipelinecontrols interpretation

Contextの役割

Contextは各層の解釈を決定します。

圏論的基盤

モデルを圏論の観点で整理することで、構造の一貫性やシンプルさを検証できます。特に、オブジェクト (Object)と射の分離、合成の自然さ、変換の一貫性といった観点で、設計の健全性を確認する補助線として機能します。

圏論でモデル化することで直接のメリットがあるわけではありませんが、筋のよいモデルであることを担保するため補助線になると考えています。

本モデルは圏論的に一貫した構造として理解できます。ここでは関手自然変換随伴の観点から整理します。

関手

関手はある圏から別の圏への構造保存写像です。SimpleModelingでは、意味世界からプログラム世界への変換が関手として捉えられます。

ConceptWorld → TypeWorld

この関手は、曖昧な意味(Embedding/RDF)を型付き構造へと写像します。

自由構造とDSL

DSLは自由構造(Free構造)として理解できます。これはTypeに基づいて、制約を持たない計算構造を生成します。

Type → DSL(AST)(Free)
function : Type → Type(Morphism)
procedure : Type → Effect[Type](Kleisli Morphism)

DSLはまだ意味を持たず、ASTとして構文(syntax)を保持します。functionは純粋な射としてTypeからTypeへ写像し、procedureはEffectを伴うKleisli射としてTypeからEffectTypeへ写像します。

自然変換

Interpreterは自然変換として理解されます。DSLからEffectへの写像です。

Interpreter : DSL ⇒ Effect

自然変換とは、構造を保ったまま意味を与える写像です。

Effectと評価

Effectはまだ評価されていない計算であり、現実世界への作用は評価(run)によって初めて発生します。

Effect --run--> Reality

随伴

随伴は構造を付与する操作 (Operation)と、それを忘れる操作の最適な対応関係です。

F : Concept → Program
G : Program → Concept
F ⊣ G

ここで:

  • Fは構造を付与します(CML/DSL生成)

  • Gは構造を忘れます(抽象化・理解)

単位と余単位

随伴には2つの自然変換が伴います。

η : Id ⇒ G ∘ F   (unit)
ε : F ∘ G ⇒ Id   (counit)

これにより、意味と構造の往復が保証されます。

文脈の役割

Contextは自然変換を決定するパラメータとして理解できます。

Context → (DSL ⇒ Effect)

つまり、Contextによって異なるInterpreter(自然変換)が選択されます。

対応関係

本節では、各要素の対応関係を簡潔に整理します。

  • Concept:意味・知識の領域

  • Type:構造化されたオブジェクト(object)

  • DSL:計算を記述する射(morphism)およびその合成構造

  • ASTDSLの構文(Free構造)

  • function:純粋な射(TypeType

  • procedure:副作用を伴うKleisli射(Type → EffectType

  • Interpreter:自然変換(DSL ⇒ Effect)

  • Effect:評価可能な計算

  • Reality:評価結果としての現実

  • Context:全体の解釈を制御するメタレイヤー

本モデルは以下の圏論的対応として整理できます。

DSLAST(Free Structure)functionType -> Type(Morphism)procedureType -> Effect[Type](Kleisli Morphism)ConceptTypeEffectRealityContextFunctorFreesyntaxsyntaxType -> TypeType -> Effect[Type]Evaluation

Contextはこの全体に作用するメタレイヤーです。

この構造により、SimpleModelingは「意味→構造→実行」の変換を理論的に一貫した形で扱うことができます。

圏論は実装のための必須知識ではありませんが、この観点で自然に記述できる構造であることは、モデルがシンプルかつ一貫していることの強い指標となります。

まとめ

SimpleModelingの知識処理モデルは、意味(Embedding/RDF)から構造(Type)、さらに計算(DSL)を経て実行(Interpreter/Effect)へと至る一貫した変換体系です。

このモデルにおいて、Typeオブジェクトとして意味を固定し、DSLは射として計算を構成します。Interpreterは自然変換としてDSLに意味を与え、Effectとして実行可能な計算に変換します。

そして、Effectの評価(run)によって初めて現実世界に作用が現れます。

Contextはこの全体を横断して作用し、各層の解釈と実行のあり方を決定します。

この構造により、SimpleModelingは知識を単なる記述としてではなく、構造化され、合成可能で、実行可能なモデルとして扱うことができます。

参照

外部参照

用語集

埋め込み (Embedding)

埋め込み(Embedding)とは、文章、用語、モデル要素などを、その意味上の近さを計算できる数値ベクトルへ変換した表現です。類似検索や候補抽出に利用します。

RDF

W3C により標準化された、情報を「主語–述語–目的語」の三つ組(トリプル)で表現するための知識記述モデル。

型 (Type)

Undefined

DSL (Domain Specific Language)

DSL(ドメイン固有言語)は、特定の領域(ドメイン)に特化して設計された言語であり、その分野の概念や構造を直接的かつ簡潔に表現することを目的とします。 一般的な汎用プログラミング言語(GPL)に比べ、DSLは特定ドメインの問題解決や自動生成に適した高い抽象度を持ちます。

シンプルモデリング (SimpleModeling)

SimpleModelingは、KnowledgeからDomain Modelを構成し、CMLで形式化し、CozyとAIによって実行可能ソフトウェアへ実現し、Textus上で動作させる、モデリング中心のソフトウェア開発方法論と技術体系です。

制約 (Constraint)

UMLにおけるConstraintは、一つ以上のModel ElementのSemanticsの一部を宣言するため、自然言語または機械可読言語で表した条件または制限です。評価結果はBooleanであり、評価は副作用を持ちません。

型安全 (type safety)

型安全とは、プログラムにおける型の整合性をコンパイル時または実行時に保証する性質を指します。 型安全性が保たれているとき、ある型に対して定義されていない操作を実行しようとした際にエラーとして検出され、 意図しない動作やバグの発生を防ぐことができます。 Scalaは強い静的型付けと型推論を併用することで、高い型安全性を維持しつつ柔軟なプログラミングを可能にしています。

Cozy Modeling Language (CML)

CML(Cozy Modeling Language)は、オブジェクト・モデルのうち、プログラム生成と実行へ接続する実行可能モデルを記述するSimpleModelingの形式モデリング言語です。

振る舞い (Behavior)

UMLにおけるBehaviorは、そのContextとなるBehaviored Classifierが時間とともにどのようにStateを変えるかを定める仕様です。可能な実行、創発する振る舞い、または特定の実行例を表せます。

依存 (Dependency)

UMLにおけるDependencyは、ClientとなるModel Elementの仕様または実装が、Supplierとなる別のModel Elementの定義へ意味的または構造的に依存することを表すDirected Relationshipです。

モデル (Model)

Modelとは、対象を特定のPurposeとConcernに基づいて選択し、理解、判断、検証、構築に利用できる形で表した抽象です。対象そのものではなく、目的に必要な要素、関係、意味を保持する表現です。

オブジェクト (Object)

Objectとは、Classまたは他のClassifierによって分類され、構造、State、Behaviorを持ち得るInstanceです。Objectは、同じClassifierの他のInstanceと区別して参照できる個体として扱われます。

モデル上の相互作用 (Interaction)

Undefined

操作 (Operation)

UMLにおけるOperationは、関連するBehaviorを呼び出すための名前、型、Parameter、Constraintを定めるClassifierのBehavioral Featureです。Operationは呼び出し契約を定め、MethodなどのBehaviorがその実現を担います。