A Compositional Language for Property Graphs
이 논문은 표준 그래프 질의 언어인 GQL과 SQL/PGQ의 구성성 결여 문제를 해결하기 위해, 표현력의 격차를 메우고 새로운 그래프 요소를 구축할 수 있도록 정규 경로 질의와 완전히 구성적인 그래프 대 그래프 #Datalog 확장을 결합한 새로운 구성적 언어를 제안함으로써 이를 다룬다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 지도를 사용하여 친구에게 길을 안내한다고 상상해 보세요. 데이터의 세계에서 이 지도는 **프로퍼티 그래프(Property Graph)**라고 불립니다. 이것은 점(사람, 계좌, 제품)과 선(관계, 이체, 연결)으로 이루어진 네트워크이며, 모든 점과 선에는 "잔액"이나 "타임스탬프"와 같은 작은 메모가 붙을 수 있습니다.
최근, 이 지도에 대해 질문을 던지기 위한 두 가지 새로운 공식 규칙 책인 GQL과 SQL/PGQ가 만들어졌습니다. 이것들을 데이터의 경로를 탐색하기 위한 "교통 법규"라고 생각하면 됩니다. 이 논문의 저자들은 이 새로운 규칙 책들에 중대한 결함이 있다고 주장합니다. 바로 **구성성(compositionality)**이 부족하다는 점입니다.
문제점: "끊어진 사슬"
"구성성"을 이해하기 위해, 당신이 종이 클립으로 사슬을 만든다고 상상해 보세요.
- 구성적(Compositional): 완성된 사슬을 가져와서 마지막 고리를 확인한 뒤, 즉시 다음 고리를 그곳에 연결할 수 있습니다. 전체가 연결된 상태를 유지합니다.
- 비구성적(Non-Compositional - 현재의 문제): 현재의 규칙 책에서는 연결의 사슬을 만들고 나서 그 끝에 또 다른 고리를 추가하려고 하면, 시스템이 이전 링크들의 세부 정보를 잊어버립니다. 이는 마치 사슬을 만들고 있는데, 새로운 고리를 추가할 때마다 시스템이 이전의 것을 떨어뜨리고 백지상태에서 다시 시작하는 것과 같습니다.
실제 사례:
논문은 은행 예시를 제시합니다.
- 쉬운 쿼리: "두 은행 계좌 사이에서 돈이 매번 증가하며 이체되는 경우를 찾아라." 현재의 규칙 책들은 이를 쉽게 수행할 수 있습니다.
- 어려운 쿼리: "이체되는 시간이 매 단계마다 증가하는 두 은행 계좌를 찾아라."
- 11:00, 12:00, 1:00, 2:00에 일어나는 이체의 사슬을 상상해 보세요.
- 현재의 규칙 책들은 여기서 실패합니다. 왜일까요? 다음 이체의 시간을 확인하려고 할 때, 시스템이 이전 이체의 시간을 기억하지 못하기 때문입니다. 전체적으로 증가하는 타임라인을 보기 위해 단계들을 하나로 "풀칠"하여 연결할 수 없는 것입니다.
이것은 이상한 일입니다. 왜냐하면 이 규칙 책들은 거의 모든 논리적 퍼즐을 해결할 수 있을 만큼 강력해야 하기 때문입니다(수학적으로, 이들은 "NLOGSPACE" 문제를 처리할 수 있어야 합니다). 하지만 이 간단한 "증가하는 시간" 퍼즐 앞에서 무너집니다.
해결책: 두 가지 새로운 도구
저자들은 이 끊어진 사슬을 고치기 위해 두 가지 새로운 도구를 제안합니다. 이것을 더 나은 가위와 새로운 종류의 풀이라고 생각하세요.
도구 1: "대칭 경로" (RPQVs)
현재의 규칙 책들은 노드(Nodes)(점)와 엣지(Edges)(선)를 다르게 취급합니다. 이는 마치 당신이 점 위에서만 밟고 지나갈 수 있고, 점들 사이의 선은 보이지 않거나 이상하게 작동하는 게임과 같습니다.
- 해결책: 저자들은 점과 선을 동등하게 취급하는 새로운 방식의 경로 작성을 제안합니다. 당신은 선에서 시작하여 선에서 끝날 수 있으며, 시스템은 모든 단계(시간이나 금액 같은 세부 사항 포함)를 기억하며 정보를 놓치지 않습니다.
- 비유: 섬에서 섬으로 점프하면서 방금 건넌 다리를 잊어버리는 게임 대신, 이 새로운 도구는 당신이 매 걸음의 기록을 담은 일지를 들고 다리를 건널 수 있게 해줍니다.
도구 2: "그래프 빌더" (#Datalog)
때로는 질문의 답이 단순히 경로를 찾는 것이 아니라, 기존의 지도를 바탕으로 새로운 지도를 만드는 것일 수도 있습니다.
- 해결책: 저자들은 #Datalog라는 언어를 도입합니다. 이것은 쿼리의 결과를 가져와서 지도 위에 완전히 새로운 점과 선을 만들 수 있게 해줍니다.
- 비유: 당신이 도시의 지도를 가지고 있다고 상상해 보세요. 교통량이 증가하는 모든 거리를 찾아냈습니다. 단순히 목록을 만드는 대신, #Datalog를 사용하면 그 거리들을 이용해 이들을 연결하는 새로운 고속도로를 물리적으로 건설할 수 있습니다. 그런 다음 이 새로운 고속도로에 대해 질문할 수 있습니다.
- 이것은 피드백 루프를 만듭니다: 지도를 쿼리함 새로운 부분의 지도를 구축함 그 새로운 부분을 쿼리함. 현재의 규칙 책들은 새로운 부분을 구축할 수는 없고, 오직 기존의 것을 들여다볼 수만 있습니다.
결과: 완전한 도구 모음
이 두 가지 도구를 결려함으로써, 저자들은 컴퓨터가 합리적으로 해결할 수 있는 모든 논리적 질문을 드디어 던질 수 있음을 보여줍니다. 복잡하고 느린 우회 방법을 사용하여 컴퓨터를 멈추게 할 필요도 없습니다.
그들은 이 기능들을 공식적인 GQL 및 SQL/PGQ 표준에 추가할 것을 제안합니다.
- 하위 호환성: 이 새로운 도구들을 추가하는 것이 기존의 쿼리를 망가뜨리지 않을 것임을 약속합니다. 이는 고속도로에 새로운 차선을 추가하는 것과 같습니다. 기존의 차들도 기존 차선에서 계속 달릴 수 있지만, 이제 복잡한 여행을 위한 빠른 차선이 생기는 것입니다.
- 목표: 데이터 그래프에 대한 규칙 책이 사기 탐지, 공급망, 금융 분석 등에 필요한 복잡한 추론을 처리할 수 있도록 논리적이고 일관되며 강력하게 만드는 것입니다.
요약하자면, 이 논문은 다음과 같이 말합니다: "데이터 그래프를 위한 새로운 규칙 책에는 과거를 잊게 만드는 핵심적인 논리가 빠져 있습니다. 우리는 시스템이 여정 전체를 기억하고 운전하는 동안에도 새로운 도로를 건설할 수 있게 하는 단순하고 우아한 해결책을 설계했으며, 이를 통해 이 언어를 완전하고 미래를 대비할 수 있게 만들었습니다."
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.