Zotero: 批量修改元数据

Zotero: 批量修改元数据

原理与操作流程

使用 zutilo 插件:wshanks/Zutilo: Zotero plugin providing some additional editing features

原理

基本原理是使用剪贴板JSON 格式的键值对“更新”条目的元数据字段。`zutilo 插件提供两种“更新”方式:

  • 只填补空白字段
  • 只覆盖非空字段

插件配置

安装好插件,打开【工具】-【Zutilo首选项】-【用户界面】,找到 Copy item fieldsPaste into empty item fieldsPaste into non-empty item fields,将状态从 隐藏 改为如下图所示的 Zutilo 上下文菜单即可。

Zotero 上下文菜单:【右键】即可见。

Zutilo 上下文菜单:【右键】-【zutilo】 才可见。

操作流程

分三步走:

  1. 出要修改的条目中的一个,【右键】-【zutilo】-【Copy item fields】,然后粘贴到某处。

    这个条目当前的信息已经复制到了剪贴板,如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    {
    "itemType": "journalArticle",
    "title": "Recursive functions of symbolic expressions and their computation by machine, Part I",
    "date": "April 1, 1960",
    "libraryCatalog": "April 1960",
    "url": "https://doi.org/10.1145/367177.367199",
    "accessDate": "2021-10-08T02:42:37Z",
    "volume": "3",
    "pages": "184–195",
    "publicationTitle": "Communications of the ACM",
    "DOI": "10.1145/367177.367199",
    "issue": "4",
    "journalAbbreviation": "Commun. ACM",
    "ISSN": "0001-0782",
    "creators": [
    {
    "firstName": "John",
    "lastName": "McCarthy",
    "creatorType": "author"
    }
    ],
    "abstractNote": "",
    "language": "",
    "extra": "",
    "shortTitle": "",
    "conferenceName": null,
    "callNumber": "",
    "place": null,
    "publisher": null,
    "ISBN": null,
    "series": "",
    "numPages": null,
    "rights": "",
    "medium": null,
    "artworkSize": null,
    "archive": "",
    "archiveLocation": "",
    "seriesTitle": "",
    "numberOfVolumes": null,
    "runningTime": null,
    "number": null,
    "code": null,
    "section": null,
    "legislativeBody": null,
    "session": null,
    "history": null,
    "type": null,
    "seriesNumber": null,
    "edition": null,
    "court": null,
    "reporter": null,
    "versionNumber": null,
    "system": null,
    "programmingLanguage": null,
    "committee": null,
    "seriesText": "",
    "scale": null,
    "country": null,
    "assignee": null,
    "issuingAuthority": null,
    "filingDate": null,
    "applicationNumber": null,
    "priorityNumbers": null,
    "references": null,
    "legalStatus": null,
    "meetingName": null,
    "codeNumber": null
    }
  2. 改上述 JSON 格式的键值对:1. 保留 itemType 字段。2. 删除值为 null"" 的字段。3. 删除其它不需要修改的字段。4. 修改指定字段(例如将语言修改为 en)。然后复制到剪贴板 (Ctrl + C)。

    1
    {"itemType": "journalArticle", "language": "en"}

    字段名称命名方式为小驼峰命名

  3. 中所有要修改的条目,【右键】-【zutilo】-【Paste into empty item fields】/【Paste into non-empty item fields】,等待完成即可。

这里需要注意,不管是否需要修改 条目类型/Item Type,剪贴板中的 JSON 需要含有 itemType 字段。如果不包含该字段,则 zutilo 菜单中无法出现两个 Paste ... 操作选项。

这样的设计极其反人类,我还没有搞懂为什么这样做。

Metadata Fields

JSON 字段 中文名称
itemType 条目类型
language 语言
libraryCatalog 馆藏目录
…… ……