40분
온톨로지 기초: 개념 체계 설계의 기본
제조 온톨로지 설계
온톨로지 기초: 개념 체계 설계의 기본
온톨로지 & Knowledge Graph > 제조 온톨로지 설계
학습 목표
온톨로지의 정의와 구성 요소를 이해한다 클래스, 속성, 관계, 인스턴스의 차이를 구분한다 온톨로지와 Knowledge Graph의 관계를 파악한다 RDF 트리플 구조를 이해한다
온톨로지 기초: "사전을 만든다고 생각하세요"
온톨로지란?
[일상의 비유]
"사전"을 만든다고 생각해보세요.
사전에는:
- 단어의 정의 (클래스)
- 단어 간의 관계 (상위어, 하위어, 유의어)
- 단어의 속성 (품사, 용례)
온톨로지 = "특정 분야의 전문 사전" + "개념 간의 관계도"
[공식 정의]
온톨로지(Ontology): 특정 영역(domain)의 개념, 속성, 관계를
공유된 형식(formal specification)으로 명시적으로 표현한 것
쉽게 말해: "이 분야의 모든 것을 빠짐없이 정리한 체계"
온톨로지의 구성 요소
1. 클래스 (Class) - "종류"
[제조 온톨로지 클래스 예시]
Thing (최상위)
├── Equipment (설비)
│ ├── CNCMachine (CNC 가공기)
│ │ ├── CNCLathe (CNC 선반)
│ │ └── CNCMill (CNC 밀링)
│ ├── PressureMachine (프레스)
│ └── Robot (로봇)
│ ├── WeldingRobot (용접 로봇)
│ └── AssemblyRobot (조립 로봇)
├── Part (부품)
│ ├── MechanicalPart (기계 부품)
│ │ ├── Bearing (베어링)
│ │ ├── Spindle (스핀들)
│ │ └── Gear (기어)
│ └── ElectricalPart (전기 부품)
│ ├── Motor (모터)
│ └── Sensor (센서)
├── Process (공정)
│ ├── Machining (가공)
│ ├── Assembly (조립)
│ └── Inspection (검사)
├── Fault (고장)
│ ├── MechanicalFault (기계 고장)
│ ├── ElectricalFault (전기 고장)
│ └── SoftwareFault (소프트웨어 오류)
└── MaintenanceAction (정비 조치)
├── PreventiveMaintenance (예방 정비)
├── CorrectiveMaintenance (사후 정비)
└── PredictiveMaintenance (예지 정비)
2. 속성 (Property) - "특성"
[데이터 속성 - 값을 가지는 속성]
Equipment:
- name: string ("CNC선반 1호기")
- model: string ("LX-500")
- installDate: date (2020-03-15)
- location: string ("A동 2라인")
- status: enum (운전중 | 정지 | 정비중)
Part:
- partNumber: string ("BRG-6205-2RS")
- manufacturer: string ("NSK")
- lifespan: integer (8000시간)
- lastReplaced: date (2025-06-01)
Fault:
- alarmCode: string ("E-201")
- severity: enum (경고 | 중요 | 긴급)
- description: string ("스핀들 과열")
- frequency: float (월 2.3회)
3. 관계 (Relation) - "연결"
[객체 관계 - 엔티티 간의 연결]
Equipment --[CONTAINS]--> Part
"CNC선반은 스핀들을 포함한다"
Equipment --[PERFORMS]--> Process
"CNC선반은 선삭 공정을 수행한다"
Part --[CAN_CAUSE]--> Fault
"베어링 마모는 진동 이상을 유발할 수 있다"
Fault --[RESOLVED_BY]--> MaintenanceAction
"스핀들 과열은 냉각수 보충으로 해결된다"
Process --[PRODUCES]--> Product
"밀링 공정은 기어 부품을 생산한다"
Process --[REQUIRES]--> Equipment
"조립 공정은 조립 로봇을 필요로 한다"
Worker --[OPERATES]--> Equipment
"김기술은 CNC선반 1호기를 운전한다"
Worker --[HAS_SKILL]--> Skill
"김기술은 CNC 프로그래밍 스킬을 보유한다"
4. 인스턴스 (Instance) - "실제 데이터"
[온톨로지 = 설계도, 인스턴스 = 실제 데이터]
클래스 (설계도):
CNCLathe (CNC 선반)
인스턴스 (실제):
cnc_lathe_001:
name: "CNC선반 1호기"
model: "LX-500"
installDate: 2020-03-15
location: "A동 2라인"
status: "운전중"
cnc_lathe_002:
name: "CNC선반 2호기"
model: "LX-500"
installDate: 2021-01-10
location: "A동 2라인"
status: "정비중"
온톨로지 vs Knowledge Graph vs Database
┌──────────────────────────────────────────────────────────┐
│ 세 가지 개념의 관계 │
├──────────────────────────────────────────────────────────┤
│ │
│ 온톨로지 (Ontology) │
│ ┌────────────────────┐ │
│ │ "설계도" │ │
│ │ 클래스, 관계 정의 │ │
│ │ 예: "설비는 부품을 │ │
│ │ 포함한다" │ │
│ └────────┬───────────┘ │
│ │ 기반으로 │
│ ▼ │
│ Knowledge Graph (KG) │
│ ┌────────────────────┐ │
│ │ "실제 지식" │ │
│ │ 인스턴스 + 관계 │ │
│ │ 예: "CNC선반1호기는 │ │
│ │ 스핀들A를 │ │
│ │ 포함한다" │ │
│ └────────┬───────────┘ │
│ │ 저장된 곳 │
│ ▼ │
│ Graph Database (Neo4j) │
│ ┌────────────────────┐ │
│ │ "저장소" │ │
│ │ 데이터 저장/조회 │ │
│ │ Cypher 쿼리 실행 │ │
│ └────────────────────┘ │
│ │
│ 비유: │
│ 온톨로지 = 건축 설계도 │
│ KG = 실제 건물 │
│ Graph DB = 건물이 서 있는 땅 │
│ │
└──────────────────────────────────────────────────────────┘
RDF 트리플 구조
[RDF (Resource Description Framework)]
가장 기본적인 지식 표현 단위: 트리플 (Triple)
(주어) --[술어]--> (목적어)
Subject Predicate Object
예시:
(CNC선반1호기) --[rdf:type]--> (CNCLathe)
(CNC선반1호기) --[contains]--> (스핀들A)
(스핀들A) --[manufacturer]--> "NSK"
(스핀들A) --[canCause]--> (과열알람)
Turtle 문법:
@prefix mfg: <http://example.org/manufacturing#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
mfg:CNCLathe001 rdf:type mfg:CNCLathe ;
mfg:name "CNC선반 1호기" ;
mfg:contains mfg:SpindleA ;
mfg:location "A동 2라인" .
mfg:SpindleA rdf:type mfg:Spindle ;
mfg:manufacturer "NSK" ;
mfg:canCause mfg:AlarmE201 .
Property Graph vs RDF
| 구분 | Property Graph (Neo4j) | RDF (W3C 표준) |
|---|---|---|
| 모델 | 노드 + 관계 + 속성 | 트리플 (주어-술어-목적어) |
| 쿼리 | Cypher | SPARQL |
| 속성 | 노드/관계에 직접 부여 | 별도 트리플로 표현 |
| 장점 | 직관적, 성능 좋음 | 표준화, 상호운용성 |
| 대표 DB | Neo4j, Amazon Neptune | Stardog, GraphDB |
| 제조 추천 | 실무 프로젝트에 적합 | 표준 준수 필요 시 |
이번 주에서는 Property Graph (Neo4j)를 사용합니다. 제조 현장 실무에 더 적합하고, 학습 곡선이 완만합니다.
AI로 학습하기 — 꿀팁
🤖제조 온톨로지 구조 표 생성AI 학습 팁
AI에게 제조 도메인 온톨로지의 클래스·속성·관계·인스턴스를 구조화된 표로 출력하게 요청하세요.
제조 설비 관리 온톨로지를 설계한다고 가정하고, 클래스(예: Equipment, Part, Failure), 속성(예: equipmentId, manufacturer), 관계(예: HAS_PART, CAUSES_FAILURE), 인스턴스(예: CNC-Machine-001)를 각각 3~5개씩 포함한 표를 만들어줘. 각 행에 온톨로지 구성 요소 종류와 예시, 설명을 포함해줘.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
🧪Mind Map — 개념 계층 구조화
이 글의 온톨로지 개념을 붙여넣어 계층형 마인드맵으로 정리하고, 노드를 클릭해 소스 근거로 질문해보세요.
핵심 포인트
- • 온톨로지 = 특정 분야의 개념, 속성, 관계를 체계적으로 정의한 것
- • 구성 요소: 클래스(종류), 속성(특성), 관계(연결), 인스턴스(실제 데이터)
- • 온톨로지는 설계도, KG는 실제 건물, Graph DB는 건물이 서 있는 땅
- • Property Graph(Neo4j)가 제조 실무에 적합하다