理解本体(知识图谱)
什么是本体?
本体(Ontology)是把工厂中的一切——设备、传感器、报警、工单、产品等——之间的关系像地图一样绘制出来。
一般的数据库(表)擅长展示"清单"。但对于"与这台设备相连的传感器有哪些?该传感器上设置了哪些报警?与该报警相关的工单是什么?"这类关系追溯却很困难。
本体将这些关系表示为图,使 AI 能够即时遍历。
信息
经 2026-07 改版,本体不再是独立服务,而是被并入 PlantPulse 平台的统合 MCP(server-web /api/v5/mcp)。以下概念与同步说明依然有效,图谱工具通过统合 MCP 提供。
表 vs 图
传统方式(关系型 DB 表)
[설비 테이블] [센서 테이블]
+----------+--------+ +----------+----------+-------+
| 설비_ID | 이름 | | 센서_ID | 설비_ID | 단위 |
+----------+--------+ +----------+----------+-------+
| E001 | 주입기 | | T001 | E001 | °C |
| E002 | 포장기 | | T002 | E001 | bar |
+----------+--------+ | T003 | E002 | rpm |
+----------+----------+-------+
"E001 설비와 연결된 모든 것을 찾으려면?"
→ 설비 테이블 조회 → 센서 테이블 조인 → 알람 테이블 조인 → 작업지시 테이블 조인 → ...
→ 테이블이 많아질수록 조인이 복잡해지고 느려짐
本体方式(图数据库)
[회사: 코펜스]
│
OWNS_SITE
│
[사이트: 대전]
│
HAS_AREA
│
[구역: 제조동]
│
HAS_LINE
│
[라인: M_01]
╱ ╲
HAS_EQUIPMENT HAS_EQUIPMENT
╱ ╲
[설비: 주입기] [설비: 포장기]
╱ │ ╲ │
HAS_TAG HAS_TAG HAS_ALARM HAS_TAG
╱ │ ╲ │
[온도] [압력] [고온알람] [속도]
│
TRIGGERS
│
[작업지시: 점검]
│
ASSIGNED_TO
│
[직원: 김기사]
要查找"与注塑机相关的所有内容"该怎么做? → 只需从注塑机节点沿着相连的边(关系)遍历即可 → 以毫秒级返回结果
PlantPulse 本体结构
14 类节点(实体)
工厂中的一切都用 14 种类型的节点来表示。
┌─────────────────────────────────────────────┐
│ 자산 계층 │
│ │
│ Company ─→ Site ─→ Area ─→ Line ─→ Equipment │
│ │ │
│ Tag ←┘ │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ 운영 데이터 │
│ │
│ AlarmConfig Order Calendar │
│ (알람 설정) (작업지시) (일정) │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ 마스터 데이터 │
│ │
│ Product Customer Employee Opc │
│ (제품) (고객) (직원) (OPC서버) │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ 문서 데이터 │
│ │
│ AssetStatement AssetDocument │
│ (설비 명세서) (설비 문서) │
└─────────────────────────────────────────────┘
关系(边)
节点之间的连接用关系表示。每个关系都有方向。
| 关系 | 含义 | 示例 |
|---|---|---|
OWNS_SITE | 公司拥有站点 | KOPENS → 大田工厂 |
HAS_AREA | 站点包含区域 | 大田工厂 → 制造楼 |
HAS_LINE | 区域包含产线 | 制造楼 → M_01 产线 |
HAS_EQUIPMENT | 产线包含设备 | M_01 → 注塑机 |
HAS_TAG | 设备拥有传感器 | 注塑机 → 温度传感器 |
HAS_ALARM | 为设备/标签设置报警 | 温度传感器 → 高温报警 |
HAS_ORDER | 向设备分配工单 | 注塑机 → 巡检作业 |
PRODUCES | 产线生产产品 | M_01 → 产品A |
CONNECTED_TO | 连接到 OPC 服务器 | 注塑机 → OPC服务器1 |
子图遍历
本体最强大的功能是子图遍历。
以特定节点为中心指定 depth(深度),即可一次性获取该范围内的所有连接。
depth=1(仅直接连接)
질문: "주입기에 직접 연결된 것들을 보여줘"
[라인: M_01]
│
┌───────┼───────┐
▼ ▼
[온도센서] [압력센서]
│
[고온알람]
depth=2(直到 2 级)
질문: "주입기와 2단계 이내 연결된 모든 것을 보여줘"
[구역: 제조동] ← depth 2
│
[라인: M_01] ← depth 1
│
┌────────┼────────┐
▼ ▼ ▼
[온도] [압력] [고온알람] ← depth 1
│ │
▼ ▼
[OPC1] [작업지시] ← depth 2
│
[김기사] ← depth 2
增大 depth 可以遍历更大范围,但过大会导致结果过于庞大。depth=2 适用于大多数分析场景。
自动同步
当 PlantPulse 主数据库(PostgreSQL)中的数据发生变更时,Neo4j 图谱会自动同步。
PlantPulse IIoT DB (PostgreSQL)
│
│ 60초마다 변경 감지
│
▼
Ontology 동기화 엔진
│
│ 변경된 엔티티만 업데이트
│ 배치 크기: 500건
│
▼
Neo4j 그래프 DB
(항상 최신 상태 유지)
信息
无需手动维护 Neo4j。新增设备或创建工单时,都会自动反映到图谱中。
AI 如何利用本体
示例 1:设备综合报告
사용자: "주입기 상태를 종합적으로 알려줘"
AI 내부 동작:
1. Ontology → 주입기 서브그래프(depth=2) 조회
→ 연결된 센서 5개, 알람 3개, 작업지시 2개 파악
2. 통합 MCP → 센서 5개 최신값 조회
3. TimeSeries → 이상 탐지 실행
4. 통합 MCP → 알람 3개 상태 확인
5. 통합 MCP → 작업지시 2개 진행 상황 확인
6. 종합 리포트 생성:
"주입기는 현재 정상 가동 중입니다.
센서 5개 중 온도센서에서 경미한 이상이 감지되었습니다.
관련 점검 작업지시가 김기사에게 할당되어 있습니다."
示例 2:异常影响范围分析
사용자: "온도센서 이상이 어디까지 영향을 미칠 수 있어?"
AI 내부 동작:
1. Ontology → 온도센서 서브그래프(depth=3) 조회
→ 온도센서 → 주입기 → M_01 라인 → 제조동
2. 영향 범위 파악:
"온도센서 이상 → 주입기 정지 가능
→ M_01 라인 가동률 저하
→ 같은 라인의 다른 설비(포장기)에도 영향"
示例 3:工厂结构可视化
사용자: "대전 공장 구조를 보여줘"
AI 내부 동작:
1. Ontology → 대전 사이트 그래프 조회
2. Mermaid 다이어그램으로 자동 변환:
graph TD
대전공장 --> 제조동
대전공장 --> 유틸리티동
제조동 --> M_01라인
제조동 --> M_02라인
M_01라인 --> 주입기
M_01라인 --> 포장기
...
图数据库 vs 关系型数据库性能对比
| 查询类型 | 关系型 DB (PostgreSQL) | 图数据库 (Neo4j) |
|---|---|---|
| 单一实体查询 | 快 | 快 |
| 2 级关系遍历 | 需 2 次 JOIN | 即时 |
| 3 级关系遍历 | 需 3 次 JOIN,越来越慢 | 即时 |
| N 级关系遍历 | N 次 JOIN,非常慢 | 速度恒定 |
| "所有相连的内容" | 需要复杂查询 | 一次子图调用 |
信息
关系型 DB 擅长"清单查询",图数据库则擅长"关系遍历"。PlantPulse 同时使用两者,以发挥各自的优势。