License & Attribution

当前内容契约更新:固定来源 PDF 已恢复为 paper_access 开关下的鉴权字节, 关闭404,qa_、别名、Range、历史原件不能绕过。新内容在独立 qatlas-content 桶的 content/ 命名空间不可变发布:source 绑定确切 PDF SHA,arXiv vN 是语义版本、 S3VersionId 是物理版本、parse revision 是独立不可变身份;三者不可混用。 同 paper/SHA 可复用 source;冻结导入别名不同字节409(overwrite也不替换)。 解析上传必须完整支持的 Middle+Markdown,保留所有成员原名/字节,MD-only拒收; manifest最后核验发布且PG必需,重传新revision,不覆盖历史。旧MD/JSON/images忽略, 只在内容/PDF访问按需冻结旧PDF,不bulk回填、不删除旧桶;没有nightly/boot/入库自动推理。 下文涉及旧三桶覆盖、仅full.md+images、原PDF410/外部直链的段落保留为历史背景, 不作为当前操作规则。当前API/上传/续读统一见论文内容契约 与Upload API;完整read视图不是原Middle JSON。

QuantumAtlas 自己的代码 / 文档 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)

✅ 镜像进 PostgreSQL corpus

公开 API 返回,CC0 transitively 公开

MinerU 解析后的 Markdown 全文

由部署方用自己的 MinerU quota 从 PDF 转换

✅ 缓存在 qatlas-md 桶

同上开关控制:默认仅供 server 内部检索;启用后可对持 papers:read 的客户端 serve markdown 字节

核心合规设计:

默认不分发 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 实现):

X-Attribution: OpenAlex (CC0), Crossref (CC0), arXiv

README + 项目文档(本节及 致谢)显示完整 attribution 链。

用户责任

如果你复用从 QuantumAtlas API 拿到的内容:

  • Metadata(CC0):随便用,仍请归属到 OpenAlex(公益项目,归属能帮它们拿持续资助)

  • PDF:公开实例不提供 PDF 下载——请自行到 arxiv.org 拉,按原作者声明使用

论文访问开关 (self-hosted)

QATLAS_PAPER_ACCESS_ENABLED 是 qatlasd 上的单一 master 开关, 默认 false。合规就落在这个开关上:它决定 server 是否对外分发论文内容(ADR 0011)。开关 OFF 时(quantum-atlas.ai 等公开实例的默认状态)不对外分发:

  • PDF:arxiv 论文 → 返回 arxiv.org/pdf/<id> 直链(canonical 源分发,不是 QA); 非 arxiv(DOI/published-only)→ 不提供

  • markdown / json → 不提供

  • server 不读 MINERU_* / QATLAS_OPENALEX_MAILTO / QATLAS_ARXIV_FETCH_* 字段;不会代客户端做 server-side 转换或 fetch

  • Contributor 仍可走 qatlas contrib mineru(拿自己的 MinerU quota 在本地跑),通过 POST /api/papers/{id}/upload-mineru 把成品 markdown 推到 server——这条 路径与开关无关

当前实现:开关 OFF 时 /markdown / /pdf 端点整体不注册(客户端拿到 404); 上面「arxiv 论文 → arxiv.org 直链」是 ADR 0011 的既定 OFF 态行为,实施跟踪见 #8。

开关 ON 时(部署方显式接受衍生作品分发义务),server 同时启用以下四件事,一体不可拆(pdf / markdown / json 都对外提供):

  1. Markdown 对外 serve + on-demand convert GET /api/papers/{id_or_doi}/markdown 注册,受 papers:read 保护。默认串字节流 (text/markdown),?format=link 改为返回 RustFS 直链(ADR 0011);缓存未 命中时 server 用部署方配置的 MINERU_API_TOKENS 跑 MinerU,markdown 写回 qatlas-md 桶。

  2. PDF 对外 serve + silent fetch(历史行为,现已停用) GET /api/papers/{id_or_doi}/pdf 注册,受 papers:read 保护。默认返回 RustFS 直链(从 QATLAS_S3_PUBLIC_ENDPOINT presign,qatlasd 不代理大二进制), ?format=bytes 改为串 application/pdf 字节;缓存未命中时用 QATLAS_OPENALEX_MAILTO(polite-pool)+ QATLAS_ARXIV_FETCH_RPS 速率限制从 arxiv.org 拉 PDF,写入 qatlas-pdf 桶。无论直链还是字节,部署方都对外重分发了 arxiv PDF 的副本(直链指向 QA 存的那份)——arxiv 的 ToS 没禁止 redistribution,但 版权归原作者,部署方应自行评估对外受众范围与法域限制。

    上述 PDF 交付是停用前的行为:PDF 分发现已设计性停用,GET /pdf 恒返 410 Gone(提示改用 markdown 端点);PDF 抓取仍作为 markdown 转换管线的 内部阶段、以及贡献者 MinerU lease 的对象保留。

  3. DOI 寻址 path 头部匹配 ^10\.\d{4,9}/ 自动经 OpenAlex 反查 → canonical arxiv id → 走同一套 handler;缺 QATLAS_OPENALEX_MAILTO 时 DOI 路径返回 503。

  4. 状态端点 …/markdown/status 与 …/pdf/status 提供 side-effect-free 进度查询; 两端点同样只在开关 ON 时注册。

开关 ON 后,部署方对对外受众范围与适用法域 ToS 自负责任。我们建议:

  • 反代层放鉴权前置(caddy-security GitHub OAuth、企业 SSO 等),不要裸开 到匿名互联网;

  • 部署在受控范围(私有团队、内部站点、教育机构 IP allowlist);

  • 公开实例(互联网开放)维持开关默认 OFF。

当前 YAML 配置边界见配置参考 · 论文访问开关。 实施进度跟踪:#8。

撤稿 / 删除请求

如果你是论文作者或权利持有人,希望我们:

  • 从 PostgreSQL paper registry 移除该 paper 记录

  • 从 qatlas-md 桶删除某 paper 的解析 markdown

请提 GitHub issue 或邮件 联系维护者(见 致谢)。我们会在合理时间内处理(不保证 SLA, 这是一个研究项目)。

注意:metadata 来自 CC0 上游,我们删除自己 catalog 不会让 metadata 从 OpenAlex / Crossref 消失;要从那里删,请直接联系上游。