科学数据管理的“FAIR原则”及其实施

【FAIR原则】https://www.go-fair.org/fair-principles/

2016年,Mark D. Wilkinson等在《Scientific Data》上发表 The FAIR Guiding Principles for scientific data management and stewardship( https://doi.org/10.1038/sdata.2016.18),提出科学数据管理的“FAIR指导原则”,即改善数字资产的可查找性(Findability)、可获取性/可访问性(Accessibility)、互操作性(Interoperability)和重用性(Reusability)。原则强调机器可操作性,即计算系统在没有或最少人为干预的情况下查找、获取、互操作和重用数据的能力。

FAIR原则涉及三种类型的实体:数据(或任何数字对象)、元数据(有关该数字对象的信息)和基础架构(如注册、搜索引擎)。原则如下:

  • F 可查找性
  • (重复)使用数据的第一步是找到它们。对人和计算机来说,元数据和数据都应该易于找到。机器可读的元数据对于自动发现数据集和服务至关重要,因此这是“FAIR化流程”的重要组成部分。
  • F1、(元)数据被分配一个全局唯一且持久的标识符
  • F2、用丰富的元数据(由下面的R1定义)描述数据
  • F3、元数据清晰明确地包含了它们描述的数据的标识符
  • F4、(元)数据在可搜索资源中注册或索引
  • A 可获取性
  • 一旦用户找到所需的数据,她/他就需要知道如何获取它们,可能包括身份验证和授权。
  • A1、(元)数据可使用标准化的通信协议通过其标识符进行检索
  • A1.1、协议是开放、免费的并且可以普遍实施
  • A1.2、协议允许在必要时进行身份验证和授权过程
  • A2、即使数据不再可用,也可以获取元数据
  • I 互操作性
  • 可互操作数据通常需要与其他数据集成。此外,数据需要与应用或工作流进行互操作,以进行分析、存储和处理。
  • I1、(元)数据使用一种形式化、可获取、共享和广泛适用的语言来表示知识。
  • I2、(元)数据使用符合FAIR原则的词表
  • I3、(元)数据包括对其他(元)数据的合格引用
  • R 重用性
  • FAIR的最终目标是优化数据的重用。为此,应详细描述元数据和数据,以便可以在不同的设置中复制和/或组合它们。
  • R1、(元)数据以多种准确且相关的属性进行丰富的描述
  • R1.1、(元)数据使用明确且可获取的数据使用许可证发布
  • R1.2、(元)数据与详细出处关联
  • R1.3、(元)数据符合领域相关的社区标准

走向FAIR社区https://www.go-fair.org/how-to-go-fair/

FAIR原则没有停留在学术论文中。自2018年以来,GO FAIR社区一直在努力实施FAIR指导原则。这种集体努力形成了一个三点框架,该框架制定了必不可少的步骤,为的是实现最终目标——一个全球性的“FAIR数据和服务互联网”,其中的数据可用于计算机的可查找、可获取、可互操作和可重用(FAIR)。

https://www.go-fair.org/wp-content/uploads/2020/07/3-point-framework_text_icon-background-1.png
三点框架指:M4M(用于机器的元数据)FIP(FAIR实施纲要)FDP(FAIR数据点)。自2020年4月以来,有3个相应的工作组在开发方法、工具和文档。

定义元数据需求:M4M研讨会https://www.go-fair.org/how-to-go-fair/metadata-for-machines/

没有机器可操作的元数据就没有FAIR数据。自2018年10月以来,已举办了6次M4M研讨会,由领域专家与元数据专家(数据管家)组成团队,定义满足特定领域的FAIR数据需求的元数据需求。

FAIR化流程https://www.go-fair.org/fair-principles/fairification-process/

对于非FAIR数据,走向FAIR社区采用7个步骤将之“FAIR化”:1检索非FAIR数据——2分析检索到的数据——3定义语义模型——4使数据可链接——5分配许可证——6定义数据集的元数据——7部署FAIR数据资源

https://www.go-fair.org/wp-content/uploads/2017/11/FAIRificationProcess-1.png

试用谷歌数据集搜索

对于数据科学的学习者和应用实践者,常常需要查找适当的数据集进行分析。谷歌工具箱去年推出垂直搜索引擎——数据集搜索,收录托管在数千个Web存储库中数据集的信息。

数据集搜索(测试版)Dataset Search

据称该项目将带来的额外益处是:a)创建一个数据共享生态系统,鼓励数据发布者遵循数据存储和发布的最佳做法(采用用schema.org描述其数据集),b)为科学家提供一种通过引用他们生产的数据集来展示其工作影响的方法。

参见:Making it easier to discover datasets / Natasha Noy (2018-9-5)

现以“Library Collection Inventory”为例进行搜索。

上栏:搜索条件筛选,有4个:

  • 更新日期(最近1个月、最近1年、最近3年)
  • 下载格式(表格、文档、图像、文本、档案、其他)
  • 使用权限(允许商业使用,允许非商业使用)
  • 免费

左栏:搜索结果一览,提供信息:数据集名称、出处、更新日期

右栏:搜索结果详情,提供数据集详细信息(以下限浏览所见,不一定每个数据集都有,也不一定完整)

  • [1] 名称
  • [2] 来源及链接链接(蓝色按钮)
  • 不同来源提供同样的数据集,归并在一起,因此可能有多个链接。
  • 由于来源含数据集门户(如catalog.data.gov),最终数据集下载网站可能相同。
  • 不同来源元数据信息详简不一,有的还有单独的数据字典,有助于使用。
  • [3] 引用本数据集的学术论文数(含谷歌学术链接)
  • 虽然这是声称的重要优点,目前似乎仍不实用。因为链接的只是以数据集名称搜索谷歌学术的通用检索式(如https://scholar.google.com/scholar?q=%22library%20collection%20inventory%22),并非真正提供引用此数据集的文章——显示有7篇论文引用某数据集,但链接过去有34个结果——在结果一览中也无法识别出哪几篇引用了此数据集。
  • [4] 唯一标识符
  • 出自dataverse.harvard.edu的有DOI。大多数没有,对数据集的引用及识别均有影响。
  • [5] 日期(创建、发布、更新)
  • [6] 提供者
  • [7] 作者
  • [8] 许可
  • [9] 提供的下载格式。常见的有:rdf, xml, csv, json等。
  • [10] 覆盖时间范围
  • [11] 覆盖地理区域
  • [12] 简介

用中文搜索,也可以找到数据集,最多的结果是来自司尔亚司数据信息有限公司(CEIC)的收费数据,浏览数据图示免费(可以定制时间范围、图示类型),下载或API收费。

OpenRefine数据处理工具

承蒙访学海外的云影提供ALCTS虚拟会议“元数据自动化”(We Can Do It, You Can Too! Metadata Automation for Everyone)的会议报告,其中介绍了很多元数据处理工具,比如Excel扩展KutoolsTextWrangler大数据集文本处理(支持正则表达式替换)、Tableau Public可视化等,以及最为常用的OpenRefine、MARCEdit
几个报告中提到的OpenRefine应用涉及数据审核与分析、数据清洗与调和,包括分面、过滤、分簇与编辑、正则表达式转换、外部数据源调和(增强),甚至还能用于转换元数据方案(从DC到MODS、MARCXML),相当强大

OpenRefine就是原来的Google Refine。密歇根大学Bentley历史图书馆ArchivesSpace项目,曾使用Google Refine,通过VIAF API查询LC规范记录,增强档案记录中的名称和主题。参见:利用关联数据、验证名称和主题(LC和VIAF)(2015-8-30)

OpenRefine是安装后本机运行的软件,可以处理的数据文件大小取决于电脑内存(4G内存上网本,无法加载85MB的Excel文件)。
基础应用有Excel知识就行,表达式可选3种语言:GREL(General Refine Expression Language)、Jython(Python的纯Java实现)、clojure(Java平台的Lisp方言)。高级应用需要了解JSON

OpenRefine网站:http://openrefine.org
最新软件为2013-8-27的2.6版(存储于amazon S3,如无梯、能否下载成功看运气)。入门wiki在github(包括GREL语法)。
软件解压后执行,需要Java环境,如电脑没有安装过JRE,会自动打开浏览器到Java官网下载页面,下载安装即可。有意思的是安装过程中提示Google Chrome可能无法使用 Java 插件,实际完全没有问题。

OpenRefine中文资料不易找到。基本功能可参考Google Refine 2.0的3个视频,已有热心人士从Youtube转到优库。

0、运行程序,自动启动浏览器,网址:http://127.0.0.1:3333/
导入数据4个途径 :1 本机,2 网址(URL),3 剪贴板,4 Google数据
支持多种格式数据导入,包括CSV, Excel (.xls 和 .xlsx), JSON, XML, RDF等;导出数据格式有CSV, Excel, HTML, ODF电子表格以及自定义模板。

一、清洗数据(参见视频:Google Refine 2.0 -1. Explore Data (1/3)
1、找到问题数据
(1)分面(facet),分组结果显示在屏幕左栏
文本分面:不同取值及出现数量,可按字顺/数量排序,易于发现不一致取值。可直接批修改/替换。
数值/时间分面:不同取值分布图,可调节取值区间、找到可能有问题的数值。还可对数值进行操作(比如取对数)改变显示的分布图,以更清楚了解数值是否在合理区间。
(2)文本过滤(filter),查找特定值,可以用正则表达式。后续修改/替换等处理可仅针对过滤后部分。
(3)排序(sort),可设定有效值、空值、错误值的排序位置,易于找到问题数值。
2、批处理(edit cells)
除了上述1找到问题数据后直接处理,还有更强大的批处理功能:
(1)通用转换(common transforms):去空格,改大小写,改取值类型(文本、数值、日期)等
(2)编辑/修改/替换:修改单元格值时,可选择适用所有相同单元格(apply to all identical cells)
(3)自动归类相似取值(Cluster):可一键合并为相同值。这是快速完成数据一致性处理的强大工具。
(4)定制文本转换(transform):使用各种表达式(公式/函数),结果即时预览,确认正确后再执行。
可惜“帮助”缺少样例,对新手不够友好。
(5)电子表格通常有的功能当然也是有的:分列/合并、填充等。
向下填充是智能的,无需指定范围、自动复制其值到后续空格。
3、最后也是最重要的,所有操作历史自动保留
(1)可随时通过回退Undo/Redo找回某个处理前的状态——只要选择到某步骤,单击即完成回退操作。
(2)处理步骤可复制(比如用于对另一批数据做相同处理),可抽取(Extract)复制操作代码,粘贴到Apply窗口运行(当然也可在运行前修改代码)。

二、转换格式(参见视频:Google Refine 2.0 -2.Clean and Transform Data (2/3)
把其他格式数据(清单、键/值等),通过分组处理、行列变换等转换为需要的电子表格形式。
视频为维基百科格式的清单改为表格的详细实例。导出模板默认为JSON格式,可修改模板为其他格式。

三、增强数据(参见视频: Google Refine 2.0 -3. Reconcile and Match Data
通过API获取外部数据,增强电子表格中的内容。视频中有3个例子:
1、由具体地址获取经纬度(wiki.openstreetmap.org/wiki/Nominatim)
先新增栏(edit column -> add column by fetching URLs),通过调用URI取得返回值(JSON格式),再由返回值栏分析结构取出经纬度部分(parseJson())
2、分析语种(google语种检测API):方法同上。
3、为电影清单增加信息:评价网站链接,导演、主演等其他信息。
菜单中选择Reconcile。默认从Freebase获取数据。可惜Freebase2016-8-30将关闭,软件的这部分需要更新了。