英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
FAIMS Mobile:用于现场研究的灵活开源软件
Brian Ballsun-Stanton, Shawn A. Ross, Adela Sobotkova, Penny Crook
摘要
FAIMS Mobile是一个原生的Android应用程序,由Ubuntu服务器支持,以促进跨学科的人工介入研究。它由“核心”Java和Ruby编写,提供数据捕获平台,可以使用由XML文档(数据模式和UI)和Beanshell脚本(自动化)组成的“自定义数据包”进行深度定制。还可以使用基于XML的特定域语言生成自定义数据包,从而使定制更加容易。FAIMS Mobile允许根据现场工作的需要量身定制丰富高效的数据。它还通过生成综合数据集来促进合成研究并提高透明度和可重复性,这些数据集可以在创建时映射到词汇表或本体。
1动机和意义
社会科学,人文科学,生物学,地球科学和环境科学中的许多学科都依赖于通过人类介入的实地工作收集的数据。包括考古学中的挖掘,生态学中的野生动物观察,环境地球化学中的土壤取样,或口述历史中的主题访谈。然而,实地研究学科往往缺乏透明度和可重复性,损害了研究结果的完整性[1].现场数据通常混杂着纸质文件、各种格式的数据片段和定制数据库[2–5]。此外,数据集通常被局限于纸质档案,本地存储或数字“孤岛”,使得它们很难查找而且限制了数据的重新解释和重用[6]。数字数据集通常变化很大,质量差,而且不兼容。像这样的缺陷会阻碍原始数据的重复使用以及来自多个研究的数据集的汇总,不利于进行大规模研究[4,7,1].
对于在实地研究期间专门为数字数据收集而设计的软件的开发并没有引起足够的重视。目前存在着一些用于特定任务的工具,例如测量结构地质学的走向和倾向(例如GeoCline或Android的Rocklogger),但是这些工具不能用域更复杂的现场数据收集。例如,考古学中的大多数数字数据的收集是通过使用通用的移动、桌面应用程序(例如,多媒体,Office软件,GIS,数据库或社交调查软件)或通过构建定制的应用程序来完成的。两种方法都有严重的局限性[8].定制软件的构建和维护成本很高,除了资金最充足的项目和组织之外,其它所有项目和组织都负担不起(例如,iDig,由雅典的美国古典研究学院创建:[9,10], 也可以看看 [11]).重新利用的软件需要现场研究人员处理为其他环境设计的应用程序,这些应用程序缺乏关键功能而且仍需要大量定制(参见Pompeii的一套iOS应用程序的使用[12],或Ben Carter的KoBoToolbox,PostGIS,QGIS,LibreOffice Base和pgadminIII的组合[13]).
相对的,FAIMS Mobile是一个“通用”软件,它结合了现场研究所需的功能和足够的可定制性,允许跨学科使用,吸引足够大的用户群来支持其开发并对研究产生有意义的影响(参见章节4 ;[8]).它专为离线使用而设计,与大多数其他通用的现场数据采集软件不同,如ARK,Heurist或Kora [14],这些都需要连接到服务器。FAIMS Mobile是由Field Acquired Information Management Systems Project开发的开源软件,该项目是一个位于澳大利亚悉尼麦考瑞大学的电子研究基础设施项目。它是自2012年以来一直在开发的成熟软件(参见:[15–17]).
FAIMS Mobile与开放数据套件(ODK)[18]最具可比性,但它的起源有所不同。ODK专为社交调查而设计,调查员会询问受访者问题。FAIMS起源于考古学,研究者记录对物质世界中的事物的观察,这些观察之间的关系,以及这些观察的元数据集合。这两个项目都是用Java编写的开源数据收集平台,可以使用基于XML的特定于域的语言进行自定义。ODK还使用ODK Build(HTML5拖放界面),XLSForm(使用Excel文件构建表单的工具)或第三方基于GUI的应用程序(如KoBoToolbox)提供更简单但更具限制性的自定义。相对的,FAIMS支持更深入的定制,无需修改核心软件。它还包括ODK中没有的功能:更细微的关系实体,跨所有设备的双向同步(ODK 2.0工具套件中的一个功能,目前在alpha版本中),使用仅附加数据存储,为所有记录提供版本历史记录,支持更广泛的外部传感器和标签打印机等外部设备(#39;ODK Sensors#39;,目前在alpha版本中),更复杂的数据导出框架,以及更先进的地理空间数据操作(与GeoODK及其衍生产品相比)。FAIMS还提供更丰富,更精细的帮助和元数据捕获。简而言之,FAIMS更具可定制性,并且具有比ODK更多的现场工作特定功能,因此定制更加复杂。实地研究项目,尤其是语言学或口述历史等限制性学科,选择这两个平台都是明智之举。
1.1. 实验设定
FAIMS Mobile旨在收集各种类型的异构数据(结构化,自由文本,地理空间,多媒体)和随附的元数据,这些数据是在人类介入的实地研究中使用任意方法生成的。它通过自定义配置文件来实例化特定于项目的数据模型,用户界面和工作流,但它解决了基于现场的项目共享的问题,例如提供移动GIS以及在网络恶化环境中跨多个设备的自动同步。FAIMS项目在典型的开源收入模式下提供定制服务[19].我们还提供“用户到开发人员”文档1 支持自己动手定制。
在典型的FAIMS主导部署期间,研究人员与FAIMS项目工作人员合作,阐明他们的数据模型和工作流程。然后,开发人员将该方法呈现为产生“模块”的文件的“自定义包”(即特定项目定制的FAIMS Mobile的实现)。单独的自定义包文件提供对数据模式(XML),用户界面(XML和CSS)以及自动化和逻辑(Beanshell)的细微控制。还可以使用(纯文本)本地化文件将界面翻译成多种语言。已完成的模块部署到本地或在线Ubuntu服务器,并从那里部署到所需数量的Android设备(在安装核心移动应用程序之后,例如从Google Play)。然后使用那些可以完全脱机操作的设备收集数据,并在与服务器的连接可用时自动地同步。可以在设备正在输入时延时在服务器上验证数据。在数据收集结束时,数据通过可自定义的导出器以用户所需的格式导出。2016年Sobotkova等人发表了三个部署案例研究[8].
或者,FAIMS开发了基于XML的域特定语言(DSL)以简化定制。使用此DSL,单个文件用于生成完整的定义数据包,代价是失去对每个元素的自定义(数据模式,UI,自动化)的独立控制。
除了FAIMS团队进行的部署之外,项目还使用生成整个定义数据包的详细方法和简化的基于DSL的方法独立定制FAIMS Mobile [20,21].对GitHub库中众多模块之一感到满意的用户2 也可以简单地实例化现有的自定义包。
2软件说明
FAIMS Mobile是一个开源,可定制的软件,专为支持许多领域的现场研究而设计。它允许在多个Android设备上离线收集结构化、文本、多媒体和地理空间数据,并围绕仅提供完整版本历史记录的附加数据存储区构建。它可以自定义地导出到现有数据库或标准格式,有促进数据兼容性的功能支持。最后,它专为快速原型设计而设计,易于重新部署,以降低实施成本。
2.1. 软件架构
FAIMS Mobile包含用Java和Ruby编写的“核心”软件,使用由XML,Beanshell和CSS文件组成的可重用自定义包(可以从基于XML的DSL编写的单个文件生成)为特定的现场部署定制。更具体地说,FAIMS使用以下技术:
- Javarosa在运行时渲染原生Android UI元素;Sqlite3用于存储属性键值数据存储区(数据模式可在运行时定义);
- 仅受追加的数据模型受Google的Protobufs启发;Beanshell通过调用底层Java API来提供运行时脚本;
- Spatialite用于编码数据存储区中的地理空间数据;Nutiteq用于渲染地理空间数据;
- NativeCSS用于设置android-native元素的样式;Antlr3作为标识符的语法分析器;
- Ruby on Rails / Apache堆栈,提供用于同步,版本审查,用户管理和类似任务的服务器,可以在线托管或在现场的适当硬件上托管。
我们开发了这种架构以满足两个基本要求:(1)软件必须适应广泛的研究设计,数据模式和工作流程;(2)软件必须适应极其可变的结构化,自由文本,多媒体和地理空间数据。我们需要构建一个能够呈现和记录任意现场数据的系统,因为与特定方法相关联的单个“数据记录器”(即使是可扩展的)并构建为单独的移动应用程序也不会吸引足够大的受众以保证所需的投资。
我们的Android客户端可以在运行时呈现自定义数据包,以实例化任意数据收集方法(架构和工作流),将记录保存到数据存储区,并且随时地将该数据与服务器同步并从那里与其他移动设备同步。“核心”客户端和自定义数据包之间的区别类似于Web浏览器和网站之间的区别。浏览器包含许多用于呈现页面,交互性和样式的复杂引擎,但没有内容。网站使用浏览器提供的HTML引擎来显示其特定内容。
五年的部署经验揭示了质量保证的重要性,这在学术软件中经常被忽视[22,23].事实上,每个定制和部署都是一个微型软件开发项目[8].由于每次部署需要大量的QA,FAIMS Mobile 2.5 支持Robotium对定制数据采集模块进行单元和集成测试,因此可以通过普通用户界面自动添加大量测试数据。这允许用户在模拟现场条件下对其模块进行负载测试。
2.2. 软件功能
FAIMS Mobile通过提供广泛的功能来改进现场研究,这些功能专门满足跨学科的现场研究需求,同时促进从异构数据结构和工作流生成兼容数据集。这些功能包括:
- 使用XML,Beanshell和CSS文档数据包进行细微控制的深度自定义数据模式,用户界面和自动化,或者使用基于XML的DSL中的单个文件以便于部署。自定义文档与核心软件分开,使修改和重用更容易。
- 在单个记录中收集各种数据类型,包括结构化数据,地理空间数据,自由文本,传感器生成的多媒体和文件附件。
- 使用本地或在线服务器在无限数量的设备上自动,双向同步所有数据。在每个设备上复制整个数据存储,而不是缓存,可提供强大的脱机功能。
- 连接可用时的随时同步,允许设备在网络降级环境中工作或在较长时间内脱机。
- 可配置的多媒体文件同步;例如,为了减少设备存储需求,可以在服务器上保留全分辨率图像,同时仅将缩略图复制到设备。
- 默认值,流逻辑,分层选择,动态UI(展开,折叠,隐藏或显示输入字段)以及其他高级数据收集功能。
- 移动GIS支持栅格和矢量数据,图层管理,遗留数据可视化以及点,线和多边形创建和编辑。可以将多个记录链接到单个形状,也可以将多个形状链接到单个记录。
- 离线映射。基本映射和旧数据将上载到服务器并推送到所有设备。在该字段中创建的地理空间数据(向量)在所有设备上同步。每个记录附加“注释”和“确定性”字段。前者允许收集粒度元数据(模仿纸质记录中的“页面边距”),而后者允许用户记录他们对观察的置信度。
- 内部和外部传感器和外部设备支持。可以调用所有内部设备传感器(例如,相机,麦克风,GPS等)。可以连接外部蓝牙设备,如GPS接收器,USB / HID设备,如数字天平和卡尺,以及蓝牙或USB标签打印机。
- 使用纯文本本地化文件的多语言支持。
- 仅附加数据存储区,提供完整的修订历史记录,包括有选择地查看和撤消记录更改的功能。
- 移动设备和服务器端验证。
- 有助于良好实践,包括上下文HTML帮助,“图片词典”(基于图像的选择),以及可以指导用户完成复杂过程的选择树。
- 将URI嵌入到受控词汇表或其他元素中,以将它们链接到共享词汇表,叙词表或本体。
- 可自定义导出到桌面软件,预先存在的数据库或在线数据服务(使用SQL查询)。
2.3. 示例代码段分析
虽然模块代码的详细讨论超出了本文的范围,但两篇文档从头到尾讨论了模块创建。“FAIMS User to Developer Documentation”旨在引导用户从头创建模块。“FAIMS Cookbook”是一本涵盖数据结构和API的教程。4
3. 例子
FAIMS提供多种记录数据的方式(图1),所有这些都可以按层次排列。无论数据类型如何,所有字段都允许记录相关元数据(图2).
实地研究通常需要空间数据捕获和可视化。FAIMS具有栅格的GIS渲染功能(图3, 4)或矢量数据(两个图中的蓝色多边形)。可以在字段中创建矢量数据并自动绑定到记录。
4. 影响
FAIMS允许有效收集现场数据,大大减少或消除手工数字化(见[8]).来自多个设备的数据的近实时可用性以供审查还提供即时错误检测(特别是当与验证结合时)。该软件是免费的(如前文所说),可定制的和可扩展的,适应任意研究设计。它也是专门用于实地研究的。此类研究仅代表消费者或商业软件市场的一小部分,不太可能推动其发展 - 而它是FAIMS的唯一焦点。最后,FAIMS Mobile是社区驱动的;如果当前或潜在用户请求新功能,则可以实施(在资源限制内)。研究人员还可以建立和分享他们自己的定制[8],虽然欢迎具有足够开发能力的组织直接为核心软件做出贡献。
除了用户的迫切需求,FAIMS Mobile还改进了研究实践和数据管理。URI可以嵌入受控词表和其他元素[17],将它们连接到链接的开放数据源(例如,物种信息可以链接到生命百科全书[24]).本地化可用于将当地实践语言“翻译”为标准词汇(例如,考古“上下文”或“基因座”可翻译为“s
全文共12660字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[2559]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。