User:Edoderoobot/normalized label to alias.py
Jump to navigation
Jump to search
import pywikibot
from pywikibot import pagegenerators as pg
query=u'select ?item where { ?item wdt:P31 wd:Q5 . ?item wdt:P27 wd:Q43 . ?item wdt:P106 wd:Q937857 }'
query=u'select ?item where { ?item wdt:P31 wd:Q5 . ?item wdt:P27 wd:Q43 . }'
conversion = {
u'Ç': u'C', u'ç': u'c', u'ß': u'ss', u'æ': u'ae', u'Æ': u'AE', u'Ł': u'L', u'ł': u'l', u'ź': u'z', u'Ź': u'Z', u'Ć': u'C', u'ć': u'c', u'ž': u'z', u'İ': u'I',
u'à': u'a', u'á': u'a', u'ä': u'a', u'â': u'a', u'À': u'A', u'Á': u'A', u'Ä': u'A', u'Â': u'A', u'å': u'a', u'Å': u'A', u'ą': u'a', u'Ą': u'A', u'Ñ': u'N',
u'é': u'e', u'ë': u'e', u'è': u'e', u'ê': u'e', u'È': u'E', u'É': u'E', u'Ë': u'E', u'Ê': u'E', u'ę': u'e', u'E': u'E', u'ń': u'n', u'ś': u's', u'ñ': u'n',
u'ì': u'i', u'í': u'i', u'ï': u'i', u'î': u'i', u'Ï': u'I', u'Î': u'I', u'Í': u'I', u'Ì': u'I', u'ż': u'z', u'Ń': u'N', u'Ś': u'S', u'Ž': u'Z', u'Ð': u'dh',
u'ò': u'o', u'ó': u'o', u'ö': u'o', u'ô': u'o', u'Ò': u'O', u'Ó': u'O', u'Ö': u'O', u'Ô': u'O', u'ø': u'o', u'Ø': u'O', u'Ż': u'Z', u'ÿ': u'ij', u'ð': u'dh',
u'ù': u'u', u'ú': u'u', u'ü': u'u', u'û': u'u', u'Ù': u'U', u'Ú': u'U', u'Û': u'U', u'Ü': u'U', u'Ű': u'U', u'ű': u'u', u'ő': u'o', u'Ő': u'O', u'Đ': u'Dj',
u'č': u'c', u'Č': u'C', u'Ė': u'E', u'ė': u'e', u'į': u'I', u'Į': u'i', u'š': u's', u'Š': u'S', u'Ų': u'U', u'ų': u'u', u'ū': u'u', u'Ū': u'U', u'đ': u'dj',
u'ı': u'i', u'ş': u's', u'Ş': u'S', u'ğ': u'g', u'Þ': u'Th', u'þ': u'th', u'Ý': u'Y', u'ý': u'y', u'': u'', u'': u'', u'': u'', u'': u'', u'': u'',
}
def wd_sparql_generator(query):
wikidatasite=pywikibot.Site('wikidata',u'wikidata')
generator=pg.WikidataSPARQLPageGenerator(query,site=wikidatasite)
for wd in generator:
if (not wd.isRedirectPage()):
if (wd.exists()):
wd.get(get_redirect=True)
yield wd
def action_one_item(wd):
if (not 'nl' in wd.labels): return
name=wd.labels['nl']
result=u''
for i in range(0,len(name)):
onechar=name[i:i+1]
if (onechar in conversion):
result += conversion[onechar]
else:
result += onechar
if (result!=name):
if ('nl' in wd.aliases):
for alias in wd.aliases['nl']:
if alias==result:
return #alias already set
data={}
resultArray=[]
resultArray.append(result)
data.update({'aliases' :{'nl':resultArray}})
print(data)
wd.editEntity(data,summary=u'#normalize-alias, [[User:Edoderoobot/normalized_label_to_alias.py|python code]]')
else:
print(name) #to see if more characters should be converted
def main():
#wd=pywikibot.ItemPage(pywikibot.Site().data_repository(),'Q1474991')
#wd.get()
#action_one_item(wd)
#print(0/0)
items = wd_sparql_generator(query)
for oneitem in items:
action_one_item(oneitem)
main()