本体论(工厂知识图谱)
概述
PlantPulse Ontology 是将工厂的实体及其关系用图形表示的工厂知识图谱(Knowledge Graph)。
它帮助 AI 精确处理诸如“这个设备连接了哪些传感器?”、“如果这个泵停止,影响会波及到何处?”这类必须沿着关系追溯才能回答的问题。当只需层级结构时,资产树就够了,但对于影响传播或多条件交叉查询,则需要图。
本体论不是独立服务,而是在 PlantPulse 平台 server-web 内部运行。 该图是基于 Apache Jena 的内存 RDF 模型,并以平台数据库为源定期重新构建。 无需安装或运维单独的图数据库。
旧的独立服务 plantpulse-ontology(:8888) 已归档。那个时期的工具名称
(ontology_get_stats、ontology_get_graph 等)已不再存在。
节点类型(11 种)
它们是 RDF 图中出现的类。
| 类 | 说明 |
|---|---|
Site | 工厂/厂区 |
Area | 区域(制造厂房、公用工程区等) |
Line | 生产线 |
Equipment | 设备(注塑机、包装机等) |
Asset | 上述层级节点的公共父类——在跨层级查询全部资产时使用 |
Tag | 传感器标签 |
AlarmConfig | 报警设置 |
CommandDef | 设备命令定义 |
Statement | 设备规格书 |
Document | 设备附件文档 |
RegistryEntry | UNS 注册表条目 |
层级关系: Site → Area → Line → Equipment → Tag
关系类型(3 种)
与层级无关,资产之间还存在有方向的关系。影响传播查询会沿着这些关系进行。
| 关系 | 含义 |
|---|---|
FEEDS | A 向 B 供应(上游 → 下游) |
DEPENDS_ON | A 依赖于 B |
PRODUCES | A 生产 B |
图工具(集成 MCP)
AI 通过以下三个工具访问图。名称相似,但返回的维度不同——区分这三者正是本文档的核心。
| 工具 | 返回内容 | 何时使用 |
|---|---|---|
get_ontology | 一个厂区的 ISA-95 结构摘要 + 树(区域/产线/设备、每台设备的标签数量) | “这个厂区如何组织的”、“有多少台设备” |
query_ontology | 有向关系图(root + nodes[] + edges[]) | “X 停止影响‘波及’到何处”、“什么为 X 提供输入” |
query_sparql | SPARQL SELECT/ASK 结果行 | 需要交叉多个条件的查询 |
如果只需要纯层级,那么更适合使用 get_asset_tree 而不是本体论。
get_ontology 主要参数
| 参数 | 说明 |
|---|---|
site_id | 必填。 只知道名称时,先用 search_domains 解析出 ID |
asset_id | 部分子树的根。指定查看特定产线/设备时使用 |
depth | 根节点以下的扩展深度。以厂区根为基准,1=区域、2=产线、3=设备 |
include_tags | 若为 true,则在设备节点中包含标签名称列表。默认仅包含数量(tag_count) |
total_tag_count对各个节点的 tag_count 求和会出错,因为未展开分支的标签会被遗漏。
如果响应中出现 total_tag_count_unknown=true,则意味着无法计数,请勿估算,缩小范围后重新查询。
query_ontology 主要参数
| 参数 | 默认值 | 说明 |
|---|---|---|
entity_id | (必填) | 搜索起始实体 |
direction | DOWN | DOWN=下游影响、UP=上游原因、BOTH |
relation_type | (全部) | FEEDS / DEPENDS_ON / PRODUCES |
depth | 2 | 搜索深度 1~5 |
影响传播搜索示例
“注塑机 DJ_M_01_1 停止会影响到何处”——使用 direction=DOWN 沿下游路径追溯。
[Equipment: DJ_M_01_1] ← 시작 노드
│ FEEDS
┌──────┴──────┐
▼ ▼
[Equipment: [Equipment:
건조기] 컨베이어]
│ FEEDS
▼
[Equipment: 포장기]
响应中包含已访问的节点(nodes[])和连接的关系(edges[])。如果因深度限制无法继续,则会显示 truncated,若该值为 true,请增大 depth 后重新查询。
更新方式
该图以平台数据库为源定期重新构建。添加设备或更改标签后,将在下一个更新周期反映,因此刚注册的设备可能尚未出现在图中。更新周期由平台设置 semantic.graph.refresh.minutes 定义。
使用场景
| 场景 | 方法 |
|---|---|
| 掌握工厂构成 | 使用 get_ontology 一次性获取区域/产线/设备结构及标签数量 |
| 异常原因追溯 | query_ontology direction=UP ——在异常设备的上游寻找原因候选 |
| 停机影响范围评估 | query_ontology direction=DOWN ——停止时波及到的下游范围 |
| 多条件交叉 | query_sparql ——例如“带有报警标签的3线设备”这类复合条件 |