基于名称而非主题的DbPedia Sparql

基于名称而非主题的DbPedia Sparql,sparql,dbpedia,Sparql,Dbpedia,我正在尝试查询dbpedia以获取一些人员数据,我没有主题,只有我要查询的人员的姓名和他们的出生/死亡日期 我正试图沿着这些思路进行查询。我要每个姓普雷斯利的人的姓名、出生日期、死亡日期和缩略图。然后我想做的是循环遍历返回的结果,找到1935-1977年埃尔维斯·普雷斯利(Elvis Presley)的最佳匹配,这就是我拥有的数据 PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?Name ?thumbnail ?birthDat

我正在尝试查询dbpedia以获取一些人员数据,我没有主题,只有我要查询的人员的姓名和他们的出生/死亡日期

我正试图沿着这些思路进行查询。我要每个姓普雷斯利的人的姓名、出生日期、死亡日期和缩略图。然后我想做的是循环遍历返回的结果,找到1935-1977年埃尔维斯·普雷斯利(Elvis Presley)的最佳匹配,这就是我拥有的数据

PREFIX dbo: <http://dbpedia.org/ontology/>

SELECT ?Name ?thumbnail ?birthDate ?deathDate WHERE {
  {
dbo:name ?Name ;
dbo:birthDate ?birthDate ;
dbo:birthDate ?deathDate ;
dbo:thumbnail ?thumbnail ;
FILTER contains(?Name@en, "Presley") 
}
前缀dbo:
选择?姓名?缩略图?出生日期?死亡日期{
{
dbo:名称?名称;
dbo:生日?生日;
dbo:出生日期?死亡日期;
dbo:缩略图?缩略图;
过滤器包含(?)?Name@en“普雷斯利”)
}
构造sparql查询的最佳方法是什么

更新:

我把这个查询放在一起,它似乎在某种程度上起作用,但我不完全理解它,我也不知道它包含什么,但它至少运行并返回结果

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbo: <http://dbpedia.org/ontology/>

SELECT ?subject ?thumbnail ?birthdate ?deathdate WHERE {
  {
     ?subject rdfs:label "Elvis Presley"@en ;
                                     dbo:thumbnail ?thumbnail ;
                                      dbo:birthDate ?birthdate ;
                                      dbo:deathDate ?deathdate ;
       a owl:Thing .       

  }
  UNION
  {
    ?altName rdfs:label "Elvis Presley"@en ;
                                      dbo:thumbnail ?thumbnail ;
                                      dbo:birthDate ?birthdate ;
                                      dbo:deathDate ?deathdate ;
             dbo:wikiPageRedirects ?s .
  }
}
前缀rdf:
前缀foaf:
前缀dbo:
选择?主题?缩略图?出生日期?死亡日期在哪里{
{
?主题rdfs:标签“猫王”@en;
dbo:缩略图?缩略图;
dbo:生日?生日;
dbo:死亡日期?死亡日期;
猫头鹰:这东西。
}
联合
{
?altName rdfs:标签“猫王”@en;
dbo:缩略图?缩略图;
dbo:生日?生日;
dbo:死亡日期?死亡日期;
dbo:wikiPageRedirects?s。
}
}

一些实体可能没有所有这些信息,因此最好使用可选的。您可以使用foaf:namite直接检查姓氏

select * where {
  ?s foaf:surname "Presley"@en
  optional { ?s dbo:name ?name }
  optional { ?s dbo:birthDate ?birth }
  optional { ?s dbo:deathDate ?death }
  optional { ?s dbo:thumbnail ?thumb }
}

除了最后两个三重模式外,你的联合条款大多是多余的,这两个三重模式或多或少都是无用的w.r.t.,包含一些有意义的信息。