ORDER BY modificador de solución en el patrón CONSTRUCT de SPARQL
Pregunta
Seguí la sección SPARQL 1.1. 10.2 CONSTRUIR y tener la siguiente consulta SPARQL que devuelve todos los tripletes cuyo asunto tiene tipo Homework
y que además tienen fecha de evento.
CONSTRUCT { ?s ?p ?o } WHERE
{
GRAPH ?g { ?s ?p ?o } .
{ ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://lod.isi.edu/ontology/syllabus/Homework>
}.
{ ?s <http://lod.isi.edu/ontology/syllabus/hasEventDate> ?date}.
}
Ahora, quiero recuperar los resultados en orden ascendente/descendente de la fecha del evento, ?date
.Intenté agregar el order by
modificador como se muestra a continuación, pero hay errores de análisis en el banco de trabajo OpenRDF.
CONSTRUCT { ?s ?p ?o } WHERE
{
GRAPH ?g { ?s ?p ?o } .
{ ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://lod.isi.edu/ontology/syllabus/Homework>
}.
{ ?s <http://lod.isi.edu/ontology/syllabus/hasEventDate> ?date}.
ORDER BY DESC(?date)
}
Encountered " "order" "ORDER "" at line 9, column 6. Was expecting one of:
"(" ... "{" ... "}" ... "[" ... <NIL> ... <ANON> ... "optional" ...
"graph" ... "minus" ... "filter" ... "true" ... "false" ... "bind" ...
"service" ... "values" ... <Q_IRI_REF> ... <PNAME_NS> ... <PNAME_LN> ...
<BLANK_NODE_LABEL> ... <VAR1> ... <VAR2> ... <INTEGER> ... <INTEGER_POSITIVE> ...
<INTEGER_NEGATIVE> ... <DECIMAL> ... <DECIMAL_POSITIVE> ...
<DECIMAL_NEGATIVE> ... <DOUBLE> ... <DOUBLE_POSITIVE> ...
<DOUBLE_NEGATIVE> ... <STRING_LITERAL1> ... <STRING_LITERAL2> ...
<STRING_LITERAL_LONG1> ... <STRING_LITERAL_LONG2> ...
Solución
El problema es que tu ORDER BY
La cláusula no está en el lugar correcto de la consulta.Debería estar después del corchete de cierre que cierra la cláusula WHERE:
CONSTRUCT { ?s ?p ?o }
WHERE
{
GRAPH ?g { ?s ?p ?o }
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lod.isi.edu/ontology/syllabus/Homework> .
?s <http://lod.isi.edu/ontology/syllabus/hasEventDate> ?date .
}
ORDER BY ASC(?date)
También tenga en cuenta que varias de las llaves en su consulta original son, aunque no exactamente incorrectas, superfluas.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow