import urllib
import json
import urllib
import urllib.request

mp_query='''
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>

SELECT ?hansard ?party WHERE { 
?mp dcterms:subject <http://dbpedia.org/resource/Category:UK_MPs_2001%E2%80%932005> .
?mp dbpedia-owl:party ?party .
?mp dbpprop:hansard ?hansard .
}'''


endpoint = "http://DBpedia.org/sparql"

print("POSTing SPARQL query to {}".format(endpoint))
params = { 'query': mp_query }
headers = { 
  'content-type': 'application/x-www-form-urlencoded;charset=utf-8', 
  'accept': 'application/sparql-results+json' 
}

data=urllib.parse.urlencode(params).encode('utf-8')
request=urllib.request.Request(endpoint, data, headers)

result=urllib.request.urlopen(request)
result_string=result.read().decode('utf-8')
json_data=json.loads(result_string)
mps=json_data['results']['bindings']

for x in mps:
    print(x['hansard']['value'], '::', x['party']['value'])
