如何选择在同一家公司工作并相互了解的每一对人?

时间:2016-03-07 22:30:53

标签: sparql

我正在尝试构建一个SPARQL查询,该查询返回在同一个公司工作且彼此了解的每一对人。

我试过了:

SELECT distinct ?x ?y ?z
WHERE { ?x ex:knows ?y . {?x ex:worksFor ?z}} ORDER BY (?z)

这给了我2列员工和一列公司。每家公司有3个人。它应该返回'对。任何人都可以看到我如何改进查询?

1 个答案:

答案 0 :(得分:1)

这里你需要做几件事。首先你还需要确保?y worksFor?z。然后,如果你只想要ex:knows中的对,那么只选择?x和?y:

SELECT DISTINCT ?x ?y
WHERE {
   ?x ex:knows ?y .
   ?x ex:worksFor ?z .
   ?y ex:worksFor ?z .
} ORDER BY ?z