【发布时间】:2018-05-01 12:11:40
【问题描述】:
请参考Factforge Endpoint 执行此查询。子查询不返回任何结果。 ?myVar 将被投射到包含查询中,然后与三元组模式 ?myVar ?p ?o. 连接。但是由于内部选择没有结果,所以连接应该没有结果。但是,执行查询时并非如此。这不是bug吗?
SELECT
?myVar ?p ?o
WHERE
{
{
SELECT ?myVar
WHERE {
?myVar <http://www.example.com/arbitraryNonExistent> ?xx.
}
GROUP BY ?myVar
}
?myVar ?p ?o.
}
LIMIT 10
【问题讨论】:
-
这肯定是一个错误。您是否正在使用子查询进行实验,或者为什么您总是运行任意查询?顺便说一句,您上次已经认识到 wikidata 的东西也不适用于您的本地 GraphDB 实例 - FactForge 也由 GraphDB 支持......像往常一样,联系 GraphDB 开发人员以便修复它(如果还没有done - 不知道 FactForge 使用的 GraphDB 版本)
-
我联系了 GraphDB。我发布的查询看起来很随意,因为它们是对我在本地使用的数据的原始查询中发生的问题的简化再现。是的,基本上聚合子查询是我正在使用的东西。
-
尝试从子查询中删除
GROUP BY ?myVar,改用DISTINCT。 -
顺便说一句,内部子查询的结果在 GraphDB 中也不同,例如闪耀图。
HAVING (bound(?myVar))会比HAVING (COUNT(*) > 0)更自然:-)。 -
老实说,我想知道三联商店出了什么问题。 2018 年,我们至少有两个三联商店因简单的子查询而失败