我的 SPARQL 代码来自 Learning SPARQL 书:
Contruct
{
?s dm:problem dm:prob29 .
dm:prob29 rdfs:label "Location value must be a URI." .
}
WHERE
{
?s dm:location ?city .
FILTER (!(isURI(?city)))
}
-- 创建一个如下文件:
dm:prob29 rdfs:label "Location value must be a URI." .
d:item693 dm:problem dm:prob29 .enter
为什么他首先创建
"Location value must be URI"
三重,而在Contruct
命令中dm:prob29
等首先显示?我不太确定这是如何工作的?
此类三元组的顺序是任意的,在
CONSTRUCT
查询输出的上下文中没有重要性或意义。
虽然 @TallTed 是对的,RDF 图中的三元组顺序没有意义,但能够对它们进行排序仍然非常有用 - 例如在文本编辑器中比较两个图表。一种方法是使用 ntriples 作为序列化:
riot --output=NTRIPLES a.ttl > a.nt
sort a.nt > a-sorted.nt