Dal sistema alla semiosi. · 2008-04-05 by mmzz
In quale contesto si svolge la mia ricerca? Oltre alla curiosità, il mio lavoro di amministratore di sistemi informatici mi spinge a adottare uno sguardo sistemico, per cui, per così dire, vedo sistemi ovunque. Il mio lavoro consiste nel costruire sistemi informatici complessi ed manutenerli, affinché svolgano il compito previsto anche al variare delle condizioni dell’ambiente, delle funzioni attribuite, della loro dimensione e composizione. Devo essere capace di leggerne ed interpretarne i segni, che per via della complessità spesso non possono essere messi direttamente in relazione con la loro causa. L’osservazione porta quindi ad acuire la curiosità su come questa complessità nasca: dal programma al sistema di programmi che compongono un sistema informatico e da questo all’installazione complessiva composto da singoli sistemi. Il mio compito è quello di organizzare la complessità in modo da garantire che sia gestibile, che possa evolvere, che sia resiliente al mutamento dell’ambiente.
L’azione di chi progetta i sistemi informatici è mirata a costruire un contesto sempre più aperto, versatile ed affidabile in cui sistemi sempre più complessi possono operare.
Ho messo in evidenza quali siano i processi in gioco parlando di enabling Environments Si tratta di un lavoro in cui evidenzio, oltre all’importanza di un flusso di conoscenza aperto in tutti i livelli, anche il ruolo degli attori economici ed il loro interesse a collaborare. Dall’analisi emerge che gli strumenti principali sono la modularizzazione, ovvero il raggruppamento di funzioni omogenee in confini il più possibile autonomi, e la stratificazione, ovvero l’organizzazione di moduli secondo relazioni gerarchiche in modo da garantire l’isolamento delle funzioni, specie se queste riguardano livelli diversi di complessità. E’ una sorta di riduzionismo alla rovescia: invece di scomporre l’osservazione in elementi semplici, comprensibili e riproducibili, si tratta di costruire un organismo complesso in modo che le parti stiano tra loro in modo che eventuali disfunzioni siano identificabili ed isolabili facilmente (potremmo chiamarlo “costruzionismo sistemico”?). Non sempre è un lavoro semplice: si tratta di attribuire una identità a ciascun elemento, definendone i confini in modo tale che la maggior parte delle funzioni dei componenti di quell’elemento cadano all’interno dei suoi confini. Così non facendo, una variazione dell’ambiente circostante comporterebbe una alterazione del funzionamento dell’elemento, minandone l’autonomia e la resilienza, cioè la capacità di sopravvivenza ad un mutamento dell’ambiente. Tuttavia non è nemmeno possibile garantire la completa autonomia, in quanto la natura del sistema richiede l’interazione con altri sistemi e la dipendenza dall’ambiente. Si tratta quindi di trovare il confine ottimo entro il quale la maggior parte delle relazioni cadono, o almeno quelle che possono essere messe in rapporto con una determinata funzione. Il modulo è quell’elemento. I moduli si organizzano in base al loro grado di complessità in rapporto con altri gruppi di moduli in strati con funzioni omogenee, di complessità crescente: gli strati più bassi svolgono funzioni più elementari, e quelli che vi si appoggiano quelle più complesse.
Lo scopo ultimo dell’attività è quello di garantire la prevedibilità del sistema a partire dalla prevedibilità del comportamento degli strati e degli elementi all’interno degli strati, Infatti un sistema informatico muta nel tempo: cambiano i suoi componenti, che evolvono (migliorie, correzioni di errori) e cambia l’ambiente con cui il sistema si deve interfacciare, per via di nuove esigenze o per il suo estendersi. Un sistema ben organizzato richiede il minimo sforzo nella manutenzione di elementi già posizionati in una architettura generale, e consente al sistemista di concentrarsi sulla sua evoluzione. Ecco perché la modularità e la stratificazione sono parti essenziali dell’architettura di un sistema ben costruito. Un sistema in cui tutte le funzioni fossero mischiate in un blocco unico (monolitico) sarebbe difficile da realizzare, manutenere e massimamente imprevedibile alla minima variazione dell’ambiente o del comportamento di un suo componente, Lo stesso sistema, se invece organizzato in elementi dal comportamento prevedibile, può essere analizzato secondo il criterio ceteris paribus ed essere reso prevedibile nel suo complesso, anche al variare del comportamento di un singolo elemento.
In un sistema così costruito non può mutare il rapporto tra gli elementi, ovvero l’interfaccia tra i vari moduli e strati, che si traduce in un complesso di protocolli, relazioni, strutture dati, sincronismi e gerarchie che organizzano gli elementi in un sistema unico e ne definiscono l’architettura. L’interfaccia consente l’accoppiamento strutturale, funzionale e la sincronizzazione dei moduli tra loro. Una variazione nelle interfacce ha effetti molto più profondi sul sistema di quella che coinvolge il meccanismo interno dell’elemento che lo compone: perciò, una volta definita una interfaccia in modo completo e soddisfacente, gli elementi che si mettono in relazione tra loro attraverso quell’interfaccia possono addirittura essere sostituiti, purché continuino a conformarvisi (e cioè a rispettarne gli standard). Il costo di una eventuale riorganizzazione delle relazioni tra elementi del sistema è tale che spesso si preferisce riprogettare tutto da capo. Ciò evidenzia la presenza di path dependence nella evoluzione di un sistema: le scelte (specie quelle di architettura) sono persistenti nel tempo e condizionano le possibilità di scelte future, La forma di un sistema sarà quindi data dalla quantità, qualità, struttura, e storia delle interfacce che lo compongono più di quanto sia frutto della natura e struttura interna dei suoi elementi. Dal punto di vista “soggettivo” di un elemento inserito in un sistema, l’interfaccia è simultaneamente il mezzo con questo percepisce l’ambiente e il mezzo con cui fornisce all’ambiente una rappresentazione di sé. In modo astratto (e un poco ardito) si può definire l’interfaccia come l’insieme strutturato di “credenze” che un elemento inserito in un sistema ha di sé e dell’ambiente,
Quanto detto per un sistema informatico può applicarsi anche ai programmi informatici (di cui un sistema è composto). Il programmatore suddividerà il programma in unità facilmente gestibili, moduli o funzioni indipendenti, da mettere in relazione con il resto del programma attraverso interfacce e strutture dati ben definite e il più possibile persistenti, Posioni di programma potranno essere aggiornate, ma le strutture dati rimarranno quelle.
Ma non sono solo i sistemi informatici a essere strutturati così. Conosciamo bene il sistema informatico perché è la struttura cognitiva più complessa costruita, e la conosciamo appunto perché l’abbiamo costruita artificialmente: la sua costruzione è simultaneamente la sua riduzione. Ipotizzo però, con le debite distinzioni, che molti sistemi complessi condividano almeno alcune delle caratteristiche descritte poco sopra: mi riferisco ai sistemi viventi (organismi, ecosistemi), quelli sociali (economici, politici), e il linguaggio stesso (o più generalmente la semiosi). Non approfondirò il motivo di questa affinità: non pretendo di descrivere leggi naturali, ma solo di osservare. E’ probabile che i sistemi informatici siano costruiti come sono proprio perché a costruirli sono esseri viventi sociali che usano molto intensamente la comunicazione verbale e non.
Tornando all’analogia: i sistemi viventi si sono evoluti con il tempo e la selezione in modo da confinare in organismi (relativamente) autonomi molte funzioni, il complesso delle quali può essere considerato un sistema unico (la vita). I sistemi sociali umani hanno costruito istituzioni in cui confinare in modo prevedibile funzioni che riguardano la collettività e la regolazione delle interazioni sociali complesse: la famiglia, la comunità, la città, la giustizia, il potere, lo stato, il mercato. Ciascuna di queste istituzioni tiene un comportamento prevedibile in virtù di relazioni ben definite con gli altri elementi del sistema sociale, diano essi individui o altre istituzioni. La riorganizzazione radicale di queste relazioni è solitamente fatto ben più traumatico del riassetto interno delle istituzioni stesse, che possono evolvere in modo relativamente autonomo. Un esempio di come questa difficoltà sia sentita lo si trova nella difficoltà di riuscire a riorganizzare gli apparati politico-amministrativi di uno Stato in modo che questo possa seguire le nuove necessità che emergono da un ambiente mutato. Ho brevemente analizzato il caso delle istituzioni locali in Italia parlando di libertà di forma . La rigidità data dalla path dependence e da regole istituzionali non adatte a nuove funzioni svuota le istituzioni di significato, esponendole a crisi di identità all’interno del sistema.
Infatti ogni individuo e istituzione gode di una relativa autonomia purché rimanga nel quadro definito dalle interfacce predefinite e della loro storia (path dependence). A differenza di un sistema informatico, la prevedibilità degli elementi di un sistema sociale non è totale, Non essendo un sistema costruito secondo un piano prestabilito, non è possibile nemmeno agevolmente ridurlo. Le persone (e di conseguenza anche le istituzioni) agiscono “liberamente”, cioè in modo non completamente prevedibile, benchè la prevedibilità sia un requisito irrinunciabile perché il sistema economico, sociale, e anche affettivo continui a funzionare. La pressione che il sistema eserciterà sui suoi elementi sarà molto grande affinchè si comportino in modo prevedibile. La necessità di vivere in un ambiente prevedibile e di fornire un comportamento prevedibile al sistema in cui siamo inseriti è la principale forza che conforma gli elementi del sistema stesso. L’individuo (la famiglia, l’istituzione, lo stato) dovrà negoziare la propria autonomia con l’ambiente, dovrà trovare il confine tra autonomia e determinazione esterna, ovvero il suo ruolo e la sua identità (B.Swann). Il ruolo dell’autorità (e del potere) emerge a questo livello. L’autorità sorge (J.Raz) quando, per garantire il funzionamento del sistema nel suo complesso, i confini operativi, le interfacce tra gli elementi di un sistema sociale possono essere determinati da livello superiore: individuo e autorità sono al servizio del sistema stesso.
A differenza di un sistema informatico, che, essendo frutto di una costruzione, è completamente eterodiretto, in un sistema sociale la forma del sistema viene negoziata dagli elementi stessi. Per un sistema vivente si dice che questo evolve secondo leggi di selezione e adattamento: è comunque il comportamento a influenzare il successo di una forma rispetto ad un’altra. Sorge a questo punto il problema di difficile soluzione di quale sia il meccanismo con il quale i singoli elementi possano determinare l’adattamento del sistema e la sua forma. Questa domanda è centrale nella riflessione cibernetica (H. Von Foerster).
Uno degli elementi cruciali a mio avviso giace nel concetto di codice. Per comprenderlo facciamo un passo indietro, al sistema e alla sua architettura.
Il prezzo da pagare per la scomposizione in moduli è il sorgere di una barriera tra modulo e modulo, di una distanza che viene occupata dall’ambiente: cellule distinte, organi distinti, individui distinti, famiglie distinte, istituzioni, stati, ecc… I moduli devono comunicare tra loro secondo interfacce e attraverso messaggi che con l’aiuto di un codice possono riprodurre la “comprensione” tra modulo e modulo. I segni che gi elementi di un sistema si scambiano servono a riprodurre lo stato interno di un elemento in un elemento diverso, mettendoli in relazione come se fossero —funzionalmnte— lo stesso elemento.
Anche considerando la strutturazione gerarchica in strati di complessità crescente, tra strato e strato è necessaria una comunicazione formalizzata (messaggio + codice), in modo che sia possibile la strutturazione di organismi, istituzioni, sistemi di complessità superiore a partire da elementi.
Dato che all’interno di un sistema la suddivisione di elementi in grado di comunicare tra loro richiede la condivisione di un codice, ossia la sua vigenza simultanea (cioè l’uso effettivo). Il codice condiviso serve a identificare le parti funzionalmente omogenee di un sistema: posso, in altri termini, associare vari elementi di un sistema a una determinata funzione nel momento in cui tutti quegli elementi usano quel codice per comunicare tra loro. Ad esempio posso definire una nazione in base al codice vigente denominato “leggi”: in Italia vigono esclusivamente le leggi italiane, che non vigono altrove. Una istituzione è identificabile, più che in base alla sua sede, al rispetto dei codici che consentono la comunicazione tra i suoi membri (cfr la teoria istituzionalista del diritto — Santi Romano): leggi e regolamenti, gerghi, linguaggi specialistici dei gruppi sociali e professionali, il lessico famigliare, Ma anche norme sociali e leggi morali, abitudini alimentari, moneta, religione, cultura, credenze politiche, fino al “codice della vendetta barbaricina” di Pigliaru. Uno dei più importanti codici chiaramente è la condivisione della stessa lingua, ma tutti servono alla comunicazione ed allo scambio, Codici diversi possono o meno coesistere in modo più o meno conflittuale; anzi, potremmo definire il conflitto come la compresenza inconciliabile di codici diversi nello stesso territorio, popolazione, famiglia, persona, organismo: pensiamo alle minoranze etniche e linguistiche e al problema della società multietnica e pluralista. Le incompatibilità tra codici obbligano a scelte di appartenenza. Devo appartenere a una sola religione, ma posso parlare più lingue; posso condividere più culture e anche avere più di un passaporto, ma in un dato territorio vige una sola legge nazionale da rispettare. Come individuo (ma ciò vale per qualsiasi altra istituzione) sono perennemente costretto a negoziare la mia identità con l’ambiente sociale che richiede che agisca prevedibilmente in base ad un codice consistente. Cambiare codice, specie se per adottarne uno incompatibile col precedente (religione, nazionalità), è pericoloso e spesso socialmente a malapena tollerato, se non apertamente sanzionato. Politicamente, un cambiamento brusco di codice si chiama rivoluzione, e raramente è completo come vorrebbe apparire (si pensi all’apparato —e il codice— burocratico zarista sopravvissuto alla rivoluzione russa).
Quanto detto poco sopra sulla negoziazione dell’identità assume una maggiore chiarezza: l’individuo, pur determinato da un contesto sociale che lo preme ad adottare diversi codici che lo identifichino e rendano prevedibile, gode non solo di una libertà interpretativa del codice stesso,ma anche della facoltà di trasgredire a porzioni di codice non tanto ampie da rigettarlo, ma abbastanza ampie da determinarne, se la trasgressione si diffonde ad altri soggetti, la modificazione nel tempo. Si può così giustificare l’evoluzione, che raramente avviene per fratture, delle leggi, della lingua parlata e scritta, delle credenze politiche e religiose, dei gerghi, delle culture. Ed è per questo motivo che è molto pericoloso sostituire codici vivi, “eseguiti” da persone viventi, con vincoli tecnologici. Di questo aspetto, assieme al concetto di autorità di J.Raz mi sono occupato parlando di Sistemi programmati di vincoli che svuotano l’autonomia individuale e inibiscono una evoluzione critica del sistema.
Il sistema economico meriterebbe una analisi a sé: il meccanismo di regolazione dello scambio dei beni materiali basato quasi esclusivamente sul mercato i cui codici sono il prezzo, la scarsità, la qualità e la reputazione, è un codice tacitamente accettato in molte culture, ma non in tutte, e la predominanza del concetto di mercato è stato spesso contestato in quanto vengono ignorati altri meccanismi, quali quelli della solidarietà e del dono (F.Perroux, K.Polanyi).
Esistono sistemi sociali non umani, tra animali e perfino alcune piante, di cui si è scoperta la capacità di comunicare tra loro attraverso la simbiosi del loro apparato radicale con batteri. In How plants communicate using the underground information superhighway
gli autori ipotizzano come i meccanismi di comunicazione biochimica possano identificare forme di comportamento di tipo sociale, tese ad alterare l’ambiente (il suolo) in modo da favorire la propria “comunità”.
If even a small portion of the thousands of different chemicals produced by the roots of plants have effects on their neighbours, then speciesspecific interactions, natural selection, community integration, and community coevolution might proceed in different ways to those predicted by conceptual models based on resource competition.
Scendendo di livello, la condivisione di altri codici, tra cui il più importante è quello genetico, suddivide i viventi in gruppi che condividono porzioni più o meno ampie dello stesso genoma (il DNA, detto codice genetico). Da questo deriva se sono piante, animali, funghi, e che tipo di piante o animali: se pesci, rettili, mammiferi. Ed in maggior dettaglio, se primati e di razza umana, quale sarà il colore della pelle, il gruppo sanguigno e la suscettibilità a certe malattie. In base alla compatibilità genetica tra loro, gli individui potranno o meno accettare donazioni di sangue o organi, dato che il sistema immunitario determina cosa può essere ritenuto self cioè appartenente all’identità dell’organismo e cosa non può esserlo. La comunicazione tra cellule, tra sottosistemi interni ad un organismo vivente, avviene attraverso lo scambio di molecole. Il significato del codice sottostante si manifesta negli effetti biochimici. Il messaggio decodificato “correttamente” produce nel ricevente un effetto tale per cui il sistema “funziona”.
Anche per il sistema biochimico vale quanto detto per i sistemi sociali: a differenza del sistema informatico il codice non è eterodeterminato da una “intelligenza” che lo programma in partenza ma è il frutto di una evoluzione. A differenza del sistema sociale non si può attribuire l’evoluzione del sistema alla libertà di interpretazione del soggetto che “esegue” il codice, tuttavia si può ritrovare un certo grado di imprevedibilità attraverso la possibilità di mutazioni nel codice. Qui mi fermo, non avendo le competenze per approfondire i meccanismi di mutazione e la loro ripercussione sul codice e neppure essendo questo il mio scopo.
Non mi resta però che condividere l’opinione di Sebeok, per cui la semiosi è il fenomeno che distingue forme di vita da oggetti inanimati
Self-verification theory, identità e necessità di previsione Il segno è una caccia