Usando SPARQL UPDATE UNLOAD para excluir dados de Neptune - Amazon Neptune

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á.

Usando SPARQL UPDATE UNLOAD para excluir dados de Neptune

O Neptune também fornece uma operação SPARQL personalizadaUNLOAD,, para remover dados especificados em uma fonte remota. UNLOADpode ser considerado como uma contrapartida da LOAD operação. A sintaxe é:

nota

Esse atributo está disponível a partir da versão 1.0.4.1 do mecanismo do Neptune.

UNLOAD SILENT (URL of the remote data to be unloaded) FROM GRAPH (named graph from which to remove the data)
  • SILENT: (opcional) faz com que a operação seja bem-sucedida mesmo que tenha ocorrido um erro durante o processamento dos dados.

    Isso pode ser útil quando uma única transação contém várias declarações, como "LOAD ...; LOAD ...; UNLOAD ...; LOAD ...;" e você deseja que a transação seja concluída mesmo que alguns dos dados remotos não possam ser processados.

  • URL of the remote data to be unloaded   — (Obrigatório) Especifica um arquivo de dados remoto contendo dados a serem descarregados de um gráfico.

    O arquivo remoto deve ter uma das seguintes extensões (esses são os mesmos formatos que UPDATE - LOAD suporta):

    • .ntparaNTriples.

    • .nqparaNQuads.

    • .trig para Trig.

    • .rdfparaRDF/XML.

    • .ttl para Turtle.

    • .n3 para N3.

    • .jsonldpara JSON -LD.

    Todos os dados que esse arquivo contém serão removidos do cluster de banco de dados pela operação UNLOAD.

    Qualquer autenticação do Amazon S3 deve ser incluída no URL para que os dados sejam descarregados. Você pode pré-assinar um arquivo do Amazon S3 e depois usar o URL resultado para acessá-lo com segurança. Por exemplo:

    aws s3 presign --expires-in (number of seconds) s3://(bucket name)/(path to file of data to unload)

    Em seguida:

    curl https://(a Neptune endpoint URL):8182/sparql \ --data-urlencode 'update=unload (pre-signed URL of the remote Amazon S3 data to be unloaded) \ from graph (named graph)'

    Para obter mais informações, consulte Autenticação de solicitações: usando parâmetros de consulta.

  • FROM GRAPH (named graph from which to remove the data)   — (Opcional) Especifica o gráfico nomeado do qual os dados remotos devem ser descarregados.

    O Neptune associa cada triplo a um grafo nomeado. Você pode especificar o gráfico nomeado padrão usando o gráfico alternativo chamado URIhttp://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph, assim:

    FROM GRAPH <http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph>

Da mesma forma que LOAD corresponde a INSERT DATA { (inline data) }, UNLOAD corresponde a DELETE DATA { (inline data) }. Como DELETE DATA, UNLOAD não funciona em dados com nós em branco.

Por exemplo, se um servidor web local fornecer um arquivo denominado data.nt que contenha estes dois triplos:

<http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> .

O seguinte comando UNLOAD excluirá esses dois triplos do grafo nomeado, <http://example.org/graph1>:

UNLOAD <http://localhost:80/data.nt> FROM GRAPH <http://example.org/graph1>

Isso terá o mesmo efeito que usar o seguinte comando DELETE DATA:

DELETE DATA { GRAPH <http://example.org/graph1> { <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#b> . <http://example.org/resource#a> <http://example.org/resource#p> <http://example.org/resource#c> . } }
Exceções lançadas pelo comando UNLOAD.
  • InvalidParameterException: havia nós em branco nos dados. HTTPstatus: 400 Solicitação inválida.

    Mensagem: Blank nodes are not allowed for UNLOAD

     

  • InvalidParameterException: havia uma sintaxe rompida nos dados. HTTPstatus: 400 Solicitação inválida.

    Mensagem: Invalid syntax in the specified file.

     

  • UnloadUrlAccessDeniedException : acesso negado. HTTPstatus: 400 Solicitação inválida.

    Mensagem: Update failure: Endpoint (Neptune endpoint) reported access denied error. Please verify access.

     

  • BadRequestException : os dados remotos não podem ser recuperados. HTTPstatus: 400 Solicitação inválida.

    Mensagem: (depende da HTTP resposta).