Lolly
打开应用

创作权益、署名与归属于你的部分

你应该能够使用他人创作的优秀作品,而不必成为许可证方面的专家,也不必悄悄抹去创作者的名字。因此,Lolly 会记录它所引用的每一件作品的来源,读取为其记录的许可证,弄清楚该许可证对你实际所做的这一次使用提出了什么要求,完成程序能够完成的部分,并指出只有你才能完成的部分。

这些都不是法律意见,也不是对你项目的裁定。Lolly 记录事实,套用一小套从许可证本身法律文本中读取的规则,并展示其推演过程。带条件的许可证是一种正常、被允许的选择,绝不会被当作有问题的素材呈现。

三个彼此独立的事实

“CC BY 4.0”、“这次使用需要署名”和“署名已经在你刚下载的文件里”是三种不同的陈述,Lolly 会将它们分开处理:

你最先在哪里遇到它

表情符号集是最常见的情形。Twemoji 采用 CC BY 4.0,因此带有表情符号的标题导出时会自动附上作品署名,你无需再做任何事。两套 OpenMoji 都采用 CC BY-SA 4.0,因此以品牌处理效果为其中一个字形重新上色,属于一份演绎作品,分享这份演绎作品时,需要你选择一次兼容的许可证。选择表情符号集本身永远不会被阻止,而且在你做选择的位置,选集控件会注明许可证。同样的规则也适用于目录插图、LUT、字体以及其他任何已记录的作品。

Lolly 使用的措辞

同一套措辞贯穿导出面板、验证、命令行和机器可读结果。

你看到的内容含义
来源署名将会包含在内。署名内容已经准备好,交付路径也能够承载它。但目前还没有写入任何内容,所以这并不是一条成功提示。
此文件的元数据中已包含署名。交付的字节已经过回读,凭证通过验证,且其中已找到所有要求的来源。
署名与凭证都在下载包中。署名以随附文件的形式与作品放在一起交付。转发时请把它们放在一起。
请把这段署名添加到帖子说明中。所选的交付路径既不能携带凭证,也不能携带可读的署名,因此署名文字需要你自己粘贴进去。
如果你要分享这份演绎作品,它需要一份兼容的许可证。一件采用相同方式共享(ShareAlike)条款的来源被修改过,其结果的去向并非仅限私人使用。选择许可证只是一次操作,而不是每处放置都要弹一次对话框。
未记录来源许可证。这件来源没有任何记录。这是一个需要补上的空白,而不是对该作品不利的结论。
条件已记录,尚未解读。该标识符能够被识别,其条件也已列出,但这里没有任何规则去解读它们。既不会自动放行,也不会自动禁止。
两份许可证声明互相矛盾。两条记录分别指出了不同的许可证,且没有任何机制选定应当适用哪一份授权。
依据所记录的 CC0 贡献声明,不需要署名。该贡献声明没有任何要求。Lolly 仍然会提供一份礼节性署名。
署名不在已交付的文件中。原本承诺会有署名,但回读时没有找到,文件依然完全属于你。请重新导出,或者手动使用署名文字。

Lolly 不会使用“版权已验证”“法律上安全”“完全清晰”或“权利已清理”这类说法,产品中任何地方都没有一枚统一的绿色许可证徽章。这些说法会宣称一些任何程序都无法核实的事情。

Lolly 已经审核过的许可证

规则版本为 rights-rules-2026-09-13.2。以下每一条规则都摘自许可证本身的法律文本,其出处章节在 engine/src/rights-profiles.ts 中和本页都有标注。版本号和移植版本都会按记录原样保留:一份 CC BY 3.0 声明会保留其自身的版本号,而不会因为应用的选择器更偏好 4.0 就被报告成 4.0。

许可证对 Lolly 可以进行的使用提出的要求出处
CC BY 4.0创作者、标题、版权声明、许可证名称与链接、来源链接以及改动说明:只要来源提供了这些信息,每一项都要标注。没有任何使用被排除在外,商业使用也包含在内。法律文本,第 2(a)(1) 和 3(a) 条
CC BY-SA 4.0署名要求相同。此外,如果你分享一份演绎作品,它必须以一份兼容的许可证发布:CC BY-SA 4.0、Free Art License 1.3,或者 GPL-3.0-or-later(这一条只能单向兼容)。这三者都是作为数据从 Creative Commons 的列表中读取的,而不是靠名称匹配的。法律文本,第 3(a) 和 3(b) 条;兼容许可证列表
CC0 1.0没有任何要求。该贡献声明不附带任何条件,因此 Lolly 会提供一份礼节性署名,但绝不会将其呈现为强制要求。贡献声明,第 2 和 3 条;CC 常见问题 中关于署名的部分
CC-PDDC没有任何要求。这里记录的是这项断言本身以及作出断言的人,因为一份认证只是一方的陈述,而不是证明。贡献声明与认证 各段
Apache License 2.0来源附带的声明,以及 NOTICE 文件中的署名文字,会随着分发的作品一起流转。运行时使用不需要任何操作。如果许可证要求提供声明文字,而作品本身并未附带,则会被报告为一处空白。Apache License 2.0,第 4 条,第 1 至 4 款
MIT版权声明行与许可声明会随副本以及实质性的部分一起流转。运行时使用与引用性使用不需要任何操作。MIT,许可声明条件
SIL OFL 1.1使用该字体显示文字,对文字本身没有任何要求。转交该字体文件时,需要一并附上许可证、版权声明以及保留名称规则。OFL 1.1,第 2、3 和 5 条;OFL 常见问题 中关于文档的部分

已记录,尚未解读

CC BY-NC、CC BY-ND,以及 NC-SA 和 NC-ND 的组合都能被识别,它们的条件也会被列出,但这里没有任何规则去解读它们。它们会报告 licence.unknown,并附上一行说明具体条件的文字。是否属于商业场景,无法单凭价格或账户判断,每一种组合文本在被规则处理之前,都需要单独审核。

还有三种同样诚实的回答,但它们都不代表许可:

缺失的许可证信息,绝不会被当作这件作品可以自由转发的证据。

Lolly 为你做了什么

始终归你所有的部分

在命令行中

当评估结果存在必须提供的署名或出现问题时,一次渲染会向标准错误输出打印一个 Rights: 区块。其中包含状态、每个问题各占一行并采用 code - summary 的格式、对交付文件的回读结果,以及可供粘贴的署名文字。

Rights: actions-required
  licence.adaptation-choice - If you share this adaptation, it needs a compatible licence.
  Credential intact. It records 1 source. The exporter recorded it; the source did not sign a credential of its own.
  Credits included in this file's metadata.
  "water wave (OpenMoji Color 17.0.0)" by Vanessa Boutzikoudi (OpenMoji), CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/, source https://raw.githubusercontent.com/hfg-gmuend/openmoji/f9fc506a3f913be9897ab0181d611d4c910a4104/color/svg/1F30A.svg, changes: recoloured.

这两个陈述彼此独立,这正是要把它们分开的原因:署名已经写入文件,但在文件被分享之前,仍有一项许可证方面的决定尚未做出。无论如何,文件都会照常写入。

状态含义退出码
ready没有任何事项需要人工处理。0
actions-required在文件被分享之前,仍有一项决定尚待做出。文件依然会被写入。4
use-not-covered一条经过审核的规则判定,该许可证不涵盖这一次使用。4
unknown唯一的问题是空白:一份未被记录的许可证,或是尚未被解读的条件。0
delivery-failed由回执设置,而不是由评估设置:承诺提供的署名没有在交付的字节中被找到。导出面板会显示这一状态;命令行则会在其回读那一行报告同样的事实。不打印

退出码 4 正是这个命令行工具一贯用来表示某项保护性检查给出否定答案的代码。它刻意不用 3,因为 3 的含义是“换一台运行器重试”,而无论换到哪台运行器,都同样会有一项许可证决定在等着你。

--rights=private 表示这次渲染不会交付给任何人。这个区块依然会打印,署名依然可以复制;退让的只是那条以分享为前提的条件,同时也不会记录任何交付声明。这里没有用来忽略某项条件的标志:--rights=ignore 属于用法错误。

这些问题代码是稳定且机器可读的,与界面翻译文字无关:

attribution.source-missing, attribution.delivery-missing, licence.adaptation-choice, licence.use-not-covered, licence.grant-conflict, licence.unknown, source.redistribution-unknown, credential.ingredient-missing.

在 MCP 上,lolly_verify 会返回一个 rights 负载,其中包含摘要、每条已记录来源各占一项,以及所述的检查限制;无需浏览器的 lolly_render 则会返回 status、issues、credits、fingerprint,以及通过回读字节来衡量得出的 creditsInFile 标志。

规则存放的位置

四个引擎模块,全部都是纯函数:不访问网络、不读取时钟、不接触文件系统。规则数据带有版本号,保存在代码仓库中,绝不会临时抓取。

模块内容
engine/src/rights-profiles.ts标识符表、一个精简的 SPDX 表达式读取器、附带引用出处的已审核档案,以及那条决定署名是否可以打印链接的规则。
engine/src/rights-evaluate.ts分类、问题列表、署名方案以及指纹。具有确定性:同样的事实即使顺序不同,也会得出相同的结果。
engine/src/rights-attribution.ts可读的署名文字、随附文件、来源成分,以及写入之后测得的回执。
engine/src/rights-report.ts把一份已验证的凭证,回读并转化为“验证”所提出的那三个问题。

tests/fixtures/rights/ 目录下的预期结果文件,都是直接依据许可证文本编写的,而不是依据评估器的输出结果;其 README 中会为每一条预期结果标注对应的出处章节。

这套机制做不到的事

这里明确说清楚,因为一处未被指明的空白,会被误读成一项承诺。