In this brief document, we'll propose a layout for a legislative analysis tool.
Our major concern was to figure out how to deal with the complexity of the data that the app will work with, and how to provide a good experience for the use cases that were detailed to us in the initial briefing.
Therefore, what follows is a description of how this tool would work, and how we plan to tackle the three aspects of this challenge: large amounts of data, complexity of the data structure, and how to bring it together in a consistent fashion.
In a nutshell, what we'll propose is an application that provides multiple viewpoints to look at all the information, instead of trying a unified global approach. Our angle is that the user will know what they want, and their needs might be particularly specific; as such, the tool will need to cater to many usage patterns, keeping in mind that new patterns will eventually emerge — requiring an approach that takes upgradeability and extensibility into account.
After detailing how we plan to deal with these challenges, we'll proceed to describe the different facets that our application will provide in order to fulfil your requirements.
We found two main purposes for dealing with a significant amount of law information: finding a specific bill, or restrict our view to a limited set of bills that we can then analyse. We propose a powerful, yet simple filtering system, where different conditions can be specified, narrowing down the amount of relevant information.
Time ranges can be easily set using a timeline, which allows for defining start and end dates on which to restrict our search. One can also attach simple conditions that can be combined for a refined and effective aggregation of the bills we want to analyse. The graphic layout of these conditions make them easy to change and refine for better results.
In order to account for all these possible uses of the tool, we decided to not look for a unified way to present the information, but rather provide many facets from which to look at each layer of information. We will show them in detail below.
Experience tells us that we cannot predict all possible future needs and uses for this tool; also, we're confident that after some use, the tool will help see patterns and form new analyses, which in turn might inspire new uses for the tool, with new requirements.
Our approach is a way to deal with this uncertainty: we provide many possible ways to view, sort and organise bills, amendments and other elements. The tool's architecture will allow for the creation of new visualizations, and we'll document the process through which they can be created — we'll get back to this point later.
This structure might seem oversimplified, but we believe that it can meet the requirements and use cases detailed in the initial briefing, specifically through different ways of presenting, visualizing and zooming through the data.
All of these visualizations are interconnected, and navigation between them would only require a single click. Furthermore, all of them are interactive and, whenever possible, give access to more in-detail views.
As the interface sketch illustrates, we want to give full focus to the visualizations, and make it easy to switch views, consult details or go back without having to find yourself at each step.
The application will include standard functionality such as full-text search and options for downloading datasets, as you would expect on a data analysis tool.
We'll go through the different visualization options now.
A horizontal timeline that shows the stage of each open bill on a specific period of time, as well as delimiting each step that it goes through, as well as the final outcome.
See when certain procedures or events take place, and how strongly, according to whichever parameter you want to inspect: number of bills passed, length of debates, number of amendments put forward, debate participation from a specific party or MP, and so on.
Find how a set of bills is divided according to specific criteria (current status, party distribution of proponents, voting outcomes, etc), and consult statistics on the distribution of different factors in the selected group of bills.
Read which words and themes have been prominent in a specific period or group of bills. You can either see it as a word cloud or a traditional list ordered by frequency.
This visualization is a powerful tool to relate different aspects of many bills. You can select two parameters to graph — for example, "time" on the horizontal axis and "length of bill discussion" on the vertical axis, obtaining an easy view of when the most complex discussions took place.
By adding a third dimension — size — to the graph, you can specify yet another variable, like the speaking time of a specific party in bill debates, to provide a deeper level of analysis that can help reveal yet-unknown patterns.
See the bill's full text, and interactively check how and when specific parts were altered over time.
Find out who was involved in writing, debating and amending the bill, get details about each actor's role and read their profiles at NosDeputés or NosSénateurs, whenever relevant.
Using a time slider, see how the text of the bill changed progressively, which phases it went through (committees, Senate, AN...) and what happened in each step of the bill's path through the whole legislative process.
Quickly consult the importance of certain words and subjects in the bill's text, either in a cloud format or a simple list ordered by frequency.
List all amendments and sort/filter them by specific criteria: passed/rejected, proponents, length, proposing party or entity...
A simple chart of the amount of changes (additions and removals) that each amendment proposes.
See the parts of the bill that have been most targeted by amendments through text highlighting.
General information and status on a specific amendment, as well as the voting process.
See how a specific amendment's proposed changes affect the text, in an interface similar to the Othello visualization example that we've discussed in Paris.
Read parts of debates concerning a specific amendment.
The filter feature is available on the general view (seeing all bills), living at the top of the home page. It provides an easy way to restrict the visible bills according to specific search criteria, such as date, number of amendments, proponents, time taken between legislative steps, etc.
The "Amendment incidence" visualization is a heatmap that shows the areas of the text that have been most targeted by amendments. The darker colour indicates passages where many changes or removals were proposed, whereas places where new sections have been proposed are marked by "+" signs. Hovering the mouse over each word or section will show the amendments that affect that specific part.
There is also the option to highlight single paragraphs, sentences or individual words according to the number of changes.
On the right side, there is the option to sort and organise the bill's amendments by a set of criteria: Passed/Rejected/Withdrawn, Order by proponent, Government/Opposition or Voting ratio (proportion of Yes vs No votes).
The amendment detail view gives a general description of one amendment, including its summary, phase of introduction, full "diff", information on proponents, the results of the final vote and the debates where it has been discussed. The "diff" view also has an option to show the changed passage in the context of the full bill text.
This view also has an alternative view for analysing the differences, showing the versions side by side, which can be clearer when an amendment contains a more significant set of changes, making them easier to read.
On the technology side, here are some implementation details.
For the front-end design and interface, we adhere to contemporary web standards using HTML5 and CSS, as well as modern web interface libraries, such as jQuery and d3, and follow best design practices like responsive design for ensuring compatibility with multiple devices.
We can also advise and adapt according to your requirements and available resources.
We mentioned above that the application is designed to be extensible, allowing for the creation of new visualizations that can be added into the application, as well as new filters. This would require experience with web technologies and isn't a task for non-specialist users. However, we hold an ethic of not tying our clients by being the only ones who can upgrade the tool, and this way you can choose to extend the application at your discretion without creating a dependency on us to do further work (nevertheless, we would be available for this, if that would be your decision).
Even though the existing data is incomplete, most if not all of these visualizations would work with partial data. By making it clear where appropriate that not all data is available, we believe that could make the case to argue for more transparency by showing the potential of this tool.
We chose not to produce technical mockups for this proposal, but rather focus on a clear structure and plan about how it will work and be organised.
Nevertheless, we've extensively read through the example data from Regards Citoyens and we've made sure that we have the technical expertise to be able to get that data into our tool in a complete fashion. We are also ready to participate in the effort of defining a final schema for publishing RC's datasets, so that other entities can build their own legislative data tools.
We are committed to using full copyleft licenses for the code and assets. That's how we work. We also stick to libre software, frameworks and assets, like fonts, in all our work (including the presentation you are reading now).
The two of us are the full team, and do not plan to subcontract anyone. Thus, there is no gap between the project lead and the actual team: when you meet with us, you meet with the whole team. We can answer questions on the spot and discuss technical details without needing to consult with the rest of the team, a bottleneck that we've seen regularly in this line of work.
We want this tool to work well, because we also want to use it. This assignment isn't just another job for us: we are also open data activists in Portugal, and we are eager to see this tool happen so that we can adapt it for Portuguese law — even if our proposal is not selected.
We propose to blog regularly about the development of the application, just like we did for our work on the Open Font Library project.