agentic_huge_data_base / wiki
页面 Cognee · 12.8 Ontology 集成·DeepWiki 中文全文译文

12.8 · Ontology 集成(Ontology Integration)

记忆管道与知识图谱构建 · 本章是 Cognee DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Cognee 章节12.8 状态全文译文 模块图谱与关系、系统架构、接口与服务契约、配置治理
源码线索
  • cognee/api/v1/ontologies/__init__.py
  • cognee/api/v1/ontologies/ontologies.py
  • cognee/api/v1/ontologies/routers/__init__.py
  • cognee/api/v1/ontologies/routers/get_ontology_router.py
  • cognee/eval_framework/corpus_builder/task_getters/get_cascade_graph_tasks.py
  • cognee/eval_framework/corpus_builder/task_getters/get_default_tasks_by_indices.py
  • cognee/modules/graph/utils/expand_with_nodes_and_edges.py
  • cognee/modules/ontology/base_ontology_resolver.py
  • cognee/modules/ontology/get_default_ontology_resolver.py
  • cognee/modules/ontology/matching_strategies.py
模块标签
  • 图谱与关系
  • 系统架构
  • 接口与服务契约
  • 配置治理
  • 测试、发布与运维

中文译文

Ontology 集成(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/topoteretes/cognee/12.8-ontology-integration
翻译时间:2026-05-27T08:45:15.636Z
翻译模型:deepseek-chat
原文字符数:9254
项目:Cognee (cognee)

---

本体集成

相关源文件

以下文件被用作生成此维基页面的上下文:

  • cognee/api/v1/ontologies/__init__.py
  • cognee/api/v1/ontologies/ontologies.py
  • cognee/api/v1/ontologies/routers/__init__.py
  • cognee/api/v1/ontologies/routers/get_ontology_router.py
  • cognee/eval_framework/corpus_builder/task_getters/get_cascade_graph_tasks.py
  • cognee/eval_framework/corpus_builder/task_getters/get_default_tasks_by_indices.py
  • cognee/modules/graph/utils/expand_with_nodes_and_edges.py
  • cognee/modules/ontology/base_ontology_resolver.py
  • cognee/modules/ontology/get_default_ontology_resolver.py
  • cognee/modules/ontology/matching_strategies.py
  • cognee/modules/ontology/models.py
  • cognee/modules/ontology/ontology_config.py
  • cognee/modules/ontology/ontology_env_config.py
  • cognee/modules/ontology/rdf_xml/RDFLibOntologyResolver.py
  • cognee/tasks/graph/extract_graph_from_data.py
  • cognee/tasks/graph/extract_graph_from_data_v2.py
  • cognee/tests/test_cognee_server_start.py
  • cognee/tests/unit/api/test_ontology_endpoint.py
  • cognee/tests/unit/eval_framework/test_get_default_tasks_by_indices.py
  • cognee/tests/unit/modules/ontology/test_ontology_adapter.py
  • cognee/tests/unit/tasks/graph/test_extract_graph_from_data_v2.py

Cognee 提供了一个全面的系统,用于将正式本体集成到知识图谱构建过程中。这种集成确保提取的实体和关系遵循预定义的语义结构,从而提高数据一致性并支持推理能力。

架构总览

本体系统围绕 BaseOntologyResolver 抽象构建,该抽象管理自然语言实体与正式本体定义之间的映射。默认实现 RDFLibOntologyResolver 使用 rdflib 库处理 OWL 和 RDF 文件。

自然语言到代码实体的映射

下图展示了系统在 cognify 过程中如何弥合原始文本数据与结构化本体空间之间的差距。

本体引导的提取流程

graph TD
    subgraph "自然语言空间"
        A["DocumentChunk.text"] -- "大语言模型(LLM)提取" --> B["未验证的实体/关系"]
    end

    subgraph "代码实体空间"
        B -- "find_closest_match()" --> C["RDFLibOntologyResolver"]
        C -- "get_subgraph()" --> D["本体元数据"]
        D -- "验证" --> E["Entity (ontology_valid=True)"]
        D -- "验证" --> F["EntityType (ontology_valid=True)"]
        E -- "持久化" --> G["图数据库"]
        F -- "持久化" --> G
    end

    subgraph "本体来源"
        H[".owl / .rdf 文件"] --> C
    end

来源:cognee/modules/ontology/rdf_xml/RDFLibOntologyResolver.py:20-25cognee/modules/graph/utils/expand_with_nodes_and_edges.py:114-146

本体解析器

系统支持使用不同的策略将实体解析到本体。

RDFLibOntologyResolver

这是处理标准本体格式的主要实现。它支持:

  • 从文件路径、类文件对象或原始字符串加载本体 cognee/modules/ontology/rdf_xml/RDFLibOntologyResolver.py:27-53
  • 使用 rdflib 解析 RDF/XML 和 OWL 格式 cognee/modules/ontology/rdf_xml/RDFLibOntologyResolver.py:55-62
  • 构建类和个体的内部查找字典,以实现快速检索 cognee/modules/ontology/rdf_xml/RDFLibOntologyResolver.py:118-143
匹配策略

解析器使用 MatchingStrategy 将提取的文本链接到本体术语。

  • FuzzyMatchingStrategy:如果未找到精确匹配,则使用字符串相似度(通过 difflib)在本体中查找最佳匹配 cognee/modules/ontology/matching_strategies.py:18-25
  • 截断值配置:可以通过截断值参数调整模糊匹配的灵敏度 cognee/tests/unit/modules/ontology/test_ontology_adapter.py:194-198

来源:cognee/modules/ontology/rdf_xml/RDFLibOntologyResolver.py:20-154cognee/modules/ontology/matching_strategies.py:1-25

与 Cognify 管线的集成

本体验证发生在 cognify 工作流的图提取阶段。

integrate_chunk_graphs

此函数是提取的大语言模型(LLM)图与本体解析器相遇的中心点。

  1. 它遍历文档片段及其对应的提取图 cognee/tasks/graph/extract_graph_from_data.py:100-103
  2. 它调用 expand_with_nodes_and_edges,并传递 ontology_resolver cognee/tasks/graph/extract_graph_from_data.py:110-112
  3. 匹配本体的实体被标记为 ontology_valid=True cognee/modules/graph/utils/expand_with_nodes_and_edges.py:49-60
数据流图

下图显示了提取数据与本体集成期间的函数调用序列。

函数执行流程

sequenceDiagram
    participant P as cognify 管线
    participant T as extract_graph_from_data
    participant I as integrate_chunk_graphs
    participant E as expand_with_nodes_and_edges
    participant R as RDFLibOntologyResolver

    P->>T: 执行任务
    T->>I: integrate_chunk_graphs(data_chunks, chunk_graphs, ontology_resolver)
    I->>E: expand_with_nodes_and_edges(...)
    loop 对于每个节点/边
        E->>R: get_subgraph(node_name)
        R->>R: find_closest_match(name)
        R-->>E: 返回 (ontology_nodes, ontology_edges, closest_class)
    end
    E-->>I: 返回包含 Entity/EntityType 对象的更新片段
    I-->>T: 返回 DocumentChunks

来源:cognee/tasks/graph/extract_graph_from_data.py:56-125cognee/modules/graph/utils/expand_with_nodes_and_edges.py:110-162

本体管理 API

Cognee 提供了 REST 端点来管理每个用户的本体文件。

端点方法描述
/api/v1/ontologiesPOST上传一个带有唯一 ontology_key.owl 文件 cognee/api/v1/ontologies/routers/get_ontology_router.py:17-38
/api/v1/ontologiesGET列出所有已上传的本体及其元数据 cognee/api/v1/ontologies/routers/get_ontology_router.py:116-125
/api/v1/ontologies/{key}DELETE从系统中移除一个本体文件 cognee/api/v1/ontologies/routers/get_ontology_router.py:83-97
上传逻辑

OntologyService 处理这些文件的持久化:

  • 文件存储在 data_root_directory 中特定于用户的目录下 cognee/api/v1/ontologies/ontologies.py:31-34
  • 元数据(文件名、大小、上传时间)存储在相同目录下的 metadata.json 文件中 cognee/api/v1/ontologies/ontologies.py:36-49
  • 目前 API 仅接受 .owl 文件 cognee/api/v1/ontologies/ontologies.py:56-57

来源:cognee/api/v1/ontologies/ontologies.py:22-86cognee/api/v1/ontologies/routers/get_ontology_router.py:12-141

配置

本体行为可以通过环境变量配置,或直接传递给 cognify 调用。

基于环境的设置

get_ontology_resolver_from_env 函数允许根据环境设置动态实例化解析器:

  • ontology_resolver:支持的值 "rdflib" cognee/modules/ontology/get_default_ontology_resolver.py:20-21
  • matching_strategy:支持的值 "fuzzy" cognee/modules/ontology/get_default_ontology_resolver.py:22-23
  • ontology_file_path:本地文件的路径或以逗号分隔的路径列表 cognee/modules/ontology/get_default_ontology_resolver.py:24-26
直接注入

使用 cognify API 时,可以以数组形式提供 ontology_key。系统会检索这些键的内容,并在管线执行期间初始化解析器 cognee/tests/test_cognee_server_start.py:158-164

来源:cognee/modules/ontology/get_default_ontology_resolver.py:10-48cognee/api/v1/ontologies/ontologies.py:129-157