如何判断两个变量在SPARQL中具有不同的值

时间:2016-02-07 14:53:44

标签: sparql rdf turtle-rdf

我正在研究SPARQL,我对查询有疑问。

假设我有一个简单的本体,如下面的

:Jack a :Worker ; :worksAt :Project1,:Project2
:Bob  a :Worker ; :worksAt :Project2,:Project3
:Mike a :Worker ; :worksAt :Project3,:Project1

现在我想问一下在同一个项目上工作的几个工人。 如果我尝试像

那样的话
SELECT ?x,?y
WHERE
{
    ?x :worksAt ?p
    ?y :worksAt ?p

}

查询还会分析?x?y是相同资源的情况,因此我在结果中有[Jack,Jack]之类的内容。

如果我这样做

 SELECT ?x,?y
    WHERE
    {
        ?x :worksAt ?p
        ?y :worksAt ?p
        FILTER (?x != ?y)
    }

查询工作正常,但对于非常复杂的查询,我发现自己会像那样查询数百个FILTERs

是否有更好的方法来指定?x?y必须是不同的资源? 提前感谢您的回答!

0 个答案:

没有答案