SPARQL에서 사용되는 쿼리 힌트 DESCRIBE - Amazon Neptune

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

SPARQL에서 사용되는 쿼리 힌트 DESCRIBE

SPARQLDESCRIBE쿼리는 리소스 설명을 요청하는 유연한 메커니즘을 제공합니다. 그러나 SPARQL 사양에는 의 정확한 의미가 정의되어 있지 않습니다. DESCRIBE

엔진 릴리스 1.2.0.2부터 Neptune은 다양한 상황에 적합한 여러 DESCRIBE 모드와 알고리즘을 지원합니다.

이 샘플 데이터 세트는 다양한 모드를 설명하는 데 도움이 될 수 있습니다.

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <https://example.com/> . :JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JohnDoe :firstName "John" . :JaneDoe :knows _:b1 . _:b1 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . :RichardRoe :firstName "Richard" . _:s1 rdf:type rdf:Statement . _:s1 rdf:subject :JaneDoe . _:s1 rdf:predicate :knows . _:s1 rdf:object :JohnDoe . _:s1 :knowsFrom "Berlin" . :ref_s2 rdf:type rdf:Statement . :ref_s2 rdf:subject :JaneDoe . :ref_s2 rdf:predicate :knows . :ref_s2 rdf:object :JohnDoe . :ref_s2 :knowsSince 1988 .

아래 예에서는 다음과 같은 SPARQL 쿼리를 사용하여 리소스에 :JaneDoe 대한 설명을 요청한다고 가정합니다.

DESCRIBE <https://example.com/JaneDoe>

describeModeSPARQL쿼리 힌트

hint:describeModeSPARQL쿼리 힌트는 Neptune에서 지원하는 다음 SPARQL DESCRIBE 모드 중 하나를 선택하는 데 사용됩니다.

모드 ForwardOneStep DESCRIBE

다음과 같이 describeMode 쿼리 힌트를 사용하여 ForwardOneStep 모드를 간접적으로 호출합니다.

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }

ForwardOneStep 모드는 설명할 리소스의 속성과 전달 링크만 반환합니다. 이 예제에서는 다음과 같이 설명할 리소스인 :JaneDoe를 보유한 트리플을 반환합니다.

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .

참고로 DESCRIBE 쿼리는 빈 노드가 있는 트리플을 반환할 수 있습니다. 예를 _:b301990159 들어 입력 데이터셋과 비교할 때 IDs 매번 다른 노드가 반환됩니다.

모드 SymmetricOneStep DESCRIBE

SymmetricOneStep쿼리 힌트를 제공하지 않는 경우의 기본 DESCRIBE 모드입니다. 다음과 같이 describeMode 쿼리 힌트를 사용하여 명시적으로 간접 호출할 수도 있습니다.

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }

SymmetricOneStep 시맨틱에서 DESCRIBE는 설명할 리소스의 속성, 정방향 링크 및 역방향 링크를 반환합니다.

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .

간결한 경계 설명 () 모드 CBD DESCRIBE

간결한 경계 설명(CBD) 모드는 다음과 같은 describeMode 쿼리 힌트를 사용하여 간접적으로 호출됩니다.

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }

CBD 시맨틱에 따라 DESCRIBE는 설명할 리소스의 간결한 경계 설명(W3C에서 정의한 대로)을 반환합니다.

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b285212943 . _:b285212943 :knows :RichardRoe . _:b285213199 rdf:subject :JaneDoe . _:b285213199 rdf:type rdf:Statement . _:b285213199 rdf:predicate :knows . _:b285213199 rdf:object :JohnDoe . _:b285213199 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .

RDF리소스 (즉, RDF 그래프의 노드) 에 대한 간결한 경계 설명은 해당 노드를 중심으로 독립할 수 있는 가장 작은 하위 그래프입니다. 실제로 이는 그래프를 루트로 지정된 노드를 사용하는 트리라고 생각하면 트리에 잎이 있는 것처럼 빈 노드(bnode)가 없다는 의미입니다. bnode는 외부에서 주소를 지정하거나 후속 쿼리에 사용할 수 없으므로, 현재 노드에서 다음 단일 홉을 찾기 위해 그래프를 탐색하는 것만으로는 충분하지 않습니다. 또한 후속 쿼리에 사용할 수 있는 항목(bnode 이외의 항목)을 충분히 찾아내야 합니다.

계산: CBD

소스 RDF 그래프의 특정 노드 (시작 노드 또는 루트) 가 주어지면 해당 노드의 계산은 다음과 같이 계산됩니다. CBD

  1. 문의 주제가 시작 노드인 소스 그래프의 모든 문을 하위 그래프에 포함하세요.

  2. 재귀적으로, 지금까지 빈 노드 객체가 있는 하위 그래프의 모든 문에 대해서는 문의 주제가 빈 노드이고 아직 하위 그래프에 포함되지 않은 소스 그래프의 모든 문을 하위 그래프에 포함합니다.

  3. 지금까지 하위 그래프에 포함된 모든 명령문의 경우, 소스 그래프에 있는 이러한 명령문의 모든 수정에는 각 구체화의 노드부터 CBD 시작하는 부분이 반복적으로 포함됩니다. rdf:Statement

그러면 객체 노드가 IRI 참조 또는 리터럴이거나 빈 노드가 그래프에서 명령문의 주제로 사용되지 않는 하위 그래프가 생성됩니다. 단, 단일 SPARQL SELECT or 쿼리로는 를 계산할 수 CBD 없습니다. CONSTRUCT

대칭적이고 간결한 경계 설명 () 모드 SCBD DESCRIBE

간결한 대칭적 경계 설명(SCBD) 모드는 다음과 같은 describeMode 쿼리 힌트를 사용하여 간접적으로 호출됩니다.

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }

SCBD 시맨틱에 따라 DESCRIBE는 W3C가 VoID 어휘를 사용하여 연결된 데이터 세트 설명에서 정의한 대로 리소스의 간결한 대칭적 경계 설명을 반환합니다.

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b335544591 . _:b335544591 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . _:b335544847 rdf:subject :JaneDoe . _:b335544847 rdf:type rdf:Statement . _:b335544847 rdf:predicate :knows . _:b335544847 rdf:object :JohnDoe . _:b335544847 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .

and ForwardOneStep SymmetricOneStep 모드와 CBD SCBD 비교했을 때 장점은 빈 노드가 항상 해당 표현을 포함하도록 확장된다는 것입니다. 를 사용하여 빈 노드를 쿼리할 수 없기 때문에 이는 중요한 이점일 수 SPARQL 있습니다. 또한, CBD SCBD 모드에서는 리파이케이션도 고려합니다.

참고로 describeMode 쿼리 힌트는 WHERE 절의 일부일 수도 있습니다.

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE ?s WHERE { hint:Query hint:describeMode "CBD" . ?s rdf:type <https://example.com/Person> }

쿼리 describeIterationLimit SPARQL 힌트

hint:describeIterationLimitSPARQL쿼리 힌트는 및 와 같은 반복 알고리즘에 대해 수행할 최대 반복 확장 횟수에 대한 선택적 제약조건을 제공합니다. DESCRIBE CBD SCBD

DESCRIBEANDed한도는 합쳐져 있습니다. 따라서 반복 제한과 명령문 제한을 둘 다 지정하는 경우 DESCRIBE 쿼리를 끊기 전에 두 제한을 모두 충족해야 합니다.

이 값의 기본값은 5입니다. 이 값을 ZERO (0) 으로 설정하여 반복 확장 횟수에 제한을 두지 않도록 지정할 수 있습니다.

쿼리 describeStatementLimit SPARQL 힌트

hint:describeStatementLimitSPARQL쿼리 힌트는 쿼리 응답에 포함될 수 있는 최대 명령문 수에 대한 선택적 제약조건을 제공합니다. DESCRIBE 및 와 같은 반복 DESCRIBE 알고리즘에만 적용됩니다. CBD SCBD

DESCRIBE한계는 ANDed 합쳐져 있습니다. 따라서 반복 제한과 명령문 제한을 둘 다 지정하는 경우 DESCRIBE 쿼리를 끊기 전에 두 제한을 모두 충족해야 합니다.

이 값의 기본값은 5,000입니다. 반환되는 명령문 수에 제한을 두지 않도록 지정하려면 이 값을 ZERO (0) 으로 설정할 수 있습니다.