{"id":6303,"date":"2026-04-27T09:06:54","date_gmt":"2026-04-27T07:06:54","guid":{"rendered":"https:\/\/weblearning.co.za\/blog\/?p=6303"},"modified":"2026-09-14T10:47:27","modified_gmt":"2026-09-14T08:47:27","slug":"spatial-lens-part-3","status":"publish","type":"post","link":"https:\/\/weblearning.co.za\/blog\/spatial-lens-part-3\/","title":{"rendered":"Spatial lens (part 3)"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/Field-Notes-8-1024x683.png\" alt=\"\" class=\"wp-image-6419\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/Field-Notes-8-1024x683.png 1024w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/Field-Notes-8-300x200.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/Field-Notes-8-768x512.png 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/Field-Notes-8.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Field Notes&nbsp;by&nbsp;<a href=\"https:\/\/visualthinkery.com\/\">@visualthinkery<\/a>&nbsp;is licensed&nbsp;under&nbsp;<a href=\"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/\">CC-BY-SA<\/a>.<br><br><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The third post is about maps personal cartography and my (fr) &#8220;g\u00e9omatique&#8221;  attempts with geodata. I&#8217;ll explore a data centred \u201cmap\u201d, generated &#8220;automatically&#8221; with spatial data infrastructure. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of  a \u201cnormal\u201d hand drawn map (see the map of the 19th arrondissement of Paris below), or a map with a particular boundary with labels (see the <a href=\"https:\/\/codepen.io\/Web-learning-the-bold\/pen\/GgjbqMK\" data-type=\"link\" data-id=\"https:\/\/codepen.io\/Web-learning-the-bold\/pen\/GgjbqMK\">Parc de la Villette<\/a> map on Codepen and the corresponding <a href=\"https:\/\/raw.githubusercontent.com\/Web-learning\/geojson\/refs\/heads\/main\/Paris\/19thArrondissement.geojson\">19th Arrondissement.geojson<\/a> on Github). I&#8217;ll generate an Arts Festival query and compare Arts festivals in two countries and make it possible to download available information. <br><br>Firstly &#8211; how many ARTs Festivals are on Wikidata? Look at  <a href=\"https:\/\/w.wiki\/MHP7\">https:\/\/w.wiki\/MHP7<\/a> or visit <a href=\"https:\/\/query.wikidata.org\/\">query.wikidata.org<\/a>. You&#8217;ll see instructions to answer the question.  &#8220;Count the instances (P31) of arts festivals (Q4801521)&#8221;. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>title: Number of Arts Festivals on Wikidata\nSELECT (COUNT(*) AS ?count)\nWHERE {\n?item wdt:P31\/wdt:P279*   wd:Q4801521\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The answer to this numbers question will vary as it depends on the available data and how well I constructed the query.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Resources Used <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Sites like  <a href=\"https:\/\/geojson.io\/\">Geojson<\/a> \/ <a href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:Main_Page\">Wikidata<\/a> \/ <a href=\"https:\/\/commons.wikimedia.org\/wiki\/Main_Page\">Wikimedia Commons<\/a> \/<a href=\"https:\/\/leafletjs.com\/\">Leaflet<\/a>\/ <a href=\"https:\/\/query.wikidata.org\/\">SPARQL<\/a>\/ <a href=\"https:\/\/overpass-turbo.eu\/\">Overpass Turbo<\/a> offer access to openly licensed data, which allowes me to remix and re-use materials under stated conditions. I can combine these resources, to make  layers of information visible. Sounds complicated? Yup! Demonstrable? I think so. Can others do this. Absolutely Yes! Please feel free to copy and paste.<br><br><strong>Disclosure:<\/strong> I used chat GPT  <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Paris and Clarens<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"1024\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/960px-Tableau_dassemblage_du_plan_cadastral_parcellaire_de_la_Commune_de_la_Villette_Canton_de_Pantin_arrondt_de_St__G.382762-813x1024.jpg\" alt=\"\" class=\"wp-image-6414\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/960px-Tableau_dassemblage_du_plan_cadastral_parcellaire_de_la_Commune_de_la_Villette_Canton_de_Pantin_arrondt_de_St__G.382762-813x1024.jpg 813w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/960px-Tableau_dassemblage_du_plan_cadastral_parcellaire_de_la_Commune_de_la_Villette_Canton_de_Pantin_arrondt_de_St__G.382762-238x300.jpg 238w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/960px-Tableau_dassemblage_du_plan_cadastral_parcellaire_de_la_Commune_de_la_Villette_Canton_de_Pantin_arrondt_de_St__G.382762-768x967.jpg 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/960px-Tableau_dassemblage_du_plan_cadastral_parcellaire_de_la_Commune_de_la_Villette_Canton_de_Pantin_arrondt_de_St__G.382762.jpg 960w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><figcaption class=\"wp-element-caption\">Anonyme, graveur, CC0, via Wikimedia Commons<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I am off to Paris in July on a scholarship. As part of my preparation, I have been looking at Parisian maps and plotting out places \/ events that I want to visit \/attend. There&#8217;s Bastille Day on the 14th (I&#8217;ll just miss that one) and the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Paris-Plages\">Paris-Plages<\/a> (how cool, fake beaches on the Seine).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;\u2019m not only mapping small parts of Paris. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Clarens_Arts_Festival\">The Clarens Arts Festival<\/a> is on Wikipedia and I made a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Template:Clarens_art_festival\">key locations map<\/a> for Nicola Martins.    <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With my data driven spatial specs on, I\u2019m going to make an arts festivals map. I\u2019ll show you how to\u2026.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<ol class=\"wp-block-list\">\n<li>make a map <strong>base layer<\/strong> which will contain markers to <strong>arts<\/strong> <strong>festival locations<\/strong> in South Africa and in France<\/li>\n\n\n\n<li>position the festivals and each location on the base layer map. When clicked, a label  will appear with a corresponding image (if it exists). Each festival will have a Wikidata number (for update purposes).  <\/li>\n\n\n\n<li>build the base layer map and marker on Leaflet and on a table. Data will be supplied by an openly licensed GeoJSON file generated by the SPARQL and formatted for the chart.<\/li>\n<\/ol>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Wikidata, Commons, Wikipedia and OpenStreetmaps have been extremely useful as resources.&nbsp;They often contain co-ordinates, included <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Module:Carte_interactive\">map modules<\/a>, <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Mod%C3%A8le:Carte_interactive\/OSM\">OSM templates<\/a> that pull in openstreetmap data or geoshapes (P3896). These worked exemplars have permitted me see how map shapes are generated and stored as points, lines or polygons. I\u2019ve also started <a href=\"https:\/\/github.com\/Web-learning\/geojson\">a collection of GeoJSON files<\/a> on GitHub. Yes, Chat GPT, <a href=\"https:\/\/leafletjs.com\/\">Leaflet<\/a> and CodePen have shown how a static GeoJSON file can be turned into a visual. You can do the same (and change the parameters quickly using SPARQL). The generated file could then be archived on Wikimedia commons, built into the map itself, or uploaded as a raw file to GitHub or be included in a spreadsheet. These GeoJSON files can also be generated by using <a href=\"https:\/\/overpass-turbo.eu\/\">https:\/\/overpass-turbo.eu\/<\/a>  I&#8217;m very sure that there are more options. Its always helpful to have plan B.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"200\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets-1024x200.png\" alt=\"\" class=\"wp-image-6420\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets-1024x200.png 1024w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets-300x59.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets-768x150.png 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets-1536x300.png 1536w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets-1568x306.png 1568w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/header_baskets.png 1640w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Beads and baskets and SPARQL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">So, we are exploring some abstract concepts. To help me pull vague abstractions together into a clear explanation, I like think about something physical and concrete. Instead of festivals, I&#8217;ll use beads and think about \u201ctrays\u201d,  &#8220;baskets&#8221; and &#8220;weaves&#8221;. You might have to think of your own.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Why physical and concrete? Let&#8217;s use another abstract concept. Time! By itself, time is hard to imagine.  When you picture a clock with numbers, long and short hands,  a clock face and a seconds hand ticking loudly as it passes these numbers. Then time&#8217;s passage becomes easier to notice and comprehend. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Querying SPARQL is also quite vague. So I&#8217;d like you to imagine you have scooped up some pretty beads and sorted them by colour. You need to store these beads somewhere, so you pop them into different baskets. Now assume that you have a range of beads and baskets. It gets quite difficult to remember which basket you placed which colour beads in. So you give the basket a label which links these basket and the beads in your mind. Now lets also assume that beads represent different things. Status, wealth, spiritual values. The basket label becomes is a &#8220;memory location&#8221; and the beads therein are arranged and categorized around that memory location. Now lets say that beads are not only about colours. Beads could also a way of communicating emotions in different languages. Our basket labels become more complicated. There are more variables introduced, or \u201cmemory locations\u201d and the beads (when seen in relation to other beads) hold multiple meanings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <a href=\"https:\/\/query.wikidata.org\/\">Query Service<\/a> called SPARQL allows me to locate beads (stored entities ) in baskets (memory locations). These beads and baskets are on Wikidata (a sister project of Wikipedia) and I can combine them in different permuatations . In this case SPARQL is going to help us identify Arts Festivals in South Africa and in Arts Festivals France. Each SPARQL query is an instruction. Go into a room that contain a wide mixture and assortment of beads. Use the baskets and sorting trays.  Press play to execute a query and extract the desired beads from identified baskets. Then fill a tray with a particular collection of those beads. <br>After that, you will string the beads together and attempt to make meaning. Drawn from matching colours or perhaps it through a Zulu love letter. The meaning could be stitched into a an image grid, a map or a graph.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Making sense of variables<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Image grid of pictures of SA Art festivals.<\/li>\n\n\n\n<li>SA Arts festival plotted on a map<\/li>\n\n\n\n<li>Arts festivals compared on a world map<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Guide for SPARQLing<\/strong> : Collect arts festival beads from the basket South Africa (P258 is the memory location) . Then string festival beads together as a grid of images (and not a necklace). These arts festival (Q4801521) orbs must be local and located in South Africa (Q258). You will display the workings of your search in a tray. <br>Eventually a collection of pictures of arts festivals from South Africa that are on Wikidata should emerge. Go to <a rel=\"noreferrer noopener\" href=\"https:\/\/query.wikidata.org\/sparql?query=SELECT%20%3Fbeads%20%3FbeadsLabel%20%3FbeadsPic%0AWHERE%0A%7B%20%23baskets%20trays%20and%20beads%20%20%0A%20%20%3Fbeads%20%20%20wdt%3AP31%2Fwdt%3AP279*%20wd%3AQ4801521.%20%20%20%20%20%20%0A%20%20%3Fbeads%20%20%20wdt%3AP17%20wd%3AQ258.%0A%20%20%3Fbeads%20%20%20wdt%3AP18%20%3FbeadsPic.%20%20%20%20%20%20%0A%7D\" target=\"_blank\">the Wikidata Query Service<\/a> and paste this SPARQL in. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#defaultView:ImageGrid (my beads strung together)\n\nSELECT ?beads ?beadsLabel ?beadsPic\nWHERE\n{ #baskets trays and beads  \n  ?beads   wdt:P31\/wdt:P279* wd:Q4801521.      \n  ?beads   wdt:P17 wd:Q258.\n  ?beads   wdt:P18 ?beadsPic.      \n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Look in the tray. I am a little surprised by I have found. Only two arts festivals here in SA? Nope. There are only two South African arts festivals with pictures. Notice there is also other information, some which can be <strong>downloaded<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"859\" height=\"539\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-5.png\" alt=\"\" class=\"wp-image-6412\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-5.png 859w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-5-300x188.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-5-768x482.png 768w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">SA Arts festivals plotted on a map<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Guide for SPARQLing<\/strong>: Collect beads\/items  called Q4801521 (arts festivals) in a labelled tray.  The selected beads\/item must have an associated  geo location (P625) and then weave \/ plot both the festival and geo location on a map once you press play  (<a href=\"https:\/\/w.wiki\/M8GS\">https:\/\/w.wiki\/M8GS<\/a>)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#defaultView:Map\n\nSELECT ?item ?itemLabel ?itemGeo \nWHERE\n{\n  ?item wdt:P31\/wdt:P279* wd:Q4801521.      \n  ?item wdt:P625 ?itemGeo.      \n\nSERVICE wikibase:label { bd:serviceParam wikibase:language \"&#91;AUTO_LANGUAGE],en\". }\n} <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now look at the results. You will see that there are arts festivals on the map from all over the world. <br><strong>Experiment<\/strong> and <strong>play<\/strong>: What differences can you see between the above two queries? Hint: I switched a few words.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Arts festivals (compared) in four countries. <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Guide for code:<\/strong> Collect the beads labelled arts festival (Q4801521) from two baskets labelled country South Africa (Q258), France (Q142), Canada (Q16) and&#8230;.(you decide). Use the geographic coordinates basket (P625) to sort them them out by location and then display the name of the festival  and the country. <strong>Optional <\/strong>: display the image and festival URL. <a href=\"https:\/\/w.wiki\/FJfu\"> https:\/\/w.wiki\/FJfu<\/a><\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:45% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"319\" height=\"387\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-4.png\" alt=\"\" class=\"wp-image-6411 size-full\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-4.png 319w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-4-247x300.png 247w\" sizes=\"auto, (max-width: 319px) 100vw, 319px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<pre class=\"wp-block-code\"><code>Select DISTINCT ?item ?itemLabel ?itemCountry ?itemGeo ?itemPic\nwhere { ?item wdt:P31\/wdt:P279* wd:Q4801521;\nwdt:P625 ?itemGeo;\nwdt:P17 ?itemCountry .\nVALUES ?itemCountry {wd:Q258 wd:Q142 wd:Q16}\nOPTIONAL {?item wdt:P18 ?itemPic .}\nSERVICE wikibase:label { bd:serviceParam wikibase:language \"en\" }\n}<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">If you have followed thus far, well done. This has been hard to write. It also might be hard to read and understand.  Babbling is how we learn a new language. <br><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">A recap.  I used SPARQL to<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>make <strong>an image grid<\/strong> of pictures from festivals.<\/li>\n\n\n\n<li>plot out <strong>festival locations<\/strong> on a map. <\/li>\n\n\n\n<li>compare arts festivals in two, three or four countries (with images and a URL).<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">These three queries might leaving you asking WHY? You have not found many arts festivals. Well, that&#8217;s because Countries have a geomatician deficit. We need to be exploring geospatial technology. To be making our own  streetmaps. By hand, or on Wikipedia or with GeoJSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wikipedia and Wikidata frequently refer to maps \/ geodata. We can use a GeoJSON file for creating layers above our basemap.  If you do mapping, you&#8217;ll find that GIS software is compatible with GeoJSON. You&#8217;ll also find it useful to know how <a href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:Tours\/Coordinates\">to add co-ordinates to Wikidata<\/a>? <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Data meets the map of Paris<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"752\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/03\/Paris-vector-1024x752.png\" alt=\"\" class=\"wp-image-6368\" style=\"aspect-ratio:1.3617021276595744;width:540px;height:auto\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/03\/Paris-vector-1024x752.png 1024w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/03\/Paris-vector-300x220.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/03\/Paris-vector-768x564.png 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/03\/Paris-vector.png 1429w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot of a vector based map of Paris. See experience arcgis com for mor about Paris map making <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">My first Paris map in this post was a hand drawn map of  the 19th arrondissement. My second was a vector based map of all of Paris&#8217;s arrondissement&#8217;s . A SPARQL query (see below) shows the different points in the 19th arrondissement. If you insert #defaultView:Map and run this query, you will see a collection of Wikidata points. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"712\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-1.png\" alt=\"\" class=\"wp-image-6402\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-1.png 808w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-1-300x264.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-1-768x677.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT ?arrondissement ?arrondissementLabel ?coord ?geo<br>WHERE {<br>?arrondissement wdt:P131\/wdt:P279* wd:Q204622; #\/\/ 19th arrondisimont of Paris<br>OPTIONAL { ?arrondissement wdt:P625 ?coord }<br>OPTIONAL { ?arrondissement wdt:P3896 ?geo.}SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en\". }}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Finding the shape of the &#8220;19th arrondissement of Paris&#8221; (&#8220;Q204622&#8221;) requires detailed geo co-ordinates. The map that we have here has drawn an odd leaf shape.<\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:68% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"678\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image.png\" alt=\"\" class=\"wp-image-6400 size-full\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image.png 814w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-300x250.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-768x640.png 768w\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">&#8220;coordinates&#8221;: [<br>[<br>[<br>[2.3647, 48.8721],<br>[2.3802, 48.8768],<br>[2.4010, 48.8895],<br>[2.4108, 48.9021],<br>[2.3850, 48.8980],<br>[2.3720, 48.8935],<br>[2.3600, 48.8790],<br>[2.3647, 48.8721]<br>]<br>]<br>]<\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">If there were more details in the GeoJSON and if these were stored on commons and referenced by Wikidata, you might also be able to use SPARQL to find the shape.   <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT ?geo WHERE {<br>wd:Q204622 wdt:P3896 ?geo .<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">My manual attempt at creating a boundary shape is disappointing. Thus far, I have found the best way to obtain the desired boundary shape is with <a href=\"https:\/\/overpass-turbo.eu\/\">https:\/\/overpass-turbo.eu\/<\/a> and a query that relates to a way or relation on OpenStreetMap<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"650\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-2-1024x650.png\" alt=\"\" class=\"wp-image-6407\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-2-1024x650.png 1024w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-2-300x190.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-2-768x487.png 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-2.png 1195w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;out:json]&#91;timeout:25]; \nrelation(9552); \nout geom;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Using this query allows me to create an exportable <a href=\"https:\/\/github.com\/Web-learning\/geojson\/blob\/main\/Paris\/19thArrondissement.geojson\">GeoJASON file of the 19th Arrondissement<\/a> (saved on Github) that I also adjusted and shared as <a href=\"https:\/\/commons.wikimedia.org\/wiki\/Data:19_arrondissement_de_Paris.map\">Data:19_arrondissement_de_Paris.map<\/a> on Wikimedia Commons.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"789\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-3-1024x789.png\" alt=\"\" class=\"wp-image-6408\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-3-1024x789.png 1024w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-3-300x231.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-3-768x592.png 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/image-3.png 1067w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Back to South Africa<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Do we know all the locations of arts festivals in our country? If we try a simple SPARQL query (see example above) and place of the results in a table<\/p>\n\n\n\n<table><thead><tr><th>item<\/th><th>itemLabel<\/th><th>itemGeo<\/th><th>itemPic<\/th><\/tr><\/thead><tbody><tr><td>http:\/\/www.wikidata.org\/entity\/Q3642773<\/td><td>Aardklop<\/td><td>Point(26.9022247 -26.67771)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q6979502<\/td><td>National Youth Jazz Festival<\/td><td>Point(26.526666666 -33.31)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q131057081<\/td><td>Rocking The Daisies<\/td><td>Point(18.522784665 -33.48255583)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q1266836<\/td><td>Durban International Film Festival<\/td><td>Point(31.025 -29.8583)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q137455846<\/td><td>Clarens arts festival<\/td><td>Point(28.416667 -28.516667)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q10990225<\/td><td>National Arts Festival<\/td><td>Point(26.5193 -33.3195)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q7098568<\/td><td>Oppikoppi<\/td><td>Point(27.13611111 -24.88388889)<\/td><td><\/td><\/tr><tr><td>http:\/\/www.wikidata.org\/entity\/Q6650288<\/td><td>Little Hearts Festival<\/td><td>Point(18.420129 -33.904859)<\/td><td>http:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/Littleheartsfestival2.JPG<\/td><\/tr><\/tbody><\/table>\n\n\n\n<p class=\"wp-block-paragraph\">I can&#8217;t really make a geo shape to accompany this table. There are arts festivals here in Johannesburg. We can make a GeoJSON file of the Johannesburg Botanical Gardens (aka Emmarentia Dam). There are many events in this park. Can we use Turbo Ovepass to draw the shape?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;out:json]&#91;timeout:25];  \nway(23019683);  \nout geom;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nope. Did not work. Can we draw the shape from open street map? Yes. Go to Export and download a ZIP file. Unzip and open the files with https:\/\/geojson.io\/. You will find that the information is rather messy. You could clean it up with <a href=\"https:\/\/openrefine.org\/\">Open Refine<\/a> Or just find the geo-coordinates that refer to <a href=\"https:\/\/github.com\/Web-learning\/geojson\/blob\/main\/Emmarentia\/JoburgBotanicGardens.geojson\">Emmaentia Park<\/a>. These are a few other  <a href=\"https:\/\/tyrasd.github.io\/osmtogeojson\/\">https:\/\/tyrasd.github.io\/osmtogeojson\/<\/a> tools <a href=\"https:\/\/racum.blog\/articles\/osm-to-geojson\/\">https:\/\/racum.blog\/articles\/osm-to-geojson\/<\/a> that can assist with GeoJSON conversions. You now have a South African shape drawn with geo co-0rdinates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Final Thoughts<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"200\" src=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up-1024x200.png\" alt=\"\" class=\"wp-image-6421\" srcset=\"https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up-1024x200.png 1024w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up-300x59.png 300w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up-768x150.png 768w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up-1536x300.png 1536w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up-1568x306.png 1568w, https:\/\/weblearning.co.za\/blog\/wp-content\/uploads\/2026\/04\/CTA_Sign_Up.png 1640w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Geospatial data infrastructures allows me to abstract alternate mapping systems (from SA). I think that we can (and need to) question both the human-made and the computer generated structures that promise to address our needs, wants and desires. If we explore our built environments (with the other underbuilt parts in between) and combine our own maps with our mediated networks. then will begin to see to see a socio-technical imaginary that&#8217;s been developed  to fulfil a certain group&#8217;s needs, wants, and desires. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our tangible environment has visible physical features and less visible infrastructures. For example, a library has visible components. Books, shelves, seating areas, issuing desks, study areas, and computers. Less visible is all the activities in the book chain, who finances the books on the library shelves, who sells software licenses to the city.   On campus, the visible features include lamposts, roads, pavements,  benches, transport, pedestrian bridges, lecture theatres, labs, studio&#8217;s etc. The faculties committee&#8217;s governance choices, procurement processes, computer budgets and MS license costs etc are less visible, and in some cases they are hidden.  In this geo spatial world, what we call our mediated environments, the visible infrastructures are privately owned devices (laptops, phones, chargers).  We are less likely to see the other infrastructures &#8211; wifi routers, servers, switches, undersea, DNS records, cables etc, that join to other privately owned infrastructures and intersect with other public and privately owned components. All these visible and less visible features contribute to the socio technical imaginary that we believe holds things together. While some of these structures are in our heads (called schema) these data infrastructures can be made visible. Increasingly, it&#8217;s easier to ask private companies to create and manage the visualisation of our socio-technical imaginaries, either in public and mediated spaces. (I\u2019m available). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So what&#8217;s my point? Yes, turn to Google Maps for directions. Admittedly, this is easy to use. But as I mentioned in my presentation about epistemic opacity, component makers comply with their political masters to build these socio-technical imaginaries. And then they make the maps to show you around. So whether you are in a physical public or mediated private space. The architecture, the landscapes and designs, the background planning, budgets and management are a reflection of the &#8220;beliefs that affect or govern the behaviour patterns of society&#8221;.  Can we see and recognise what\u2019s going on in the under mapped world. Here\u2019s a small glimpse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please take a look at my <a href=\"https:\/\/weblearning.co.za\/dashboard\/\">Arts Festival Dashboard<\/a>. You can see the source code on <a href=\"https:\/\/codepen.io\/Web-learning-the-bold\/pen\/dPpBLox\">codepen<\/a> (this will change as I fiddle with the code). The dashboard will update as you add more arts festivals.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">References<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/librarycarpentry.github.io\/lc-wikidata\/05-intro_to_querying.html\">https:\/\/librarycarpentry.github.io\/lc-wikidata\/05-intro_to_querying.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neumann, A. (2008). Web Mapping and Web Cartography. In: Shekhar, S., Xiong, H. (eds) Encyclopedia of GIS. Springer, Boston, MA. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">I have been blogging about spatial matters and have split my thoughts into three parts.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/weblearning.co.za\/blog\/pluriverse-lens-3-spatial\/\">Spatial (earth ) lens<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/weblearning.co.za\/blog\/spatial-lens-part-2\/\">Spatial (human) lens<\/a><\/li>\n\n\n\n<li>Spatial (computer) lens<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>The third post is about maps personal cartography and my (fr) &#8220;g\u00e9omatique&#8221; attempts with geodata. I&#8217;ll explore a data centred \u201cmap\u201d, generated &#8220;automatically&#8221; with spatial data infrastructure. Instead of a \u201cnormal\u201d hand drawn map (see the map of the 19th arrondissement of Paris below), or a map with a particular boundary with labels (see the &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/weblearning.co.za\/blog\/spatial-lens-part-3\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Spatial lens (part 3)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"episode_type":"","audio_file":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[6],"tags":[219,218],"class_list":["post-6303","post","type-post","status-publish","format-standard","hentry","category-development","tag-cartography","tag-maps","entry"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/posts\/6303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/comments?post=6303"}],"version-history":[{"count":52,"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/posts\/6303\/revisions"}],"predecessor-version":[{"id":6912,"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/posts\/6303\/revisions\/6912"}],"wp:attachment":[{"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/media?parent=6303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/categories?post=6303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/weblearning.co.za\/blog\/wp-json\/wp\/v2\/tags?post=6303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}