Mappy is een opgevouwen kaartfiguurtje dat boven een Experience Builder-app zweeft en vragen over de app beantwoordt. Denk aan de oude paperclipassistent, maar dan als kaart, die je app echt kent en waarbij niets de browser verlaat. De widget is gratis en de broncode staat op GitHub.
WAT MAPPY DOET
Mappy is een aangepaste widget voor Experience Builder 1.21. De widget weet wat er in de app staat (widgets, pagina's, lagen, bladwijzers, hulpgidsen) en wat er op de kaart staat (lagen, velden, codelijsten). Mensen typen of zeggen dingen als "zet de percelen aan", "waar zijn de parken", "hoeveel percelen zijn groter dan 2 acres" en "wat betekent R-4?". Mappy voert het uit of geeft antwoord. Staat een functie weggestopt in een zijbalk of een controller, dan loopt Mappy erheen, opent die en wijst ernaar.
Alles draait in de browser. Er is geen LLM, geen API-sleutel, geen externe dienst en niets waarvoor je hoeft te betalen. Het is een lokale assistent voor opdrachten en het ophalen van informatie, die werkt met de eigen ArcGIS-services van de app.
Vraag wat dingen betekenen. Een ingebouwde woordenlijst met zo'n 70 kaart- en stadstermen in begrijpelijke taal (erfdienstbaarheid, overstromingsgebied, recht van overpad, perceel) en codes die worden ingelezen uit de eigen codelijsten van de kaart. Zo komt het antwoord op "wat betekent RM-8?" uit je bestemmingslaag en niet uit een standaardlijst.
Vragen over locaties. "Wie is eigenaar van 250 N 5th St?", "in welke zone ligt het?", "dichtstbijzijnde brandkraan bij mijn adres", "routebeschrijving naar het stadhuis", "vergelijk twee adressen". Werkt met de kleine, alleen-lezen MCP-server in de repository (Python, draait onder IIS en communiceert met je ArcGIS-services) of met elke MCP-server met adres- of puntgereedschappen. De eigen MCP-server van Esri kan worden doorgeschakeld zodra die beschikbaar is.
Natuurlijke vragen over gegevens. "Welke bestemmingscategorie heeft de meeste percelen?", "grootste perceel", "percelen groter dan 5 acres", "brandkranen van vóór 1990", "percelen waarvan Smith de eigenaar is". De resultaten kunnen rechtstreeks naar de Table-widget van de app.
Jouw plek. Niets in Mappy is gebonden aan één stad. In een instellingensectie staan de naam van je organisatie (de stad, de county, het waterdistrict), je plaats, je website en een verzameling lokale weetjes. Met een knop maak je een eerste reeks weetjes over de ingevoerde plaats aan de hand van Wikipedia (stad plus staat, of stad plus land). Die lees je door en kort je in voordat je ze opslaat. Mappy's woordkeuze, weetjes en grappen sluiten allemaal aan op die instellingen.
Kan tegen typefouten. Voordat Mappy een verzoek leest, herstelt het typefouten: verwisselde letters, aangrenzende toetsen, dubbele of ontbrekende letters en aan elkaar geschreven woorden. Een wekelijkse build van het taalpakket op GitHub verbetert voortdurend hoe Mappy verzoeken leest. Voor dingen die het mist, is er een sjabloon om met één klik een issue aan te maken.
Ingebouwde hulpgidsen. Mappy bevat de helpinformatie voor Esri's standaardwidgets, kan je eigen helpbestanden uitlezen door een map te scannen en kan je eigen vragen en antwoorden uit de instellingen gebruiken. Die hebben altijd voorrang.
Vriendelijke doorverwijzingen. Op dingen die een kaart niet kan beantwoorden (kantooruren, rekeningen, vergaderingen, vergunningen, kuilen) geeft Mappy een kort, vriendelijk antwoord dat mensen naar je website of je tool 'Meld een probleem' verwijst, in plaats van "Ik heb niets gevonden".
EN MAPPY IS LEUK
Een outfit voor 80 dagen per jaar. Pi-dag, Dag van de Aarde, GIS-dag, Taco-dag, pompoenseizoen en nog veel meer, van top tot teen getekend, met een hoed, iets in de hand en een maatje aan zijn zijde. Niets religieus, politiek of merkgebonden, zodat Mappy voor iedere inwoner toegankelijk blijft. Vraag "waarom die pompoen?" en Mappy vertelt het je.
Kleine optredens. Met de vingers tikken, aan het hoofd krabben, zich opvouwen tot een papieren vliegtuigje dat een rondje maakt, op een fiets wegrijden, een leesbril opzetten, tandwielen laten draaien terwijl er een serveraanroep loopt, op het glas tikken als er een tip is, in een recyclingbak duiken wanneer je de kaart reset. Grappen, raadsels, klop-klopgrappen, steen-papier-schaar en een magisch kompas. Geluidseffecten zijn optioneel en staan standaard uit. Alle illustraties zijn origineel; niets is gekopieerd. Alles kan worden uitgeschakeld voor een formele app.
Toegankelijk. Mappy is een echte knop, de chat is een dialoogvenster en alles werkt met het toetsenbord en bij verminderde beweging. WCAG 2.2 AA.
Repository en releases:
https://github.com/brianmcleer/mappy-widget
De volledige broncode staat erbij, inclusief de MCP-server en de testsuite. Vragen en ideeën zijn hieronder welkom.