SPARQL:如何在只有一个方向存在的情况下获得具有特定谓词的所有三元组

SPARQL: How to get all triples with certain predicate where only one direction exists

我想查询所有具有特定谓词 p 的三元组。查询应该只有 return 三元组 (s,p,o),其中另一个方向 (o,p,s) 不存在。 我怎样才能进行这样的查询?

这很简单:

SELECT ?s ?p ?o {
    ?s ?p ?o
    MINUS { ?o ?p ?s }
}

FILTER NOT EXISTS 而不是 MINUS 也可以。将查询中的 ?p 替换为所需的谓词,或者如果要在结果中使用 ?p,则使用类似 FILTER (?p=ex:myPredicate) 的内容。