如果 SPARLQ 的 AKS 答案返回 true,如何获得答案?



我是SPARQL的初学者,我正在尝试做一些练习。其中之一如下:

你喜欢的男/女演员结婚了吗?

我正在使用一个ASK查询:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
ASK
WHERE {dbr:Steve_Carell dbo:spouse ?any}

这个查询返回true。

我的答案是:当ASK查询为真时,是否有方法返回?any?换句话说,是否有可能建立一个IF…然后在SPARQL中构造?

我试过这样做:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
SELECT ?any {
ASK
WHERE {dbr:Steve_Carell dbo:spouse ?any}
}

但显然它不起作用。

提示吗?

ASK可能匹配多个项目。如果你只想要其中一个:

SELECT ?any {
dbr:Steve_Carell dbo:spouse ?any
} LIMIT 1

返回一行?any(即ASK = true)或没有行(ASK = false)。

这也可以用作子select来获取其中一种可能性(它返回的是未确定的)。