Before
老方法:
- 使用文件系统的文件夹分层来对paper的topic分类
- 文件名格式为 {会议缩写}{年份_}{小于10个字描述其话题}{_文章全名}
- 使用Onenote记录(无任何分类)论文笔记,靠关键词检索。
问题:
- 分类比较杂,比如分类A是一类方法,分类B是一类场景。很自然某些文章会同时隶属A和B。完整检索只能靠记忆力
- Onenote适合做笔记,但不太好分类。不好快速回顾某个类内几篇文章的内容。
- 日后需要引用管理。
- 我似乎需要一个paper DB来保存多维度的metadata
Why Zotero
- 开源
- 多年以前用过Endnote等,比较差评
After
迁移过程:
- 批量导入识别PDF(2022了还不能文件夹递归😅)
- 大量文件无法识别或不完整识别(只识别出author和title)
- 不能重识别(非常难受,从raw pdf迁移过来需要很多手动工作)
- 一个更优秀的逻辑应该是:可以通过指定DOI或可以被识别的URL来刷新或合并metadata
- 被迫通过connector一个个导入,把老条目下的PDF移动到新条目,再删除老条目。(Zotero其实提供了合并重复项的功能,但必须是同条目类型,不完整识别经常会导致错把会议论文认为期刊论文,就无法合并,还是需要手动介入)
- 不能重识别(非常难受,从raw pdf迁移过来需要很多手动工作)
- {小于10个字描述其话题}这部分内容可以通过脚本来提取,但是找不到方法导入到Zotero的metadata中(好像是个sqlite)。
缺点:
- Annotation
- 一个完美的工作流应该是PC添加条目和PDF,PC端可以阅读和标注,在移动端可以进行阅读、标注、手写。
- 但这里出现了一个gap,如果你使用Zotero原生的工具,所有的annotation都会以保存在zotero的DB中,而不是PDF的文件本身上(他们claim这是防止annotation冲突的策略,我都觉得好笑😅)。所以如果你使用了任何来自Zotero的标注工具,就必须全平台用,不然标注就是不完整的【这里的标注是可以互相导的】[1]。
- 那么一个直观的方法就是全套用zotero,annotation就放zotero db。但Zotero的移动端开发进度貌似非常慢,现在可以进行手写标注,但仍然不能支持压感标注。
- 那换一个角度,所有的阅读标注工具都是另外的东西,让Zotero的职能只有管理文章的metadata。这里需要引入一个非常ugly的方法,就是用ZotFile来创建链接,把内部的pdf文件map到外部。
why is it ugly?原始的文件存储是单一份,存在一个plain的随机数文件夹集合里。所以首先你需要建立一个文件夹目录树结构规范,其次你还需要建立文件名的规范。(注意file和items并不是一一对应,很多case还是需要手动介入。- 目录树可以通过类别来构建,文件名规范得手动指定wildcard来规范(比如会议缩写)
- 一个完美的工作流应该是PC添加条目和PDF,PC端可以阅读和标注,在移动端可以进行阅读、标注、手写。
- 对于CS的同学来说,我感觉一个文章最重要的Tag应该就是会议缩写+年份(like “FAST ‘22”)。但Zotero不能提取会议缩写,只能手动添加😅。(“刊名缩写”只能把如TOS的全称缩写成ACM Trans. Storage)[2]。我写了个批量格式化的脚本来暂时cover这个问题[3],但感觉根治这个还是需要魔改zotero connector来入手。
- 即使是通过网页来导入,还是有很多metadata识别错误,比如VLDB会被识别为期刊(
那么,按月ddl的代价是什么呢)。当然这个应该可以通过魔改zotero connector来fix。
ref
- [1] Why no “File - Store Annotations in File” button?
- [2] IEEE abbreviations work for journals not conferences, can conference specific abbreviations be added
- [3] https://github.com/GrayXu/Zotero-CS-Series/blob/main/set_series.py