ব্যবহারকারী:আফতাব বট/উইকিউপাত্তে নদীর বিবরণ

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Copyright (C) 2017 emijrp <emijrp@gmail.com> & Aftabuzzaman
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import re
import time
import urllib.parse

import pwb
import pywikibot
from wikidatafun import *

"""
    #filter by language
    SELECT ?item
    WHERE {
        ?item wdt:P31 wd:Q101352 .
        FILTER NOT EXISTS { ?item wdt:P31 wd:Q4167410 } . 
        OPTIONAL { ?item schema:description ?itemDescription. FILTER(LANG(?itemDescription) = "ca").  }
        FILTER (!BOUND(?itemDescription))
    }
    #all surnames
    SELECT ?item
    WHERE {
        ?item wdt:P31 wd:Q101352 .
        FILTER NOT EXISTS { ?item wdt:P31 wd:Q4167410 } . 
    }
"""
#family
#genus
#species
#proteins https://query.wikidata.org/bigdata/namespace/wdq/sparql?query=SELECT%20%3FitemDescription%20(COUNT(%3Fitem)%20AS%20%3Fcount)%0AWHERE%20%7B%0A%09%3Fitem%20wdt%3AP279%20wd%3AQ8054.%0A%20%20%20%20%3Fitem%20schema%3Adescription%20%22mammalian%20protein%20found%20in%20Mus%20musculus%22%40en.%0A%20%20%20%20OPTIONAL%20%7B%20%3Fitem%20schema%3Adescription%20%3FitemDescription.%20FILTER(LANG(%3FitemDescription)%20%3D%20%22es%22).%20%20%7D%0A%09FILTER%20(BOUND(%3FitemDescription))%0A%7D%0AGROUP%20BY%20%3FitemDescription%0AORDER%20BY%20DESC(%3Fcount)

def main():
    fixthiswhenfound = { #fix (overwrite) old, wrong or poor translations
        'genus of arachnids': {
            'bn': ['আর‍্যাকনিডের গণ'], #https://www.wikidata.org/w/index.php?title=Q27165025&type=revision&diff=486050731&oldid=466952438
        },
        'species of arachnid': {
            'bn': ['আর‍্যাকনিডের প্রজাতি'], #because "mbiemri" = "the family name"
        },
        'species of insect': {
            'sq': ['specie e insekteve'], #https://github.com/emijrp/wikidata/pull/47
        },
        'village in China': {
            'bn': ['চীনের গ্রাম'], #https://www.wikidata.org/w/index.php?title=User_talk:Emijrp&diff=prev&oldid=510797889
            'fi': ['kiinalainen kylä'], #https://www.wikidata.org/w/index.php?title=User_talk:Emijrp&diff=468197059&oldid=463649230
            'id': ['desa di Cina'],
        }, 
        'Wikimedia category': {
            'be': ['катэгарызацыя'], #https://www.wikidata.org/w/index.php?title=User:Emijrp/Wikimedia_project_pages_matrix&diff=next&oldid=500158307
            'be-tarask': ['Катэгорыя'],#https://www.wikidata.org/w/index.php?title=User:Emijrp/Wikimedia_project_pages_matrix&diff=next&oldid=500158307
            'es': ['categoría de Wikipedia'],
            'mk': ['категорија на Википедија'],
            'uk': ['Категорії', 'категорія в проекті Вікімедіа'], #https://www.wikidata.org/w/index.php?title=User_talk%3AEmijrp&type=revision&diff=527336622&oldid=525302741
        }, 
        'Wikimedia disambiguation page': {
            'el': ['σελίδα αποσαφήνισης'],#https://www.wikidata.org/w/index.php?title=Q29449981&diff=prev&oldid=567203989
            'es': ['desambiguación de Wikipedia'], 
            'fy': ['Betsjuttingsside'], #https://www.wikidata.org/w/index.php?title=User:Emijrp/Wikimedia_project_pages_matrix&curid=30597789&diff=499110338&oldid=498167178
            'id': ['halaman disambiguasi'], 
            'tg': ['саҳифаи ибҳомзудоии Викимаълумот'], #https://www.wikidata.org/w/index.php?title=Topic:Ts4qkooukddjcuq9&topic_showPostId=ts4rax4ro9brqqgj#flow-post-ts4rax4ro9brqqgj
            'tt': ['Википедия:Күп мәгънәле мәкаләләр'],
        }, 
        'Wikimedia list article': {
            'tg': ['саҳифае, ки аз рӯйхат иборат аст'], #https://www.wikidata.org/w/index.php?title=Q13406463&diff=prev&oldid=498154491
        }, 
        'Wikimedia template': {
            'be': ['шаблон Вікіпедыя'],
            'be-tarask': ['шаблён Вікіпэдыя'],
            'eu': ['Wikimediarako txantiloia'], #https://www.wikidata.org/w/index.php?title=Q11266439&type=revision&diff=469566880&oldid=469541605
            'id': ['templat Wikipedia'],
            'nb': ['Wikipedia mal'],
            'nn': ['Wikipedia mal'],
            'pl': ['szablon Wikipedii'],
            'sq': ['Wikipedia stampa'],
            'sv': ['Wikipedia mall'],
            'sw': ['kigezo Wikipedia'],
            'tg': ['Шаблони Викимедиа', 'шаблон Википедиа'], #https://www.wikidata.org/w/index.php?title=Q11266439&diff=prev&oldid=498153879
            'tr': ['şablon Vikipedi'],
            'uk': ['шаблон Вікіпедії'],
            'yo': ['àdàkọ Wikipedia'],
            'vi': ['bản mẫu Wikipedia'],
        },
        'Wikinews article': {
            'nl': ['Wikinews-artikel'], 
        },
    }
    translations = {
        'river in Afghanistan': {
         'bn': 'আফগানিস্তানের নদী',
},
'river in Albania': {
         'bn': 'আলবেনিয়ার নদী',
},
'river in Algeria': {
         'bn': 'আলজেরিয়ার নদী',
},
'river in Andorra': {
         'bn': 'অ্যান্ডোরার নদী',
},
'river in Angola': {
         'bn': 'অ্যাঙ্গোলার নদী',
},
'river in Antigua and Barbuda': {
         'bn': 'অ্যান্টিগুয়া ও বার্বুডার নদী',
},
'river in Argentina': {
         'bn': 'আর্জেন্টিনার নদী',
},
'river in Armenia': {
         'bn': 'আর্মেনিয়ার নদী',
},
'river in Australia': {
         'bn': 'অস্ট্রেলিয়ার নদী',
},
'river in Austria': {
         'bn': 'অস্ট্রিয়ার নদী',
},
'river in Azerbaijan': {
         'bn': 'আজারবাইজানের নদী',
},
'river in Bahamas': {
         'bn': 'বাহামা দ্বীপপুঞ্জের নদী',
},
'river in Bahrain': {
         'bn': 'বাহরাইনের নদী',
},
'river in Bangladesh': {
         'bn': 'বাংলাদেশের নদী',
},
'river in Barbados': {
         'bn': 'বার্বাডোসের নদী',
},
'river in Belarus': {
         'bn': 'বেলারুশের নদী',
},
'river in Belgium': {
         'bn': 'বেলজিয়ামের নদী',
},
'river in Belize': {
         'bn': 'বেলিজের নদী',
},
'river in Benin': {
         'bn': 'বেনিনের নদী',
},
'river in Bermuda': {
         'bn': 'বারমুডার নদী',
},
'river in Bhutan': {
         'bn': 'ভূটানের নদী',
},
'river in Bolivia': {
         'bn': 'বলিভিয়ার নদী',
},
'river in Bosnia and Herzegovina': {
         'bn': 'বসনিয়া ও হার্জেগোভিনার নদী',
},
'river in Botswana': {
         'bn': 'বতসোয়ানার নদী',
},
'river in Brazil': {
         'bn': 'ব্রাজিলের নদী',
},
'river in Brunei': {
         'bn': 'ব্রুনাইয়ের নদী',
},
'river in Bulgaria': {
         'bn': 'বুলগেরিয়ার নদী',
},
'river in Burkina Faso': {
         'bn': 'বুর্কিনা ফাসোর নদী',
},
'river in Myanmar': {
         'bn': 'মায়ানমারের নদী',
},
'river in Burundi': {
         'bn': 'বুরুন্ডির নদী',
},
'river in Cambodia': {
         'bn': 'কম্বোডিয়ার নদী',
},
'river in Cameroon': {
         'bn': 'ক্যামেরুনের নদী',
},
'river in Canada': {
         'bn': 'কানাডার নদী',
},
'river in Cape Verde': {
         'bn': 'কাবু ভের্দির নদী',
},
'river in Central African Republic': {
         'bn': 'মধ্য আফ্রিকান প্রজাতন্ত্রের নদী',
},
'river in Chad': {
         'bn': 'চাদের নদী',
},
'river in Chile': {
         'bn': 'চিলির নদী',
},
'river in China': {
         'bn': 'চীনের নদী',
},
'river in Colombia': {
         'bn': 'কলম্বিয়ার নদী',
},
'river in Comoros': {
         'bn': 'কোমোরোসের নদী',
},
'river in Congo': {
         'bn': 'কঙ্গোর নদী',
},
'river in Costa Rica': {
         'bn': 'কোস্টা রিকার নদী',
},
'river in Croatia': {
         'bn': 'ক্রোয়েশিয়ার নদী',
},
'river in Cuba': {
         'bn': 'কিউবার নদী',
},
'river in Cyprus': {
         'bn': 'সাইপ্রাসের নদী',
},
'river in Czech Republic': {
         'bn': 'চেক প্রজাতন্ত্রের নদী',
},
'river in Denmark': {
         'bn': 'ডেনমার্কের নদী',
},
'river in Djibouti': {
         'bn': 'জিবুতির নদী',
},
'river in Dominican Republic': {
         'bn': 'ডোমিনিকান প্রজাতন্ত্রের নদী',
},
'river in Dominica': {
         'bn': 'ডোমিনিকার নদী',
},
'river in Ecuador': {
         'bn': 'ইকুয়েডরের নদী',
},
'river in Egypt': {
         'bn': 'মিশরের নদী',
},
'river in El Salvador': {
         'bn': 'এল সালভাদোরের নদী',
},
'river in Equatorial Guinea': {
         'bn': 'বিষুবীয় গিনির নদী',
},
'river in Eritrea': {
         'bn': 'ইরিত্রিয়ার নদী',
},
'river in Estonia': {
         'bn': 'এস্তোনিয়ার নদী',
},
'river in Ethiopia': {
         'bn': 'ইথিওপিয়ার নদী',
},
'river in Fiji': {
         'bn': 'ফিজির নদী',
},
'river in Finland': {
         'bn': 'ফিনল্যান্ডের নদী',
},
'river in France': {
         'bn': 'ফ্রান্সের নদী',
},
'river in French Guiana': {
         'bn': 'ফরাসি গায়ানার নদী',
},
'river in Gabon': {
         'bn': 'গ্যাবনের নদী',
},
'river in Gambia': {
         'bn': 'গাম্বিয়ার নদী',
},
'river in Georgia': {
         'bn': 'জর্জিয়া নদী',
},
'river in Germany': {
         'bn': 'জার্মানির নদী',
},
'river in Ghana': {
         'bn': 'ঘানার নদী',
},
'river in Great Britain': {
         'bn': 'গ্রেট ব্রিটেনের নদী',
},
'river in Greece': {
         'bn': 'গ্রিসের নদী',
},
'river in Grenada': {
         'bn': 'গ্রেনাডার নদী',
},
'river in Guadeloupe': {
         'bn': 'গুয়াদলুপের নদী',
},
'river in Guatemala': {
         'bn': 'গুয়াতেমালার নদী',
},
'river in Guinea': {
         'bn': 'গিনির নদী',
},
'river in Guinea-Bissau': {
         'bn': 'গিনি-বিসাউয়ের নদী',
},
'river in Guyana': {
         'bn': 'গায়ানার নদী',
},
'river in Haiti': {
         'bn': 'হাইতির নদী',
},
'river in Honduras': {
         'bn': 'হন্ডুরাসের নদী',
},
'river in Hungary': {
         'bn': 'হাঙ্গেরির নদী',
},
'river in Iceland': {
         'bn': 'আইসল্যান্ডের নদী',
},
'river in India': {
         'bn': 'ভারতের নদী',
},
'river in Indonesia': {
         'bn': 'ইন্দোনেশিয়ার নদী',
},
'river in Iran': {
         'bn': 'ইরানের নদী',
},
'river in Iraq': {
         'bn': 'ইরাকের নদী',
},
'river in Ireland': {
         'bn': 'আয়ারল্যান্ডের নদী',
},
'river in Israel': {
         'bn': 'ইসরায়েলের নদী',
},
'river in Italy': {
         'bn': 'ইতালির নদী',
},
'river in Ivory Coast': {
         'bn': 'কোত দিভোয়ারের নদী',
},
'river in Jamaica': {
         'bn': 'জ্যামাইকার নদী',
},
'river in Japan': {
         'bn': 'জাপানের নদী',
},
'river in Jordan': {
         'bn': 'জর্দানের নদী',
},
'river in Kazakhstan': {
         'bn': 'কাজাখস্তানের নদী',
},
'river in Kenya': {
         'bn': 'কেনিয়ার নদী',
},
'river in Kosovo': {
         'bn': 'কসোভোর নদী',
},
'river in Kuwait': {
         'bn': 'কুয়েতের নদী',
},
'river in Kyrgyzstan': {
         'bn': 'কির্গিজস্তানের নদী',
},
'river in Laos': {
         'bn': 'লাওসের নদী',
},
'river in Latvia': {
         'bn': 'লাতভিয়ার নদী',
},
'river in Lebanon': {
         'bn': 'লেবাননের নদী',
},
'river in Lesotho': {
         'bn': 'লেসোথোর নদী',
},
'river in Liberia': {
         'bn': 'লাইবেরিয়ার নদী',
},
'river in Libya': {
         'bn': 'লিবিয়ার নদী',
},
'river in Liechtenstein': {
         'bn': 'লিশটেনস্টাইনের নদী',
},
'river in Lithuania': {
         'bn': 'লিথুয়ানিয়ার নদী',
},
'river in Luxembourg': {
         'bn': 'লুক্সেমবুর্গের নদী',
},
'river in Macedonia': {
         'bn': 'ম্যাসেডোনিয়ার নদী',
},
'river in Madagascar': {
         'bn': 'মাদাগাস্কারের নদী',
},
'river in Malawi': {
         'bn': 'মালাউইয়ের নদী',
},
'river in Malaysia': {
         'bn': 'মালয়েশিয়ার নদী',
},
'river in Maldives': {
         'bn': 'মালদ্বীপের নদী',
},
'river in Mali': {
         'bn': 'মালির নদী',
},
'river in Malta': {
         'bn': 'মাল্টার নদী',
},
'river in Martinique': {
         'bn': 'মার্তিনিকের নদী',
},
'river in Mauritania': {
         'bn': 'মৌরিতানিয়ার নদী',
},
'river in Mauritius': {
         'bn': 'মরিশাসের নদী',
},
'river in Mayotte': {
         'bn': 'মায়োতের নদী',
},
'river in Mexico': {
         'bn': 'মেক্সিকোর নদী',
},
'river in Moldova': {
         'bn': 'মলদোভার নদী',
},
'river in Monaco': {
         'bn': 'মোনাকোর নদী',
},
'river in Mongolia': {
         'bn': 'মঙ্গোলিয়ার নদী',
},
'river in Montenegro': {
         'bn': 'মন্টিনিগ্রোর নদী',
},
'river in Morocco': {
         'bn': 'মরক্কোর নদী',
},
'river in Mozambique': {
         'bn': 'মোজাম্বিকের নদী',
},
'river in Namibia': {
         'bn': 'নামিবিয়ার নদী',
},
'river in Nepal': {
         'bn': 'নেপালের নদী',
},
'river in Netherlands': {
         'bn': 'নেদারল্যান্ডসের নদী',
},
'river in New Zealand': {
         'bn': 'নিউজিল্যান্ডের নদী',
},
'river in Nicaragua': {
         'bn': 'নিকারাগুয়ার নদী',
},
'river in Niger': {
         'bn': 'নাইজারের নদী',
},
'river in Nigeria': {
         'bn': 'নাইজেরিয়ার নদী',
},
'river in North Korea': {
         'bn': 'উত্তর কোরিয়ার নদী',
},
'river in Norway': {
         'bn': 'নরওয়ের নদী',
},
'river in Oman': {
         'bn': 'ওমানের নদী',
},
'river in Pakistan': {
         'bn': 'পাকিস্তানের নদী',
},
'river in Panama': {
         'bn': 'পানামার নদী',
},
'river in Papua New Guinea': {
         'bn': 'পাপুয়া নিউগিনির নদী',
},
'river in Paraguay': {
         'bn': 'প্যারাগুয়ের নদী',
},
'river in Peru': {
         'bn': 'পেরুর নদী',
},
'river in Philippines': {
         'bn': 'ফিলিপাইনের নদী',
},
'river in Poland': {
         'bn': 'পোল্যান্ডের নদী',
},
'river in Portugal': {
         'bn': 'পর্তুগালের নদী',
},
'river in Puerto Rico': {
         'bn': 'পুয়ের্তো রিকোর নদী',
},
'river in Qatar': {
         'bn': 'কাতারের নদী',
},
'river in Romania': {
         'bn': 'রোমানিয়ার নদী',
},
'river in Russian Federation': {
         'bn': 'রাশিয়ার নদী',
},
'river in Rwanda': {
         'bn': 'রুয়ান্ডার নদী',
},
'river in Saint Kitts and Nevis': {
         'bn': 'সেন্ট কিট্‌স ও নেভিসের নদী',
},
'river in Saint Lucia': {
         'bn': 'সেন্ট লুসিয়ার নদী',
},
'river in Samoa': {
         'bn': 'সামোয়ার নদী',
},
'river in Sao Tome and Principe': {
         'bn': 'সাঁউ তুমি ও প্রিন্সিপির নদী',
},
'river in Saudi Arabia': {
         'bn': 'সৌদি আরবের নদী',
},
'river in Senegal': {
         'bn': 'সেনেগালের নদী',
},
'river in Serbia': {
         'bn': 'সার্বিয়ার নদী',
},
'river in Seychelles': {
         'bn': 'সেশেলের নদী',
},
'river in Sierra Leone': {
         'bn': 'সিয়েরা লিওনের নদী',
},
'river in Singapore': {
         'bn': 'সিঙ্গাপুরের নদী',
},
'river in Slovakia': {
         'bn': 'স্লোভাকিয়া নদী',
},
'river in Slovenia': {
         'bn': 'স্লোভেনিয়ার নদী',
},
'river in Solomon Islands': {
         'bn': 'সলোমন দ্বীপপুঞ্জের নদী',
},
'river in Somalia': {
         'bn': 'সোমালিয়ার নদী',
},
'river in South Africa': {
         'bn': 'দক্ষিণ আফ্রিকার নদী',
},
'river in South Korea': {
         'bn': 'দক্ষিণ কোরিয়ার নদী',
},
'river in South Sudan': {
         'bn': 'দক্ষিণ সুদানের নদী',
},
'river in Spain': {
         'bn': 'স্পেনের নদী',
},
'river in Sri Lanka': {
         'bn': 'শ্রীলঙ্কার নদী',
},
'river in Sudan': {
         'bn': 'সুদানের নদী',
},
'river in Suriname': {
         'bn': 'সুরিনামের নদী',
},
'river in Swaziland': {
         'bn': 'সোয়াজিল্যান্ডের নদী',
},
'river in Sweden': {
         'bn': 'সুইডেনের নদী',
},
'river in Switzerland': {
         'bn': 'সুইজারল্যান্ডের নদী',
},
'river in Syria': {
         'bn': 'সিরিয়ার নদী',
},
'river in Tajikistan': {
         'bn': 'তাজিকিস্তানের নদী',
},
'river in Tanzania': {
         'bn': 'তানজানিয়ার নদী',
},
'river in Thailand': {
         'bn': 'থাইল্যান্ডের নদী',
},
'river in Timor Leste': {
         'bn': 'পূর্ব তিমুরের নদী',
},
'river in Togo': {
         'bn': 'টোগোর নদী',
},
'river in Trinidad and Tobago': {
         'bn': 'ত্রিনিদাদ ও টোবাগোর নদী',
},
'river in Tunisia': {
         'bn': 'তিউনিসিয়ার নদী',
},
'river in Turkey': {
         'bn': 'তুরস্কের নদী',
},
'river in Turkmenistan': {
         'bn': 'তুর্কমেনিস্তানের নদী',
},
'river in Uganda': {
         'bn': 'উগান্ডার নদী',
},
'river in Ukraine': {
         'bn': 'ইউক্রেনের নদী',
},
'river in United Arab Emirates': {
         'bn': 'সংযুক্ত আরব আমিরাতের নদী',
},
'river in United States of America': {
         'bn': 'মার্কিন যুক্তরাষ্ট্রের নদী',
},
'river in Uruguay': {
         'bn': 'উরুগুয়ের নদী',
},
'river in Uzbekistan': {
         'bn': 'উজবেকিস্তানের নদী',
},
'river in Venezuela': {
         'bn': 'ভেনেজুয়েলার নদী',
},
'river in Vietnam': {
         'bn': 'ভিয়েতনামের নদী',
},
'river in Yemen': {
         'bn': 'ইয়েমেনের নদী',
},
'river in Zambia': {
         'bn': 'জাম্বিয়ার নদী',
},
'river in Zimbabwe': {
         'bn': 'জিম্বাবুয়ের নদী',
},

    }
    site = pywikibot.Site('wikidata', 'wikidata')
    repo = site.data_repository()
    querylimit = 10000
    queries = {
        
        'river in Afghanistan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Afghanistan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Albania': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Albania", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Algeria': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Algeria", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Andorra': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Andorra", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Angola': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Angola", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Antigua and Barbuda': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Antigua and Barbuda", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Argentina': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Argentina", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Armenia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Armenia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Australia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Australia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Austria': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Austria", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Azerbaijan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Azerbaijan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bahamas': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bahamas", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bahrain': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bahrain", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bangladesh': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bangladesh", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Barbados': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Barbados", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Belarus': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Belarus", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Belgium': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Belgium", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Belize': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Belize", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Benin': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Benin", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bermuda': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bermuda", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bhutan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bhutan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bolivia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bolivia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bosnia and Herzegovina': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bosnia and Herzegovina", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Botswana': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Botswana", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Brazil': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Brazil", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Brunei': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Brunei", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Bulgaria': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Bulgaria", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Burkina Faso': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Burkina Faso", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Myanmar': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Myanmar", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Burundi': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Burundi", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Cambodia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Cambodia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Cameroon': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Cameroon", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Canada': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Canada", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Cape Verde': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Cape Verde", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Central African Republic': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Central African Republic", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Chad': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Chad", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Chile': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Chile", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in China': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in China", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Colombia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Colombia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Comoros': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Comoros", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Congo': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Congo", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Costa Rica': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Costa Rica", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Croatia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Croatia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Cuba': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Cuba", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Cyprus': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Cyprus", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Czech Republic': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Czech Republic", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Denmark': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Denmark", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Djibouti': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Djibouti", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Dominican Republic': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Dominican Republic", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Dominica': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Dominica", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Ecuador': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Ecuador", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Egypt': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Egypt", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in El Salvador': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in El Salvador", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Equatorial Guinea': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Equatorial Guinea", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Eritrea': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Eritrea", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Estonia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Estonia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Ethiopia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Ethiopia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Fiji': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Fiji", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Finland': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Finland", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in France': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in France", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in French Guiana': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in French Guiana", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Gabon': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Gabon", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Gambia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Gambia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Georgia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Georgia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Germany': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Germany", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Ghana': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Ghana", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Great Britain': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Great Britain", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Greece': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Greece", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Grenada': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Grenada", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Guadeloupe': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Guadeloupe", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Guatemala': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Guatemala", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Guinea': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Guinea", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Guinea-Bissau': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Guinea-Bissau", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Guyana': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Guyana", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Haiti': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Haiti", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Honduras': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Honduras", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Hungary': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Hungary", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Iceland': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Iceland", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in India': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in India", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Indonesia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Indonesia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Iran': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Iran", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Iraq': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Iraq", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Ireland': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Ireland", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Israel': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Israel", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Italy': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Italy", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Ivory Coast': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Ivory Coast", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Jamaica': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Jamaica", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Japan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Japan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Jordan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Jordan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Kazakhstan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Kazakhstan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Kenya': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Kenya", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Kosovo': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Kosovo", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Kuwait': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Kuwait", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Kyrgyzstan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Kyrgyzstan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Laos': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Laos", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Latvia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Latvia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Lebanon': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Lebanon", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Lesotho': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Lesotho", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Liberia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Liberia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Libya': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Libya", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Liechtenstein': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Liechtenstein", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Lithuania': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Lithuania", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Luxembourg': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Luxembourg", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Macedonia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Macedonia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Madagascar': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Madagascar", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Malawi': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Malawi", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Malaysia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Malaysia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Maldives': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Maldives", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mali': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mali", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Malta': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Malta", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Martinique': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Martinique", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mauritania': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mauritania", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mauritius': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mauritius", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mayotte': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mayotte", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mexico': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mexico", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Moldova': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Moldova", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Monaco': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Monaco", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mongolia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mongolia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Montenegro': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Montenegro", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Morocco': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Morocco", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Mozambique': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Mozambique", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Namibia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Namibia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Nepal': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Nepal", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Netherlands': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Netherlands", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in New Zealand': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in New Zealand", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Nicaragua': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Nicaragua", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Niger': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Niger", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Nigeria': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Nigeria", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in North Korea': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in North Korea", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Norway': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Norway", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Oman': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Oman", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Pakistan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Pakistan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Panama': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Panama", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Papua New Guinea': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Papua New Guinea", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Paraguay': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Paraguay", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Peru': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Peru", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Philippines': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Philippines", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Poland': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Poland", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Portugal': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Portugal", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Puerto Rico': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Puerto Rico", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Qatar': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Qatar", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Romania': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Romania", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Russian Federation': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Russian Federation", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Rwanda': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Rwanda", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Saint Kitts and Nevis': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Saint Kitts and Nevis", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Saint Lucia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Saint Lucia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Samoa': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Samoa", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Sao Tome and Principe': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Sao Tome and Principe", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Saudi Arabia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Saudi Arabia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Senegal': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Senegal", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Serbia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Serbia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Seychelles': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Seychelles", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Sierra Leone': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Sierra Leone", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Singapore': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Singapore", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Slovakia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Slovakia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Slovenia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Slovenia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Solomon Islands': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Solomon Islands", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Somalia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Somalia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in South Africa': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in South Africa", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in South Korea': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in South Korea", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in South Sudan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in South Sudan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Spain': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Spain", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Sri Lanka': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Sri Lanka", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Sudan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Sudan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Suriname': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Suriname", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Swaziland': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Swaziland", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Sweden': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Sweden", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Switzerland': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Switzerland", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Syria': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Syria", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Tajikistan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Tajikistan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Tanzania': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Tanzania", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Thailand': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Thailand", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Timor Leste': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Timor Leste", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Togo': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Togo", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Trinidad and Tobago': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Trinidad and Tobago", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Tunisia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Tunisia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Turkey': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Turkey", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Turkmenistan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Turkmenistan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Uganda': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Uganda", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Ukraine': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Ukraine", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in United Arab Emirates': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in United Arab Emirates", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in United States of America': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in United States of America", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Uruguay': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Uruguay", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Uzbekistan': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Uzbekistan", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Venezuela': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Venezuela", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Vietnam': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Vietnam", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Yemen': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Yemen", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Zambia': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Zambia", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        'river in Zimbabwe': [
        """
        SELECT ?item {
  BIND( STRLANG( "river in Zimbabwe", "en" ) AS ?desc ) .
  ?item schema:description ?desc .
  }
        """
        ],
        
    }
    queries_list = [x for x in queries.keys()]
    queries_list.sort()
    skip = ''
    topics = [ #uncomment topics you want to add descriptions to
        #'asteroid',
        #'chemical compound',
        
        #'family name',
        #'female given name',
        #'male given name',
        
        'river in Afghanistan',
'river in Albania',
'river in Algeria',
'river in Andorra',
'river in Angola',
'river in Antigua and Barbuda',
'river in Argentina',
'river in Armenia',
'river in Australia',
'river in Austria',
'river in Azerbaijan',
'river in Bahamas',
'river in Bahrain',
'river in Bangladesh',
'river in Barbados',
'river in Belarus',
'river in Belgium',
'river in Belize',
'river in Benin',
'river in Bermuda',
'river in Bhutan',
'river in Bolivia',
'river in Bosnia and Herzegovina',
'river in Botswana',
'river in Brazil',
'river in Brunei',
'river in Bulgaria',
'river in Burkina Faso',
'river in Myanmar',
'river in Burundi',
'river in Cambodia',
'river in Cameroon',
'river in Canada',
'river in Cape Verde',
'river in Central African Republic',
'river in Chad',
'river in Chile',
'river in China',
'river in Colombia',
'river in Comoros',
'river in Congo',
'river in Costa Rica',
'river in Croatia',
'river in Cuba',
'river in Cyprus',
'river in Czech Republic',
'river in Denmark',
'river in Djibouti',
'river in Dominican Republic',
'river in Dominica',
'river in Ecuador',
'river in Egypt',
'river in El Salvador',
'river in Equatorial Guinea',
'river in Eritrea',
'river in Estonia',
'river in Ethiopia',
'river in Fiji',
'river in Finland',
'river in France',
'river in French Guiana',
'river in Gabon',
'river in Gambia',
'river in Georgia',
'river in Germany',
'river in Ghana',
'river in Great Britain',
'river in Greece',
'river in Grenada',
'river in Guadeloupe',
'river in Guatemala',
'river in Guinea',
'river in Guinea-Bissau',
'river in Guyana',
'river in Haiti',
'river in Honduras',
'river in Hungary',
'river in Iceland',
'river in India',
'river in Indonesia',
'river in Iran',
'river in Iraq',
'river in Ireland',
'river in Israel',
'river in Italy',
'river in Ivory Coast',
'river in Jamaica',
'river in Japan',
'river in Jordan',
'river in Kazakhstan',
'river in Kenya',
'river in Kosovo',
'river in Kuwait',
'river in Kyrgyzstan',
'river in Laos',
'river in Latvia',
'river in Lebanon',
'river in Lesotho',
'river in Liberia',
'river in Libya',
'river in Liechtenstein',
'river in Lithuania',
'river in Luxembourg',
'river in Macedonia',
'river in Madagascar',
'river in Malawi',
'river in Malaysia',
'river in Maldives',
'river in Mali',
'river in Malta',
'river in Martinique',
'river in Mauritania',
'river in Mauritius',
'river in Mayotte',
'river in Mexico',
'river in Moldova',
'river in Monaco',
'river in Mongolia',
'river in Montenegro',
'river in Morocco',
'river in Mozambique',
'river in Namibia',
'river in Nepal',
'river in Netherlands',
'river in New Zealand',
'river in Nicaragua',
'river in Niger',
'river in Nigeria',
'river in North Korea',
'river in Norway',
'river in Oman',
'river in Pakistan',
'river in Panama',
'river in Papua New Guinea',
'river in Paraguay',
'river in Peru',
'river in Philippines',
'river in Poland',
'river in Portugal',
'river in Puerto Rico',
'river in Qatar',
'river in Romania',
'river in Russian Federation',
'river in Rwanda',
'river in Saint Kitts and Nevis',
'river in Saint Lucia',
'river in Samoa',
'river in Sao Tome and Principe',
'river in Saudi Arabia',
'river in Senegal',
'river in Serbia',
'river in Seychelles',
'river in Sierra Leone',
'river in Singapore',
'river in Slovakia',
'river in Slovenia',
'river in Solomon Islands',
'river in Somalia',
'river in South Africa',
'river in South Korea',
'river in South Sudan',
'river in Spain',
'river in Sri Lanka',
'river in Sudan',
'river in Suriname',
'river in Swaziland',
'river in Sweden',
'river in Switzerland',
'river in Syria',
'river in Tajikistan',
'river in Tanzania',
'river in Thailand',
'river in Timor Leste',
'river in Togo',
'river in Trinidad and Tobago',
'river in Tunisia',
'river in Turkey',
'river in Turkmenistan',
'river in Uganda',
'river in Ukraine',
'river in United Arab Emirates',
'river in United States of America',
'river in Uruguay',
'river in Uzbekistan',
'river in Venezuela',
'river in Vietnam',
'river in Yemen',
'river in Zambia',
'river in Zimbabwe',
        
        #'Wikimedia disambiguation page', 
        #'Wikimedia list article', 
        #'Wikimedia template', 
    ]
    for topic in queries_list:
        if not topic in topics:
            continue
        for url in queries[topic]:
            url = url.strip()
            if not url.startswith('http'):
                url = 'https://query.wikidata.org/bigdata/namespace/wdq/sparql?query=%s' % (urllib.parse.quote(url))
            url = '%s&format=json' % (url)
            print("Loading...", url)
            sparql = getURL(url=url)
            json1 = loadSPARQL(sparql=sparql)
            
            qlist = []
            for result in json1['results']['bindings']:
                q = 'item' in result and result['item']['value'].split('/entity/')[1] or ''
                if q:
                    qlist.append(q)
            if not qlist: #empty query result? maybe no more Q
                break
            
            for q in qlist:
                print('\n== %s [%s] ==' % (q, topic))
                if skip:
                    if q != skip:
                        print('Skiping...')
                        continue
                    else:
                        skip = ''
                
                item = pywikibot.ItemPage(repo, q)
                try: #to detect Redirect because .isRedirectPage fails
                    item.get()
                except:
                    print('Error while .get()')
                    continue
                
                #skiping items with en: sitelinks (temporal patch)
                #sitelinks = item.sitelinks
                #if 'enwiki' in sitelinks:
                #    continue
                
                descriptions = item.descriptions
                addedlangs = []
                fixedlangs = []
                for lang in translations[topic].keys():
                    if lang in descriptions.keys():
                        if topic in fixthiswhenfound and \
                           lang in fixthiswhenfound[topic] and \
                           descriptions[lang] in fixthiswhenfound[topic][lang]:
                            descriptions[lang] = translations[topic][lang]
                            fixedlangs.append(lang)
                    else:
                        descriptions[lang] = translations[topic][lang]
                        addedlangs.append(lang)
                
                if addedlangs or fixedlangs:
                    data = { 'descriptions': descriptions }
                    addedlangs.sort()
                    summary = 'বট - '
                    if addedlangs:
                        if fixedlangs:
                            summary += 'বিবরণ যোগ করেছে (১টি ভাষা): bn'
                            summary += ' / Fixing descriptions (%s languages): %s' % (len(fixedlangs), ', '.join(fixedlangs))
                        else:
                            summary += 'বিবরণ যোগ করেছে (১টি ভাষা): bn'
                    else:
                        if fixedlangs:
                            summary += 'Fixing descriptions (%s languages): %s' % (len(fixedlangs), ', '.join(fixedlangs))
                    print(summary)
                    try:
                        item.editEntity(data, summary=summary)
                    except:
                        print('Error while saving')
                        continue
    print("Finished successfully")

if __name__ == "__main__":
    main()