Sparql 如何选择在同一家公司工作并相互了解的每一对人员?
我正在尝试构造一个SPARQL查询,它返回在同一家公司工作并且彼此认识的每一对人员 我试过:Sparql 如何选择在同一家公司工作并相互了解的每一对人员?,sparql,Sparql,我正在尝试构造一个SPARQL查询,它返回在同一家公司工作并且彼此认识的每一对人员 我试过: SELECT distinct ?x ?y ?z WHERE { ?x ex:knows ?y . {?x ex:worksFor ?z}} ORDER BY (?z) 这给了我两列员工和一列公司。每个公司有3个人。它应该返回“pairs”。有人知道我可以如何改进查询吗?这里需要一些东西。首先,您还需要确保?y为?z工作。然后,如果您只需要ex:knows中的配对,请仅选择?x和?y: SELECT
SELECT distinct ?x ?y ?z
WHERE { ?x ex:knows ?y . {?x ex:worksFor ?z}} ORDER BY (?z)
这给了我两列员工和一列公司。每个公司有3个人。它应该返回“pairs”。有人知道我可以如何改进查询吗?这里需要一些东西。首先,您还需要确保?y为?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
也许还可以过滤?y!=?z既然
?y
是个人而?z
是公司,我们为什么要添加此过滤器?哦,AKSW。非常感谢。我以前看不到逻辑。过滤器是不必要的-除非人也是公司。