W
AI-Wiki
CONCEPT

Knowledge Abstract

定义

Knowledge AbstractHyper-Extract 语境中的核心输出,指从高度非结构化文本中抽取出来的结构化知识表示。它不是“给文章写一段摘要”的自然语言总结,而是可被程序持久保存、稳定访问、继续演化和重复利用的知识单元。

README 对它的定位非常明确:Hyper-Extract 的目标是把文档转成 persistent、predictable、strongly-typed 的 Knowledge Abstracts。也就是说,Knowledge Abstract 首先是一种“可落地的数据抽象”,而不是一次性阅读结果。

在 Hyper-Extract 中的语境

Hyper-Extract 里,Knowledge Abstract 通常是执行 parse 之后形成的结果。用户输入原始文档,例如论文、财报、人物传记或其他非结构化材料,系统按照模板指定的结构和字段进行抽取,输出一个知识库目录或对象;后续的搜索、问答、展示、导出与外部集成,都是围绕这个结果展开的。

因此,Knowledge Abstract 不是附属概念,而是整个工具链的中心:

  • he parse:从原始文档生成 Knowledge Abstract。
  • he search:在已生成的 Knowledge Abstract 上做语义搜索或检索式查询。
  • ask:通过 RAG 方式基于该 Knowledge Abstract 回答问题。
  • he show:把已抽取的结构可视化,尤其适合图类结构。
  • he export obsidian:把其中的图结构导出为 Obsidian 知识库,生成带 wikilinks 的 Markdown 笔记。
  • he-mcp:把 Knowledge Abstract 通过 MCP 暴露给 Claude Desktop 或 IDE agent 等外部助手使用。

这也解释了为什么 README 将其称为知识抽取与知识演化框架的核心产物:它既是抽取的结果,也是后续知识操作的基础对象。

三个关键特征

持久化(persistent)

Knowledge Abstract 不是临时回答,而是可以被保存、重复打开和继续维护的知识表示。README 中的典型操作方式就是把解析结果输出到一个目录,再在这个结果上继续执行查询、展示、导出等命令。

持久化带来的含义包括:

  • 不必每次都重新读取原文并重新推理。
  • 可以把抽取结果当作知识库长期保存。
  • 可以在后续继续输入新文档,对既有知识库做扩展或修正。

可预测(predictable)

Knowledge Abstract 的结果不是完全开放式的自由文本,而是受模板、结构类型和字段定义约束的输出。这使得结果在形状、字段、标识符和可操作性上更稳定,便于后续程序调用、索引、展示和导出。

可预测并不表示内容永远完全一致,而是表示输出遵守预先定义的结构边界。例如图模板会要求实体与关系分别包含哪些字段,关系 ID 如何组成,实体 ID 用哪个字段标识。

强类型(strongly-typed)

README 明确把 Auto-Types 作为底层三层架构的第一层,提供 8 种强类型数据结构。Knowledge Abstract 的“强类型”特征,指它不是笼统 JSON 堆砌,而是落在被显式定义的数据类型之上。

这使得同一个抽取结果可以被当作明确的模型、集合或图来处理,而不只是“看起来像结构化”的文本片段。

它不是单一格式,而是统一抽象

Knowledge Abstract 并不等于知识图谱。图只是它的一个常见承载形式,README 明确强调它覆盖从简单到复杂的一整组知识结构。

至少包括以下类型:

  • List
  • Set
  • Pydantic Model
  • Knowledge Graph
  • Hypergraph
  • Temporal Graph
  • Spatial Graph
  • Spatio-Temporal Graph

README 在“8 Knowledge Structures”与“三层架构”部分给出的 8 种强类型数据结构是:

  • Model
  • List
  • Set
  • Graph
  • Hypergraph
  • Temporal Graph
  • Spatial Graph
  • Spatio-Temporal Graph

因此,Knowledge Abstract 更准确的理解方式是:它是这些结构之上的统一知识抽象。某次抽取的结果可以是一个列表,也可以是一个模型,或者是一个复杂的时空图;只要它满足持久化、可预测、强类型这三个条件,并作为后续知识操作对象存在,就属于 Knowledge Abstract。

与模板系统和类型系统的关系

Knowledge Abstract 的结构不是临时拍脑袋决定的,而是由模板系统与类型系统共同定义。

README 给出的三层架构是:

  • Auto-Types:定义底层强类型结构。
  • Methods:定义抽取算法,如 GraphRAG、LightRAG、Hyper-RAG、KG-Gen、Cog-RAG 等。
  • 知识抽取模板:把领域配置、字段设计、输出结构和标识规则封装为可复用模板。

这意味着一个 Knowledge Abstract 的“长什么样”,主要由模板来约束;而这个模板又建立在某个明确的类型之上。

例如 README 中给出的图模板示例,明确声明:

  • type: graph
  • 输出包含 entitiesrelations
  • 实体字段有 nametypedescription
  • 关系字段有 sourcetargettype
  • entity_id: name
  • relation_id: '{source}|{type}|{target}'

这类定义说明:Knowledge Abstract 不是简单“把内容抽出来”,而是按模板规定的字段、主键和结构生成。这也是它可预测、可搜索、可导出的基础。

生成链路:从 parse 到可用知识库

Knowledge Abstract 的典型生成入口是 parse

README 中的快速开始流程展示了一个标准链路:

  1. 安装工具。
  2. 配置 LLM API Key。
  3. 对输入文档执行 he parse ... -t 模板 -o 输出目录
  4. 得到可继续操作的 Knowledge Abstract。

示例里,系统可以把人物传记文档抽取为图类型结果;研究者示例中,可把 20 页学术论文转成包含关键概念、作者和引用关系的交互式图。

Python API 的表达也一样:

  • Template.create("general/biography_graph") 创建模板实例;
  • 再调用 ka.parse(f.read()) 对文本进行抽取;
  • 返回结果后可直接 result.show()

这里的 result,本质上就是一个 Knowledge Abstract 的实例化结果。

使用链路:查询、展示、导出、暴露

Knowledge Abstract 生成后,不是静态终点,而是后续操作的统一入口。

search / ask 查询

README 展示了 he search ./output/ "What are Tesla's major achievements?" 这种基于已抽取知识库的查询方式。

在 MCP 工具列表中,又明确列出:

  • search
  • ask(RAG)

这说明 Knowledge Abstract 既可用于检索,也可作为问答的知识底座。search 偏向直接检索知识内容,ask 则是在此基础上进行 RAG 式问答。

show 可视化

he showresult.show() 用于展示已抽取结果,尤其适用于图、超图、时空图等更适合可视化浏览的结构。