3

OWL→LPG 매핑 7조

Neo4j 시작하기

학습 목표
  • 개념 설계를 프로퍼티 그래프로 옮기는 규칙을 적용한다
  • 다중 라벨이 주는 이득과 그 대가를 안다

OWL→LPG 매핑 규칙 — 설계도를 공사 언어로

앞 모듈들의 온톨로지는 OWL식 개념 설계(클래스·오브젝트 프로퍼티·데이터 프로퍼티)입니다. Neo4j는 LPG(Labeled Property Graph — 라벨 붙은 노드, 타입 있는 관계, 속성)입니다. 변환 규칙 7조를 확정합니다.

#온톨로지 (OWL식)Neo4j (LPG)예시
1클래스노드 라벨(:Vessel)
2클래스 계층(subClassOf)다중 라벨 (인스턴스에 상위 라벨 병기)(:Container:ReeferContainer)
3인스턴스노드(:Vessel {imoNumber: "9074729"})
4오브젝트 프로퍼티관계 타입-[:MAKES_CALL]->
5데이터 프로퍼티노드/관계 속성{atb: datetime(...)}
6유효기간 있는 사실(패턴 B)관계 속성 {from, to}-[:OPERATES {from, to}]->
7열거형·코드값속성 값 + L2 검증imdgClass: "3"

규칙 2가 실전에서 가장 유용합니다

MATCH (c:Container)는 냉동·위험물 컨테이너를 자동 포함합니다 — 상위 클래스 질의가 공짜입니다.

대신 대가가 있습니다. 라벨 계층 자체는 DB에 없습니다. ReeferContainer가 Container의 하위라는 사실은 Neo4j가 모릅니다. 그래서 스펙 문서가 계층의 유일한 진실 원천입니다. 앞 모듈에서 말한 "코드가 아니라 문서가 온톨로지다"의 LPG판 의미가 이것입니다.

공간·시간 타입

Berth·Port의 position은 point({latitude, longitude})로, 모든 시각은 datetime()(타임존 포함)으로 저장합니다 — 시공간 KG의 재료를 DB 타입 수준에서 확보합니다.

항만은 국제 도메인이므로 저장은 UTC, 표시만 KST로 하는 원칙을 권합니다.

RDF 가 필요해지면

대외 표준 연동(링크드데이터 발행 등)으로 RDF 형태가 필요해지는 시점이 오면 neosemantics(n10s) 플러그인으로 LPG↔RDF 변환 경로를 열 수 있습니다. v1은 LPG 단독으로 갑니다 — 이것도 필요 전 선행 설계 방지입니다.

용어