SPARQL查询结果无效?

时间:2014-12-12 09:09:10

标签: sparql virtuoso

运行Virtuoso Server时,在发出SPARQL-Select请求时错过了一些结果。我追踪它并发现一种非常奇怪的行为,我无法解释。

但要从头开始。

可以在http://creativeartefact.org/sparql

找到我查询的端点

I)检查特定的三联:

ASK WHERE {
<http://creativeartefact.org/mbrainzImport/f18e677a-4051-486a-aa64-d9a3bfef90af>
<http://creativeartefact.org/ontology/represents>
<http://creativeartefact.org/mbrainzImport/35ed9f2a-6ce4-44ca-9c7a-967377b0e007>. }

查询返回 TRUE

II)现在变得更加不明确了:

ASK WHERE {
?s
<http://creativeartefact.org/ontology/represents>
<http://creativeartefact.org/mbrainzImport/35ed9f2a-6ce4-44ca-9c7a-967377b0e007>. }

如果第一个返回true,那么第二个也应该这样做,不应该吗?但事实并非如此。它返回 FALSE

如果我用变量替换谓词或对象,它会按预期返回true。只有在为主题设置变量时,才会返回false。

可以通过运行查询

来测试三重存储中真正存在的数据
SELECT * WHERE {
?s
?p
<http://creativeartefact.org/mbrainzImport/35ed9f2a-6ce4-44ca-9c7a-967377b0e007>. }

你会看到,两个结果都与p = http://creativeartefact.org/ontology/represents结合 - 这正是我在前一个查询中要求的谓词。

更令人奇怪的是,有三种具有上述格式的三元组会返回三元组:

select * {
?s
<http://creativeartefact.org/ontology/represents>
<http://creativeartefact.org/mbrainzImport/e4003568-5645-4ee1-abd0-2e8156272e59>. }    

任何想法,这里发生了什么?

提前致谢,
弗兰克

1 个答案:

答案 0 :(得分:0)

使用的Virtuoso是2013年的原始07.00.3203版本。

我建议升级到最新的Virtuoso 07.10.3211,open sourcecommercial,具体取决于此处使用的是什么,并查看问题是否仍然存在......