diff options
Diffstat (limited to 'writers/wd_writer.py')
-rwxr-xr-x | writers/wd_writer.py | 26 |
1 files changed, 26 insertions, 0 deletions
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 |