# ニューロ・シンボリック融合 (Neuro-Symbolic Fusion)

このディレクトリには、TensorLogic (TL) の核心的な強みである **ニューラルネットワーク**（テンソルベースの数値計算）と **記号論理**（Datalogベースのルール推論）のシームレスな融合を示すサンプルが含まれています。

これら2つのパラダイムを単一の言語で組み合わせることで、AIの学習能力と、論理による解釈性・厳密な制約を兼ね備えたシステムを構築できます。

## 1. 推薦システム (`recommendation.tl`)

記号的なビジネスルールでアイテムをフィルタリングしつつ、テンソルベースの協調フィルタリングでスコアリングを行うハイブリッド推薦エンジンです。

-   **Logic (論理)**: ハードな制約を定義します。
    -   ユーザー属性（Regular, Premium, Student）に基づいて許可されるアイテムカテゴリを決定します。
    -   例: 「学生はエレクトロニクス商品を購入できない」。
-   **Tensor (テンソル)**: ソフトな好みを計算します。
    -   `matmul` を使用して、ユーザー埋め込みとアイテム埋め込みの内積類似度を計算します。
-   **Fusion (融合)**: スクリプトは論理エンジン (`?can_view(user, item)`) にクエリを投げて候補アイテムを絞り込み、その後テンソルのスコアを使用して有効なアイテムをランク付けします。

## 2. 空間推論 (`spatial.tl`)

低レベルの知覚データ（座標）から高レベルの意味的関係を導き出す方法を示します。

-   **Perception (手続き的/テンソル)**: オブジェクトのバウンディングボックスを検出するAI視覚システムをシミュレートします。座標を比較して、`on_top_of(cup, box)`（カップは箱の上にある）のような基本的な幾何学的関係を判定します。
-   **Reasoning (論理)**: 推移的な関係を推論するための再帰的なルールを定義します。
    -   ルール: AがBの上にあり、かつBがCの上にあるならば、AはCの上に積み重まっている (`stacked_on`)。
-   **Fusion (融合)**: 生の数値データが基本ファクト（事実）に処理され、それらが論理エンジンによって使用され、シーンに関する複雑な構造的知識が推論されます。

## 3. スマート入退室管理 (`access_control.tl`)

確率的な本人確認と、決定的なアクセスポリシーを組み合わせたセキュリティシステムです。

-   **Neural Auth (テンソル)**: カメラ入力ベクトルと顔埋め込みデータベースを比較することで、顔認証をシミュレートします。類似度スコアを計算して人物を特定します。
-   **Policy Enforcement (論理)**: ロールベースアクセス制御 (RBAC) を実装します。
    -   ロール: Admin (管理者), Engineer (エンジニア), Guest (ゲスト)。
    -   ルール: 特定のゾーン (ServerRoom, Office, Lobby) に誰が入室できるか。
-   **Fusion (融合)**: システムは、テンソル演算を使用して *参照アイデンティティ*（「これは誰か？」）を決定し、論理を使用して *認可*（「入室できるか？」）を決定します。

## 実行方法

`tl` コンパイラを使用してこれらのサンプルを実行できます:

```bash
cargo run -- examples/tasks/tensor_logic/neuro_symbolic_fusion/recommendation.tl
cargo run -- examples/tasks/tensor_logic/neuro_symbolic_fusion/spatial.tl
cargo run -- examples/tasks/tensor_logic/neuro_symbolic_fusion/access_control.tl
```
