rdf - SPARQL 的 CONSTRUCT 模式中的 ORDER BY 解决方案修饰符

标签 rdf sparql sesame openrdf

我遵循了 SPARQL 1.1 部分 10.2 CONSTRUCT并具有以下 SPARQL 查询,该查询返回主题类型为 Homework 并且还具有事件日期的所有三元组。

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

最佳答案

问题是您的 ORDER BY 子句在查询中的位置不正确。它应该在结束 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)

另请注意,您的原始查询中的几个大括号虽然不是完全错误,但却是多余的。

关于rdf - SPARQL 的 CONSTRUCT 模式中的 ORDER BY 解决方案修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029189/

相关文章:

sparql - 使用python(或其他东西)查询fuseki服务器

python - 在 Python 中将线读入图形时,RDFlib 接受哪些不同的格式?

sparql - 将任何 URI 类型的 CURI 字符串表示形式转换为真正的 CURI 或 IRI

rdf - RDF 和 RDFS 是两个独立的文档吗?

datetime - 按 SPARQL 中的日期范围过滤

sparql - 如何从本体中检索信息?

java - 查询芝麻存储库时变量中没有值?

java - 触发 Stardog 规则的 SPARQL 查询

semantic-web - 芝麻内存三重存储

java - 从 DBpedia 资源中获取 Sesame 2.7.1 的数据类型错误