GraphDB 조회는 출발점 찍기 → 이동 → 읽기 순서로 진행됩니다.
GraphDB에 질문을 던질 때 쓰는 문법은 SPARQL입니다.
RDF 트리플 패턴으로 무엇을 찾을지 적고, SELECT로 어떤 열을 받을지 고릅니다. 아래 데모에서 같은 흐름을 단계 순서대로 따라가 보세요.
GraphDB 조회 데모
(조회 실행을 누르세요 — 출발점 찍기부터 단계가 하나씩 켜집니다)
알람을 출발점으로 관계를 따라가면, 관련 부품의 정비 이력·측정 센서 데이터, 관련 매뉴얼까지 한 조회로 이어집니다.
📝 SPARQL로 표현하면
PREFIX : <http://pp.com/wtg/>
SELECT ?부품 ?발생일 ?진동값 ?매뉴얼주소 ?이력주소 ?센서태그 ?데이터경로
WHERE {
GRAPH <graph:data> {
BIND(:WTG03-0613 AS ?알람)
?알람 a :진동알람 .
?알람 :영향 ?부품 . # 기어박스03 · 베어링03
?부품 :정비이력 ?이력 .
?알람 :측정출처 ?센서 .
?알람 :근거 ?매뉴얼 .
?알람 :발생일 ?발생일 .
?매뉴얼 :문서주소 ?매뉴얼주소 .
?이력 :문서주소 ?이력주소 .
?센서 :진동값 ?진동값 ;
:센서태그 ?센서태그 ;
:데이터경로 ?데이터경로 .
}
}
Text-to-SPARQL — LLM에 넣는 컨텍스트
쿼리는 Text-to-SPARQL로 만들어도, LLM이 우리 그래프 구조를 알아야 맞는 SPARQL이 나옵니다.
- 스키마 요약 — 클래스·관계·데이터 속성 이름 (
:진동알람,:영향,:발생일…) - Named Graph — 조회 대상 서랍 (
graph:data등) - 탐색 범위 — 출발 URI(앵커) + 인근에서 따라갈 수 있는 관계·k홉 상한
결과적으로 이 컨텍스트들은 LLM이 복잡한 지식 그래프 안에서 길을 잃지 않도록 돕는 나침반 역할을 합니다. 스키마와 탐색 범위를 명확히 제한할수록 자연어 질의를 고도로 정제된 SPARQL 쿼리로 변환하는 성공률이 비약적으로 상승합니다.