看 GitLaw 如何将法国立法过程变为开放数据

此处原文来自阳光基金会,原作者:Regards Citoyens,编译:高丰

法律即代码!

在过去的几年里,已经有一些朋友在试图通过利用代码工具去理解法案的演化,从而探索如何倒置 Lawrence Lessig 书中所描述的「代码即法律」的想法 (译注:Lawrence 的书讨论了权力机构期望通过代码来管理网络世界的利弊。他提出这种将代码等同于法律来进行治理的思路很容易让人们的自由大幅度受限,因为代码一旦设定就无法变通。)。事实上,立法过程的确很像软件工程的协作方式,由此利用一个版本控制工具来追踪每个法案的变化就是自然而然的想法了。

说起来这两者之间的相似是在根源上的:在任何一个场景中,都有一群人协同工作在一种文本工作上(法律草案或程序代码),不停提出修改方案(法律修正案或程序补丁),协作审阅并批准或否决修改(通过投票或pull request(译者注:GitHub 上的专业术语,意味着一种提交补丁并进行审阅的过程)),经过这样的不停迭代直到产出一个稳定可用的版本,最终面向公众发布。这种从软件工程角度来理解立法过程的方法为追踪法案演化提供了新的思路。在过去有一些激动人心的工作已经有人进行了尝试,其中最著名的是在德国的两个例子:BundesGit 项目邀请公众通过 GitHub 平台来协同评论现有法律,并通过「pull request」提出修正意见;Gregor Aisch 则可视化了一项法案过往40年的修正历史。

而在2011启动的关注法国立法过程的法律工厂(Law Factory)项目则试图回答一个简单的问题:议会是否具体编写法案,或者如大部分人所设想的,议会仅仅审阅相应法律的草案?

法律工厂:探索290项法案

2014年5月28日,TheLawFactory.fr 作为一个自由软件终于正式上线,共提供了2010年起法国政府颁布的290项法案数据。所有这些法案以及他们的修正案的文本,和相关背景文件比如议会法案辩论记录等都作为开放数据发布在网站上,同时所有数据都通过 git 进行版本控制(译者注:git是一种分布式的版本控制系统),并且通过四种不同交互工具使用户,比如研究员,记者,公民,司法人员等能够在不同精细度上来浏览整个法案制定的过程及相关数据。

网站提供的第一个交互工具和甘特图很类似,是一个法案演化的可视化时间线,通过它人们可以了解一个法案经过了哪些讨论,这些讨论在哪一级议会举行,讨论持续了多久,讨论了哪些内容等等。用户可以通过网站顶部菜单切换到其他视图:一个比较视图来帮助用户对比花费在每一个法案上的总时间,以及一个量化视图来帮助人们计算例如一个法案作为独立议题被讨论的时间,菜单中还包含了过滤器来帮助人们只查看那些被修正最多的法案或者那些花费最多神剑审议的法案等等。

navettes

在时间线工具上,如果你单击一个法案,将会在其右侧展开信息框提供你一小组指标信息来帮助你了解这项法案是否有争议性,比如告诉你该法案前后修正过程中文本变化的数量,法案修正案的数量,以及议员辩论过程中所说内容的总字数等等。现在,让我们暂时回到我们本文一开始说的问题:议会是否具体编写法案,或者如大部分人所设想的,议会仅仅审阅相应法律的草案? 通过时间线工具,我们发现和大部分人所想的恰恰相反,议会对法案的编写过程有着极强的影响力:74%的修正案相较于原法案都有至少50%内容的变更,而对于那些有新增内容的法案,他们当中的61%也至少新增或变更了了50%的内容。仅有少部分极具争议的法案,在最后立法过程中反而减少了内容。

研究每一个法案

用户也能使用该网站来研究每一个单独的法案个体。网站提供了单独法案的研究界面,在这个界面上,每一列都代表了法案制定过程中的一步:最初由议员或政府拟定的草案在最左边,然后每一次成功的修订都在之后依照时间顺序排列开。在每一列,文本都会被分为一篇篇单独的篇目(章节)或者被分为数个小节,每个小节包含多个篇目(章节)。每个篇目在界面上都显示为一个长方形小盒,它的高度则根据文本长度来进行相对设定。

articles

从显示界面可以切换到「精简界面」,在这里你能观察到法案从最初起草到最后一版的过程中,每一步发生的变化(文本变化)。新增的内容将会被标记为绿色,而在修订中被删除的内容则会被标记为红色。而其他状态的文本则都有灰色阴影,阴影颜色越深,说明修改的比例越高。通过这样的颜色标记,用户可以很容易看出在整个过程中,哪一部分被大量修改。如果你想要深入查看篇目的修改情况,你可以点击一个篇目,那么在其右侧就会显示该篇目的文本内容,并在有前一个版本的情况下,同时显示修改情况,这就像程序员查看两个不同版本的代码一样方便。

研究立法过程中的辩论和修正案

当一个法案在某一步中被修订过,系统还提供了第三种工具来帮助查看所有的修正案。每一项修正案都有颜色标记代表着提出修正案的不同政党,而相应的符号标记则代表该修正案是否有被采纳。如果你在这里单击一项修正案,那么其全文都会显示,并且附有相应作者信息和额外说明信息。

amendements

系统还提供了一个「群组模式」,能够将同一个政党提出的修正案整合到一起进行统计,这样你从视觉上就能直接看出各政党提出修正案的数量,从而进一步了解是否有政党故意提出几百项修正案来拖延法案的立法过程。最后一个可视化工具,则帮助用户了解不同职能的官员在立法过程中的表现。通常立法中,会先进行整体法案的讨论,之后进行各项修正案的讨论。在这个过程中,各方人员比如政府官员、议员、纪要员、主席等都有不同的发言时间,而在这里,可视化工具就会把整个发言过程可视化为一个水流图,其中每一个人群用不同颜色的长方形来表示,而其大小则由该组人发言的长度来决定,从而方便用户直观了解哪个人群发言最长(短)。

debats

幕后的故事

正如同其他所有涉及议会数据的项目一样,这个项目的大部分时间并非在开发可视化工具,而是在搜集,整合,清理,以及处理数据。法国参议院在这几年中为推动开放数据作出了许多努力,并且最近开始每天发布他们掌握的一些完整数据。然而,国家议会在开放这件事上仍旧没有任何努力的迹象,很大的一部分原因是他们莫名担忧媒体会因此对他们评头论足。
关于修正案和辩论的数据大都已经通过 NosDéputés.fr 和 NosSénateurs.fr’s 开放了,只需要进行一些简单的调整就可以使用。但这里最需要的数据是版本控制的法案数据:即各个不同版本的同一法案的文本。目前两个议会都只发布 HTML 和PDF 版本的文档,而这就需要我们从中提取出需要的内容。这个过程是极具挑战的,因为这要求我们根据不同的文档格式,排版方式来提取不同的信息。即使这个完成了,我们也还有最后一项大工作要完成:我们需要自动补全文本中遗失的信息。基于某种现实需要,两个议会目前发布的文本都不包含原本未修改过的内容,而这就使得我们开发的爬虫不得不在一个迷宫中寻找较之前一个版本减少的内容。

non-modified-small

当数据完全收集完后,我们就能将相应的代码开源,并且将将相应数据通过API提供给第三方开发者使用,同时原始数据还能发布为开放数据供他人研究。

下一步?

目前的文本收集和处理还不完美,我们的爬取机器人自2010年至今已经失败了125次,这意味着我们的语料只能代表70%的文本内容。尽管如此,我们还是有信心处理大部分的数据,同时继续完善整个过程。

其实,如果议会永远不作出改变,我们的工作就一直会有所挑战。世界上的任何一个国家的议会都应该开始考虑开放数据,并将相应版本控制引入他们的信息系统。想象下,如果这一改变达成,议会自身以及他们所服务的民众将会从其中获益无穷。

top