
지식 표현 (Knowledge Representation) 입문 ― 의미 네트워크, 프레임, 의미 프리미티브부터 지식 그래프까지
요약
고전적 기호주의 AI의 지식 표현 기법인 의미 네트워크, 프레임, 의미 프리미티브를 Swift 코드로 살펴봅니다. 이러한 개념들이 현대의 온톨로지, 지식 그래프, OWL로 어떻게 계승되었는지 그 연결 고리를 정리합니다.
핵심 포인트
- 의미 네트워크의 노드와 에지를 통한 개념 간 관계 표현 방식 이해
- 프레임 시스템의 슬롯, 기본값, 상속 구조와 객체 지향 프로그래밍의 유사성
- 기본 추론(Default reasoning)과 예외 처리를 위한 데이터 구조 설계
- 고전적 지식 표현 기법과 현대 지식 그래프/온톨로지의 관계 정립
의미 네트워크 (Semantic Network), 프레임 (Frame), 의미 프리미티브 (Semantic Primitives)와 같은 고전적인 지식 표현 기법을 Swift 샘플 코드로 확인한 후, 현대의 온톨로지 (Ontology), 지식 그래프 (Knowledge Graph), OWL과의 관계를 정리합니다.
- 서론
-
- 의미 네트워크 (Semantic Network)
-
- 프레임 시스템 (Frame System)
-
- 의미 프리미티브 (Semantic Primitives)
-
- 현대와의 가교: 온톨로지 (Ontology) · 지식 그래프 (Knowledge Graph) · OWL
- 요약
- 주석
- 참고 자료
지식 표현 (Knowledge Representation, KR)은 AI가 추론에 사용할 수 있는 형태로 "세상에 대한 지식"을 컴퓨터 안에 나타내는 방법을 다루는 분야입니다. 1970~80년대 기호주의 AI (Symbolic AI) 시대에 의미 네트워크, 프레임 시스템, 의미 프리미티브와 같은 기법들이 탄생했으며, 그 사고방식은 형태를 바꾸며 현대의 온톨로지나 지식 그래프에까지 이어지고 있습니다.
이 기사에서는 이러한 고전적 기법의 사고방식을 Swift 샘플 코드로 확인한 후, 현대의 온톨로지 / 지식 그래프 / OWL과의 관계를 정리합니다. Swift를 선택한 이유는 프레임의 "슬롯 (Slot) + 기본값 (Default value) + 상속 (Inheritance)" 구조가 객체 지향의 클래스 상속과 거의 같은 발상이며, iOS/macOS 개발자에게 가장 직관적으로 이해될 수 있다고 생각했기 때문입니다.
의미 네트워크는 개념을 노드 (Node), 개념 간의 관계를 **라벨이 붙은 화살표 (에지 (Edge))**로 나타내는 그래프 구조입니다. 대표적인 관계가 is-a ( ~의 일종이다)이며, 이를 통해 상위 개념에서 하위 개념으로 속성을 전파하는 "상속"을 실현할 수 있습니다.
- 장점: 노드와 화살표만으로 표현할 수 있어 직관적이고 이해하기 쉽다
- 단점: 답을 얻기 위해서는 네트워크 전체를 따라가야 하므로 탐색 비용이 높다. 절차 (Logic)를 부여하기 어렵다
고전적으로 자주 쓰이는 예가 "새는 날 수 있지만, 펭귄은 새임에도 불구하고 날 수 없다"라는 기본 추론 (Default reasoning)과 예외 문제입니다. 하위 노드에 개별적인 사실(펭귄은 수영한다)이 있다면, 그것을 상위 노드의 기본값(새는 난다)보다 우선시하고 싶다는 것입니다.
enum Relation: String {
case isA = "is-a"
case canDo = "can"
...
let net = SemanticNetwork()
net.addRelation(from: "Canary", relation: .isA, to: "Bird")
net.addRelation(from: "Penguin", relation: .isA, to: "Bird")
...
query는 자기 자신으로부터 is-a를 부모 방향으로 따라가며 처음 발견된 값을 채택합니다. 이를 통해 "펭귄 자신에게 수영한다는 사실이 있다면 그것을 사용하고, 없다면 새의 기본값인 난다는 것을 사용한다"라는 기본 추론과 예외 처리를 단순한 탐색으로 실현하고 있습니다.
프레임은 Marvin Minsky가 1974년 논문 "A Framework for Representing Knowledge"에서 제창한 표현법으로, "전형적인 상황"을 슬롯 (Slot, 속성)과 그 값의 쌍으로 구조화합니다. 의미 네트워크의 발전된 형태로, 다음 점들이 강화되었습니다.
- 슬롯에 **기본값 (Default value)**을 가질 수 있음
- 슬롯에 **절차적 부착 (Procedural attachment)**을 심을 수 있음 (= 메서드 (Method))
- 상위 프레임에서 하위 프레임으로의 상속 (Inheritance)
이는 그야말로 객체 지향의 "클래스 (기본 구현을 가진 베이스 클래스)", "서브클래스에서의 오버라이드 (Override)", "메서드"에 대응하며, Swift에서는 거의 그대로의 구문으로 작성할 수 있습니다. 실제로 프레임은 후대의 객체 지향 언어의 클래스 / 인스턴스 개념의 원류 중 하나로 여겨집니다.
class VehicleFrame {
// 슬롯 (기본값)
var wheels: Int { 4 }
...
let car = CarFrame()
let plane = AirplaneFrame()
print(car.summary()) // CarFrame: 바퀴 4개 / 최고 속도 180km/h / 비행 불가
...
VehicleFrame의 슬롯은 모두 기본값을 가지며, CarFrame이나 AirplaneFrame은 필요한 슬롯만 override
로 override하고 있습니다. 이는 의미 네트워크 (Semantic Network)의 is-a 상속과 같은 발상이지만, 프레임 (Frame)에서는 값뿐만 아니라 summary()와 같은 절차 (Procedure)도 함께 상속 및 공유할 수 있다는 점이 강점입니다.
의미 프리미티브 (Semantic Primitive)는 자연어의 의미를 더 이상 분해할 수 없는 소수의 기본 요소의 조합으로 나타내는 사고방식입니다. 대표적인 것이 Roger Schank의 개념 의존 이론 (Conceptual Dependency, 1969년~)으로, 문의 의미를 언어 독립적인 소수의 프리미티브 행위 (ATRANS = 소유권의 이동, PTRANS = 물리적인 이동, MTRANS = 정보의 전달 등)와 케이스 역할 (Agent, Object, Source, Destination 등)의 조합으로 표현합니다 (주1).
이 기법의 가장 큰 특징은 표층의 단어가 다르더라도 의미가 같다면 동일한 내부 표현으로 정규화(Normalization)된다는 점입니다.
enum PrimitiveAct: String {
case atrans // 소유권의 이동
case ptrans // 물리적인 이동
...
"주었다"와 "건네주었다"는 표층 단어로는 서로 다르지만, 둘 다 "소유권이 타로로부터 하나코에게 이동했다 (ATRANS)"라는 동일한 사건이므로 동일한 구조체 값이 됩니다. 이러한 정규화의 용이성 덕분에 기계 번역이나 요약 등 "표현이 달라도 의미가 같은 것을 묶고 싶은" 태스크에서 유효한 것으로 평가받았습니다.
또 다른 대표적인 예는 Yorick Wilks의 선호 의미론 (Preference Semantics, 1975년)으로, 약 70개의 의미 프리미티브를 사용하여 단어 간의 의미적인 "선호 (Selectional Preference)"를 바탕으로 구문적 모호성을 해소했습니다 (주2).
두 기법 모두 프리미티브의 종류와 입도 (Granularity)를 어떻게 설계할 것인가 (포괄성과 재사용성의 트레이드오프)가 구현상의 난제였으며, 이것이 후에 범용적인 의미 프리미티브 집합의 표준화를 어렵게 만든 한 원인이기도 합니다.
지금까지 살펴본 세 가지 기법은 모두 1970~80년대의 것이지만, 근저에 깔린 "노드와 관계", "속성값 슬롯과 상속"이라는 발상은 현대 기술에도 그대로 이어지고 있습니다.
| 고전 | 현대 | 변화점 |
|---|---|---|
| 의미 네트워크 | RDF 그래프 / 지식 그래프 (Knowledge Graph) | 동일한 "노드와 관계"의 발상. 트리플 (Triple) 구조와 SPARQL이라는 쿼리 언어를 획득 |
| ... |
기술 논리 (Description Logic, DL)는 1980년대에 의미 네트워크나 프레임이 수학적으로 엄밀한 의미론이 없어 구현에 따라 모호했던 문제를 해결하기 위해 탄생했습니다. **OWL (Web Ontology Language)**은 이 DL을 기반으로 한 W3C 표준으로, 특정 도메인의 클래스, 프로퍼티, 제약 조건을 형식적으로 정의합니다 (주3). **지식 그래프 (Knowledge Graph)**는 이 사고방식을 실무에 적용한 것으로, 엔티티와 관계를 "주어-술어-목적어" 형태의 RDF 트리플로 대량 축적하여 SPARQL로 질의합니다 (주4). OWL의 추론 엔진 (Reasoner)을 사용하면 명시적으로 작성하지 않은 사실도 논리적으로 도출할 수 있습니다 (예: "수익 2억 원인 회사" + "수익 1억 원 이상은 Platinum"이라는 규칙으로부터 자동으로 Platinum 회사라고 추론함).
앞서 살펴본 의미 네트워크의 예를 RDF 트리플 방식으로 다시 쓰면, 발상이 이어져 있음을 알 수 있습니다.
struct Triple: CustomStringConvertible {
let subject: String
let predicate: String
...
이는 앞서 본 ConceptNode의 edges 배열을 보다 표준화된 (subject, predicate, object)의 3개 조합으로 나타낸 것뿐입니다. 실제 운용에서는 이를 RDF 스토어에 저장하고, OWL로 스키마를 정의하며, SPARQL이나 Reasoner로 질의하는 형태가 되지만, 핵심이 되는 사고방식은 의미 네트워크와 다르지 않습니다.
| 기법 | 단위 | 강점 | 약점 |
|---|---|---|---|
| 의미 네트워크 | 노드와 관계 | 직관적, 시각화 용이 | 탐색 비용이 높음, 절차적 지식을 가질 수 없음 |
| ... |
의미 네트워크, 프레임, 의미 프리미티브는 모두 노드와 관계, 속성과 기본값, 그리고 상속이라는 공통된 골격을 가지고 있습니다. 현대의 온톨로지(Ontology)나 지식 그래프는 이 골격에 형식적인 수학적 기반 (Description Logic)과 업계 표준 (RDF/OWL/SPARQL)을 부여한 것이라고 이해하면, 양자 사이의 연결 고리를 쉽게 파악할 수 있습니다.
-
Roger Schank, 개념 의존 이론 (Conceptual Dependency Theory) (1969년~). 11종의 기본 행위 (ATRANS/PTRANS/MTRANS 등)와 케이스 역할 (Case Role)로 문장의 의미를 표현한다.
-
Yorick Wilks, 선호 의미론 (Preference Semantics) (1975년). 약 70개의 의미 프리미티브 (Semantic Primitive)를 통한 모호성 해소.
-
기술 논리 (Description Logic)는 1980년대에 의미 네트워크 (Semantic Network)와 프레임 (Frame)에 형식적인 의미론 (Semantics)을 부여할 목적으로 고안되었다. OWL은 이를 기반으로 한 W3C 표준이다.
-
지식 그래프 (Knowledge Graph)는 RDF (주어-술어-목적어의 트리플)와 온톨로지 (Ontology, OWL/RDFS)를 결합하여 SPARQL로 질의한다. Google의 나리지 그래프 (Knowledge Graph)나 기업 내 나리지 그래프, RAG (검색 증강 생성, Retrieval-Augmented Generation)의 구조화된 지식 계층 등에 응용되고 있다.
-
Knowledge Representation in AI: Ontologies, Frames & Semantic Nets - Sanfoundry
-
Semantic Networks - John F. Sowa
-
Conceptual dependency theory - Wikipedia
-
Description logic - Wikipedia
-
RDF Knowledge Graphs: Structure & Benefits - PuppyGraph
-
Knowledge Graph vs Ontology: Know Differences - PuppyGraph
원문 (Bitz Notebook): https://www.bitz.co.jp/notebook/knowledge-representation-introduction.html
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기