Bạn nên có thể sử dụng tác phẩm tốt do người khác tạo ra mà không cần trở thành chuyên gia về cấp phép, và không lặng lẽ bỏ qua những người đã tạo ra nó. Vì vậy Lolly giữ lại nguồn của mọi tác phẩm mà nó sử dụng, đọc giấy phép đã được ghi nhận cho tác phẩm đó, tính ra giấy phép đó yêu cầu gì đối với cách sử dụng mà bạn thực sự đang thực hiện, tự làm phần việc mà một chương trình có thể làm, và nêu rõ phần việc chỉ bạn mới có thể làm.
Không điều nào trong số này là tư vấn pháp lý và cũng không phải là phán quyết về dự án của bạn. Lolly ghi lại các sự kiện, áp dụng một tập hợp nhỏ các quy tắc được đọc từ chính văn bản pháp lý của các giấy phép, và cho thấy cách nó tính toán. Một giấy phép có điều kiện là một lựa chọn bình thường, được phép. Nó không bao giờ được trình bày như một tài sản bị lỗi.
Ba sự kiện, được giữ tách biệt
"CC BY 4.0", "cách dùng này cần một ghi công" và "phần ghi công đã có trong tệp bạn vừa tải xuống" là ba tuyên bố khác nhau, và Lolly giữ chúng tách biệt:
- Bằng chứng là những gì một nguồn đã khai báo, được ghi lại đúng như khi tìm thấy, cùng với ai đã nói điều đó và nó được đọc ở đâu. Một lần nhập sau này không bao giờ ghi đè lên một bản ghi trước đó.
- Nghĩa vụ là những gì các quy tắc đã xem xét rút ra từ bằng chứng đó cho một cách dùng, một tuyến phân phối và một đối tượng khán giả. Các điều kiện chia sẻ vẫn ở dạng có điều kiện trong khi bạn đang làm việc riêng tư.
- Việc phân phối là những gì các byte hoàn chỉnh thực sự mang theo, được đo bằng cách đọc lại chúng. Lolly chỉ nói rằng ghi công đã được đưa vào sau khi một người đọc đã tìm thấy nó trong tệp được phân phối.
Nơi bạn gặp điều này đầu tiên
Các bộ emoji là trường hợp thường gặp hằng ngày. Twemoji có giấy phép CC BY 4.0, nên một tiêu đề có emoji trong đó xuất ra với tác phẩm đã được ghi công và không còn gì cho bạn phải làm. Cả hai bộ OpenMoji đều thuộc CC BY-SA 4.0, nên việc đổi màu một glyph của chúng theo cách xử lý thương hiệu là một bản phóng tác, và việc chia sẻ bản phóng tác đó yêu cầu bạn chọn một giấy phép tương thích, một lần. Việc chọn bộ không bao giờ bị chặn, và bộ điều khiển chọn bộ nêu tên giấy phép ngay tại nơi bạn chọn. Cùng những quy tắc đó trả lời cho một minh họa trong danh mục, một LUT, một phông chữ và bất kỳ tác phẩm đã ghi nhận nào khác.
Những từ Lolly dùng
Một bộ từ vựng duy nhất xuyên suốt bảng xuất, Verify, dòng lệnh và kết quả của máy.
| Điều bạn thấy | Điều đó có nghĩa là gì |
|---|---|
| Ghi công nguồn sẽ được đưa vào. | Ghi công đã được chuẩn bị và tuyến đường có thể mang nó theo. Chưa có gì được ghi, nên đây không phải là thông báo thành công. |
| Ghi công đã có trong siêu dữ liệu của tệp này. | Các byte đã phân phối được đọc lại, thông tin xác thực đã được xác minh và mọi nguồn bắt buộc đều được tìm thấy trong đó. |
| Ghi công và thông tin xác thực nằm trong gói tải xuống. | Ghi công đi kèm như một tệp đồng hành bên cạnh tác phẩm. Hãy giữ chúng cùng nhau khi bạn chuyển tiếp chúng. |
| Thêm ghi công này vào phần mô tả bài đăng. | Tuyến đường đã chọn không mang theo thông tin xác thực lẫn ghi công có thể đọc được, nên phần văn bản ghi công là việc bạn tự dán vào. |
| Nếu bạn chia sẻ bản phóng tác này, nó cần một giấy phép tương thích. | Một nguồn ShareAlike đã bị thay đổi và kết quả đang hướng đến nơi khác ngoài sử dụng riêng tư. Việc chọn là một hành động, không phải một hộp thoại cho từng vị trí đặt. |
| Giấy phép nguồn chưa được ghi nhận. | Không có gì được ghi nhận cho nguồn này. Đó là một khoảng trống cần lấp đầy, không phải một phát hiện bất lợi cho tác phẩm. |
| Điều kiện đã được ghi nhận, chưa được diễn giải. | Mã định danh được nhận diện và các điều kiện của nó được liệt kê, và không quy tắc nào ở đây đọc chúng. Không tự động thông qua, không tự động cấm. |
| Hai khai báo giấy phép mâu thuẫn nhau. | Hai bản ghi nêu tên hai giấy phép khác nhau và chưa có gì chọn ra quyền cấp phép nào áp dụng. |
| Không yêu cầu ghi công theo cống hiến CC0 đã ghi nhận. | Cống hiến này không yêu cầu gì cả. Một ghi công mang tính lịch sự vẫn được đề nghị. |
| Ghi công không có trong tệp đã được phân phối. | Một ghi công đã được hứa hẹn, việc đọc lại không tìm thấy nó, và tệp vẫn là của bạn. Hãy xuất lại, hoặc dùng văn bản ghi công theo cách thủ công. |
Lolly không dùng các cụm "copyright verified", "legally safe", "fully cleared" hay "rights cleared", và không có một huy hiệu giấy phép xanh duy nhất nào ở bất cứ đâu trong sản phẩm. Những từ đó sẽ tuyên bố một điều mà không chương trình nào có thể kiểm tra được.
Các giấy phép mà Lolly đã xem xét
Phiên bản quy tắc rights-rules-2026-09-13.2. Mỗi quy tắc dưới đây được đọc từ chính văn bản pháp lý của giấy phép, và phần trích dẫn nguồn gốc của nó cũng được ghi chú bên cạnh trong engine/src/rights-profiles.ts cũng như ở đây. Một phiên bản và một cổng (port) được giữ nguyên như đã ghi nhận: một khai báo CC BY 3.0 giữ nguyên phiên bản riêng của nó chứ không được báo cáo thành 4.0 chỉ vì bộ chọn của ứng dụng ưu tiên 4.0.
| Giấy phép | Yêu cầu gì với cách dùng mà Lolly có thể thực hiện | Đọc từ |
|---|---|---|
| CC BY 4.0 | Người tạo, tiêu đề, thông báo bản quyền, tên và liên kết giấy phép, liên kết nguồn và chỉ báo thay đổi, mỗi mục chỉ khi nguồn đã cung cấp. Không loại trừ cách dùng nào, kể cả dùng thương mại. | Văn bản pháp lý, mục 2(a)(1) và 3(a) |
| CC BY-SA 4.0 | Cùng yêu cầu ghi công đó. Ngoài ra, nếu bạn chia sẻ một bản phóng tác, nó phải được phát hành theo một giấy phép tương thích: CC BY-SA 4.0, Free Art License 1.3, hoặc GPL-3.0-or-later, vốn chỉ chạy theo một chiều. Ba giấy phép đó được mang theo dưới dạng dữ liệu từ danh sách của Creative Commons, không bao giờ được khớp theo tên. | Văn bản pháp lý, mục 3(a) và 3(b); danh sách giấy phép tương thích |
| CC0 1.0 | Không gì cả. Cống hiến này không mang điều kiện nào, nên Lolly đề nghị một ghi công mang tính lịch sự và không bao giờ trình bày nó như bắt buộc. | Bản cống hiến, mục 2 và 3; CC FAQ về việc ghi công |
| CC-PDDC | Không gì cả. Điều được ghi nhận là chính lời khẳng định và ai đã đưa ra nó, vì một chứng nhận là tuyên bố của một bên chứ không phải bằng chứng. | Các đoạn trong bản cống hiến và chứng nhận |
| Apache License 2.0 | Các thông báo từ nguồn và văn bản ghi công trong tệp NOTICE đi kèm theo một tác phẩm được phân phối. Việc sử dụng ở thời gian chạy không yêu cầu gì. Một giấy phép yêu cầu văn bản thông báo mà tác phẩm không mang theo sẽ được báo cáo là một khoảng trống. | Apache License 2.0, mục 4, điều kiện 1 đến 4 |
| MIT | Dòng bản quyền và thông báo cấp phép đi kèm với các bản sao và các phần đáng kể. Sử dụng ở thời gian chạy và mang tính tham chiếu không yêu cầu gì. | MIT, điều kiện về thông báo cấp phép |
| SIL OFL 1.1 | Việc dựng văn bản bằng phông chữ này không yêu cầu gì đối với văn bản đó. Việc chuyển tiếp tệp phông chữ mang theo giấy phép, thông báo bản quyền và quy tắc về tên dành riêng. | OFL 1.1, điều kiện 2, 3 và 5; OFL FAQ về tài liệu |
Đã ghi nhận, chưa diễn giải
CC BY-NC, CC BY-ND và các tổ hợp NC-SA, NC-ND đều được nhận diện, các điều kiện của chúng được liệt kê, và không quy tắc nào ở đây đọc chúng. Chúng báo cáo licence.unknown kèm một dòng nêu tên các điều kiện. Không thể suy ra bối cảnh thương mại từ một mức giá hay một tài khoản, và mỗi văn bản kết hợp cần được xem xét riêng trước khi một quy tắc chạm vào nó.
Ba câu trả lời trung thực hơn nữa, không câu nào là sự cho phép:
- Một mã định danh
LicenseRef-trả về đúng như chính nó. Nó trỏ đến một định nghĩa đã lưu trữ và không bao giờ là độc quyền chỉ vì cách viết. - Một khai báo mà không có gì nhận ra được trả về ở dạng chưa phân tích, cùng với văn bản gốc được giữ bên cạnh.
A OR Blà một lựa chọn mà chủ sở hữu quyền đưa ra, nên mọi phương án đều được trả về và không phương án nào được chọn sẵn.A AND Bmang tính cộng dồn, và các quy tắc này ghi nhận nó thay vì đọc gộp hai hồ sơ với nhau.
Thông tin giấy phép bị thiếu không bao giờ được đọc như bằng chứng rằng một tác phẩm được tự do chuyển tiếp.
Lolly làm gì cho bạn
- Trong danh mục. Trang thông tin của một tác phẩm hiển thị nguồn và người tạo của nó, tên giấy phép chuẩn hóa cùng nhãn gốc được giữ lại bên dưới, một ghi công có thể sao chép nếu có ghi nhận, và một dòng nêu rõ việc sử dụng nó yêu cầu điều gì. Một ô thẻ nêu rõ yêu cầu; nó không bao giờ khẳng định rằng một lần xuất đã hoàn tất.
- Trong bảng xuất. Một thẻ Ghi công nguồn xuất hiện ngay khi một bản dựng dùng đến tác phẩm đã ghi nhận. Nó hiển thị trạng thái, văn bản ghi công ẩn sau Details, một nút Copy credit, và một thẻ nội tuyến khi có quyết định còn nợ. Một quyết định không bao giờ là một hộp thoại chặn: một lượt tải xuống còn thao tác dang dở vẫn tiếp tục, và tác phẩm riêng tư vẫn dùng được.
- Trong tệp. Một bản xuất đặt vào tác phẩm đã ghi nhận sẽ ghi một thành phần nguồn Content Credentials cho mỗi tác phẩm riêng biệt, được gắn với các byte gốc tại địa chỉ công khai của chúng, mang theo người tạo, giấy phép cùng liên kết của nó, nguồn, phiên bản sửa đổi và các thay đổi. Lolly ký vào những gì nó đã quan sát được. Nó không bao giờ ký một tuyên bố thay mặt cho nghệ sĩ gốc, và Verify cho biết điều nào trong hai điều đó đã xảy ra.
- Sau khi ghi. Các byte đã phân phối được đọc lại trước khi bất cứ điều gì nói rằng ghi công đã được đưa vào. Một thông tin xác thực không xác minh được thì không được tính là một ghi công đã được phân phối.
- Trong một tệp
.lollycó thể chỉnh sửa. Các byte chỉ di chuyển khi một giấy phép đã xem xét ghi nhận quyền chuyển tiếp nguồn, và tệpCREDITS.txtcủa gói liệt kê những gì đã di chuyển, theo giấy phép nào, và những gì đã bị giữ lại cùng lý do. Một giấy phép chưa được ghi nhận sẽ bị giữ lại. Bạn vẫn có thể chủ động đưa vào nội dung bị giữ lại, và tệp ghi công sẽ ghi nhận rằng đó là lựa chọn của bạn. - Trong Verify. Một bảng Sources liệt kê mọi nguồn mà một tệp ghi nhận, cùng một bản tóm tắt đã tính toán, ghi công, một nút Copy credit, một liên kết Open source chỉ mở khi có yêu cầu, và các giới hạn đã nêu rõ của những gì đã được kiểm tra. Câu hỏi Check for this use chỉ được đặt ra khi bạn chọn một cách dùng, và không có gì được tải về để trả lời nó.
- Khi bạn xóa siêu dữ liệu. Việc gỡ bỏ cho bạn biết tệp không còn mang bao nhiêu ghi công nguồn nữa, cung cấp văn bản ghi công, và cung cấp một tệp sạch cùng với phần ghi công đặt bên cạnh. Các byte đã gỡ bỏ không bao giờ bị đóng dấu lại.
Những gì luôn thuộc về bạn
- Lựa chọn giấy phép của bạn là của bạn. Việc xác nhận quyền với một tệp tách ba trạng thái vốn từng là một: không khai báo giấy phép công khai nào, một thông báo bảo lưu mọi quyền rõ ràng, và một cấp phép công khai thực sự. Lolly chỉ viết một dòng quyền cho hai trạng thái sau, và không bao giờ lấy từ hồ sơ của bạn.
- Tác phẩm của bạn không bị cấp lại giấy phép thay bạn. Điều khoản của một nguồn và tuyên bố đầu ra của riêng bạn là các bản ghi tách biệt. Một điều kiện ShareAlike áp dụng cho bản phóng tác mà nó chi phối, không tự động áp dụng cho mọi thứ khác bạn đã tạo ra.
- Tác phẩm riêng tư vẫn dùng được. Các điều kiện áp dụng khi chia sẻ chỉ được nêu ra khi việc chia sẻ đang được xem xét. Không có gì ở đây biến thành lệnh cấm nhập, và không có bảng câu hỏi cấp phép nào đứng giữa bạn và tệp của chính bạn.
- Một quyết định được ghi nhớ gắn với chính các sự kiện của nó. Mỗi lựa chọn bạn ghi lại được đóng dấu bằng một vân tay của các tác phẩm, cách dùng, tuyến đường và đối tượng khán giả mà nó được đưa ra cho. Thay đổi bộ, cách xử lý, định dạng hoặc đối tượng khán giả và câu hỏi sẽ được hỏi lại. Không có công tắc "bỏ qua giấy phép" chung chung nào, vì việc nhấp bỏ qua một cảnh báo không thể mang lại một ghi công hay cấp một sự cho phép.
- Thông tin của bạn tách biệt khỏi ghi công của bên thứ ba. Việc xóa siêu dữ liệu cá nhân của chính bạn không xóa đi một nghệ sĩ đã được ghi công, và một ghi công bắt buộc không bao giờ là cái cớ để xuất ra thông tin liên hệ của bạn.
Trên dòng lệnh
Một bản dựng in ra một khối Rights: tới standard error khi việc đánh giá có một ghi công bắt buộc hoặc một vấn đề. Nó mang theo trạng thái, mỗi vấn đề một dòng dạng code - summary, kết quả đọc lại của tệp đã phân phối, và văn bản ghi công để dán vào.
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.Hai tuyên bố đó độc lập với nhau, và đó chính là lý do để giữ chúng tách biệt: ghi công đã có trong tệp, nhưng một quyết định về giấy phép vẫn còn nợ trước khi tệp được chia sẻ. Tệp vẫn được ghi ra dù thế nào đi nữa.
| Trạng thái | Ý nghĩa | Exit |
|---|---|---|
ready | Không có gì đang chờ một người quyết định. | 0 |
actions-required | Vẫn còn một quyết định trước khi tệp được chia sẻ. Tệp vẫn được ghi ra. | 4 |
use-not-covered | Một quy tắc đã xem xét cho biết giấy phép không bao phủ cách dùng này. | 4 |
unknown | Các vấn đề duy nhất là những khoảng trống: một giấy phép chưa được ghi nhận, hoặc các điều kiện chưa được diễn giải. | 0 |
delivery-failed | Được đặt bởi một biên nhận, không bao giờ bởi một đánh giá: một ghi công đã hứa không được tìm thấy trong các byte đã phân phối. Bảng xuất hiển thị điều đó; CLI báo cáo cùng sự thật đó trong dòng đọc lại của nó thay vào đó. | không in ra |
Exit 4 là mã mà CLI này đã dùng cho một kiểm tra bảo vệ từng nói không. Nó cố tình không phải là 3, nghĩa là "thử lại trên một runner khác", vì một quyết định giấy phép sẽ chờ trên mọi runner đang tồn tại.
--rights=private tuyên bố rằng bản dựng này không được phân phối cho bất kỳ ai. Khối này vẫn được in ra và ghi công vẫn ở đó để sao chép; điều được gỡ bỏ là điều kiện áp dụng khi chia sẻ, và không có tuyên bố phân phối nào được ghi nhận. Không có cờ nào để bỏ qua một điều kiện: --rights=ignore là một lỗi sử dụng.
Các mã vấn đề ổn định và máy đọc được, độc lập với bản dịch:
attribution.source-missing, attribution.delivery-missing, licence.adaptation-choice, licence.use-not-covered, licence.grant-conflict, licence.unknown, source.redistribution-unknown, credential.ingredient-missing.
Qua MCP, lolly_verify trả về một payload rights cùng bản tóm tắt, mỗi nguồn đã ghi nhận một dòng và các giới hạn đã nêu; một lolly_render không cần trình duyệt trả về status, issues, credits, fingerprint và một cờ creditsInFile được đo bằng cách đọc lại các byte.
Các quy tắc nằm ở đâu
Bốn mô-đun engine, tất cả đều thuần khiết: không mạng, không đồng hồ, không hệ tệp. Dữ liệu quy tắc được đánh phiên bản và nằm trong kho lưu trữ, không bao giờ được tải về.
| Mô-đun | Nó chứa gì |
|---|---|
engine/src/rights-profiles.ts | Bảng mã định danh, trình đọc biểu thức SPDX tối giản, các hồ sơ đã xem xét cùng trích dẫn của chúng, và quy tắc duy nhất cho một liên kết mà một ghi công có thể in ra. |
engine/src/rights-evaluate.ts | Phân loại, các vấn đề, kế hoạch ghi công và vân tay. Có tính tất định: cùng sự kiện theo thứ tự khác nhau cho cùng một kết quả. |
engine/src/rights-attribution.ts | Ghi công có thể đọc được, các tệp đồng hành, các thành phần nguồn và biên nhận được đo sau khi ghi. |
engine/src/rights-report.ts | Một thông tin xác thực đã xác minh, được đọc lại thành ba câu hỏi mà Verify đặt ra. |
Các tệp kỳ vọng trong tests/fixtures/rights/ được soạn từ văn bản giấy phép chứ không phải từ đầu ra của bộ đánh giá, và README của nó trích dẫn phần văn bản đứng sau mỗi kỳ vọng.
Những gì điều này không làm
Được nêu rõ ràng, vì một khoảng trống không được gọi tên sẽ đọc như một lời hứa.
- NC và ND không được diễn giải. Các điều kiện của chúng được ghi nhận và báo cáo là chưa xác định.
- Không có điểm đến nào được xác nhận. Lolly chuẩn bị một chú thích; việc một connector chấp nhận một yêu cầu không phải là bằng chứng rằng ghi công đã đến được một người đọc, và không có gì ở đây hứa rằng một lần tải lên, chụp màn hình hay chuyển mã sau này sẽ giữ lại siêu dữ liệu ẩn.
- Các trường ghi công trong siêu dữ liệu gốc không được viết từ kế hoạch. Ghi công di chuyển trong Content Credentials và trong văn bản có thể đọc được. Các trường ghi công theo từng nguồn của IPTC và XMP chưa được điền từ kế hoạch ghi công.
- Chưa xây dựng tính năng sửa lỗi và rút lại. Việc thêm một người tạo còn thiếu hoặc một sửa lỗi cục bộ cho một tác phẩm đã ghi nhận, và việc rút lại một bản ghi, chưa có giao diện.
- Chưa xây dựng các nhà cung cấp được kết nối. Kho ảnh đã mua, một quyền tùy chỉnh và một tài khoản nhà cung cấp chưa có đường nhập, nên các quyền cấp phép của họ chỉ có thể được ghi nhận như tuyên bố của chính bạn.
- Chính sách tổ chức không được kết hợp với các kết quả này. Chính sách xuất và điều kiện giấy phép hiện vẫn tách biệt, và một phê duyệt của tổ chức không phải là sự cho phép từ chủ sở hữu quyền.
- Một vài tuyến phân phối vẫn chưa nằm trên đường dẫn này. Việc tải xuống bản gốc trong danh mục, một ZIP hàng loạt, một bản tải xuống phái sinh, Send và Copy image chưa đánh giá hay mang theo các ghi công này.