728x90
반응형
  • 지식 그래프

Neo4j의 Create Context Graph는 범용 시작 스키마와 함께 제공됩니다. 5가지 노드 유형으로 시작하는 것이 처음부터 시작하는 것보다 효과적인 이유는 다음과 같습니다.

create-context-graph 홈페이지의 이미지()

빈 캔버스 문제

모든 지식 그래프 프로젝트는 같은 방식으로 시작됩니다. 누군가 화이트보드를 열고 묻습니다. “그럼… 우리 엔터티는 무엇인가요?” 다음은 '회의'가 노드인지 관계인지, '위치'가 고유한 유형을 가질 자격이 있는지 아니면 단순한 속성인지, 스키마가 소스 데이터베이스를 미러링해야 하는지 또는 일부 이상적인 도메인 모델을 나타내야 하는지에 대한 며칠 간의 토론입니다.

문제는 도메인 지식이 부족해서가 아닙니다. 도메인을 모델링하는 유효한 방법이 너무 많고 시작할 앵커가 없다는 것입니다. 모든 옵션이 합리적으로 보입니다. 그 중 어느 것도 분명히 잘못된 것은 없습니다. 따라서 논쟁은 반복됩니다.

이를 해결해주는 앵커가 있습니다. 수십 년 동안 지능 분석에 사용되어 왔으며 Neo4j는 이를 사용하기 쉽게 만들었습니다.

실제로 POLE+O가 무엇인가요?

Neo4j Labs는 최근 그래프 기반 메모리로 풀 스택 AI 에이전트 애플리케이션을 스캐폴드하는 CLI 도구인 Create Context Graph를 출시했습니다. 도구는 흥미롭지만 프로젝트에서 가장 재사용 가능한 것은 CLI가 아닙니다. 아래의 온톨로지입니다.

POLE+O는 5가지 기본 엔터티 유형을 정의합니다.

유형 다루는 내용 예
Person         Any human entity              Patient, employee, developer
Organization   Groups and companies          Hospital, startup, team
Location       Places, physical or logical   Office, region, facilicy
Event          Things that happen            Sprint, transaction, incident
Object         Everything else               Document, product, file

이 이름은 법 집행 기관 및 정보 분석에서 유래되었으며 POLE(Person, Organization, Location, Event)은 기관 전체에 걸쳐 서로 다른 데이터를 연결하기 위해 수십 년 동안 사용되었습니다. "+O"는 Object로 확장하여 나머지 세계를 포괄합니다. 항목이 처음 4개에 맞지 않으면 개체입니다.

당신의 실체가 다섯 가지 중 어느 하나에도 해당하지 않는다면, 축하합니다. 당신은 여섯 번째 존재 범주를 발견한 것입니다. 듣고 싶습니다. 댓글을 남겨주세요!

실제 도메인 매핑

POLE+O의 힘은 5가지 유형 그 자체가 아닙니다. 이것이 Neo4j의 다중 레이블 시스템을 사용하여 도메인별 유형을 계층화하는 방법입니다.

의료 분야에서는:

CREATE (:Person:Patient {name: 'Jan Kowalski', dob: '1985-03-15'})
CREATE (:Person:Provider {name: 'Dr. Nowak', specialty: 'Cardiology'})
CREATE (:Event:Diagnosis {code: 'I25.1', date: '2026-05-10'})
CREATE (:Object:Prescription {drug: 'Aspirin', dosage: '100mg'})

소프트웨어 엔지니어링 도메인에서:

CREATE (:Person:Developer {name: 'Alice', github: 'alice-dev'})
CREATE (:Organization:Team {name: 'Platform'})
CREATE (:Event:Sprint {number: 42, start: '2026-05-13'})
CREATE (:Object:Issue {key: 'PLAT-1234', status: 'In Progress'})

다음 패턴을 확인하세요. :Person:Patient, :Event:Sprint, :Object:Issue. 기본 유형은 항상 존재합니다. 도메인 유형은 특이성을 추가합니다.

이는 플랫 스키마로는 얻을 수 없는 두 가지를 제공합니다.

첫째, 언제든지 기본 수준에서 쿼리할 수 있습니다.

MATCH (e:Event)
WHERE e.date > date() - duration('P30D')
RETURN labels(e) AS types, e.name, e.date
ORDER BY e.date DESC

그러면 어떤 도메인에서 왔는지에 상관없이 지난 30일 동안의 모든 이벤트(스프린트, 진단, 사고, 거래)가 반환됩니다.

둘째, 여러 소스의 데이터를 연결하면 엔터티가 기본 수준에서 자동으로 통합됩니다. HR 시스템의 A:Person과 프로젝트 트래커의:Person은 이미 동일한 버킷에 있습니다. 이메일이나 ID로 일치시키면 마이그레이션이 아닌 병합이 됩니다.

처음부터 시작하는 것이 더 나은 이유

POLE+O는 모든 모델링 질문에 답하지 않습니다. 하지만 첫 번째 항목인 "내 최상위 카테고리는 무엇인가요?"에 대한 답변입니다.

그 질문은 믿을 수 없을 정도로 비쌉니다. 오답은 없고 절충안만 있기 때문에 팀은 이에 대해 며칠을 소비합니다. POLE+O는 여러 도메인에 걸쳐 작동하는 분류를 제공하여 논쟁을 건너뜁니다. 완벽해서가 아니라, 왜냐면.

그리고 시작이 중요합니다. 첫 주에 쿼리할 수 있는 지식 그래프는 한 달 동안 토론해 온 스키마보다 도메인에 대해 더 많은 것을 알려줍니다.

실제 데이터에 대해 Cypher 쿼리를 작성하기 시작하면 모델이 자체적으로 수정됩니다. "회의"는 관계가 아니라 이벤트여야 합니다. 참가자, 장소, 결과를 첨부해야 하기 때문입니다. 쿼리를 통해 알 수 있습니다.

POLE+O를 사용하면 그 순간에 더 빨리 도달할 수 있습니다.

POLE+O가 적합한 곳과 그렇지 않은 곳

좋은 핏:

  • 의료, 물류, 소프트웨어 엔지니어링, 법률 등 구체적인 실제 개체가 포함된 도메인. 사람, 장소, 조직 및 일어나는 일 — POLE+O는 자연스럽게 매핑됩니다.
  • 다중 소스 통합: 서로 다른 시스템의 데이터를 병합할 때 공유 기본 유형이 자동 통합 지점을 제공합니다.
  • 신속한 프로토타이핑: 몇 주가 아닌 며칠 안에 쿼리 가능한 그래프가 필요한 경우

덜 확실한 적합성:

  • 추상적이거나 개념적인 영역: 금융 상품, 비즈니스 규칙, 정책, 수학적 모델. 이는 사람/조직/위치/이벤트에 명확하게 매핑되지 않는 경우가 많습니다. 개체는 모든 것을 담는 포괄 개체가 되고, 모든 것을 담는 포괄 개체는 아무것도 포함하지 않습니다.
  • 깊은 계층적 도메인: 엔터티에 4개 이상의 유형 상속 수준이 필요한 경우 POLE+O의 플랫 5개 유형 레이어가 너무 얇아 보일 수 있습니다. 어쨌든 대부분의 모델링 작업은 도메인 레이어에서 수행하게 됩니다.
  • RDF/OWL 환경: POLE+O는 속성 그래프 패턴입니다. 조직에서 이미 공식 온톨로지(SNOMED, ​​FIBO, Schema.org)를 사용하는 경우 POLE+O를 맨 위에 계층화하면 기존 상위 온톨로지와 충돌할 수 있는 분류 시스템이 추가됩니다.

정직한 견해: POLE+O는 완전한 온톨로지가 아니라 시작 프레임워크입니다. 이는 빈 캔버스 문제를 방지하고 추진력을 제공합니다. 하지만 관계, 카디널리티, 시간적 패턴을 정의하는 실제 모델링 작업은 버킷 5개를 선택한 후에도 계속 발생합니다.

그래프 스키마 설계를 돕기 위해 LLM을 사용하는 경우 POLE+O는 앵커로 잘 작동합니다. 이는 귀하와 모델 모두에게 빈 페이지 대신 프레임워크를 제공합니다. 대화는 '온톨로지 발명'에서 '내 도메인에 맞게 이 POLE+O 모델을 개선'으로 이동합니다.

세 가지 메모리 유형 — 동일한 온톨로지에 구축됨

컨텍스트 그래프 만들기는 정적 데이터에만 POLE+O를 사용하지 않습니다. 그 위에 3계층 메모리 아키텍처를 구축합니다.

  1. — 대화 기록, 현재 세션 컨텍스트
  2. — POLE+O 지식 그래프로 모델링된 지속적인 엔터티 관계
  3. — 상담사가 그런 일을 한 이유를 포착하는 결정 추적

추론 기억은 살펴볼 가치가 있습니다. 에이전트가 결정을 내리면:TraceStep 노드 에 연결된:DecisionTrace 노드가 생성됩니다. 각 노드는 생각, 행동, 관찰을 기록합니다.

MATCH (p:Patient {name: 'Jan Kowalski'})-[:RECEIVED]->(t:Treatment)
      -[:DECIDED_BY]->(d:DecisionTrace)-[:HAS_STEP]->(s:TraceStep)
RETURN s.thought, s.action, s.observation
ORDER BY s.order

벡터 저장소에서는 추론 체인을 탐색할 수 없습니다. 그래프로 볼 수 있습니다. "벡터 스토어는 기억력을 제공하고 그래프는 이해력을 제공합니다"는 Neo4j 팀의 대사이며 이 아키텍처는 이를 구체적으로 만듭니다.

직접 사용해 보세요

아무것도 설치하지 않고 POLE+O를 실험하고 싶다면 Neo4j Aura 무료 인스턴스를 잡고 수동으로 작은 그래프를 만드십시오.

CREATE (p:Person {name: 'You'})
CREATE (o:Organization {name: 'Your Company'})
CREATE (l:Location {name: 'Your Office'})
CREATE (e:Event {name: 'First Graph Model', date: date()})
CREATE (obj:Object {name: 'This Article'})

CREATE (p)-[:WORKS_AT]->(o)
CREATE (o)-[:LOCATED_IN]->(l)
CREATE (p)-[:PARTICIPATED_IN]->(e)
CREATE (e)-[:PRODUCED]->(obj)

그런 다음 자신의 도메인을 매핑하세요. 현재 프로젝트에서 엔터티 10개를 가져와 각 엔터티를 P, O, L, E 또는 O로 분류합니다. 도메인 라벨을 추가합니다. 쿼리를 시작하세요. 모델은 진화할 것입니다. 그게 요점입니다.

완전한 스캐폴드 경험을 위해 Create Context Graph는 27개의 도메인을 지원하고 일반 영어로 맞춤 도메인을 설명할 수도 있습니다.

자원

  • 컨텍스트 그래프 만들기 — GitHub
  • 컨텍스트 그래프 만들기 — 홈페이지
  • 컨텍스트 그래프 생성 소개 — Neo4j 개발자 블로그
  • Neo4j 그래프 데이터 모델링 — GraphAcademy

  • 데이터 모델링
  • 지식 그래프

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts