寻找 Winston_Churchill 数据

Looking for Winston_Churchill data

我无法想象为什么会这样:

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}
}

和这个 - 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}
}

http://live.dbpedia.org/sparql

UPD

很好,但是当我试图寻找 Vincent_van_Gogh - 同样的问题

dbpedia:Mahatma_Gandhidbpedia-owl:birthNamedbpprop:birthName。另一方面,dbpedia:Winston_Churchill 只有 dbpprop:birthname(注意大小写不同)。

不确定处理此问题的正确方法是什么。

这似乎是 DBpedia Live 和 DBpedia 之间的区别。在标准 DBpedia 上,您的查询没有问题:

SPARQL results

正如 指出的那样,在 DBpedia Live 中,丘吉尔有 dbpprop:birthname,但没有 dbpedia-owl :出生名。在这种情况下,您可以做的是要求其中任何一个。你可以很容易地做到这一点 交替 属性 路径。以下查询适用于 DBpedial Live。 (我使用值将 ?wc 绑定到 dbpedia:Winston_Churchill,但这只是为了使查询更具可读性。重要的部分是 属性 路径三元组: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 Live results

当然,如果您将其返回到 Churchill 拥有两个属性的正常 DBpedia,您现在将得到 两个 个结果,每个 属性 个结果。如果你只想要一个结果,你可以分别请求属性和 bindcoalesce 它们:

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}
}

SPARQL results