Interessante discussie bij het pgrust project: als je bestaande software met een taalmodel omzet naar een andere programmeertaal, kun je dan je eigen licentie op het resultaat plakken?
Het pakket Postgres is een vrije relationele databaseserver. Vrij als in vrijheid: de software is beschikbaar onder de simpele BSD licentie die alle handelingen toestaat (“use, copy, modify, and distribute this software”) zonder nadere voorwaarden behalve copyright notice en geen claims als er fouten in zitten.
Iemand vond het een goed idee om Postgres te porten van de aloude programmeertaal C naar het modernere Rust. Redenen te over: Rust heeft ingebouwde bescherming tegen geheugenlekken en efficiëntere multithreading. En van de licentie mag het, want “modificeren” omvat auteursrechtelijk ook het ‘vertalen’ van een werk.
Het resultaat is zonder al te veel menselijke nabewerking opgeleverd op Github en onder de AGPLv3 licentie geplaatst. Die is iets strenger dan de BSD licentie: afgeleide werken mogen alleen onder diezelfde AGPLv3 aangeboden, en bij publieke vertoning van het werk (SaaS dus) moet de broncode als hyperlink erbij.
Postgres-ontwikkelaar Greg Burd stelde daarop “ter verduidelijking” de vraag: op welke grond is de licentie op onze software omgezet naar die AGPL?
Bij gewone integratie, herimplementatie of hertaling is dat een rare vraag. Immers, als programmeur moet je behoorlijk wat creativiteit inbrengen om dat te doen, en dan heb je auteursrecht op dat resultaat en dan mag je daar een licentie op zetten. Maar waar is hier de menselijke creativiteit, als een taalmodel 95%+ van de creatieve keuzes heeft gemaakt en de mens hooguit nog correcties en hier en daar wat poetswerk?
Een bestaand werk onder een nieuwe licentie plaatsen (dus niet integreren in of herzien tot een eigen werk) mag alleen als het woord sublicentie voorkomt in de licentietekst (voorbeeld: Apache 2.0). Dat is bij BSD niet het geval.
De reactie van de Rustversie-initiatiefnemer (Michael Malis) leest voor mij als een politiek zorgvuldig statement:
Re human vs ai authorship: we didn’t keep precise records of which code is ai generated and which code is human authored. Many of the high-level design decisions I personally made. For example, how to represent the Postgres error handling and memory management in Rust were decisions I personally made. These decisions for how memory management and error handling are designed are reflected in nearly every function.Het is inderdaad goed voorstelbaar dat je als developer keuzes op hoog niveau maakt, en dan een taalmodel die uit laat werken naar concrete software. Alleen zijn “keuzes op hoog niveau” niet het soort creatieve inbreng waar je auteursrecht mee krijgt. De keuze “doe maar lila” is te weinig om auteursrecht op Postgres-de-software te krijgen. Daarvoor moet je echt actief in de broncode aan het schilderen zijn geweest.
Een subtiele oplossing kan nog zijn dat je zegt: daar waar sporen van creativiteit uit het origineel te herkennen zijn, geldt gewoon de BSD licentie. Auteursrecht door de taalmodel-wijzigingen is juridisch onmogelijk, dus afgezien van het handwerk achteraf is die gehele codebase gewoon BSD.
Het enige lastige daarmee is dat licenties – ook open source – niet binden tenzij je daarmee akkoord bent gegaan. Licenties zijn contracten. En afgaande op de reactie van Malis weigert hij de BSD licentie te accepteren. Dan blijft als conclusie over dat er auteursrechtinbreuk wordt gepleegd, want er wordt dan software aangeboden zonder rechtsgeldige licentie.
Arnoud
Het bericht Welke opensourcelicentie mag je plakken op een AI-gegeneerde hertaling van bestaande software? verscheen eerst op Ius Mentis.



