diff options
author | Ido Ivri <ido@zencity.io> | 2016-10-30 19:47:28 +0200 |
---|---|---|
committer | Ido Ivri <ido@zencity.io> | 2016-10-30 19:47:28 +0200 |
commit | cfed90c1096a92c4c9e622dfe2d55d892595b2ff (patch) | |
tree | df8a996130a7ad199ede2312412d798147576d84 /writers |
initial commit of work done in DataHack
Diffstat (limited to 'writers')
-rwxr-xr-x | writers/__init__.py | 0 | ||||
-rwxr-xr-x | writers/wd_writer.py | 26 |
2 files changed, 26 insertions, 0 deletions
diff --git a/writers/__init__.py b/writers/__init__.py new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/writers/__init__.py 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 |