在 SPARQL 中显示与另一个变量不常见的变量的结果

Displaying results of a variable not common with another variable in SPARQL

我有一个 OWL 文件,它存储了三元组 Person-hasFriend-Person 关系。 OWL 文件有关于 10 个人的信息,它所拥有的唯一信息是关于 hasFriend

所有人都与AhasFriend关系,只有五个人与BhasFriend关系。现在,我想通过一个查询来查询仅与 AhasFriend 关系的五个人,该查询将显示与 B 没有 hasFriend 关系的人的姓名。我如何在 SPARQL 中实现它?

我在这里要求一种间接的方式来显示与 AhasFriend 关系的人的名字。

您应该提供 OWL 文件的一些详细信息。但是,如果我很清楚你想要什么,你的查询将类似于:

select ?person where {
  ?person hasFriend A.
  FILTER (NOT EXISTS {?person hasFriend B})
}