Personal tools
Document Actions

La filosofia di sviluppo della piattaforma Octapy

by root last modified 2007-06-07 17:25

La filosofia di sviluppo della piattaforma Octapy

Centrale alla metodologia di sviluppo della piattaforma Octapy è la nozione di documento, dove un documento è un oggetto virtuale, con una rappresentazione digitale, in cui sono codificate informazioni interpretabili da un agente umano o software. Il ruolo del documento è quello di contenitore e la sua struttura è tale da garantire identificabilità, leggibilità e ricuperabilità sia di se stesso che delle informazioni che contiene. A partire dalla nozione di documento si può costruire la nozione di Deposito di Documenti, cioè di un oggetto che, alla stessa stregua del documento, ha sia un contenuto sia una struttura. Un aspetto interessante è che la struttura di un simile Deposito di Documenti è rappresentabile esso stesso mediante documenti.

Uno degli aspetti più interessanti della nozione di documento è da attribuire al fatto che essa convoglia più tipologie di informazioni che possono essere oggi rappresentate in modo uniforme utilizzando le tecnologie digitali. Questi tipi di informazioni sono: il contenuto, cioè la rappresentazione di ciò che si vuol comunicare nel formato del media prescelto; la presentazione (formattazione), cioè le informazioni riguardanti le modalità potenziali di fruizione; la struttura, che specifica la tipologia di documento evidenziando la struttura del contenuto, eventualmente non lineare; i metadati, cioè le annotazioni che facilitano l’utilizzo del contenuto e ne consentono di catturare alcuni aspetti semantici, aspetti che si possono, ad esempio, organizzare in una struttura tassonomica più o meno ricca, oppure con ontologie più o meno complesse e sofisticate. Scopo di queste informazioni strutturali è: facilitare il processo di virtualizzazione del documento; la cooperazione nel processo di ricerca necessaria per l’implementazione delle funzionalità richieste per verificare il criterio della disponibilità.

Documento digitale e spazio globale dell’informazione

L’organizzazione concettuale delle informazioni (conoscenze) mediante la nozione di documento rende possibile fornire agli utenti non solo gli oggetti che rappresentano l’informazione ma anche i contesti d’interpretazione degli stessi contenuti (conoscenze). Sistemi che utilizzano questo tipo di organizzazione sono da considerare esempi di sistemi software in cui i processi di virtualizzazione e ipertestualizzazione sono realizzabili e dove l’utente svolge il ruolo di soggetto attivo e di mediazione del processo di comprensione.

Dal punto di vista delle tecnologie informatiche, i sistemi informativi costruiti a partire dalla nozione di documento richiedono la disponibilità delle funzionalità necessarie ad organizzare le informazioni (conoscenze) in strutture di rappresentazione di tipo gerarchico. Per contenere la complessità organizzativa e gestionale di queste strutture gerarchiche è necessario definire la granularità delle informazioni ed in modo chiaro ed esplicito i domini delle informazioni rappresentate. In primo luogo, si deve definire il dominio dell’elemento di base della gerarchia che, quindi, è gestito direttamente come una struttura atomica. A questa struttura elementare si deve associare una rappresentazione digitale, a cui, a sua volta, associare metodi per la creazione, reperimento ed accesso. In altre parole, si debbono definire ed associare i media di rappresentazione. Successivamente, si debbono definire i criteri di aggregazione nonché le rispettive strutture di rappresentazione ed interpretazione. Questo processo di aggregazione può essere, in linea teorica, ripetuto un numero di volte arbitrario. Generalmente, nella pratica dei sistemi informativi, questo processo non è ripetuto più di due volte e genera, rispettivamente, sistemi di deposito documentale e sistemi distribuiti di deposito documentale.

Per raccordare in modo controllato questi livelli di strutturazione è necessario fare ricorso a informazioni che svolgono il ruolo di collante che facilitino la gestione sia delle informazioni contenute sia del sistema contenitore. In altre parole, è necessario individuare e disporre di “informazioni a proposito di …”. È evidente che questa ultima tipologia di informazioni deve essere individuata e rappresentata in modo da essere elaborabile dai sistemi (agenti) software. In generale le informazioni che parlano a proposito di informazioni vengono dette meta-informazioni e nella loro forma più semplice vengono definite come metadati e rappresentate come coppie nome-valore, cioè nome del metadato, valore del metadato.

L’insieme dei metadati associati ad un documento, nell’accezione qui utilizzata, è detto essere uno Schema di Metadati ed è formato da un numero limitato di elementi, per i quali è fissato il nome e il significato, la cui scelta è dettata da un compromesso tra il migliorare la ricerca delle informazioni a cui si riferiscono ed il minimizzare lo sforzo relativo alla loro gestione. Dove una distinzione articolata delle tipologie e del ruolo svolto dai metadati è: descrittivi: utilizzati per la ricerca di documenti (resource discovery); strutturali: utilizzati per descrivere la struttura delle risorse a cui si riferiscono i metadati descrittivi, e i rispettivi legami; amministrativi: utilizzati per la gestione delle collezioni di documenti e il controllo degli accessi.

Appare chiaro che l’utilizzo degli schemi di metadati non risponde a pieno all’esigenza di codificare conoscenze che siano comprensibili da una macchina, cioè, in modo automatico. A questo scopo è necessario codificare anche il significato inteso dei metadati, per cui si debbono utilizzare le metodologie di rappresentazione della conoscenza che consentano di catturare la semantica dei metadati. Negli ultimi anni, in questa direzione, si sta consolidando l’utilizzo della metodologia delle ontologie, dove per ontologia si intende una concettualizzazione condivisa di un dominio di conoscenza.

La strutturazione semantica ottenibile con le ontologie differisce dalla composizione dell’informazione superficiale e di formattazione quale è quella gestita, ad esempio, dai database relazionali. Con i database, infatti, l’intero contenuto semantico è virtualmente catturato nella logica dell’applicazione, mentre le ontologie forniscono una specifica oggettiva del dominio di informazione rappresentando un accordo consensuale sui concetti e sulle relazioni caratterizzanti il modo in cui è espressa la conoscenza in un dato domino. Aspetti questi ancora descrivibili mediante l’utilizzo della nozione di documento.

Un sistema informativo costruito a partire dalla nozione di documento consente, in definitiva, di rappresenta sia il contenuto esplicito di informazioni del sistema che si intende realizzare, sia le informazioni a proposito del sistema, nonché le informazioni di raccordo tra i suoi livelli organizzativi, dove queste ultime due tipologie sono definite in modo che siano, il più possibile, elaborabili ed interpretabili automaticamente. Diremo un simile sistema informativo essere un Sistema Informativo Documentale.

Con l’affermarsi delle metodologie e tecnologie del Web emerge, inoltre, l’importanza di individuare e realizzare legami (relazioni) con documenti digitali dei depositi di documenti presenti in rete, cioè la necessità di definire una nozione di spazio globale dell’informazione in cui integrare ogni documento direttamente in esso. Per includere e gestire le informazioni distribuite sul web è necessario che il sistema informativo sia in grado di cooperare, in modo automatico e trasparente, con le diverse sorgenti di informazioni che non possono più essere assunte omogenee sia per struttura che per i contenuti. In altre parole il sistema deve dialogare con gli altri sistemi fornitori di informazioni.

Un primo passo nel realizzare un dialogo, tra le applicazioni, non ambiguo consiste nel definire ed implementare, ad esempio, un vocabolario condiviso (tesauro), consistente nella definizione di termini, ciascuno interpretato come una rappresentazione concettuale ed espresso nella forma di nome o di frase nominale. Dove i termini sono percepiti dallo sviluppatore come denotanti collettivamente un insieme di oggetti (istanze dei concetti) ottenuti non solo con un processo formale di classificazione ma anche attraverso un accordo comune raggiunto dalla comunità di utenti. In questa prospettiva, l’interpretazione di un termine di un tesauro è l’insieme di oggetti del mondo a cui si riferisce il dominio del discorso dell’applicazione e rappresenta un insieme fissato di relazioni semantiche definite sull’insieme dei suoi termini.

Un’altra metodologia, emergente per la integrazione di sistemi informativi e distribuiti, è quella utilizzante la nozione di ontologia. Il termine ontologia è utilizzato in molte discipline dalla filosofia all’ingegneria della conoscenza. In senso filosofico, ci si riferisce ad un’ontologia come ad un sistema particolare di categorie che danno conto di una data visione del mondo, e in quanto tale non dipende dal particolare linguaggio utilizzato per descriverle. In Intelligenza Artificiale [14] l’uso prevalente della nozione di ontologia si riferisce ad artefatti ingegneristici costituiti da uno specifico vocabolario, utilizzato per descrivere una data realtà, a cui si aggiunge un insieme esplicito di assunzioni riguardanti il significato denotato dalle parole del vocabolario. Le ontologie riflettono una comprensione comune della semantica del dominio del discorso e possono essere utilizzate per condividere e scambiare informazioni fra sorgenti anche eterogenee. Nei casi più semplici (ad esempio un tesauro) descrivono una gerarchia di concetti correlati da relazioni di sussunzione, mentre nei casi più sofisticati contengono opportune assiomatiche per esprimere relazioni fra i concetti e/o esprimere i necessari vincoli sulle interpretazioni denotate.

Le ontologie ed i tesauri hanno semantiche complementari, dove le ontologie definiscono concetti e proprietà di alto livello in un dominio mentre i tesauri sono tassonomie di classificazione profonde ed ampie che introducono precisi vocabolari per le nozioni incontrate in un particolare dominio.

Sistemi Informativi Documentali Cooperanti e Distribuiti

Un sistema informativo consiste, dal punto di vista realizzativo, di un ampio insieme di componenti software tra loro connesse in una complessa rete di interazioni. Componenti raggruppabili in tre ampie categorie: a) le interfacce utenti, che rappresentano ed implementano le interazioni degli utenti del sistema nella sua interezza; b) i programmi applicativi, che implementano le macrofunzionalità esterne ed interne del sistema; c) i sistemi di base per la persistenza delle informazioni che implementano la funzionalità elementari di memoria a partire da meccanismi di base di persistenza quali archivi, database e basi di conoscenze.

Le componenti software sono tra loro interconnesse in un sistema a rete in modo da cooperare per svolgere compiti concreti e ben definiti. Per la cooperazione è necessario sia individuare il partizionamento delle funzionalità delle componenti, a cui corrisponderà la logica della cooperazione sia le modalità con cui debbono scambiarsi informazioni, cioè comunicare in accordo ad un protocollo di interazione. La comunicazione oltre a svolgere un ruolo centrale nel modello di computazione richiede che lo scambio di messaggi deve essere univocamente interpretabile, così che il comportamento globale del sistema sia determinato, cioè il dialogo tra le componenti dovrà essere non ambiguo.

Nella progettazione di un Sistema Informativo Documentale, così come delineato, è necessario affrontare ed individuare soluzioni efficienti ed efficaci per due ampie aree: rappresentazione dei contenuti e architettura software del sistema.

Un sistema informativo può essere considerato come un sistema computazionale dove tutte le computazioni e scambi di informazioni sono di tipo simbolico. In ogni sistema informativo simbolico si assegnano significati ai simboli utilizzati in accordo ad una particolare concezione del mondo, concezione che può essere efficacemente rappresentata utilizzando le nozioni inerenti le metodologie della rappresentazione delle conoscenze.

Per quanto riguarda la rappresentazione dei contenuti si deve osservare che l’utilizzo delle ontologie nella progettazione e sviluppo di sistemi informativi non è scevro di problemi, in particolare per quanto riguarda gli aspetti della complessità computazionale, per cui è necessario utilizzare anche in questo caso una strategia di scomposizione-ricomposizione in livelli, così da contenere la complessità all’interno di limiti accettabili nell’utilizzo concreto dei sistemi informativi.

L’architettura software del sistema, infatti, deve consentire di presentare il sistema come una piattaforma con cui orchestrare, integrando e facendo cooperare, diversi sottosistemi specializzati nel trattamento della gerarchia di strutture che rappresentano le informazioni (organizzate in documenti), che poi il sistema, nella sua interezza, deve trattare. Quindi, da un lato il sistema deve mimare la gerarchia organizzativa delle informazioni e dall’altro consentire il montaggio e smontaggio di pezzi software.

L’attuale ingegneria del software propone diversi modelli architetturali ciascuno dei quali, però, può essere utilizzato solo in modo limitato, e quindi deve essere possibile utilizzarne più di uno e far sì che i sistemi che li utilizzano, dialoghino tra loro. A questo scopo una prima divisione è effettuata sulla tipologia di funzionalità da realizzare rispetto alla platea di utenti attesi. Per cui abbiamo che, per gli utenti esterni del sistema, cioè quelli interessati ai contenuti gestiti, si utilizzano le tecnologie prevalenti del web, cioè l’utente interagendo percepisce il sistema come un sistema orientato al web. Per gli utenti interni, cioè gli utenti interessati ad organizzare i contenuti, si può scegliere una strategia di progetto che vede un application server svolgere un ruolo determinante nella orchestrazione delle interazioni e cooperazioni fra sottosistemi specializzati. Infine, per lo sviluppatore di sistemi si può adottare una metodologia di sviluppo in componenti, così da garantire una separazione ed uno sviluppo quanto più indipendente possibile delle stesse componenti.

« September 2010 »
Su Mo Tu We Th Fr Sa
1234
567891011
12131415161718
19202122232425
2627282930
 

Powered by Plone CMS, the Open Source Content Management System

©Copyright Istituto di Cibernetica "E.Caianiello" - ©Copyright Consiglio Nazionale delle Ricerche
Octapy, Octapy CMS, OMS, Octapymus sono copyright del CNR - Tutti i nomi e i marchi citati sono copyright dei rispettivi autori

This site conforms to the following standards: