[[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` → 탐색 큐에 추가.