Please wait a minute...
Advanced Search
数据分析与知识发现  2017, Vol. 1 Issue (8): 92-99     https://doi.org/10.11925/infotech.2096-3467.2017.0492
  首届"数据分析与知识发现"学术研讨会专辑(II) 本期目录 | 过刊浏览 | 高级检索 |
开放数据平台的接口服务研究及应用探讨*
翁丹玉, 翟军(), 袁长峰, 林岩
大连海事大学交通运输管理学院 大连 116026
Interface Services and Applications of Open Data Platform
Weng Danyu, Zhai Jun(), Yuan Changfeng, Lin Yan
Transportation Management College, Dalian Maritime University, Dalian 116026, China
全文: PDF (743 KB)   HTML ( 1
输出: BibTeX | EndNote (RIS)      
摘要 

目的】分析我国地方政府各开放数据平台接口服务同国际发展趋势的差距, 探讨提升互操作性的途径。【应用背景】“十三五”期间, 我国将建设国家政府数据统一开放平台, 推动各级政府数据的开放共享与深度利用, 对开放数据接口服务有着广泛的需求。【方法】在介绍国际上主要的开放数据平台和W3C API最佳实践基础上, 分析我国开放数据平台接口服务的主要不足。引进开放数据协议OData, 给出开放标准化API服务的关键步骤。【结果】通过搭建OData服务、发布说明文档和附加机器可读的元数据, 为遵循国际通用的最佳实践打下基础。【结论】我国在提供接口服务时, 需要借鉴先进经验, 采纳国际标准是提升互操作水平的关键。

服务
把本文推荐给朋友
加入引用管理器
E-mail Alert
RSS
作者相关文章
翁丹玉
翟军
袁长峰
林岩
关键词 开放政府数据开放数据平台API接口服务OData    
Abstract

[Objective] This paper aims to find out the differences between the interface services of governmental open data platform in China and developing trends around the world. [Context] During the 13th Five-Year Plan period, China will build a national open data platform to promote the sharing and in-depth utilization of data at all levels, which demands huge amount of interface services. [Methods] We analyzed the major issues facing the open data platform interface services in China, based on the popular international open data platforms and the W3C API best practices. We also introduced the open data protocol OData to discuss key steps for launching standardized API services. [Results] Building OData services, issuing documentation and machine-readable metadata could help our API services follow best practices. [Conclusions] Adopting internationally accepted standards could improve user experience of interface services in China.

Key wordsOpen Government Data    Open Data Platform    Application Programming Interface (API)    Interface ServiceOpen    Data Protocol (OData)
收稿日期: 2017-05-31      出版日期: 2017-07-26
ZTFLH:  G203  
基金资助:*本文系国家自然科学基金面上项目“支持协同创作的社会化媒体知识集成研究”(项目编号: 71571025)和国家自然科学基金项目“油储系统火灾事故应急过程本质安全的风险源分析方法研究”(项目编号: 51404052)的研究成果之一
引用本文:   
翁丹玉, 翟军, 袁长峰, 林岩. 开放数据平台的接口服务研究及应用探讨*[J]. 数据分析与知识发现, 2017, 1(8): 92-99.
Weng Danyu,Zhai Jun,Yuan Changfeng,Lin Yan. Interface Services and Applications of Open Data Platform. Data Analysis and Knowledge Discovery, 2017, 1(8): 92-99.
链接本文:  
https://manu44.magtech.com.cn/Jwk_infotech_wk3/CN/10.11925/infotech.2096-3467.2017.0492      或      https://manu44.magtech.com.cn/Jwk_infotech_wk3/CN/Y2017/V1/I8/92
平台 网址 类别 应用实例
CKAN https://ckan.org 开源 超过146个应用实例, 如美国Data.Gov、英国Data.Gov.UK等
DKAN http://getdkan.com/
https://www.drupal.org/project/dkan
http://docs.getdkan.com/en/stable
开源 科隆(德国) https://www.offenedaten-koeln.de
Socrata https://socrata.com 商用 芝加哥data.cityofchicago.org
旧金山datasf.org/opendata
Junar http://www.junar.com 商用 智利recursos.datos.gob.cl
OpenDataSoft https://www.opendatasoft.com 商用 巴黎opendata.paris.fr
OGDI http://ogdi.codeplex.com
https://github.com/openlab/OGDI-DataLab
商用 哥伦比亚https://www.datos.gov.co/en
  国际上主要的开放数据平台
编号 最佳实践 说明
BP2 Provide Descriptive Metadata 为API提供描述元数据。
BP12 Use Machine-readable Standardized Data Formats 数据及元数据使用机器可读的标准数据格式, 如CSV、XML、JSON和RDF等。
BP14 Provide Data in Multiple Formats 为数据资源提供多种格式。
BP18 Provide Subsets for Large Datasets 对于大型数据集, 能让消费者获取它的子集。这时, API是最灵活的方式。
BP20 Provide Real-time Access 通过API定期轮询或流媒体技术, 让消费者实时获取数据。
BP21 Provide Data up to Date 为消费者提供最新数据, 防止数据过时。
BP23 Make Data Available through an API 为数据资源提供API, 可以借助平台(如CKAN)的API功能, 或者API的开发框架。
BP24 Use Web Standards as the Foundation of APIs API建立在Web标准(主要是HTTP、REST等)之上, 使其易于理解、使用和维护。
BP25 Provide Complete Documentation for Your API 为开发者提供详细的API说明文档, 包括每个API的目的、参数、返回值和使用示例等。
BP26 Avoid Breaking Changes to Your API 避免API格式与文档的变化, 使客户端代码保持稳定。如需改进API, 最好以增量的方式并采用版本控制。
  W3C推荐的API最佳实践
地方政府 数据门户网站 主要优点 主要不足
北京市 http://www.bjdata.gov.cn/ BP2、BP23、BP25
(为API提供了元数据和说明文档)
BP12(元数据不是机器可读的); BP14(API不能返回多种格式, 只是JSON格式); BP18(API没有查询功能); BP24 (不是RESTfulAPI); 调用API需要key
上海市 http://www.datashanghai.gov.cn/ BP2、BP18、BP23、BP25
(为API提供了元数据和说明文档; API有查询功能)
BP12(元数据不是机器可读的); BP14(API不能返回多种格式, 只是XML格式); BP24(不是RESTfulAPI)
贵州省 http://www.gzdata.gov.cn/ BP2、BP23
(为API提供了元数据)
BP12(元数据不是机器可读的); BP14(API不能返回多种格式, 只是XML格式); BP18(API没有查询功能); BP24 (不是RESTful API); BP25(没有文档)
浙江省 http://data.zjzwfw.gov.cn/ BP2、BP18、BP23
(为API提供了元数据; API有查询
功能)
BP12(元数据不是机器可读的); BP14(API不能返回多种格式, 只是JSON格式); BP24(不是RESTful API); BP25(没有说明文档)
重庆市 http://cqckan.chinacloudapp.cn/ BP2、BP23、BP24
(为API提供了元数据; 少量数据集有OData API)
BP12(元数据不是机器可读的); BP14(API不能返回多种格式, 只是XML格式); BP18(API没有查询功能); BP25(没有说明文档)
广东省 http://www.gddata.gov.cn/ BP2、BP18、BP23、BP25
(为API提供了元数据和说明文档; API有查询功能)
BP12(元数据不是机器可读的); BP14(API不能返回多种格式, 只是JSON或XML); BP24(不是RESTful API)
贵阳市 http://www.gyopendata.gov.cn/ BP2、BP14、BP18、BP23、BP25
(为API提供了元数据和说明文档; 两种格式JSON和XML; API有查询功能)
BP12(元数据不是机器可读的); BP24(不是RESTful API)
  我国地方政府开放数据平台API服务的分析结果——最佳实践的视角
序号 名称 说明
1 Part 1: Protocol Plus Errata 03 定义协议的核心语义和能力
2 Part 2: URL Conventions Plus Errata 03 推荐URL的构建规则, 用以标识数据和元数据, 以及查询字符串
3 Part 3: Common Schema Definition Language(CSDL) Plus Errata 03 定义OData服务的“实体数据模型”(EDM)的XML表示
4 OData JSON Format Version 4.0 Plus Errata 03 对Part 1的补充, 给出客户端与服务器通信的JSON格式语法
5 OData Extension for Data Aggregation Version 4.0 增加分组和聚集功能
  OData标准的组成
EDM RDM 说明
实体集(Entity Set) 表或视图 对应数据库中的表, 也称集合(Collections)或源(Feeds)
实体(Entity) 数据行 对应数据库表中的一行数据
操作(Operation) 存储过程 对数据的CRUD (Create, Retrieve, Update, Delete)操作
导航属性(Navigation Property) 外键 定义实体间的关系
  EDM与RDM的概念映射
序号 查询关键字 说明
1 $select 等价于T-SQL的SELECT子句, 用于确定OData服务返回哪些列
2 $expand 用来指定相关的实体, 以内联形式表示, 类似T-SQL中的多表联合查询
3 $filter 等价于T-SQL的WHERE子句, 指定查询结果应满足的条件
4 $orderby 等价于T-SQL的ORDER BY子句, 用于对查询结果排序
5 $top 等价于T-SQL的TOP子句, 限制返回的记录个数
6 $skip 排除给定参数N的记录数, 从第N+1个记录开始返回
7 $count 指定true值, 返回请求匹配集合中总共的记录个数
8 $search 返回指定查询表达式限制的实体信息
  OData查询关键字
平台 API类型 API模式
CKAN API 通过键值对的方式查询与查询字符串匹配的数据资源
的元数据
某一数据集下的全部的元数据描述, 包括该数据集下
数据资源元数据
{根URL}/api/{version}/action/resource_search?query=
{元数据字段key}:{value}
{根URL}/api/{version}/action/package_show?id=
{datasetName or datasetId}
Socrata API 某一数据集下的数据资源 {根URL}/resource/{dataset_identifier}.{datatype}
OData API 获取元数据文档
获取服务文档
获取一个实体集
查询实体集中某一实体
其他查询API
{根URL}/$metadata
{根URL}/
{根URL}/{entityset_identifier}
{根URL}/{entityset_identifier}(entity_id)
{根URL}/{entityset_identifier}?$filter={}等
  CKAN API、Socrata API与OData API的对比
  开放数据平台中的OData服务
名称 网址 技术平台 支持的版本
Apache Olingo http://olingo.apache.org/ Java V2和V4
RESTier http://odata.github.io/RESTier/ .Net V4
node-odata https://github.com/TossShinHwa/node-odata JavaScript V4
ODataStore for CoreData (iOS) http://www.hwigmbh.de/hwi/produkte/odatastore-for-coredata/ Objective-C (iOS & Mac OS X) V3
  实现OData服务的代表性支持库的主要技术要求
序号 API类型 调用方式
1 全部数据集元数据 GET localhost:8050/api.rsc/$metadata
2 数据集服务文档 GET localhost:8050/api.rsc/
3 查询某个数据集 GET localhost:8050/api.rsc/高等学校
4 查询数据集中某一数据项 GET localhost:8050/api.rsc/高等学校(1)
5 根据$search传入参数值进行查询 GET localhost:8050/api.rsc/高等学校?$search=大学
6 根据$filter传入参数值, 限制返回结果集 GET localhost:8050/api.rsc/高等学校?$filter=phone
7 $count返回数据集记录总数 GET localhost:8050/api.rsc/高等学校/$count
8 $orderby根据字段名返回结果集排序, 默认升序 GET localhost:8050/api.rsc/高等学校?$orderby schoolCode
  基于HTTP GET方法的OData API示例
[1] Attard J, Orlandi F, Scerri S, et al.A Systematic Review of Open Government Data Initiatives[J]. Government Information Quarterly, 2015, 32(4): 399-418.
doi: 10.1016/j.giq.2015.07.006
[2] World Bank. Open Data in 60 Seconds [EB/OL]. [2016-05-22]. .
[3] Zuiderwijk A, Helbig N, Gil-Garc, et al.Special Issue on Innovation Through Open Data: A Review of the State-of-the-Art and an Emerging Research Agenda: Guest Editors’ Introduction[J]. Journal of Theoretical & Applied Electronic Commerce Research, 2014, 9(2): 1-13.
[4] 吴钢, 曾丽莹. 国内外政府开放数据平台建设比较研究[J]. 情报资料工作, 2016(6): 75-79.
doi: 10.3969/j.issn.1002-0314.2016.06.015
[4] (Wu Gang, Zeng Liying.A Comparative Study on the Construction of Open Data Platform Between Chinese and Foreign Governments[J]. Information and Documentation Services, 2016(6): 75-79.)
doi: 10.3969/j.issn.1002-0314.2016.06.015
[5] 黄如花, 王春迎. 我国政府数据开放平台现状调查与分析[J]. 情报理论与实践, 2016, 39(7): 50-55.
[5] (Huang Ruhua, Wang Chunying.Investigation and Analysis of the Status of Government Open Data Platform in China[J]. Information Studies: Theory and Application, 2016, 39(7): 50-55.)
[6] 曹雨佳. 政府开放数据生存状态: 来自我国19个地方政府的调查报告[J]. 图书情报工作, 2016, 60(14): 94-101.
doi: 10.13266/j.issn.0252-3116.2016.14.011
[6] (Cao Yujia.Government Open Data Survival Status: Investigation Report on 19 Local Governments[J]. Library and Information Service, 2016, 60(14): 94-101.)
doi: 10.13266/j.issn.0252-3116.2016.14.011
[7] 邸弘阳, 任思琪. 政府数据公开网络平台的数据管理与利用方式研究[J]. 图书馆杂志, 2017(1): 88-96.
[7] (Di Hongyang, Ren Siqi.Research of Open Data Management and Utilization of Open Government Data Network Platforms[J]. Library Journal, 2017(1): 88-96.)
[8] Priebe S, Kannicht M, Jacob M, et al.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.
[9] 李盼, 翟军, 陈燕. 基于Drupal的政府开放数据平台构建[J]. 现代情报, 2016, 36(8): 37-43.
[9] (Li Pan, Zhai Jun, Chen Yan.The Construction of Government Open Data Platform Based on Drupal[J]. Modern Information, 2016, 36(8): 37-43.)
[10] W3C. Data on the Web Best Practices Working Group [EB/OL]. [2016-08-29]. .
[11] W3C. Data on the Web Best Practices[EB/OL].[2017-01-31]. https://www.w3.org/TR/dwbp/.
[12] W3C. DWBP Implementation Report [EB/OL]. [2017-01-29]. .
[13] OASIS Standards [EB/OL]. [2017-01-31]..
[14] ISO/IEC. Information technology -- Open Data Protocol (OData) v4.0 -- Part 1: Core[EB/OL]. [2017-01-29]. .
[15] Analyzing Socrata data in Microsoft Excel® via OData [EB/OL]. [2017-01-31]..
[16] OpenDataSoft. Using the OData API[EB/OL]. [2017-01-29]. .
[17] OData - The Protocol for REST APIs [EB/OL]. [2017- 01-31]. .
[18] Wikipedia. Open Data Protocol [EB/OL].[2017-01-29]. .
[19] W3C. Data Catalog Vocabulary (DCAT)[EB/OL]. [2014-01- 16]. .
[20] 于梦月, 翟军, 林岩. 我国地方政府开放数据的核心元数据研究[J]. 情报杂志, 2016, 35(12): 98-104.
[20] (Yu Mengyue, Zhai Jun, Lin Yan.Open Data Core Metadata Research in Chinese Local Governments[J]. Journal of Intelligence, 2016, 35(12): 98-104.)
[1] 佘静涛. 高校图书馆微信服务平台的设计与实现*——以浙江工业大学图书馆为例[J]. 现代图书情报技术, 2016, 32(7-8): 147-153.
[2] 李丹, 李娟. 微信和图书馆业务及应用系统整合研究[J]. 现代图书情报技术, 2014, 30(12): 97-104.
[3] 黄勇. 留学人物数据库GIS应用的设计与实现[J]. 现代图书情报技术, 2012, 28(5): 91-95.
[4] 张红, 王美英, 只莹莹. ALEPH500系统X-server接口的研究与实践[J]. 现代图书情报技术, 2011, 27(10): 68-73.
[5] 叶红卫. 基于Google图书搜索引擎的Web OPAC图书预览功能实现[J]. 数据分析与知识发现, 2010, 26(9): 90-93.
[6] 毕强,韩毅. 基于OWL-S API的数字图书馆服务组合应用研究*[J]. 现代图书情报技术, 2010, 26(1): 28-33.
[7] 许德山,乔晓东,朱礼军,姜彩虹,宫丽环. 本体推理在知识检索中的应用*[J]. 现代图书情报技术, 2009, 3(1): 58-63.
[8] 李峰,李春旺. Mashup关键技术研究[J]. 现代图书情报技术, 2009, 3(1): 44-49.
[9] 朱超,苏新宁,邓三鸿. 基于ISAPI的社会科学引文索引短信平台服务[J]. 现代图书情报技术, 2006, 22(1): 55-58.
[10] 刘蓉,王国顺,文亮. 一个基于ASP.NET与Yahoo Web APIs的搜索网站的实现[J]. 现代图书情报技术, 2005, 21(8): 42-44.
[11] 陈武,窦天芳,林容. INNOPAC读者PIN认证API应用实例[J]. 现代图书情报技术, 2005, 21(10): 84-87.
[12] 徐建刚. Horizon WebPAC状态监测与自动恢复[J]. 现代图书情报技术, 2004, 20(3): 32-34.
[13] 李湘江. 基于Web的数据库技术[J]. 现代图书情报技术, 2003, 19(1): 57-59.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
版权所有 © 2015 《数据分析与知识发现》编辑部
地址:北京市海淀区中关村北四环西路33号 邮编:100190
电话/传真:(010)82626611-6626,82624938
E-mail:jishu@mail.las.ac.cn