Rdf 为什么我的SPARQL查询会重复结果?

Rdf 为什么我的SPARQL查询会重复结果?,rdf,sparql,owl,Rdf,Sparql,Owl,我正在做一些搜索,并学习更多关于SPARQL的知识,但这不像SQL那么容易。我只是想知道为什么我的查询会重复结果,以及如何修复它。这是我的SPARQL查询: 前缀OQ: 选择?x?ys?z?苏黑特 在哪里{ y OQ:hasnameactivite?x。 y OQ:AttenduActivite?Souhaite。 y OQ:SavorDeactivite?z。 y OQ:hasnamephase?y。 y OQ:ActivityPour?v。 ?ro OQ:hasnamerole?编号。 ?y

我正在做一些搜索,并学习更多关于SPARQL的知识,但这不像SQL那么容易。我只是想知道为什么我的查询会重复结果,以及如何修复它。这是我的SPARQL查询:

前缀OQ:
选择?x?ys?z?苏黑特
在哪里{
y OQ:hasnameactivite?x。
y OQ:AttenduActivite?Souhaite。
y OQ:SavorDeactivite?z。
y OQ:hasnamephase?y。
y OQ:ActivityPour?v。
?ro OQ:hasnamerole?编号。
?y OQ:avoirrole?ro。
过滤器正则表达式(?nr,“概念器”)。
过滤正则表达式(?v,“Voiture”)。
}
这给了我这些结果:

预期结果是:


在第一次阅读您的问题时,我打算回答您可以将查询中的
选择
(使用)更改为
选择不同的
,以删除重复的结果。然而,看看你的结果集,我实际上没有看到任何重复的答案。每一行似乎都是唯一的。
?xs
?ys
的值恰好相同,但是
?z
?sohaite
的组合使行不同。您的结果基本上是产品
{xs1}×{ys1}×{z1,z2,z3}×{S1,S2,S3}
,并且不包含任何重复项

我只是更仔细地查看了查询和您显示的结果,其中存在一些差异。例如,您的结果有一个名为
?xs
的变量,但您的查询没有使用这样的变量。我将假定
?x
应该是
?xs
。此外,变量名
?xs
?ys
?z
,以及
?sohaite
都不是很好的描述性。当我们不知道他们在结果中扮演什么角色时,很难谈论这些

关于您期望的结果,
?xs
?ys
确实应该为每一行绑定。例如,所需结果的第二行有一个
?z
和一个
?Souhaite
,但是没有
?xs
?ys
,但是如果没有相应的
?xs
?ys
,它们可能没有任何意义,对吗?因此,我不会试图解决第二行和第三行中这些列为空的问题;它们不应该是空白的


在预期结果中,您删除了包含许多组合的行,如
“Besoins…”“Schemas…”
“Volume…”“Fourchette…”
。这些出现在结果中,因为它们在您的数据中。如果您希望帮助清理数据,使其不存在,我们需要查看您的数据,并了解数据的来源。

在第一次阅读您的问题时,我打算回答您可以将查询中的
选择
(使用)更改为
选择不同的
,以删除重复的结果。然而,看看你的结果集,我实际上没有看到任何重复的答案。每一行似乎都是唯一的。
?xs
?ys
的值恰好相同,但是
?z
?sohaite
的组合使行不同。您的结果基本上是产品
{xs1}×{ys1}×{z1,z2,z3}×{S1,S2,S3}
,并且不包含任何重复项

我只是更仔细地查看了查询和您显示的结果,其中存在一些差异。例如,您的结果有一个名为
?xs
的变量,但您的查询没有使用这样的变量。我将假定
?x
应该是
?xs
。此外,变量名
?xs
?ys
?z
,以及
?sohaite
都不是很好的描述性。当我们不知道他们在结果中扮演什么角色时,很难谈论这些

关于您期望的结果,
?xs
?ys
确实应该为每一行绑定。例如,所需结果的第二行有一个
?z
和一个
?Souhaite
,但是没有
?xs
?ys
,但是如果没有相应的
?xs
?ys
,它们可能没有任何意义,对吗?因此,我不会试图解决第二行和第三行中这些列为空的问题;它们不应该是空白的


在预期结果中,您删除了包含许多组合的行,如
“Besoins…”“Schemas…”
“Volume…”“Fourchette…”
。这些出现在结果中,因为它们在您的数据中。如果您希望帮助清理数据,使其不存在,我们需要查看您的数据,并了解数据的来源。

如果您可以将结果表作为文本而不是图像包含,那将非常好。如果您可以将结果表作为文本包含,那将非常好,而不是图像。预期结果是只显示一次xs&ys和DSP播放其他xs&ys,而不重复xs&ys!在以
SELECT?x?ys?z?Souhaite
开头的查询中,每个解决方案(即结果的每一行)都包含一个
SELECT
ed变量的值。结果中没有重复的解决方案;每一行都不同于其他行。如果您在问题中添加一个您期望的结果的示例(例如,与您实际得到的结果的格式相同),我们可能会找出您可以运行哪种查询results@user2420469关于您的评论“不像SQL那么容易”:SPARQL是关于结果行的,就像SQL一样。SQL也不会让你做你想做的事。:)@Joshua Taylor,谢谢经过更多的学习和搜索,我知道你说了很多谢谢。预期的结果是,只显示一次xs&ys和dsplay,而不重复xs&ys!在以