License & Attribution¶
QuantumAtlas 自己的代码 / 文档 / Wiki 内容 license 见 致谢 · 许可证 段。本文档讲外部上游数据源的 license 归属和我们的合规策略。
我们怎么处理"PDF + metadata + 全文"三类数据¶
| 数据类别 | 来源 | 我们持有 / 分发? | 用户拿到什么 |
|---|---|---|---|
| 论文 PDF 字节 | arxiv.org(作者保留版权) | ⚠️ 默认不分发 | qatlasd 默认无 PDF 下载 API(QATLAS_PAPER_ACCESS_ENABLED=false);从 arxiv.org 自行下载。Self-hosted 部署可在受控范围内启用对内下载,详见下文「论文访问开关」 |
| 论文 metadata(标题 / 作者 / DOI / 引用 / 发表日期 等) | OpenAlex(CC0)+ Crossref(CC0) | ✅ 镜像 + Neo4j MERGE | 公开 API 返回,CC0 transitively 公开 |
| MinerU 解析后的 Markdown 全文 | 由部署方用自己的 MinerU quota 从 PDF 转换 | ✅ 缓存在 qatlas-md 桶 |
同上开关控制:默认仅供 server 内部检索;启用后可对持 papers:read 的客户端 serve markdown 字节 |
| Wiki 知识页面(概念 / 算法 / paper 笔记) | 团队 + 贡献者撰写 | ✅ 在独立 QuantumAtlas-Wiki repo | require login(同上) |
核心合规设计:
默认不分发 PDF 字节 + metadata 来自 CC0 上游 + Markdown 默认不通过 API 外发
→ 论文 license 风险在 quantum-atlas.ai 这类公开实例上天然规避
→ self-hosted 部署若开启论文访问开关,由部署方自行承担分发义务
这意味着 quantum-atlas.ai 这类公开实例不需要在 ingest 时检查每篇论文的 license(许多 arxiv 论文是"作者保留版权 + 授予 arxiv 永久非排他分发权",license 字段在 OpenAlex 里不统一记录)。靠"默认不持 字节面向公网 + 默认不外发全文"两条规则在源头规避,比 per-paper license 匹配可靠得多。
Self-hosters 注意:若你把
QATLAS_PAPER_ACCESS_ENABLED设为true(见 论文访问开关),server 会开始通过 HTTP API 对外 serve PDF / Markdown 字节,原生的"源头规避"就不再适用—— 此时部署方需要自己评估对外受众范围、上游 ToS 与适用法域的合规要求。 我们维护的公开实例(quantum-atlas.ai)保持默认关闭。
上游数据源 license 汇总¶
各数据源的详细介绍见 外部数据源。下表只列 license 和我们的归属义务。
| 数据源 | License | 商业可用 | 强制归属 | 备注 |
|---|---|---|---|---|
| OpenAlex | CC0 1.0 Universal | ✅ | ❌(强烈推荐但不强制) | 创作者放弃所有权利,可任意使用。OpenAlex 仍请求显示归属,我们照做 |
| Crossref metadata | CC0 1.0 | ✅ | ❌ | 2017 起 Crossref 全部 metadata 转 CC0 |
| arXiv metadata(via OAI-PMH) | arXiv ToU | ✅(read access) | ✅ "Source: arXiv" | 元数据可读、可镜像;归属到 arxiv.org |
| arXiv 论文全文(PDF) | 作者保留版权 | ❌ 不可随意再分发 | — | 公开实例不镜像 PDF 字节;用户从 arxiv 自己下。Self-hosted + 开关启用后,由部署方承担分发义务 |
| MinerU 解析输出 | 衍生作品 — 受原 PDF 版权约束 | ⚠️ 仅 fair-use / 研究教育 | — | 同上:公开实例无字节下载 API;self-hosted 自负责任 |
| Semantic Scholar Open Research Corpus | ODC-BY 1.0 | ✅ | ✅ "Data provided by Semantic Scholar" | 当前未使用,预留 |
| ORCID public profile | CC0 | ✅ | ❌ | 当前未使用,预留 |
我们的归属(按 CC0 推荐做法)¶
SPA 详情页脚 + 公开 API 响应会显示:
Metadata from OpenAlex (https://openalex.org), released under CC0.
Article source and full text: arXiv (https://arxiv.org).
API 响应 header(在所有 /api/* 路径上自动注入,由
cmd/qatlasd/main.go 的 router-level middleware 实现):
README + 项目文档(本节及 致谢)显示完整 attribution 链。
用户责任¶
如果你复用从 QuantumAtlas API 拿到的内容:
- Metadata(CC0):随便用,仍请归属到 OpenAlex(公益项目,归属能帮它们拿持续资助)
- PDF:公开实例不提供 PDF 下载——请自行到 arxiv.org 拉,按原作者声明使用
- Wiki 内容:Apache-2.0(与 QuantumAtlas-Wiki repo LICENSE 一致),归属到本项目即可
论文访问开关 (self-hosted)¶
QATLAS_PAPER_ACCESS_ENABLED 是 qatlasd 上的单一 master 开关,
默认 false。开关 OFF 时(quantum-atlas.ai 等公开实例的默认状态):
- 下述
/markdown//pdf全部端点不注册;客户端拿到 404 - server 不读
MINERU_*/QATLAS_OPENALEX_MAILTO/QATLAS_ARXIV_FETCH_*字段;不会代客户端做 server-side 转换或 fetch - Contributor 仍可走
qatlas mineru(拿自己的 MinerU quota 在本地跑),通过POST /api/papers/{id}/upload-mineru把成品 markdown 推到 server——这条 路径与开关无关
开关 ON 时,server 同时启用以下四件事,一体不可拆:
- Markdown 对外 serve + on-demand convert
GET /api/papers/{id_or_doi}/markdown注册,受papers:read保护;缓存未 命中时 server 用部署方配置的MINERU_API_TOKENS跑 MinerU,markdown 写回qatlas-md桶后 serve 字节。 - PDF 对外 serve + silent fetch
GET /api/papers/{id_or_doi}/pdf注册,受papers:read保护;缓存未命中 时 server 用QATLAS_OPENALEX_MAILTO(polite-pool)+QATLAS_ARXIV_FETCH_RPS速率限制从 arxiv.org 拉 PDF,写入qatlas-pdf桶后 serve 字节。这意味着 部署方对外重分发了 arxiv PDF 的二进制副本——arxiv 的 ToS 没禁止 redistribution,但版权归原作者,部署方应自行评估对外受众范围与法域限制。 - DOI 寻址
path 头部匹配
^10\.\d{4,9}/自动经 OpenAlex 反查 → canonical arxiv id → 走同一套 handler;缺QATLAS_OPENALEX_MAILTO时 DOI 路径返回 503。 - 状态端点
…/markdown/status与…/pdf/status提供 side-effect-free 进度查询; 两端点同样只在开关 ON 时注册。
开关 ON 后,部署方对对外受众范围与适用法域 ToS 自负责任。我们建议:
- 反代层放鉴权前置(caddy-security GitHub OAuth、企业 SSO 等),不要裸开 到匿名互联网;
- 部署在受控范围(私有团队、内部站点、教育机构 IP allowlist);
- 公开实例(互联网开放)维持开关默认 OFF。
详细 env 字段见 Env Vars 参考 · 论文访问开关。 实施进度跟踪:#8。
撤稿 / 删除请求¶
如果你是论文作者或权利持有人,希望我们:
- 从 Neo4j catalog 移除某 paper 节点
- 从
qatlas-md桶删除某 paper 的解析 markdown
请提 GitHub issue 或邮件 联系维护者(见 致谢)。我们会在合理时间内处理(不保证 SLA, 这是一个研究项目)。
注意:metadata 来自 CC0 上游,我们删除自己 catalog 不会让 metadata 从 OpenAlex / Crossref 消失;要从那里删,请直接联系上游。