온톨로지 입문 — 도메인AI를 위한 6걸음
로컬푸드 직매장 도메인 온톨로지 스키마 착수에 앞서, 온톨로지 개념을 한 바퀴 정리한 학습 노드. 솔트룩스 이경일 강연 분석(뉴로심볼릭 척추)에서 이어지는 기초 정지작업이다.
학습 원칙: 약자는 전체 단어로 풀고, 물리적 실체가 있으면 명시하고, 비유는 보조로만 쓴다. 온톨로지는 김성훈 전공인 철학의 “존재론”이 친정이라, 익숙한 철학 구분으로 빠르게 잡을 수 있다.
여섯 걸음: 온톨로지란 무엇 → 5요소 → 틀/채움 → graphify 실물 → 트리플 → 추론
모든 예시는 우리 매장의 한 장면(강경 김씨농가가 무농약 오이를 지족점에 납품해 판다)으로 일관되게 끌고 간다.
1. 온톨로지란 무엇인가 — 철학의 “존재론”
- 어원: Ontology = 그리스어 on(있는 것, 존재) + logos(학문) = 존재론. *“무엇이 존재하는가, 존재하는 것을 어떤 범주로 나눌 수 있는가”*를 묻는 형이상학의 분과. 아리스토텔레스의 범주론(Categories)이 원형.
- 정보과학이 1990년대에 이 단어를 그대로 빌려옴. 고전 정의(Tom Gruber, 1993): “공유된 개념화(conceptualization)의 형식적·명시적 명세”.
- 개념화 — 우리가 세계를 어떻게 나눠 보는가
- 공유된 — 한 사람 머릿속이 아니라 여러 사람·시스템이 합의한
- 명시적 — 암묵지가 아니라 드러나게 적은
- 형식적 — 사람만 읽는 글이 아니라 컴퓨터도 처리할 수 있는 구조
- 한 줄: 온톨로지 = “이 영역에 무엇이 있고 그것들이 어떻게 연결되는지를, 컴퓨터가 읽을 수 있게 적어둔 세계의 뼈대”.
- 왜 필요한가: LLM(대규모 언어 모델)은 말은 유창하지만 사실을 지어낸다. 온톨로지는 *“이 영역에서 참인 것”*을 미리 고정한 뼈대라, 그 위에 LLM을 얹으면 멋대로 지어내지 못하고 뼈대에 근거해 답한다.
2. 온톨로지의 5개 구성요소 — “세계를 그리는 3 + 규칙을 세우는 2”
5개가 모두 갖춰져야 컴퓨터가 추론한다. 앞 3개와 뒤 2개는 성격이 전혀 다르다.
세계를 그리는 3개 (여기까지가 “지식 그래프”)
- ① 개념 (Class) — 다루는 대상의 범주·틀. 매장:
상품·농가·조합원·거래·로컬페이. ⚠️ “오이”는 개념이 아니다 —상품이라는 틀이 있고 “오이”는 그 틀에 들어간 실제 개체(→ 3장 틀/채움). - ② 속성 (Property) — 각 개념이 지니는 특성.
상품은 원산지·가격·인증여부를 가진다. - ③ 관계 (Relation) — 개념과 개념을 잇는 선. “
농가가상품을 납품한다”.
규칙을 세우는 2개 (여기서 “추론”이 생긴다)
- ④ 공리 (Axiom) — “A이면 반드시 B” 형태의 항상 참인 논리 규칙. “로컬페이로 결제된 거래의 상품은 반드시 로컬기업 납품이어야 한다”.
- ⑤ 제약조건 (Constraint) — 위반하면 오류·경고를 내는 경계선. “발행량 > 사용량이면 경고”.
앞 3개 = 무엇이 있는가(그림). 뒤 2개 = 무엇이 참이어야 하는가(규칙). 공리·제약이 없으면 “지식 그래프”에 머물고, 있어야 “추론 가능한 온톨로지”가 된다.
3. 틀(스키마) vs 채움(인스턴스)
작업의 출발선. 우리가 만들 것은 “스키마”다.
- 스키마 (Schema) = 틀·설계도. Supabase
pos_transactions의 컬럼 정의(id, branch, item_name, qty, sold_at…)가 스키마. 행이 한 줄도 없어도 존재. - 인스턴스 (Instance) = 채움·실제 개체. 그 안에 쌓인 507,999건의 행 하나하나(“2026-06-01, 지족점, 오이, 3개”)가 인스턴스.
- 온톨로지도 같은 구조:
- 스키마 → “
상품범주가 있고, 상품은 원산지·인증여부를 가지며,농가가 상품을 납품한다”(정의 자체) - 인스턴스 → “오이는 상품이다 / 강경 김씨농가가 오이를 납품한다”(채워진 사실)
- 스키마 → “
- 철학 친정: 스키마 = 보편자(universal, “상품다움”), 인스턴스 = 개별자(particular, “이 오이 한 개”). 중세 보편논쟁의 그 보편–개별, 퍼스(Peirce)의 type(유형) vs token(개별) 구분 그대로.
- 왜 출발선인가: 우리가 만들 건 스키마(틀) 하나. 실데이터(인스턴스)는 이미 Supabase에 50만 건 있다. 잘 만든 스키마 + 기존 데이터 연결 = 온톨로지가 살아 움직인다.
4. graphify 실물 진단 — 우리 자산은 지금 어디
김성훈의 graphify 산출물(poomasi-notes/graphify-out/graph.json)을 열어 5요소로 진단한 결과.
- 노드 390개 = 위키 “문서·개념”들 (예:
{"label":"poomasi.org 팩트시트","file_type":"document"}).상품·농가가 아니라 지식 콘텐츠. - 엣지 724개 = 문서끼리 참조·인용 관계:
references 465 · implements 64 · cites 61 · conceptually_related_to 37 · calls 28 · semantically_similar_to 27 · rationale_for 27 · shares_data_with 15. “농가가 상품을 납품한다”는 도메인 관계는 0개.
5요소 진단
- ① 개념 ✅ (단, 위키 문서 단위) · ② 속성 △ (메타데이터만) · ③ 관계 ✅ (문서 참조 관계)
- ④ 공리 ❌ (논리 규칙 0) · ⑤ 제약 ❌ (경계선 0) · 인스턴스 ❌ (실거래 미연결)
→ 앞 3개(그림)는 섰고 뒤 2개(규칙)·인스턴스는 비어 있다. 척추 문서의 **“Phase 0 = 지식 그래프 수준”**이 정확히 이 상태.
그리고 대상이 다르다 (오해 주의):
- graphify = *위키(지식 콘텐츠)*의 지도 → “어느 글이 어느 글과 엮이나” (품아이 RAG 백본용)
- 로컬푸드 온톨로지 = *매장 운영(상품·거래·로컬페이)*의 뼈대 → “매장에서 무엇이 참이어야 하나” (MVP용)
- 같은 기법(노드·엣지)이지만 다른 층위. graphify는 좋은 연습이자 옆에 둘 도구이지, 그 자체가 로컬푸드 온톨로지는 아니다.
5. 트리플(triple) — 온톨로지가 적히는 최소 단위
- 트리플 = 주어 · 서술어 · 목적어, 단 3칸. RDF(Resource Description Framework, 자원 기술 프레임워크 — 웹 표준 기구 W3C가 정한 온톨로지 표기법)의 기본 단위. 아무리 복잡한 지식도 이 3칸 조각들의 모음으로 적는다.
- graphify 엣지가 바로 트리플이었다:
{"source":"...팩트시트", "relation":"references", "target":"...전체지도"}=(팩트시트)—[참조한다]→(전체지도). 엣지 724개 = 트리플 724개. - 철학 친정: 트리플 = 명제의 최소 형식. “소크라테스는 사람이다” =
(소크라테스, ~이다, 사람). 술어논리P(a,b)그대로. - 매장 장면을 트리플로 분해:
주어·목적어 = 노드, 서술어 = 엣지. 트리플이 모이면 그래프가 되고, 그게 온톨로지의 몸.(오이, 분류, 채소) (오이, 재배방식, 무농약) (김씨농가, 납품한다, 오이) (오이, 판매처, 지족점) - 공리도 트리플로:
컴퓨터가 이 규칙으로 *“로컬페이로 샀는데 납품처가 대기업 → 위반”*을 스스로 판정.IF (거래X, 결제수단, 로컬페이) AND (거래X, 판매상품, 상품Y) THEN (상품Y, 납품처유형, 로컬기업) ← 반드시 참이어야
6. 추론(inference) — 적지 않은 것까지 컴퓨터가 알아낸다
개념 학습의 마지막 꽃. 왜 공리·제약을 넣나의 답.
- 추론 = 우리가 적은 사실 + 공리 → 적지 않은 새 사실을 자동 도출. 적은 것 = 명시적 사실(asserted), 도출된 것 = 추론된 사실(inferred), 일하는 것 = 추론 엔진(reasoner).
- 철학 친정: 연역(deduction), 삼단논법 그대로.
- 대전제(공리): 로컬기업 납품 + 무농약 상품은 ‘로컬친환경상품’이다
- 소전제(사실): 오이는 로컬기업 납품이고 무농약이다
- 결론(추론): ∴ 오이는 로컬친환경상품이다 → 추론 엔진 = 자동화된 삼단논법 기계
- 추론 세 패턴:
- 상속 —
(채소, 속성, 신선식품)+(오이, isA, 채소)→(오이, 속성, 신선식품). 오이에 직접 안 적어도 물려받음. - 이행 —
(오이, 분류, 채소)+(채소, 상위, 농산물)→(오이, 분류, 농산물). - 자동 분류 (가장 강력) — 공리
납품처=로컬기업 ∧ 재배방식=무농약 → '로컬친환경상품'하나면, 7,272개 상품에 라벨을 하나도 안 붙여도 조건 맞는 상품이 전부 자동으로 그 범주에 들어간다. 새 상품 입고 시에도 규칙이 알아서 적용.
- 상속 —
- 이것이 “왜 공리를 넣나”의 답 — 공리가 사람 노동을 대신한다.
- 환각 제거의 정체: LLM에게 “이거 로컬친환경이야?” → 지어낼 수 있음. 온톨로지 추론 → “납품처=로컬기업 ∧ 무농약, 규칙 R3에 의해 참” — 증명 가능·설명 가능. 솔트룩스가 말한 Knowledge Grounding의 알맹이.
우리 자산 현 위치 (요약)
| 5요소 | graphify (위키 그래프) | 만들 로컬푸드 온톨로지 |
|---|---|---|
| 개념 | ✅ 위키 문서 단위 | 상품·농가·거래·로컬페이 |
| 속성 | △ 메타데이터만 | 원산지·재배방식·결제수단 |
| 관계 | ✅ 문서 참조 | 납품한다·결제된다 |
| 공리 | ❌ | 로컬페이·로컬친환경 규칙 |
| 제약 | ❌ | 발행·사용량 경계 |
| 인스턴스 | ❌ | Supabase 50만 건 연결 |
다음 발 — 로컬푸드 스키마 설계
가장 작은 범위(상품 분류 + 로컬페이 규칙)부터. 단, 첫 조사에서 로컬페이 데이터가 Supabase에 부재함을 확인 — MVP “로컬페이 소진율 식별”은 데이터부터 만들어야 성립한다. 스키마 설계 시 이 빈자리를 함께 설계한다.
상품 분류 현황(실데이터): 20개 대분류 / 7,272개 품목 (채소 1,152 · 간식 966 · 수산 697 · 과일 625 · 양념 589 · 차/음료 496 · 제로웨이스트 454 · 곡류 405 …).
연결된 자리
- OWL_Turtle_RDF — 온톨로지를 실제로 적는 표준 언어 (이 노드의 다음 단계)
- 도메인특화ai개발 — 품아이 도메인특화 AI 개발 노드
- 로컬푸드 도메인 AI 공동사업 제안서 — 사업 맥락
- 로컬푸드 도메인 AI 사업이 만드는 변화 — 130가지 변화
- 기술 척추:
business/social_intelligence/ontology_neurosymbolic_strategy.md(뉴로심볼릭) - 개발 방법론:
business/social_intelligence/domain_ai_methodology.md(8축) - graphify 산출물:
poomasi-notes/graphify-out/graph.json(390 노드 / 724 엣지)
작성: 지미 (2026-06-05 김성훈 온톨로지 학습 세션). 김성훈 재검토 후 정본 확정.