

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

# 기본 그래프와 관련된 SPARQL DESCRIBE 동작
<a name="sparql-default-describe"></a>

SPARQL [https://www.w3.org/TR/sparql11-query/#describe](https://www.w3.org/TR/sparql11-query/#describe) 쿼리 양식을 사용하면 데이터 구조를 알거나 쿼리를 작성할 필요 없이 리소스에 대한 정보를 검색할 수 있습니다. 이 정보를 조합하는 방법은 SPARQL 구현에 달려 있습니다. Neptune은 `DESCRIBE`가 사용할 수 있는 다양한 모드와 알고리즘을 간접적으로 호출하는 [몇 가지 쿼리 힌트](sparql-query-hints-for-describe.md)를 제공합니다.

Neptune 구현에서 `DESCRIBE`은 모드에 관계없이 [SPARQL 기본 그래프](feature-sparql-compliance.md#sparql-default-graph)에 존재하는 데이터만 사용합니다. 이는 SPARQL이 데이터 세트를 처리하는 방식과 일치합니다(SPARQL 사양에 [RDF 데이터 세트 지정](https://www.w3.org/TR/sparql11-query/#specifyingDataset) 참조).

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

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

## SPARQL `DESCRIBE` 예제
<a name="sparql-default-describe-examples"></a>

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

```
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` 절이 있으면 기본 그래프가 비어 있기 때문입니다.

다음 쿼리에서 `DESCRIBE`는 `FROM` 또는 `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" .
```