基于Drupal的政府开放数据平台构建
2016-05-14李盼翟军陈燕
李盼 翟军 陈燕
〔摘要〕开放政府数据能够促进政府透明和社会创新,已成为国内外研究和实践的热点。本文针对我国地方政府开放数据门户网站在元数据规范和数据格式上的不足,设计并建立基于Drupal的政府开放数据平台。在分析平台核心功能的基础上,引进W3C的通用元数据标准DCAT。重点说明平台建立元数据模式的映射过程,并介绍如何为关联数据集提供Sparql端点。以来自浙江省开放数据网站的一个具体数据集的发布为例,表明该平台支持机器可读的通用元数据格式,为我国各类开放数据网站的建设和升级提供借鉴和参考。
〔关键词〕Drupal;政府开放数据;开放数据平台;元数据;DCAT;关联数据
DOI:10.3969/j.issn.1008-0821.2016.08.007
〔中图分类号〕G25073〔文献标识码〕A〔文章编号〕1008-0821(2016)08-0037-07
〔Abstract〕As a hot topic,Open Government Data provides a new way for promoting the construction of the transparent government and innovations between different social organizations.This paper designed and established a platform based on Drupal in order to resolve the problem about datasets metadata and data formats existing in open data portals of local government in China.Metadata providing can permit interoperability between different systems and the use of machine-readable,non-proprietary electronic data formats can reduce technical barriers to data access for users.Based on the basic analysis of the core functions of the platform,this paper introduced a common metadata standard DCAT,which was announced by W3C.Then the clear description was given to explain how to process mappings between DCAT vocabularies and fields of Drupal,which aimed to provide metadata for datasets.Publishing linked data is always difficult for the study of open data.There fore,the paper presented a simple solution on how to provide a Sparql endpoint for publishing data formats of linked datasets using Drupal.Finally,taking a dataset from Zhejiang governments Open data platform as an example to show the whole process about how this platform publishes datasets and provided machine-readable metadata formats.And this paper also made a detailed introduction about the important Drupal modules used in this platform,including RDFx module,Sparql endpoint module,DKAN related modules,which is a complimentary offering to CKAN with a full suite of cataloging,publishing and visualization features,and so on.This paper provided references for the construction and upgrading of all types of open data platform in our country.
〔Key words〕Drupal;government open data;open data platform;metadata;DCAT;linked data
大数据时代,“数据”的重要性被提到了前所未有的高度,通过对海量数据的交换、整合、分析和利用,能够发现新知识、创造新价值[1]。在全社会中,政府数据起着核心与枢纽的作用。各国的研究与实践表明,开发和利用信息资源的前提是信息公开和数据开放,而数据开放的核心则是“开放政府数据”(Open Government Data,OGD)[2]。全球范围兴起的“开放政府数据运动”始于2009年美国奥巴马政府推动的“开放政府行动计划”(Open Government Initiative)[3]。2011年9月20日,美国、英国、巴西、印度尼西亚、墨西哥、挪威、菲律宾、南非八个国家在纽约集会,宣布成立“开放政府合作组织”(Open Government Partnership,OGP),到2016年4月其成员国已从8个发展到69个。目前,世界各国已有超过250个政府(中央政府、地方政府或城市)实施“开放数据”的行动计划[4]。“开放数据”为政府机构、社会组织和个人的创新及协作提供了新的途径。世界银行总结的OGD的益处主要包括:①促进政府的公开透明和公共服务质量及办事效率的提升;②为社会创新和经济增长提供数据资源和推动力[5]。
在开放政府数据运动中,为了集中管理大量的开放数据和方便用户进行数据查找,关键的举措之一是发布“开放数据目录”(Open Data Catalogs)的门户网站(Portals)[3,6]。以2009年美国政府的“一站式”数据门户Data.Gov为先河,到2016年4月,DataPortals.org收集的数据门户网站已达519个。数据门户所依托的“开放数据平台”(Open Data Platform)也成为这一领域的研究热点之一[6]。
在我国,从2012年开始,北京、上海、浙江、青岛、深圳等地方政府在大数据战略和智慧城市建设中率先推出了政府开放数据门户网站[7]。理论上,一些学者也开始关注“开放数据平台”的技术、管理与评价问题。郑磊等对国内各开放数据平台的数据导引、数据获取、界面体验、互动交流等方面进行了评估[7]。徐慧娜等通过13个指标,比较了纽约和上海两大城市政府开放数据平台的有用性、易用性和用户数据利用效果,指出了国内开放数据平台发展的不足[8]。钱晓红等论述了“开放数据平台”的技术特征:发布和管理数据、检索和查找数据、元数据建设、可视化处理等[9]。周志峰等对美国、英国、加拿大、澳大利亚和新加坡五国的政府开放数据门户的数据管理、检索与用户参与功能进行了分析,对我国政府信息公开工作提出了诸多建议[10]。
研究表明,我国的开放数据实践正处于萌芽和发展状态,与发达国家存在着较大的差距[11]。当前的开放数据平台对数据文件格式的支持有限[7-8]、没有采用通用的元数据规范和机器可读的元数据格式[6]等都影响到了数据开放的效果[7]。为此,本文在借鉴国际先进国家经验的基础上,构建基于Drupal的政府开放数据平台,引入W3C的数据目录元数据标准DCAT,并支持开放数据格式的5星模型,为我国地方政府开放数据平台的建设和升级提供部分解决方案。
1开放数据平台发展现状
各国数据门户使用的基础平台可以分为开源的和商业目的两种[12]。Junar(junar.com)和Socrata是基于云服务的SaaS(Software as a Service)开放数据平台,属于商用范畴;而CKAN(Comprehensive Knowledge Archive Network)、DKAN和ODPL等则是构建开放数据平台的开源软件(Open Source Software)。
目前,使用最广泛的基础平台是CKAN和DKAN[13-14]。CKAN适用于大型数据门户的构建,如美国(Data.Gov)、英国(Data.Gov.UK)的国家开放数据门户[10]。但是CKAN的部署和实现过程较为复杂,对于人员的专业素质要求较高[13]。DKAN(Drupal+CKAN)是基于Drupal的用于实现数据目录服务的一种方式,能够兼容CKAN且实现更多的功能,如对关联开放数据的支持等。DKAN和CKAN的主要技术对比见表1。
作为一个开源的内容管理系统(Content Management System,CMS),Drupal的所有功能的增减可以通过模块的启动和关闭来实现,易于开发和维护。截至2016年4月,Drupal站点上的模块已达33 728个,吸引了100 654个用户来贡献模块。Drupal已经广泛应用于图书馆各类门户网站的建设[15-16]以及教学资源管理中[17]。越来越多的政府数据门户也在采用Drupal,例如非洲近1/3的政府开放数据平台利用了DKAN[14]。本文的关注焦点则是Drupal在我国地方政府开放数据门户的应用。
2开放数据平台的核心功能分析
开放数据是指数据可以被任何人自由免费获取、利用和再发布,而不受版权、专利或其他机制的限制[11]。开放数据的本质是促进数据在最大范围上的再利用,为实现这一目标各国的最佳实践是在基于Web的开放数据平台上以“机器可读”(machine-readable,即数据能被程序自动处理)的格式发布各种高价值的数据[6]。为促进开放数据的机器可读性,政府数据开放的积极推动者、W3C主席蒂姆·伯纳斯-李于2010年在华盛顿特区的Gov20博览会上首次提出了开放程度(Openness)的“5星评级模型”(5 star rating scheme)[2,18]:
(1)1星(★)级别:以“开放许可”将数据发布到Web上,格式不限,可以是纸质文件的扫描件或PDF文档等,其特征简记为OL(open license);
(2)2星(★★)级别:发布为机器可读的结构化数据,如一个Excel电子表格,其特征简记为RE(readable);
(3)3星(★★★)级别:发布为非专有格式,如CSV,其特征简记为OF(open format);
(4)4星(★★★★)级别:采用W3C的开放标准,如RDF、Sparql等,其特征为通过URI来标识事物,简记为URI;
(5)5星(★★★★★)级别:将数据链接到其它数据集,即“关联数据”,其特征简记为LD(Linked Data)。
在模型中,星★是累加的,即高级别的开放涵盖低级别的所有特性。该模型关注开放数据的两个主要方面:法律和技术,即法律上要有开放许可、技术上要以机器可读的格式发布数据。模型指出了数据格式的升级路线:从专有格式到非专有格式、从开放标准到关联数据(即数据万维网),见表2。
国际上已有越来越多的5星级别的开放政府数据被发布出来[2]。如纽约市开放政府数据网站(data.cityofnewyork.us)提供的关联数据已经达到了5星水平[8],2014年“开放数据指数”冠军-英国,在国家数据网站(Data.Gov.UK)上已经发布了150个5星数据集。与此相对照,我国地方政府的开放数据还没有5星级别的,如上海市(www.datashanghai.gov.cn)、浙江省(data.zjzwfw.gov.cn)提供的数据格式仍处在2星、3星水平[7-8]。
在开放数据平台中,一组数据文件组织在一起形成数据集(Dataset)[9],数据集的列表就是数据目录(Data Catalog),而数据目录管理的是数据集的元数据[6]。为此,数据平台的核心功能是各种格式数据集的元数据管理和数据访问的API服务,见图1。数据平台的其他功能,诸如数据查找、数据存储、数据可视化、用户交互等[9],都是为核心功能服务或者建立在核心功能基础之上的。
3元数据管理
31元数据模式
随着开放数据门户和数据集数量的快速增长,对于应用者而言,寻找适当的数据集就越发具有挑战性,特别是跨多个数据目录的搜索[2]。为此,需要对数据集进行适当描述,即需要提供“元数据”(Metadata)。元数据是“数据的数据”(Data about Data)或“信息的信息”。开放数据集的元数据管理是政府数据目录的最基本功能,采用的元数据正在向结构化、标准化、语义化和机器可读的方向发展[6,10,19-20]。数据目录词汇表DCAT(Data Catalog Vocabulary)是W3C发布的支持数据目录之间互操作(Interoperability)的通用元数据标准[21],已经被英国、美国、欧盟的国家数据门户网站及datahub.io等采纳。在我国,对地方政府开放数据状况调查的结果显示[7-8]:各地方政府数据门户采用了不同的元数据模式,元数据的格式以HTML为主、不是机器可读的,这些都阻碍了开放数据集的可发现性和可用性[6]。
Drupal的最大特点是通过“内容类型”(Content Type)组织和管理结构化数据。内容类型可以理解为具有特定结构的数据模式,等价于数据库的表结构或类概念,符合模式定义的一条具体数据记录在Drupal中则以结点(Node)的方式存在。DKAN将数据集处理为一种“内容类型”,并通过映射建立 DKAN字段/属性与DCAT词汇/元素之间的对应关系,从而形成描述数据集的元数据模式,详情见表3。
32元数据实例
当在DKAN平台添加一个数据集即创建一个实例结点(Node)后,系统会自动为该数据集生成元数据文件,目前提供了rdf和json两种格式,它们均是机器可读的。图2与其下的文件是由平台自动生成的浙江省开放数据网站(data.zjzwfw.gov.cn)上的“师资库数据集”的元数据实例文件,而现有的元数据格式是HTML,很难被应用程序自动处理。在DKAN平台上发布数据集的详细过程请见下文“应用实例”小节。图2RDF格式的元数据json格式的元数据文件如下所示:
{″help″:″Return the metadata of a dataset(package) and its resources.:param id:the id or name of the dataset:type id:string″,
″success″:true,
″result″:[{″id″:″cd1be547-7fae-4d91-bbae-ef37661a1bc4″,
″title″:″师资库信息″,
″publisher″:″省安全生产监管局″,
″licensetitle″:″http:∥opendefinition.org/licenses/odc-by/″,
″notes″:″安全培训师资库信息,包括姓名、性别、工作单位、学历、职称、联系电话、状态″,
″url″:″http:localhost:8088/drupal/dataset/师资库信息″,
″private″:″Published″,
″url″:″http:manager.zjsafety.gov.cn″,
″description″:″通过提供API接口发布浙江省--师资库信息数据集。″,
″state″:″Active″,
″revisiontimestamp″:″Wed, 04\/27\/2016-11∶25″,
……}]}
在数据目录平台上,这两个元数据文件的访问地址分别为/node/nodeid.rdf和/api/3/action/packageshow?id=cd1be547-7fae-4d91-bbae-ef37661a1bc4。平台通过程序处理提供json格式的元数据,将元数据封装为一个result集合,并为该集合提供惟一的标识符,用户可以通过该标识符来访问具体的数据集所对应的元数据。无论是rdf格式,还是json格式,用户的应用程序都能够通过读取和解析这些元数据而了解数据集的详细信息,这提高了开放数据平台与用户应用程序之间的互操作性[6]。
4关联数据集的API发布
2011年1月发布的Drupal 7正式版已把RDF和关联数据的相关模块作为Drupal的核心部分[22]。通过Drupal创建5星级(参见表2)的关联数据得到了学者的关注和研究[22-23],而本文则关注开放数据平台如何为5星级的关联数据集提供API服务(参见图1)。
关联数据的获取方式主要有3种:批量下载、REST接口和Sparql端点[24]。前两种方式与普通的数据集一致,后一种方式是关联数据所独有的,目前还没有得到我国地方政府开放数据门户网站的支持。
Drupal的Sparql模块支持Sparql端点的发布,Sparql模块又包含SPARQL Endpoint和SPARQL Registry两个子模块。SPARQL Endpoint模块为本地站点的RDF数据向Web开放提供标准化接口;SPARQL Registry模块提供其它站点的Sparql端点注册功能。在Drupal 7x中可以结合Sparql View和Views模块进行关联数据集的消费和使用。
在启用Sparql模块之前,需要引入ARC2 Library包,将其放入sites/all/modules/rdfx/vendor/arc目录下。该包用于存储系统自动生成RDF数据,并支持Sparql查询语句的执行。成功启用Sparql模块后,站点就拥有相应的Sparql端点,默认的URL为:http:∥域名:端口号/站点名称/sparql,本文的例子为:http:∥localhost:8088/drupal/sparql。应用程序通过HTTP协议向Sparql端点发送Sparql查询请求,便可获取关联数据集中的数据[2,23]。
5平台构建
在建立DKAN平台前,需要安装Drupal站点。Drupal依赖于Windows+Apache+Mysql+PHP或者Linux+Apche+Mysql+PHP开发环境,可以手工搭建该集成环境,也可以直接下载wamp(https:∥sourceforge.net/projects/wampserver/)或者lamp集成包进行安装。DKAN依赖于Drupal 7x及以上版本的Drupal,推荐使用Drupal 741(https:∥www.drupal.org/drupal-7.41-release-notes),因为该版本目前是Drupal 7x最稳定的版本。Drupal的DKAN模块托管在gitHub(https:∥github.com/NuCivic/dkan)上,下载其相关模块进行安装即可。也可以选择直接安装嵌入DKAN的Drupal站点(https:∥github.com/nucivic/dkan-drops-7),步骤与安装普通的Drupal站点相同。
安装Drupal模块时,需要在/modules/install new module下选择模块所在的路径,然后加载模块。DKAN.info文件列出了DKAN所依赖的所有模块,包括Drupal核心模块(如block、file、image、rdf、path、taxonomy等),和众多的第三方模块(如restserver、restws、views、rules、services、facetapi、feeds等),另外还需要open data和DKAN features相关模块。需要注意的是,成功启用DKAN模块前,站点必须提供并启用这些依赖模块。表4列出了DKAN的核心模块,其中DKAN Dataset模块将数据集处理为结点,结点内容包括数据集元数据信息和数据资源信息;DKAN Datastore模块提供数据文件的上传、数据解析和保存功能;RDFx模块是Drupal构建语义数据所依赖的核心模块,在DKAN中为字段添加DCAT词汇表的元数据配置信息。表4DKAN的核心模块
核心模块描述DKANdistro包含了DKAN默认的主题,并且定义了块和导航条目,对DKAN所需的文件或者模块进行声明。DKAN Dataset将数据集和资源文件以内容类型方式定义,并且提供了数据集注册的个性化流程。DKAN Datastore将完成解析的数据文件存入数据库。recline一个js库文件,提供数据文件的预览视图。FeedsFlatstoreProcessor该模块用于将CSV文件解析为二维数据表文件。NuBoot RadixDKAN的默认主题基于Radix。RDFx为各字段添加DCAT词汇表的元数据描述信息。
6应用实例
下面以浙江省开放数据网站上的教育科技大类中的“师资库数据集”为例,利用DKAN平台实现该数据集的发布。
61在平台上添加数据集
在Content->Add content中选择“内容类型”为Dataset,然后添加该数据集的描述信息——元数据。数据集的“字段”值取自浙江省开放数据网站(data.zjzwfw.gov.cn),实例地址为:http:∥data.zjzwfw.gov.cn/catedetail.action?resid=210562/20150619105946000432&catecode=SJLY006。容易发现,该数据集描述网页并未提供“开放许可”信息。而DKAN提供了17种开放许可,如OGL、ODbl、PDDL等,并且每种开放许可都能链接到相应的说明页面。
62为数据集添加数据资源
添加数据集后,需要为其添加具体的数据资源。DKAN同样也将数据资源作为一种“内容类型”,这种低耦合方式有利于平台实现结构化数据的高效管理。一个数据集可以对应多个数据资源文件,通过数据集的标识字段将数据集和数据资源文件连接起来。DKAN提供了注册数据资源的3种方式:API、数据文件上传和链接到数据资源文件的URL。本例采用API方式发布数据资源文件。DKAN能够有效管理数据集中的多种格式的数据文件,用户可以根据需要访问或下载它们。
完成上述操作后,平台中该数据集的展示页面如图3所示。该页面的左侧包含有数据集的开放许可(License),及机器可读的两种格式(RDF和JSON)的元数据文件的下载图标,其详细内容见本文32;页面右侧列出了数据集中的数据文件信息,右侧下方的Dataset Info部分以HTML表格列出了所有的元数据。图3DKAN平台上的数据集展示页面
比较该数据集在浙江省公共平台的展示与图3可知,DKAN平台在开放数据集的元数据管理上有着明显的优势:既为人的阅读提供了HTML格式的元数据,也为程序自动处理提供了机器可读的元数据文件。
7结语
近年来,开放政府数据已经成为信息管理、电子政务、图书情报等领域的研究热点。如何设计和建设一个高质量的开放数据平台从而促进数据集的发现和有效利用,对处于发展阶段的我国各级政府开放数据工作具有重要的现实意义。
Drupal的开源特性、模块化特点及DKAN等模块为构建开放数据平台提供了技术基础。本文表明,基于Drupal的DKAN平台支持通用的元数据标准和机器可读的元数据格式,并为各种格式的数据集(特别是5星级的关联数据集)提供API接口,能有效克服国内开放数据网站的一些不足。下一步工作的重点将是在平台核心功能的基础上增加数据查找和导航、数据存储、数据可视化、用户交互、统计分析等功能。
参考文献
[1]涂子沛.大数据:正在到来的数据革命,以及它如何改变政府、商业与我们的生活(第3版)[M].桂林:广西师范大学出版社,2015:345-351.
[2]翟军.关联政府数据原理与应用——大数据时代开放数据的技术与实践[M].北京:电子工业出版社,2016:4-12.
[3]张涵,王忠.国外政府开放数据的比较研究[J].情报杂志,2015,34(8):142-146.
[4]World Bank.Open Data in 60 Seconds[EB/OL].http:∥opendatatoolkit.worldbank.org/en/open-data-in-60-seconds.html.
[5]World Bank.Benefits of Open Data[EB/OL].http:∥opendatatoolkit.worldbank.org/en/starting.html.
[6]Attard J,Orlandi F,Scerri S,Sren Auer.A systematic review of open government data initiatives[J].Government Information Quarterly,2015,32(4):399-418.
[7]郑磊,高丰.中国开放政府数据平台研究:框架、现状与建议[J].电子政务,2015,(7):8-16.
[8]徐慧娜,郑磊.面向用户利用的开放政府数据平台:纽约与上海比较研究[J].电子政务,2015,(7):37-45.
[9]钱晓红,胡芒谷.政府开放数据平台的构建及技术特征[J].图书情报知识,2014,(3):124-129.
[10]周志峰,黄如花.国外政府开放数据门户服务功能探析[J].情报杂志,2013,32(3):144-147.
[11]马海群,汪宏帅.我国政府开放数据战略的SLEPT分析及战略部署[J].情报科学,2016,34(3):3-8.
[12]Zuiderwijk A,Janssen M,Parnia A.The complementarity of open data infrastructures:An analysis of functionalities[C].Proceedings of the 14th Annual International Conference on Digital Government Research,ACM,2013:166-171.
[13]World Bank.Technical Assessment of Open Data Platforms for National Statistical Organisations[EB/OL].http:∥documents.worldbank.org/curated/en/2014/10/20451797/technical-assessment-open-data-platforms-national-statistical-organisations,2014-10.
[14]Bello O,Jolayemi O,Akinwande V,A Ibrahim.Open Data Portals in Africa An Empirical Analysis of Open Government Data Initiatives[C].Conference:4th iSTEAMS Research Nexus,2015:595-606.
[15]董智鹏,刘静羽.基于Drupal的项目网站建设——以“开放资源建设”网站为例[J].现代图书情报技术,2016,(1):81-86.
[16]周宇,魏太亮,廖思琴.基于Drupal的图书馆知识交流共享平台构建[J].现代情报,2016,36(3):53-60.
[17]孙荣.基于开源软件Drupal构建高校数字化教学资源门户[J].现代情报,2012,32(12):52-57.
[18]Tim Berners-Lee.Linked Data[EB/OL].http:∥www.w3.org/DesignIssues/LinkedData.html,2009-06-18.
[19]Zuiderwijk,A.,Helbig,N.,Gil-García,JRA.,& Janssen,M.Special issue on innovation through open data:Guest editors introduction[J].Journal of Theoretical and Applied Electronic Commerce Research,2014,9(2).
[20]Zuiderwijk A,Jeffery K,Janssen M.The potential of metadata for linked open data and its value for users and publishers[J].JeDEM-eJournal of eDemocracy and Open Government,2012,4(2):222-244.
[21]W3C.Data Catalog Vocabulary(DCAT)[EB/OL].http:∥www.w3.org/TR/vocab-dcat/,2014-01-16.
[22]夏翠娟,刘炜,赵亮,等.关联数据发布技术及其实现——以Drupal为例[J].中国图书馆学报,2012,38(1):49-57.
[23]任瑞娟,濮德敏,王剑宏,等.基于Drupal实现多类型学术资源的语义化组织与关联化聚合[J].情报科学,2015,33(5):63-67.
[24]王思丽,马建玲,李慧佳,等.关联数据集中开放资源的自动获取研究[J].图书馆学研究,2015(18):49-54.
(本文责任编辑:郭沫含)