다른 명령
온톨로지(Ontology)를 쉽게 설명해드리겠습니다.
- 온톨로지란?
- “어떤 분야의 지식을 체계적으로 정리한 개념 구조”**입니다. 쉽게 말해, 사물과 개념들 사이의 관계를 명확하게 정의한 일종의 “지식 지도”라고 보시면 됩니다.
- 실생활 예시: 병원 온톨로지
``` [사람]
├─ [환자]
│ ├─ 입원환자
│ └─ 외래환자
│
└─ [의료진]
├─ [의사]
│ ├─ 전문의
│ └─ 레지던트
└─ [간호사]
├─ 수간호사
└─ 일반간호사
[관계 정의] - 의사 "진료한다" 환자 - 간호사 "돌본다" 환자 - 환자 "가지고있다" 질병 - 의사 "처방한다" 약물 ```
- Oracle DBA 업무로 보는 예시
데이터베이스 온톨로지를 만든다면:
``` [데이터베이스 객체]
├─ [테이블] │ ├─ 파티션 테이블 │ └─ 일반 테이블 │ ├─ [인덱스] │ ├─ B-Tree 인덱스 │ ├─ Bitmap 인덱스 │ └─ Function-Based 인덱스 │ └─ [세그먼트]
[관계] - 테이블 "포함한다" 컬럼 - 인덱스 "참조한다" 테이블 - 테이블스페이스 "저장한다" 세그먼트 - DBA "관리한다" 데이터베이스 ```
- 온톨로지 vs 일반 분류의 차이
- 일반 폴더 구조** (단순 분류):
``` /동물
/고양이 /개
```
- 온톨로지** (관계까지 정의):
``` 동물
- 포유류
- 고양이 [특징: 육식, 4개 다리, 털 있음]
관계: "잡아먹는다" → 쥐
관계: "기른다" ← 사람
- 개 [특징: 잡식, 4개 다리, 털 있음]
관계: "사냥한다" → 작은동물
관계: "기른다" ← 사람
```
- 실제 활용 예시
- 1. 검색 엔진**
- 사용자가 “감기약” 검색 → 온톨로지를 통해 “해열제”, “진통제”, “종합감기약”도 함께 제안
- 2. 의료 시스템**
``` 환자 증상: "기침, 열" 온톨로지 추론:
→ 호흡기 질환 가능성 → 관련 검사: 흉부 X-ray, 혈액검사 → 처방 가능 약물: 해열제, 진해거담제
```
- 3. 쇼핑몰 추천**
``` 고객이 "노트북" 구매 온톨로지 관계:
→ "필요하다" 노트북 가방 → "호환된다" 무선 마우스 → "함께 쓰인다" 모니터
```
- Python으로 간단한 온톨로지 표현
```python
- 간단한 온톨로지 구조
ontology = {
"테이블": {
"부모": "데이터베이스객체",
"속성": ["컬럼", "제약조건", "트리거"],
"관계": {
"포함한다": ["컬럼", "인덱스"],
"저장된다": "테이블스페이스"
}
},
"인덱스": {
"부모": "데이터베이스객체",
"관계": {
"참조한다": "테이블",
"개선한다": "쿼리성능"
}
}
} ```
- 핵심 포인트**: 온톨로지는 단순히 “분류”만 하는 게 아니라 **“개념들 간의 관계와 규칙”**까지 명확히 정의한다는 점이 중요합니다. 이를 통해 컴퓨터가 지식을 이해하고 추론할 수 있게 됩니다.