1
0
datagraph/wikidata.py

27 lines
897 B
Python

def get_triples(client, subject = None, predicate = None, object = None):
time.sleep(1)
params = {
'subject': fmt_triple_value(subject),
'predicate': fmt_triple_value(predicate),
'object': fmt_triple_value(object),
'page': 1,
}
headers = {'accept': 'application/ld+json'}
result = requests.get('https://query.wikidata.org/bigdata/ldf',
params = params,
headers = headers,
)
triples = []
if result.status_code != 200:
logging.error('Got %s error message: %s', result.status_code, repr((subject, predicate, object)))
return []
for item in result.json()['@graph']:
if item['@id'].startswith('wd:') and predicate.id in item:
s = item['@id'][3:]
triples.append((client.get(s, load = False), predicate, object))
return triples