From cfed90c1096a92c4c9e622dfe2d55d892595b2ff Mon Sep 17 00:00:00 2001 From: Ido Ivri Date: Sun, 30 Oct 2016 19:47:28 +0200 Subject: initial commit of work done in DataHack --- writers/__init__.py | 0 writers/wd_writer.py | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 writers/__init__.py create mode 100755 writers/wd_writer.py (limited to 'writers') diff --git a/writers/__init__.py b/writers/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/writers/wd_writer.py b/writers/wd_writer.py new file mode 100755 index 0000000..62ab11c --- /dev/null +++ b/writers/wd_writer.py @@ -0,0 +1,26 @@ +import pywikibot +from pywikibot import pagegenerators +from pywikibot.data import wikidataquery + +repo = pywikibot.Site().data_repository() + + +def write_to_wd(entity): + if entity.viaf: + a = get_entity_by_viaf(entity.viaf) + + +# Finds the matching record in Wikidata by VIAF identifier +def get_entity_by_viaf(viaf): + sparql = "SELECT ?item WHERE {{ ?item wdt:P214 ?VIAF filter(?VIAF = '{}') }}".format(viaf) + + entities = pagegenerators.WikidataQueryPageGenerator(sparql) + entities = list(entities) + if len(entities) == 0: + print("No entity found for VIAF: {}".format(viaf)) + return None + elif len(entities) > 1: + # TODO: is it possible to have multiple VIAFs? + raise Exception('VIAF is expected to be unique') + import pdb; pdb.set_trace() + return entities[0] \ No newline at end of file -- cgit v1.2.3