Amazon Neptune에서 SPARQL 1.1 그래프 스토어 HTTP 프로토콜(GSP) 사용 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Neptune에서 SPARQL 1.1 그래프 스토어 HTTP 프로토콜(GSP) 사용

SPARQL 1.1 Graph Store HTTP 프로토콜 권장 사항에서 W3C는 RDF 그래프를 관리하기 위한 HTTP 프로토콜을 정의했습니다. 그래프 RDF 콘텐츠를 제거, 생성 및 교체하고 기존 콘텐츠에 RDF 문을 추가하는 작업을 정의합니다.

그래프 저장소 프로토콜(GSP)은 복잡한 SPARQL 쿼리를 작성할 필요 없이 전체 그래프를 조작할 수 있는 편리한 방법을 제공합니다.

릴리스: 1.0.5.0(2021년 7월 27일)을 기준으로 Neptune은 이 프로토콜을 완전히 지원합니다.

그래프 저장소 프로토콜(GSP)의 엔드포인트는 다음과 같습니다.

https://your-neptune-cluster:port/sparql/gsp/

를 사용하여 기본 그래프에 액세스하려면 다음을 GSP사용합니다.

https://your-neptune-cluster:port/sparql/gsp/?default

를 사용하여 명명된 그래프에 액세스하려면 다음을 GSP사용합니다.

https://your-neptune-cluster:port/sparql/gsp/?graph=named-graph-URI

Neptune GSP 구현에 대한 특별 세부 정보

Neptune은 를 정의하는 W3C 권장 사항을 완전히 구현합니다GSP. 하지만 사양에서 다루지 않는 몇 가지 상황이 있습니다.

이 중 하나는 PUT 또는 POST 요청이 요청 본문에서 요청 에 지정된 그래프와 다른 하나 이상의 명명된 그래프를 지정하는 경우입니다URL. 이는 요청 본문 RDF 형식이 명명된 그래프를 지원하는 경우에만 발생할 수 있습니다. 예를 들어 Content-Type: application/n-quads 또는 를 사용하는 경우입니다Content-Type: application/trig.

이 경우 Neptune은 본문에 있는 모든 명명된 그래프와 에 지정된 명명된 그래프를 추가하거나 업데이트합니다URL.

예를 들어, 빈 데이터베이스에서 시작하여 투표를 3개의 그래프로 정리해 달라는 PUT 요청을 보낸다고 가정해 보겠습니다. urn:votes라는 이름의 1개에는 모든 선거 연도의 모든 투표가 포함되어 있습니다. urn:votes:2005urn:votes:2019라는 이름의 다른 2개에는 특정 선거 연도의 투표가 포함되어 있습니다. 요청과 페이로드는 다음과 같습니다.

PUT "http://your-Neptune-cluster:port/sparql/gsp/?graph=urn:votes" Host: example.com Content-Type: application/n-quads PAYLOAD: <urn:JohnDoe> <urn:votedFor> <urn:Labour> <urn:votes:2005> <urn:JohnDoe> <urn:votedFor> <urn:Conservative> <urn:votes:2019> <urn:JaneSmith> <urn:votedFor> <urn:LiberalDemocrats> <urn:votes:2005> <urn:JaneSmith> <urn:votedFor> <urn:Conservative> <urn:votes:2019>

요청이 실행된 후 데이터베이스의 데이터는 다음과 같습니다.

<urn:JohnDoe> <urn:votedFor> <urn:Labour> <urn:votes:2005> <urn:JohnDoe> <urn:votedFor> <urn:Conservative> <urn:votes:2019> <urn:JaneSmith> <urn:votedFor> <urn:LiberalDemocrats> <urn:votes:2005> <urn:JaneSmith> <urn:votedFor> <urn:Conservative> <urn:votes:2019> <urn:JohnDoe> <urn:votedFor> <urn:Labour> <urn:votes> <urn:JohnDoe> <urn:votedFor> <urn:Conservative> <urn:votes> <urn:JaneSmith> <urn:votedFor> <urn:LiberalDemocrats> <urn:votes> <urn:JaneSmith> <urn:votedFor> <urn:Conservative> <urn:votes>

또 다른 모호한 상황은 , PUT POST GET 또는 중 하나를 사용하여 요청 URL 자체에 둘 이상의 그래프가 지정되는 경우입니다DELETE. 예:

POST "http://your-Neptune-cluster:port/sparql/gsp/?graph=urn:votes:2005&graph=urn:votes:2019"

또는 다음과 같습니다.

GET "http://your-Neptune-cluster:port/sparql/gsp/?default&graph=urn:votes:2019"

이 경우 Neptune은 요청 HTTP 에 그래프를 하나만 지정할 수 있음을 나타내는 메시지와 함께 400을 반환합니다URL.