公开数据

    2007年8月2日,《Oakland Post》记者兼主编Chauncey Bailey在光天化日下被刺杀了,距离我所在的商业区的公寓仅隔几个区。虽然这个尚未公开的案例看起来是被当前Bailey正在调查的一群罪犯分子的政治谋杀的一个案例,但是它重新聚焦了全国对奥克兰暴力犯罪的关注。几乎同时,《Oakland Tribune》的Sean Connelly和Katy Newton发表了获奖作品《Not Just A Number》,它是一张奥克兰杀人犯的交互图(htp://www.bayareanewsgroup.com/multimedia/iba/njn/)。Connelly和Newton对于该城市的谋杀统计幕后的故事尤其感兴趣。在《Not Just A Number》地图中,绝大部分的受害者先是通过面部照片来识别,它还努力联系受害者活着的家人、朋友和邻居在新闻报道中露面留名。我们对于提供一个服务来提供铁的事实和当前数据来补充这些故事非常感兴趣。

    我们的预算包括三个人、两周的敏捷开发工作量:我们把收集的数据转化为可用于Web的服务,Stamen交互设计师Tom Carden使用Flash开发了可融入式的可视化接口,而富于创意的负责人Eric Rodenbeck预见了这种可视化方向及其伴随而至的语言所产生的效果。

    发布信息优先级最高的是要显示所有方面。Crimespotting网站的主页是一张地图(见图11-6),而且该地图显示了从上周开始的所有犯罪报告。地图包含西奥克兰和商业区的绝大多数地方,包含图标化的Lake Merritt,可用于视觉识别。熟悉的“滑动地图”(Sippy Map)的移动和缩放控制使得可以迅速地获取城镇的其他地方的信息,西北部是Berkeley/Emeryville,东北部是富饶的山脉和Piedmont,东南部是San Leandro及其以外地区。这种表示方式与奥克兰城市的官方网站City of Oakland发布的当前已有的通过向导的方式形成了鲜明的对比。现有的应用需要一些关于奥克兰的先验知识,而且它假定参观者寻找的是特定地方的犯罪信息,Crimespotting项目的“滑动地图”不需要先验知识或者特定的搜索议程表,相反地,它支持的是更有探索性的、更曲折的搜索行为。Peter Morville描述的是一种新兴的概念——“可寻性”(fndability),它描述了在信息空间中进行定位的方法以及借助接口和描述使得数据实现自我描述的方法。动态的基于Web的地图在过去四年中经历了很多改变升级。在2005年,一家报纸网站采用GMap做试验,发现被测人员不知道他们可以拖动地图;现在像《New York Times》这样的组织会定期地把信息设计和表现方式在线公示。有了犯罪数据库,我们觉得通过创造数据优先的用户接口,使数据更具有“可寻性”是很重要的。数据首先意味着通过大范围的可视化概要表示是可能的,并且通过类型、时间或地理特征缩小了搜索结果范围。我们实现了“香型小工具”(Sented Widgets),由加州大学伯克利分校的研究人员Wesley Willett、Jeffrey Heer和Maneesh Agrawala在2007年嵌入式可视化方面的论文(htp://vis.berkeley.edu/papers/scented_widgets/2007-ScentedWidgets-InfoVis.pdf)中提出:

    公开数据 - 图1

    图 11-6:奥克兰Crimespotting项目的主页显示了从上周开始的犯罪报告地图(见彩图32)

    虽然有效的信息“气息”线索可能是基于底层的信息内容(如在Web超链接的文本描述了链接文档的内容,这就是“气息”),其他线索可能涉及各种形式的元数据,包括使用模式。在物理世界,我们通常以浏览的方式对待其他人的活动。当发现一群人聚集在一起的时候,我们可能走过去以便观察确定引起大家兴趣的根源到底是什么。或者,我们可能故意避开人群或者陈腐的途径,选择“人迹罕至”的方式来探索鲜为人知的兴趣点。在信息空间环境中,这种社会性的浏览会把我们的注意力吸引到兴趣的热点或者尚未探索的区域。

    Crimespotting地图左下角的主接口的时间选择器界面显示了报告的犯罪随着时间变化的条形图(见图11-7),虽然在右下层类型选择器包含了谨慎的工具提示信息,显示当前选择时间范围的每种报告类型的总数(见图11-8)。这两种选择器都包含双重功能:过滤和反馈。特别是,时间选择器是受到博客统计包Measure Map(http://measuremap.com/)的一个类似功能启发,Measure Map是Adaptive Path公司的Jeffrey Veen设计的,后来变成G公司的分析产品。而反过来,Measure Map的时间滑动轴是受Flickr的界面特征所启发的,因此,坦白说,这实际上是模仿。我们自己加强的是不同条形栏的颜色区分,并显示已经包含的数据的日期(深色)和不包含的数据的日期(浅色)。

    公开数据 - 图2

    图 11-7:Crimespotting的主地图上的时间选择器界面(见彩图33)

    公开数据 - 图3

    图 11-8:类型选择器显示了在选定时间范围内的每种报告类型的总数(见彩图34)

    在图11-8中,有一个水平滑动轴显示所有东西,而它就是信息过载。我们已经介绍了一种可视化报告类型过滤的方式,它是受到苹果公司的Max OS X系统偏好的聚光灯特征所启发:当在地图中存在特定的犯罪报告,或者通过鼠标在类型选择器上多滞留几秒钟,界面颜色就变深,使得地图中高亮显示的区域围绕匹配该类型的报告。抢劫可能会由于不同的犯罪类型被覆盖,导致无法在地图上显示,但是可以通过聚焦显示方式展现和访问它。

    设计过程中的意外收获使我们更清楚地理解了数据专业化的哪些方面可以成为应用界面产品。考虑到Flash在视觉特技方面相当成熟,我们选择它作为实现环境,而且及时实现了我们自己必须实现的滑动地图交互代码,而不是依赖于很多已有可选的JavaScript库,如OpenLayers(http://www.openlayers.org)。

    平移、缩放地图交互看起来是可以应用于其他项目的一个有用的功能点,因此在犯罪数据显示的早期工作成果是生成了独立的通过BSD授权的软件库Modest Maps(http://www.modestmaps.com/)。Modest Maps在数据显示和交互隐喻之间的功能有一个清晰的突破,而且它把地图相关的代码库独立出来,这有助于很多不相关的项目的敏捷开发,这些项目有一些源于Stamen,但是很多是来自于外界的设计和开发。

    第二优先级是为我们收集的数据生成一个公开、可共享的地址空间。通常来说,在Crimespotting项目中只有一些URL“气息”:

    ·地图视图http://oakland.crimespotting.org,更大的视图在http://oakland.crimespotting.org/map。

    ·报告列表视图,如http://oakland.crimespotting.org/crimes,http://oakland.crimespotting.org/crimes/Robbery,http://oakland.crimespotting.org/crimes/2009-01-09和http://oakland.crimespotting.org/crimes/2009-01-09/Robbery。

    ·个人报告视图,如http://oakland.crimespotting.org/crime/2009-01-09/Robbery/113569。

    ·巡警视图,如http://oakland.crimespotting.org/beat/04X。

    绝大多数URL是在把它和内容关联起来之前设计的。特别地,这些URL需要和设计师Matt Biddulph在2005年发表的演讲“Designing Data For Reuse”(htp://www.hackdiary.com/slides/xtech2005/)的思想一致:可读性、建设性、易于破解、不透明、永恒和经典。我们包含地址的一个层次结构,它在大声朗读时富有韵律:“1月9日抢劫”,“04X巡警”等。其中存在潜在的二义性——例如时间在前“犯罪2009-01-09/抢劫”和类型在前“犯罪抢劫/2009-01-09”或者单数形式的“犯罪(cime)抢劫”和复数形式的“多重犯罪(cimes)抢劫”——我们把这些HTTP请求重定向到它们自己相应的表单。该重定向通过确保一个人给出的某天的盗窃清单和另一个人给出的能够完全匹配,这样URL就变得更具有共享性。通过个人给出的URL,其不足之处在于它的地址结尾存在一个数值关键字。PostgreSQL开发人员Josh Berkus非常憎恶这种关键字,在他的“Primary Keyvil”的系列文章中对此做了详细的描述(htp://it.toolbox.com/blogs/database-soup/primary-keyvil-part-i-7327):

    没有多久(大约两个月),我们就发现使用“id”作为唯一的不重复字段存在严重问题。我们在日历安排上有很多的听证会,它们具有相同的摘要、在同一天或者在同一个地方发生。这两个听证会是相同的还是不同的?我们无法确定。问题的本质是自动id列不包含其关联记录的信息,而且不包含该记录的任何信息。记录本身可能是重复的,也可能是唯一的,而如果有人无知删除了外键约束,重复的记录就丢失了。

    我们包含这些关键字的理由是奥克兰警察局保存记录的方式相当松散。虽然每个报告都有一个案例编号,但这些编号通常是在不同报告之间共享,而且看起来把一组个人的指控连接为单个更广泛的事故。一个极端的例子是编号为08-056061的案例(htp://oakland.crimespotting.org/crime/2008-08-01/murder/93014),它关联了9个在2008年8月某个晚上发生的谋杀、盗窃和严重伤害报告。我们已经使用案例编号和文本描述(如“ASSAULT W/SEMIAUTOMATIC FIREARM ON PEACE OFFICER/FIREFIGHTER”)作为唯一标识符来解决这个问题,但这种方式导致URL太长,可读性很低,因此使用数值ID来代替。

    对URL的这种关注的结果是把在线的犯罪信息转化为社会对象。在CrimeWatch上,引用报告需要对要采取的动作使用过程化的描述:采用向导小工具(Wzard),可以选择这个,按住那个,点击这里等;找到关于某个特定报告的特定信息需要大约10多次的独立点击。URL公开之后,其本身也是犯罪信息的完整描述。Leonard Richardson认为地址或者统一资源标识符URI是导致WWW在20世纪取代了其他流行的网络协议的主流技术。在Richardson 2008年的精彩演讲“Justice Will Take Us Millions Of Intricate Moves”(htp://www.crummy.com/writing/speaking/2008-QCon/)中,他认为Web主要有三种技术构成:定位资源的URI协议、传输资源的HTTP协议和使客户端软件能够理解并知道如何处理资源的HTML。这三者都是至关重要的组成部分。特别地,URI设计受到人们的广泛关注,但实际上是包含链接和表单的又老又慢的HTML使得相互连接的Web真正变成可能。HTML是对Roy T.Fielding在2000年博士论文中提出的“表示状态传输(Rpresentational State Transfer,REST)作为架构方式”(htp://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm)想法的至关重要的解释。只要可能,我们就遵循这些想法,保持Crimespotting的交互的Falsh展示部分严格基于基础的、1993年的Web页面的格式。我们的API为Flash、RSS和Atom的Feed读者提供XML格式的数据,为电子表格提供CSV格式的数据;所有核心的使用信息方式组成了一套完整的API。

    2007年8月发布的产品中囊括了这里描述的所有概念,同时依赖于CrimeWatch在夜间执行的代价很高的刮页操作。我们确定市政府肯定有人最终会注意到这一点并对它表示不满,但是八个月来系统一直运行很顺利,这让我们产生了一种安全的错觉。