1. はじめに
2.経緯
・前回は主に、日本国内がサンデーサイレンス系で埋め尽くされているのを発見。
- 世界ではどうなっているのか気になったので、調べてみることに。
 
3. コード
- 前回のはJRDBのデータを使ったけど、wikipedia(en)の情報も使えそうだったので、こちらを利用させてもらう。
 - さてスクレイピングやるのかなーと思っていると、dbpediaというサイトを発見して、sparQLという言語?でクエリを取ると簡単に情報を得られるのを発見。これを使わせてもらう。
 
この図の右下部分(父、父父)情報を使えばいいので、下記のような書き方で取得できた。

en.wikipediaには、生まれ年毎に有名な競走馬の情報が入っているので、この情報を参考に、
#!pip install sparqlwrapper
def getdata(year):
    my_variable = "<http://dbpedia.org/resource/Category:{}_racehorse_births>".format(year)
    print(my_variable)
    sparql.setQuery("""
    select distinct * where {
    ?racehorse <http://dbpedia.org/ontology/wikiPageWikiLink>"""+ my_variable +""" .
    ?racehorse rdfs:label ?name .
    ?racehorse <http://dbpedia.org/property/sire> ?sire .
    ?racehorse <http://dbpedia.org/property/grandsire> ?grandsire .
    }
    """)
    results = sparql.query().convert()
    items = []
    for val in results["results"]["bindings"]:
        if val["name"]["xml:lang"] == "en":
            items.append([val["name"]["value"],val["sire"]["value"].replace("http://dbpedia.org/resource/","")])
            items.append([val["sire"]["value"].replace("http://dbpedia.org/resource/",""),val["grandsire"]["value"].replace("http://dbpedia.org/resource/","")])
    return pd.DataFrame(items)
これを1700年~2020年まで取得。データをキレイにして最終的にこんな形に。












