2016-05-31 62 views
1

我試圖提取所有在奧運期間獲得(金牌)獎牌的人,並且使用dbpedia SPARQL查詢理想地獲得他們的出生地點。基本上它是這個名單我的目標在:https://de.wikipedia.org/wiki/Liste_der_olympischen_Medaillengewinner_aus_Spanien如何使用dbpedia/sparql提取維基百科列表中的人

我猜它必須以某種方式與這段代碼工作:

yago-res:wikicategory_Olympic_bronze_medalists_for_Spain

這不起作用:

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

任何想法?

+0

什麼是你想要的實例? –

+0

http://mappings.dbpedia.org/server/ontology/classes/#Olympics? –

回答

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 

and

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中沒有他們的出生地

+0

工作正常。非常感謝你。你有想法如何將出生地添加到最終結果? –

+0

@ChrisEnroute查詢更新回答請 –

+0

謝謝!工作也很好。我的意思是出生地,但不是約會。但是通過birthPlace取代BirthDate得到了它。 –

相關問題