# Base di conoscenza

Una base di conoscenza (individuata anche con il termine inglese knowledge base e con l'acronimo KB) è un tipo speciale di banca dati per la gestione della conoscenza per scopi aziendali, culturali o didattici. Essa costituisce dunque un ambiente volto a facilitare la raccolta, l'organizzazione e la distribuzione della conoscenza.

## Descrizione

Una base di conoscenza di interesse aziendale, normalmente, si propone l'esplicita conoscenza di una organizzazione, inclusa quella che può servire alla risoluzione dei problemi, e concerne articoli, rapporti, manuali per gli utenti ed altro. Una base di conoscenza dovrebbe rispettare una ben progettata struttura di classificazione, osservare (pochi) determinati formati per i contenuti e disporre di un motore di ricerca.
L'aspetto più importante di una base di conoscenza è il tipo di informazione che contiene. Una base di conoscenza che diventa un sito da dove scaricare informazioni irrilevanti vede il suo ruolo compromesso, proprio come un'informazione irrilevante. Assicurarsi che le informazioni più rilevanti ed aggiornate siano presenti in una base di conoscenza è essenziale per il suo successo, per non menzionare il fatto di avere un eccellente sistema di recupero delle informazioni (motore di ricerca).
Determinare il tipo delle informazioni e dove queste risiedono nella base di conoscenza è un'attività che viene determinata in base ai processi che supportano il sistema. Un robusto processo di creazione della struttura è la spina dorsale di una base di conoscenza di successo.

## Uso originale del termine

L'uso originale del termine base di conoscenza era per descrivere uno dei due sottosistemi di un sistema esperto. Un sistema basato sulla conoscenza consiste in una base di conoscenza che rappresenta fatti sul mondo e un ragionamento su quei fatti e utilizza regole e altre forme di logica per dedurre nuovi fatti o evidenziare incongruenze.

## Proprietà

Il termine "knowledge-base" è stato coniato per distinguere questa forma di knowledge store dal database dei termini più comune e ampiamente utilizzato. Durante gli anni '70, praticamente tutti i grandi sistemi informativi di gestione memorizzavano i propri dati in un qualche tipo di database gerarchico o relazionale. A questo punto della storia della tecnologia dell'informazione, la distinzione tra un database e una base di conoscenza era chiara e inequivocabile.
Un database aveva le seguenti proprietà:
* Dati "flat": i dati erano generalmente rappresentati in un formato tabulare con stringhe o numeri in ogni campo.
* Multi-utenti: un database convenzionale necessario per supportare più di un utente o sistema connesso agli stessi dati contemporaneamente.
* Transazioni: un requisito essenziale per un database era mantenere l'integrità e la coerenza tra i dati a cui accedevano utenti simultanei. Queste sono le cosiddette proprietà ACID: atomicità, consistenza, isolamento e durata.
* Dati di grandi dimensioni e di lunga durata: un database aziendale doveva supportare non solo migliaia ma centinaia di migliaia o più righe di dati. Un database di questo tipo normalmente necessario per persistere oltre gli usi specifici di ogni singolo programma; aveva bisogno di memorizzare i dati per anni e decenni piuttosto che per la durata di un programma.
I primi sistemi basati sulla conoscenza avevano esigenze di dati che erano l'opposto di questi requisiti di database. Un sistema esperto richiede dati strutturati. Non solo tabelle con numeri e stringhe, ma puntatori ad altri oggetti che a loro volta hanno puntatori aggiuntivi. La rappresentazione ideale per una base di conoscenza è un modello a oggetti (spesso chiamato ontologia nella letteratura sull'intelligenza artificiale) con classi, sottoclassi e istanze.
I primi sistemi esperti avevano anche poca necessità di più utenti o la complessità derivante dalla richiesta di proprietà transazionali sui dati. I dati per i primi sistemi esperti sono stati utilizzati per arrivare a una risposta specifica, come una diagnosi medica, il progetto di una molecola o una risposta a un'emergenza. Una volta conosciuta la soluzione al problema, non c'era una richiesta critica per archiviare grandi quantità di dati in un archivio di memoria permanente. Un'affermazione più precisa sarebbe che, date le tecnologie disponibili, i ricercatori sono scesi a compromessi e hanno fatto a meno di queste capacità perché si sono resi conto che erano oltre ciò che ci si poteva aspettare e potevano sviluppare soluzioni utili a problemi non banali senza di loro. Fin dall'inizio, i ricercatori più astuti si sono resi conto dei potenziali vantaggi di essere in grado di archiviare, analizzare e riutilizzare la conoscenza. Ad esempio, vedere la discussione sulla memoria aziendale nel primo lavoro del programma Knowledge-Based Software Assistant di Cordell Green.
Anche i requisiti di volume erano diversi per una knowledge base rispetto a un database convenzionale. La base di conoscenza necessaria per conoscere i fatti sul mondo. Ad esempio, per rappresentare l'affermazione che "Tutti gli esseri umani sono mortali". Un database in genere non potrebbe rappresentare questa conoscenza generale, ma invece avrebbe bisogno di memorizzare informazioni su migliaia di tabelle che rappresentavano informazioni su esseri umani specifici. Rappresentare che tutti gli umani sono mortali ed essere in grado di ragionare su un dato umano che sono mortali è il lavoro di una base di conoscenza. Rappresentare che George, Mary, Mike,... e centinaia di migliaia di altri clienti sono tutti esseri umani con determinati età, sesso, indirizzo, ecc., è il lavoro per un database.
Quando i sistemi esperti sono passati dall'essere prototipi a sistemi distribuiti in ambienti aziendali, i requisiti per l'archiviazione dei dati hanno iniziato rapidamente a sovrapporsi ai requisiti del database standard per più utenti distribuiti con supporto per le transazioni. Inizialmente, la domanda poteva essere vista in due mercati diversi ma competitivi. Dalle comunità AI e Object-Oriented, sono emersi database orientati agli oggetti come Versant. Si trattava di sistemi progettati da zero per supportare funzionalità orientate agli oggetti, ma anche per supportare servizi di database standard. D'altra parte, i grandi fornitori di database come Oracle hanno aggiunto funzionalità ai loro prodotti che hanno fornito supporto per i requisiti della base di conoscenza come le relazioni e le regole di classe-sottoclasse.

## Internet come base di conoscenza

La successiva evoluzione del termine knowledge base è stata Internet. Con l'avvento di Internet, documenti, ipertesti e supporto multimediale erano ormai fondamentali per qualsiasi database aziendale. Non era più sufficiente supportare tabelle di dati di grandi dimensioni o oggetti relativamente piccoli che risiedevano principalmente nella memoria del computer. Il supporto per i siti Web aziendali richiedeva persistenza e transazioni per i documenti. Questo ha creato una disciplina completamente nuova nota come Web Content Management.
L'altro driver per il supporto dei documenti è stato l'ascesa di fornitori di gestione della conoscenza come Lotus Notes. La gestione della conoscenza in realtà ha preceduto Internet, ma con Internet c'era una grande sinergia tra le due aree. I prodotti di gestione della conoscenza hanno adottato il termine "base di conoscenza" per descrivere i propri archivi, ma il significato aveva una sottile differenza. Nel caso di precedenti sistemi basati sulla conoscenza, la conoscenza era principalmente per l'uso di un sistema automatizzato, per ragionare e trarre conclusioni sul mondo. Con i prodotti di gestione della conoscenza, essa era destinata principalmente agli esseri umani, ad esempio per fungere da archivio di manuali, procedure, politiche, migliori pratiche, progetti e codici riutilizzabili, ecc. In entrambi i casi le distinzioni tra usi e tipi di sistemi erano mal definito.