Klupu is a set of report mining tools designed to extract and visualize meeting minutes of various governing bodies of city of Jyväskylä. Klupu extracts data from semi-structured meeting minutes to relational database which can then be queried by arbitrary visualizing tools to create figures or other illustrations.

Klupu is libre software, licensed under GPLv3 and freely available at GitHub.

Klupu is a finnish word for flail; a tool used for separating grains from husks. Grains of knowledge, in this case.


The data represented by Klupu is not 100% accurate nor exhaustive and is distributed WITHOUT ANY GUARANTEE OF ITS VALIDITY. The primary goal of this tool is to present just few ideas how otherwise boring meeting minutes written in semi-structured format could be visualized to increase their informational value.


Street addresses mentioned in the meeting minutes in year


Miscellaneous statistics gathered from the meeting minutes.

There is high approval rate, over 70%, of decisions in all governing bodies. Most of the meetings are couple of hours long. Monthly meeting durations vary between months and governing bodies. The number of issue preparations per person range unevenly from 1 to over 400.

Background and details

The idea for this project came from Jarno Liski in March 2012, editor-in-chief of Jylkkäri at that time, when he called for data journalism volunteers in his blog post. One of the goals was to extract relevant information from the meeting minutes into a database and to find out how the decisions are made and by whom. For example, how often decisions are based solely on decision proposals presented by various experts and city officials.

Following steps were taken to create the map:

  1. Fetch street addresses (in nominative case) from Itella's zipcode service.
  2. For each address, generate multiple grammatical cases with The Great Declension Tool made by Joel Lehtonen.
  3. Search meeting minutes for addresses, taking into account all generated cases.
  4. Geocode all found addresses to coordinates primarily from OpenStreetMap with Nominatim and secodarily from Google Maps.
  5. Glue all parts together into a JSON-file and visualize it with Google Maps JavaScript API v3.