마크다운 노트를 RDF/TTL 지식 그래프로 변환 - SPARQL 질의로 시맨틱 검색
概览
마크다운 노트를 RDF/TTL 지식 그래프로 변환하고 SPARQL로 질의하는 시스템. Claude Code 에이전트를 활용하여 시맨틱 검색을 자동화합니다. - : 인물, 프로젝트, 미팅 정보를 RDF 트리플로 추출 - : 17개 프리셋 쿼리 + 커스텀 쿼리 지원 - : Claude Code로 "John에 대해 알려줘" 같은 질의 - : [[위키링크]]에서 knows/involvedIn 관계 자동 생성 - claude-meeting-notes - 회의록 자동화 - claude-contact-crm - 연락처 CRM
README
Claude Knowledge Graph
마크다운 노트를 RDF/TTL 지식 그래프로 변환하고 SPARQL로 질의하는 시스템. Claude Code 에이전트를 활용하여 시맨틱 검색을 자동화합니다.
주요 기능
- 마크다운 → TTL 변환: 인물, 프로젝트, 미팅 정보를 RDF 트리플로 추출
- SPARQL 질의: 17개 프리셋 쿼리 + 커스텀 쿼리 지원
- 자연어 인터페이스: Claude Code로 “John에 대해 알려줘” 같은 질의
- 관계 추출:
[[위키링크]]에서 knows/involvedIn 관계 자동 생성
빠른 시작
1. 설치
git clone https://github.com/kubony/claude-knowledge-graph.git
cd claude-knowledge-graph
chmod +x setup.sh
./setup.sh
2. 마크다운 파일 추가
인물 파일 (vault/persons/):
---
title: John Doe
tags: [developer, AI]
summary: Senior developer at Acme Corp
contact:
email: [email protected]
linkedin: https://linkedin.com/in/john
---
# John Doe
## Meeting Records
### 2024.01.15 Coffee Chat
첫 만남. AI 프로젝트 논의.
프로젝트 폴더 (vault/projects/2401 AI Project/):
---
title: AI Automation
tags: [AI, automation]
summary: AI 자동화 플랫폼 개발
---
# AI Automation
## 2024.01.15 Kickoff
프로젝트 시작. [[John Doe]] 참여.
3. 지식 그래프 생성
source .venv/bin/activate
# 그래프 빌드
python .claude/skills/ontology-engine/scripts/vault_to_ttl.py ./vault
# 질의 실행
python .claude/skills/ontology-query/scripts/query_knowledge.py ./knowledge.ttl --preset all_persons
4. Claude Code 사용
"지식 그래프 빌드해줘"
"John에 대해 알려줘"
"활성 프로젝트 보여줘"
"AI 관련 미팅 찾아줘"
파일 구조
claude-knowledge-graph/
├── .claude/
│ ├── agents/
│ │ └── knowledge-graph-manager.md # 메인 에이전트
│ └── skills/
│ ├── ontology-engine/ # 변환 스킬
│ │ ├── SKILL.md
│ │ └── scripts/
│ │ └── vault_to_ttl.py
│ ├── ontology-query/ # 질의 스킬
│ │ ├── SKILL.md
│ │ └── scripts/
│ │ └── query_knowledge.py
│ └── ontology-sync/ # 동기화 스킬
│ ├── SKILL.md
│ └── scripts/
│ └── sync_vault.py
├── vault/ # 마크다운 파일
│ ├── persons/ # 인물 파일
│ ├── projects/ # 활성 프로젝트
│ └── archives/ # 아카이브
├── examples/ # 예시 파일
├── .env.example
├── requirements.txt
├── setup.sh
└── README.md
추출 규칙
인물 파일
위치: vault/persons/*.md
파일명 패턴: 이름_소속.md → 소속 자동 추출
추출 필드:
| 필드 | 소스 |
|---|---|
| Name | YAML title / 파일명 |
| Organization | 파일명 _소속 부분 |
| Tags | YAML tags |
| Summary | YAML summary |
| Contact | YAML contact (email, phone, linkedin 등) |
| Last Contact | YAML last_contact |
| Meetings | ## YYYY.MM.DD 섹션 |
프로젝트 폴더
위치: vault/projects/*/, vault/archives/*/
폴더명 패턴: YYMM 프로젝트명 또는 YYMMDD 프로젝트명
추출 필드:
| 필드 | 소스 |
|---|---|
| Name | 폴더명에서 날짜 제외 |
| Date | 폴더명의 YYMM/YYMMDD |
| Tags | 내부 파일 YAML tags |
| Summary | 내부 파일 YAML summary |
| Status | active / archived |
관계 추출
| 패턴 | 관계 |
|---|---|
[[Person Name]] |
:knows / :involvedIn |
| 같은 미팅 참석 | :participant |
| 프로젝트 내 언급 | :relatedTo |
프리셋 쿼리
인물 관련
| 프리셋 | 설명 | 파라미터 |
|---|---|---|
all_persons |
모든 인물 | - |
person_meetings |
인물의 미팅 | 이름 |
person_topics |
논의 주제 | 이름 |
person_projects |
참여 프로젝트 | 이름 |
person_network |
아는 사람들 | 이름 |
org_members |
조직 소속 | 조직명 |
프로젝트 관련
| 프리셋 | 설명 | 파라미터 |
|---|---|---|
all_projects |
모든 프로젝트 | - |
active_projects |
활성 프로젝트 | - |
archived_projects |
아카이브 | - |
project_details |
상세 정보 | 프로젝트명 |
search_projects |
키워드 검색 | 키워드 |
미팅/기타
| 프리셋 | 설명 | 파라미터 |
|---|---|---|
recent_meetings |
최근 10개 | - |
meetings_by_date |
특정 월 | YYYY-MM |
search_keyword |
내용 검색 | 키워드 |
stats |
전체 통계 | - |
사용 예시
source .venv/bin/activate
# 모든 인물
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--preset all_persons
# 특정 인물 미팅
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--preset person_meetings --param "John"
# 조직 소속
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--preset org_members --param "Acme"
# 활성 프로젝트
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--preset active_projects
# 키워드 검색
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--preset search_keyword --param "AI"
# 통계
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--preset stats
# 대화형 모드
python .claude/skills/ontology-query/scripts/query_knowledge.py knowledge.ttl \
--interactive
환경 변수
.env 파일:
VAULT_PATH=./vault
OUTPUT_FILE=./knowledge.ttl
PERSONS_DIR=persons
PROJECTS_DIR=projects
ARCHIVES_DIR=archives
요구사항
- Python 3.10+
- Claude Code CLI
라이선스
MIT License
관련 프로젝트
- claude-meeting-notes - 회의록 자동화
- claude-contact-crm - 연락처 CRM
推荐工具
换一个关键词,或者移除筛选条件。
安装
npx skillfish add kubony/claude-knowledge-graph