• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

SPARQL

date: 2023-04-13 excerpt: SPARQLの概要

tag: pythonSPARQLSPARQLWrapper


SPARQLの概要

概要

  • RDFの問い合わせ言語
  • XMLのデータを取り出すのに、SQLのような構文でアクセスできる
  • wikipediaのデータを取り出すのに使えたりする

インストール

$ python3 -m pip install SPARQLWrapper

具体例

import pprint
pp = pprint.PrettyPrinter(indent=2, width=60, depth=5)
from SPARQLWrapper import SPARQLWrapper

sparql = SPARQLWrapper(endpoint='http://ja.dbpedia.org/sparql', returnFormat='json')
sparql.setQuery("""                                                                                                                                                                      
    PREFIX dbpedia-owl:  <http://dbpedia.org/ontology/>                                                                                                                                  
    SELECT 
        ?label ?director ?company ?abstract
    WHERE {                                                                                                                                                                 
        <http://ja.dbpedia.org/resource/中二病でも恋がしたい!> rdfs:label ?label;
        <http://dbpedia.org/ontology/director> ?director ;
        <http://dbpedia.org/ontology/productionCompany> ?company ;
        <http://dbpedia.org/ontology/abstract> ?abstract .
     }                                                                                                                    
""")
results = sparql.query().convert()
pp.pprint(results)

"""
{ 'head': { 'link': [],
            'vars': [ 'label',
                      'director',
                      'company',
                      'abstract']},
  'results': { 'bindings': [ { 'abstract': { 'type': 'literal',
                                             'value': '『中二病でも恋がしたい!』(ちゅうにびょうでもこいがしたい)は、虎虎による日本のライトノベル。イラストは逢坂望美が担当している。略称は中二恋、中二病、中恋。 '
                                                      '元・中二病で高校1年生の富樫勇太と、同学年で現役・中二病の小鳥遊六花を軸として周囲を巻き込みながら展開していく学園ラブコメディ作品。 '
                                                      'KAエスマ文庫第1弾の1つとして刊行された。1巻は第1回京都アニメーション大賞奨励賞受賞作で「着眼点とアイデアが面白く文章のセンスもある」と評価された。2012年10月から12月までテレビアニメの第1期が放送され、2013年9月14日に劇場版が公開された。2014年1月から3月までテレビアニメ第2期が放送された。2018年1月6日に完全オリジナルでの劇場版第2作が公開された。',
                                             'xml:lang': 'ja'},
                               'company': { 'type': 'uri',
                                            'value': 'http://ja.dbpedia.org/resource/京都アニメーション'},
                               'director': { 'type': 'uri',
                                             'value': 'http://ja.dbpedia.org/resource/石原立也'},
                               'label': { 'type': 'literal',
                                          'value': '中二病でも恋がしたい!',
                                          'xml:lang': 'ja'}}],
               'distinct': False,
               'ordered': True}}
"""

Google Colab

  • SPARQL-example

参考

  • DBpediaを使って、検索語からデータ取得/Qiita


pythonSPARQLSPARQLWrapper Share Tweet