open-ontologies
インメモリOxigraphトリプルストアを備えた50以上のMCPツールを活用したAIネイティブなオントロジーエンジニアリングが可能です。RDF/OWLオントロジーの構築、検証、クエリ実行、ガバナンスを生成・検証・反復のループで実現できます。オントロジーやナレッジグラフ、RDFデータの構築、SPARQLクエリの作成、BORO/4Dモデリング、SHACL検証、臨床用語マッピング、CSV/JSON/Parquet/XLSXやPostgreSQL・DuckDBなどのSQLバックエンドからのデータ取り込み、またはTerraformスタイルのオントロジーライフサイクル管理を行う際に活用できます。
description の原文を見る
AI-native ontology engineering using 50+ MCP tools backed by an in-memory Oxigraph triple store. Build, validate, query, and govern RDF/OWL ontologies with a generate-validate-iterate loop. Use when building ontologies, knowledge graphs, RDF data, SPARQL queries, BORO/4D modeling, SHACL validation, clinical terminology mapping, ingesting from CSV/JSON/Parquet/XLSX or SQL backbones (PostgreSQL, DuckDB), or Terraform-style ontology lifecycle management.
SKILL.md 本文
Open Ontologies
AIネイティブなオントロジーエンジニアリング。OWL/RDFを直接生成し、MCPツールで検証し、クリーンになるまで反復し、Terraformスタイルのライフサイクルで統制します。
前提条件
このスキルでは、onto_*ツールを提供するOpen Ontologies MCPサーバーが必要です。
インストール: cargo install open-ontologies または GitHub Releases からダウンロード
MCPの設定 (.mcp.json またはClaudeの設定に追加):
{
"mcpServers": {
"open-ontologies": {
"command": "open-ontologies",
"args": ["serve"]
}
}
}
クレデンシャルは不要です。 すべての処理はインメモリのOxigraphトリプルストア内でローカルに実行されます。ネットワークアクセスは、onto_pull(リモートオントロジー取得)またはonto_push(SPARQLエンドポイントへ送信)を明示的に呼び出すときのみ、提供するURLを使用して行われます。モニターアラート(onto_monitor)はstdoutにのみログされます。
コアワークフロー
オントロジーを構築または変更する場合は、このワークフローに従ってください。結果に基づいてどのツールをどの順序で呼び出すかを決定します。これは固定されたパイプラインではありません。
1. 生成
- ドメイン要件を理解します(自然言語、コンピテンシー質問、方法論的制約)
- TurtleまたはOWLを直接生成します。Claudeはネイティブに OWL、RDF、BORO、4Dモデリングを理解しています
- 複雑な方法論については、背景資料または制約について質問してください
2. 検証とロード
- 生成されたTurtleに対して
onto_validateを呼び出します。失敗した場合は構文エラーを修正して再検証します onto_loadを呼び出してOxigraphトリプルストアにロードしますonto_statsを呼び出してクラス数、プロパティ数、トリプル数が期待値と一致することを確認します
3. 検証
onto_lintを呼び出してラベル、コメント、ドメイン、レンジの欠落をチェックします。見つかった問題を修正しますonto_queryをSPARQLで呼び出して構造を検証します(期待されるクラス、サブクラス階層、コンピテンシー質問)- 参照オントロジーが存在する場合は、
onto_diffを呼び出して比較します
4. 反復
- いずれかのステップで問題が明らかになった場合は、Turtleを修正してステップ2から再開します
- 検証が通り、統計値が一致し、リンターがクリーンになり、SPARQLクエリが期待される結果を返すまで続けます
5. 永続化
onto_saveを呼び出して最終的なオントロジーを.ttlファイルに書き込みますonto_versionを呼び出してロールバック用の名前付きスナップショットを保存します
オントロジーライフサイクル(Terraformスタイル)
進化するオントロジーを本番環境で使用する場合:
- 計画 --
onto_planは追加/削除されたクラス、影響範囲、リスクスコアを表示します。保護されたIRIについてonto_lockを確認します。 - 強制 --
onto_enforceをルールパック(generic、boro、value_partition)で実行して設計パターン準拠をチェックします。 - 適用 --
onto_applyをモードsafe(クリア+リロード)またはmigrate(owl:equivalentClassブリッジ追加)で実行します。 - モニター --
onto_monitorはSPARQLウォッチャーを実行し、しきい値アラートを使用します。ブロックされた場合はonto_monitor_clearを使用します。 - ドリフト --
onto_driftは名前変更検出と自己キャリブレーション信頼度でバージョンを比較します。
データ拡張ワークフロー
外部データにオントロジーを適用する場合:
onto_map-- データスキーマ+ロード済みオントロジーからマッピング設定を生成onto_ingest-- 構造化データ(CSV、JSON、NDJSON、XML、YAML、XLSX、Parquet)をRDFに解析onto_shacl-- SHACLシェープに対して検証(カーディナリティ、データタイプ、クラス)onto_reason-- RDFSまたはOWL-RL推論を実行し、推論トリプルを具体化- または
onto_extendを使用して完全なパイプラインを実行: 取り込み、SHACL検証、推論を1回の呼び出しで
臨床用語サポート
医療関連オントロジーの場合:
onto_crosswalk-- ICD-10、SNOMED CT、MeSHの間のマッピングを検索onto_enrich-- クラスを臨床コードにリンクするskos:exactMatchトリプルを追加onto_validate_clinical-- クラスラベルを臨床クロスウォークの用語と照合
オントロジー調整
2つのオントロジーを調整する場合:
onto_align-- 6つの重み付けシグナルを使用して調整候補(equivalentClass、exactMatch、subClassOf)を検出onto_align_feedback-- 候補を承認/却下して信頼度の重みを自己キャリブレーション
ツールリファレンス
| ツール | 使用時期 |
|---|---|
onto_validate | TurtleをGenerateまたは変更した後。常に最初に検証します |
onto_load | 検証が通った後。トリプルストアにロードします |
onto_stats | ロード後。カウントの健全性チェック |
onto_lint | ロード後。ラベル、ドメイン、レンジの欠落を検出 |
onto_query | 構造を検証し、コンピテンシー質問に答える |
onto_diff | リファレンスまたは以前のバージョンと比較 |
onto_save | オントロジーをファイルに永続化 |
onto_convert | 形式間の変換(Turtle、N-Triples、RDF/XML、N-Quads、TriG) |
onto_clear | 別のオントロジーをロードする前にストアをリセット |
onto_pull | リモートURLまたはSPARQLエンドポイントからオントロジーをフェッチ |
onto_push | オントロジーをSPARQLエンドポイントにプッシュ |
onto_import | owl:importsチェーンを解決してロード |
onto_version | 変更を加える前に名前付きスナップショットを保存 |
onto_history | 保存されたバージョンスナップショットをリスト表示 |
onto_rollback | 以前のバージョンを復元 |
onto_ingest | 構造化データをRDFに解析してストアにロード |
onto_map | データスキーマ+オントロジーからマッピング設定を生成 |
onto_shacl | SHACLシェープに対してデータを検証 |
onto_reason | RDFS またはOWL-RL推論を実行 |
onto_extend | 完全なパイプライン: 取り込み、SHACL検証、推論 |
onto_plan | 追加/削除されたクラス、影響範囲、リスクスコアを表示 |
onto_apply | safeモードまたはmigrateモードで変更を適用 |
onto_lock | 本番IRI を削除から保護 |
onto_drift | 名前変更検出と自己キャリブレーション信頼度でバージョンを比較 |
onto_enforce | 設計パターンチェック: generic、boro、value_partition、またはカスタム |
onto_monitor | SHARQLウォッチャーをしきい値アラートで実行 |
onto_monitor_clear | アラート解決後にブロック状態をクリア |
onto_crosswalk | 臨床用語マッピングを検索(ICD-10、SNOMED、MeSH) |
onto_enrich | 臨床コードにリンクするskos:exactMatchトリプルを追加 |
onto_validate_clinical | クラスラベルを臨床用語と照合 |
onto_align | 2つのオントロジー間の調整候補を検出 |
onto_align_feedback | 調整候補を承認/却下して重みを自己キャリブレーション |
onto_lineage | セッション系統トレイル(計画、強制、適用、モニター、ドリフト)を表示 |
onto_lint_feedback | リント問題を承認/却下して除外を教える |
onto_enforce_feedback | 強制違反を承認/却下して除外を教える |
onto_unload | メモリからアンロード。nameで特定のキャッシュエントリをターゲット。delete_cache=trueでディスク上のファイルも削除 |
onto_recompile | ソースを再解析。nameで非アクティブなキャッシュエントリを再構築(アクティブなインメモリストアは未変更) |
onto_cache_status | コンパイルキャッシュを検査: アクティブスロット、すべてのエントリ、有効な[cache]設定 |
onto_cache_list | キャッシュされたオントロジーをメタデータ(is_active、in_memory、mtime、サイズ)でリスト表示 |
onto_cache_remove | nameでキャッシュされたオントロジーを削除(delete_file=falseでディスク上のN-Triplesを保持) |
onto_repo_list | 設定された[general] ontology_dirsディレクトリ内のRDF/OWLファイルをリスト表示 |
onto_repo_load | 設定されたリポジトリから単純な名前、相対パス、または絶対パスでオントロジーをロード |
onto_status | サーバーの健全性/ロード済みトリプル数 |
onto_marketplace | キュレーション済みカタログから標準オントロジーを参照/インストール |
onto_dl_check | DLタブローを使用してsubClass ⊑ superClassをチェック |
onto_dl_explain | クラスが満たされない理由を説明(DLクラッシュトレース) |
onto_embed | すべてのクラスのテキスト+ Poincaré構造埋め込みを生成 |
onto_search | 自然言語クエリ → 最も類似したクラス |
onto_similarity | 2つのIRI間のコサイン+ Poincaré距離 |
onto_import_schema | PostgreSQLまたはDuckDBスキーマを内省 → OWLクラス/プロパティ/カーディナリティを生成 |
onto_sql_ingest | PostgreSQLまたはDuckDBに対してSQLSELECTを実行 → RDF(DuckDBは拡張機能を使用してCSV/Parquet/JSON/HTTPFS/postgres-scannerをサポート) |
使用例
ピザオントロジーをゼロから構築
ピザ、ピザベース(ThinAndCrispy、DeepPan)、ピザトッピング(Mozzarella、Tomato、Pepperoni、Mushroom)、
プロパティhasBase、hasToppiングを持つピザオントロジーを作成してください。
すべてにrdfs:labelsおよびrdfs:commentsを含めます。検証し、コンピテンシークエリを実行して
「マルゲリータピザはどんなトッピングがありますか?」と聞くことができるか確認してください。
既存のオントロジーをロードしてクエリ
https://www.w3.org/TR/owl-guide/wine.rdf からオントロジーをロードし、統計を表示し、
リント処理を行い、Wineのすべてのサブクラスを見つけるSPARQLクエリを実行してください。
オントロジーを安全に進化
「GlutenFreePizza」という新しいクラスをPizzaのサブクラスとして追加し、
hasBaseのみGlutenFreeBaseの制限を持たせる必要があります。変更を計画し、
ジェネリックルールに対して強制実行し、safeモードで適用してください。
CSVデータを知識グラフに取り込む
以下のカラムを持つ従業員のCSVがあります: name、department、role、start_date。
ロード済みのHRオントロジーにマップして取り込んでください。次に、SHACLシェープで検証し、
推論を実行して部門階層を具体化してください。
2つのオントロジーを調整
schema.orgと私の企業オントロジーをロードしてください。onto_alignを実行して
equivalentClassおよびexactMatchの候補を見つけてください。レビューしてフィードバックを
提供し、重みを自己キャリブレーションします。
重要な原則
前のツール呼び出しが返した内容に基づいて次のツール呼び出しを動的に決定します。onto_validateが失敗した場合は修正して再試行します。onto_statsが間違ったカウントを示した場合は再生成します。onto_lintがラベルの欠落を見つけた場合は追加します。MCPツールは個別の操作です。Claudeがオーケストレーターです。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- fabio-rovai
- ライセンス
- MIT
- 最終更新
- 2026/5/5
Source: https://github.com/fabio-rovai/open-ontologies / ライセンス: MIT