SPARQL 查询返回奇怪的结果
SPARQL Query returning strange results
我从事SPARQL 工作将近2 年了,但我以前从未见过如此奇怪的情况。 (注:我用的是原生triplestore)
查询 1:
prefix leaks: <http://data.ontotext.com/resource/leaks/>
prefix leak: <http://data.ontotext.com/resource/leak/>
SELECT * WHERE
{
leaks:entity-10000001 leak:jurisdiction_description ?object.
}
查询 2:
prefix leaks: <http://data.ontotext.com/resource/leaks/>
prefix leak: <http://data.ontotext.com/resource/leak/>
SELECT * WHERE
{
leaks:entity-10000001 ?p ?object.
}
此处 Query1 返回一些结果,而 Query2 未返回任何结果。
如果我换句话说,合并上面的两个查询,下面的查询 (Query3) 返回的记录很少。
查询 3:
prefix leaks: <http://data.ontotext.com/resource/leaks/>
prefix leak: <http://data.ontotext.com/resource/leak/>
SELECT distinct ?s WHERE
{
?s leak:jurisdiction_description ?object.
FILTER NOT EXISTS { ?s ?p ?o}.
}
理想情况下不应该是这种情况。 Query3 应该始终没有结果,因为第二个条件 ?s ?p ?o
是第一个 ?s leak:jurisdiction_description ?object
的超集
我不知道为什么会这样。
我猜你的 triplestore 有问题
在 http://data.ontotext.com/sparql 尝试相同的查询,这是此数据集的 "home",由 GraphDB 支持。正如预期的那样,Query2 提供了 23 个结果。
Query3 的 returns 结果严重表明您的设置有问题
我开始知道为什么会这样了。由于某种原因,索引文件(pos、sop 等)未正确同步,处于不一致状态。当我尝试删除 MARMOTTA_HOME 下的主要三元组文件夹并重新摄取数据时,它开始为我工作,因为它强制重新索引三元组数据。感谢@Jeen Broekstra 的提醒:)
我从事SPARQL 工作将近2 年了,但我以前从未见过如此奇怪的情况。 (注:我用的是原生triplestore)
查询 1:
prefix leaks: <http://data.ontotext.com/resource/leaks/>
prefix leak: <http://data.ontotext.com/resource/leak/>
SELECT * WHERE
{
leaks:entity-10000001 leak:jurisdiction_description ?object.
}
查询 2:
prefix leaks: <http://data.ontotext.com/resource/leaks/>
prefix leak: <http://data.ontotext.com/resource/leak/>
SELECT * WHERE
{
leaks:entity-10000001 ?p ?object.
}
此处 Query1 返回一些结果,而 Query2 未返回任何结果。 如果我换句话说,合并上面的两个查询,下面的查询 (Query3) 返回的记录很少。
查询 3:
prefix leaks: <http://data.ontotext.com/resource/leaks/>
prefix leak: <http://data.ontotext.com/resource/leak/>
SELECT distinct ?s WHERE
{
?s leak:jurisdiction_description ?object.
FILTER NOT EXISTS { ?s ?p ?o}.
}
理想情况下不应该是这种情况。 Query3 应该始终没有结果,因为第二个条件 ?s ?p ?o
是第一个 ?s leak:jurisdiction_description ?object
我不知道为什么会这样。
我猜你的 triplestore 有问题 在 http://data.ontotext.com/sparql 尝试相同的查询,这是此数据集的 "home",由 GraphDB 支持。正如预期的那样,Query2 提供了 23 个结果。 Query3 的 returns 结果严重表明您的设置有问题
我开始知道为什么会这样了。由于某种原因,索引文件(pos、sop 等)未正确同步,处于不一致状态。当我尝试删除 MARMOTTA_HOME 下的主要三元组文件夹并重新摄取数据时,它开始为我工作,因为它强制重新索引三元组数据。感谢@Jeen Broekstra 的提醒:)