설비 맥락에 담당자·위치·근무조 잇기
IoT 온톨로지를 적재하고 설비·센서·정비 이벤트에 담당자·위치·근무조를 연결해 상위 5범주를 모두 채웁니다.
이번 단계의 질문
CNC-03의 경고를 현장 점검에 넘길 때 어떤 설비 맥락을 함께 보여 줘야 할까요?
왜 지금 필요한가
경고 한 행만 넘기면 담당자는 설비에 어떤 센서가 붙었고 정비 사건이 생성됐는지 다시 찾아야 합니다. 게다가 누가 맡고 어디로 가야 하며 언제 처리했는지는 아예 빠져 있어 작업 지시를 만들 수 없습니다.
상위 온톨로지는 이 빈칸을 다섯 범주로 나눠 채웁니다.
| 범주 | 답하는 질문 | 이 시나리오의 엔티티 |
|---|---|---|
| Object | 무엇이 이상인가? | iot_machine, iot_sensor |
| Event | 무슨 일이 일어났는가? | iot_maintenance_event |
| Agent | 누가 대응하는가? | iot_technician |
| Location | 어디에서 일어났는가? | iot_location |
| Time | 언제 처리했는가? | iot_shift |
직접 해보기
processed의 IoT 온톨로지 적재 파이프라인(ontology_materialization)을 실행합니다.
파이프라인은 센서·이상·건전성 데이터셋에 설비·위치·담당자·근무조·정비 이력 마스터
5종을 결합합니다. 완료되면 엔티티와 관계 행 수를 확인합니다.
| 엔티티 | 행 수 | 범주 | 의미 |
|---|---|---|---|
iot_machine | 9 | Object | CNC 설비 |
iot_sensor | 27 | Object | 설비-센서 종류 조합 |
iot_maintenance_event | 6 | Event | 이상에 대응해 생성된 정비 사건 |
iot_technician | 6 | Agent | 정비 담당자 |
iot_location | 4 | Location | 라인-구역 조합 |
iot_shift | 2 | Time | 주간조·야간조 |
| 관계 | 행 수 | 연결 |
|---|---|---|
iot_reads_from | 27 | 센서 → 설비 |
iot_triggers | 6 | 설비 → 정비 이벤트 |
iot_located_at | 9 | 설비 → 위치 |
iot_performs | 6 | 담당자 → 정비 이벤트 |
iot_occurs_during | 6 | 정비 이벤트 → 근무조 |
iot_assigned_to | 6 | 담당자 → 근무조 |
설비 구성부터 확인합니다
그래프 탐색기에서 CNC-01의 센서 구성을 확인합니다.
MATCH path=(s:iot_sensor)-[:iot_reads_from]->(m:iot_machine)
WHERE m.machine_id = 'CNC-01'
RETURN path
CNC-01에는 진동·온도·압력 센서 3개가 연결됩니다. 다른 여덟 대도 마찬가지로 3개씩입니다. 구성이 모두 같으므로 센서 관계만으로는 점검 순서를 정할 수 없습니다.
이어서 첫 점검 대상인 CNC-03을 확인합니다.
MATCH path=(m:iot_machine)-[:iot_triggers]->(e:iot_maintenance_event)
WHERE m.machine_id = 'CNC-03'
RETURN path
CNC-03에서 HIGH 진동 경고가 만든 정비 이벤트 한 건으로 이어지면 성공입니다.
누가·어디서·언제를 한 번에 읽습니다
HIGH 설비 네 대의 담당자, 구역, 근무조를 한 쿼리로 모읍니다.
MATCH (m:iot_machine)-[:iot_triggers]->(e:iot_maintenance_event)
MATCH (m)-[:iot_located_at]->(l:iot_location)
MATCH (t:iot_technician)-[:iot_performs]->(e)
MATCH (e)-[:iot_occurs_during]->(s:iot_shift)
WHERE e.severity = 'HIGH'
RETURN m.machine_id, l.location_id, l.zone, t.name, t.team, s.shift_name
ORDER BY m.machine_id
이 결과가 나오면 성공
| 설비 | 위치 | 담당자 | 소속 팀 | 근무조 |
|---|---|---|---|---|
| CNC-03 | LOC-A2 Zone-2 | 박지훈 (TECH-03) | 정밀가공2팀 | 주간조 |
| CNC-05 | LOC-B1 Zone-1 | 최민서 (TECH-04) | 조립1팀 | 주간조 |
| CNC-07 | LOC-B2 Zone-2 | 정예은 (TECH-05) | 조립2팀 | 주간조 |
| CNC-09 | LOC-A2 Zone-2 | 박지훈 (TECH-03) | 정밀가공2팀 | 주간조 |
다이어그램을 불러오는 중입니다. Mermaid 원본:
flowchart LR
accTitle: 상위 온톨로지 5범주로 이어진 IoT 관계
accDescr: 센서와 설비는 Object, 정비 이벤트는 Event이며 담당자는 Agent, 라인과 구역은 Location, 근무조는 Time으로 이어져 하나의 이상 사건이 무엇 누가 어디서 언제에 모두 답합니다.
sensor["센서 · Object"] --> machine["설비 · Object"]
machine --> event["정비 이벤트 · Event"]
machine --> location["라인·구역 · Location"]
tech["담당자 · Agent"] --> event
event --> shift["근무조 · Time"]
tech --> shift다섯 범주가 이어지면 이상 사건 하나가 무엇이 · 어디서 · 누구에게 · 언제 넘어가는지 한 경로로 설명됩니다.
결과를 해석합니다
앞선 챕터는 점검 대상 네 대와 시작 순서를 정했습니다. 이 쿼리는 그 순서를 실제 인력에 배치합니다.
- 담당자 — CNC-03과 CNC-09를 모두 박지훈(
TECH-03)이 맡습니다. 이 둘만 한 줄에 섭니다. CNC-05는 최민서(TECH-04), CNC-07은 정예은(TECH-05)이 맡으므로 순번을 기다릴 이유가 없습니다. 네 대가 세 갈래로 나뉩니다. - 구역 —
TECH-03이 맡는 두 대는 같은LOC-A2에 있습니다. 이동 없이 이어서 처리할 수 있어 순차 배치가 오히려 유리합니다. - 건수와 등급 —
iot_location의anomaly_count는LOC-A12건,LOC-A22건입니다. 건수는 같지만LOC-A1의 두 건은 CNC-01·CNC-02의MEDIUM·LOW입니다. 구역별 건수만 세면 위험도를 잘못 읽습니다. - 근무조 — 여섯 이벤트 모두 주간조(
SHIFT-D)입니다. 야간조(SHIFT-N)의 이상 대응은 0건이므로, 교대 시작 직후 시간대를 점검 루틴에서 다시 볼 근거가 생깁니다.
다음 판단
원천 신호, 통계 검사, 설비 점수, 5범주 관계 맥락을 모두 확인했습니다. 다음 챕터에서 네 가지 핵심 판단을 짧게 점검한 뒤, 마지막 챕터에서 결정을 한 문장으로 설명합니다.