

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Comportamento do SPARQL DESCRIBE em relação ao grafo padrão
<a name="sparql-default-describe"></a>

O formato da consulta [https://www.w3.org/TR/sparql11-query/#describe](https://www.w3.org/TR/sparql11-query/#describe) SPARQL permite que você recupere informações sobre recursos sem conhecer a estrutura dos dados e sem precisar compor uma consulta. A forma como essas informações são reunidas é deixada para a implementação do SPARQL. O Neptune fornece [várias dicas de consulta](sparql-query-hints-for-describe.md) que invocam diferentes modos e algoritmos para `DESCRIBE` usar.

Na implementação do Neptune, independentemente do modo, `DESCRIBE` usa apenas dados presentes no [grafo padrão do SPARQL](feature-sparql-compliance.md#sparql-default-graph). Isso é consistente com a forma como o SPARQL trata os conjuntos de dados (consulte [Specifying RDF Datasets](https://www.w3.org/TR/sparql11-query/#specifyingDataset) na especificação do SPARQL).

Em Neptune, o gráfico padrão contém todos os triplos exclusivos na união de todos os gráficos nomeados no banco de dados, a menos que gráficos nomeados específicos sejam especificados usando cláusulas. `FROM` and/or `FROM NAMED` Todos os dados do RDF no Neptune são armazenados em um grafo nomeado. Se um triplo for inserido sem um contexto de grafo nomeado, o Neptune o armazenará em um grafo nomeado designado `http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph`.

Quando um ou mais grafos nomeados são especificados usando a cláusula `FROM`, o grafo padrão é a união de todos os triplos exclusivos nesses grafos nomeados. Se não houver nenhuma cláusula `FROM` e houver uma ou mais cláusulas `FROM NAMED`, o grafo padrão estará em branco.

## Exemplos de `DESCRIBE` do SPARQL
<a name="sparql-default-describe-examples"></a>

Pense nos seguintes dados:

```
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" .
```

Para essa consulta:

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

O Neptune geraria:

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

Aqui, o padrão do grafo `GRAPH ex:g2 { ?s ?p "b" }` é avaliado primeiro, gerando vinculações para `?s` e, depois, a parte `DESCRIBE` é avaliada sobre o grafo padrão, que agora é apenas `ex:g1`.

No entanto, para essa consulta:

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

O Neptune não geraria nada, porque quando uma cláusula `FROM NAMED` está presente sem nenhuma cláusula `FROM`, o grafo padrão está em branco.

Na seguinte consulta, `DESCRIBE` é usado sem as cláusulas `FROM` ou `FROM NAMED`presentes:

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

Nessa situação, o grafo padrão é composto por todos os triplos exclusivos na união de todos os grafos nomeados no banco de dados (formalmente, a mesclagem do RDF), então o Neptune geraria:

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