User:KMLbot

Introduction
KML files contain coordinates relating to a feature, including linear features and polygons. The template generates links to download or view an article's related KML file, and enables WikiMiniAtlas to display the KML file. As KML files cannot be uploaded directly (see T28059), they are stored as wikitext. Through the Wikidata property, an article's Wikidata item can be linked to the item for its related KML file – which may be stored on any wiki connected to Wikidata.

Overview
This bot adds to articles which have KML files available through Wikidata. The basic process is:
 * 1) Get a list of Wikidata items which have both a KML file and an article on English Wikipedia
 * 2) Filter out articles which already have, or are a disambiguation page, or have been excluded with
 * 3) Use AWB to add to the end of each article (prior to DEFAULTSORT, interwikis, categories and stub templates)

Problems
If there is a problem with the KML file, you can:
 * Fix it on Wikidata – if the KML file is not actually related to the article, then you can be bold and fix it! Go to the article's Wikidata item, and adjust the  statement.
 * Specify a different KML file – add wikidata or from (see Template:Attached KML/doc)
 * Revert the edit specify the article as an exception – add . If the edit is reverted without specifying the article as an exception, then the next bot run will again add Attached KML!
 * Report it – at User talk:KMLbot/feedback

Details
Here's the full details:


 * (1) Get a list of Wikidata items which have both a KML file and an article on English Wikipedia. Filter out articles which already have, or are a disambiguation page, or have been excluded through  (template adds pages to a hidden category,  ).
 * Done manually through a PetScan query (which includes a SPARQL query):
 * https://petscan.wmflabs.org/?language=en&project=wikipedia&depth=2&categories=Attached%20KML%20tracking%20categories%0D%0AAll%20disambiguation%20pages%0D%0AAll%20set%20index%20articles%0D%0APages%20which%20should%20not%20use%20KML%20from%20Wikidata&combination=union&ns%5B0%5D=1&show_redirects=no&sparql=SELECT%20%3Fitem%20WHERE%20%7B%20%3Fitem%20wdt%3AP3096%20%3Fdummy0%20%7D&manual_list_wiki=enwiki&common_wiki=cats&source_combination=sparql%20NOT%20categories&interface_language=en&active_tab=tab_output
 * Output as "Wiki" and save as a UTF-8 text file (for input to AWB)
 * (2) Use AWB to add to the end of each article (prior to DEFAULTSORT, interwikis, categories and stub templates, applying genfixes if needed).