40

온톨로지 기초: 개념 체계 설계의 기본

제조 온톨로지 설계

학습 목표

온톨로지의 정의와 구성 요소를 이해한다 클래스, 속성, 관계, 인스턴스의 차이를 구분한다 온톨로지와 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 표준)
모델노드 + 관계 + 속성트리플 (주어-술어-목적어)
쿼리CypherSPARQL
속성노드/관계에 직접 부여별도 트리플로 표현
장점직관적, 성능 좋음표준화, 상호운용성
대표 DBNeo4j, Amazon NeptuneStardog, 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)가 제조 실무에 적합하다