我遵循SPARQL 1.1部分10.2 CONSTRUCT並具有以下SPARQL查詢,它返回其主題具有類型Homework
並且也具有事件日期的所有三元組。SPARQL的CONSTRUCT模式中的ORDER BY解決方法修飾符
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}.
}
現在,我想檢索事件日期的升序/降序結果?date
。我嘗試添加order by
修改器,如下所示,但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> ...
你使用的確切語法是什麼,你得到了什麼錯誤? –
還請顯示查詢的示例輸出 - 實際輸出和預期輸出。 –
接受的答案解釋瞭如何解決語法問題,但需要注意的是'構造'查詢的結果是一個RDF圖,它是一個三元組的集合(因此是_unordered_集合)。 'order by'不會爲你做任何事情,除非你將它與'limit'(可能還有'offset')一起使用來選擇所有可能結果的子集。 –