数据管理的顶层设计:Architecture and Workflow|RDM第一课
本期推送是上一篇课程导论的续集。可以先阅读:
在上次推送的导言中,我们主要展示了“研究数据管理 (Research Data Management)” 这一学术训练领域的概貌,讨论了数据管理问题的重要性,介绍了课程的主要内容。这次推送中,我准备从一些最核心的原则开始,带着大家来反思和改进自己已有的数据结构。
设计一门“课程”来教研究数据管理实际上是一个不可能的任务。因为从本科生阶段到教授阶段,每个人都已经积累了一套自己的研究数据管理习惯和方法,这个世界上没有两个人的方法是相同的。数据管理说到底是一件个人化的事情。有些办法外人看起来“笨”,但自己用着有效,同样也是好的办法,相反其他人推荐的工具、思路等等,即便99%的人都说好也未必适合自己,这就是数据管理的个人化性质。这种个人化性质意味着教课的时候不能去假想一个“完美工作流” “perfect practice”然后直接安利给所有人,或者直接把自己的做法安利给所有人。相反,找出什么是共性的需求,什么是optional的改进方案,什么东西更适合什么人,这才是真正能帮到大家的。
我在英语学术界遇见的强力推荐Zotero的人和非常排斥Zotero的人可以说数量差不多,很多人已经坚持了十几年手敲引用文献,这个手敲的过程已经作为不可改变的元素嵌入他们的workflow当中了。也有不少人处于两极之间,试一试又换回去。这一点就和我在国内遇到的同行非常不一样,因为我的国内圈子里普遍有一种对新软件、新应用、数字人文方法的enthusiasm,即使是自己不了解的工具,大家看到别人推荐之后也愿意尝试和学习。但是在剑桥,从博士生到教授,我认识的更多人其实是一种“知道这个很好但不想/不能/认为不必花时间去学”的状态。除了没时间之外,一来多数人认为学习几个软件并不能直接增加你的学术产出,说白了就是对找教职不会有直接帮助,因此priority比较低,二来很多人内在的对学习新技术的紧张感、恐惧感还是很强,面对Zotero这样的工具他们的第一反应不是impressed而是intimidated。因此在系里带workshop、跟不同人讨论研究数据管理的时候,我慢慢意识到那种在国内写公众号常用的“教软件”的思路是行不通的。相反,呈现出一些基本的思考角度,让大家理解如何在眼花缭乱的新技术里做取舍,同时反思自己已有的方法,才是比较好的选择。这就是我在这一节希望做的。
我将这一节称为“顶层设计”,因为它的目标是延续导论的视角,让你俯瞰自己的数据管理过程,了解如何改进数据的结构(architecture)和使用数据的方式(workflow)。以下是这一讲的四个模块。我们从自己的文件管理器开始。
1. 反思我的数据结构
打开电脑的文件管理器/Finder,我们每个人都已经有了一个自己的数据结构。那么你对自己现有的数据结构满意吗?你的文件管理器是不是像下图这样:
Image Credit: Office of Scholarly Communications, University of Cambridge, CC-BY
这是不是一个好的数据结构?可按照以下几个标准反思:
产生了一个新的数据(例如刚下载的JSTOR论文、灵感突发写好的一个笔记),你是否不用动脑就知道该存储到哪里?
需要找一个特定的旧数据,你是否第一时间知道去哪里找?
能不能保证在三次尝试以内找到它?
文件夹有没有一目了然的目录(元数据),能让你不用打开文件夹一层一层翻也知道里面有什么?
每个、每类文件是否有连贯的命名规则,能让名称准确体现文件的内容?
当然了对于如图所示的杂乱结构,可能MacBook上的command+F是你的救星。但是救星可以帮你解决问题2,不能帮你解决问题1,也就是数据存到哪里的问题。如果你存储阶段就存得越来越乱,加上没有固定的命名规则,很快command+F也帮不了你了。
在导论中,我给大家列出了制作“研究数据管理计划”时,也就是着手为一个课题积累数据前可以问自己的七个问题。大家可以回去看一看,和上面几个问题一同思考。
好的数据结构不只是为了方便你找东西,更是为了帮你理清自己项目进行的方向。
2. 基础的数据组织原则
学校提供了一些授课材料供我们Data Champion在系里开课使用,主要是general意义上的data management理论和建议,但我看了一下,多数材料是以理工科为模板的。事实上Research Data Management这个领域本身就比较理科中心,是为实验室需要管理的大量量化数据服务的,因此人文学科能够借鉴的东西也比较有限。理工科的数据和历史学科的数据最大的不同就在于,前者需要管理的大部头数据是以项目为单位的,一个实验收集一套数据,另一个项目是另一个实验另一组数据,两个实验的数据不能混起来。但是对于我们,大多数数据(二手文献、档案史料等)都可以供多个项目长期使用,你写这篇论文收集到的一条脚注史料,可能十年后对你写另一本书有大用处,不然《奶酪与蛆虫》是怎么写出来的呢。人文学者收集的数据不是跟随你做一个项目,而是像积攒了一辈子的藏书一样跟随你整个学术生涯。
我写这个讲义的一个原则是尽量避免强制安利任何方法或技术。因此这一章我最基本的建议只有一个:人文学者的数据结构需要以知识体系为核心,而不是以项目(硕士论文/博士论文)为核心,知识体系和具体项目需要分开管理。这个知识体系就是你的个人图书馆。科学史图书馆就是这么来的,我在Zotero上的藏书结构就很好地说明了这样的分类法可以做出怎样的成品。其余的论文、提纲、funding申请书等等,说白了都是你这个知识结构的产出物,它们要和你的图书馆分开存放。
这个建议既是方法论上的,也是实用层面的:当你寻找两年前下载的Nicolaus Copernicus Gesamtausgabe,你是希望到“硕士论文/一稿/“”硕士论文/文献““博士论文/第一章”这些文件夹里挨个找过去,还是到“15世纪/Nicolaus Copernicus (1473–1543)/4 Scholarly Editions“文件夹里一次找到呢?后者就是科学史图书馆现有的结构。数据存放的路径越反映数据本身的属性(作者、年代、版本等),找的时候就越直观。如果每找一本书都要回忆自己上次在哪个项目里使用了这本书,那就会很痛苦。
我个人的研究数据主要分为以下几类:
学习类——以往依照课程结构 (Course Structure) 积累的资料、作业,随着从课程阶段(本科)进入研究阶段(硕士、博士)的过程逐渐迁移到知识类
知识类——我的个人图书馆(科学史图书馆),按照知识内容本身的结构 (Knowledge Structure)设计和生长,这部分是大头,怎么也得占所有研究数据的80%
处理类——收集、处理知识类数据时产生的数据,例如浏览器Tab、档案转写、阅读批注、数字统计。结构跟随处理数据所需的工具 (Tool Structure) ,许多存在Zotero, Notion, Transkribus等app中,及时导出和备份
生产类——写作、草稿等,按照研究项目的结构 (Project Structure) 例如论文章节、进度计划组织。
一般教课的内容我也划入生产类,因为教一门课和进行一个研究项目的结构更为相似
收纳区——各个盘上留一些固定地点放置暂时无法分类 (Messy) 的数据,定期整理,例如Download文件夹、科学史图书馆的母文件夹等
这些分类是我最基本的数据结构,下面我还会按照这个结构的顺序一一展开讲如何管理各个类别的数据。
3. 为什么你需要元数据(Metadata)
如果说这门课要介绍什么关键的新名词,元数据(Metadata)无非是重中之重。
元数据就是告诉你数据里面有什么的数据。对于我们学科来说,图书馆书籍目录上的description,软件安装包里的README,都是元数据。现在信息史(history of information)很热门,如果有人写一本《元数据史》(History of Metadata), 那么目录的历史一定是其中的重点。我们使用的Zotero,Endnote等等文献管理系统,说白了就是一个巨大的目录软件,帮助你收集和创建每一个文件的元数据。元数据包括目录,但又不仅是目录。
为什么我们需要元数据?
我们可以来比较一下:如果你是一个相关主题的研究者,以下两种形式的数字化文献资源,哪一种是你能在研究中便捷使用的。
一种是大英图书馆的数字化手稿。
另一种是网络上售卖的百度网盘资源。
https://www.afx888.com/jpdzs/qtsj
两种资料的区别在哪里?除了一个免费,一个付费以外,最直观的区别就是大英图书馆的数字化手稿包含大段大段的手稿内容描述。日期、语言、材料,按页和章节提供的手稿内容概要,手稿的来龙去脉以及参考文献都在里面。大英并不是所有手稿都有这么详细的描述,我挑选的是做得比较好的一个。这些描述就是这本手稿的元数据。看了这个描述,你在打开手稿之前就可以知道手稿大致是什么内容,是否可能对你的研究有帮助;如果你想知道手稿了有没有提到某个特定的人、物,还可以用搜索得知大概。从大英图书馆的目录中,你可以看到手稿里面涉及的人物都在右边被单独索引,点相关的人就可以看到图书馆里涉及这个人的所有手稿。
相比而言,百度网盘中包含的PDF资源则从“外面”很难看出内容。PDF只有标题可以显示资源的相关信息,而且往往只以1234标示,不会告诉你这本书的年代、章节、内容概要。设想一下,如果上面大英图书馆的17世纪手稿文件是以PDF的形式存在网盘里给你下载,而不是详细描述后挂在网上,那么你必定要花多几倍的时间理解手稿的内容。
那么我们自己电脑里中的文献资料看起来是更像大英图书馆网站,还是更像百度网盘资源呢?这就涉及到了元数据的问题。
可以这么说,数字时代的历史研究之所以比纸质时代便利,一大原因就是元数据及元数据生产机构(如大英图书馆)的存在,它节省了我们一页一页读过去才能对文献内容有一定把握的时间。没有元数据的资料是死的。如果不仅没有元数据,而且资料还只能以未OCR,不可检索的形式存储在封闭的硬盘或网盘里,那么这些资料就基本是无法利用的——没有人可以从头到尾读完百度网盘里全部100册国图馆藏的敦煌遗书。当然了,你可以自己截下100册的每册目录做一个描述文档,但是这一样要花时间成本,10个读者要花10份时间做同样的事。研究永远是一项协作工程,如果没有机构层面提供的好的元数据,研究者的效率就会大大降低。没有元数据的数字化档案和一摞积灰发黄的纸质档案没有区别。甚至可能在使用便利程度上还不如后者。
元数据包括什么?
先看一下标准的。以下是康奈尔大学数据管理部门给出的template,算是一个不分学科比较general,方便非信息管理专业人士使用的模板。我们不一定照抄这个结构,但可以看一下作为参考。
https://data.research.cornell.edu/content/readme
对于人文学科的大多数材料来说,元数据就是图书馆、档案馆的电子目录需要编目的内容,如大英图书馆截图中所示。提取元数据最好的办法就是去看你获取这个档案的机构,你的档案照片是从哪个图书馆拍的,就去把他们的编目抓下来。如果史料不是从机构获取的,例如我三月份在佛罗伦萨广场小摊上淘到的20世纪初的干植物标本(herbarium)、17世纪的小普林尼,这就要自己找一个合适的template记录元数据。这里就要提到Zotero了,对我来说Zotero里创建一个条目是收纳这种材料最好的办法。
佛罗伦萨 Piazza dell'Indipendenza 周日的古董摊和旧书摊。今年值得纪念的一件事情是入坑了rare book收藏,我准备日后再写一写收藏经历。
Zotero的作用是什么?很多人将Zotero当成一个写论文时的引用生成器用,也有很多人下载了Zotfile以后当成文件管理软件来用。Zotero之所以能实现这些功能,是因为它的本质就是一个元数据生成器。它在你的本地建立了一个像大英图书馆目录一样的元数据系统,将网络上已有的文件描述整合起来为你的文件生成元数据,使得你打开软件点击一个条目就可以直观看到文献内容,不需要打开PDF也不需要再次上网检索。下图就是Zotero从大英图书馆直接抓取的一份手稿的元数据。即使你不使用Zotero写论文脚注,这种元数据的可见性本身也为我们的研究提供了极大的便利,这种便利有时候使用者自己都未必意识到。
我们为自己的资料创建元数据,为的就是这样一种可见性和系统性,让我们不必找东西的时候一个一个文件夹、一个一个文件点开翻,也不必一个一个关键词用command+F搜索,打开一个窗口就可以一目了然掌握自己所有资料的内容。“翻文件”“搜文件”听起来是个小事,但有类似经历的人都会意识到一个上午过去可能花在找东西上的时间反而比真正读、写花的时间还多。
如何开始为你的文件创建元数据?
创建元数据有很多个步骤。首先我们要学会如何科学地命名文件,而不是每次都newdraftfinal001。同时还需要理清自己的文件夹层级。这些在之后的课程中都会具体讲。这里我想首先理清的问题是:如果你希望建立自己的元数据系统,都有哪些
收集文献时,使用软件批量收集已有的元数据。
如上,利用Zotero及其浏览器插件,将以上大英图书馆的元数据直接抓取变成你在本地管理、检索文献时可以使用的元数据。如果没有使用过Zotero,推荐Seminar Live的入门级指南:我没用过Zotero,怎么开始用?
生产时,使用方便显示目录、文档层级可见的软件写作和管理项目。
对于自己写的东西,我们一般不需要单独写个描述提醒自己文章内容是什么,但是需要的是内容的可见性。如果你的所有文档都以本文第一幅图的下半部分形式存放,可见性就会非常低。采用可以显示文档预览的视图可以解决一部分问题,但是预览视图字也不会很大,难以认出。
我个人的解决方案是能少建文档就少建。如果你有10个word文档存在三个文件夹里,你整理、切换的时候就需要一个一个打开才能看到里面写了什么、写了多少。但如果你的10篇文章都写在Notion或者Ulysess里,你的文档之间的层级关联就始终一目了然,鼠标向下一划就可以换到下一篇文档,点击一个小三角、小齿轮就可以显示文档的标题结构,还可以设置同时显示创建时间、来源、更新等。用软件代替文档和文件夹是我一直以来的思路之一。
对于只能以闭合文件形式存在于电脑上的数据(word文档,不存入Zotero的pdf文档等),我们有一些比较麻烦的单个添加办法。比起其他软件,它们的好处是能让元数据和文件本身不分离,但坏处就是太麻烦了。这些方法比较适合“文件本身”比较重要的场合,例如出版用的高清大图,以及详细批注过的PDF文档(最好打上标签)等。增加整体上的元数据可见性最好的办法还是减少文件夹的层级、减少文档数量,多利用软件。
使用系统自带的metadata创建功能一个一个手动添加。保证其在文件列表的视图中可以显示,这样你找文件的时候就不用一个个打开再读一遍。这种非常适用于专门为出版而购买、下载的图片,因为可以方便地记录版权信息,而且能让元数据紧跟图片文件本身。一般的参考用图片用Tropy更为方便,日后会专门介绍。
下边是Windows的操作步骤;
How to Tag Files in Windows for Easy Retrieval - Make Tech Easier
https://www.maketecheasier.com/tag-files-in-windows/
Adobe系列文件使用Adobe Bridge等软件创建,如下。我自己更常用的办法是给重要的PDF文件打Tag,例如“Signed”,“Annotated”,“Submitted”等。
Adobe Bridge
https://helpx.adobe.com/bridge/using/metadata-adobe-bridge.html
PDF properties and metadata
https://helpx.adobe.com/acrobat/using/pdf-properties-metadata.html
自己创建README文档存在母文件夹中,见前述康奈尔大学的指南。
这个比较适合学习类文件夹、项目文件夹或者一个文件夹里100张照片这种容量大的文件夹(不用给100张一个一个写元数据)。
如果有可能,为了效率的缘故,我更推荐从软件中导出ReadMe文档而不是自己写。如果你同时使用图片管理软件Tropy管理图像,那么从Tropy中导出一个元数据文档存进源文件夹里就可以,Zotero也可以这样导出。导出一个ReadMe文档的好处一是方便分享给别人,二是相当于Zotero/Tropy软件内容的备份,便于你换到一个没有这些软件的新电脑,只能获取网盘文件的时候使用。
图像管理软件Tropy需要手动输入元数据,但他们有成熟的来自图书馆系统的元数据模板,并且可以批量添加。详见他们的指南:
https://docs.tropy.org/in-the-project-view/add_metadata
- Ulysses的界面。来源:https://help.ulysses.app/kb/guide/en/ulysses-library-1ixlk3xF76/Steps/997891,997894
4. 数据与工作流
讨论了研究数据结构以及元数据的整体问题,我们下面来看一看动起来的数据。讨论研究数据管理不能空泛地讨论,一定要放在人与数据的互动中,也就是工作流中看待。反过来从数据的角度看,工作流就是人与研究数据的关系。
课程导言中我们大致思考过这些问题:
我的各种数据在研究中如何配合?
我能否现在想象出(或总结出)自己处理这些数据的大致workflow?
这个workflow以前遇到过什么问题?
(记的笔记找不到、拍的照片忘记在哪里拍的、写论文没有备份等)
比这个更进一步,如果你希望全盘把握自己的数据,就需要有更为清晰的workflow划分,包括已有的workflow,也包括理想中正在建立的workflow。思考自己的workflow可以用以下这个句法思考:
我在 🖥️💻📱🗒媒介上,使用🌐📝🔎 方式或软件,对照片/一手文献/二手文献/写作数据,进行拍摄/收集/整理/查阅/批注等处理,处理过后进入的下一步是...
图中是我2020年为自己总结的workflow,其实和现在已经很不一样了,图中的方法也不代表我心目中的理想方法。放出来只是给大家做一个参考,看一下“总结自己的工作流”大概可以以什么形式。工作流的总结不是一次完事的,也不需要非常形式化,我2020年画了这个图以后其实就懒得画新的图了,因为感觉没太多必要。复盘自己的workflow更多是一个持续的习惯,是你总会在大脑后台思考的东西。
Image Copyright @Xinyi Wen
总结Workflow的用处有以下几个:
确定媒介和存储、同步方式:
哪些数据在手机、电脑上都可能用到,需要同步?
哪些数据需要保证离线也可使用?
哪些需要经常备份?
保证流畅的媒介间、任务间切换:
这两个应用是否开机启动更好?
是否同时打开两个窗口合并更好?
边读边写的东西要不要开两个屏幕同时做?
了解哪件事做得还不够舒服,可以如何改进:
例如写作时的引用是否便利、二手文献批注是否能及时找到?
或者浏览器tab开太多怎么解决。
在以下介绍知识类、处理类、生产类数据管理的模块中,这种workflow的意识都会贯穿始终。