Lolly
Mở ứng dụng

Quyền sáng tạo, ghi công và những gì luôn thuộc về bạn

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:

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épYêu cầu gì với cách dùng mà Lolly có thể thực hiệnĐọc từ
CC BY 4.0Ngườ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.0Cù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.0Khô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-PDDCKhô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.0Cá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
MITDò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.1Việ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:

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

Những gì luôn thuộc về 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ĩaExit
readyKhông có gì đang chờ một người quyết định.0
actions-requiredVẫ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-coveredMộ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
unknownCá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ô-đunNó chứa gì
engine/src/rights-profiles.tsBả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.tsPhâ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.tsGhi 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.tsMộ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.