如何使用dbpedia / sparql在维基百科列表中提取人员

时间:2016-05-31 08:46:55

标签: sparql wikipedia dbpedia

我正在尝试使用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 .
} 

任何想法?

1 个答案:

答案 0 :(得分: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应该是可选的,因为有3994个人没有dbpedia没有他们的出生地