notion_page · 2026-07-02
그래프는 관계를 그리는 방법이다
철수가 신발을 샀다는 문장에서 시작해 Property Graph, Semantic Graph, TBox, ABox를 아주 쉽게 설명하는 Notion 학습 노트.
그래프는 관계를 그리는 방법이다
이 글은 그래프 이론 강의가 아니다. 목표는 하나다. 문장을 에이전트가 다시 쓸 수 있는 관계 구조로 바꾸는 감각을 잡는 것.
먼저 한 문장으로
그래프는 어려운 그림이 아니다.
그래프는 누가, 무엇을, 어떻게 했는지를 점과 선으로 그리는 방법이다.
예를 들어보자.
철수가 신발을 샀다.
이 문장에는 세 가지가 있다.
철수
샀다
신발
그래프로 그리면 이렇게 된다.
철수 --샀다--> 신발
이게 전부의 시작이다.
이 페이지에서 가져갈 것
- 그래프는 점과 선으로 관계를 그리는 방법이다.
- triple은
점 하나 + 선 하나 + 점 하나다. - Property Graph는 점과 선에 메모를 붙인 그래프다.
- Semantic Graph는 관계의 뜻과 규칙을 정해 둔 그래프다.
- TBox는 빈 양식이다.
- ABox는 그 양식에 실제로 채운 내용이다.
- 에이전트는 문서를 읽고 ABox를 채울 수 있다.
1. 그래프는 점과 선이다
그래프에는 두 가지가 있다.
점 = 사람, 물건, 회사, 장소 같은 것
선 = 점과 점 사이의 관계
철수는 점이다.
신발도 점이다.
샀다는 두 점을 잇는 선이다.
그래서 이 문장은,
철수가 신발을 샀다.
이렇게 바뀐다.
철수 --샀다--> 신발
이때 조금 더 정식으로 부르면 이렇게 말한다.
subject, predicate, object
주어, 관계, 대상
예시는 이렇게 된다.
철수, 샀다, 신발
이 세 칸짜리 관계를 triple이라고 부른다.
triple = 점 하나, 선 하나, 점 하나
이름은 어렵지만 내용은 단순하다.
2. 왜 문장을 그래프로 바꿀까?
문장으로 두면 사람은 잘 읽는다.
하지만 에이전트가 여러 문서를 계속 이어서 다루려면 문장만으로는 불편하다.
예를 들어 뉴스가 두 개 있다고 하자.
첫 번째 뉴스:
철수가 크록스 A를 샀다.
두 번째 뉴스:
영희가 크록스 A를 팔았다.
사람은 두 문장을 읽고 바로 안다.
아, 크록스 A를 중심으로 철수와 영희가 연결되어 있구나.
그래프로 바꾸면 더 바로 보인다.
철수 --샀다--> 크록스 A
영희 --팔았다--> 크록스 A
문장으로 흩어져 있던 정보가 하나의 관계 그림으로 모인다.
그래서 그래프를 쓴다.
그래프는 흩어진 문장을 연결된 관계로 바꾼다.
3. Property Graph는 메모를 붙인 그래프다
먼저 Property Graph부터 보자.
말은 어렵지만 뜻은 간단하다.
Property Graph = 점과 선에 메모를 붙인 그래프
예를 들어 철수가 크록스 A를 샀다고 하자.
여기에 가격과 날짜도 같이 적고 싶을 수 있다.
철수 --샀다--> 크록스 A
철수:
종류: 사람
크록스 A:
종류: 상품
샀다:
가격: 59,000원
날짜: 2026-07-02
여기서 종류, 가격, 날짜가 메모다.
앱을 만들 때 이런 방식은 편하다.
- 누가 샀는지 찾기 좋다.
- 언제 샀는지 찾기 좋다.
- 얼마에 샀는지 저장하기 좋다.
그래서 Property Graph는 추천 시스템, 구매 이력, 소셜 네트워크, 경로 탐색 같은 곳에 잘 맞는다.
4. Semantic Graph는 뜻을 정해 둔 그래프다
이번에는 Semantic Graph다.
이것도 쉽게 말하면 이렇다.
Semantic Graph = 선의 뜻을 미리 정해 둔 그래프
Property Graph에서는 관계 이름을 시스템마다 다르게 쓸 수 있다.
어떤 곳에서는 샀다라고 쓰고, 다른 곳에서는 구매했다라고 쓰고, 또 다른 곳에서는 매수했다라고 쓸 수 있다.
사람은 셋이 비슷하다는 걸 안다.
하지만 컴퓨터는 그냥 다른 글자로 볼 수 있다.
Semantic Graph는 이 문제를 줄이려고 한다.
예를 들어 이렇게 정한다.
매수했다 = 사람이 물건을 산 관계
매도했다 = 사람이 물건을 판 관계
그러면 에이전트는 관계를 더 안정적으로 읽을 수 있다.
철수, 매수했다, 크록스 A
영희, 매도했다, 크록스 A
그냥 선을 그은 것이 아니다.
이제 매수했다와 매도했다가 무슨 뜻인지 그래프 안에 정해져 있다.
5. TBox는 빈 양식이다
이제 TBox와 ABox로 가보자.
먼저 TBox.
어렵게 들리지만, 이렇게 생각하면 된다.
TBox = 빈 양식
병원에 가면 접수 양식이 있다.
이름:
생년월일:
증상:
이 양식에는 아직 내 이름이 없다.
내 생년월일도 없다.
대신 무엇을 적어야 하는지가 정해져 있다.
TBox도 비슷하다.
매매 관계를 뽑고 싶다면 빈 양식은 이렇게 생길 수 있다.
누가:
무슨 관계로:
무엇을:
조금 더 그래프답게 쓰면 이렇게 된다.
매매한 사람, 매수 또는 매도, 매매한 물건
더 짧게 쓰면 이렇다.
TBox = (매매한 사람, 매수 or 매도, 매매한 물건)
아직 철수도 없고, 영희도 없고, 크록스 A도 없다.
그냥 양식만 있다.
6. ABox는 양식에 실제로 적은 내용이다
이번에는 ABox다.
ABox = 빈 양식에 실제로 채운 내용
아까 TBox가 이런 양식이었다.
매매한 사람, 매수 or 매도, 매매한 물건
이제 에이전트에게 문장을 준다.
철수는 크록스 A를 샀고, 영희는 크록스 A를 팔았다.
그리고 이렇게 시킨다.
이 문장을 읽고 TBox 양식에 맞춰 채워줘.
그러면 에이전트는 이렇게 채운다.
철수, 매수했다, 크록스 A
영희, 매도했다, 크록스 A
이게 ABox다.
다시 말하면 이렇다.
TBox = 어떤 칸이 필요한지 정한 빈 양식
ABox = 그 칸에 실제 값을 채운 결과
7. 에이전트는 이 일을 잘할 수 있다
에이전트에게 그냥 "요약해줘"라고 하면 문장으로 요약한다.
하지만 이렇게 시키면 다르다.
아래 TBox에 맞춰 ABox를 채워줘.
TBox:
- 매매한 사람
- 매수 또는 매도
- 매매한 물건
그러면 에이전트는 문장을 읽고 관계를 뽑는다.
뉴스 문장
↓
에이전트
↓
ABox triple
↓
그래프
이게 중요하다.
에이전트는 문서를 읽고 끝나는 것이 아니라, 다음 작업에서 다시 쓸 수 있는 그래프를 남길 수 있다.
8. 공리는 규칙이다
마지막으로 공리다.
공리라는 말도 어렵다.
여기서는 그냥 규칙이라고 보면 된다.
예를 들어 이런 규칙을 붙일 수 있다.
매수한 주체는 사람이어야 한다.
매수한 대상은 물건이어야 한다.
매도한 주체는 사람이어야 한다.
매도한 대상은 물건이어야 한다.
그러면 이상한 관계를 잡아낼 수 있다.
크록스 A, 매수했다, 철수
모양만 보면 triple이다.
subject, predicate, object
하지만 뜻은 이상하다.
크록스 A가 철수를 산 것처럼 되어 있기 때문이다.
규칙이 없으면 컴퓨터는 이걸 그냥 받아들일 수 있다.
규칙이 있으면 이렇게 말할 수 있다.
잠깐.
매수하는 주체는 사람이어야 하는데,
크록스 A는 물건이잖아.
이 triple은 이상해.
이 지점부터 그래프는 단순한 그림이 아니다.
검사할 수 있고, 추론할 수 있고, 다음 작업에 쓸 수 있는 의미 구조가 된다.
그걸 Semantic Graph라고 부른다.
9. 한 번에 정리하기
그래프:
- 점과 선으로 관계를 그린 것
triple:
- 점 하나, 선 하나, 점 하나
Property Graph:
- 점과 선에 메모를 붙인 그래프
Semantic Graph:
- 관계의 뜻과 규칙을 정해 둔 그래프
TBox:
- 어떤 사실을 받을지 정한 빈 양식
ABox:
- 그 양식에 실제로 채운 내용
공리:
- 맞는 관계와 이상한 관계를 가르는 규칙
10. Notion 페이지용 짧은 설명
그래프는 어렵게 시작할 필요가 없다.
"철수가 신발을 샀다"라는 문장 하나만 보면 된다.
이 문장에는 세 가지가 있다.
철수
샀다
신발
그래프로 그리면 이렇다.
철수 --샀다--> 신발
이 세 칸짜리 관계를 triple이라고 부른다.
Property Graph는 여기에 메모를 붙인다. 철수는 사람, 신발은 상품, 가격은 59,000원, 날짜는 오늘. 앱에서 쓰기 좋다.
Semantic Graph는 한 걸음 더 간다. "샀다"라는 관계가 무슨 뜻인지 정한다. 사는 주체는 사람이어야 하고, 사는 대상은 물건이어야 한다는 식이다.
TBox는 빈 양식이다.
매매한 사람, 매수 or 매도, 매매한 물건
ABox는 그 양식에 실제 문장에서 뽑은 값을 채운 것이다.
철수, 매수했다, 크록스 A
영희, 매도했다, 크록스 A
그래프로 보면 크록스 A를 중심으로 철수와 영희가 연결된다.
여기에 규칙을 붙이면 이상한 관계를 잡아낼 수 있다. 물건이 사람을 샀다고 나오면 틀렸다고 말할 수 있다.
그래서 Semantic Graph는 예쁜 그림이 아니다. 에이전트가 문장을 읽고, 관계를 뽑고, 그 관계가 맞는지 검사하고, 다음 작업에서 다시 쓰게 만드는 구조다.
11. 이어서 쓸 수 있는 글감
- TBox를 잘 만들면 에이전트 추출이 왜 쉬워지는가
- ABox가 쌓이면 어떤 질문을 할 수 있는가
- Property Graph와 Semantic Graph는 언제 각각 쓰는가
- SHACL은 그래프의 맞춤법 검사기다
- 뉴스에서 거래 사건 그래프 자동 추출하기