dogrunjp
4/20/2017 - 8:43 AM

PythonのSPARQLWrapperを使ってSPRQL endpointからJSON形式でデータを取得しようとした時、うまくいかないことがあったので、SPARQLWrapperを使わない方法を書いておきます。意外にこちらの方がシンプルかも。

PythonのSPARQLWrapperを使ってSPRQL endpointからJSON形式でデータを取得しようとした時、うまくいかないことがあったので、SPARQLWrapperを使わない方法を書いておきます。意外にこちらの方がシンプルかも。

import urllib.request
import urllib.parse

data = urllib.parse.quote('''
        PREFIX refexo: <http://purl.jp/bio/01/refexo#>
        PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>
        PREFIX refexs: <http://refex.dbcls.jp/sample/>
        SELECT DISTINCT ?organism
        WHERE {
         refexs:RES00000003 refexo:organism ?organism .
        }
''')

# 細かい設定をするため、Request objectを使う
req = urllib.request.Request("https://integbio.jp/rdf/sparql?query=%s" % data)
req.add_header('Accept', 'application/sparql-results+json')
response = urllib.request.urlopen(req)

result = response.read()