[Discussioni] quesito GPL

Paolo Mascellani paolo a elabor.homelinux.org
Ven 16 Feb 2007 22:29:22 CET


Caro Simo,

>>> Se io dico:
>>>  la funzione qsort non restituisce alcun valore e prende quattro
>>>  parametri, di cui il primo è un puntatore al vettore da ordinare, il
>>>  secondo è di tipo size_t e contiene il numero degli elementi, il terzo,
>>>  dello stesso tipo, ne contiene la dimensione, e il quarto è un
>>>  puntatore a funzione che prende come argomenti due puntatori.
>>>
>>> Il testo sopra definisce la sintassi di un'interfaccia.  Secondo la
>>> prassi legale, questa definizione non è coperta da diritto d'autore.  La
>>> ragione è che, secondo la terminologia della legge italiana, questa
>>> definizione costituisce parte delle «idee e i principi che stanno alla
>>> base» dell'interfaccia.
>>>
>>> Il testo sopra lo posso, in maniera equivalente e più succinta, scrivere
>>> così:
>>>  void qsort(void *base, size_t nmemb, size_t size,
>>>             int(*compar)(const void *, const void *));
>>>
>>> Analogamente al testo, anche questo brano di codice secondo la prassi
>>> corrente non è coperta da diritto d'autore, essendo perfettamente
>>> equivalente a quel testo.
>> Ancora una volta, ti ringrazio per le spiegazioni. Purtroppo, trovo che
>> queste argomentazioni non reggano. A me, la tua argomentazione (che non
>> metto in alcun dubbio che sia effettivamente quella in uso nella prassi
>> legale) suona così: visto che è possibile veicolare in linguaggio comune
>> le stesse informazioni che si veicolano nella descrizione formale di
>> un'interfaccia, allora le due descrizioni sono equivalenti e quindi si
>> applicano ad esse le stesse regole.
>>
>> Ora, in primo luogo io contesto che questo ragionamento sia corretto, in
>> quanto il diritto d'autore copre la "forma espressa", non l'idea. In
>> secondo luogo, secondo me, nessuna delle due descrizioni rappresenta
>> l'idea, sono semplicemente due rappresentazioni concrete diverse della
>> stessa idea. L'idea, nel caso del tuo esempio, potrebbe essere: "la
>> funzione che realizza l'algoritmo "quick-sort" ha come argomenti l'array
>> da ordinare, la sua lunghezza, la dimensione di un elemento ed una
>> funzione che permette di comparare due elementi.
> 
> Paolo,
> la tua analisi mi sembra contraddittoria e mi sembra anche tu non abbia
> colto la spiegazione di Francesco.

È possibile, ovviamente, ma a me pare che siate voi a non cogliere il
mio punto.

> Tu ci ricordi: il diritto d'autore copre la "forma espressa" non l'idea,
> e questo e' importante nel ragionamento di Francesco.
> 
> Questo e' parte del punto, e indica che l'idea non e' coperta, ma
> appunto solo la particolare implementazione.

Su questo, per fortuna, siamo d'accordo. Io infatti cercavo di risalire
ad una convinzione comune, per poter poi sviluppare un ragionamento che
mi porta a conclusioni diverse dalle vostre.

> Ora tralasciamo per un attimo che una singola riga di codice
> difficilmente e' considerabile come opera coperta da diritto d'autore o
> sufficiente ad indicare la derivazione di un'opera completa da un altra.

Anche su questo siamo abbastanza d'accordo; mi spiego meglio (spero): a
mio modo di vedere, ogni singola riga di un programma è coperta dal
diritto d'autore; diventa però praticamente impossibile ed anche
controproducente cercare di dimostrare la copiatura di parti "piccole"
di programma, dove "piccole" non è in generale riconducibile ad una
metrica oggettiva, ma deve essere considerato caso per caso. Ovviamente,
è molto difficile considerare una violazione del diritto d'autore la
copiatura di una singola riga di programma.

Sono anche d'accordo, che, nella nostra discussione, possiamo
tralasciare questo problema.

> Facciamo questo esempio di due implementazioni di una interfaccia.
> 
> Implementazione 1:
> void qsort(void *base, size_t nmemb, size_t size,
>            int(*compar)(const void *, const void *));
> 
> Implementazione 2:
> void qsort(void *parm1, size_t number, size_t dimension,
>            int(*check)(const void *, const void *));
> 
> 
> Sono evidentemente due espressioni differenti, che hanno inevitabilmente
> una struttura molto simile perche' espresse in un linguaggio formale che
> non lascia molto spazio ad interpretazione o fantasia.
> Se fosse espresso con notazione K&R il prototypo sarebbe necessariamente
> identico (a meno di spazi, tabulazioni o ritorni a capo).
> 
> Ora come le consideri tu queste due "implementazioni" ?
> Ritieni che mettendo il (c) su una sia coperta anche l'altra?

Se trovo un file ".h" che contiene un centinaio di prototipi definite
esattamente allo stesso modo tranne che per i nomi dei parametri, che
sono insignificanti, io penso che qualcuno ha copiato da qualcun altro.

Faccio notare che tutta la discussione è nata da un quesito in cui si
parlava di una libreria, non di una singola funzione.

>> Inoltre, se le cose stessero come tu dici, non si vede perché il
>> legislatore avrebbe dovuto distinguere l'idea dalla sua realizzazione:
>> tanto sono la stessa cosa.
> 
> Io personalmente direi che sono la stessa cosa, e questo e' dovuto al
> linguaggio in cui sono costretto ad esprimerle. Siccome il linguaggio
> non permette di esprimere con due forme diverse lo stesso concetto, in
> un certo ambito, allora tale forma non e' soggetta a diritto d'autore,
> in quanto essa e' inscindibile dall'idea e renderebbe impossibile
> esprimere l'idea stessa da parte di chiunque altro, andando cosi' a
> "restringere" l'accesso all'idea e non semplicemente all'espressione.
> 
> E' proprio per questo che il legislatore fa una distinzione, perche' nei
> casi in cui si puo' esprimere un'idea in piu' forme allora non si pone
> il problema.

Non ti seguo: nessuna di queste due rappresenta, secondo me, l'idea
dell'interfaccia del quick-sort: sono due implementazioni talmente
simili da poterle considerare uguali.

>> Infine, lo stesso ragionamento potrebbe essere fatto anche per
>> l'implementazione della funzione, non solo per la sua interfaccia;
>> vogliamo allora sostenere che neppure l'implementazione è coperta da
>> diritto d'autore? Non credo!
> 
> No, non puoi fare lo stesso ragionamento.
> Tranne che per funzioni estremamente banali, ci sono n modi diversi di
> affrontare lo stesso problema ovvero "implementare la stessa idea"
> usando espressioni differenti.

Non è vero: quello che Francesco ha fatto e che tu hai ripreso può
essere fatto sistematicamente per funzioni complicatissime. Si tratta di
una traduzione pedissequa da un linguaggio ad un altro. Quello che io
sostengo è che in questo modo non si rappresenta l'idea, ma se ne dà
semplicemente un'altra rappresentazione ugualmente formalizzata. Le
idee, invece, non sono formalizzate (mi verrebbe da dire che non lo sono
mai, ma ... mai dire mai).

> Quindi nel caso del corpo della funzione non c'e' il rischio di
> "restringere" l'accesso all'idea, per cui il diritto d'autore e'
> perfettamente applicabile.

A me sembra che il problema non sia il corpo o la testa, ma che si
ritorni semplicemente al discorso che se una cosa è troppo semplice è
troppo difficile distinguerla da una sua implementazione alternativa ed
è quindi opportuno soprassedere, proprio anche in virtù del fatto che
l'idea è indisponibile al diritto d'autore.

> Infatti siccome ci sono personaggi estremamente avari e desiderosi di
> mantenere o ottenere il controllo su qualunque cosa, sono stati
> introdotti i brevetti software, che, aggirando il diritto d'autore,
> riescono ad "restringere" di fatto l'accesso alle idee che sottendono
> una implementazione. Infatti c'e' chi sostiene che le interfacce sono
> brevettabili!
> 
> Mi spiace dirlo, ma la tua idea che le interfacce siano soggette a
> diritto d'autore e' paradossalmente piu' vicina al modo di pensare di
> chi sostiene il brevetto software rispetto a chi sostiene un diritto
> d'autore equilibrato.

Credo che tu sappia che sono stato in prima linea con te ed altri a
difendere la non brevettabilità del software. Non vedo cosa c'entra la
brevettabilità con quello che sto dicendo. Io sto parlando del diritto
d'autore.

Ciao, Paolo.

-- 
Paolo Mascellani - paolo a elabor.homelinux.org	
eLabor sc - via G. Garibaldi 33, 56124 Pisa - tel. +39 050 970 363
http://elabor.homelinux.org - http://elabor.biz



More information about the discussioni mailing list