summaryrefslogtreecommitdiff
path: root/writers/wd_writer.py
diff options
context:
space:
mode:
Diffstat (limited to 'writers/wd_writer.py')
-rwxr-xr-xwriters/wd_writer.py26
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