如果我的图表中有这样的关系,如何显示不同的学生对:
:ST1 :read :BOOK1,:BOOK2,:BOOK3.
:ST2 :read :BOOK1,:BOOK2.
:ST3 :read :BOOK2.
在我的选择中,我有这样的东西:
SELECT DISTINCT ?x ?book ?y
{
?x :read ?book.
?book ^:read ?y.
FILTER(?x != ?y).
}
但是用我的图形数据,输出将是:
:ST1 :BOOK1 :ST2
:ST2 :BOOK1 :ST1 ... etc
我只希望:ST1 :BOOK1 :ST2
显示该关系。
您的问题是您将DISTINCT放在仅当显示多个变量时不能应用于一个变量的地方,可以改为:
SELECT (SAMPLE(?x) as ?xx) ?book (SAMPLE(?y) as ?yy)
{
?y :read ?book.
?book ^:read ?x.
FILTER(?x != ?y).
}
GROUP BY ?book
输出:
:ST1 :BOOK1 :ST2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句