【问题标题】:How to extract persons on a wikipedia list using dbpedia/sparql如何使用 dbpedia/sparql 提取维基百科列表中的人员
【发布时间】:2016-05-31 17:15:56
【问题描述】:

我正在尝试使用 dbpedia SPARQL 查询提取所有在奥运会上获得(金牌)奖牌的人以及他们的出生位置。基本上我的目标是这个列表:https://de.wikipedia.org/wiki/Liste_der_olympischen_Medaillengewinner_aus_Spanien

我想它必须以某种方式与这段代码一起工作:

yago-res:wikicategory_Olympic_bronze_medalists_for_Spain

这不起作用:

SELECT ?res    
WHERE { 
   ?res yago-res:wikicategory_Olympic_bronze_medalists_for_Spain .
} 

有什么想法吗?

【问题讨论】:

标签: sparql wikipedia dbpedia


【解决方案1】:

获得所有在奥运会上获得金牌的西班牙人

select ?person where 
{
    ?person a <http://dbpedia.org/class/yago/OlympicGoldMedalistsForSpain>
}

如果你看看dbpedia有什么,没有类:

http://dbpedia.org/class/yago/OlympicGoldMedalists

但是有

http://dbpedia.org/class/yago/OlympicGoldMedalistsForItaly

http://dbpedia.org/class/yago/OlympicGoldMedalistsForFrance

http://dbpedia.org/class/yago/OlympicGoldMedalistsForGermany

所以解决方法可能是:

    select distinct ?person ?birthPlace where 
{
    ?goldForCountry rdfs:subClassOf yago:Medalist110305062 .
    ?person a ?goldForCountry .
    optional{
        ?person dbo:birthPlace ?birthPlace
    }
    filter (contains(str(?goldForCountry), "http://dbpedia.org/class/yago/OlympicGoldMedalistsFor"))
}

birthPlace 应该是可选的,因为 dbpedia 有 3994 人没有出生地

【讨论】:

  • 工作正常。非常感谢。您知道如何将出生地添加到最终结果中吗?
  • 谢谢!工作也很好。我的意思是出生地,而不是日期。但是通过将birthDate 替换为birthPlace 来得到它。
  • @ChrisEnroute 我很抱歉,但是也有一个birthPlace 谓词
猜你喜欢
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
相关资源
最近更新 更多