[Formati] YAP - Yet Another Proposal :)

Roberto Galoppini galoppini at acmesolutions.it
Thu Feb 17 09:30:41 UTC 2005


Giro in lista una bozza che avevo elaborato qualche tempo fa.
Commenti benvenuti.

Rob Galop


Cosa sono formati e protocolli e a cosa servono
-----------------------------------------------

<<La modalità con cui i dati vengono rappresentati elettronicamente in
modo che i programmi possano elaborarli [..] per elaborare un file, un
programma deve sapere come i dati vi sono “memorizzati”. Il formato
specifica la corrispondenza fra la rappresentazione binaria
e i dati rappresentati>>[1]

Conoscere le specifiche, ovvero le modalità di rappresentazione binaria
di un dato, sia esso un testo, un'immagine o un file musicale, non è una
curiosità tecnologica, ma è l'unico modo per potersi riservare, nel
tempo, il diritto di poter fruire dei propri dati.

Il protocollo è una descrizione formale del formato dei messaggi e delle
regole che devono essere rispettate per inviare/ricevere tali messaggi.

L'utilizzo di un “linguaggio” comune garantisce la possibilità di
rendere interoperabili sistemi ed applicazioni informatiche eterogenee,
ed è un prerequisito per poter inviare e ricevere dati.


Aperto e libero
---------------

<<[..]una tecnologia si dice “aperta” quando è resa pubblica ed è
documentata esaustivamente. “Aperta” si oppone a “proprietaria”, che
indica una tecnologia posseduta in esclusiva da un soggetto che ne
mantiene segreto il funzionamento e può modificarla a proprio
piacimento. Al requisito della pubblicità per alcuni si aggiunge anche
quello relativo alla proprietà>>[1]

Parallelamente altri studi commissionati dalla commissione europea[2],
hanno riportato, nell'ambito delle attività svolte presso la commissione
TAC (Telematics between Administrations Committee) sotto l'egida del
progetto europeo IDA (Interchange of Data between  Administrations), la
seguente definizione: <<Open Standard protocols are defined as those
which are free from patents and with an OSS implementation>>.

Come mostrano queste differenti definizioni non vi è unanimità su cosa
significhi formato aperto, ed è altresì importante sottolineare che
alcune importanti realtà dell'industria del software non abbiano un
comune punto di vista, come risulta ad esempio dalle lettere aperte
inoltrate alla  commissione TAC dalle varie aziende.

Una possibile definizione di formato/protocollo libero si basa su una
trasposizione della definizione di software libero [3], ovvero:

0) Libertà di studiare le specifiche del formato/protocollo ed
    adattarlo alle proprie necessità;
1) Libertà di utilizzare le specifiche del formato/protocollo
    per qualunque scopo;
2) Libertà di redistribuire le specifiche del formato/protocollo;
3) Libertà di modificare le specifiche del formato/protocollo e
    redistriburne le versioni modificate.

La specifica di un formato, o di un protocollo, costituisce il
"linguaggio" con il quale è possibile esprimere e trasmettere dati,
quindi diversamente da un programma, definisce uno standard di
memorizzazione o comunicazione di dati.
In merito alle suddette libertà occorre esprimere le seguenti tutele:
- tra gli scopi garantiti dalla libertà 1) deve essere garantito il 
diritto di poter implementare un programma che si basi, parzialmente o 
totalmente, sulle specifiche di tale formato/protocollo.
In particolare deve esser garantita la libertà di poter distribuire tale
programma con qualunque tipo di licenza software; formati/protocolli che
pongano restrizioni sulle licenze d'uso utilizzabili per la
distribuzione di programmi sono da ritenersi non liberi;
- la libertà di redistribuzione delle specifiche di un
formato/protocollo richiede che tali specifiche siano royalty-free; non
deve quindi essere possibile consentire all'autore delle specifiche di
porre alcuna restrizione sulla redistribuzione, ad esempio richiedendo
obbligatoriamente la sottoiscrizione di un NDA (Non Disclosure Agreement);
- il formato protocollo deve poter essere esteso, ma la licenza con cui
le specifiche sono distribuite devono tutelare il "permesso d'autore"
(copyleft), in modo  che chiunque utilizzi tali formati/protocolli
modificati possa avere  accesso alle relative specifiche con gli stessi
diritti con cui è stato distribuito il formato/protocollo originale.


Processo di definizione delle specifiche
----------------------------------------

Il gruppo di lavoro che elabora un determinato formato o protocollo
standard, deve essere aperto ai contributi di terzi, indipendentemente
dall'appartenza a determinate aziende e/o alla corresponsione di costose
fee; garantire l'accesso agli organismi di standardizzazione,
esattamente come accaduto per i protocolli su cui si è sviluppata la
rete (IETF - Internet Engeneering Task Force), è una garanzia per lo
sviluppo di standard efficaci e ampiamente condivisi.

Benché la modificabilità dei formati/protocolli deve essere garantita
poiché potrebbe essere utile estendere le specifiche originali per poter
aggiungere caratteristiche inizialmente non previste, i corpi di
standardizzazione devono poter garantire la conformità, eventualmente a
pagamento, delle implementazioni ad un dato formato/protocollo,
permettendo a singoli utenti, aziende ed enti pubblici di operare scelte
consapevoli nell'adozione di programmi la cui aderenza a standard liberi
e pubblici possa essere certificata.

I corpi di standardizzazione dovranno porre particolare attenzione nel
formalizzare i processi di certificazione in modo da ridurre il rischio
di tecniche predatorie del tipo "abbraccia ed estendi", in cui gli
standard vengono modificati per essere resi incompatibili con quelli
originali, allo scopo di indurre l'utenza ad usare il prodotto che li
implementa poiché è l'unico, godendo dell'esternalità positiva che
deriva dalla sua progressiva diffusione favorita dall'esternalità positiva.

Si osservi che allo stato dell'arte nessuno dei più noti gruppi di
standardizzazione (IETF, W3C, OASIS) adotta politiche di gestione delle
proprietà intellettuale che garantiscano esplicitamente tutte le 
suddette tutele.

Si consiglia la lettura di due documenti introduttivi sulla materia,
riportati nelle note [4]e [5] successive.

Disclaimer - ogni opinione che dovesse essere contenuta in questa mail è
da intendersi espressa a titolo esclusivamente personale: essa pertanto
non riflette opinioni altrui, non implica alcun tipo di approvazione o
responsabilità da parte del mio eventuale datore di lavoro o di
associazioni di cui faccio o ho fatto parte.

Copyright (C) 2004 Roberto Galoppini |<galoppini at acmesolutions.it>|.

La copia letterale o la distribuzione di questa mail, il cui contenuto è
provvisorio e soggetto a modifiche parziali o radicali, è permessa con
qualsiasi mezzo, a condizione che questa nota sia riprodotta.

[1] Indagine conoscitiva sul software a codice sorgente aperto nella
     Pubblicazione Amministrazione – Rapporto della Commissione

[2] The IDA Open Source Migration Guidelines

[3] Free Software Definition

[4] Open Standards - Principles and Practice - An Open Standard is
     more than just a specification - di Bruce Perens
     http://perens.com/OpenStandards/Definition.html

[5] The Principles of Open Standards di Ken Krechmer
     http://www.csrstds.com/openstds.html



More information about the formati mailing list