我无法想象为什么会这样做:
select * {
<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:birthName ?name.
OPTIONAL{<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:birthDate ?birthDate}
OPTIONAL{<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:restingPlace ?restingPlace}
OPTIONAL{<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:deathDate ?deathDate}
}
和this - NOT(空绑定):
select * {
<http://dbpedia.org/resource/Winston_Churchill> dbpedia-owl:birthName ?name.
OPTIONAL{<http://dbpedia.org/resource/Winston_Churchill> dbpedia-owl:birthDate ?birthDate}
OPTIONAL{<http://dbpedia.org/resource/Winston_Churchill> dbpedia-owl:restingPlace ?restingPlace}
OPTIONAL{<http://dbpedia.org/resource/Winston_Churchill> dbpedia-owl:deathDate ?deathDate}
}
on http://live.dbpedia.org/sparql
UPD
This answer很好,但当我试图寻找Vincent_van_Gogh时 - 同样的问题
答案 0 :(得分:4)
dbpedia:Mahatma_Gandhi
有dbpedia-owl:birthName
和 dbpprop:birthName
。另一方面dbpedia:Winston_Churchill
只有dbpprop:birthname
(注意不同的大小写)。
不确定解决这个问题的正确方法是什么。
答案 1 :(得分:3)
这似乎是DBpedia Live和DBpedia之间的区别。在标准DBpedia上,您的查询可以正常运行:
正如svick's answer指出的那样,在DBpedia Live中,丘吉尔有一个 dbpprop:birthname ,但不是 dbpedia-owl:birthName 。在这种情况下你可以做的是要求任何一个。你可以轻松地做到这一点 交替属性路径。以下查询适用于DBpedial Live。 (我使用值将?wc 绑定到 dbpedia:Winston_Churchill ,但这只是为了使查询更具可读性。重要的部分是属性路径三元组:< strong> dbpedia:Winston_Churchill dbpedia-owl:birthName | dbpprop:birthname?birthname 。
select * {
values ?wc { dbpedia:Winston_Churchill }
?wc dbpedia-owl:birthName|dbpprop:birthname ?birthName
optional { ?wc dbpedia-owl:birthDate ?birthDate}
optional { ?wc dbpedia-owl:restingPlace ?restingPlace}
optional { ?wc dbpedia-owl:deathDate ?deathDate}
}
当然,如果你把它带回到丘吉尔有两个属性的普通DBpedia,你现在将得到两个结果,每个属性一个。如果您只需要一个结果,则可以单独询问这些属性,绑定和合并:
select ?birthName ?birthDate ?restingPlace ?deathDate {
values ?wc { dbpedia:Winston_Churchill }
optional { ?wc dbpedia-owl:birthName ?birthname0 }
optional { ?wc dbpprop:birthname ?birthname1 }
bind ( coalesce(?birthname0,?birthname1) as ?birthName )
optional { ?wc dbpedia-owl:birthDate ?birthDate}
optional { ?wc dbpedia-owl:restingPlace ?restingPlace}
optional { ?wc dbpedia-owl:deathDate ?deathDate}
}