@idlhy0218:学术论文本质上是一种引用“对话”。我开发了一个工具,可以从你的 Zotero 图书馆中拉取文件夹并…
摘要
一个免费的开源工具,利用 OpenAlex 数据库分析 Zotero 图书馆中的引用关系,并生成关联的 Obsidian 笔记。
查看缓存全文
缓存时间: 2026/07/04 14:48
📄学术论文本质上就是一种引用的“对话”。
我开发了一个工具,可以从你的 Zotero 资料库中提取文件夹,并绘制你已保存论文之间的引用关系图。
只需要你的 Zotero ID 和 API 密钥。 无需大语言模型令牌,完全免费。
https://t.co/2KIzN4P38a https://t.co/Vn88EelUHz
idlhy0218/Citation-Network
来源:https://github.com/idlhy0218/Citation-Network
引用网络构建器
Python Stars(https://github.com/idlhy0218/Citation-Network/stargazers)版本
该工具利用免费的 OpenAlex 学术数据库 API,分析存储在 Zotero 中的论文之间的引用关系,并自动将其转换为相互链接的 Obsidian 笔记。
工作流程
- Zotero:从你的 Zotero 资料库中获取论文元数据和分类(文件夹)结构。
- OpenAlex:使用论文的 DOI 查询 OpenAlex 数据库,以确定所选分类内的引用关系。
- Obsidian:在你的笔记库中生成或更新单篇论文的笔记,并包含维基链接。你可以通过 Obsidian 内置的图谱视图来可视化引用网络。
前提条件
- Python 3.9 或更高版本(https://python.org)
安装 Python 时,请务必勾选底部的 “Add python.exe to PATH” 复选框。如果跳过这一步,你的终端将无法识别
python命令。 - Zotero 账户和 API 密钥
- Obsidian(https://obsidian.md)
安装
第 0 步 - 复刻并克隆仓库
- 点击此 GitHub 仓库页面右上角的 Fork 按钮,将其复制到你自己的 GitHub 账户中。
- 将仓库克隆到本地计算机:
- 使用 Git 命令:
bash git clone https://github.com/idlhy0218/Citation-Network.git - 或者使用 GitHub Desktop 打开。
- 使用 Git 命令:
第 1 步 - 打开终端并安装依赖
打开命令提示符或 PowerShell,导航到本项目文件夹,然后安装依赖。
在 Windows 中快速打开当前文件夹终端的方法:
- 打开文件资源管理器,导航到本项目文件夹(
Citation Network)。- 点击顶部的地址栏,清除文本,输入
cmd,然后按 Enter。- 命令提示符窗口将直接在此目录下打开。
终端打开后,运行:
bash python -m pip install -r requirements.txt
第 2 步 - 创建配置文件并设置 API 密钥
当你首次克隆此仓库时,只有模板配置文件。你需要创建一个 .env 文件并填入你的凭证。
-
在终端中运行以下命令,将
.env.example复制为新的.env文件:- 命令提示符(cmd):
cmd copy .env.example .env - PowerShell:
powershell cp .env.example .env(或者在文件资源管理器中复制.env.example并重命名为.env。确保文件名不是.env.txt)
- 命令提示符(cmd):
-
使用文本编辑器(如记事本)打开新创建的
.env文件,并填写你的详细信息:- ZOTERO_USER_ID:前往 Zotero API 设置页面(https://www.zotero.org/settings/keys)。在顶部,复制 “Your userID for API calls is XXXXXX” 旁边的数字。
- ZOTERO_API_KEY:在同一页面,点击 “Create new private key” 生成一个 API 密钥。
- OBSIDIAN_VAULT_PATH:你的 Obsidian 笔记库文件夹的绝对路径(例如
C:\Users\YourName\Documents\MyVault)。
``ini
[必需] Zotero API 凭证和 Obsidian 路径
ZOTERO_USER_ID=你的 Zotero 用户 ID(数字) ZOTERO_API_KEY=你的 Zotero API 密钥 OBSIDIAN_VAULT_PATH=C:\Users\YourUsername\Path\To\Obsidian\Vault
[可选] 自定义文件夹名称并提高请求速度
CITATION_NETWORK_FOLDER=Citation Network [email protected] ``
- 自定义配置(可选):
- 更改输出文件夹名称:如果你希望笔记保存在默认的
Citation Network以外的文件夹中,请将CITATION_NETWORK_FOLDER修改为你喜欢的文件夹名称(例如My Citations)。 - 提高 OpenAlex API 速度:如果你的资料库较大(数十篇或更多论文),请在
OPENALEX_EMAIL中添加你的电子邮件地址。OpenAlex 为通过电子邮件标识身份的用户提供更快的速率限制(“礼貌池”)。
- 更改输出文件夹名称:如果你希望笔记保存在默认的
第 3 步 - 测试连接
要验证一切设置是否正确,请运行:
bash python main.py --test
如果你看到 "Zotero connection successful" 和 "OpenAlex connection successful",说明已准备就绪。
如何使用
交互式运行(推荐)
双击 run.bat 或在终端中运行以下命令:
python main.py
程序将以树形结构显示你的 Zotero 文件夹:
============================================================
Select a Zotero folder
(Tree) = Has subfolders / (Single) = No subfolders
============================================================
1. (Single) Introduction
2. (Tree) Machine Learning
3. (Single) Supervised Learning
4. (Single) Unsupervised Learning
...
输入你想处理的文件夹编号。选择父文件夹将自动处理其所有子文件夹。
使用特定文件夹名称运行
python main.py --collection "Machine Learning"
将分类名称用引号括起来。子文件夹将自动包含。
测试连接
python main.py --test
文件结构与作用
Citation Network/
│
├── run.bat 执行文件。双击可快速启动。
│
├── main.py 程序入口点。处理文件夹选择。
│
├── .env 配置文件,用于 API 密钥和路径。
│ 切勿共享此文件或将其上传到 GitHub。
│
├── requirements.txt 所需的 Python 库列表。
│ 仅在安装期间运行一次。
│
├── cache/
│ └── openalex_cache.json OpenAlex 查询结果的缓存文件。
│ 使后续运行显著加快。
│
└── src/
├── zotero_client.py 从 Zotero 获取论文列表和元数据。
├── openalex_client.py 使用 OpenAlex 获取引用连接。
└── obsidian_writer.py 将论文数据作为 Markdown 文件写入 Obsidian。
查看输出结果
笔记将生成在 .env 文件中 CITATION_NETWORK_FOLDER 指定的文件夹(默认为 Citation Network)下,位于你的 Obsidian 笔记库内。
在每个分类文件夹中,你将找到:
citekey.md:包含对其他论文引用的单篇论文笔记。_Index.md:该文件夹中所有论文的摘要表格。
在 Obsidian 中打开图谱视图即可查看网络。你可以在图谱过滤栏中输入 path:"Your Folder Name"(例如 path:"Citation Network")来仅显示这些引用笔记。
值得了解
- 论文必须具有 DOI 才能获取引用数据。在 Zotero 中添加 DOI 可产生更多连接。
- OpenAlex 是一个免费的学术数据库,无需注册或 API 密钥。
- 对同一文件夹重新运行脚本将更新笔记。只要你将自定义评论或注释写在自动生成部分的下方,它们将被保留。
.env文件包含你的私有 API 密钥。它已被添加到.gitignore中,因此不会上传到 GitHub。
相似文章
@tom_doerr: 将学术论文转换为结构化的Obsidian笔记 https://github.com/917Dhj/DeepPaperNote…
DeepPaperNote 是一个开源工具,可自动将学术论文转换为结构化的Obsidian笔记,处理元数据、图表和笔记生成,以支持深度阅读。
@coldsake_: https://x.com/coldsake_/status/2067374833692815638
本文介绍如何使用Obsidian结合Codex/CC等AI工具构建学术文献管理系统,实现文献自动分类、查重、生成wiki页面和学术工具箱,并分享阅读文献和提升学术能力的方法。
@ziwenxu_: https://x.com/ziwenxu_/status/2053241837453029439
文章详细介绍了一个使用 Obsidian 构建自动化“Codex 知识库”的工作流,其中 AI 智能体自动导入并整理每日书签至结构化的知识库中,以降低上下文负债。
@IndieDevHailey: 科研党福音!这个开源神器,让你从文献海里杀出重围,一键搞定学术全流程。 还在为文献调研慢、写作卡壳、引用不严谨、审稿被怼头疼?推荐这个开源仓库:academic-research-skills 它不是AI代写工具,而是靠谱的人机协作框架—…
推荐开源仓库 academic-research-skills,提供一套人机协作的学术研究全流程工具,包括深度文献调研、论文写作、同行评审模拟和引用审计,支持AI辅助但保持用户主导,适合硕博生和研究者。
@fluixoo: https://x.com/fluixoo/status/2066481993727004860
一条Twitter线程详细描述了AI辅助研究和写作的结构化工作流程,使用NotebookLM进行源材料导入,Claude进行草稿撰写,Obsidian进行知识管理。强调了可靠源材料的重要性以及将研究过程与写作过程分离的重要性。