BeLawsHub - A Web 2.0 Interface to the Belgian Law


  • Search for a keyword in the input box
  • Click the law you want to read in the bottom window
  • Filter laws by clicking the checkboxes


  • 2011-09-13 implementation of french laws fetching

    • new search interface which is less app like
    • app now listens for cookies or &lang=nl|fr in the uri.
    • TODO: categorisation in french
  • 2011-07-06 fetch cycle of all referenced laws, minor bugfixes

    • fetched and parsed 9081 dutch articles
    • we will know if we have them all once compared to other data sources (parsers are semi ready)
    • fixes two minor UI bugs
  • 2011-06-28 beta release with a lot of changes/features

    Database backend

    • migrated to PostgreSQL with FTS support
    • new table structure resembling internal API stages (fetch, parse, format)
    • added dutch affix, dict and stopword files too aide Full Text Searching
    • database has triggers to recreate weighted text search vectors
    • database has triggers to refuse data duplication
    • most interesting queries are implemented as view making the db easy to navigate
    • database tries to categorize organically (regexes, factoids, ...)
    • categorisations are persisted in tables which can be rehashed from e.g. cron
    • searches and cat lookups are fast (< 1 sec)
    • db is able to diff parser differences internally (using Text::Diff)

    PSGI backend

    • API centric, only hosts on dynamic html, other are static html + ajax(jsonp)
    • both public (search.json, doc.json) and internal (/fetch/staatsblad.json, /parse/staatsblad.json) API
    • Has queriers, spiders and clients (ie: scrapes with: one shot url, url + follow link, url + cookies)
    • Main query is in Query::ejustice_fgov::document
    • Others are in the make (see source)
    • Better formatting of parsed documents (still slow)


    • Ability to filter results using organically grown categories (type, geo, person)
    • Better formatting of parsed documents (still slow)
    • Allow view source document
    • Open in new tab
    • Statistics
    • Live Documentation
  • 2011-05-10 moved state into url

    By using a javascript browser feature which is called pushState we've made it possible to save the state of the belaws UI in the URL and thus in a bookmark. Whenever you search or click a document, the URL will change accordingly. For example . You can bookmark these in your browser.

    Note that the UI's internal bookmarks (on the left hand side) are NOT saved, nor is the search history

  • 2011-05-04 initial public alpha preview


Please provide us with some feedback as to how we can make this work better for you. If you are practicing law, please let us know how we can parse things better. Even pointing out minor things might bring us to a better interface. Don't hesitate to contact us.


All code used in this project is copyrighted using the GPLv3 license and belongs to iRail, working group of Open Knowledge Belgium.

Thank you, User

I'd like to thank the following users (in alphabetical order) who provided input, ideas, feedback, design, code, bugreports etc.

  • Antoon Vandecasteele
  • Bart Van Loon
  • Caroline Knapen
  • Christine Delagaye
  • Christophe Versieux
  • Jan De Blaes
  • Jens Rediers
  • Kristof Pelckmans
  • Olivier Guiard
  • Pieter Colpaert
  • Sara Devuyst
  • Stijn Delbeke
  • Thomas Leys
  • Yeri Tiete
  • behets
  • kaiserquentin
  • sandb



  • Perl PSGI
  • PostgreSQL



code & design: Tim Esselens
copyright: GPLv3 iRail VZW 2011