summaryrefslogtreecommitdiff
path: root/writers
diff options
context:
space:
mode:
authorIdo Ivri <ido@zencity.io>2016-10-30 19:47:28 +0200
committerIdo Ivri <ido@zencity.io>2016-10-30 19:47:28 +0200
commitcfed90c1096a92c4c9e622dfe2d55d892595b2ff (patch)
treedf8a996130a7ad199ede2312412d798147576d84 /writers
initial commit of work done in DataHack
Diffstat (limited to 'writers')
-rwxr-xr-xwriters/__init__.py0
-rwxr-xr-xwriters/wd_writer.py26
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