SPARQL to datanamespace project (autumn 2022)

Description
Web tool which gets a SPARQL query and wikipage as a URL parameter. The tool will allow opening the SPARQL query in query.wikimedia.org for previewing OR executing it. When the query is executed the tool will run it on query.wikimedia.org and save the results to wikipage defined in the parameter in JSON format. After saving tool will show if saving the result was successful and link to the Wikipage.

Similar tools
This is just for showing what is the use case for the tool.


 * ListeriaBot
 * Example usage
 * en:User:Zache/Listeria_bot_example
 * https://en.wikipedia.org/wiki/Template:Wikidata_list


 * Complex usage example
 * en:Wikipedia:WikiProject Women in Red/Awards/Bulgaria

Url parameters

 * wikipage = target page in Beta Commons
 * sparql = SPARQL-query

Example SPARQL query

 * Open Query in the web interface
 * https://query.wikidata.org/#%23Population%20in%20Finland%20after%201960%0ASELECT%20%20%3Fitem%0A%20%20%20%20%20%20%20%20%3FitemLabel%0A%20%20%20%20%20%20%20%20%28YEAR%28%3Fdate%29%20as%20%3Fyear%29%0A%20%20%20%20%20%20%20%20%3Fpopulation%20%0AWHERE%0A%7B%0A%20%20%20%20%20%20%20%20BIND%28wd%3AQ33%20as%20%3Fitem%29%0A%20%20%20%20%20%20%20%20%3Fitem%20p%3AP1082%20%3FpopulationStatement%20.%0A%20%20%20%20%20%20%20%20%3FpopulationStatement%20%20%20%20ps%3AP1082%20%3Fpopulation%0A%20%20%20%20%20%20%20%20%3B%20pq%3AP585%20%3Fdate%20.%0A%20%20%20%20%20%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20FILTER%20%28YEAR%28%3Fdate%29%20%3E%3D%201960%29%0A%7D%0AORDER%20BY%20%3FobjectLabel%20%3Fyear


 * Execute the query an get result in JSON format
 * https://query.wikidata.org/sparql?format=json&query=%23Population%20in%20Finland%20after%201960%0ASELECT%20%20%3Fitem%0A%20%20%20%20%20%20%20%20%3FitemLabel%0A%20%20%20%20%20%20%20%20(YEAR(%3Fdate)%20as%20%3Fyear)%0A%20%20%20%20%20%20%20%20%3Fpopulation%20%0AWHERE%0A%7B%0A%20%20%20%20%20%20%20%20BIND(wd%3AQ33%20as%20%3Fitem)%0A%20%20%20%20%20%20%20%20%3Fitem%20p%3AP1082%20%3FpopulationStatement%20.%0A%20%20%20%20%20%20%20%20%3FpopulationStatement%20%20%20%20ps%3AP1082%20%3Fpopulation%0A%20%20%20%20%20%20%20%20%3B%20pq%3AP585%20%3Fdate%20.%0A%20%20%20%20%20%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20FILTER%20(YEAR(%3Fdate)%20%3E%3D%201960)%0A%7D%0AORDER%20BY%20%3FobjectLabel%20%3Fyear

Output
The result should be stored to Beta commons to the page defined in parameter  in Tabular Data format.
 * mw:Help:Tabular_Data
 * https://commons.wikimedia.beta.wmflabs.org/wiki/Data:Sample.tab


 * Notes
 * In commons data namespace stored data needs to be formatted to a two-dimensional array.
 * Following datatypes should be handled when saving values as tabular data
 * Float and integers = number
 * Boolean = boolean
 * any other = string

Editing Wikimedia Commons
Beta Commons can be used for testing.
 * https://commons.wikimedia.beta.wmflabs.org

Mediawiki API-documentation
 * https://www.mediawiki.org/wiki/API:Main_page
 * https://www.mediawiki.org/wiki/API:Edit