es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando límites en las consultas de eliminación SPARQL de Neptune.

Estoy tratando de ejecutar esta consulta en Amazon Neptune:

Delete{?s <http://mydomain#aresource> ?o.
          } 
WHERE {

<pre><code>GRAPH ?g {

    ?s <http://mydomain#aresource> ?o.

} 
</code></pre>

<p>} limit 1
<code>
Pero estoy obteniendo este error:
</code>
"code": "MalformedQueryException",
"detailedMessage": "Consulta mal formada: Encontrado \" \"limit\" \"limit \"\" en la línea ..., columna ....\nSe esperaba uno de los siguientes:\n    <EOF> \n    \";\" ...\n    "

Cuando quito el límite, la consulta funciona. ¿Significa esto que Neptune delete no admite el límite o estoy haciendo algo mal?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Según el mensaje de error, parece que la sintaxis de la consulta es incorrecta. El error menciona específicamente que no se reconoce la palabra clave “limit”.

    En general, Amazon Neptune admite el lenguaje SPARQL y sus diversas características, incluida la cláusula DELETE. Sin embargo, es posible que no se admitan algunas extensiones de SPARQL o características específicas.

    En tu caso, puede ser que la palabra clave “limit” no sea compatible con la implementación de Neptune de SPARQL DELETE. Podrías intentar eliminar el límite y ejecutar la consulta nuevamente para confirmar si este es el caso.

    Alternativamente, podrías intentar modificar la consulta para utilizar una sintaxis diferente que logre el mismo resultado sin usar la palabra clave “limit”. Por ejemplo, podrías utilizar una subconsulta para seleccionar el primer resultado y luego incluirlo en la cláusula DELETE:

    DELETE { ?s <http: mydomain#aresource=""> ?o }
    WHERE {
      {
        SELECT ?s ?o WHERE {
          GRAPH ?g {
            ?s <http: mydomain#aresource=""> ?o .
          }
        }
        ORDER BY ?s ?o
        LIMIT 1
      }
    }
    

    Esta consulta selecciona el primer patrón de tripleta que coincide con el patrón del grafo en la cláusula WHERE, y luego lo elimina del grafo especificado. La subconsulta se utiliza para limitar los resultados al primer resultado y la cláusula DELETE externa se utiliza para eliminar la tripleta seleccionada.

Comments are closed.