我有一个不返回记录的查询,因为where子句中没有缩略图
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT *
WHERE {
dbpedia:Nancy_Mairs dbpedia-owl:abstract ?abstract; dbpedia-owl:thumbnail ?thumbnail .
}
LIMIT 1
如果我错过第二个条件,它将返回一条记录
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT *
WHERE {
dbpedia:Nancy_Mairs dbpedia-owl:abstract ?abstract
}
LIMIT 1
不是说第一个没有返回任何内容,而是运行第二个,可以一次完成所有操作,如果没有返回空白缩略图吗?
答案 0 :(得分:3)
要在Stanislav's comment上进行扩展,可以使用OPTIONAL
关键字来描述...好...是可选的图形模式。如果对此模式有解决方案,它将与其余解决方案一起返回;否则,将仅返回模式的“强制”部分。
SELECT * WHERE {
dbpedia:Nancy_Mairs dbpedia-owl:abstract ?abstract
OPTIONAL {
dbpedia:Nancy_Mairs dbpedia-owl:thumbnail ?thumbnail
}
}
如果您想排除dbpedia:Nancy_Mairs
的重复次数,可以使用BIND
关键字:
SELECT * WHERE {
BIND(dbpedia:Nancy_Mairs AS ?topic)
?topic dbpedia-owl:abstract ?abstract
OPTIONAL {
?topic dbpedia-owl:thumbnail ?thumbnail
}
}