Knowledge Graph (지식 그래프)
별칭: 지식 그래프 · Knowledge Graph · KG · Semantic Network
Knowledge Graph (지식 그래프)
정의
개념(노드, Node)들과 그 관계(엣지, Edge)를 그래프 구조로 표현한 지식 표현 시스템. 단순 텍스트나 표가 아닌 **관계의 망(Network)**으로 지식을 저장하여, 추론·검색·시각화가 모두 가능.
본문 — 기술 상세
기본 구조
[노드 A] --(관계)--> [노드 B]
[아브라함] --(부자)--> [이삭]
[유월절] --(예표)--> [십자가]
[창세기 1:1] --(평행)--> [요한복음 1:1]
각 항목은 **(주어, 술어, 목적어) 트리플(Triple)**로 표현. 이 트리플들이 모여 거대한 망을 이룬다.
표현 방식
- RDF (Resource Description Framework) — W3C 표준. <subject, predicate, object> 3원소
- Property Graph — 노드·엣지에 속성(Property) 부여 (Neo4j 방식)
- OWL (Web Ontology Language) — 풍부한 의미론·추론 가능
- JSON-LD — JSON 기반, 웹 친화
주요 도구·플랫폼
- Neo4j — 가장 널리 쓰이는 그래프 DB. Cypher 쿼리 언어
- Wikidata — 위키미디어의 공개 KG. 1억+ 항목
- Google Knowledge Graph — 검색 결과 우측 패널
- Amazon Neptune, ArangoDB, TigerGraph — 상용
- GraphRAG (Microsoft, 2024) — KG + LLM 결합
쿼리 언어
- SPARQL (RDF용) — "아브라함의 모든 후손을 찾아줘"
- Cypher (Neo4j) —
MATCH (a:Person {name:'Abraham'})-[:DESCENDANT*]->(d) RETURN d
장점 vs 단점
| 장점 | 단점 |
|---|---|
| 명시적 관계 표현 | 구축·유지 비용 큼 |
| 추론 가능 (transitive 등) | 스키마 설계 어려움 |
| 시각화 직관적 | 비정형 텍스트와 통합 힘듦 |
| 환각 방지 (사실 기반) | 새 데이터 통합 느림 |
사역 적용 — ★ LLMWiki = 지식 그래프
본 프로젝트의 가장 중요한 기술적 결정: 별도의 거대 KG 인프라(Neo4j·벡터 DB) 구축 ❌ / LLMWiki 자체가 지식 그래프 ✅ (synthesis/ai-seonyong-ch7-llmwiki-knowledge-graph).
| 일반 KG | LLMWiki |
|---|---|
| 노드 = 그래프 DB의 객체 | 노드 = wiki/{type}/*.md Wiki Card |
| 엣지 = (subject, predicate, object) | 엣지 = [type/slug](/type/slug/) wikilink |
| 인덱스 = 그래프 인덱스 | 인덱스 = wiki/index.md |
| 시각화 = Neo4j Browser, Gephi | 시각화 = Obsidian Graph View + graph/index.json (D3.js) |
| 쿼리 = Cypher / SPARQL | 쿼리 = LLM이 wiki 읽고 답변 |
| 임베딩 = 별도 벡터 DB | 임베딩 = 옵션 (~100 source까지 불필요) |
4층 신학적 레이어가 LLMWiki 안에서 자연스럽게 구현 — 별도 인프라 없이 마크다운 + git만으로 작동, 인프라 비용 0.
한계와 주의사항
- 노드·엣지가 빈약하면 그래프 효과 ✗ → A03.02 wiki-linker 정기 점검
- 자동 추론(transitive·inverse)은 LLMWiki에서 LLM이 wikilink 따라감으로 대체
- 큰 규모(>500 페이지)에서는 검색 보조 도구(qmd 등) 추가 고려
관련
- synthesis/ai-seonyong-ch7-llmwiki-knowledge-graph (★ LLMWiki = 지식 그래프 핵심 카드)
- concept/karpathy-llm-wiki-pattern
- term/rag-retrieval-augmented-generation (GraphRAG으로 결합)
- term/vector-embedding (임베딩 기반 KG도 가능)
- term/llm-large-language-model (LLM이 KG 위에서 추론)