SPARQLDESCRIBE디폴트 그래프와 관련된 동작 - Amazon Neptune

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

SPARQLDESCRIBE디폴트 그래프와 관련된 동작

SPARQLDESCRIBE쿼리 양식을 사용하면 데이터 구조를 모르거나 쿼리를 작성할 필요 없이 리소스에 대한 정보를 검색할 수 있습니다. 이 정보를 취합하는 방법은 SPARQL 구현에 달려 있습니다. Neptune은 DESCRIBE가 사용할 수 있는 다양한 모드와 알고리즘을 간접적으로 호출하는 몇 가지 쿼리 힌트를 제공합니다.

Neptune 구현에서는 모드에 관계없이 SPARQL기본 그래프에 있는 DESCRIBE 데이터만 사용합니다. 이는 데이터세트를 SPARQL 처리하는 방식과 일치합니다 (사양에서 RDF데이터세트 지정 참조). SPARQL

Neptune에서 기본 그래프에는 FROM 및/또는 FROM NAMED 절을 사용하여 명명된 특정 그래프를 지정하지 않는 한 데이터베이스 내 명명된 전체 그래프의 조합에 있는 모든 고유 트리플이 포함됩니다. Neptune의 모든 RDF 데이터는 명명된 그래프에 저장됩니다. 이름이 지정된 그래프 컨텍스트 없이 트리플이 삽입되면 Neptune은 http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph로 지정된 명명 그래프에 트리플을 저장합니다.

FROM 절을 사용하여 명명된 그래프를 하나 이상 지정하는 경우 기본 그래프는 명명된 그래프에 있는 모든 고유한 트리플의 조합이 됩니다. FROM 절이 없고 FROM NAMED 절이 하나 이상 있는 경우 기본 그래프는 비어 있습니다.

SPARQLDESCRIBE예시

다음 데이터를 고려하세요.

PREFIX ex: <https://example.com/> GRAPH ex:g1 { ex:s ex:p1 "a" . ex:s ex:p2 "c" . } GRAPH ex:g2 { ex:s ex:p3 "b" . ex:s ex:p2 "c" . } ex:s ex:p3 "d" .

이 쿼리의 경우는 다음과 같습니다.

PREFIX ex: <https://example.com/> DESCRIBE ?s FROM ex:g1 FROM NAMED ex:g2 WHERE { GRAPH ex:g2 { ?s ?p "b" . } }

Neptune은 다음을 반환합니다.

ex:s ex:p1 "a" . ex:s ex:p2 "c" .

여기서는 GRAPH ex:g2 { ?s ?p "b" } 그래프 패턴을 먼저 평가하여 ?s에 대한 바인딩을 생성한 다음, DESCRIBE 부분은 기본 그래프를 통해 평가됩니다(현재는 ex:g1임),

하지만 이 쿼리의 경우는 다음과 같습니다.

PREFIX ex: <https://example.com/> DESCRIBE ?s FROM NAMED ex:g1 WHERE { GRAPH ex:g1 { ?s ?p "a" . } }

Neptune은 아무것도 반환하지 않습니다. FROM 절이 없는 FROM NAMED 절이 있으면 기본 그래프가 비어 있기 때문입니다.

다음 쿼리에서 DESCRIBEFROM 또는 FROM NAMED 절이 없는 상태로 사용됩니다.

PREFIX ex: <https://example.com/> DESCRIBE ?s WHERE { GRAPH ex:g1 { ?s ?p "a" . } }

이 경우 디폴트 그래프는 데이터베이스의 모든 명명된 그래프를 합친 모든 고유 트리플로 구성되므로 (형식적으로는 RDF 병합) Neptune은 다음을 반환합니다.

ex:s ex:p1 "a" . ex:s ex:p2 "c" . ex:s ex:p3 "b" . ex:s ex:p3 "d" .