[[Labeled Property Graph (LPG, 속성 그래프)|Labeled Property Graph (LPG, 속성 그래프)]]

📌 Brief Summary

LPG(Labeled Property Graph)는 노드와 엣지에 라벨(Label)과 Key-Value 형태의 속성(Property)을 직접 저장할 수 있는 그래프 데이터 모델이다. RDF의 트리플 분해 방식과 달리, 엣지 자체에 속성 부여가 가능하여 덜 장황하고 실시간 경로 탐색에 최적화되어 있다.

---

📖 Core Content

## 1. RDF 트리플 vs LPG 구조 비교

| 구분 | RDF 트리플 | LPG (속성 그래프) |
|------|-----------|----------------|
| **데이터 모델** | 의미론 중심 (주어-서술어-목적어) | 인스턴스(데이터) 중심 |
| **식별 방식** | 글로벌 IRI (URI) | 로컬 ID + 라벨 |
| **엣지 속성 부여** | ❌ 중간 노드 추가 생성 필요 (장황) | ✅ 엣지에 Key-Value 직접 부여 |
| **상호운용성** | 높음 (표준화, Linked Data) | 낮음 (시스템 종속성 있음) |
| **쿼리 성능** | 대규모 추론에 강점 | 실시간 경로 탐색·패턴 매칭에 강점 |

---

## 2. Key-Value 속성 직접 부여 메커니즘

```
[RDF 방식] "홍길동--나이-->35" 표현 시:
  <홍길동> <나이> "35"^^xsd:integer  ← 트리플 3개 필요

[LPG 방식] 노드·엣지에 직접:
  (홍길동 {나이: 35, 직업: "의사"})
       --[:치료했다 {날짜: "2026-04-15", 성공여부: true}]-->
  (김환자 {나이: 50})
```

→ **설계 의도**: 화이트보드에 그린 논리적 구조 = 물리적 저장 구조 (Isomorphic). 중간 노드 생성 없이 자연스러운 데이터 모델링 가능.

---

## 3. Neo4j 구현 방식 핵심

- **네이티브 속성 그래프**: 논리적 모델 = 물리적 스토리지 모델 (1:1 대응).
- **인덱스 없는 인접성 (Index-free Adjacency)**: 각 노드가 인접 노드의 직접 포인터를 보유 → 전체 DB 스캔 없이 연결 노드로 즉시 이동.
- **쿼리 비용**: 전체 데이터 크기가 아닌 **실제 탐색하는 하위 그래프 크기에만 비례** → 대규모 데이터에서도 실시간 응답.

---

## 4. Cypher 질의 언어 기초

```cypher
-- 보안 위협 탐색 예제
MATCH (t:Threat)-[:EXPLOITS]->(v:Vulnerability)
WHERE v.severity = "Critical"
RETURN t.label, v.cveID, v.severity
ORDER BY v.severity DESC
LIMIT 10
```

- **특징**: ASCII 아트 스타일 패턴 매칭 → 직관적이고 시각적.
- **중점**: 논리적 추론보다 그래프 패턴 탐색(Pattern Matching)에 특화.
- **SQL 비교**: SPARQL보다 경로 탐색 표현이 더 자연스러움.

---

## 5. 실제 성능 벤치마크 수치

| 환경 | 그래프 규모 | 홉(Hop) 수 | 응답 시간 |
|------|-----------|-----------|---------|
| Neo4j 네이티브 그래프 | **수십억 개** 엣지 | **6-hop** 복잡 순회 질의 | **3초 이내** |

---

## 6. 인과관계 연쇄

```
LPG 엣지 속성 직접 부여 설계
        ↓
중간 노드 생성 불필요 → 데이터 모델 간결화
        ↓
+ Index-free Adjacency 아키텍처
        ↓
Join 연산 성능 병목 원천 제거
        ↓
탐색 비용 = 전체 DB 크기 독립 → 하위 그래프 크기에만 비례
        ↓
수십억 엣지, 6-hop 쿼리도 3초 이내 실시간 응답
```

---

🔗 Knowledge Connections

- **Related Topics:** [[RDF와 OWL|RDF와 OWL]], [[지식 그래프 (Knowledge Graph)|지식 그래프 (Knowledge Graph)]], [[GraphRAG (그래프 기반 검색 증강 생성)|GraphRAG (그래프 기반 검색 증강 생성)]], [[SPARQL (RDF 그래프 질의 언어)|SPARQL (RDF 그래프 질의 언어)]], Cypher 질의 언어, Neo4j, Index-free Adjacency, [[RDF-star (RDF 확장 사양)|RDF-star (RDF*)]]
- **Projects/Contexts:** [[온톨로지 지식 베이스|온톨로지 지식 베이스]], 실시간 그래프 분석 시스템
- **Contradictions/Notes:**
  - LPG(Neo4j)는 성능·유연성 우위, RDF는 표준·상호운용성 우위 → 도메인에 따라 선택.
  - RDF-star가 등장하면서 RDF도 엣지 속성 부여 가능해짐 → LPG 고유 장점 경계가 좁아지는 추세.
  - **신규 키워드**: `Cypher 질의 언어`, `Index-free Adjacency` → 탐색 큐에 추가.
