Di cosa stiamo parlando?
La Rappresentazione della Conoscenza (Knowledge Representation) è una branca dell’intelligenza artificiale che studia il modo in cui avviene il ragionamento umano e si preoccupa di definire dei simbolismi o dei linguaggi che permettano di formalizzare la conoscenza al fine di renderla comprensibile alle macchine per potervi fare dei ragionamenti automatici (inferendo le informazioni presenti) ed estrarre così nuova conoscenza.
Quindi un punto chiave della rappresentazione della conoscenza è la definizione di linguaggi che siano sufficientemente espressivi da permettere di descrivere il dominio di interesse ma non troppo ricchi di espressività, in quanto richiederebbero troppe risorse e/o troppo tempo per applicare i meccanismi inferenziali.
In linea generale, i linguaggi di rappresentazione della conoscenza forniscono sia una serie di costrutti per definire la sintassi del dominio di interesse (le regole sulle quali costruire delle asserzioni accettabili), sia una serie di operatori (quantificatori, operatori modali, etc.) che permettano di dare un significato, un valore di verità alle asserzioni rispetto al modello di riferimento.
Attraverso il linguaggio scelto si andranno ad effettuare una serie di asserzioni sul mondo, che andranno insieme a costituire una Base di Conoscenza (KB Knowledge Base). È inoltre importante che il linguaggio scelto per fare le asserzioni sia anche in grado di operare sulla KB per estrarre nuova conoscenza e per aggiungerne di nuova.
Quali linguaggi utilizzeremo?
Utilizzeremo i Linguaggi Descrittivi, o Logiche Descrittive (DL), che sono attualmente i linguaggi più diffusi per la rappresentazione della conoscenza in quanto permettono di rappresentare in maniera semplice e rigorosa informazioni complesse e permettono altresì, attraverso il ragionamento, di distinguere la conoscenza implicitamente rappresentata, dalla conoscenza che è contenuta esplicitamente nella base di conoscenza.
Le logiche descrittive fanno uso di modelli di inferenza che si presentano in molte applicazioni dei sistemi intelligenti di elaborazione dell’informazione e che sono usati dagli esseri umani per strutturare e capire il mondo: la classificazione dei concetti e degli individui.
Le DL sono dotate di una serie di costrutti, un insieme di primitive ben formalizzate che portano alla definizione di tipi strutturali primitivi (concetti e ruoli) e di operazioni necessarie alla creazione di strutture (specializzazioni, restrizioni, differenziazioni).
Quindi l’elemento principale di queste logiche usato per rappresentare la conoscenza è il concetto; e possiamo subito effettuare una distinzione fondamentale tra 2 tipi di concetto:
- Concetto primitivo, che rappresenta un elemento di base del dominio che non si riesce a descrivere partendo da altri concetti del dominio. Inoltre un concetto primitivo specifica quelli che sono i requisiti necessari affinché un altro concetto del dominio possa appartenere a tale tipo.
- Concetto definito, che rappresenta un elemento che viene espresso sulla base dei concetti primitivi. Il concetto definito specifica quali sono le condizioni necessarie e sufficienti per rappresentare un termine del linguaggio.
Altra nozione importante è quella di ruolo (role o property) di un concetto che è, molto semplicemente, una relazione che descrive il legame tra i concetti e tra le istanze dei tipi definiti dai concetti.
Un esempio di concetto primitivo può essere quello di Prodotto all’interno di un dominio dei prodotti in vendita su una libreria on-line (vedi articolo Realizzazione di una Ontologia). Il concetto di Libro, invece, è un concetto definito e può essere espresso come segue:
Libro ≡ Prodotto ∩ ∀haFormato.Cartaceo
Questa formula – che sarà più chiara dopo aver visto i costrutti del linguaggio ALN – sta ad indicare che il concetto di Libro è espresso a partire dal concetto di Prodotto grazie all’uso del ruolo haFormato e del concetto Cartaceo.
Le caratteristiche chiave dei logiche descrittive risiedono proprio nelle costruzioni usate per la stabilizzazione dei rapporti fra i concetti.
Qual è la struttura di un Sistema basato sulle Logiche Descrittive?
Un Sistema di Rappresentazione della Conoscenza (KRS) basato sulla DL fornisce i mezzi per installare le basi di conoscenza, per ragionare circa il loro contenuti e per manipolarli.
Detto questo, diamo un’occhiata alle figure per capire meglio come è fatta l’architettura di un KRS e come funziona (clikka sulle immagini per ingrandire):
Due miei schemi che secondo me ben rappresentano
l’Architettura di un Sistema per la Rappresentazione della Conoscenza DL-based
Dalle prime due figure si evince chiaramente il ruolo delle Logiche Descrittive: esse sono alla base del Sistema, sono il suo fulcro centrale, sulla base del quale vengono costruiti i servizi veri e propri.
Vediamo in dettaglio gli altri componenti di un KRS:
- La TBox (Terminological Box) introduce la terminologia, cioè, il vocabolario di un domino di applicazione. Rappresenta la sintassi del dominio di interesse, l’Ontologia. In essa infatti sono contenuti i concetti del dominio e le relazioni che legano tali concetti.
La TBox rappresenta un tipo di conoscenza che viene comunemente definita intensionale, nel senso che essa è indipendente dal tempo e dalle circostanze.
- La ABox (Assertional Box) contiene la popolazione del dominio, ovvero le asserzioni circa le istanze (gli individui) dei concetti definiti nella TBox.
La conoscenza rappresentata dalla ABox viene invece definita estensionale, nel senso che essa dipende dal tempo e dalle circostanze, in quanto la popolazione del dominio è in continuo mutamento.
Inoltre, la semantica della ABox non necessita la conoscenza completa della realtà di interesse, ovvero rappresenta un semantic open-world (contrapposto al semantic close-world dei database tradizionali); questo significa che non è necessaria una formalizzazione completa della conoscenza, ma è sufficiente che essa sia compatibile con una situazione di conoscenza parziale.
- Servizi di Ragionamento (Reasoning): sono i servizi che permettono di dedurre nuova conoscenza a partire a da quella esplicitata nella Base di Conoscenza (Knowledge Base – KB), la quale altro non è che l’insieme di TBox e ABox.
Ogni KRS offre almeno due servizi di ragionamento, che possiamo definire fondamentali:- Sussunzione (Subsumption);
- Soddisfacibilità (Satisfiability).
Il servizio di sussunzione è un servizio che possiamo definire binario, in quanto opera su una coppia di concetti per volta, e ha come obiettivo quello di verificare che un concetto (sussuntore) è più generico di un altro (sussunto).
Ad esempio, tornando sempre alla nostra ontologia, la sussunzione controlla che il concetto di Prodotto sia più generico del concetto di Libro.Il servizio di soddisfacibilità è un servizio che serve a verificare che un concetto ammetta almeno un individuo; ovvero, riconducendolo alla sussunzione (o, meglio, alla non-sussunzione), si tratta di verificare che il sussunto di un concetto sia proprio il concetto vuoto.
Vediamo ora un altro schema classico che rappresenta l’architettura di un sistema di rappresentazione della conoscenza:
Tra i tanti linguaggi descrittivi, quale usiamo?
Tra i tanti linguaggi descrittivi entreremo nel merito degli Attributive Language with Number restrictions (ALN), che analizzeremo a fondo nel prossimo articolo.
Antonio Cicirelli
Se il post ti è piaciuto, ti ha incuriosito o se non ha soddisfatto appieno la tua voglia di conoscenza lasciaci un commento, ci sarà d'aiuto per andare avanti e migliorare oppure sottoscrivi i feed e ricevi i prossimi articoli nel tuo RSS reader.
Comments
Una piccola correzione: nell’ultima immagine suppongo volessi dire “Servizi Reasoing” e non “Sevizi”
Invece nelle immagini da te create per spiegare la struttura, suggerirei di utilizzare gli stessi colori per i vari blocchi: ad es. il blocco “Reasoning” è rosso in tutti e due, mentre gli altri no. Secondo me risulterebbe più chiaro ed immediato.
Grazie mille per le osservazioni e per i consigli!
Ho corretto l’errore e ho provato a modificare i colori. Spero che ora vada meglio…
Per quanto riguarda la licenza, ho aggiornato anche questo (sempre grazie a te), e come puoi vedere a fondo pagina tutti i contenuti sono distribuiti sotto una licenza Creative Commons (per i dettagli sulla licenza segui il link).
Una spiegazione chiara e immediata, complimenti!
La mia professoressa di Rappresentazione della Conoscenza dovrebbe imparare molto da te su come spiegare questi concetti.
Una domanda: i tuoi articoli sono rilasciati sotto una qualche licenza tipo Creative Commons?
Grazie infinite in ogni caso.