I work with Xcential, a company that has deep expertise modernizing legislative systems, from building the drafting system that the California Legislature uses, to structuring the United States Code in a standard (XML) data format, United States Legislative Markup.
As with any legislative system, there are limits to what can be automated. We recognized this early on, and have worked with Charlotte Lee and her Customer Experience team at Monday Design to bring in drafters and other experts to the creation of the system. The goal is to provide tools that help these experts review changes in the law and to communicate the changes in a way that non-experts can better understand.
More recently, the "Comparative Prints Project," which Xcential is working on for the House Office of the Clerk and the Office of Legislative Counsel, was highlighted by the House Modernization Committee (June 2020 report (pdf)) and is one of the few areas in Congress that has bipartisan support.
For this work, we've put together experts in Natural Language Processing, Customer Experience design, and legislative data systems. As a lawyer who now builds software, I work to integrate the parts into a suite of software tools, to help answer the question: "What's going on as a bill becomes law?"
Bill language is often opaque and difficult to interpret, both for technical and political reasons. The words may be straightforward, but understanding their impact currently requires expertise and extensive research. A major change to the law may be written: In subsection 501(c)(3) of such Act, strike "religious,". Understanding this requires finding the earlier reference to 'such Act'; knowing what subsection 501(c)(3) says; and interpreting how the proposed change would affect the current law. It may also involve following a trail of such instructions earlier in the bill.
To make this information more accessible, we've built a tool that automatically processes bill language to show how a bill would change current law. We've also built a tool to compare two versions of a bill. This second tool is being used to track changes that are made to legislative drafts (like the Covid-19 relief bills) as they make their way through Congress.
Both tools track changes in natural language documents. This, in itself, is not a new endeavor. Academics have worked for decades on algorithms to detect changes in documents. Change tracking has an even longer history in legislatures: the legislative drafter's art, developed over generations, is to 'patch' legislation with language that achieves its aims, and can still pass a divided House. We combine these two, algorithmic analysis and the art of drafting, to produce document comparisons that are both machine-readable and human-understandable.
One of the more interesting aspects of this project is the modeling of amendatory language by Sela Mador-Haim, on our team. He developed a formal grammar, Amendment Modeling and Processing Language (AMPL) after analyzing hundreds of thousands of amendment phrases. From these phrases, he identified a small set of building blocks ("strike", "insert"; "before", "after"; "and", "or", etc) and developed a recursively-defined syntax to combine them. The vast majority of Congressional amendments can be parsed and converted into a syntactically valid combination of these AMPL building blocks. The AMPL statements are then interpreted by our automated tools to show changes in the law:
The system can handle a wide variety of amendment types
We owe our "luck" in recent years to some persistent people in government. Among them is Kirsten Gullicksen at the Clerk's Office, who manages the Comparative Prints Project. Kirsten won a 2021 Service to the Citizen Award, for her work on this and other initiatives to support and modernize systems in the House.
To see Kirsten present the Comparative Project, and to hear others who are working to help Congress become more transparent and efficient, tune in today at the virtual meeting of the Bulk Data Task Force on July 14 (RSVP required).
Over the coming months, I hope to discuss some of the other projects that were presented at the meeting and provide more detail about the technologies we are using.