Ar trebui să poți folosi o lucrare bună făcută de alte persoane fără să devii un expert în licențiere, și fără să renunți în tăcere la oamenii care au făcut-o. Așa că Lolly păstrează sursa fiecărei lucrări pe care o folosește, citește licența care a fost înregistrată pentru ea, calculează ce cere acea licență de la utilizarea pe care o faci de fapt, face partea pe care o poate face un program, și numește partea pe care doar tu o poți face.
Nimic din toate acestea nu este consultanță juridică, și nimic nu este o hotărâre despre proiectul tău. Lolly înregistrează fapte, aplică un set mic de reguli citite din textele legale proprii ale licențelor, și își arată raționamentul. O licență cu condiții este o alegere normală, permisă. Nu este niciodată prezentată ca un asset defect.
Trei fapte, ținute separat
"CC BY 4.0", "această utilizare are nevoie de un credit" și "creditul este în fișierul pe care tocmai l-ai descărcat" sunt trei afirmații diferite, iar Lolly le ține separate:
- Dovadă este ceea ce a declarat o sursă, înregistrat așa cum a fost găsit, cu cine a spus-o și unde a fost citit. O importare ulterioară nu suprascrie niciodată o înregistrare anterioară.
- Obligație este ceea ce fac regulile revizuite din această dovadă pentru o utilizare, o rută de livrare și un public. Condițiile de partajare rămân condiționale cât timp lucrezi în privat.
- Livrare este ceea ce chiar poartă byte-ii finali, măsurat prin recitirea lor. Lolly spune că creditele sunt incluse doar după ce un cititor le-a găsit în fișierul livrat.
Unde întâlnești asta prima dată
Seturile de emoji sunt cazul de zi cu zi. Twemoji este CC BY 4.0, așa că un titlu cu un emoji în el se exportă cu ilustrația creditată și nimic rămas de făcut pentru tine. Ambele seturi OpenMoji sunt CC BY-SA 4.0, așa că recolorarea unuia dintre glifele lor cu un tratament de brand este o adaptare, iar partajarea acelei adaptări îți cere să alegi o dată o licență compatibilă. Alegerea setului nu este niciodată blocată, iar controlul setului numește licența acolo unde faci alegerea. Aceleași reguli răspund pentru o ilustrație din catalog, un LUT, un font și orice altă lucrare înregistrată.
Cuvintele pe care le folosește Lolly
Un singur vocabular în panoul de export, în Verify, în linia de comandă și în rezultatul pentru mașină.
| Ce vezi | Ce înseamnă |
|---|---|
| Creditele de sursă vor fi incluse. | Creditul este pregătit, iar ruta poate să-l transporte. Nu s-a scris încă nimic, deci acesta nu este un mesaj de succes. |
| Credite incluse în metadatele acestui fișier. | Byte-ii livrați au fost recitiți, acreditarea a fost verificată și fiecare sursă necesară a fost găsită în el. |
| Creditele și acreditările sunt în pachetul de descărcare. | Creditul călătorește ca fișier însoțitor alături de artefact. Păstrează-le împreună atunci când le transmiți mai departe. |
| Adaugă acest credit la descrierea postării. | Ruta aleasă nu poartă nici o acreditare, nici un credit lizibil, deci textul creditului este al tău, de lipit. |
| Dacă partajezi această adaptare, are nevoie de o licență compatibilă. | O sursă ShareAlike a fost modificată, iar rezultatul se îndreaptă spre altceva decât utilizarea privată. Alegerea este o singură acțiune, nu un dialog per plasare. |
| Licența sursei nu este înregistrată. | Nimic nu a fost înregistrat pentru această sursă. Este o lacună de completat, nu o constatare împotriva lucrării. |
| Condiții înregistrate, neinterpretate încă. | Identificatorul este recunoscut și condițiile lui sunt listate, iar nicio regulă de aici nu le citește. Nici acceptare automată, nici interzicere automată. |
| Două declarații de licență nu sunt de acord. | Două înregistrări numesc licențe diferite și nimic nu a ales ce acordare se aplică. |
| Niciun credit necesar sub dedicația CC0 înregistrată. | Dedicația nu cere nimic. Un credit de curtoazie este oferit oricum. |
| Creditele nu sunt în fișierul care a fost livrat. | Un credit a fost promis, recitirea nu l-a găsit, iar fișierul tot este al tău. Exportă din nou, sau folosește manual textul creditului. |
Lolly nu folosește "drepturi de autor verificate", "sigur din punct de vedere legal", "complet eliberat" sau "drepturi eliberate", și nu există nicăieri în produs o singură insignă verde de licență. Aceste cuvinte ar pretinde ceva ce niciun program nu poate verifica.
Licențele pe care Lolly le-a revizuit
Versiunea regulilor rights-rules-2026-09-13.2. Fiecare regulă de mai jos a fost citită din textul legal propriu al licenței, iar secțiunea din care provine este citată alături de ea în engine/src/rights-profiles.ts, la fel ca aici. O versiune și un port sunt păstrate așa cum au fost înregistrate: o declarație CC BY 3.0 își păstrează propria versiune în loc să fie raportată ca 4.0 doar pentru că selectorul aplicației preferă 4.0.
| Licență | Ce cere de la o utilizare pe care Lolly o poate face | Citită din |
|---|---|---|
| CC BY 4.0 | Creatorul, titlul, avizul de drepturi de autor, numele și linkul licenței, linkul sursei și o indicație a modificărilor, fiecare dintre ele atunci când sursa le-a furnizat. Nicio utilizare nu este exclusă, utilizarea comercială inclusă. | Textul legal, secțiunile 2(a)(1) și 3(a) |
| CC BY-SA 4.0 | Același credit. În plus, dacă partajezi o adaptare, aceasta iese sub o licență compatibilă: CC BY-SA 4.0, Free Art License 1.3, sau GPL-3.0-or-later, care funcționează într-un singur sens. Aceste trei sunt purtate ca date din lista Creative Commons, niciodată potrivite după nume. | Textul legal, secțiunile 3(a) și 3(b); lista de licențe compatibile |
| CC0 1.0 | Nimic. Dedicația nu poartă nicio condiție, deci Lolly oferă un credit de curtoazie și nu îl prezintă niciodată ca fiind obligatoriu. | Dedicația, secțiunile 2 și 3; FAQ-ul CC despre acordarea creditului |
| CC-PDDC | Nimic. Ce se înregistrează este chiar afirmația și cine a făcut-o, pentru că o certificare este declarația unei părți, nu o dovadă. | paragrafele dedicației și certificării |
| Apache License 2.0 | Avizele de la sursă și textul de atribuire din fișierul NOTICE călătoresc împreună cu o lucrare distribuită. O utilizare la runtime nu cere nimic. O licență care cere un text de aviz și o lucrare care nu poartă niciunul sunt raportate ca o lacună. | Apache License 2.0, secțiunea 4, condițiile 1-4 |
| MIT | Linia de drepturi de autor și avizul de permisiune călătoresc împreună cu copiile și porțiunile substanțiale. Utilizările la runtime și de referință nu cer nimic. | MIT, condiția avizului de permisiune |
| SIL OFL 1.1 | Randarea textului cu fontul nu cere nimic textului. Transmiterea mai departe a fișierului de font poartă licența, avizul de drepturi de autor și regula numelui rezervat. | OFL 1.1, condițiile 2, 3 și 5; FAQ-ul OFL despre documente |
Înregistrate, neinterpretate
CC BY-NC, CC BY-ND și combinațiile NC-SA și NC-ND sunt recunoscute, condițiile lor sunt listate, iar nicio regulă de aici nu le citește. Ele raportează licence.unknown cu o linie care numește condițiile. Un context comercial nu poate fi dedus dintr-un preț sau dintr-un cont, iar fiecare text combinat are nevoie de propria sa revizuire înainte ca o regulă să îl atingă.
Încă trei răspunsuri oneste, niciunul dintre ele nefiind o permisiune:
- Un identificator
LicenseRef-revine ca atare. El indică spre o definiție stocată și nu este niciodată proprietar doar prin ortografie. - O declarație pe care nimic nu o recunoaște revine neanalizată, cu textul original păstrat alături de ea.
A OR Beste o alegere oferită de deținătorul drepturilor, deci fiecare alternativă este returnată și niciuna nu este selectată.A AND Beste cumulativ, iar aceste reguli îl înregistrează în loc să citească două profiluri împreună.
Informația de licență lipsă nu este niciodată citită ca dovadă că o lucrare este liberă de transmis mai departe.
Ce face Lolly pentru tine
- În catalog. Fișa unei lucrări arată sursa și creatorul ei, numele canonic al licenței cu eticheta originală păstrată dedesubt, un credit care poate fi copiat acolo unde este înregistrat unul, și o linie care spune ce cere folosirea ei. Un tile declară cerința; nu pretinde niciodată că un export a fost finalizat.
- În panoul de export. Un card Source credits apare de îndată ce o randare folosește o lucrare înregistrată. Acesta arată starea, textul creditului din spatele Details, un buton Copy credit, și un card inline atunci când o decizie este datorată. O decizie nu este niciodată un dialog blocant: o descărcare care mai are o acțiune rămasă continuă, iar lucrarea privată rămâne utilizabilă.
- În fișier. Un export care a plasat o lucrare înregistrată scrie un ingredient sursă Content Credentials pentru fiecare lucrare distinctă, legat de byte-ii originali la adresa lor publică, purtând creatorul, licența și linkul ei, sursa, revizia și modificările. Lolly semnează ceea ce a observat. Nu semnează niciodată o afirmație în numele artistului original, iar Verify spune care dintre cele două s-a întâmplat.
- După scriere. Byte-ii livrați sunt recitiți înainte ca ceva să spună că creditele sunt incluse. O acreditare care nu s-a verificat nu contează ca un credit livrat.
- Într-un fișier
.lollyeditabil. Byte-ii călătoresc doar atunci când o licență revizuită înregistrează permisiunea de a transmite mai departe sursa, iarCREDITS.txtal pachetului listează ce a călătorit, sub ce licență, și ce a fost reținut, cu motivul. O licență neînregistrată este reținută. Poți totuși include deliberat conținut reținut, iar fișierul de credite înregistrează că a fost alegerea ta. - În Verify. Un panou Sources listează fiecare sursă pe care o înregistrează un fișier, cu un rezumat calculat, creditul, un buton Copy credit, un link Open source care este deschis doar la cerere, și limitele declarate ale a ceea ce a fost inspectat. O întrebare Check for this use este pusă doar atunci când alegi o utilizare, și nimic nu este preluat pentru a răspunde la ea.
- Când elimini metadatele. Eliminarea îți spune câte credite de sursă nu mai poartă fișierul, oferă textul creditului, și oferă un fișier curat cu creditele alături. Byte-ii eliminați nu sunt niciodată reștampilați.
Ce rămâne al tău
- Alegerea licenței tale îți aparține. Revendicarea unui fișier separă trei stări care obișnuiau să fie una: nicio licență publică declarată, un aviz explicit de toate drepturile rezervate, și o acordare reală a unei licențe publice. Lolly scrie o linie de drepturi doar pentru ultimele două, și niciodată din profilul tău.
- Lucrarea ta nu este relicențiată pentru tine. Termenii unei surse și propria ta declarație de ieșire sunt înregistrări separate. O condiție ShareAlike se aplică adaptării pe care o guvernează, nu automat la tot restul a ceea ce ai făcut.
- Lucrarea privată rămâne utilizabilă. Condițiile care se aplică la partajare sunt ridicate atunci când partajarea este în vedere. Nimic de aici nu se transformă într-o interdicție de import, și niciun chestionar de licențiere nu stă între tine și propriile tale fișiere.
- O decizie este ținută minte în raport cu propriile ei fapte. Fiecare alegere pe care o înregistrezi este ștampilată cu o amprentă a lucrărilor, utilizărilor, rutei și publicului despre care a fost luată. Schimbă setul, tratamentul, formatul sau publicul și întrebarea este pusă din nou. Nu există un comutator general "ignoră licențele", pentru că închiderea unui avertisment cu un clic nu poate livra un credit sau acorda o permisiune.
- Datele tale rămân separate de creditul unui terț. Eliminarea propriilor tale metadate personale nu elimină un artist creditat, iar un credit necesar nu este niciodată o scuză pentru a-ți exporta datele de contact.
În linia de comandă
O randare afișează un bloc Rights: la standard error atunci când evaluarea are un credit necesar sau o problemă. Acesta poartă starea, câte o linie per problemă ca code - summary, ceea ce s-a recitit că este fișierul livrat, și textul creditului de lipit.
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.Aceste două afirmații sunt independente, ceea ce este chiar rostul de a le ține separate: creditul este în fișier, iar o decizie de licență este încă datorată înainte ca fișierul să fie partajat. Fișierul este scris oricum.
| Status | Semnificație | Ieșire |
|---|---|---|
ready | Nimic nu așteaptă o persoană. | 0 |
actions-required | O decizie rămâne înainte ca fișierul să fie partajat. Fișierul tot este scris. | 4 |
use-not-covered | O regulă revizuită spune că licența nu acoperă această utilizare. | 4 |
unknown | Singurele probleme sunt lacune: o licență care nu a fost înregistrată, sau condiții care nu sunt interpretate. | 0 |
delivery-failed | Stabilit de o confirmare, niciodată de o evaluare: un credit promis nu a fost găsit în byte-ii livrați. Panoul de export îl arată; CLI-ul raportează același fapt în linia lui de recitire. | nu se afișează |
Ieșirea 4 este codul pe care acest CLI îl dă deja unei verificări de protecție care a spus nu. În mod deliberat nu este 3, ceea ce înseamnă "reîncearcă pe alt executor", iar o decizie de licență va aștepta pe fiecare executor care există.
--rights=private declară că această randare nu este livrată nimănui. Blocul tot se afișează și creditul tot este acolo de copiat; ce se retrage este condiția care se aplică la partajare, și nicio afirmație de livrare nu este înregistrată. Nu există un flag pentru a ignora o condiție: --rights=ignore este o eroare de utilizare.
Codurile de problemă sunt stabile și lizibile de mașină, independente de textul tradus:
attribution.source-missing, attribution.delivery-missing, licence.adaptation-choice, licence.use-not-covered, licence.grant-conflict, licence.unknown, source.redistribution-unknown, credential.ingredient-missing.
Prin MCP, lolly_verify returnează un payload rights cu rezumatul, câte o linie per sursă înregistrată și limitele declarate; un lolly_render fără browser returnează status, issues, credits, fingerprint și un flag creditsInFile care este măsurat prin recitirea byte-ilor.
Unde locuiesc regulile
Patru module ale engine-ului, toate pure: fără rețea, fără ceas, fără sistem de fișiere. Datele regulilor sunt versionate și se află în repository, niciodată preluate de undeva.
| Modul | Ce conține |
|---|---|
engine/src/rights-profiles.ts | Tabelul de identificatori, cititorul minimal de expresii SPDX, profilurile revizuite cu citările lor, și singura regulă pentru un link pe care un credit îl poate afișa. |
engine/src/rights-evaluate.ts | Clasificare, probleme, planul de atribuire și amprenta. Determinist: aceleași fapte într-o altă ordine dau același răspuns. |
engine/src/rights-attribution.ts | Credite lizibile, fișierele însoțitoare, ingredientele sursă și confirmarea măsurată după scriere. |
engine/src/rights-report.ts | O acreditare verificată, recitită ca cele trei întrebări pe care le pune Verify. |
Fișierele de așteptare din tests/fixtures/rights/ au fost redactate din textele licențelor, nu din rezultatul evaluatorului, iar README-ul lor citează secțiunea din spatele fiecărei așteptări.
Ce nu face asta
Spus clar, pentru că o lacună care nu este numită se citește ca o promisiune.
- NC și ND nu sunt interpretate. Condițiile lor sunt înregistrate și raportate ca necunoscute.
- Nicio destinație nu este confirmată. Lolly pregătește o legendă; faptul că un conector acceptă o cerere nu e dovada că un credit a ajuns la un cititor, iar nimic de aici nu promite că un upload, o captură de ecran sau o transcodare ulterioară păstrează metadatele ascunse.
- Câmpurile native de credit din metadate nu sunt scrise din plan. Creditele călătoresc în Content Credentials și în text lizibil. Câmpurile de credit per sursă din IPTC și XMP nu sunt încă completate din planul de atribuire.
- Corecțiile și retragerea nu sunt construite. Adăugarea unui creator lipsă sau a unei corecții locale la o lucrare înregistrată, și retragerea unei înregistrări, nu au nicio interfață.
- Furnizorii conectați nu sunt construiți. Stocul cumpărat, o permisiune personalizată și un cont de furnizor nu au nicio cale de import, deci acordările lor pot fi înregistrate doar ca propria ta declarație.
- Politica organizației nu este combinată cu aceste rezultate. Politica de export și condițiile de licență sunt înregistrări separate astăzi, iar o aprobare a organizației nu este o permisiune din partea unui deținător de drepturi.
- Mai multe rute de livrare nu sunt încă pe acest traseu. Descărcarea unui original din catalog, un ZIP în lot, o descărcare derivată, Send și Copy image nu evaluează și nu poartă încă aceste credite.