Трябва да можеш да използваш добра работа, направена от други хора, без да ставаш експерт по лицензиране и без тихомълком да пропускаш хората, които са я направили. Затова Lolly пази източника на всяка творба, от която черпи, чете лиценза, записан за нея, преценява какво иска този лиценз от употребата, която всъщност правиш, върши частта, която програма може да свърши, и назовава частта, която само ти можеш да свършиш.
Нищо от това не е правен съвет и нищо от него не е присъда за твоя проект. Lolly записва факти, прилага малък набор от правила, прочетени от собствените правни текстове на лицензите, и показва как е стигнал до тях. Лиценз с условия е нормален, разрешен избор. Той никога не се представя като повреден актив.
Три факта, държани разделени
"CC BY 4.0", "тази употреба се нуждае от кредит" и "кредитът е във файла, който току-що изтегли" са три различни твърдения, и Lolly ги държи разделени:
- Доказателство е това, което даден източник е декларирал, записано както е било намерено, с това кой го е казал и откъде е прочетено. По-късен импорт никога не презаписва по-ранен запис.
- Задължение е това, което прегледаните правила извеждат от това доказателство за една употреба, един път на доставка и една аудитория. Условията за споделяне остават условни, докато работиш поверително.
- Доставка е това, което готовите байтове действително носят, измерено чрез повторното им прочитане. Lolly казва, че кредитите са включени едва след като четец ги е намерил в доставения файл.
Къде срещаш това за пръв път
Наборите с емоджита са ежедневният случай. Twemoji е CC BY 4.0, така че заглавие с емоджи в него се експортира с кредитирана графика и нищо не остава да правиш. И двата набора OpenMoji са CC BY-SA 4.0, така че прекрасяването на един от техните символи с брандова обработка е адаптация, а споделянето на тази адаптация те моли да избереш съвместим лиценз веднъж. Изборът на набор никога не е блокиран, а контролът за набора назовава лиценза там, където го избираш. Същите правила отговарят за илюстрация от каталога, LUT, шрифт и всяка друга записана творба.
Думите, които Lolly използва
Един речник в панела за експорт, Verify, командния ред и машинния резултат.
| Какво виждаш | Какво означава |
|---|---|
| Кредитите за източник ще бъдат включени. | Кредитът е подготвен и пътят може да го пренесе. Нищо още не е записано, така че това не е съобщение за успех. |
| Кредитите са включени в метаданните на този файл. | Доставените байтове бяха прочетени обратно, удостоверението беше проверено и всеки изискван източник беше намерен в него. |
| Кредитите и удостоверенията са в пакета за изтегляне. | Кредитът пътува като придружаващ файл до артефакта. Дръж ги заедно, когато ги предаваш нататък. |
| Добави този кредит в описанието на публикацията. | Избраният път не носи нито удостоверение, нито четим кредит, така че текстът на кредита е твой да го поставиш. |
| Ако споделиш тази адаптация, тя се нуждае от съвместим лиценз. | Източник ShareAlike беше променен и резултатът е насочен другаде, а не към лична употреба. Изборът е едно действие, не диалог за всяко поставяне. |
| Лицензът на източника не е записан. | Нищо не е записано за този източник. Това е празнина за запълване, не констатация срещу творбата. |
| Условията са записани, но още не са интерпретирани. | Идентификаторът е разпознат и условията му са изброени, а никое правило тук не ги чете. Никакво автоматично одобрение, никаква автоматична забрана. |
| Две декларации за лиценз не съвпадат. | Два записа назовават различни лицензи и нищо не е избрало кое разрешение важи. |
| Няма изискван кредит според записаното посвещение CC0. | Посвещението не изисква нищо. Кредит от учтивост въпреки това се предлага. |
| Кредитите не са във файла, който беше доставен. | Кредит беше обещан, повторното прочитане не го намери, а файлът все още е твой. Експортирай отново или използвай текста на кредита ръчно. |
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 с ред, назоваващ условията. Търговски контекст не може да се изведе от цена или акаунт, а всеки комбиниран текст се нуждае от собствен преглед, преди правило да го докосне.
Три още по-честни отговора, нито един от които не е разрешение:
- Идентификатор
LicenseRef-се връща какъвто е. Той сочи към съхранена дефиниция и никога не е собственически по правопис. - Декларация, която нищо не разпознава, се връща непарсирана, като оригиналният текст е запазен до нея.
A OR Bе избор, предложен от притежателя на правата, затова се връща всяка алтернатива и нито една не е избрана.A AND Bе кумулативно, и тези правила го записват, вместо да четат два профила заедно.
Липсваща информация за лиценз никога не се чете като доказателство, че творба е свободна за предаване нататък.
Какво прави Lolly за теб
- В каталога. Листът на творбата показва източника и създателя ѝ, каноничното име на лиценза със запазен отдолу оригинален етикет, копируем кредит там, където е записан, и един ред, казващ какво изисква използването ѝ. Плочка заявява изискването; тя никога не твърди, че експорт е завършен.
- В панела за експорт. Карта за кредити на източника се появява веднага щом рендиране използва записана творба. Тя показва състоянието, текста на кредита зад Details, бутон Copy credit и вградена карта, когато се дължи решение. Решението никога не е блокиращ диалог: изтегляне, което има оставащо действие, продължава, а личната работа остава използваема.
- Във файла. Експорт, който е поставил записана творба, записва по една съставка на източник от Content Credentials за всяка отделна творба, обвързана с оригиналните байтове на техния публичен адрес, носеща създателя, лиценза и линка му, източника, ревизията и промените. Lolly подписва това, което е наблюдавал. Той никога не подписва твърдение от името на художника източник, а Verify казва кое от двете се е случило.
- След записване. Доставените байтове се прочитат обратно, преди нещо да каже, че кредитите са включени. Удостоверение, което не се е верифицирало, не се брои за доставен кредит.
- В редактируем файл
.lolly. Байтове пътуват само когато прегледан лиценз записва разрешение за предаване на източника нататък, аCREDITS.txtна пакета изброява какво е пътувало, под кой лиценз, и какво е задържано, с причината. Незаписан лиценз се задържа. Все още можеш да включиш умишлено задържано съдържание, а файлът с кредитите записва, че това е бил твоят избор. - Във Verify. Панел Sources изброява всеки източник, който файл записва, с изчислено обобщение, кредита, бутон Copy credit, линк Open source, който се отваря само по заявка, и посочените граници на прегледаното. Въпрос Check for this use се задава само когато избереш употреба, и нищо не се извлича, за да му се отговори.
- Когато премахваш метаданни. Премахването ти казва колко кредита за източник вече не носи файлът, предлага текста на кредита и предлага чист файл с кредитите до него. Премахнати байтове никога не се препечатват.
Какво остава твое
- Твоят избор на лиценз е твой. Заявяването на файл разделя три състояния, които преди са били едно: не е деклариран публичен лиценз, изрично известие за запазени всички права, и действително предоставяне на публичен лиценз. Lolly пише ред за права само за последните две, и никога от твоя профил.
- Творбата ти не се прелицензира вместо теб. Условията на източник и собствената ти декларация за резултата са отделни записи. Условие ShareAlike важи за адаптацията, която управлява, не автоматично за всичко останало, което си направил.
- Личната работа остава използваема. Условията, които важат при споделяне, се повдигат, когато споделянето е на дневен ред. Нищо тук не се превръща в забрана за импорт, и никакъв въпросник за лицензиране не застава между теб и собствените ти файлове.
- Решение се помни спрямо собствените си факти. Всеки избор, който записваш, е подпечатан с отпечатък на творбите, употребите, пътя и аудиторията, за които е взет. Промени набора, обработката, формата или аудиторията и въпросът се задава отново. Няма общ превключвател "игнорирай лицензите", защото кликването встрани от предупреждение не може да достави кредит или да предостави разрешение.
- Данните ти остават отделни от кредита на трета страна. Премахването на твоите собствени лични метаданни не премахва кредитиран автор, а изискван кредит никога не е извинение за експортиране на твоите данни за контакт.
На командния ред
Рендиране отпечатва блок 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 | Задава се от разписка, никога от оценка: обещан кредит не е намерен в доставените байтове. Панелът за експорт го показва; CLI-то отчита същия факт в реда си за повторно прочитане вместо това. | не се отпечатва |
Изход 4 е кодът, който това CLI вече дава на защитна проверка, казала не. Той умишлено не е 3, което означава "опитай отново на друг runner", а решение за лиценз ще чака на всеки съществуващ runner.
--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 | Проверено удостоверение, прочетено обратно като трите въпроса, които Verify задава. |
Файловете с очаквания в tests/fixtures/rights/ са написани от текстовете на лицензите, а не от изхода на оценителя, и README-то им цитира раздела зад всяко очакване.
Какво това не прави
Казано ясно, защото празнина, която не е назована, се чете като обещание.
- NC и ND не се интерпретират. Условията им се записват и се отчитат като неизвестни.
- Никаква дестинация не е потвърдена. Lolly подготвя надпис; коннектор, приемащ заявка, не е доказателство, че кредит е достигнал до читател, и нищо тук не обещава, че по-късно качване, скрийншот или прекодиране запазва скрити метаданни.
- Полетата за кредит в нативните метаданни не се записват от плана. Кредитите пътуват в Content Credentials и в четим текст. Полетата за кредит по източник в IPTC и XMP все още не се попълват от плана за приписване.
- Корекции и оттегляне не са изградени. Добавянето на липсващ създател или локална корекция към записана творба, и оттеглянето на запис, нямат интерфейс.
- Свързани доставчици не са изградени. Купен стоков материал, персонализирано разрешение и акаунт на доставчик нямат път за импорт, така че разрешенията им могат да се записват само като твое собствено твърдение.
- Политика на организация не се съчетава с тези резултати. Политиката за експорт и условията на лиценза са отделни днес, а одобрение от организация не е разрешение от притежател на права.
- Няколко пътя на доставка все още не са на този път. Изтеглянето на оригинал от каталога, обемен ZIP, производно изтегляне, Send и Copy image все още не оценяват и не носят тези кредити.