Knowledge Abstract
定义
Knowledge Abstract 是 Hyper-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- 输出包含
entities与relations - 实体字段有
name、type、description - 关系字段有
source、target、type entity_id: namerelation_id: '{source}|{type}|{target}'
这类定义说明:Knowledge Abstract 不是简单“把内容抽出来”,而是按模板规定的字段、主键和结构生成。这也是它可预测、可搜索、可导出的基础。
生成链路:从 parse 到可用知识库
Knowledge Abstract 的典型生成入口是 parse。
README 中的快速开始流程展示了一个标准链路:
- 安装工具。
- 配置 LLM API Key。
- 对输入文档执行
he parse ... -t 模板 -o 输出目录。 - 得到可继续操作的 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 工具列表中,又明确列出:
searchask(RAG)
这说明 Knowledge Abstract 既可用于检索,也可作为问答的知识底座。search 偏向直接检索知识内容,ask 则是在此基础上进行 RAG 式问答。
show 可视化
he show 或 result.show() 用于展示已抽取结果,尤其适用于图、超图、时空图等更适合可视化浏览的结构。