Upload
duongkhuong
View
213
Download
0
Embed Size (px)
Citation preview
UNIVERSITÀ DEGLI STUDI DI TORINOScuola di scienze della natura
Corso di Laurea in Informatica
E S T E N S I O N E D I U N S I S T E M A I B R I D O P E RL A R A P P R E S E N TA Z I O N E D E L L A
C O N O S C E N Z A E D I N T E G R A Z I O N EN E L L’ A R C H I T E T T U R A C O G N I T I VA A C T- R
Tesi di Laurea Magistrale
Anno Accademico 2013/2014
Relatore: Candidato:Daniele Radicioni Valentina Rho
Correlatore:Antonio Lieto
R I N G R A Z I A M E N T I
E’ difficile ringraziare in una manciata di righe coloro che direttamente o
indirettamente mi hanno accompagnata fino alla scrittura di queste paro-
le, quindi perdonate la necessaria sinteticità e le dimenticanze non volute.
Grazie al Prof. Daniele Radicioni e al Dott. Antonio Lieto, per la
grande pazienza, motivazione e disponibilità durante tutta la nostra
collaborazione.
Grazie ai miei genitori e a mio fratello, delle guide fondamentali per non
perdere la via, e a tutta la mia famiglia, che è sempre stata presente nel
momento del bisogno e ad ogni evento importante della mia vita.
Grazie a Matteo, senza cui sarei semplicemente persa.
Grazie a Cinzia, Rumky, Arianna e Claudia, amiche insostituibili e
motivatrici instancabili.
Grazie a Pise, Gian, Dani, Tosi, Viglia, Jack, Flavio, Matti e a tutti coloro
che hanno condiviso con me risate in aula studio, pranzi deliranti, ansie
di aver ansia, sessioni estive, acquisti tecnologici, viaggi all’Apple Store,
relazioni chilometriche, progetti infiniti, mattinate assonnate e panini
giganti.
Un ringraziamento particolare, infine, va alla Fondazione Pezzetti-
Sacco, che mi ha supportata durante tutto il periodo universitario e che
dedica la propria esistenza ai ragazzi.
Non sono mai stata brava con le parole, ma il mio ringraziamento
è sincero: grazie di esserci ed esserci stati.
v
A B S T R A C T
In questa tesi viene presentato il sistema Dual-PECCS (Dual Prototypes
and Exemplars-based Conceptual Categorization System) e la sua inte-
grazione all’interno dell’architettura cognitiva ACT-R. Dual-PECCS è un
sistema ibrido per la rappresentazione della conoscenza che nasce con
l’obiettivo di estendere le capacità dei sistemi di rappresentazione attual-
mente utilizzati in task cognitivi (e.g. task di categorizzazione). Il sistema
si basa sulla dual process theory e sull’ipotesi dei proxytipi eterogenei.
La sua prima implementazione è stata qui estesa introducendo le rap-
presentazioni basate su esemplari e successivamente integrando l’intera
pipeline all’interno dell’architettura cognitiva ACT-R. Il sistema è stato,
infine, valutato in un task di categorizzazione, i cui risultati suggeriscono
che questo approccio possa effettivamente rivelarsi utile per estendere gli
attuali sistemi di rappresentazione.
vii
I N D I C E
1 introduzione 1
2 la rappresentazione dei concetti 5
2.1 Teorie dei concetti . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 La teoria classica . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 Le somiglianze di famiglia . . . . . . . . . . . . . . . 7
2.1.3 Rosch e la teoria dei prototipi . . . . . . . . . . . . . . 7
2.1.4 La teoria degli esemplari . . . . . . . . . . . . . . . . 8
2.1.5 I proxytypes . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Paradigmi di rappresentazione della conoscenza . . . . . . . 10
2.2.1 Approcci simbolici . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Approcci subsimbolici . . . . . . . . . . . . . . . . . . 12
2.2.3 Il livello concettuale e gli spazi concettuali . . . . . . 13
2.3 Dual process theories . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Ipotesi di eterogeneità . . . . . . . . . . . . . . . . . . . . . . 16
3 le architetture cognitive e act-r 19
3.1 Introduzione alle architetture cognitive . . . . . . . . . . . . 19
3.2 L’architettura di ACT-R . . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 La suddivisione della memoria . . . . . . . . . . . . . 22
3.2.2 L’interazione con i buffer . . . . . . . . . . . . . . . . 24
3.2.3 L’organizzazione in moduli . . . . . . . . . . . . . . . 25
3.3 Le componenti subsimboliche di ACT-R . . . . . . . . . . . . 28
3.3.1 Valore di attivazione dei chunk . . . . . . . . . . . . . 28
3.3.2 Utilità delle produzioni . . . . . . . . . . . . . . . . . 33
3.4 L’ambiente di sviluppo e gli esperimenti . . . . . . . . . . . 34
3.5 Ipotesi di mapping con il cervello . . . . . . . . . . . . . . . 35
3.6 Java ACT-R e ACT-R 6.1 . . . . . . . . . . . . . . . . . . . . . 37
4 il sistema e l’integrazione con act-r 41
ix
x indice
4.1 Il framework teorico . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.1 L’ipotesi dei proxytypes eterogenei . . . . . . . . . . . 41
4.1.2 L’ipotesi di dualità . . . . . . . . . . . . . . . . . . . . 42
4.2 Il sistema S1-S2 e la pipeline . . . . . . . . . . . . . . . . . . . 43
4.2.1 Il sottosistema S1 . . . . . . . . . . . . . . . . . . . . . 48
4.2.2 Il formato di S1 . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 Il sottosistema S2 . . . . . . . . . . . . . . . . . . . . . 53
4.2.4 Lo step di Information Extraction . . . . . . . . . . . 54
4.3 Estensione di S1-S2: il sistema Dual-PECCS . . . . . . . . . 55
4.3.1 Introduzione degli esemplari . . . . . . . . . . . . . . 55
4.3.2 Collegamento tra Wordnet e OpenCyc . . . . . . . . . 60
4.4 Integrazione di Dual-PECCS in ACT-R . . . . . . . . . . . . 62
4.4.1 Studio di fattibilità e lavori correlati . . . . . . . . . . 63
4.4.2 Proxytypes in ACT-R . . . . . . . . . . . . . . . . . . . 64
4.4.3 Funzionalità della declarative memory estesa . . . . . . 67
4.4.4 Il processo cognitivo . . . . . . . . . . . . . . . . . . . 72
4.4.5 Attivazione dei nuovi chunk . . . . . . . . . . . . . . 73
4.4.6 Descrizione tecnica dell’implementazione . . . . . . . 77
5 sperimentazione 81
5.1 Esperimenti passati . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Esperimento con Dual-PECCS . . . . . . . . . . . . . . . . . 83
5.3 Test con algoritmo non esaustivo . . . . . . . . . . . . . . . . 87
6 conclusioni e sviluppi futuri 89
a risultati della sperimentazione 95
bibliografia 107
E L E N C O D E L L E F I G U R E
Figura 1 Qual’è la parola nascosta dalle macchie d’inchiostro? 13
Figura 2 Uno spazio concettuale per i colori . . . . . . . . . . 14
Figura 3 Schema ad alto livello di una rappresentazione
eterogenea. . . . . . . . . . . . . . . . . . . . . . . . . 17
Figura 4 Struttura dell’architettura ACT-R . . . . . . . . . . . 22
Figura 5 Spiegazione del meccanismo di spreading activa-
tion in ACT-R. . . . . . . . . . . . . . . . . . . . . . . 32
Figura 6 Brain mapping hypothesis . . . . . . . . . . . . . . . 36
Figura 7 Schema ad alto livello della teoria dei proxytypes
eterogenei . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 8 Architettura della base di conoscenza . . . . . . . . 44
Figura 9 Esempio di rappresentazione eterogenea del
concetto tigre . . . . . . . . . . . . . . . . . . . . . . . 56
Figura 10 Identificazione delle zone di memoria in ACT-R . . 65
Figura 11 La pipeline di categorizzazione usata durante gli
esperimenti . . . . . . . . . . . . . . . . . . . . . . . . 82
xi
E L E N C O D E L L E TA B E L L E
Tabella 1 Esempio di classifica generata dal sistema S1. . . . . 47
Tabella 2 Conteggi relativi al collegamento automatico tra
Cyc e WordNet . . . . . . . . . . . . . . . . . . . . . 62
Tabella 3 Risultati degli esperimenti passati. . . . . . . . . . . 83
Tabella 4 Esempio di stimoli per gli esperimenti su Dual-
PECCS. . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Tabella 5 Tassi di accuratezza ottenuti dalle metriche
CC-acc e P-acc . . . . . . . . . . . . . . . . . . . . . 86
Tabella 6 Analisi degli errori di proxyficazione (metrica P-acc). 86
Tabella 7 Tassi di accuratezza ottenuti dalle metriche
CC-acc e P-acc con l’algoritmo non esaustivo. . . . 87
Tabella 8 Analisi degli errori di proxyficazione (metrica P-
acc) con l’algoritmo non esaustivo. . . . . . . . . . . 87
Tabella 9 Risultati dei test senza utilizzo dello step di
information extraction. . . . . . . . . . . . . . . . . . 96
Tabella 10 Risultati dei test senza utilizzo dello step di
information extraction. . . . . . . . . . . . . . . . . . 101
xii
1I N T R O D U Z I O N E
Without concepts, there would be no thoughts. Concepts are the basic
timber of our mental lives. It is no wonder, then, that they have attracted a
great deal of attention. Attention, but not consensus. The nature and origin
of concepts remain matters of considerable controversy.
— Jesse J. Prinz
Come affermato da J. Prinz in Furnishing the mind [37] i concetti sono
una parte fondamentale dello studio della mente degli esseri umani. Nel
tempo, sono stati quindi esaminati sotto molti punti di vista, dando vita
a teorie spesso contrapposte tra di loro. Fino agli anni 70 gli studi sulla
rappresentazione dei concetti non si sono discostati molto dalla cosiddet-
ta rappresentazione classica, secondo la quale un concetto è definito da un
insieme di condizioni necessarie e sufficienti. I primi problemi in questo
ambito sono nati con la scoperta che la maggior parte dei concetti non so-
no definibili in modo classico, ma sono basati su informazioni tipiche o di
senso comune. Ad oggi la rappresentazione e il ragionamento su concetti
di senso comune sono considerati dei problemi aperti nello studio della
rappresentazione della conoscenza.
Nell’ambito delle Scienze Cognitive sono stati ampiamente studiati
dei modelli per il ragionamento basato su tipicalità (ad esempio la teoria
dei prototipi o degli esemplari), mentre al contrario, molti dei più recen-
ti sistemi di rappresentazione della conoscenza orientati ai concetti (ne
sono un esempio le ontologie formali) non consentono la rappresenta-
1
2 introduzione
zione di tratti tipici o forme di ragionamento non monotòno, preferendo
semantiche più rigorose e sistemi di ragionamento più efficienti.
Lo scopo del progetto S1-S2 (successivamente denominato Dual-
PECCS) è proprio quello di trovare un modo per estendere le capacità
di rappresentazione e reasoning dei frameworks tradizionali basati su on-
tologie, in modo da permettere la rappresentazione e il ragionamento ba-
sato su tipicalità [20]. Il framework teorico che descrive le fondamenta del
sistema Dual-PECCS è fondato sull’integrazione di più teorie relative a
diversi aspetti della cognizione e della rappresentazione dei concetti: dal
punto di vista rappresentazionale il sistema Dual-PECCS si basa sull’i-
potesi di rappresentazione eterogenea dei concetti, inizialmente facendo
uso di una combinazione di informazioni prototipiche e classiche e, du-
rante il corso di questa tesi, estesa anche alle rappresentazioni basate su
esemplari; dal punto di vista del ragionamento il sistema fa riferimento
alle cosiddette Dual process theories di ragionamento e razionalità. All’in-
terno del sistema implementato le informazioni tipiche legate ai concetti
vengono rappresentate geometricamente grazie al framework degli spa-
zi concettuali, mentre la rappresentazione classica delle informazioni è
affidata ad un’ontologia formale.
Il sistema Dual-PECCS è stato, quindi, integrato all’interno dell’archi-
tettura cognitiva ACT-R, estendendo in particolare la componente legata
alla memoria dichiarativa. Proprio grazie all’integrazione all’interno del-
l’architettura e all’identificazione delle diverse zone di memoria coinvolte,
è stato possibile implementare il meccanismo di proxyficazione legato alla
teoria dei proxytypes eterogenei.
Il sistema sviluppato ed integrato all’interno dell’architettura è stato
testato in un compito di categorizzazione, i cui risultati sono molto in-
coraggianti. Le applicazioni pratiche del progetto non riguardano solo
l’ambito della categorizzazione, ma comprendono, ad esempio, i siste-
mi di question answering e più in generale l’ambito legato all’information
retrieval.
introduzione 3
La tesi è organizzata come segue: nel Capitolo 2 viene introdotto lo
stato dell’arte degli studi relativi alla definizione e rappresentazione dei
concetti. Alcune di queste teorie sono alla base del framework teorico pro-
posto in [14], [13] e descritto nella prima parte del Capitolo 4. Il Capitolo 3
introduce le architetture cognitive e pone particolare attenzione sull’archi-
tettura ACT-R, di cui presenta una dettagliata descrizione e approfondi-
sce le parti più rilevanti per l’integrazione effettuata. Nel Capitolo 4 è
descritto il sistema S1-S2, le estensioni apportate durante il corso della
tesi e l’integrazione del sistema esteso Dual-PECCS all’interno dell’archi-
tettura ACT-R. Il Capitolo 5 è dedicato alla fase di sperimentazione del
sistema ed infine, nell’ultimo capitolo, vengono trattate alcune proposte
relative agli sviluppi futuri del progetto e le conclusioni.
2L A R A P P R E S E N TA Z I O N E D E I C O N C E T T I
In questo capitolo viene fatta una panoramica delle nozioni teoriche alla
base del sistema sviluppato. Innanzitutto viene descritto il problema del-
la definizione dei concetti e alcune delle principali teorie che cercano di
risolverlo (sezione 2.1); successivamente vengono descritti i vari livelli e
formalismi per la rappresentazione della conoscenza orientati ai concetti
(sezione 2.2); infine, vengono introdotte le teorie cognitive del processa-
mento duale (sezione 2.3) e l’ipotesi di eterogeneità delle rappresentazioni
(sezione 2.4).
Cos’è un concetto?
Un primo problema da affrontare quando si parla di concetti è capire cosa
si intende con tale termine. Infatti, il termine concetto viene inteso diver-
samente in base a quale campo di studio si fa riferimento. In psicologia
cognitiva un concetto è inteso essenzialmente come la rappresentazione
mentale di una categoria, e l’enfasi viene posta su processi come la cate-
gorizzazione, l’induzione e l’apprendimento. In filosofia la definizione di
concetto è più restrittiva ed esigente: i concetti sono le componenti del
pensiero. Perciò alcuni fenomeni definiti come "concettuali" dagli psicolo-
gi potrebbero essere definiti "non concettuali" dai filosofi [10, 12]. Durante
questo elaborato si farà sempre riferimento ad un particolare approccio
cognitivo sulla natura dei concetti (noto come approccio eterogeneo) se-
condo il quale i concetti sono definiti come quelle parti di conoscenza (o
body of knowledge), immagazzinate nella memoria a lungo termine, e che
sono alla base delle nostre capacità di categorizzare, fare induzioni, fare
5
6 la rappresentazione dei concetti
analogie, etc. Ad esempio, il concetto di cane è rappresentato da un insie-
me di componenti di conoscenza che vengono automaticamente utilizzate
tutte le volte che categorizziamo qualcosa come un cane, quando ragionia-
mo sui cani, quando comprendiamo delle frasi che contengono la parola
"cane", e così via [23]. Non è facile definire quando una persona possie-
de il concetto di cane, ma possiamo certamente dire che se non conosce
alcune delle informazioni fondamentali riguardanti i cani (ad esempio
che abbaiano, che generalmente hanno la coda e quattro zampe, etc...),
sicuramente non possiede tale concetto. Queste caratteristiche sono però
tipiche, e non rappresentano delle condizioni necessarie nè sufficienti per
dire che un’istanza appartiene alla categoria cane.
2.1 teorie dei concetti
2.1.1 La teoria classica
Secondo la cosiddetta teoria classica o aristotelica, un concetto è rap-
presentato nei termini di un insieme di caratteristiche necessarie e
sufficienti.
In altre parole, si cerca di definire un concetto in modo che la sua defini-
zione includa tutte le entità associate a tale concetto e nessuna entità che
non lo sia. Più formalmente possiamo dire che, data la rappresentazione
del concetto c1 in termini di una serie di caratteristiche f1, ..., fn, allora
avremo che qualunque cosa soddisfi f1, ..., fn è un c1 e tutti i c1 devono
soddisfare f1, ..., fn. In questo modo, ad esempio, risulta semplice definire
il concetto di quadrato come un oggetto che soddisfa il seguente elenco di
caratteristiche: è un poligono, ha quattro lati. Le definizioni classiche han-
no molti vantaggi dal punto di vista logico: ad esempio è molto semplice,
di fronte ad una figura, determinare la falsità o la verità dell’affermazione
"Questa figura è un quadrato".
Partendo da Aristotele fino all’inizio degli anni 70, la teoria classica
fu la teoria dominante nell’ambito della rappresentazione dei concet-
ti. Successivamente i lavori di Wittgenstein e, soprattutto, di Rosch ne
decretarono l’abbandono.
2.1 teorie dei concetti 7
2.1.2 Le somiglianze di famiglia
La prima critica a tale teoria è dovuta al filosofo Ludwig Wittgenstein che,
nel suo scritto Phisolophical Investigation [46], osservò che è impossibile
individuare un insieme di condizioni necessarie e sufficienti per definire
concetti come gioco o cane. Potremmo definire un cane come un "animale,
con 4 gambe, con pelo, che abbaia, che mangia carne, che corre", ma quindi
un cane che ha perso una zampa non è più considerato un cane? Allora,
potremmo ridefinire un cane come un "animale, con 3 o 4 gambe, con pelo,
che abbaia, che mangia carne, che corre": e se avesse perso due delle quattro
zampe? E se fosse senza pelo o senza voce per abbaiare?
La domanda fondamentale è: come possiamo trovare un insieme di ca-
ratteristiche precise che descrivano tutto ciò che è un cane ed escludano
tutto ciò che non è un cane? Secondo Wittgenstein per la maggior parte
dei concetti questo insieme non esiste, e questi concetti sono meglio rap-
presentabili con una densa rete di somiglianze di famiglia. Le caratteristiche
e proprietà dei concetti si compongono, si sovrappongono e s’incrociano
per formare ciò che è il concetto finale, proprio come le caratteristiche di
un essere umano sono il risultato della combinazione delle caratteristiche
dei suoi antenati.
2.1.3 Rosch e la teoria dei prototipi
A metà degli anni 70 i risultati empirici di Eleanor Rosch [39] confermaro-
no l’intuizione di Wittgenstein che molti concetti non possano essere de-
scritti da un insieme di condizioni necessarie e sufficienti e che, anche nei
casi in cui una definizione classica fosse disponibile, gli esseri umani non
ne fanno uso nella maggior parte dei compiti cognitivi. Per questo moti-
vo la teoria classica venne ritenuta inadeguata dalla comunità scientifica e
definitivamente abbandonata.1 L’idea alla base della teoria di Rosch è che
1 Bisogna precisare che la teoria classica continua ad essere valida in contesti altamente
formalizzati, come la geometria o la matematica in generale. Non è stata però ritenuta in
grado di definire quei concetti che per natura sono poco formali e che rappresentano la
maggioranza dei concetti con cui si ha a che fare nel mondo reale.
8 la rappresentazione dei concetti
alcune istanze di un concetto siano più rappresentative di altre. Queste
istanze vengono chiamate prototipi e il processo di categorizzazione avvie-
ne sulla base della maggiore o minore somiglianza del nuovo elemento a
questi elementi "tipici" della categoria.
Il problema diventa quindi come definire il prototipo di un concetto.
Sicuramente una variabile che rende un concetto più tipico di un altro è
la frequenza dell’elemento all’interno della categoria, ma non solo. Rosch
sostiene anche che tale prototipo debba esibire il maggior numero delle
caratteristiche degli elementi all’interno della categoria ed esibirne poche
relative a categorie differenti. Prendiamo come esempio la categoria degli
uccelli: il prototipo di tale categoria sarà molto più simile ad un pettirosso
piuttosto che ad un pinguino o ad uno struzzo che invece rappresentano
dei membri più atipici della categoria.
Inoltre, il prototipo spesso non è esattamente un’elemento all’interno
della categoria ma, è un elemento astratto. Se rappresentassimo tutti gli
elementi su uno spazio n-dimensionale, potrebbe essere definito come il
centroide di tale insieme di punti. Tale centroide presenta infatti le carat-
teristiche esibite dalla maggior parte degli appartenenti alla categoria e
mediate rispetto alla totalità dei punti.
Confronto con la teoria classica
Questo si contrappone definitivamente alla teoria classica, dove tutte le
istanze appartenenti ad una categoria sono allo stesso livello, perché, per
definizione, hanno soddisfatto le stesse condizioni. E’ importante notare
anche che la teoria classica non ammette eccezioni, il che non è un pro-
blema quando si cerca di definire il concetto di quadrato, ma lo diventa se
cerchiamo di definire categorie più ampie e variegate, nelle quali diventa
importante la possibilità di gestire l’atipicità, come nel caso che abbiamo
visto in riferimento alla definizione di cane.
2.1.4 La teoria degli esemplari
Un’altra teoria basata sulla tipicalità, ma spesso contrapposta a quella dei
prototipi è dovuta agli studi di Medin e Schaffer [27], secondo i quali un
concetto è rappresentato da un insieme di istanze, appartenenti alla cate-
2.1 teorie dei concetti 9
goria, che sono state acquisite grazie alle esperienze passate: gli esemplari.
Questa proposta è decisamente contrapposta alla teoria dei prototipi, nel-
la quale tutto si riconduce ad una singola rappresentazione "riassuntiva"
adatta a rappresentare gli elementi salienti dell’intera categoria e anche
alla teoria classica, nella quale tutta la categoria è definita da un insieme
di caratteristiche.
Secondo i sostenitori di questo approccio, quando si cerca di catego-
rizzare un elemento si accede agli esemplari memorizzati e si sceglie la
categoria da assegnare in base agli esemplari più simili.
2.1.5 I proxytypes
Recentemente è stata proposta, da Jesse J. Prinz [37], una nuova teoria dei
concetti: la proxytypes theory. Questa teoria sostiene che la gestione delle
strutture concettuali coinvolga una localizzazione biologica e un’intera-
zione fisica di più aree del cervello e non sia imputabile ad un’unica zona
indipendente dalle altre. Innanzitutto Prinz assimila la sua ipotesi alla
distinzione classica tra memoria di lavoro e memoria a lungo termine,
localizzando queste due memorie in due porzioni differenti ma coope-
ranti del cervello. Sotto questo punto di vista i concetti sono visti come
dei proxytypes, ovvero come un singolo elemento di una complessa rete
rappresentazionale memorizzata nella memoria a lungo termine. La re-
te nella sua interezza rappresenta una specifica categoria e un’elemento
della rete (o proxytype) può essere tokenizzato e portato nella memoria
di lavoro per "fare da proxy" per quella categoria. In altre parole, la teoria
dei proxytype, definisce i concetti come strutture temporanee di una data
categoria, che possono essere attivate all’interno della memoria di lavoro
come risultato di processi concettuali quali, ad esempio, identificazione
e recupero di un concetto. Questa visione della struttura della conoscen-
za nasce dalla considerazione che si possono possedere concetti che non
sono attualmente "utilizzati", insieme all’assunzione che la dimensione
della working memory è limitata e non può attivare, in un dato momen-
to, l’intera rete relativa alle conoscenze memorizzate. Il contesto servirà a
determinare quali porzioni della rete devono essere portate in memoria
di lavoro. Per quanto riguarda i concetti, nella memoria a lungo termi-
10 la rappresentazione dei concetti
ne troveremo delle complesse reti di rappresentazioni, i cui elementi sono
collegati tra loro da connessioni causali.
2.2 paradigmi di rappresentazione della conoscenza
Il problema della rappresentazione dei concetti nell’ambito dell’intelligen-
za artificiale si è evoluta per cercare di rappresentare sempre meglio i di-
versi aspetti dell’informazione concettuale. In particolare, durante gli anni
70 e 80 si è delineata una bipartizione degli approcci alla rappresentazio-
ne della conoscenza, suddividendoli in approcci simbolici e subsimbolici.
Più recentemente Peter Gärdenfors ha proposto una nuova suddivisione,
introducendo un livello di rappresentazione intermedio tra quello sim-
bolico e subsimbolico: il livello concettuale. In questa sezione vengono
trattati i tre approcci, spiegandone i tratti fondamentali e introducendo
qualche esempio.
2.2.1 Approcci simbolici
Gli approcci simbolici si basano sulla convinzione che il ragionamento
umano possa ricondursi alla semplice manipolazione di simboli e rap-
presentano la conoscenza in forma dichiarativa (ad esempio con fatti e
regole per manipolare i fatti). Sebbene abbiano ottenuto diversi successi,
alcuni dei problemi incontrati dai formalismi simbolici riguardano la rap-
presentazione della conoscenza di senso comune. Inoltre, resta il problema
di dover tradurre in modo esplicito anche quelle conoscenze che sono evi-
dentemente implicite nell’essere umano, come la percezione e le capacità
motorie. In queste aree, l’approccio simbolico ha lasciato spazio a metodi
subsimbolici, come le Artificial Neural Networks (ANN).
In una prima fase di sviluppo, i sistemi simbolici, hanno cercato di te-
ner conto delle evidenze provenienti dalle ricerche psicologiche. Esempi
di questi tentativi sono le reti semantiche e i sistemi a frame [29], proposti
come alternativa all’uso della logica nell’ambito della rappresentazione
della conoscenza. Sia i frame che la maggior parte delle reti semantiche
sono in grado di rappresentare informazioni tipiche, ma purtroppo sono
definiti in modo poco formale, come la maggior parte degli approcci di
2.2 paradigmi di rappresentazione della conoscenza 11
questo tipo. Durante i successivi tentativi di definire formalmente dei si-
stemi per la rappresentazione della conoscenza orientati ai concetti si è
osservata una grande difficoltà a conciliare composizionalità2 e rappre-
sentazioni tipiche, così spesso si è optato per sacrificare la seconda carat-
teristica in favore della prima. In particolare questa soluzione è stata adot-
tata dalle logiche descrittive, fondamentali nel campo del web semantico
e delle ontologie.
Ovviamente, anche nel caso di sistemi basati su logica, esistono dei for-
malismi che potrebbero essere utili per rappresentare le eccezioni e che sa-
rebbero quindi adatti a rappresentare concetti "non classici" (ad esempio
le logiche fuzzy), sebbene essi presentino ancora molte problematiche.3
Le logiche descrittive
Le logiche descrittive sono una famiglia di linguaggi utilizzati per la
rappresentazione della conoscenza. Sono più espressive della logica pro-
posizionale e più efficienti della logica del prim’ordine. Questa famiglia
di linguaggi è di fondamentale importanza per la formalizzazione delle
ontologie e del web semantico.
Una logica descrittiva modella concetti, ruoli, individui e le relazioni
tra di loro. In base alle proprietà e alle restrizioni utilizzabili ogni logica
viene classificata con una sigla, che inizia con una di queste tre opzioni:
• AL: indica la logica degli attributi e introduce gli operatori di
congiunzione e i quantificatori universale ed esistenziale;
• FL: indica una logica descrittiva basata su frame che permette le
quantificazioni, l’intersezione di concetti e le restrizioni sui ruoli;
• EL: permette l’intersezione di concetti e la quantificazione
esistenziale;
2 Nelle scienze cognitive classiche spesso viene assunto che le rappresentazioni mentali
siano composizionali. In un sistema composizionale abbiamo simboli complessi e sim-
boli primitivi e il significato di ogni simbolo complesso dipende unicamente dalla sua
struttura e dal significato dei simboli primitivi che contiene al suo interno.
3 Un’analisi approfondita di questi tentativi di utilizzo delle ontologie per rappresentazioni
tipiche sono descritti in [12].
12 la rappresentazione dei concetti
e può essere ampliata da un sottoinsieme delle seguenti estensioni: C
descrive la possibilità di usare l’operatore di negazione; E consente la
quantificazione esistenziale completa; F, N e Q caratterizzano le possibili-
tà di definire cardinalità rispettivamente funzionale, semplice e qualifica-
ta (in ordine di espressività crescente); H fornisce la possibilità di definire
gerarchie tra ruoli; I permette di riferirsi al ruolo inverso; O asserisce la
presenza dell’operatore di enumerazione (oneOf); R permette l’inclusione,
l’esplicitazione della riflessività e la disgiunzione di ruoli; S è un abbrevia-
zione di ALC con la chiusura transitiva di un ruolo; U permette l’unione
di concetti; (D) definisce la possibilità di riferirsi a domini concreti.
Ad esempio OWL 24 ricade nelle SROIQ(D), OWL-DL è basato su
SHOIN(D) e OWL-Lite su SHIF(D).
2.2.2 Approcci subsimbolici
I modelli subsimbolici, o connessionisti, si ispirano all’organizzazione e
al funzionamento del cervello umano per rappresentare e ragionare sulle
informazioni. Le informazioni sono rappresentate da una sequenza di im-
pulsi e vengono processate da un insieme di oggetti matematici operanti
in parallelo: questi prendono il nome di neuroni, e la topologia della re-
te che li collega definisce una possibile architettura neurale. A seconda
del tipo di architettura, i neuroni all’interno della rete neurale sono orga-
nizzati e collegati in modo differente: tuttavia, quale che sia il modello
adottato, il funzionamento di ogni singolo neurone si basa sempre su tre
step:
• raccolta delle informazioni provenienti dai neuroni vicini
• processamento interno delle informazioni ricevute
• invio delle informazioni elaborate ai neuroni vicini
Le informazioni in questo modo non vengono codificate esplicitamen-
te ed immagazzinate in piccoli cassetti all’interno del cervello acces-
sibili tramite regole, ma sono distribuite all’interno di molte unità di
processamento che cooperano per produrre un risultato.
4 Web Ontology Language, è un linguaggio per descrivere classi, proprietà, individui e
valori di ontologie memorizzate come documenti appartenenti al Web Semantico.
2.2 paradigmi di rappresentazione della conoscenza 13
Un aspetto importante delle reti neurali è che esse permettono di rap-
presentare aspetti caratterizzanti del ragionamento umano che difficil-
mente possono essere rappresentati dagli approcci simbolici: riconosci-
mento di pattern, ricostruzione di informazioni mancanti, interconnessio-
ne tra informazioni, etc... Un esempio di queste capacità sono i risultati
approssimativi, l’"avere qualcosa sulla punta della lingua", o il saper ca-
pire quale scritta si nasconda al di sotto delle macchie d’inchiostro nella
Figura 1 sebbene la prima lettera possa essere sia una K che una R, la
seconda un E o una F e la terza un B o una D [17].
Figura 1: Qual’è la parola nascosta dalle macchie d’inchiostro?
2.2.3 Il livello concettuale e gli spazi concettuali
Le ontologie (e quindi le logiche descrittive) sono ottime per implemen-
tare un tipo di ragionamento logico e inferenziale, ma non si adattano
bene ad un altro tipo di ragionamento tipico degli esseri umani: il ragio-
namento per similarità. Gli spazi concettuali sono un framework, propo-
sto da Peter Gärdenfors [15] per rappresentare le informazioni a livello
concettuale, affiancando questo livello ai due precedentemente descritti
(simbolico e subsimbolico).
Uno spazio concettuale è costituito da rappresentazioni geometriche,
dove le informazioni sono rappresentate come un insieme di quality dimen-
sions, una per ciascuno degli attributi del concetto in questione. I concetti
sono descritti come insiemi di punti appartenenti a vari domini. Un domi-
nio è "un insieme di dimensioni integrali che sono separabili da tutte le
altre dimensioni" [15]. Esempi di domini sono i colori, le forme, i sapori.
Ogni dominio può avere una metrica diversa: ad esempio il peso può es-
sere considerato un attributo monodimensionale, il colore un dominio a
tre dimensioni (tonalità, saturazione e luminosità), il sapore un attributo
14 la rappresentazione dei concetti
a quattro dimensioni (salato, aspro, dolce, amaro), etc. Considerando ad
esempio la descrizione dei colori, le tre dimensioni che abbiamo intro-
dotto possono essere considerate le dimensioni di uno spazio concettuale
cromatico, dove la luminosità spazia da bianco a nero e può essere rap-
presentata come una retta; la tonalità può essere rappresentata come un
cerchio, nel quale i colori complementari si trovano agli opposti; la satura-
zione, spaziando dal grigio all’intensità totale, è isomorfa a un intervallo
nella linea reale (Figura 2).
white
black
saturation
hue
brightness
Figura 2: Uno spazio concettuale per i colori
I concetti, quindi, coprono un insieme di domini e possono essere de-
scritti da regioni in uno spazio multidimensionale. Ogni istanza di un
determinato concetto può essere rappresentata come un punto nello spa-
zio concettuale definito dal concetto corrispondente. Parlando di punti e
regioni dello spazio possiamo esprimere la distanza tra due istanze come
funzione della distanza spaziale tra i due punti.
L’algebra vettoriale offre un framework naturale per rappresentare gli
spazi concettuali e permette di definire uno spazio concettuale metrico (vedi
[28], [1]). In questo modo è possibile introdurre le operazioni algebriche
adatte a calcolare la distanza tra i concetti nello spazio.
La distanza tra due punti appartenenti allo stesso dominio, ad esempio
la distanza tra due punti del dominio dei colori, è calcolabile tramite la
distanza euclidea; la distanza tra due istanze di uno spazio concettuale
(ad esempio tra due prototipi) è calcolabile come funzione della distanza
2.3 dual process theories 15
dei singoli domini che li compongono.
Gli spazi concettuali si prestano bene a rappresentare i tratti tipici
dei concetti, soprattutto perché le regioni nello spazio hanno dei confi-
ni sfumati: un punto nello spazio può essere messo in relazione con più
concetti, in base alla sua vicinanza ad un rappresentante del concetto. Po-
tremmo rappresentare i prototipi come il centro di una regione convessa,
e gli esemplari come dei punti all’interno della regione.
2.3 dual process theories
In psicologia, una teoria di processamento duale fornisce una proposta su
come un fenomeno possa occorrere come risultato di due diversi processi.
Spesso questi due processi consistono in un processo implicito e inconscio
ed un processo esplicito e conscio. Solitamente i processi espliciti posso-
no essere modificati con persuasione ed educazione, mentre i processi
impliciti sono molto più difficili da modificare. Teorie appartenenti a que-
sta categoria si possono trovare in molti ambiti della psicologia, tra cui
la psicologia cognitiva. Le ricerche cognitive riguardanti i concetti sem-
brano suggerire che la rappresentazione dei concetti non costituisca un
fenomeno unitario dal punto di vista cognitivo.
In questo senso una proposta arriva dalle cosiddette dual process theo-
ries di ragionamento e razionalità, riproposte nel 2007 da Jonathan Evans
([11]). Evans, come alcuni suoi precedessori, distingue due modalità di
pensiero:
1. Il Sistema 1: è filogeneticamente più vecchio, inconscio, automatico,
associativo, parallelo, veloce.
2. Il Sistema 2: è più recente, consapevole, sequenziale, basato su
regole, lento.
La conclusione di Evans è che il Sistema 2 costituisce un sistema unita-
rio, mentre il Sistema 1 è l’insieme di molteplici tipi di diversi di processi
cognitivi impliciti e non consapevoli. Nella sezione 4.1 verranno descritte
le modalità con cui questa teoria è stata inserita all’interno del framework
S1-S2.
16 la rappresentazione dei concetti
2.4 ipotesi di eterogeneità
I diversi approcci che abbiamo affrontato nella prima sezione di questo
capitolo, sono spesso messi in competizione tra di loro per vincere la ga-
ra di miglior rappresentante di concetti. Purtroppo ci sono dibattiti a favore
e contrari ad ognuna delle teorie descritte. Ad esempio, secondo alcune
evidenze sperimentali i modelli basati su esemplari sono più precisi dei
modelli basati su prototipi. E’ il caso degli esperimenti di Medin et al.
[27]. Secondo le loro osservazioni un membro atipico di una categoria,
viene classificato più velocemente e accuratamente se si è incontrato un
esemplare della categoria molto simile a quello considerato. Consideria-
mo di osservare un pinguino: esso è un membro decisamente atipico della
categoria degli uccelli, ma se il soggetto ha precedentemente memoriz-
zato un esemplare di pinguino in riferimento alla categoria degli uccelli,
la categorizzazione sarà molto più veloce rispetto ad altre istanze meno
"atipiche", ma non ancora incontrate (ad esempio un pellicano); questo ci
fa intuire che all’interno della rappresentazione del concetto di uccello ci
debba essere uno spazio dedicato alla descrizione di un pinguino. I mo-
delli basati su esemplari non soffrono, quindi, delle problematiche legate
agli outliners, ma al contrario dei prototipi non riescono a rappresentare
al meglio le situazioni in cui è necessario generalizzare e categorizzare sti-
moli nuovi e non riconducibili ad esemplari particolari precedentemente
appresi [14].
Come sottolineato da Machery, in Doing without concepts [24] e da Wei-
skopf in The plurality of concepts [45] nessuno degli approcci psicologici
visti per la rappresentazione di concetti riesce a spiegare tutti i dati empi-
rici che coinvolgono i concetti. Questa affermazione è sostenuta anche da
alcuni dati empirici, raccolti, ad esempio, da Barbara Malt [25], che hanno
evidenziato l’uso simultaneo di più strategie di categorizzazione: alcuni
utilizzano gli esemplari, altri i prototipi, ed altri ancora fanno affidamento
su entrambe le rappresentazioni, in base al contesto.
Negli ultimi anni si è quindi accantonata l’ipotesi di uniformità (secon-
do la quale esiste un unica teoria adatta a rappresentare tutti i concetti) e
si è cominciato quindi a considerare le varie teorie viste come cooperan-
2.4 ipotesi di eterogeneità 17
ti, parlando di ipotesi di eterogeneità. Secondo l’ipotesi di eterogeneità il
termine concetto non è più unitario e non equivale più al termine rappre-
sentazione, ma raggruppa sotto di sè un insieme di body of knowledge di
diverso tipo, che mantengono al loro interno informazioni diverse riguar-
danti la stessa entità concettuale e vengono utilizzate in diversi processi
cognitivi.
Esemplari di X Teorie su XPrototipo
di X
ConcettoX
bodies of knowledgerappresentanti il concetto X
Figura 3: Schema ad alto livello di una rappresentazione eterogenea.
Prototipi, esemplari e teorie5 sono un esempio di queste porzioni di
conoscenza che complessivamente descrivono un concetto (Figura 3).
5 In riferimento alla theory-theory of concepts [30], secondo la quale le teorie sono delle bodies
of knowledge riguardanti uno specifico dominio e i concetti sono identificati con tali teorie.
3L E A R C H I T E T T U R E C O G N I T I V E E A C T- R
In questo capitolo vengono introdotte le architetture cognitive in generale
(sezione 3.1) e, in particolare, l’architettura ACT-R, parlando dell’organiz-
zazione in moduli (sottosezione 3.2.3), della struttura della memoria (sot-
tosezione 3.2.1) e dei meccanismi subsimbolici che ne guidano l’esecuzione
(sezione 3.3).
3.1 introduzione alle architetture cognitive
La nascita del termine "architettura cognitiva", può essere ricondotta al
lavoro pionieristico nell’ambito delle scienze cognitive di Allen Newell e
John R. Anderson. Ad oggi è possibile trovare numerose definizioni legate
a tale termine, ma in questa occasione utilizzerò una definizione estratta
dal libro How Can the Human Mind Occur in the Physical Universe? scritto
da Anderson nel 2007 [4]:
"Un’architettura cognitiva descrive un insieme di specifiche
relative alla struttura del cervello, ad un livello di astrazione
tale da permettere di spiegare come esso riesce ad ottenere il
funzionamento della mente."
In altre parole un’architettura cognitiva ha come scopo quello di simu-
lare il funzionamento della mente, ponendosi però ad un livello di astra-
zione che gli permetta di tenere conto anche della struttura del cervello,
senza necessariamente emularne i dettagli di basso livello. Immaginiamo,
ad esempio, un programma per computer che risolva problemi algebrici:
anche se il programma produce lo stesso risultato di un essere umano,
19
20 le architetture cognitive e act-r
molto probabilmente il modo con cui tale risultato è ottenuto è sostan-
zialmente diverso. D’altro canto una simulazione neurale completa del
cervello non solo sarebbe impraticabile, ma impedirebbe di separare gli
aspetti legati alla simulazione da quelli rilevanti per il task che si vuole
implementare. Un’architettura cognitiva si pone a metà tra le due opzioni
viste, è sufficientemente astratta da permettere ai ricercatori di concen-
trarsi sugli aspetti rilevanti del task, ma permette, quando opportuno, di
far rispettare dei vincoli biologicamente verosimili [16].
In particolare possiamo definire un’architettura cognitiva come un ten-
tativo di creare una teoria unificata della cognizione [31], ovvero una teoria
che copra un ampio spettro di problematiche legate alla cognizione, come
l’attenzione, la memoria, il problem solving, il decision making e l’appren-
dimento. Per questo motivo l’obiettivo principale di chi sviluppa architet-
ture cognitive è di renderle integrate, ovvero capaci di modellare tutti gli
aspetti del comportamento, però rimanendo il più possibile generiche e
quindi capaci di affrontare diversi domini e basi di conoscenza.
Perché utilizzare un’architettura cognitiva?
L’utilizzo di un’architettura cognitiva comporta diversi vantaggi per
chiunque voglia testare una propria teoria cognitiva. Vediamone alcuni:
(1) implementando un singolo task all’interno di un’architettura si può
osservare il suo comportamento globale e la sua influenza sul-
le altri componenti e funzionalità della mente, cosa non possibile
sviluppando porzioni di software indipendente;
(2) si possono riutilizzare grandi parti di codice già scritto e testato dai
creatori dell’architettura, andandolo a personalizzare con parametri
ad hoc ed estensioni mirate;
(3) infine, le architetture cognitive moderne offrono un vero e proprio
framework di sviluppo, comprensivo di editor, strumenti di analisi
e di debug, simulazione dell’environment, etc. permettendo allo stu-
dioso di trascurare l’implementazione di funzioni non direttamente
di interesse;
3.2 l’architettura di act-r 21
Tipologie di architetture cognitive
Le architetture cognitive possono essere suddivise in tre categorie princi-
pali, basandosi su come viene organizzata la memoria, rappresentata la
conoscenza e implementata la cognizione:
• simboliche, che si concentrano sul processamento di simboli e si
basano sull’ipotesi del sistema simbolico fisico di Newell e Simon [32].
Un classico esempio è l’architettura Soar [31];
• emergenti, che sono ispirate dalle idee del connessionismo e fanno
utilizzo di reti e di meccanismi come la spreading activation;
• ibride, che combinano in qualche modo i meccanismi alla base delle
categorie precedenti. Esempi di questa tipologia di architetture sono
ACT-R [6] e Clarion [43].
Il lavoro di questa tesi si concentra proprio su una delle più conosciute
e utilizzate architetture cognitive ibride: ACT-R.
3.2 l’architettura di act-r
ACT-R nasce nel 1993, come successore della teoria ACT, proposta da
John Anderson già nel 1976 [3] ed è, ad oggi, una delle architetture cogniti-
ve meglio sviluppate, anche grazie ad una attiva community di ricercatori
sparsi in tutto il mondo.
Come si può vedere in Figura 4 l’architettura principale di ACT-R1 si
compone di 7 moduli che sono integrati e coordinati da un sistema centra-
lizzato basato su produzioni. Ciascun modulo comunica verso l’esterno
solo attraverso i propri buffer e il sistema centrale sceglie la prossima azio-
ne da eseguire tenendo conto del contenuto dei buffer al momento della
scelta.
Ogni buffer può contenere una singola unità di informazione, detta
anche chunk. Questa scelta limita la conoscenza a disposizione del sistema
di produzioni, seguendo l’intuizione che le informazioni a disposizione di
un’individuo in un dato istante sono sempre in qualche modo ridotte: ad
1 Quando non diversamente esplicitato si fa riferimento alla versione 6.0
22 le architetture cognitive e act-r
esempio non si è sempre coscienti di tutte le informazioni all’interno del
proprio campo visivo, ma solo di quelle a cui si sta dedicando attenzione,
così come non si è consapevoli dell’interezza delle informazioni presenti
nella memoria a lungo termine, ma solo delle porzioni che vengono di
volta in volta recuperate.
External Environment
Vision module Aural module
Motor module
Visual buffer Visual-location buffer
Manual buffer
Goal buffer Retrieval buffer
Imaginal buffer
Goal module Declarative module Imaginal module
Procedural module (match; select; fire) Aural buffer Aural-location
buffer
Speech module
Vocal buffer
Figura 4: Struttura dell’architettura ACT-R
E’ interessante notare che quando è possibile, ed eccetto in alcuni casi
particolari, le operazioni all’interno di un modulo vengono portate avanti
in parallelo, mentre la comunicazione tra due moduli deve passare neces-
sariamente attraverso il modulo procedurale che opera in modo seriale,
lanciando una sola produzione alla volta e costituendo il collo di bottiglia
principale del sistema.
3.2.1 La suddivisione della memoria
Uno dei punti fondamentali della teoria ACT-R è la suddivisione della
memoria in due parti distinte: la memoria dichiarativa, rappresentata dal
declarative module, e la memoria procedurale, rappresentata dal procedu-
ral module. Questi due moduli di memoria codificano rispettivamente la
conoscenza dichiarativa e la conoscenza procedurale.
3.2 l’architettura di act-r 23
La conoscenza dichiarativa rappresenta quel tipo di conoscenza che
è accessibile alla coscienza, che si può descrivere, su cui si può ragio-
nare. Una singola unità di informazione dichiarativa in ACT-R è detta
chunk ed è costituita da un nome, un tipo e degli slot con i rispettivi
valori. Ad esempio potremmo codificare l’informazione dichiarativa che
"4+3=7" con il seguente chunk
( Fact3+4
ISA addition
addend1 three
addend2 four
result seven )
La conoscenza procedurale consiste, invece, in tutte le capacità che si
possono dimostrare tramite il comportamento ma che generalmente non
possiamo descrivere e non possiamo utilizzare in modo consapevole. Que-
sto tipo di conoscenza è codificata all’interno del modulo procedurale
sotto forma di regole di tipo if-then, chiamate regole di produzione. Ad
esempio:
( p sum-rule
=goal> % se il goal
ISA addition % e’ un addizione
addend1 =num1 % tra un numero num1
addend2 =num2 % e un numero num2
==>
+retrieval> % recupera un fatto
ISA addition % di tipo addizione
addend1 =num1 % tra un numero num1
addend2 =num2 % e un numero num2
-result nil % di cui conosco il risultato
)
Più in generale le regole di produzione rispettano il seguente formato
(p nome-regola "documentazione opzionale"
test dei buffer
=>
modifiche e richieste ai buffer
)
dove nella premessa vengono esplicitate tutte le condizioni che devono
verificarsi all’interno dei buffer (uno o più) per far si che la regola si sbloc-
24 le architetture cognitive e act-r
chi e nel conseguente vengono codificate le varie modifiche e richieste da
effettuare nel caso in cui la regola venga selezionata per l’esecuzione.
Chunk-type, ereditarietà e valori di default
All’interno di ACT-R ogni chunk deve specificare il suo tipo. L’operatore
chunk-type permette di definire i tipi di chunk che si vogliono poter rap-
presentare all’interno del sistema, definendo gli slot che li caratterizzano,
eventuali valori di default per tali slot e, se presenti, le relazioni di gerar-
chia tra tipi. In ACT-R è infatti supportata l’ereditarietà singola tra tipi di
chunk che permette così di organizzare gerarchicamente il contenuto del-
la memoria dichiarativa. Nella porzione di codice qui di seguito vediamo
un esempio di definizione di tipo, che esprime una relazione di sottotipo
tra il tipo fish e il tipo animal.
(chunk-type animal specie dimension food location)
(chunk-type (fish (:include animal)) fin-color)
3.2.2 L’interazione con i buffer
A ciascun buffer possono essere fatte richieste di diverso tipo (contrasse-
gnate dal simbolo che precede il nome del buffer all’interno delle produ-
zioni), che hanno un comportamento diverso a seconda del modulo che
viene coinvolto e della zona della produzione dove vengono utilizzate.
Questi simboli vengono chiamati in ACT-R action symbols.
(=) test e modifica Il simbolo = rappresenta due tipologie di richie-
sta: se espresso nella premessa di una regola indica una richiesta
di test del contenuto del buffer, per verificare che, ad esempio, uno
slot corrisponda ad un determinato valore; se espresso nel conse-
guente indica una richiesta di modifica del contenuto del buffer, ad
esempio sostituendo il contenuto di uno slot.
(+) richieste ai buffer Le richieste ai vari buffer vengono espresse
con il simbolo + e sono consentite solo nel conseguente di una pro-
duzione. Il comportamento di questo tipo di richiesta varia di molto
in base al buffer a cui si fa riferimento. Ad esempio, una richiesta
+retrieval corrisponde ad una richiesta di recupero di un chunk
3.2 l’architettura di act-r 25
dalla memoria dichiarativa, mentre una +imaginal corrisponde alla
richiesta di creazione di un nuovo chunk, e così via. Vedremo più
nello specifico le varie possibili funzionalità all’interno delle sezioni
dedicate ai moduli.
(-) pulitura dei buffer Contrassegnata dal simbolo - esprime la vo-
lontà di svuotare forzatamente un buffer, in modo che il suo sta-
to risulti empty. Questa operazione viene chiamata pulitura esplicita
in contrapposizione alla pulitura implicita che occorre subito prima
dell’esecuzione di una richiesta + ad un buffer.
(?) interrogazione di stato Il simbolo ? indica un tipo di interro-
gazione diverso da quelli visti fin’ora: non si opera sul contenuto
del buffer, ma si testa lo stato del buffer o del modulo associato.
Ogni modulo può avere diversi parametri da testare, ma tutti i mo-
duli hanno sempre la possibilità di testare lo stato del buffer (slot
buffer), che può essere full, empty, requested o unrequested2; e lo
stato del modulo legato al buffer (slot state), che può essere busy
se il modulo è impegnato a compiere un’operazione o free in caso
contrario, inoltre assume valore error quando l’ultima operazione
è terminata con errore.
Vedremo successivamente, nella sezione 4.4, che l’integrazione del
sistema in ACT-R è stata realizzata proprio mediante l’introduzione
di un nuovo simbolo nel repertorio dei simboli relativi alla memoria
dichiarativa.
3.2.3 L’organizzazione in moduli
Ciascun modulo all’interno di ACT-R è stato costruito con lo scopo di
processare una diversa tipologia di informazione. Qui di seguito andremo
ad esaminare brevemente i vari moduli presenti nel core di ACT-R.
2 Lo slot buffer assume valore requested se il contenuto del buffer è stato precedentemente
richiesto da una production o unrequested se non era stato precedentemente richiesto.
26 le architetture cognitive e act-r
Il goal module
Questo modulo si occupa di tenere traccia del goal corrente. Il goal inizia-
le può essere inizializzato all’avvio del sistema grazie ad un comando spe-
cifico e successivamente tutte le richieste + al goal buffer comporteranno
la creazione istantanea di un nuovo goal chunk.
L’imaginal module
Il modulo imaginal è collegato con l’omonimo buffer che può essere uti-
lizzato da una produzione per creare un nuovo chunk. Questi chunk costi-
tuiscono la rappresentazione interna delle informazioni e verranno salvati
all’interno della memoria dichiarativa al momento della pulizia del buffer.
Il modulo può creare un solo chunk per volta ed ogni creazione richiede
un determinato ammontare di tempo durante il quale il modulo risulta
impegnato.
I moduli percettivo-motori
Con il termine percettivo-motori si intende l’insieme di moduli che si oc-
cupano di interagire con l’ambiente esterno. In questa categoria ricadono
quindi il vision module, l’auditory module, lo speech module e il motor
module.
I moduli relativi alla visione e all’ascolto hanno due buffer ciascuno,
anzichè uno come i moduli standard. Il primo dei due buffer (aural o
visual) conterrà il chunk che codifica l’informazione percepita dall’am-
biente, mentre il secondo (aural-location o visual-location) conterrà un
chunk che rappresenta la posizione di un oggetto o di un suono all’inter-
no della scena. Una produzione può richiedere ad uno dei due moduli
di percepire un informazione dall’esterno tramite una richiesta di tipo +
al buffer visual-location o aural-location. All’interno di queste richieste
è possibile specificare, tramite il parametro :attended, che si desidera
percepire un elemento sconosciuto, anzichè uno recentemente osserva-
to, oppure un elemento apparso di recente all’interno della scena. In un
dato momento solo un numero limitato di chunk può essere etichettato
come "attended" e mantiene tale stato solo per un piccolo periodo di tem-
po, queste etichettature rappresentano dei marker attenzionali e vengono
3.2 l’architettura di act-r 27
chiamati finsts (ne parleremo nuovamente nella sottosezione dedicata alla
memoria dichiarativa).
Quando si parla di moduli motori in ACT-R si considera soltanto il
movimento delle mani. Il manual buffer, associato al modulo motorio,
non contiene nessun chunk e viene utilizzato solamente come mezzo per
effettuare una richiesta al modulo sottostante. La stessa osservazione vale
anche per lo speech module e il relativo vocal buffer.
E’ molto importante verificare lo stato dei moduli percettivo-motori
prima di effettuare una nuova richiesta per evitare di inceppare un modulo
che può gestire una sola richiesta per volta.
Il procedural module e il declarative module
Come abbiamo già detto in precedenza questi due moduli si occupano
di conservare ed attivare la conoscenza del sistema. Il modulo procedu-
rale si basa su un meccanismo di match-select-fire: tutte le produzioni le
cui premesse sono verificate formano un conflict-set all’interno del qua-
le verrà selezionata una sola produzione da eseguire. All’interno della
memoria dichiarativa, a fronte di una richiesta viene restituito un deter-
minato chunk se il contenuto dei suoi slot corrisponde al contenuto degli
slot del chunk richiesto.
i declarative finsts Per quanto riguarda la memoria dichiarativa,
inoltre, esiste un meccanismo che ha lo scopo di memorizzare i chunk
recuperati di recente e permette di specificare nella richiesta di retrieval,
tramite il parametro :recently-retrieved se il chunk desiderato è appar-
tenente ai cosiddetti declarative finsts o no. I finsts (fingers of instantiation)
sono dei marker attenzionali, basati sul lavoro di Zenon Pylyshyn [38].
Così come i finsts collegati ai moduli percettivi, anche i declarative finsts
sono limitati in numero e in tempo3 e questi due limiti possono essere
impostati all’interno del modello grazie a degli specifici parametri.
In realtà vedremo nella prossima sezione che una parte fondamentale
di ACT-R che coinvolge questi due moduli, e ne modifica il comportamen-
to appena descritto, è composta dall’insieme di meccanismi subsimbolici
3 Di default si possono avere al massimo 4 chunk contemporaneamente marcati come
"recently-retrieved" e ciascuno può restare in questo stato per un massimo di 3 secondi
28 le architetture cognitive e act-r
che guidano la scelta del chunk da recuperare a fronte di una determinata
richiesta e la produzione da attivare in un dato istante.
3.3 le componenti subsimboliche di act-r
Finora abbiamo descritto l’architettura ACT-R sotto un punto di vi-
sta puramente simbolico, ma esiste parte molto importante legata a
meccanismi subsimbolici riguardanti l’attivazione, l’apprendimento dei
chunk, l’utilità delle produzioni, il concetto di similarità e di spreading
activation.
3.3.1 Valore di attivazione dei chunk
Lavorando solamente sul piano simbolico abbiamo descritto il lavoro del
modulo dichiarativo assimilandolo ad un sistema che semplicemente ri-
cerca all’interno di una struttura dati un chunk che corrisponda a quello
richiesto e altrimenti fallisca. Il sistema così descritto è completamente
deterministico, non associa nessun costo variabile in tempo al retrieval
e se un chunk è presente in memoria allora verrà sicuramente recupera-
to. Sappiamo però che la memoria umana non è così precisa e determi-
nistica: un’informazione appresa molto lontano nel tempo oppure poco
"ricordata" sarà meno forte di un’informazione appresa molto di recente o
utilizzata tutti i giorni. Questo concetto di forza si traduce in molti task
psicologici con i concetti di accuratezza e latenza e viene tradotto in ACT-R
con la nozione di valore di attivazione associato a ciascun chunk.
Il valore di attivazione riflette una previsione dell’utilità del chunk in
un dato momento, basandosi sulle esperienze passate e sul contesto cor-
rente. Quando viene fatta una richiesta al retrieval buffer verrà scelto tra
i chunk che corrispondono alla richiesta, quello con maggiore valore di
attivazione, purchè tale valore superi una soglia di attivazione minima.
Se esistono chunk corrispondenti alla richiesta ma nessuno dei relativi
valori di attivazione è maggiore della soglia allora la richiesta terminerà
con un fallimento.
3.3 le componenti subsimboliche di act-r 29
Il valore di attivazione per il chunk i-esimo può essere calcolato con la
seguente formula
Ai = Bi +Ci + Pi + ε (1)
dove:
• Bi, l’attivazione base-level che riflette quanto frequentemente e
quanto di recente è stato attivato il chunk i-esimo
• Ci, la componente relativa al contesto, che tiene conto dei
riferimenti provenienti da altri chunk verso il chunk i-esimo
• Pi, una componente legata al meccanismo del partial matching che
permette di pesare la similarità tra due slot.
• ε, una componente di rumore composta da due parti: una parte
permanente associata a ciascun chunk e una parte variabile di volta
in volta.
Tutte le varie componenti, eccetto l’attivazione base-level, possono es-
sere singolarmente disabilitate o abilitate in base alle necessità del task
che si sta cercando di simulare. Vediamo qualche dettaglio in più sul loro
funzionamento.
Base-level activation
L’apprendimento dell’attivazione base-level per un dato chunk i è descritta
dalla seguente equazione
Bi = ln(
n∑j=1
t−dj ) (2)
dove
• n è il numero di apparizioni del chunk i,
• tj è il tempo trascorso dalla j-esima apparizione
• d è un parametro di decadimento (solitamente d = 0.5) usato per
pesare sempre meno apparizioni più lontane nel tempo.
30 le architetture cognitive e act-r
La prima apparizione di un chunk i avviene al suo inserimento all’interno
della declarative memory e, successivamente, il numero di apparizioni au-
menta ogni qual volta venga tentato l’inserimento in memoria un chunk
identico per tipo e contenuto degli slot al chunk i (parliamo in questo caso
di merging del nuovo chunk con il chunk i).
Spreading activation
I chunk all’interno dei vari buffer costituiscono per noi un contesto
(relativo alla situazione attuale del sistema) che influisce sul valore di
attivazione dei vari chunk, aumentandolo di un dato valore.
L’ammontare di questo incremento per il chunk i-esimo è dato da:
Ci =∑k
∑j
WkjSji (3)
dove
• k scorre su tutti i buffer,
• j su tutti i chunk contenuti all’interno degli slot del chunk contenuto
nel buffer k,
• Wkj è l’ammontare di attivazione propagata dal buffer k al chunk
j (solitamente è uguale a 1/n di un peso totale, con n numero di
chunk riferiti all’interno di k)
• Sji è la forza dell’associazione tra il chunk j (contenuto nello slot
del chunk nel buffer k) e il chunk i (per cui vogliamo calcolare
l’attivazione). Questa forza è uguale a 0 se i! = j e j non è contenuto
all’interno di uno slot del chunk i (in poche parole il chunk non ha
niente in comune con il contesto attuale), altrimenti sarà calcolato
come:
Sji = S− ln(fanj) (4)
dove S è il valore massimo impostato per la forza delle associazioni
tra chunk (solitamente S = 2) e fanj è il numero dei chunk nella
declarative memory che contengono il chunk j come valore di uno
slot + 1 (per se stesso).
3.3 le componenti subsimboliche di act-r 31
Quest’ultima equazione cerca di modellare il fan effect studiato da An-
derson in [2]: fa riferimento al fenomeno secondo il quale maggiore è
il numero di fatti che conosciamo riguardanti un particolare concetto e
maggiore sarà il tempo di retrieval di un particolare fatto relativo a tale
concetto. Visto che in ACT-R il tempo di retrieval è inversamente influen-
zato dal valore di attivazione del chunk recuperato, avremo che un fan
più alto andrà a ridurre l’aumento del valore di attivazione e viceversa.
Per capire meglio il funzionamento del meccanismo di spreading ac-
tivation, osserviamo la Figura 5. In questo caso, tenendo conto di un
unico buffer, i valori di attivazione (considerando base-level e spreading
activation) per i chunk 1, 2, 3 sono calcolati come segue:
A1 = B1 +W1S11 +W2S21
A2 = B2 +W1S12 +W2S22
A3 = B3 +W1S13 +W2S23
Se consideriamo le frecce arancioni come dei riferimenti provenienti da
altri chunk, avremo che gli unici pesi S attivi saranno S11 ed S12 (gli altri
saranno = 0), e l’aumento di attivazione dato al chunk 1 sarà minore di
quello dato al chunk 2, a causa del numero di riferimenti entranti (fan).
Partial matching
Abbiamo visto come il retrieval, fino a questo momento, venisse fatto ba-
sandosi sull’uguaglianza di valori contenuti all’interno degli slot. Anche
una sola differenza rispetto al chunk richiesto, portava a scartare il chunk
in esame. Tramite l’abilitazione del partial matching si inserisce all’interno
dell’equazione di attivazione di un chunk una nozione di similarità tra i
valori degli slot. Il valore Pi visto nell’equazione di attivazione è calcolato
come:
Pi =∑l
PMli (5)
dove l scorre sugli slot del chunk richiesto, P è un parametro globale
usato per pesare il valore di similarità dei vari slot e Mli è il valore di
similarità tra il valore dello slot l e il valore dello slot corrispondente
nel chunk i. I valori di similarità possono essere definiti dal creatore del
32 le architetture cognitive e act-r
Buffer x
slot 1
Chunk sorgente 1
Chunk sorgente 2
slot 2
W1
W2
Chunk 1
Chunk 2
Chunk 3
S11
S21
S12
S22
S13
S23
Figura 5: Spiegazione del meccanismo di spreading activation in ACT-R.
modello specificando a mano la similarità tra coppie di valori oppure
tramite delle similarity hook functions.
Rumore
Come già accennato la componente di rumore è composta in realtà da
due parti: un rumore permanente associato ad un chunk e un rumore
istantaneo ricalcolato ad ogni tentativo di retrieval. Entrambi questi valori
sono generati grazie ad una distribuzione logistica, caratterizzata da un
parametro s, con media 0 e varianza calcolata in relazione ad s:
σ2 =π2
3s2 (6)
Latenza del retrieval
Il valore di attivazione non controlla solo la possibilità di un chunk di
essere recuperato dalla declarative memory, ma determina anche quanto
velocemente questo chunk può essere recuperato. Il tempo che trascorre
3.3 le componenti subsimboliche di act-r 33
dal momento in cui viene fatta una richiesta di retrieval e il momento in
cui il chunk risulti disponibile nel retrieval buffer è dato dall’equazione:
time = Fe−A (7)
dove A è il valore di attivazione del chunk scelto per il retrieval ed F è un
parametro che descrive il fattore di latenza del sistema.
Se siamo in presenza di un retrieval failure e quindi nessun chunk viene
inserito all’interno del retrieval buffer, allora il tempo che trascorre prima
della segnalazione del fallimento è dato da:
time = Fe−τ (8)
dove τ è la soglia di retrieval.
3.3.2 Utilità delle produzioni
Una parte molto importante dei meccanismi subsimbolici di ACT-R ri-
guarda il calcolo dell’utilità delle varie produzioni. In modo simile al va-
lore di attivazione per i chunk, l’utilità permette al production system di
scegliere di mandare in esecuzione una produzione piuttosto che un’altra,
durante il processo di conflict resolution.
Questi valori di utilità possono essere impostati a mano dal creato-
re del modello per ogni produzione e influiscono, insieme ad una com-
ponente di rumore sulla probabilità di una produzione di essere scelta
per l’esecuzione. In alternativa, l’utilità può essere appresa dal sistema
durante l’esecuzione grazie ad meccanismo di apprendimento basato su
ricompense.
Altri processi importanti, ma che non approfondirò, legati al sistema
di produzioni sono sicuramente l’apprendimento di regole di produzio-
ne (che permette la creazione di nuove regole di produzione grazie alla
fusione di due regole esistenti) e il partial matching procedurale, il cui
funzionamento è molto simile al partial matching dichiarativo.4
4 All’interno delle produzioni il partial matching è esteso anche ai nomi degli slot, oltre che
ai loro valori, e prende il nome di dynamic partial matching.
34 le architetture cognitive e act-r
3.4 l’ambiente di sviluppo e gli esperimenti
Come già accennato, l’architettura cognitiva è contemporaneamente una
teoria cognitiva e un ambiente di sviluppo. Nello specifico l’ambiente
ACT-R fornisce un’interfaccia grafica per scrivere, eseguire, analizzare ed
effettuare debug di modelli ACT-R. I modelli non sono altro che dei pro-
grammi scritti in sintassi Lisp, comprensivi di alcune direttive che per-
mettono ad ACT-R di interpretarli ed eseguirli. Essi contengono tutte le
definizioni di chunk-type e chunk presenti in memoria, le produzioni e
tutti i parametri5 per adattare ai propri fini l’esecuzione di ACT-R, ol-
tre che le funzioni Lisp per manovrare la simulazione dell’esperimento
(chiamato anche task) e l’interazione con l’ambiente esterno. L’ambiente
esterno standard consiste in una finestra dove viene modellato uno scher-
mo 2d e vengono presentate lettere o immagini, dalla quale provengono
suoni e sulla quale è possibile visualizzare o ascoltare l’output delle azio-
ni collegate al motor module e allo speech module e un indicatore della
"posizione" del focus attenzionale (rappresentato con un cerchietto rosso).
In ogni caso, quando necessario, è possibile creare nuovi device astratti
per modellare una particolare interazione.
Il creatore di un modello ha solitamente come obiettivo quello di te-
stare una propria assunzione su un particolare task cognitivo e, grazie
ad ACT-R, può confrontare i risultati ottenuti dal modello con i risultati
ottenuti dagli esseri umani, in quanto i risultati forniti da ACT-R sono
espressi con le classiche unità di misura utilizzate in psicologia cognitiva,
ovvero:
• tempi di reazione e tempi di completamento del task;
• accuratezza nello svolgimento del compito;
• dati neurologici, grazie all’ipotesi di mapping con il cervello (se-
zione 3.5), confrontabili con dati ottenuti grazie alle tecniche di
5 ACT-R è un’architettura davvero molto personalizzabile: tutte le quantità che abbiamo
introdotto all’interno di questo capitolo possono essere regolate e assestate per adattare
la simulazione ai propri scopi.
3.5 ipotesi di mapping con il cervello 35
neuroimaging (ad esempio le risonanze magnetiche funzionali
(fMRI));
la nozione del tempo ACT-R fa uso di un concetto di tempo simu-
lato per rendere indipendente la nozione di tempo impiegato per portare
a termine un task cognitivo, dalla nozione di tempo di esecuzione del
programma, che dipende da molti fattori esterni, come le caratteristiche
tecniche della macchina su cui viene eseguito, gli altri programmi in ese-
cuzione, etc. Il tempo parte da 0 all’avvio del modello e ogni operazione
eseguita da un modulo ACT-R richiede un tempo preciso per poter essere
completata. Un esempio citato precedentemente è il tempo di retrieval di
un chunk dalla memoria dichiarativa. Tutte le volte in cui abbiamo pre-
cedentemente accennato ad una nozione di tempo impiegato da un mo-
dulo per compiere un’operazione, si faceva riferimento proprio a questo
significato.
esecuzione e trace Per eseguire un modello è necessario carica-
re l’ambiente ACT-R all’interno dell’ambiente Lisp, successivamente ca-
ricare un modello e procedere con l’avvio della sua esecuzione. Quando
un modello viene eseguito è inoltre possibile visualizzare un trace che
da indicazioni su ciò che sta avvenendo all’interno del sistema, compre-
so il tempo di avvio di ciascuna istruzione. Ne vediamo qui di seguito
un esempio, dove nella prima colonna abbiamo il tempo, nella secon-
da il modulo coinvolto e nella terza l’operazione eseguita all’interno del
modulo.
[...]
0.050 DECLARATIVE START-RETRIEVAL
0.050 PROCEDURAL CONFLICT-RESOLUTION
[...]
3.5 ipotesi di mapping con il cervello
Storicamente, lo studio della mente e lo studio del cervello sono stati a
lungo separati. La psicologia si avvicinava alla mente come se fosse una
scatola nera, un’entità il cui lavorio interno risultava nascosto, ma il cui
36 le architetture cognitive e act-r
funzionamento poteva essere esplorato esaminando le trasformazioni tra i
dati in entrata e i dati in uscita e misurando parametri caratteristici di tali
trasformazioni, quali i tempi di reazione e l’accuratezza nello svolgimento
di un compito. Lo studio del cervello, viceversa, era il regno della biologia.
Questa condizione è cambiata radicalmente negli ultimi decenni perché i
grandi progressi teorici e tecnologici hanno favorito lo sviluppo di alcu-
ne metodiche non invasive in grado di investigare il funzionamento del
cervello: le tecniche di neuroimaging [40].
DLPFC (goal buffer)
VLPFC (retrieval buffer)
Ippocampo (declarative module)
Area corticale motoriae somatosensoriale (manual buffer)
Cervelletto (motor module)
Ganglia basale (production system)
Figura 6: Brain mapping hypothesis
Proprio grazie a numerose ricerche basate sul neuroimaging, nelle ul-
time versioni di ACT-R sono state fatte delle ipotesi su quali regioni del
cervello fossero associate alle diverse parti dell’architettura [6]. Questo ha
permesso di equipaggiare ACT-R con una nuova funzionalità: è infatti in
grado di prevedere la forma e l’evoluzione temporale del segnale BOLD6
di molte aree del cervello. Questi dati possono così essere confrontati con
quelli ricavati grazie alle risonanze magnetiche funzionali (fMRI), o ad al-
tre tecniche di neuroimaging, su soggetti impegnati nel task cognitivo che
6 La tecnica BOLD (Blood Oxygenation Level Dependent) è la tecnica più frequentemente
usata per le misurazioni basate sulle risonanze magnetiche e trae vantaggio dal fatto che
le proporzioni relative di emoglobina ossigenata e deossigenata nel sangue cambiano in
seguito all’aumento dell’attività neuronale.
3.6 java act-r e act-r 6 .1 37
si vuole riprodurre all’interno dell’architettura. Ad ogni modulo e buffer,
appartenente al core di ACT-R, è stato associata la regione corticale che si
pensa sia collegata ad esso. Così, come vediamo in Figura 6, il goal buffer
è associato alla corteccia prefrontale dorsolaterale (DLPFC), il retrieval
buffer è legato alla corteccia prefrontale ventrolaterale (VLPFC) mentre
il modulo dichiarativo all’ippocampo, il manual buffer all’area corticale
motoria e somatosensoriale, il modulo motorio al cervelletto e il sistema
centrale al ganglia basale.
3.6 java act-r e act-r 6 .1
Java ACT-R
Esistono diverse implementazioni della teoria cognitiva descritta da ACT-
R; quella che abbiamo deciso di utilizzare per questo progetto è la ver-
sione di 6.0 di Java ACT-R7, resa disponibile l’8 Giugno 2013 da Dario
Salvucci.
chunk-types e slot nil Le principali differenze tra la versione ca-
nonica (in Lisp) e la versione Java sono relative ai chunk-type. In Java
ACT-R infatti non è possibile definire i tipi di chunk e non è, di conse-
guenza, implementato nessun meccanismo di ereditarietà. Lo slot isa può
essere utilizzato, ma non comporta nessun vincolo e viene trattato come
uno slot standard, quindi soggetto a spreading activation, etc. Inoltre, un
chunk può avere solo slot non nil. Questo significa che esplicitare nil come
valore di uno slot corrisponde a richiedere che il chunk non abbia quello
slot.
creazione degli esperimenti Abbiamo visto come, nella versio-
ne Lisp di ACT-R, sia possibile creare i propri esperimenti (o task) diret-
tamente all’interno del file Lisp contenente anche il modello (sezione 3.4).
In questa versione il codice relativo agli esperimenti deve essere scritto in
Java ed è contenuto in una classe che deve estendere la classe Task. Per
7 Java ACT-R - http://cog.cs.drexel.edu/act-r
38 le architetture cognitive e act-r
indicare a quale Task fare riferimento, il modello deve esplicitarlo grazie
al comando:
(set-task "actr.tasks.mytask.MyTask")
Come nell’implementazione Lisp è possibile interagire con una finestra
relativa all’esperimento, controllare gli eventuali suoni da far percepire e
catturare il risultato dell’esperimento.
ACT-R 6.1
Nella versione 6.1 di ACT-R8, resa disponibile il 22 Dicembre 2014 [9], so-
no state apportate alcune modifiche che, sotto certi aspetti, hanno ridotto
la distanza tra la versione Lisp e la versione Java di ACT-R 6.0.
chunk-types Come in Java ACT-R i chunk-type non sono necessari,
ma possono comunque essere definiti. Il chunk-type diventa una dichiara-
zione, ma non comporta più dei vincoli; qualsiasi slot isa specificato nelle
produzioni non verrà utilizzato dal modello, nè come test di una produ-
zione, nè all’interno di una richiesta ad un modulo. Ma allora a cosa serve
definire i chunk type?
• Se un chunk, dichiarato di un determinato tipo, contiene uno slot
non valido per la dichiarazione di tipo, viene generata una warning
in modo da avvisare l’utente;
• L’inclusione implicita di valori di default per uno slot (vedi 3.2.1)
adesso occorre sia all’interno della definizione del chunk, sia all’in-
terno delle produzioni che utilizzano quel tipo di chunk. Ad esem-
pio, se in una produzione viene specificato un chunk type con lo
slot isa, questo verrà sostituito con tutti i valori di default specificati
nell’eventuale dichiarazione di tipo, ma non specificati all’interno
della produzione. Vediamo un esempio:
(chunk-type mytype
(myslotname mydefaultvalue)
myslotname2
)
8 ACT-R - http://act-r.psy.cmu.edu/software/
3.6 java act-r e act-r 6 .1 39
(p e1
% se il goal buffer e’ vuoto
?goal>
buffer empty
==>
% inserisci all’interno un chunk con isa mytype
+goal>
isa mytype
)
La porzione di codice precedente, se eseguita all’interno della
versione 6.0, avrebbe creato all’interno del goal buffer un nuovo
chunk con isa mytype e con slot myslotname = mydefaultvalue e
myslotnme2 = nil; utilizzando la nuova versione di ACT-R la pro-
duzione e1 sarebbe stata rimpiazzata con la seguente, generando un
chunk senza slot isa e senza slot myslotname2 (perché in assenza del
valore di default sarebbe assegnato a nil), ma con lo slot myslotname
riempito con il valore di default:
(p e1
?goal>
buffer empty
==>
+goal>
myslotname mydefaultvalue
)
Le richieste ai moduli percettivi e motori, che facevano uso intenso
dello slot isa per specificare il tipo di azione da eseguire, utilizzano uno
slot speciale cmd per tale scopo.
nuovi action symbols Le richieste di tipo + al goal buffer possono
essere, a seconda dei parametri specificati, sia richieste dirette, sia richie-
ste di modifica del contenuto; nella versione 6.0 la distinzione veniva fatta
grazie alla presenza (o assenza) dello slot isa: la presenza dello slot isa
indicava una richiesta, mentre l’assenza indicava una richiesta di modifi-
ca. Per questo motivo viene introdotto l’action symbol * utilizzabile per
identificare le richieste di modifica.
40 le architetture cognitive e act-r
Inoltre, l’action symbol = nella versione 6.0 aveva un doppio utilizzo:
se utilizzato nelle premesse di una produzione per testare il contenuto di
un buffer, e se utilizzato nel conseguente per modificare il contenuto del
buffer. Questo secondo utilizzo viene assegnato al nuovo simbolo @.
In questo modo non sono più presenti dei comportamenti ”speciali”
delle azioni all’interno delle produzioni, in base alla posizione dove il
simbolo è utilizzato.
4I L S I S T E M A E L’ I N T E G R A Z I O N E C O N A C T- R
In questo capitolo viene descritto il framework teorico alla base del sistema
S1-S2 (sezione 4.1), la sua prima implementazione (sezione 4.2) e le esten-
sioni che sono state apportate durante il corso della tesi, per arrivare al
sistema Dual-PECCS (sezione 4.3). Successivamente viene descritta l’in-
tegrazione di Dual-PECCS all’interno dell’architettura cognitiva ACT-R
(sezione 4.4).
4.1 il framework teorico
4.1.1 L’ipotesi dei proxytypes eterogenei
Nella formulazione originale della teoria di Prinz (introdotta nella sotto-
sezione 2.1.5) i proxytypes sono raffigurati come delle strutture concettuali
monolitiche, principalmente rappresentate con i prototipi. Recentemente
è stata proposta una modifica di questo approccio nell’ambito delle BICA
(Biologically Inspired Cognitive Architectures), ipotizzando la disponibilità
di più tipologie di rappresentazioni per ogni concetto [19], seguendo l’i-
potesi di eterogeneità descritta nella sezione 2.4. In Figura 7 possiamo
vedere uno schema rappresentante l’idea dei proxytypes eterogenei. Lo sti-
molo percepito (in questo caso una balena) viene confrontato con la rete
delle rappresentazioni contenuta all’interno della memoria a lungo ter-
mine. L’elemento più simile allo stimolo viene poi proxyficato, ovvero la
rappresentazione scelta viene portata in memoria di lavoro. In questo ca-
so, viene estratto l’esemplare di mammifero corrispondente alla balena,
mentre il prototipo viene messo da parte in quanto, essendo lo stimo-
41
42 il sistema e l’integrazione con act-r
lo decisamente atipico per tale categoria, è plausibilmente più distante
dell’esemplare scelto per la proxyficazione.1
Memoria di lavoro
Memoria a lungo termine
esemplari
Concetto diMAMMIFERO
prototipo …
esemplare di balena
proxificazione
confronto basato su
similarità
rappresentazione classica
Stimolo percepito
Figura 7: Schema ad alto livello della teoria dei proxytypes eterogenei
4.1.2 L’ipotesi di dualità
Nella sezione sezione 2.3 è stata presentata un’introduzione alle dual pro-
cess theories. Il framework S1-S2 segue le intuizioni legate a queste teorie
ed introduce una nozione di dualità nei processi legati alla categorizza-
zione, seguendo l’intuizione che un sistema per la rappresentazione dei
concetti debba includere più componenti:
• una componente di tipo 1, dedicato alla gestione delle rappresen-
tazioni tipiche (fondamentali in compiti come la categorizzazione),
1 Queste assunzioni legate alla tipologia di rappresentazione attivata a fronte di uno
stimolo sono suggerite da studi psicologici, ad esempio lo studio di Barbara Malt [25].
4.2 il sistema ∫ 1-∫ 2 e la pipeline 43
che realizza un tipo di ragionamento non monotòno "debole", più
approssimativo, ma molto veloce.
• una componente di tipo 2, caratterizzato da un ragionamento
di tipo monotòno e lento, che è adatto alla rappresentazione di
informazioni classiche, e al ragionamento basato su regole.
All’interno del framework la componente di tipo 1 è identificato con la
sigla S1 e la componente di tipo 2 con la sigla S2.
Riassumendo, il framework introdotto si appoggia dal punto di vista
rappresentazionale all’ipotesi di eterogeneità e alla teoria dei proxytypes.
In aggiunta, dal punto di vista dei meccanismi di ragionamento, il task
di categorizzazione (e quindi di proxyficazione) di un concetto è stato
demandato a diversi tipi di processi che - in accordo con la dual process
theory - simulano i processi cognitivi di tipo S1 e S2.
4.2 il sistema S1-S2 e la pipeline
Nella sezione 2.2 sono stati descritti i livelli di rappresentazione disponi-
bili per esprimere le informazioni concettuali: simbolico, connessionista
e concettuale. Questa tripartizione mette a disposizione molti modi per
codificare le informazioni concettuali. Consideriamo, ad esempio, le infor-
mazioni prototipiche: da un punto di vista simbolico, potrebbero essere
codificate in termini di frame o reti semantiche; da un punto di vista con-
cettuale sono rappresentabili come centroidi di una regione dello spazio;
da un punto di vista subsimbolico si potrebbe utilizzare una rete neurale.
La stessa cosa vale anche per le rappresentazioni basate su esemplari e
per le rappresentazioni classiche. Ovviamente, per ogni tipologia di rap-
presentazione esistono formalismi più "naturalmente" adatti di altri: gli
spazi concettuali per le rappresentazioni tipiche e gli approcci basati su
logica per le rappresentazioni classiche, ne sono un esempio.
L’architettura del sistema (schematizzata in Figura 8) è divisa in due
sottosistemi cooperanti, in modo da rappresentare i due tipi di processi
44 il sistema e l’integrazione con act-r
Rappresentazione del concetto X
Ragionamentonon monotono
rappresentazioni tipiche di X
Categorizzazione basata su esemplari e prototipi
hasComponentSystem 1
Ragionamentomonotono
rappresentazione classica di X
Categorizzazione basata su ontologia
hasComponent System 2
Figura 8: Architettura della base di conoscenza
descritti dalla dual process hypothesis. In particolare, all’interno del sotto-
sistema di tipo 1 (che chiameremo S1) i concetti sono rappresentati in
modo tipico, inizialmente tramite rappresentazioni prototipiche, e suc-
cessivamente (si veda sottosezione 4.3.1), amalgamando rappresentazioni
prototipiche ed esemplari. Il sottosistema di tipo 2 (S2) è invece basato
su logiche descrittive ed ha lo scopo di rappresentare i tratti classici dei
concetti.2 La freccia centrale rappresenta l’idea che il processo di elabo-
razione, all’interno del sistema, inizino con il sistema S1, più veloce e
approssimativo, per poi spostarsi verso il sistema S2, più lento ma preci-
so. Nel nostro caso, il sistema S2 ha il compito di effettuare un controllo
di consistenza del risultato basato su tipicalità, e, se possibile, restituire
una specificazione di tale risultato. In caso di risultato consistente il pro-
cesso cognitivo termina, altrimenti torna nelle mani del sistema S1 e si
ripete, tentando con un nuovo risultato concettuale tipico.
Il funzionamento generale del sistema S1-S2 è descritto
dall’Algoritmo 1, dove possiamo vedere l’interazione dei sottosiste-
mi ed il calcolo del risultato della classificazione. L’input è rappresentato
2 Con tratti classici intendiamo adatti ad essere rappresentati secondo la teoria classica,
grazie ad un insieme di condizioni necessarie e sufficienti.
4.2 il sistema ∫ 1-∫ 2 e la pipeline 45
Algoritmo 1: Il processo di categorizzazione di S1-S2.
Data: Uno stimolo nel formato intermedio, d
Result: Una coppia 〈resS1, resS2〉// conceptual spaces output
C← S1(d);
for each ci ∈ C do
// ontology based output
cc← S2(〈d, ci〉);if cc == NULL then
// inconsistency detected
continue;
end
if cc equals ci then
return 〈c0, cc〉;else
if cc is subclass of ci then
return 〈c0, cc〉;end
end
end
cc← S2(〈d, Thing〉);return 〈c0, cc〉;
da uno stimolo codificato in un formato intermedio, che viene utilizzato
per interrogare il sistema S1. Il risultato di tale interrogazione è una lista
di concetti ordinata per distanza crescente: il primo concetto di tale lista
sarà il risultato calcolato dal sottosistema S1. Per calcolare il risultato
del sottosistema S2 si valuta la consistenza della descrizione in relazione
ai concetti restituiti da S1, considerandoli uno per volta in ordine di
distanza crescente. A questo punto si presentano diversi casi:
• S2 dichiara un’inconsistenza con la base di conoscenza ontologica:
questo significa che la rappresentazione classica del concetto propo-
sto da S1 contiene qualche informazione in conflitto con lo stimolo
da classificare e quindi non può rappresentare una soluzione valida.
46 il sistema e l’integrazione con act-r
In questo caso l’algoritmo analizza il prossimo concetto proposto da
S1. Quando non ci sono più risultati di S1 da valutare e nessuno di
quelli già valutati è stato ritenuto consistente, il sistema 2 classifica
la descrizione in input basandosi unicamente su meccanismi classici,
cercando quindi di trovare la classe più adatta per lo stimolo a par-
tire dalla radice dell’ontologia (Thing). Ovviamente, nella maggior
parte dei casi, tale risultato sarà molto generico e poco significativo.
• S2 dichiara che la rappresentazione classica del risultato proposto
da S1 è consistente con la descrizione dello stimolo da classificare.
In questo caso S2 analizza le sottoclassi del concetto proposto, se
presenti, e restituisce la più piccola sottoclasse ancora consistente
con la descrizione, in modo da specificare quanto più possibile il
risultato. Se non viene trovata una sottoclasse adatta il risultato di
S2 sarà la stessa rappresentazione proposta da S1 e il processo di
classificazione termina.
un esempio completo Consideriamo lo stimolo "Il grandissimo
pesce che mangia plankton", codificato come segue nel formato intermedio:
<family>fish</family>
<genericPhysicalDescription>
<size>
<x>350</x>
<y>500</y>
<z>6000</z>
</size>
<feeding>
<favoriteFood>plankton</favoriteFood>
</feeding>
</genericPhysicalDescription>
Listing 1: Codifica dello stimolo ’Il grandissimo pesce che mangia plankton’
Il sistema S1 potrebbe generare la classifica di rappresentazioni pro-
totipiche riportata in Tabella 1, dove per ogni concetto è specificata la
distanza del prototipo del concetto dallo stimolo da classificare.
In questo esempio il risultato proposto da S1 è il prototipo di balena,
ma il controllo di consistenza con S2 segnalerà un’inconsistenza di que-
4.2 il sistema ∫ 1-∫ 2 e la pipeline 47
Rappresentazione Distanza dall’istanza
Balena 326,74
Squalo 359,99
Salmone 373,45
Serpente 456,39
... ...
Tabella 1: Esempio di classifica generata dal sistema S1.
sto risultato in riferimento alla descrizione, specificando che la rappre-
sentazione classica del concetto balena contiene l’informazione che è un
mammifero e non può quindi essere anche un pesce, come richiesto invece
dallo stimolo.3
Si passerà, quindi, ad esaminare il secondo concetto proposto da S1:
squalo. In questo caso S2, non trovando inconsistenze, dichiarerà il con-
cetto consistente con lo stimolo e cercherà di calcolare la sottoclasse di
squalo più specifica possibile, pur rimanendo consistente con lo stimolo.
Questa seconda analisi ricaverà la classe squalo balena, quindi il risultato
del sistema S1-S2 sarà la coppia 〈balena, squalo balena〉.
Per completare la pipeline e poter esaminare direttamente gli input
testuali è stato sviluppato un semplice estrattore di informazioni. Tale
estrattore, analizza tramite un analizzatore morfologico e un automa la
descrizione linguistica dello stimolo e ne genera una traduzione codificata
nel formato intermedio.
Nelle prossime sezioni andremo ad analizzare un po’ più nel dettaglio
i vari sottosistemi e, in modo molto generale, lo step di estrazione delle
informazioni.
3 Le classi mammifero e pesce sono disgiunte, quindi l’appartenenza di un’istanza ad una
delle due classi, ne vincola la non appartenenza all’altra.
48 il sistema e l’integrazione con act-r
4.2.1 Il sottosistema S1
In questa sezione vedremo un quadro generale relativo all’implemen-
tazione del sistema S1; successivamente, nella sottosezione 4.3.1 vedre-
mo l’algoritmo che governa il sottosistema S1 dopo l’introduzione delle
rappresentazioni basate su esemplari.
Codifica delle rappresentazioni e ambiguità
Ogni informazione all’interno della knowledge base di S1 segue il for-
mato che descriveremo nella sottosezione 4.2.2, in particolare utilizzando
una codifica XML. Ogni termine all’interno di una rappresentazione è
arricchito da un identificatore legato al database lessicale WordNet4 per
stabilirne univocamente il senso. Questa associazione tra termini in lin-
guaggio naturale e sensi WordNet è molto importante per risolvere il
problema dell’ambiguità. Infatti, riferendoci a WordNet, possiamo iden-
tificare e distinguere, ad esempio, il concetto di ala di un passerotto da
quello di ala di un aereo, associandoli a due significati differenti, espressi
in WordNet tramite i synsets (ovvero i Synonyms Sets), oppure, allo stes-
so modo, ricondurre allo stesso significato termini diversi, come pelo e
pelliccia.
Un esempio semplificato di rappresentazione prototipica contenuta in
S1 è descritta nella porzione di codice Listing 2.
Calcolo della distanza tra due istanze
Le rappresentazioni, codificate nel formato intermedio, sono in realtà
punti di uno spazio concettuale, appositamente strutturato per codificare
tali tipi di informazioni. Come introdotto nella sottosezione 2.2.3, relativa
agli spazi concettuali, le istanze dei concetti non sono altro che insiemi
di punti in vari domini (ad esempio forma, colore, dimensione, etc...).
Proprio grazie a questa rappresentazione geometrica è possibile calcolare
un valore di distanza tra due concetti facendo riferimento ad una metri-
ca di distanza nello spazio. La distanza tra due punti appartenenti allo
stesso dominio è calcolabile con la distanza euclidea, mentre la distanza
4 WordNet - http://wordnet.princeton.edu/
4.2 il sistema ∫ 1-∫ 2 e la pipeline 49
tra due istanze (che quindi fanno riferimento a più domini) è calcola-
ta come combinazione tra le distanze dei vari punti nei domini che le
compongono.
Osservazioni sul contesto
Una considerazione fondamentale per la definizione di un valore di si-
milarità tra rappresentazioni diverse basate su tipicalità è che tale valore
di similarità dipende fortemente dal contesto. Ad esempio, se conside-
rassimo unicamente l’aspetto fisico, il concetto di uomo e il concetto di
manichino potrebbero essere considerati molto simili, mentre se venisse
considerato l’aspetto legato alla vitalità o alle funzionalità essi sarebbe-
ro decisamente differenti [27]. Per questo motivo, all’interno del sistema,
non viene definita una misura di similarità assoluta tra due rappresenta-
zioni, ma tale misura è calcolabile solo in relazione ad un contesto, nel no-
stro caso rappresentato dalle caratteristiche richieste nell’istanza in input.
Ad esempio, se l’istanza in input specifica soltanto "[...] avente due braccia
e due gambe" il concetto manichino e il concetto uomo saranno entrambi
molto vicini all’istanza, mentre se l’istanza fosse leggermente diversa, in-
troducendo, ad esempio, una nozione di movimento come "[...] che corre
per strada" a questo punto il concetto di uomo sarebbe certamente favorito.
4.2.2 Il formato di S1
Il formato utilizzato all’interno del sistema S1 è stato studiato, in origine
([28], [21]), per descrivere 3 categorie di concetti: animali, piante e artefat-
ti. Le caratteristiche di queste tipologie di concetti sono state suddivise in
due macro-domini: genericPhisicalDescription, che descrive le caratte-
ristiche fisiche percepibili del concetto e manRelationship, che descrive le
caratteristiche più astratte che vengono associate dall’uomo a tale concet-
to. Più nel dettaglio, ogni istanza basata su tipicalità (quindi prototipo o
esemplare) di un dato concetto può essere descritta da un sottoinsieme,
opportunamente selezionato, delle seguenti caratteristiche:
• class, viene utilizzato per assegnare l’istanza ad una delle catego-
rie di elementi descritti, quindi può assumere come valore: animal,
plant, artifact.
50 il sistema e l’integrazione con act-r
• family, rappresenta un secondo livello di categorizzazione dell’e-
lemento descritto. Per quanto riguarda gli animali, viene utilizzato
per esplicitarne la categoria all’interno del regno animale, quindi,
per esempio, mammal, reptile, amphibian, etc... Per quanto riguarda
piante e artefatti l’utilizzo è simile.
• genericPhisicalDescription, è l’elemento più importante del for-
mato di rappresentazione in quanto permette di descriverne i tratti
fisici. Al suo interno sono presenti 8 sotto-domini:
– size, rappresenta la dimensione del dominio grazie alle tre di-
mensioni della geometria euclidea x, y e z. Tali dimensioni ven-
gono espresse in centimetri e descritte considerando l’oggetto
come se fosse posizionato ’di fronte’ all’osservatore, quindi, ad
esempio, un letto guardandolo dal fondo verso la testata, un
animale con il muso, dritto, rivolto verso l’osservatore, etc.
– shape, le tre dimensioni del campo size, se escluse dal con-
testo, descrivono unicamente parallelepipedi, mentre, grazie a
questa dimensione, vengono accoppiate ad un riferimento sulla
forma dell’elemento descritto, ad esempio circular.
– color, per rappresentare i colori viene utilizzato lo spazio dei
colori L*a*b*, dove L* indica la luminosità, a* è una prima coor-
dinata di cromaticità, che spazia dal verde al rosso, e b* è una
seconda coordinata di cromaticità che spazia dal blu al giallo.
– location, è utile per rappresentare i luoghi in cui è solitamen-
te trovato l’elemento che stiamo descrivendo. Questo dominio
è descritto da 6 dimensioni: humidity in %, temperature in ◦C,
altitude in metri, vegetation, time5 e favoriteLocation Que-
st’ultima in particolare permette di specificare ulteriormente il
luogo con una stringa arbitraria, indicando ad esempio il fatto
che una scimmia nella foresta ama stare sugli alberi.
– feeding, è stato pensato specificatamente per gli animali e
rappresenta la tipologia di nutrimento di un particolare esse-
re vivente. Questo dominio è descritto da 3 dimensioni rap-
5 Il time è espresso con una fascia oraria, scelta tra: alba, mattino, pomeriggio, sera, notte
4.2 il sistema ∫ 1-∫ 2 e la pipeline 51
presentanti la tipologia di nutrimento6, la quantità di nutri-
mento in kg e il nutrimento preferito, ad esempio usato per
rappresentare il fatto che il prototipo di topo ama mangiare
formaggio.
– locomotion, utilizzato per rappresentare il tipo di movimento7
di un elemento e la sua velocità in km/h.
– hasPart e partOf, fondamentali per esprimere le relazioni di
meronimia e olonimia. Ogni parte può essere descritta da
quattro caratteristiche: name, number, partSize e partColor.
• manRelationship, come accennato precedentemente, serve per rap-
presentare quelle caratteristiche di un oggetto o un animale che ven-
gono associate dagli esseri umani, ma che non sono legate ad una
percezione sensoriale, più nel dettaglio abbiamo 3 opzioni:
– function, per rappresentare le funzioni di un oggetto, ad
esempio il fatto che un aereo ha la funzione di mezzo di trasporto.
– product, permette di indicare che l’elemento produce qualco-
sa o una parte dell’elemento è un prodotto per l’uomo. Un
esempio può essere quello della gallina che produce uova e viene
allevata per produrre carne.
– symbol, rappresenta il simbolo che gli esseri umani general-
mente attribuiscono a tale elemento. Ad esempio il fatto che
una corona sia simbolo di potere, o un leone sia simbolo di
maestà.
Nella porzione di codice seguente vediamo un esempio di descrizione
prototipica relativa al concetto di lumaca, codificata nel formato appena
descritto. Viene specificato che è un animale ed un mollusco, che tipica-
mente è piccolo e marrone, che è erbivoro e assume piccole quantità di
cibo, che ha due antenne ed un guscio e che solitamente simboleggia la
lentezza.
6 La tipologia di nutrimento è un valore a scelta tra erbivoro, lectivoro, detrivoro, necrofago e
carnivoro
7 Le tipologie di movimento sono nuotare, scavare, strisciare, camminare, correre, movimento
con ruote, saltare e volare
52 il sistema e l’integrazione con act-r
<object id="01944390" name="snail">
<class id="00015388">animal</class>
<family id="01940736">mollusk</family>
<genericPhysicalDescription>
<size>
<x>2</x>
<y>5</y>
<z>3</z>
</size>
<color id="04971928" name="brown">
<l>47</l>
<a>14</a>
<b>55</b>
</color>
<feeding id="01324610" name="herbivore">
<foodType>1</foodType>
<foodQuantity>0.5</foodQuantity>
</feeding>
<hasPart id="02584915" name="feeler">
<number>2</number>
<partSize>
<x>0.1</x>
<y>1</y>
<z>0.1</z>
</partSize>
</hasPart>
<hasPart id="01903756" name="shell">
<number>1</number>
<partSize>
<x>1</x>
<y>2</y>
<z>2</z>
</partSize>
<partColor id="04971928" name="brown">
<l>47</l>
<a>14</a>
<b>55</b>
</partColor>
</hasPart>
</genericPhysicalDescription>
4.2 il sistema ∫ 1-∫ 2 e la pipeline 53
<manRelationship>
<symbol id="00980527">slowness</symbol>
</manRelationship>
</object>
Listing 2: Esempio di rappresentazione nel formato intermedio
4.2.3 Il sottosistema S2
La base di conoscenza e i processi di ragionamento di S2 fanno riferimen-
to all’ontologia formale OpenCyc, una versione ridotta e libera dell’onto-
logia Cyc.8 Un concetto all’interno del sottosistema 2 è quindi rappresen-
tato da un termine in OpenCyc; i termini sono messi in relazione tra di
loro grazie a un insieme di relazioni di sussunzione e sono coinvolti in
un insieme di asserzioni che esprimono proprietà, relazioni, etc...
Le informazioni contenute all’interno di S2 rappresentano unicamente
caratteristiche che sono sempre vere per le istanze di tali classi. In questo
modo la base di conoscenza tipica può solo estendere tale conoscenza, ma
nè i prototipi, nè gli esemplari possono essere in contraddizione con le
affermazioni fatte all’interno della rappresentazione classica.
S2 può soddisfare due tipologie di richieste: controlli di consistenza e
richieste di classificazione. Le richieste devono essere espresse in un for-
mato intermedio, diverso da quello utilizzato all’interno del sistema S1,
nel quale le varie proprietà dello stimolo sono espresse tramite i loro iden-
tificatori WordNet e sono connesse tramite un set predefinito di relazioni.
Successivamente, all’interno del sistema gli identificatori WordNet verran-
no convertiti in identificatori interni a OpenCyc, grazie ad una specifica
tabella di mapping.
(1) controlli di consistenza In questo caso il sistema riceve in
input uno stimolo codificato nel formato S2 e l’identificatore di una classe
dell’ontologia e verifica la consistenza delle proprietà espresse all’interno
8 Cyc è una base di conoscenza generale molto grande riguardante concetti di senso
comune e sviluppata negli ultimi 20 anni dalla Cycorp [18].
54 il sistema e l’integrazione con act-r
dello stimolo con quelle specificate per la classe all’interno dell’ontolo-
gia. Questo viene fatto creando una nuova istanza temporanea all’inter-
no dell’ontologia, specificando tutte le informazioni descritte nell’input e
mettendola in relazione di sussunzione con la classe interna all’ontologia,
specificata dal secondo parametro in input.
Questa funzionalità di controllo è molto importante, in quando previe-
ne errori relativi a conoscenze di senso comune che sono in realtà erra-
te. Ad esempio è il caso della frase "Il grande pesce che mangia plankton"
che, associato al concetto di balena, genera un’inconsistenza con la base
di conoscenza ontologica in quanto la classe balena è una sottoclasse di
mammifero, che è a sua volta disgiunta dalla classe pesce.
(2) richieste di classificazione E’ possibile richiedere al siste-
ma S2 anche una categorizzazione indipendente dello stimolo in input.
In questo caso il sistema partirà dalla radice dell’ontologia e cercherà la
posizione più opportuna all’interno dell’ontologia per lo stimolo da clas-
sificare. Questa operazione viene effettuata solo quando non ci sono altre
possibilità in quanto, nella maggior parte dei casi, fornisce risultati molto
generici e poco significativi.
4.2.4 Lo step di Information Extraction
Già dalla prima implementazione del sistema è stato previsto uno step
esterno ed indipendente dal sistema S1-S2 avente lo scopo di estrarre le
informazioni rilevanti a partire da uno stimolo testuale e codificarle nel
formato intermedio adatto ad interrogare S1 [36]. Innanzitutto la frase
viene esaminata per estrarre le informazioni morfologiche, che verranno
utilizzate per guidare un automa a stati finiti, costruito per descrivere
la struttura delle frasi. Le informazioni relative al POS tagging (Part Of
Speech tagging) sono calcolate grazie allo Stanford POS Tagger [44]. Gli
stati e le transizioni dell’automa sono codificati e guidati dai POS tag
in modo da estrarre le informazioni utili al sistema: gli stati contengono
i tipi di informazione rilevanti (ad esempio il luogo dove vive qualcosa,
la funzione di un artefatto, il colore di una parte, etc...), mentre le tran-
sizioni codificano dei modificatori che hanno un significato particolare
4.3 estensione di ∫ 1-∫ 2 : il sistema dual-peccs 55
nelle frasi esaminate. Ad esempio nella frase "Il grande carnivoro con
strisce gialle e nere" la preposizione con introduce una parte dell’istanza
che si sta descrivendo.
L’approccio adottato dal parser è molto rudimentale e permette di ana-
lizzare bene frasi con una determinata forma. Si è scelto di non far uso
di informazioni relative alla struttura della frase, ma solo di informazioni
legate alle singole parole, perché non era lo scopo principale del progetto
quello di analizzare gli stimoli testuali in input. Vengono riconosciute le
informazioni sul colore, sulle parti dell’individuo in questione, sulle fun-
zioni, sui luoghi dove si trova principalmente, e così via. Sicuramente in
futuro questo step verrà esteso per permettere la comprensione di frasi
più complesse e per codificare le informazioni relative alle dimensioni,
che in questo momento vengono ignorate dall’automa perché problema-
tiche sotto diversi punti di vista (il problema della gestione delle dimen-
sioni viene anche trattato nella Capitolo 6). Basti pensare all’esempio "Il
piccolo felino che vive in casa", bisognerebbe rapportare piccolo ai felini che
vivono in casa; oppure "L’animale domestico con una lunga coda", l’aggetti-
vo lunga dovrebbe essere rapportato non solo all’insieme delle code, ma
anche alle dimensioni dell’animale (che però ancora non conosciamo).
4.3 estensione di S1-S2 : il sistema dual-peccs
4.3.1 Introduzione degli esemplari
Inizialmente, la base di conoscenza tipica del sistema S1 era composta
unicamente da rappresentazioni prototipiche. In una delle prime fasi di
questo lavoro la base di conoscenza è stata estesa per poter memorizzare
e ragionare anche su rappresentazioni basate su esemplari introducendo
in questo modo tre tipologie di rappresentazione nella nostra descrizione
ibrida del concetto. In Figura 9 vediamo un esempio di rappresentazione
eterogenea del concetto tigre, composto da una componente prototipica,
una componente basata su esemplari e una componente classica.
Per la memorizzazione degli esemplari è stato mantenuto lo stesso for-
mato utilizzato per i prototipi e descritto nella sottosezione 4.2.2. Ogni
rappresentazione contiene un riferimento al concetto che descrive e ogni
56 il sistema e l’integrazione con act-r
is-a: felinecolor: yellowhasPart: furhasPart: tailhasPart: stripes
...
conceptual space representation
concept Tiger
Kingdom:AnimaliaClass:MammaliaOrder:CarnivoraGenus:PantheraSpecies:P. tigris
prototype of Tiger exemplars of Tigerwhite-tigeris-a: felinecolor: whitehasPart: furhasPart: tailhasPart: stripes...
...
ontological representation
classical information
Typicality-based knowledge
Classical knowledge
Hybrid Knowledge Base
Figura 9: Esempio di rappresentazione eterogenea del concetto tigre
concetto può essere descritto da un prototipo, uno o più esemplari e da
una descrizione classica.
Il processo di categorizzazione esteso
Il processo di categorizzazione è stato esteso, per tener conto anche delle
rappresentazioni basate su esemplari introdotte in S1. Per far ciò abbiamo
valutato diversi modelli di categorizzazione basata su esemplari; primo
fra tutti il Generalized Context Model di Nosofsky [33], nel quale tutti gli
esemplari di una categoria vengono utilizzati per mediare l’appartenen-
za o la distanza da una categoria. Dopo alcuni test abbiamo però optato
per considerare singolarmente i vari esemplari: una scelta di questo tipo
è stata possibile proprio per la presenza della componente legata ai pro-
totipi, che si occupa di rappresentare i valori tipici medi della categoria,
lasciando agli esemplari il compito di rappresentare outliners, eccezioni,
4.3 estensione di ∫ 1-∫ 2 : il sistema dual-peccs 57
etc... .9
Algoritmo 2: Classificazione basata su prototipi ed esemplari,
implementante la funzione S1 nell’Algoritmo 1.
Data: Un’instanza nel formato intermedio, d
Result: Una classifica di rappresentazioni, in ordine di distanza
crescente da d
S1ex← classifyExemplars(d);
S1pr← classifyPrototypes(d);
tipicalityClassification← [];
while S1ex.getFirst().distance(d) < soglia do
// tutti gli esemplari con distanza dalla descrizione <
soglia sono in testa
tipicalityClassification.append(S1ex.getFirst());
S1ex.removeFirst();
end
// effettua una merge ordinata basata sul valore di distanza
dall’istanza, dando precedenza in caso di parità agli
elementi della prima lista
sorted← sortedMerge(S1ex, S1pr);
tipicalityClassification.appendAll(sorted);
return tipicalityClassification;
L’Algoritmo 2 descrive la procedura che genera la classifica delle
rappresentazioni tipiche, dopo l’introduzione delle rappresentazioni ad
esemplari, e che implementa la funzione S1 all’interno dell’Algoritmo 1.
Possiamo vedere che, inizialmente, vengono effettuate in modo separa-
to la classificazione in base agli esemplari e la classificazione in base ai
prototipi e, successivamente, vengono combinate in un unico risultato.
La generazione della classifica complessiva basata su tipicalità tiene
9 Ovviamente gli esemplari potrebbero rappresentare anche tratti tipici, ma è più facile
immaginarne l’utilità quando rappresentano istanze della categoria che non sarebbero
catturate dal prototipo. Inoltre molti studi empirici dimostrano che il numero di esemplari
che l’essere umano mantiene all’interno della memoria è molto ridotto e si limita a casi
’atipici’ che hanno catturato l’attenzione.
58 il sistema e l’integrazione con act-r
conto di risultati sperimentali.10 Tali esperimenti evidenziano che, a fron-
te di uno stimolo, in presenza di entrambe le tipologie di rappresenta-
zione (prototipi ed esemplari) relative ad un determinato concetto se la
rappresentazione ad esemplari è molto simile allo stimolo, allora tale rap-
presentazione verrà favorita rispetto a quella prototipica. All’interno del-
l’algoritmo la nozione di ’molto simile’ si traduce scegliendo una soglia
di similarità ε molto piccola e spostando in testa alla classifica finale tutti
gli esemplari con distanza inferiore al valore di soglia scelto. Superata
la soglia, le restanti rappresentazioni vengono inserite nella lista in or-
dine di distanza crescente, dando precedenza agli esemplari in caso di
parimerito, sempre per la stessa motivazione.
In questa implementazione dell’algoritmo di classificazione basata su
tipicalità, abbiamo bisogno di ottenere, come risultato, l’intera classifica
dei prototipi ed esemplari per poter eseguire il controllo su n istanze in
S2.11
Una seconda variante, più efficiente, dell’Algoritmo 2 è descritta
nell’Algoritmo 3. Questa implementazione non esamina esaustivamente
lo spazio delle rappresentazioni, ma ferma la sua esecuzione nonappe-
na viene trovata una rappresentazione molto simile allo stimolo in input.
Nella sezione 5.3 sono stati confrontati gli ultimi due algoritmi descrit-
ti osservando accuratezza e numero di istanze esaminate. I risultati so-
no ottimi anche utilizzando un approccio non esaustivo, in particolare
evitando di esaminare, in media, più della metà delle rappresentazioni.
In particolare, la funzione classifyExemplars_SWF() esamina uno per
volta gli esemplari, ne calcola la distanza dallo stimolo e se tale valore è
inferiore ad una soglia di similarità ε1 allora interrompe la procedura e re-
stituisce la classifica ottenuta fino a quel momento. Il funzionamento del-
la procedura classifyPrototypes_SWF() è sostanzialmente identico. Non
essendo ancora previsto un ordinamento cognitivamente sensato delle
10 Fondamentali in questo ambito sono i risultati dovuti al lavoro di Barbara C. Malt [25].
11 Ovviamente è anche possibile ottenere un algoritmo che, anzichè ottenere una classifica
completa, richieda un concetto per volta, similarmente a quello che fa il modello ACT-R,
ma non è stato descritto per coerenza con la pipeline originale del sistema S1-S2, descritta
in precedenza.
4.3 estensione di ∫ 1-∫ 2 : il sistema dual-peccs 59
rappresentazioni, le due collezioni vengono visitate in modo casuale, per
non permettere all’ordine di influenzare il risultato della classificazione.
In futuro potrà essere introdotta una forma di ordinamento tra le rap-
presentazioni, ad esempio, associando ad ogni rappresentazione un pun-
teggio relativo alla forza del corrispondente concetto nella mente dell’es-
sere umano che stiamo simulando, sarà possibile utilizzare delle euristi-
che per esaminare lo spazio delle rappresentazioni e per muoversi più
intelligentemente alla ricerca di un concetto corrispondente allo stimolo
e restituire così un sottoinsieme delle rappresentazioni sufficientemente
radicate e vicine allo stimolo (Capitolo 6).
Algoritmo 3: Implementazione dell’algoritmo S1, con ricerca nello
spazio delle rappresentazioni non esaustiva.
Data: Un’instanza nel formato intermedio, d
Result: Una classifica di rappresentazioni, in ordine di distanza
crescente da d
S1ex← classifyExemplars_SWF(d);
if S1ex.getFirst().distance(d) < soglia then
// e’ stato trovato un esemplare molto simile allo
stimolo, quindi ferma l’esecuzione
return S1ex;
else
// non ci sono esemplari simili, quindi esamina anche i
prototipi
S1pr← classifyPrototypes_SWF(d);
// effettua una merge ordinata, dando precedenza in caso
di parità agli elementi della prima lista
sortedRepr← sortedMerge(S1ex, S1pr);
// restituisce la nuova classifica
// nota: potrebbe non aver esaminato tutti i prototipi
return sortedRepr;
end
60 il sistema e l’integrazione con act-r
Una terza versione dell’algoritmo di classificazione di S1, è stata im-
plementata per l’integrazione del sistema all’interno dell’architettura co-
gnitiva ACT-R. Essa è descritta dall’Algoritmo 4 ed implementa il retrie-
val di una singola rappresentazione per volta. Per tenere conto dei risulta-
ti precedentemente considerati inconsistenti da S2, riceve come parametro
una lista di concetti che andranno ignorati durante l’esplorazione delle
rappresentazioni. Questo permette di scartare alcuni concetti ed ottenere
quando necessario una nuova rappresentazione. Inoltre, i prototipi ven-
gono esaminati solo nel caso in cui non vi siano esemplari molto simili
allo stimolo.
E’ importante notare che, in questa fase del progetto, non si tiene an-
cora conto di informazioni come frequenza di recupero e tempo trascorso
dall’ultimo recupero di una data rappresentazione. Queste informazio-
ni sono, come anche sottolineato da Malt [25], fondamentali nella scel-
ta di quale rappresentazione attivare a fronte di uno stimolo e saranno
sicuramente tenute in considerazione nei prossimi sviluppi.
4.3.2 Collegamento tra Wordnet e OpenCyc
I sistemi S1 e S2 utilizzano due basi di conoscenza codificate con formali-
smi molto diversi tra loro, ma devono essere in grado di comunicare per
poter operare congiuntamente. Abbiamo visto che nel sistema S1 le com-
ponenti di una rappresentazione sono identificate da WordNet IDs, men-
tre nel sistema S2 le classi sono identificate da un Cyc ID. Il collegamento
tra questi due set di identificatori si realizza grazie ad una tabella di map-
ping tra i Wordnet ID e gli identificatori Cyc. Nella versione iniziale di
S1-S2 per ogni nuovo termine WordNet doveva essere creato manualmen-
te un collegamento all’interno della tabella di mapping che lo associasse
al rispettivo identificatore Cyc e consentisse quindi la corretta intercon-
nessione dei due sistemi. Questo processo risulta sempre più dispendio-
so al crescere della base di conoscenza legata al sistema S1. Per questo
motivo abbiamo introdotto una tabella di connessioni calcolate automa-
ticamente a partire dalle informazioni contenute nell’ontologia OpenCyc.
Un sottoinsieme delle classi dell’ontologia OpenCyc (circa il 20%) contie-
4.3 estensione di ∫ 1-∫ 2 : il sistema dual-peccs 61
ne infatti alcuni riferimenti a basi di conoscenza esterne, come WordNet
2.1 e Wikipedia. Per ottenere i mapping automatici sono stati incrociati i
riferimenti provenienti da OpenCyc con i corrispondenti elementi in Ba-
belnet e WordNet ottenendo in questo modo circa 12900 nuovi mapping,
che vanno a sommarsi ai 165 precedentemente inseriti manualmente. Più
precisamente le informazioni trovate all’interno di OpenCyc sono di due
tipi:
link di wikipedia : alcune classi in OpenCyc presentano al loro inter-
no dei riferimenti a pagine di Wikipedia.12 Questi riferimenti posso-
no essere ricondotti ad un synset (o meglio un BabelSynset) all’in-
terno del dizionario enciclopedico BabelNet; alcuni dei synset in Ba-
belNet contengono dei riferimenti diretti a synset in WordNet: per
ogni collegamento [Classe OpenCyc]→ [BabelSynset]→ [WordNet
3.0 ID], è stato inserito un elemento nella nuova tabella di mapping.
link di wordnet 2 .1 : in altre classi OpenCyc erano invece presenti
dei link alle API online di WordNet (versione 2.1).13 Da ogni url
è quindi stato estratto il nome del synset rappresentato e tale no-
minativo è stato convertito in un nome di synset della versione 3.0
(utilizzata dal sistema), facendo uso del pacchetto Sense Map.14 Suc-
cessivamente il nome del synset è stato convertito in un identifica-
tore numerico di synset accedendo, per ogni nominativo, alle API
online di WordNet 3.015 ed estraendo da tale documento il riferi-
mento numerico al synset. A questo punto per ogni collegamento
[Classe OpenCyc] → [WordNet 2.1 SynsetName] → [WordNet 3.0
SynsetName] → [WordNet 3.0 ID] è stata creata una nuova entry
all’interno della tabella di mapping.
12 All’interno di OpenCyc i riferimenti a Wikipedia sono nel formato http://en.wikipedia.
org/wiki/NOME_PAGINA .
13 I riferimenti a WordNet 2.1 all’interno di OpenCyc sono nel formato http://www.w3.org/
2006/03/wn/wn20/instances/NOME_SYNSET_21
14 Sense Map - http://wordnet.princeton.edu/wordnet/man/wnpkgs.7WN.html
15 Per ogni synset in WordNet 3.0 è disponibile un url http://semanticweb.cs.vu.nl/
europeana/lod/purl/vocabularies/princeton/wn30/NOME_SYNSET_30.ttl .
62 il sistema e l’integrazione con act-r
totali mappati % successo
# link Wikipedia 19876 7698 38,7
# id WordNet 2.1 8779 5197 59,2
# totale classi 27823 12723 45,7
Tabella 2: Conteggi relativi al collegamento automatico tra Cyc e WordNet
Alcuni conteggi riassuntivi sono visualizzabili in Tabella 2, dove sulle
righe possiamo vedere i numeri relativi ai link di Wikipedia e ai link
di WordNet trovati all’interno dell’ontologia e sulle colonne il numero
totale, il numero di mapping trovati e la percentuale di mapping riusciti
sul totale di link trovati.
Effettuando alcuni test sui risultati ottenuti possiamo osservare che
spesso ad una classe Cyc sono associati più WordNet ID e, soprattutto,
questi mapping non sono esaustivi e qualche volta imprecisi, per via del-
la diversa granularità delle basi di conoscenza considerate. Per questo
motivo la tabella viene utilizzata solo in caso di fallimento della ricerca
dell’ID all’interno della tabella principale, contenente i mapping manuali.
Al momento i riferimenti trovati sono sufficienti per il dominio che stia-
mo trattando, ma in futuro possibile miglioramento ulteriore della tabel-
la potrebbe essere ottenuto grazie al confronto tra la descrizione testuale
contenuta all’interno della descrizione della classe OpenCyc e la glossa
relativa ad un synset WordNet.
4.4 integrazione di dual-peccs in act-r
In questa sezione sono descritte le modalità di integrazione di
Dual-PECCS in ACT-R e le principali funzionalità dell’architettura
estesa.16
16 E’ possibile scaricare la version beta del pacchetto software contenente Dual-PECCS e
ACT-R esteso all’indirizzo http://goo.gl/or2bgJ.
4.4 integrazione di dual-peccs in act-r 63
4.4.1 Studio di fattibilità e lavori correlati
All’inizio di questo progetto, sono state valutate diverse possibilità di
estensione di ACT-R, facendo riferimento ad altri lavori svolti su argo-
menti simili. Le opzioni che sono state considerate, e che verranno bre-
vemente descritte in questa sezione, sono tre: la creazione di un modulo
dedicato, la traduzione in chunk e produzioni, l’estensione della memoria
dichiarativa.
creazione di un modulo La tecnica standard per estendere l’ar-
chitettura cognitiva consiste nella creazione di un modulo aggiuntivo,
provvisto di propri buffer e indipendente dagli altri moduli. Questa op-
zione è stata adottata ad esempio da Oltramari et al. che hanno creato
un modulo che permette l’accesso a una base di conoscenza esterna per
il commonsense reasoning [35]. Sicuramente è l’approccio tecnicamente più
pulito, in quanto dovrebbe essere semplice riutilizzare il codice tra una
versione e l’altra di ACT-R. Nella versione canonica di ACT-R la creazione
di nuovi moduli e buffer è supportata dall’architettura principale e quin-
di non richiede la modifica del codice sorgente principale, in Java ACT-R
questa funzionalità non è direttamente supportata e quindi richiederebbe
anche una modifica del codice sorgente, vanificando il vantaggio relati-
vo all’indipendenza dell’estensione dalla specifica versione del software
utilizzata.
traduzione in chunk e produzioni A prima vista, un’altra pos-
sibile soluzione è tradurre tutta la knowledge base contenuta in S1 e S2
in chunk e di tutte le regole che ne guidano il ragionamento in regole
di produzione. Questa soluzione è stata adottata, ad esempio, da Ball,
Rodgers e Gluck [8], che hanno deciso di tradurre in chunk e produzioni
le regole di inferenza e la conoscenza contenuta nell’ontologia formale
Cyc e da Salvucci [41] per quanto riguarda il progetto DBPedia.17 Per
quanto riguarda il reasoning legato ai processi di categorizzazione è mol-
to importante il lavoro di Anderson [5], che riesce a far collaborare due
modelli di categorizzazione nati separatamente ottenendo un processo di
17 Per maggiori informazioni sul progetto DBPedia si veda http://www.dbpedia.org
64 il sistema e l’integrazione con act-r
categorizzazione ibrido basato su regole ed esemplari.
estensione della memoria dichiarativa Una terza possibilità
di estensione si pone ad un livello intermedio tra le due precedenti e
consiste nell’estensione del modulo dichiarativo già presente in ACT-R.
Questa soluzione è stata adottata, ad esempio, da Schultheis et al. [42] per
inserire in ACT-R una parte di memoria dichiarativa esterna, dove i chunk
sono nodi di una rete e un retrieval recupera una porzione di tale rete. In
questo caso i meccanismi di retrieval legati al sistema integrato non sono
inglobati in ACT-R, ma sono delegati al sistema esterno e vengono attivati
attraverso la declarative memory interna ad ACT-R.
Dopo un’accurata analisi abbiamo optato per una variante della ter-
za opzione, traducendo la parte dichiarativa della conoscenza di S1 in un
formato chunk-like e delegando esternamente il reasoning su S1, S2, e la
codifica della base di conoscenza legata a S2 (l’ontologia Cyc). Inoltre,
è stato creato un modello, descritto nella sottosezione 4.4.4, contenente
le produzioni adatte a tradurre l’algoritmo principale di Dual-PECCS
(Algoritmo 1), seguendo le ipotesi dei proxytypes e del processamento
duale.
4.4.2 Proxytypes in ACT-R
Un primo passo per introdurre la nozione di proxytypes in ACT-R è stata
l’identificazione delle parti dell’architettura corrispondenti alla working
memory e alla memoria a lungo termine, che vediamo evidenziate in
Figura 10. Vediamo le due parti della memoria a lungo termine (proce-
durale e dichiarativa) evidenziate in verde, mentre le varie porzioni che
compongono la memoria di lavoro sono evidenziate in arancione.
Come sostenuto direttamente da Anderson [6], "I buffer dei moduli di
ACT-R contengono le limitate informazioni a cui il modulo procedurale può far
riferimento. Questi buffer hanno delle affinità con i sistemi "slave" descritti da
4.4 integrazione di dual-peccs in act-r 65
Baddeley"18 in relazione alla memoria di lavoro [7].
Per quanto riguarda invece la memoria a lungo termine, essa
corrisponde all’unione del modulo dichiarativo e procedurale.
External Environment
Vision module Aural module
Motor module
Visual buffer Visual-location buffer
Manual buffer
Goal bufferRetrieval
buffer Imaginal buffer
Goal moduleDeclarative module
Imaginal module
Procedural module (match; select; fire) Aural buffer Aural-location
buffer
Speech module
Vocal buffer
Working memory(buffers)
Production list[…]
Chunks list[…]
Long-term memory
Figura 10: Identificazione delle zone di memoria in ACT-R
Traduzione di concetti e rappresentazioni
Con lo scopo di adottare il modello ibrido di rappresentazione dei concet-
ti ipotizzato nel framework teorico proposto nella sezione 4.1, abbiamo
predisposto l’esistenza di due tipologie di chunk: i chunk concettuali e i
chunk rappresentazionali. In particolare, un chunk concettuale non è altro
che un chunk privo di informazione, contenente solo un identificatore di
18 Baddeley propone una struttura della memoria di lavoro distinta in quattro moduli se-
parati e cooperanti: un loop fonologico che si occupa del trattamento dell’informazione
fonetica e fonologica; un taccuino visuo-spaziale per il mantenimeno e l’elaborazione di
informazioni visuo-spaziali e la generazione di immagini mentali; il buffer episodico che è
stato introdotto più recentemente e ha lo scopo di collegare e integrare tra loro le informa-
zioni provenienti da sottosistemi diversi (visivo, spaziale, verbale, ...); il sistema esecutivo
centrale che ha il compito di coordinare i tre slave system.
66 il sistema e l’integrazione con act-r
concetto e un nome in linguaggio naturale per facilitare la lettura dei ri-
sultati. Un esempio, rappresentante il concetto tigre con il corrispondente
identificatore 02129604, è il seguente:
( C1
isa concept
name tiger
concept_id 02129604
)
Questo chunk concettuale è puntato da diversi chunk rappresentazionali
che rappresentano i nostri prototipi ed esemplari e contengono le informa-
zioni vere e proprie. Questi chunk rappresentazionali sono tradotti in un
formato piatto in modo che ogni chunk contenga tutte le informazioni re-
lative alla rappresentazione che codifica; un esempio semplificato relativo
all’esemplare di tigre bianca, connesso al concetto tigre è il seguente:
( 02129604_ex_1
isa exemplar
name white_tiger
concept_id 02129604
class_1_name animal class_1_wid 00015388
family_1_name feline family_1_wid 02120997
family_2_name mammal family_2_wid 01861778
haspart_1_name fur haspart_1_wid 01899062
haspart_1_color_1_name white haspart_1_color_1_wid
04960729
haspart_1_color_1_l 100.0
haspart_1_color_1_a 0.0
haspart_1_color_1_b 0.0
haspart_2_name stripe haspart_2_wid 02787755
haspart_2_color_1_name black haspart_2_color_1_wid
00393873
haspart_2_color_1_l 0.0
haspart_2_color_1_a 0.0
haspart_2_color_1_b 0.0
[...]
)
4.4 integrazione di dual-peccs in act-r 67
4.4.3 Funzionalità della declarative memory estesa
Abbiamo visto nella sottosezione 3.2.3, che la declarative memory in ACT-
R è codificata all’interno del declarative module e può essere acceduta inter-
facciandosi con il retrieval buffer. Il retrieval buffer può essere interrogato
grazie a diversi action symbols: ’=’ per test e modifica del chunk nel buffer,
’+’ per richieste di retrieval, ’-’ per la pulitura del buffer e ’?’ per il test
dello stato del buffer (sottosezione 3.2.2).
Assodato che la modalità di estensione di ACT-R che rispettava mag-
giormente le nostre esigenze fosse l’estensione del modulo dichiarativo, si
sono presentate due strade alternative per permettere l’invocazione delle
procedure legate a S1 e S2:
• L’introduzione di uno o più nuovi buffer, legati alla memoria
dichiarativa e dedicati all’interazione con i sistemi S1 e S2;
• L’introduzione di un nuovo action symbol legato sempre al retrieval
buffer avente il compito di attivare le procedure legate al sistema
esterno.
Le due strade sono egualmente valide, ma la nostra scelta è ricaduta
sulla seconda opzione, decidendo quindi di introdurre nel repertorio dei
simboli legati al retrieval buffer un nuovo simbolo: il ’$’. Questo nuovo
action symbol consente l’accesso a S1 e a S2 e più precisamente:
• se il chunk inserito nel buffer al momento della richiesta (che po-
tremmo considerare come il parametro in input, ovvero lo stimolo)
non specifica il concetto a cui fa riferimento e quindi non contiene
un valore per lo slot concept_id, allora la richiesta sarà una richiesta
di classificazione (S1);
• se il chunk all’interno del buffer contiene già un valore per lo slot
concept_id allora siamo di fronte ad una richiesta di controllo di
tale "assegnazione" di concetto (S2).
Vediamo due esempi qui di seguito:
68 il sistema e l’integrazione con act-r
% S1 request
$retrieval>
concept_id nil
family_1_name felin
haspart_1_name stripe
haspart_1_color black
haspart_2_name fur
[...]
% S2 request
$retrieval>
concept_id 02129604
family_1_name felin
haspart_1_name stripe
haspart_1_color black
haspart_2_name fur
[...]
Così come avviene all’interno di Dual-PECCS, lo stimolo è codificato
seguendo lo stesso formato di prototipi ed esemplari. Le caratteristiche
descrittive dello stimolo possono essere espresse in ordine arbitrario e
non è necessario specificare un WordNet ID. L’unico vincolo è che, in pre-
senza di più componenti di una stessa caratteristica, è necessario che la
numerazione sia sequenziale: ad esempio, nel caso precedente siamo in
presenza di due descrizioni hasPart, fur e stripe, che devono necessaria-
mente essere chiamate hasPart_1 e hasPart_2 (anche se non è importante
quale sia la numero 1).
i retrieval S1 Le richieste di classificazione fatte a S1 sono molto
simili alle richieste di retrieval standard: così come i meccanismi che gui-
dano la declarative memory cercano un chunk che sia sufficientemente
simile al chunk richiesto, anche il sistema S1 cerca una rappresentazio-
ne sufficientemente simile allo stimolo. La differenza principale sta nel
modo in cui viene calcolata tale similarità: in S1 vengono utilizzate del-
le metriche in uno spazio concettuale, mentre ACT-R si basa fortemente
sull’uguaglianza simbolica del contenuto degli slot.
A fronte di una richiesta $S1, all’interno del sistema esterno viene at-
tivata una variante della procedura standard di S1, che, specificando uno
stimolo da classificare e una lista di concetti da escludere dal risultato, re-
stituisce una singola rappresentazione (Algoritmo 4). La lista dei concetti
da escludere contiene, ad esempio, i concetti che sono già stati ritenuti
inconsistenti da S2 in relazione allo stimolo da classificare. All’interno
dell’architettura ACT-R estesa i chunk concettuali recentemente recupe-
rati dalla declarative memory vengono marcati con un marker attenzio-
nale dedicato, è quindi possibile utilizzare questi marker per sapere qua-
4.4 integrazione di dual-peccs in act-r 69
li concetti sono stati recuperati di recente ed escluderli dalla prossima
categorizzazione.
E’ importante notare che questo algoritmo, se trova un esemplare va-
lido, molto simile allo stimolo, non ricorre alla classificazione legata ai
prototipi.
Algoritmo 4: Classificazione basata su prototipi ed esemplari,
implementante la funzione S1 in ACT−R.
Data: Un’instanza nel formato intermedio, d;
Un insieme di concetti da escludere dal processo, exclude
Result: La rappresentazione più simile a d e non relativa ad un
concetto contenuto in exclude
S1ex← classifyExemplars(d);
// rimuove dalla lista tutte le rappresentazioni relative ai
concetti contenuti nell’insieme da escludere
S1ex← removeConcepts(S1ex, exclude);
if S1ex.getFirst().distance(d) < soglia then
// esiste un esemplare idoneo e quasi identico allo
stimolo
return S1ex.getFirst();
else
// esamina anche i prototipi
S1pr← classifyPrototypes(d);
S1pr← removeConcepts(S1pr, exclude);
// effettua una merge ordinata, dando precedenza in caso
di parità agli elementi della prima lista
sortedRepr← sortedMerge(S1ex, S1pr);
// restituisce la rappresentazione piu’ vicina
return sortedRepr.getFirst();
end
i conceptual finsts Abbiamo visto che, all’interno della declara-
tive memory, sono gestiti alcuni declarative finsts (sottosezione 3.2.3) per
tenere traccia dei chunk recuperati di recente dalla memoria. Ispirando-
70 il sistema e l’integrazione con act-r
ci ad essi, abbiamo predisposto dei conceptual finsts che tengono traccia
dei conceptual chunks recuperati di recente a fronte di una richiesta $ (tra-
lasciando le rappresentazioni). Questi finsts risultano fondamentali per
implementare l’algoritmo di classificazione basato sull’interazione di S1
e S2. Grazie ad essi, infatti si riescono a "tenere a mente" i concetti recen-
temente recuperati e si può quindi richiedere una nuova classificazione
al sistema S1, che non comprenda tali concetti. Come descritto per i de-
clarative finsts anche i conceptual finsts hanno una scadenza temporale (di
default 20.0 secondi19), trascorsa la quale il chunk viene rimosso dalla
lista dei concetti recenti, e hanno un limite numerico, inizialmente impo-
stato a 6, che indica il numero massimo di conceptual finsts che possono
essere presenti in un dato momento nella memoria dichiarativa. Se vie-
ne superato tale numero di marker, viene rimosso il concetto recuperato
meno di recente. Per permettere la personalizzazione di questi valori è
stato esteso l’insieme dei parametri di modello introducendo i parametri
:conceptual-num-finsts e :conceptual-finst-span, utilizzabili all’inter-
no del modello in combinazione con il comando ACT-R sgp (Set General
Parameter).
(sgp :conceptual-num-finsts X :conceptual-finst-span Y)
Abbiamo anche introdotto la possibilità di resettare manualmente i con-
ceptual finsts tramite il seguente comando, che fa in modo che la lista dei
conceptual finsts venga svuotata prima di eseguire il resto delle operazioni
richieste al retrieval buffer:
$retrieval>
:recently-retrieved reset
[...]
Il reset risulta fondamentale ad esempio quando si vuole predisporre una
sequenza di richieste di classificazione legate a stimoli indipendenti tra
loro e che quindi non devono influenzarsi direttamente tra di loro.
Le richieste di tipo $S1 sottointendono sempre il parametro
:recently-retrieved nil, in quanto, a meno di resettare i finsts manual-
19 Il valore di default per la scadenza temporale dei conceptual finsts è molto più alto
di quello relativo ai declarative finsts perché deve perdurare per tutti i tre tentativi di
classificazione su Dual-PECCS
4.4 integrazione di dual-peccs in act-r 71
mente, vogliamo che S1 escluda dai possibili risultati quelli recentemente
già restituiti per lo stesso stimolo.
il controllo di consistenza S2 Le richieste di controllo di
consistenza $S2 possono avere due risultati diversi:
• S2 ritiene la classificazione proposta all’interno dello slot
concept_id consistente con la descrizione specificata tramite gli al-
tri slot; in questo caso la risposta di $S2 sarà il chunk ricevuto in
input compreso dello slot concept_id con un valore diverso da nil.
• S2 considera inconsistente la classificazione proposta rispetto alla
descrizione associata; in questo caso dopo l’esecuzione del comando
viene inserito all’interno del retrieval buffer il chunk ricevuto come
input, ma con lo slot concept_id a nil.
indipendenza dell’estensione La versione di ACT-R estesa con
Dual-PECCS può essere utilizzata esattamente nello stesso modo in cui
veniva utilizzata prima. Per permettere questa indipendenza abbiamo
introdotto un comando (add-dm-s1-kb) che, similarmente al comando
ACT-R (add-dm), permette di caricare all’interno della declarative memo-
ry di ACT-R la knowledge base di S1. Il controller che si occupa della
comunicazione tra ACT-R e Dual-PECCS richiederà a S1 una lista com-
pleta delle sue rappresentazioni e dei concetti rappresentati e li tradurrà
rispettivamente in representational chunks e conceptual chunks. Questo co-
mando deve sempre essere eseguito prima di potersi interfacciare con
Dual-PECCS effettuando degli accessi di tipo $ al retrieval buffer.
Inoltre, abbiamo anche lasciato la possibilità al modello di effettuare
un retrieval standard (+) di un chunk concettuale o rappresentazionale
relativo a S1, in modo da lasciare al creatore del modello piena libertà,
ad esempio per la creazione di modelli di apprendimento di esemplari o
dei prototipi.
nuove keywords Dopo l’integrazione del sistema alcune stringhe,
prima utilizzabili liberamente, sono diventate delle keywords protette.
Per quanto riguarda lo slot ISA dei chunk i simboli exemplar, prototype,
instance, concept sono riservati a rappresentare rispettivamente esem-
72 il sistema e l’integrazione con act-r
plari, prototipi, stimoli da classificare e chunk concettuali. Abbiamo in-
trodotto anche una convenzione sui nomi di alcuni tipi di chunk: i nomi
reprX e concX, con X numero intero, sono riservati ai chunk di tipo rap-
presentazionale e concettuale in modo da poterli distinguere velocemente
dagli altri tipi di chunk.
4.4.4 Il processo cognitivo
Abbiamo visto come sia possibile accedere S1 e S2 separatamente, ma
manca la descrizione della logica che controlla l’interazione tra i due
sistemi, precedentemente schematizzata dall’Algoritmo 1. L’algoritmo è
stato modificato ed implementato all’interno di un modello ACT-R gra-
zie ad un insieme di produzioni, il cui funzionamento complessivo è stato
riassunto all’interno dell’Algoritmo 5.
Innanzitutto il modello cattura il nuovo stimolo da categorizzare, ef-
fettua un reset iniziale dei conceptual finsts e inizializza il numero di
tentativi di classificazione a zero. Successivamente il modello aumenta
il numero di tentativi ed effettua un primo tentativo di classificazione
facendo uso dell’azione $S1. Se il risultato dell’esecuzione di S1 è una
rappresentazione valida allora essa verrà proxyficata in memoria di lavo-
ro, altrimenti il modello termina la sua esecuzione con un messaggio di
retrieval failure.20 A questo punto viene recuperato dalla memoria dichia-
rativa il concetto a cui la rappresentazione proxyficata fa riferimento e
tale concetto viene utilizzato per preparare una richiesta di controllo di
consistenza con l’azione $S2. Se S2 dichiara la consistenza del risultato
proposto il concetto viene mandato in output21; se S2 ritiene il risultato
inconsistente con la descrizione dello stimolo allora si controlla se si è
già raggiunto il numero massimo di tentativi di classificazione e, in caso
20 Per rappresentare l’intera pipeline relativa al sistema S1-S2 iniziale, a questo punto si
dovrebbe richiedere una classificazione diretta al sistema S2, basata unicamente su mec-
canismi classici di categorizzazione. Questa opzione, in questa versione del software, non
è stata implementata all’interno del modello in quanto estremamente onerosa in termini
di tempo e risorse.
21 In questo momento l’output è la stampa sul trace, ma in futuro potrebbe essere un output,
sonoro o testuale, verso l’ambiente esterno.
4.4 integrazione di dual-peccs in act-r 73
contrario, si procede con un nuovo tentativo di classificazione da parte di
S1.
Lo stimolo è attualmente inserito manualmente all’interno del model-
lo, ma in futuro potrebbe essere sviluppata un’estensione del modello
che sia in grado di percepire le informazioni dall’ambiente esterno, ad
esempio leggendo la descrizione testuale direttamente dalla finestra del-
l’esperimento ed estraendo le informazioni rilevanti grazie ad un insieme
di regole di produzione. Al momento è disponibile uno script dedicato al-
la generazione del chunk corrispondente ad una determinata descrizione
testuale, facendo uso dello step di Information Extraction descritto nella
sottosezione 4.2.4, in modo da poterlo copiare manualmente all’interno
del modello, senza incorrere in errori di traduzione, che impedirebbero
la corretta esecuzione del modello.
la teoria dei proxytipi eterogenei in act-r Identificando la
memoria di lavoro con i buffer di ACT-R, abbiamo ottenuto una corri-
spondenza vera e propria con la teoria degli heterogeneous proxytypes teo-
rizzata. Una singola rappresentazione viene proxyficata in memoria di
lavoro a fronte di una richiesta S1; questo primo risultato viene mante-
nuto in memoria di lavoro (all’interno dell’imaginal buffer), in modo da
poterlo successivamente confrontare con il risultato proxyficato da S2. Il
confronto avviene in memoria di lavoro e permette al sistema di decidere
se tentare con un nuovo tentativo di classificazione o fermarsi perché i
due sottosistemi hanno raggiunto un risultato approvato da entrambi e
mandare tale risultato in output verso l’ambiente esterno.
4.4.5 Attivazione dei nuovi chunk
Abbiamo descritto la teoria relativa all’attivazione delle varie unità di me-
moria in ACT-R nella sottosezione 3.3.1; un passaggio importante dell’in-
tegrazione di Dual-PECCS in ACT-R è quello di estendere tale concetto
di attivazione ai nuovi conceptual chunks e representational chunks .
74 il sistema e l’integrazione con act-r
attivazione dei conceptual chunks L’idea è di calcolare l’attivazio-
ne dello specifico conceptual chunk considerando la totalità delle recency
e frequency delle rappresentazioni che si riferiscono ad esso. Nella pros-
sima parte della sezione verrà descritta più nel dettaglio questa proposta,
analizzando le variazioni ipotizzate per le componenti dell’equazione di
attivazione dei chunk in ACT-R.
Riprendendo l’Equazione 1 e considerando il conceptual chunk cc il
valore di attivazione del chunk è calcolato con la seguente formula
Acc = Bcc +Ccc + Pcc + ε (9)
dove Bcc rappresenta l’attivazione base-level, Ccc la componente legata al
contesto, Pcc la componente legata al partial matching e ε la porzione
di rumore. Analizziamo una per una le varie componenti: consideran-
do l’insieme totale delle recency e frequency delle rappresentazioni lega-
te al chunk cc, la formula per il calcolo dell’attivazione base-level di un
conceptual chunk cc potrebbe essere estesa nel modo seguente:
Bcc = ln(∑j∈acc
t−dj +∑j∈nrc
t−dj ) (10)
dove la prima sommatoria itera sulle apparizioni del chunk concettuale,
la seconda sommatoria sulle apparizioni delle rappresentazioni legate al
chunk concettuale e definiamo
• acc, l’insieme delle apparizioni del chunk cc,
• arc, l’insieme delle apparizioni delle k rappresentazioni correlate al
concetto, calcolato con l’ Equazione 11
arc =⋃
k
ak (11)
• tj, il tempo trascorso dalla j-esima apparizione (del concetto o di
una rappresentazione)
• d, il parametro di decadimento utilizzato per pesare sempre meno
apparizioni più lontane nel tempo.
Anche il calcolo del valore di spreading activation risente dell’influenza
delle rappresentazioni sul concetto. Infatti, per quanto ipotizzato fin’ora,
4.4 integrazione di dual-peccs in act-r 75
anche il valore fan di un concetto dovrebbe comprendere i fan di tutte le
rappresentazioni, dando così un’indicazione della "presenza" del concetto
all’interno degli slot dei chunk in memoria. Quindi potremmo modificare
il calcolo della componente Ccc in questo modo
Ccc =∑k
∑j
WkjSj,cc (12)
dove
• k scorre su tutti i buffer,
• j su tutti i chunk contenuti all’interno degli slot del chunk contenuto
nel buffer k,
• Wkj è l’ammontare di attivazione propagata dal buffer k al chunk j
• Sj,cc è la forza dell’associazione tra il chunk j (contenuto nello slot
del chunk nel buffer k) e il chunk cc (per cui vogliamo calcolare
l’attivazione). Questa forza sarà uguale a zero se
– j è diverso da cc e dalle rappresentazioni rc connesse a cc
– e j non è contenuto all’interno di uno slot del chunk cc o
all’interno di uno slot di una rappresentazione legata a cc
In questo caso siamo nella situazione nella quale nè il conceptual
chunk, nè le sue rappresentazioni hanno qualcosa in comune con il
contesto attuale. Se non si verificano le condizioni descritte, il peso
Sj,cc potrebbe essere calcolato come segue:
Sj,cc = S− ln(fancc +∑rc∈cc
fanrc) (13)
dove S è il valore massimo impostato per la forza delle associazioni
tra chunk, fancc è il numero dei chunk nella declarative memory
che contengono il chunk cc come valore di uno slot + 1 (per se
stesso) e la sommatoria scorre su tutte le rappresentazioni rc legate
al concetto cc.
Secondo la proposta appena descritta la componente legata al partial
matching, Pcc, verrebbe calcolata solo in caso di richiesta standard alla de-
clarative memory (+), mentre, per quanto riguarda le richieste di tipo $, sa-
rebbe sempre disattivata. Si potrebbe comunque ipotizzare una conversio-
ne del valore di distanza calcolato dal sistema Dual-PECCS in un valore
76 il sistema e l’integrazione con act-r
di similarità aggregato da introdurre nell’equazione legata a Pcc, in modo
da rappresentare la minore o maggiore somiglianza del concetto (o me-
glio delle rappresentazioni che lo descrivono) con lo stimolo richiesto dal
buffer. Questa componente P legata al valore di similarità influenzerebbe
anche il calcolo dell’attivazione dei chunk rappresentazionali.
attivazione dei representational chunk Più complessa è la situa-
zione quando si parla di representational chunk perché ci troviamo di fronte
a rappresentazioni eterogenee, sulle quali gli effetti di recency e frequen-
cy sono stati ampiamente studiati e sarebbero da esaminare, con studi
approfonditi e dedicati alle singole teorie. Perciò, inizialmente, si potreb-
be pensare di continuare ad utilizzare il calcolo del valore di attivazione
standard di ACT-R per queste tipologie di chunk o di predisporre, se
si ritenesse un meccanismo cognitivamente valido, una sorta di concep-
tual spreading per portare un po’ dell’influenza del chunk concettuale ai
chunk rappresentazionali collegati, seguendo l’intuizione che una rappre-
sentazione di un concetto più forte debba essere a sua volta più forte di
una rappresentazione legata ad un concetto più debole.
Inoltre, come precedentemente accennato, si potrebbe considerare an-
che in questo caso una conversione del valore di distanza della rappresen-
tazione dal chunk richiesto nel buffer, in un valore di similarità da sosti-
tuire alla componente legata al partial matching quando vengono effettuate
delle richieste di tipo $.
tempi di retrieval In ACT-R è molto importante anche la nozione
di tempo simulato ovvero una quantità di tempo associata ad ogni evento
cognitivo che possa essere in qualche modo paragonata alle tempistiche
dei soggetti umani. Introducendo le nozioni alla base delle dual process
theories, abbiamo sottolineato che una delle principali differenze tra i si-
stemi di tipo 1 e i sistemi di tipo 2 è la velocità: i sistemi di tipo 1 sono
più veloci, mentre i sistemi di tipo 2 sono più lenti. Per questo motivo
sarebbe opportuno ipotizzare, se possibile facendo riferimento a delle
evidenze sperimentali, una nozione di tempo di risposta per il sistema
S2. Per quanto riguarda il sistema S1, invece, adottando la formula este-
sa per il calcolo del valore di attivazione anche per le rappresentazioni,
4.4 integrazione di dual-peccs in act-r 77
potremmo fare riferimento al calcolo standard del tempo di retrieval in
quanto le informazioni su recency, frequency e fan sono già considerate
al suo interno.
4.4.6 Descrizione tecnica dell’implementazione
Lo scopo di questa sezione è di fornire qualche informazione tecnica più
dettagliata riguardante l’estensione del sistema S1-S2 e dell’architettura
ACT-R.
Il sistema Dual-PECCS
La fase di riorganizzazione dell’architettura del software S1-S2 e l’intro-
duzione delle rappresentazioni basate su esemplari hanno portato ad
ottenere un software strutturato in quattro progetti cooperanti:
S1 system rappresenta il sottosistema S1 e contiene le classi legate al-
l’interazione con la base di conoscenza tipica e le classi che si occu-
pano della codifica delle rappresentazioni e della categorizzazione
basata su tipicalità.
S2 system codifica la logica di funzionamento del sistema S2 e le classi
per l’accesso alla base di conoscenza ontologica.
S1-S2 controller integra i due progetti precedentemente descritti e
codifica il funzionamento complessivo del sistema Dual-PECCS;
information extractor implementa l’estrattore di informazioni che
permette di trasformare uno stimolo testuale in uno stimolo
codificato nel formato compreso da Dual-PECCS.
Tutti i progetti descritti sono utilizzabili separatamente, ad esempio è
possibile effettuare una classificazione basata solo su S1, e contengono
un file di configurazione che permette di personalizzare l’esecuzione del
sistema secondo le proprie esigenze.
file di configurazione Ciascun progetto contiene una cartella
config con all’interno un file di proprietà che definisce le informazioni
78 il sistema e l’integrazione con act-r
specifiche relative al progetto corrente22 e i file di configurazione dei pro-
getti da cui esso dipende. Per implementare la gestione delle proprietà è
stata utilizzata la libreria Apache Commons Configuration 23 che permet-
te la gestione ottimizzata dei file di configurazione. Infatti, proprio grazie
a questa libreria è possibile importare un file di configurazione all’interno
di un altro ed utilizzare delle variabili per costruire proprietà complesse;
in questo caso l’utilizzatore del sistema dovrà modificare unicamente il
file user.properties e le informazioni inserite al suo interno si ripercuo-
teranno in tutti i file di configurazione relativi alle singole componenti
del sistema.
L’estensione di ACT-R
L’estensione apportata al software Java ACT-R è stata abbastanza profon-
da, in quanto è stata necessaria l’estensione di diverse componenti del
software che andremo ad analizzare qui di seguito:
definizione dei chunk Nel software originale è presente una classe
Chunk che codifica tutte le informazioni legate ad un singolo chunk,
quindi slot, lista dei tempi di retrieval, funzioni per il calcolo del
valore di attivazione e così via; questa classe è stata lievemente mo-
dificata al suo interno per abilitare il supporto alle richieste $S1 e
$S2 ed è stata estesa da due nuove classi RepresentationalChunk e
ConceptualChunk per permettere la specializzazione delle informa-
zioni e, soprattutto, del calcolo del valore di attivazione nel caso di
queste due tipologie di chunk.
memoria dichiarativa La classe Declarative, implementante la me-
moria dichiarativa all’interno di ACT-R è stata estesa dalla nuova
classe DPDeclarative che ne eredita le funzionalità principali ed
introduce i metodi relativi alla comunicazione con Dual-PECCS.
azioni dei buffer Le azioni dei buffer sono codificate all’interno della
classe BufferAction che è stata estesa dalla classe DPBufferAction
22 I file di configurazione contengono, ad esempio, la posizione dei file relativi alla base di
conoscenza, la posizione dell’ontologia, i dati di accesso al database, etc...
23 Apache Commons Configurations - http://commons.apache.org/proper/
commons-configuration
4.4 integrazione di dual-peccs in act-r 79
in modo da ereditare le funzionalità standard ed introdurre la nuova
operazione $.
controller e converter Sono state introdotte delle classi aventi
lo scopo di gestire l’interazione con il sistema Dual-PECCS. Il
DPSystemController si occupa di guidare l’interazione tra ACT-R
e Dual-PECCS, mentre il ChunkConverter controlla la traduzione
delle informazioni nei due formati utilizzati dai sistemi.
interfaccia grafica e parsing Anche queste due componenti so-
no state soggette a modifiche, in particolar modo per rendere il par-
ser (classe Parser) e l’evidenziatore della sintassi (contenuto nella
classe Document) in grado di riconoscere i nuovi comandi e simboli
introdotti.
Infine, il sistema ACT-R esteso dovrà utilizzare, in ogni sua parte, le
classi DPDeclarative e DPBufferAction.
80 il sistema e l’integrazione con act-r
Algoritmo 5: Il processo di categorizzazione implementato dal
modello ACT−R.Data: Il numero di tentativi di classificazione, maxTrials
// percezione della nuova richiesta
reqC← perceptRequest();
// inizializzazione di conceptual finsts e azzeramento del
numero di tentativi
resetConceptualFinsts();
trialNumber← 0;
while trialNumber < maxTrials do
trialNumber← trialNumber + 1;
// retrieval e proxyficazione S1
rChunk← retrievalBuffer.$S1(reqC);
if rChunk.isEmpty() then
// e’ impossibile classificare
return failure;
else
cChunk← retrievalBuffer.+ConceptOf(rChunk);
// controllo di consistenza S2
consistencyReqC← prepareRequest(reqC, cChunk);
rChunkS2← retrievalBuffer.$S2(consinstencyReqC);
cChunkS2← retrievalBuffer.+ConceptOf(rChunkS2);
// check all’interno della memoria di lavoro
if isEqual(cChunk, cChunkS2) then
// il risultato è consistente
return cChunk;
else
// il risultato è inconsistente
continue;
end
end
end
return failure;
5S P E R I M E N TA Z I O N E
In questo capitolo vengono descritte le fasi di sperimentazione del sistema.
Dopo un breve cenno agli esperimenti precedenti, è introdotta una nuo-
va sperimentazione legata a Dual-PECCS e al sistema integrato, facendo
anche un riferimento ai vari algoritmi descritti nel Capitolo 4.
5.1 esperimenti passati
Il sistema S1-S2, nella sua prima implementazione, è stato testato in un
compito di categorizzazione, dove gli stimoli erano dei semplici indo-
vinelli che il sistema doveva analizzare e cercare di associare ad uno
dei concetti (prototipi) rappresentati all’interno della base di conoscenza
[22]. Durante l’esperimento è stato utilizzato anche lo step di Informa-
tion Extraction descritto precedentemente sottosezione 4.2.4. La pipeline
dell’esperimento è descritta in Figura 11.
Gli stimoli potevano riguardare animali, piante e artefatti ed erano in
forma 〈d,T〉, dove d è la descrizione testuale e T è il concetto target. Il da-
taset utilizzato per questo esperimento era composto da 87 descrizioni1
di cui 36 erano relative ad artefatti, 6 relative a piante e 45 relative ad
animali. L’insieme di stimoli è stato fornito da un gruppo di neuropsico-
logi e filosofi all’interno di un progetto più ampio relativo allo studio del
ruolo del carico visivo dei concetti durante compiti inferenziali e referen-
ziali [26]. Il target associato ad ogni stimolo rappresenta il concetto atteso
1 L’elenco completo degli 87 stimoli utilizzati durante questo esperimento è disponibile
all’indirizzo http://goo.gl/SZIqWr
81
82 sperimentazione
internal representation
Input: description from stimulus
System
System1
System2
inputTo
Information Extraction
producesAsOutput
inputToKBSystem
concept target
output
IS
THE
CARNIVORE
THE
TIGER
BIG
WITH
STRIPES
YELLOW
AND
BLACK
VERB-SUBJVERB-PREDCOMPL+SUBJ
DET+DEF-ARG DET+DEF-ARG
ADJC+QUALIF-RMODPREP-RMOD
PREP-ARG
ADJC+QUALIF-RMOD
COORD+BASE
COORD2ND+BASE
Figure 1: The parse tree corresponding to the sentence ‘Thebig carnivore with yellow and black stripes is the tiger.’
where both a word and its dependent(s) (or governor(s)) areassociated to some visual feature. For example, a phrase like‘with black stripes’ is expected to evoke mental images ina more vivid way than its elements taken in isolation (thatis, ‘black’ and ‘stripes’), and its visual load is expected tostill grow if we add a coordinated term, like in ‘with yel-low and black stripes’. We then introduced a parameter xto emphasize the contribution of the aforementioned featuresin case the corresponding terms are linked in the parse treeby a modifier/argument relation (denoted as mod and arg inEquation 3).
V L(ci) =
(x V L(ci) if 9 c j s.t. mod(ci,c j)_arg(ci,c j)
V L(ci) otherwise.(3)
In the experimentation x was set to 1.2.
The stimuli in the dataset are pairs consisting of a descrip-tion d and a target T (st = hd,T i), such as
description dz }| {The big carnivore with yellow and black stripes is the
target Tz }| {. . . tiger .| {z }
stimulus st
The visual load associated to st components given the weight-ing scheme ~w is then computed as follows:
V L(d,~w) = Âc2d V L(c) (4)V L(T,~w) = V L(T ). (5)
ExperimentationExperiment I: human responseExperiment II: Testing the SystemDiscussion
ConclusionsReferences
Kemmerer, D. (2010). Words and the Mind: How wordscapture human experience. In B. Malt & P. Wolff (Eds.),(chap. How Words Capture Visual Experience - The Per-spective from Cognitive Neuroscience). Oxford Scholar-ship Online.
Lesmo, L. (2007, June). The Rule-Based Parser of the NLPGroup of the University of Torino. Intelligenza Artificiale,2(4), 46–47.
Navigli, R., & Lapata, M. (2010). An experimental studyof graph connectivity for unsupervised word sense dis-ambiguation. Pattern Analysis and Machine Intelligence,IEEE Transactions on, 32(4), 678–692.
Partee, B. (1995). Lexical semantics and compositionality.An invitation to cognitive science: Language, 1, 311–360.
Figura 11: La pipeline di categorizzazione usata durante gli esperimenti
a fronte di tale stimolo e corrisponde ai risultati derivanti da una speri-
mentazione psicologica, in cui 30 soggetti avevano il compito di fornire il
concetto target per ogni stimolo testuale.
In Tabella 3 possiamo vedere un riassunto dei risultati ottenuti in questa
fase. Su 87 risultati 59 sono stati categorizzati correttamente. La percen-
tuale di categorizzazione corretta è molto alta soprattutto nei casi in cui
lo step di Information Extraction è terminato con successo.
Il sistema S2 non trova nessuna inconsistenza con la base di conoscenza
ontologica rispetto ai risultati di S1 perché, basandosi su OpenCyc, un’on-
tologia che mira a rappresentare informazioni di senso comune, spesso
alcune informazioni non sono correttamente codificate all’interno dell’on-
tologia. Un esempio è la frase "Un pesce intelligente e grigio" alla quale S1
assegna il concetto Delfino e S2 dovrebbe dichiarare un’inconsistenza in
5.2 esperimento con dual-peccs 83
errori POS-tag errori automa successi IE step∑
] stimuli (%) 11 (12.6% di 87) 22 (25.3% di 87) 54 (62.1% di 87) 87
successi S1 3 (27.3% di 11) 6 (27.3% di 22) 50 (92.6% di 54) 59
Tabella 3: Risultati degli esperimenti passati.
quanto un delfino non è un pesce, ma un mammifero. Ciò non avviene
perché anche OpenCyc rappresenta la classe Delfino come sottoclasse di
Pesce.
5.2 esperimento con dual-peccs
Il sistema implementato in questa tesi è stato testato sul dominio animale,
facendo uso di un dataset di 90 frasi: 45 frasi in cui il target è un proto-
tipo, già utilizzate anche negli esperimenti precedenti, e 45 frasi in cui
il target è un esemplare.2 Il dataset delle rappresentazioni al momento
degli esperimenti era composto da 46 esemplari e 68 prototipi, per un
totale di 114 rappresentazioni basate su tipicalità. L’elenco completo de-
gli stimoli e i risultati dettagliati dei test che andremo a descrivere sono
descritti nell’Appendice A dove per ogni stimolo sono state indicate le in-
formazioni relative al risultato atteso e le informazioni relative al risultato
ottenuto: identificatore della rappresentazione, tipo di rappresentazione
e identificatore del concetto a cui fa riferimento.
validazione degli stimoli Gli stimoli relativi ai prototipi sono
stati presi dagli esperimenti precedenti, mentre le descrizioni relative al-
le rappresentazioni basate su esemplari sono state introdotte in questa
sperimentazione e validate grazie ad un test psicologico in cui sono stati
coinvolti 10 soggetti. Il test si è svolto in due fasi: inizialmente i soggetti
sono stati sottoposti ad un breve training, durante il quale sono state mo-
strate loro delle immagini di animali (prototipiche e legate ad esemplari),
ciascuna associata ad una denominazione intuitiva; nella seconda parte
2 L’elenco completo degli stimoli, comprensivo anche degli stimoli legati agli esemplari, è
disponibile all’indirizzo http://goo.gl/AiUcd1 .
84 sperimentazione
dell’esperimento ai soggetti è stata fornita una lista di stimoli testuali ed
è stato chiesto di indicare liberamente a quale animale facesse riferimen-
to lo stimolo. Il design di questo esperimento è stato ispirato dal terzo
esperimento descritto da Barbara Malt in [25].
In Tabella 4 possiamo vedere alcuni esempi di stimoli e per ognuno
il concetto atteso, il nome della specifica rappresentazione attesa e la
tipologia di rappresentazione.
Stimolo Conc. atteso Rappr. attesa Tipo
The primate with red nose Monkey Mandrill EX
The felin with black fur that hunts mice Cat Black cat EX
The domestic feline Cat Cat PR
... ... ... ...
Tabella 4: Esempio di stimoli per gli esperimenti su Dual-PECCS.
descrizione degli esperimenti Sono stati condotti due esperi-
menti utilizzando l’architettura cognitiva ACT-R estesa:
• Esperimento con IE: in questo esperimento è stata testata l’intera
pipeline, così come descritta nella Figura 11, dove, a partire dalla
descrizione testuale, le informazioni rilevanti vengono estratte auto-
maticamente dallo step di information extraction3, una rappresen-
tazione viene recuperata dal sistema S1 e proxyficata in memoria
di lavoro. Lo step di information extraction ha delle grandi lacune
e quindi produce stimoli imprecisi o errati: questo ha permesso di
testare le capacità del sistema nel caso di input rumorosi o imprecisi.
• Esperimento senza IE: l’input del sistema in questo esperimento
non è più la descrizione testuale, ma è uno stimolo già codificato
nel formato intermedio, in modo da rappresentare correttamente e
completamente le informazioni descritte nello stimolo testuale. Tut-
te le 90 descrizioni utilizzate nell’esperimento precedente sono state
3 Lo step di IE non è stato integrato in ACT-R, ma si affida ad uno script esterno che
converte la descrizione testuale in chunk.
5.2 esperimento con dual-peccs 85
tradotte manualmente nel formato intermedio e utilizzate durante
questo esperimento. Questo secondo esperimento ha lo scopo di te-
stare le prestazioni del sistema Dual-PECCS senza tener conto dei
limiti dell’estrattore di informazioni implementato, ma supponendo
un estrattore perfetto.
metriche In entrambi i casi sono state considerate due diverse
metriche:
• Concept-categorization accuracy (CC-acc): questa metrica tiene con-
to della categorizzazione finale, quindi del numero di volte che, a
fronte di uno stimolo, il sistema restituisce il concetto corretto, in-
dipendentemente dalla specifica rappresentazione proxyficata; dato
lo stimolo "Il grande felino a strisce bianche e nere", sia il prototipo di
tigre che l’esemplare tigre bianca sono considerati risultati corretti, in
quanto il concetto a cui entrambe le rappresentazioni si riferiscono
è esattamente quello atteso;
• Proxyfication accuracy (P-acc): questa metrica è stata introdotta per
tener conto degli errori di proxyficazione. Con questo termine inten-
diamo descrivere le situazioni in cui non solo è stato recuperato il
concetto corretto da S1, ma anche la specifica rappresentazione pro-
xyficata corrisponde a quella attesa. In questo caso, dato lo stimolo
"Il grande felino a strisce bianche e nere", il prototipo di tigre o l’esem-
plare di cucciolo di tigre sono considerati errori, mentre l’esemplare
tigre bianca è considerato il risultato corretto, sebbene tutte e tre le
rappresentazioni si riferiscano allo stesso concetto di tigre.
risultati Possiamo vedere i risultati generali dell’esperimento in Ta-
bella 5. Le percentuali di successo ottenute sono molto alte, anche intro-
ducendo rumore con lo step di information extraction e sono in linea
con quelle ottenute negli esperimenti precedenti che utilizzavano solo
rappresentazioni prototipiche.
In Tabella 6 abbiamo, invece, analizzato gli errori di proxyficazione,
specificandone le tipologie. Questo tipo di errore può occorrere solo in
caso di restituzione del concetto corretto da parte di S1. Nella colonna
86 sperimentazione
Test CC-acc P-acc
senza IE 95.6% (86/90) 86.0% (74/86)
con IE 85.6% (77/90) 75.3% (58/77)
Tabella 5: Tassi di accuratezza ottenuti dalle metriche CC-acc e P-acc .
Ex-Proto indichiamo il numero di casi in cui il target era costituito da una
rappresentazione prototipica ed il sistema proxyfica un esemplare; indi-
chiamo con Proto-Ex la situazione opposta, quando il target è un esem-
plare ed il sistema proxyfica una rappresentazione prototipica; infine, con
Ex-Ex indichiamo il numero di casi in cui il target è rappresentato da un
esemplare e, sebbene anche il sistema proxyfichi un esemplare, esso è
diverso da quello atteso.
La maggior parte degli errori di questo tipo sono di tipo Ex-Proto e
sono dovuti ad una mancata capacità di generalizzazione da parte del-
l’algoritmo che discrimina tra esemplari e prototipi. Supponiamo di esa-
minare lo stimolo "L’animale domestico cacciatore di topi" il cui target è il
prototipo di gatto. Se uno dei nostri esemplari collegati al concetto di gat-
to contiene anche le informazioni richieste (essere domestico e cacciare topi)
verrà restituito al posto del prototipo sebbene anch’esso sia a distanza
nulla dallo stimolo. Stiamo lavorando per migliorare i risultati in questo
caso, estendendo l’algoritmo di classificazione con controlli ulteriori.
Notiamo anche che facendo uso dello step di information extraction au-
mentano notevolmente gli errori dovuti alla confusione tra diversi esem-
plari legati allo stesso concetto, a causa della mancanza di informazioni
importanti non catturate dal parser.
TestProxyfication error
Ex-Proto Proto-Ex Ex-Ex
senza IE 12.8% (11/86) 1.1% (1/86) 0.0% (0/86)
con IE 18.2% (14/77) 0.0% (0/77) 6.5% (5/77)
Tabella 6: Analisi degli errori di proxyficazione (metrica P-acc).
5.3 test con algoritmo non esaustivo 87
5.3 test con algoritmo non esaustivo
Abbiamo effettuato alcuni test anche per quanto riguarda l’Algoritmo 3
in modo da valutare come l’accuratezza venga influenzata dal numero di
istanze considerato.
Anche questo algoritmo è stato valutato in due modalità: con utilizzo
dello step di information extraction e utilizzando direttamente le istanze
precedentemente completate. Per ognuna di queste modalità sono sta-
ti eseguiti 5 test, in modo da poter mediare i risultati che vediamo in
Tabella 7 e Tabella 8.
Durante l’esperimento comprensivo dello step di information extrac-
tion sono state esaminate in media 44 rappresentazioni su 114 (il 39%
circa), mentre per quanto riguarda l’esperimento senza information ex-
traction sono state esaminate in media 55 rappresentazioni su 114 (il 48%
circa). I risultati sono molto soddisfacenti, in quando l’aumento di erro-
ri è relativamente ridotto a fronte di un’esplorazione dello spazio delle
rappresentazioni inferiore al 50% del totale.
Test CC-acc P-acc
senza IE 95.6% (86/90) 83.7% (72/86)
con IE 80.0% (72/90) 76.4% (55/72)
Tabella 7: Tassi di accuratezza ottenuti dalle metriche CC-acc e P-acc con
l’algoritmo non esaustivo.
TestProxyfication error
Ex-Proto Proto-Ex Ex-Ex
senza IE 12.8% (11/86) 1.1% (1/86) 2.3% (2/86)
con IE 18.0% (13/72) 0.0% (0/72) 5.6% (4/72)
Tabella 8: Analisi degli errori di proxyficazione (metrica P-acc) con l’algoritmo
non esaustivo.
6C O N C L U S I O N I E S V I L U P P I F U T U R I
Questa tesi aveva come obiettivo principale di verificare la compatibilità
della teoria dei proxytipi eterogenei con l’architettura cognitiva ACT-R
e, se questo primo passo avesse dato esito positivo, integrare il sistema
che implementa il framework teorico all’interno dell’architettura. L’archi-
tettura è risultata compatibile con il framework teorico e l’integrazione
dei due sistemi ha dato vita ad una versione estesa dell’architettura ACT-
R tramite la quale è possibile accedere al sistema Dual-PECCS. Inoltre
il sistema Dual-PECCS è stato esteso in modo da poter usufruire anche
di rappresentazioni basate su esemplari, oltre alle rappresentazioni pro-
totipiche già disponibili. Gli esperimenti eseguiti sull’architettura estesa
hanno mostrato risultati soddisfacenti e indicano che tale approccio può
rivelarsi utile per estendere gli attuali sistemi di rappresentazione della
conoscenza.
Nel seguito del capitolo sono analizzati alcuni dei possibili sviluppi
per questo progetto, e proposti alcuni spunti per migliorare il sistema
esistente.
La forza dei concetti
Quando si vuole ragionare su informazioni concettuali risulta fondamen-
tale riuscire a dare un peso a ciascuna informazione, con lo scopo di quan-
tificare il livello di confidenza che si ha con tale concetto. Ovviamente
questa nozione di confidenza varia da individuo ad individuo: ad esem-
pio il concetto di pinguino sarà più forte e radicato nella mente di un eschi-
89
90 conclusioni e sviluppi futuri
mese piuttosto che in quella di un italiano, perché presumibilmente le sue
occasioni di interazione con elementi di tale categoria sono maggiori; la
situazione è invertita quando cominciamo a parlare del gatto; si potrebbe-
ro fare migliaia di esempi di questo tipo, per arrivare alla conclusione che
la forza di un concetto non può essere definita in modo universale, ma
dipende da tantissimi fattori non misurabili.
Nel caso di Dual-PECCS e in particolare di S1, avere a disposizione
una nozione di forza di un concetto sarebbe fondamentale per gestire, ad
esempio, situazioni di parimerito nel calcolo della distanza. Tale nozione,
affiancata alla similarità calcolata dal sistema, permetterebbe la creazione
di algoritmi di ricerca nello spazio dei concetti più intelligenti e indirizzati
verso la soluzione.
Nell’ambito delle architetture cognitive esistono dei modelli di ap-
prendimento dei concetti che si basano su valori come recency e frequency
e derivano automaticamente un valore di attivazione di ogni elemento in
memoria. Abbiamo descritto il modello di attivazione dei chunk in ACT-R
nella sottosezione 3.3.1 e una proposta di estensione di tale attivazione per
le rappresentazioni e i concetti di Dual-PECCS nella sottosezione 4.4.5.
Tali modelli però sono utilizzabili solo nel caso in cui la situazione evol-
va nel tempo, in un contesto di cambiamento e apprendimento continuo.
Inoltre, questi valori sono in qualche modo guidati dalle informazioni
fornite al modello durante l’apprendimento.
Un’altra opzione potrebbe consistere nel calcolare questi valori in modo
automatico a partire da un corpus linguistico, come hanno fatto Oltramari
e Lebiere in [34]. In questo articolo, per calcolare i valori iniziali di atti-
vazione base-level da assegnare ai vari chunk in ACT-R, gli autori hanno
realizzato un’analisi delle frequenze delle parole all’interno dell’Ameri-
can National Corpus.1 Sebbene i valori ricavati in tale modo siano legati
più che altro alla frequenza di apparizione delle parole nel testo, essi po-
trebbero costituire la base per uno studio più approfondito sul legame di
tali informazioni con il ragionamento sui concetti.
1 American National Corpus - http://americannationalcorpus.org/
conclusioni e sviluppi futuri 91
Apprendimento delle rappresentazioni
Un altro argomento che offre molti spunti di sviluppo è la gestione di
forme di apprendimento delle rappresentazioni o dei concetti. Ci sono
diverse possibilità di apprendimento in un sistema come Dual-PECCS.
In una prima fase si potrebbe implementare una forma di apprendimen-
to dei prototipi a partire dagli esemplari. Questa procedura dovrebbe es-
sere iterativa, considerare il contributo di tutti gli esemplari osservati du-
rante l’evoluzione dell’individuo, e in qualche modo pesare gli esemplari
in base alla loro rilevanza. Sicuramente sarebbe necessario implementare
anche un modello di apprendimento degli esemplari, ad esempio simu-
lando le percezioni provenienti dall’ambiente esterno grazie ad un’archi-
tettura cognitiva, il processo di "cancellazione" delle informazioni dalla
memoria e studiando una tecnica per discriminare quali nuovi esempla-
ri andranno effettivamente ricordati e quali andranno scartati nel breve
tempo.
Lo step successivo, a mio avviso più complesso dei precedenti, riguarda
l’apprendimento automatico delle categorie. Fino a questo punto abbia-
mo implicitamente parlato di apprendimento supervisionato, in quanto
le categorie e l’appartenenza di una rappresentazione ad esse era già de-
terminata a priori da un agente esterno: percependo un nuovo esemplare
di cane sappiamo che apparterrà al concetto cane, al concetto animale, etc...
In questa nuova fase di sviluppo si passerebbe ad una forma di appren-
dimento non supervisionato, in modo da derivare, direttamente a partire
dagli esemplari, quante e quali categorie si possono formare e le relazioni
che sussistono tra di esse. Per affrontare questo problema si dovrebbero
valutare alcuni algoritmi di clustering, ad esempio utilizzando delle tecni-
che di clustering gerarchico in modo da astrarre anche delle relazioni di
"sussunzione" tra i vari cluster/categorie ed introdurre delle informazio-
ni gerarchiche all’interno di S1, che potrebbero essere utilizzate durante
il processo di classificazione.
92 conclusioni e sviluppi futuri
Gestione delle dimensioni
Una parte importante della pipeline di S1-S2 è lo step di Information
Extraction. Ad oggi il sistema di IE riesce a catturare molte delle caratte-
ristiche dello stimolo testuale come colori, forme, parti, funzioni, etc. Un
grosso problema si pone quando ci troviamo di fronte a descrizioni come
"Il piccolo animale [...]" o "Il grande insetto [...]", in quanto l’automa non è
in grado di quantificare. Il significato di essere piccolo o essere grande non è
univoco e deterministico ma deve essere pesato in qualche modo rispetto
al contesto e, più nello specifico, alla classe che accompagna il modificato-
re. Una possibilità per gestire queste descrizioni consiste nell’ispirarsi alle
classi di contrasto introdotte da Gärdenfors. Il termine piccolo in quest’ot-
tica sarebbe tradotto in una regione all’interno di un ipercubo unitario2,
mentre animale sarebbe tradotto in una classe di contrasto rappresentan-
te la classe delle dimensioni degli animali. Proiettando l’ipercubo unita-
rio sulla classe di contrasto si otterrebbe così la regione identificante le
dimensioni considerate come piccoli animali.
Le classi di contrasto sono una soluzione al problema dei contesti in-
dipendente dallo specifico dominio considerato, però questa generalità
comporta alcuni problemi, ad esempio legati agli outliners. Proviamo a
considerare l’insieme delle ’dimensioni di mammiferi’: in questo insieme
rientrano sia le dimensioni della balena che quelle di un topolino, ed esse
definiscono lo spazio delle dimensioni tanto quanto le altre, sebbene siano
considerabili più come eccezioni che come normalità. Si potrebbe provare
ad estendere la nozione di classi di contrasto con una qualche forma di
distribuzione di probabilità legata alla probabilità che un mammifero ab-
bia una determinata dimensione. Intuitivamente si potrebbe considerare
un grande mammifero come un mammifero che è più grande dell’X% delle
istanze contenute nella categoria dei mammiferi, dove X è il valore che
definisce il modificatore grande.
Da analizzare sotto un altro punto di vista è il problema delle dimen-
sioni delle parti degli animali. Prendiamo come esempio la descrizione
2 L’ipercubo unitario è descritto dalle stesse dimensioni del dominio di riferimento, in
questo esempio quello di size e quindi x, y e z.
conclusioni e sviluppi futuri 93
"mammifero con una lunga coda": essa può riferirsi, con egual forza, sia
al topo che alla tigre sebbene le dimensioni delle loro code non apparten-
gano evidentemente allo stessa porzione dello spazio delle code. Questo
perché quando specifichiamo le dimensioni di una parte dell’animale, es-
se devono essere pesate anche in base alle dimensioni totali dell’animale.
Per questo motivo la coda del topo è ’lunga’ così come è lunga quella del-
la tigre. Per gestire questi casi, non è più sufficiente un’approssimazione
delle dimensioni fatta dal parser, ma è necessaria un’estensione più pro-
fonda del sistema, che coinvolga anche il formato di rappresentazione e
il calcolo della similarità.
Estensioni del formato e della similarità
Per quanto riguarda la memorizzazione delle rappresentazioni potrebbe-
ro essere utili alcune modifiche al formato di rappresentazione, in modo
da poter rappresentare ad esempio la negazione o il peso delle featu-
res. Recentemente abbiamo inserito una gestione limitata della negazione
riguardante la presenza di parti, ma sarebbe utile estenderla a tutte le
caratteristiche esprimibili con il formato per gestire situazioni come "L’a-
nimale che non vive al freddo". Una possibilità potrebbe essere l’inserimento
di un flag opzionale di inversione di significato associabile a ciascuna delle
feature espresse in una rappresentazione.
Un ulteriore sviluppo riguarda il calcolo della similarità e mira ad eli-
minare i confronti di similarità basati su stringhe. Attualmente famiglia,
classe, forme, simboli, etc. sono rappresentati come stringhe e il confronto
effettuato è basato su una semplice uguaglianza. Sarebbe importante uti-
lizzare gli identificatori WordNet associati alle varie stringhe per passare
da una similarità puramente simbolica ad una similarità semantica.
Considerazioni su Dual-PECCS in ACT-R
Dal punto di vista dell’integrazione di Dual-PECCS in ACT-R sarebbe
interessante definire meglio e testare, un qualche modello di attivazione
dei chunk concettuali e dei chunk legati alle rappresentazioni. Le idee in-
trodotte nella sottosezione 4.4.5 andrebbero approfondite, tenendo conto
94 conclusioni e sviluppi futuri
dei molti studi riguardanti l’influenza di valori come recency, frequency
e fan sui vari modelli di definizione dei concetti (prototipi, esemplari, etc),
in modo da sviluppare una teoria relativa all’interazione delle rappresen-
tazioni eterogenee e alla combinazione di tali valori per la definizione
dell’attivazione del concetto a cui si riferiscono.
Infine, sarebbe interessante stimare delle tempistiche ragionevoli per
l’esecuzione delle operazioni $S1 e $S2, in modo da rispecchiare l’intui-
zione della dual process theory, secondo la quale i processi di tipo 2 sono
più lenti dei processi di tipo 1.
AR I S U LTAT I D E L L A S P E R I M E N TA Z I O N E
In questa appendice sono stati inseriti i risultati dettagliati dei test descrit-
ti nel Capitolo 5. In Tabella 9 possiamo vedere i risultati dell’esecuzione
degli esperimenti senza utilizzo dello step di information extraction, men-
tre in Tabella 10 vediamo i risultati relativi all’intera pipeline, partendo
direttamente dalla descrizione testuale dello stimolo. Nelle colonne di
entrambe le tabelle sono stati inseriti i seguenti valori, in ordine:
• lo stimolo testuale che si vuole categorizzare;
• le specifiche del target e, più precisamente, l’identificatore della rap-
presentazione target, il tipo di rappresentazione e l’identificatore del
concetto riferito dalla rappresentazione;
• il risultato ottenuto, specificando l’identificatore della rappresenta-
zione proxyficata, il tipo della rappresentazione e il concetto a cui
fa riferimento la rappresentazione ottenuta;
• gli errori relativi alla proxyficazione di un concetto diverso da quel-
lo atteso (colonna C) e gli errori di proxyficazione di una rappresen-
tazione diversa da quella attesa, sebbene il concetto di riferimento
possa essere quello atteso (colonna P). In questo caso il valore x
indica un errore, mentre il valore - indica un risultato corretto;
95
96 risultati della sperimentazione
Tabella 9: Risultati dei test senza utilizzo dello step di information extraction.
Stimolo testualeTarget;
Tipo; Concetto
Risultato;
Tipo; ConcettoC P
A big animal that lives in the desert
and has two humps
camel;
P; 2437136
camel;
P; 2437136
- -
A big animal with four legs, used to
ride or to pull heavy things
horse;
P; 2374451
horse;
P; 2374451
- -
A big black wild felinepanther;
P; 2128925
panther;
P; 2128925
- -
A big fish with a rectangular head and
a long fin
hammer. shark;
E; 1482330
hammer. shark;
E; 1482330
- -
A big fish with very sharp teethshark;
P; 1482330
shark;
P; 1482330
- -
A big reptile with a long mouth and
sharp teeth, that lives in lakes and
rivers
crocodile;
P; 1697178
crocodile;
P; 1697178
- -
A big strong wild animal with thick furbear;
P; 2131653
bear;
P; 2131653
- -
A big, black and white sea bird that
swims and cannot fly
penguin;
P; 2055803
penguin;
P; 2055803
- -
A bird kept on a farm and bred for
meat and eggs
chicken;
P; 7644967
chicken;
P; 7644967
- -
A bird that has large yellow eyes and
hunts small animals at night
owl;
P; 1621127
owl;
P; 1621127
- -
A black bird with yellow beakblackbird;
P; 1558594
common blackbird;
E; 1558594
- x
A colorful insect with two orange and
black wings that lives in North
America or Mexico
monarch butterfly;
E; 2274259
monarch butterfly;
E; 2274259
- -
A large mammal that steals honey from
beehives and lives in a den all winter
bear;
P; 2131653
bear;
P; 2131653
- -
A large mammal with long claws that
hunts fish in mountain rivers
bear fish hunter;
E; 2131653
bear fish hunter;
E; 2131653
- -
A sea creature with ten legs and a
circular body covered by a shell
crab;
P; 1976957
crab;
P; 1976957
- -
A small, green animal with long back
legs for jumping that lives near water
frog;
P; 1639765
red eyed tree frog;
E; 1639765
- x
A tall African animal with a very long
neck and long, thin legs
giraffe;
P; 2439033
giraffe;
P; 2439033
- -
risultati della sperimentazione 97
An Australian animal like a small bear
with grey fur which lives in trees and
eats leaves
koala;
P; 1882714
koala;
P; 1882714
- -
An insect with large, patterned wingsbutterfly;
P; 2274259
monarch butterfly;
E; 2274259
- x
An intelligent grey fishdolphin;
P; 2068974
hammer. shark;
E; 1482330
x x
The all black bird, with a yellow
eye-ring and bill, that has a rich
melodious song
common blackbird;
E; 1558594
common blackbird;
E; 1558594
- -
The animal that eats bananasmonkey;
P; 2484322
roloway monkey;
E; 2484322
- x
The animal with black and white fur
and that eats bananas
roloway monkey;
E; 2484322
roloway monkey;
E; 2484322
- -
The animal with eight leg that spins its
web to catch insects
spider;
P; 1772222
thin leg spider;
E; 1772222
- x
The animal with eight tentacles with
suckers that lives in sea
octopus;
P; 1970164
blue ringed octopus;
E; 1970164
- x
The big bird with hooked beak that
eats carrions
vulture;
P; 1616318
vulture;
P; 1616318
- -
The big carnivore with white fur and
black stripes
white tiger;
E; 2129604
tiger;
P; 2129604
- x
The big carnivore with yellow fur and
black stripes
tiger;
P; 2129604
tiger;
P; 2129604
- -
The big herbivore with antlersdeer;
P; 2430045
deer;
P; 2430045
- -
The big herbivore with two stub on the
head
female deer;
E; 2430045
female deer;
E; 2430045
- -
The big mammal with white fur that
lives in Arctic and that eats walruses
polar bear;
E; 2131653
polar bear;
E; 2131653
- -
The bird with a white collar, living in
Indian montane forests and subtropical
or tropical high-altitude shrubland
white collared
blackbird;
E; 1558594
white collared
blackbird;
E; 1558594
- -
The bird with grey plumage that jumps
and flutters from branch to branch and
prefers quick and low flights over
vegetation
gray catbird;
E; 1558594
gray catbird;
E; 1558594
- -
The black and brown animal with eight
striped legs
tarantula spider;
E; 1772222
tarantula spider;
E; 1772222
- -
The blue amphibian that lives in a lakeblue frog;
E; 1639765
blue frog;
E; 1639765
- -
98 risultati della sperimentazione
The brown mollusk with white stripeswonderpus octopus;
E; 1970164
wonderpus octopus;
E; 1970164
- -
The brown small herbivore with white
spots on his back
puppy deer;
E; 2430045
puppy deer;
E; 2430045
- -
The carnivore with big jaws and
without mane
lion female;
E; 2129165
lion female;
E; 2129165
- -
The carnivore with brown fur and short
tail and tufted ears
lynx;
P; 2127052
lynx;
P; 2127052
- -
The carnivore with mane and big jawslion;
P; 2129165
lion;
P; 2129165
- -
The carnivore with mane and white furwhite lion;
E; 2129165
white lion;
E; 2129165
- -
The Chinese herbivore with no antlers
and with two big tusks
water deer;
E; 2430045
water deer;
E; 2430045
- -
The circular small insect with two red
spotted wings and that eats aphids
ladybug;
P; 2165456
ladybug;
P; 2165456
- -
The domestic felinecat;
P; 2121620
white tiger;
E; 2129604
x x
The equine with grey fur, long ears and
white and black striped legs
donkey africanus;
E; 2389559
donkey africanus;
E; 2389559
- -
The equine with long earsdonkey;
P; 2389559
catalan donkey;
E; 2389559
- x
The equine with long red ears and with
white and black fur
catalan donkey;
E; 2389559
catalan donkey;
E; 2389559
- -
The fast feline with semi-retractable
claws and spotted fur
cheetah e;
E; 2130308
cheetah e;
E; 2130308
- -
The felin that hunts mice with long tail
but without fur
canadian sphinx;
E; 2121620
canadian sphinx;
E; 2121620
- -
The felin with black fur that hunts miceblack cat;
E; 2121620
black cat;
E; 2121620
- -
The felin with yellow and black stripes
that hunts mice
european cat;
E; 2121620
european cat;
E; 2121620
- -
The female bird with black plumage
and dark beack
female blackbird;
E; 1558594
female blackbird;
E; 1558594
- -
The fish that lives in freshwater lakes or
rivers found naturally in areas close to
the Adriatic Sea
adriatic trout;
E; 2537085
adriatic trout;
E; 2537085
- -
The fish that reproduces in northern
rivers and lives on both coasts of the
Atlantic Ocean
Atlantic Salmon;
E; 2534734
Atlantic Salmon;
E; 2534734
- -
The fish with red body, green head and
green fins that eats plankton
sockeye salmon;
E; 2534734
sockeye salmon;
E; 2534734
- -
risultati della sperimentazione 99
The freshwater fish that swims
upstream
salmon;
P; 2534734
adriatic trout;
E; 2537085
x x
The freshwater fish that swims
upstream and lives near the coastal
waters of Alaska
Silver salmon;
E; 2534734
Silver Salmon;
E; 2534734
- x
The freshwater fish with golden flanks
and red, horizontal bands along the
lateral lines on each side
golden trout;
E; 2534734
golden trout;
E; 2534734
- -
The insect with sting and black and
yellow striped body that produces
honey
bee;
P; 2206856
bee;
P; 2206856
- -
The little black amphibian with yellow
spots
salamander;
P; 1629276
salamander;
P; 1629276
- -
The long reptile with forked tonguesnake;
P; 1726692
sea snake;
E; 1726692
- x
The long reptile with forked tongue
and red stripes
coral snake;
E; 1726692
coral snake;
E; 1726692
- -
The long reptile with forked tongue
that lives in tropical seas
sea snake;
E; 1726692
sea snake;
E; 1726692
- -
The mammal bred for milk and for
slaughter
cow;
P; 1887787
cachena cow;
E; 1887787
- x
The mammal that eats carrots and
vegetables and can reach the length of
100 centimeters
giant rabbit;
E; 2324045
giant rabbit;
E; 2324045
- -
The mammal with one pouch and long
tail
kangaroo;
P; 1877134
red kangaroo;
E; 1877134
- x
The mammal with trunk and enormous
ears
elephant;
P; 2503517
elephant;
P; 2503517
- -
The mice hunter with whiskers and
long tail
cat;
P; 2121620
cat;
P; 2121620
- -
The mollusk with feelers but without
shell
snail no shell;
E; 1944390
snail no shell;
E; 1944390
- -
The orange amphibian with black spot
strawberry poison
frog;
E; 1639765
strawberry poison
frog;
E; 1639765
- -
The primate with red nosemandrill;
E; 2484322
mandrill;
E; 2484322
- -
The raptor with big wings that flies
over mountains
eagle;
P; 1613294
filippine eagle;
E; 1613294
- x
The raptor with white head, hooked
beak and two orange feet
bald eagle;
E; 1613294
bald eagle;
E; 1613294
- -
100 risultati della sperimentazione
The reptile with shell that reaches a
length of 200 cm and lives in sea
giant sea turtle;
E; 1662784
giant sea turtle;
E; 1662784
- -
The rodent that eats cheesemouse;
P; 2330245
mouse;
P; 2330245
- -
The small animal that flies at night and
orients by ultrasound
bat;
P; 2139199
bat;
P; 2139199
- -
The small animal with feelers that eats
lettuce
snail lettuce eater;
E; 1944390
snail;
P; 1944390
- x
The small animal with white fur and
tail that lives in the Arctic
arctic fox;
E; 2118333
arctic fox;
E; 2118333
- -
The small domestic mammal with
white fur and red eyes
albino rabbit;
E; 2324045
albino rabbit;
E; 2324045
- -
The small green animal with red eyes
and orange feet
red eyed tree frog;
E; 1639765
red eyed tree frog;
E; 1639765
- -
The small mammal with long ears that
eats carrots
rabbit;
P; 2324045
albino rabbit;
E; 2324045
- x
The very big fish that eats planktonwhale;
P; 2062744
shark;
P; 1482330
x x
The very slow animal with one feeler
and a shell
snail one feeler;
E; 1944390
snail one feeler;
E; 1944390
- -
The very slow animal with shellsnail;
P; 1944390
snail one feeler;
E; 1944390
- x
The very slow animal with shell and
four legs
turtle;
P; 1662784
trachemys turtle;
E; 1662784
- x
The very small animal with eight long
legs
thin leg spider;
E; 1772222
thin leg spider;
E; 1772222
- -
The woods animal with red fur and
that eats hens
fox hens eater;
E; 2118333
fox hens eater;
E; 2118333
- -
The woods animal with red fur and the
tip of the tail white
fox;
P; 2118333
desert fox;
E; 2118333
- x
The yellow feline with black spots that
runs very fast
cheetah;
P; 2130308
cheetah;
P; 2130308
- -
The yellow mollusk with tentacles and
blue and black spots
blue ringed octopus;
E; 1970164
blue ringed octopus;
E; 1970164
- -
risultati della sperimentazione 101
Tabella 10: Risultati dei test senza utilizzo dello step di information extraction.
Stimolo testualeTarget;
Tipo; Concetto
Risultato;
Tipo; ConcettoC P
A big animal that lives in the desert
and has two humps
camel;
P; 2437136
camel;
P; 2437136
- -
A big animal with four legs, used to
ride or to pull heavy things
horse;
P; 2374451
lion female;
E; 2129165
x x
A big black wild felinepanther;
P; 2128925
black cat;
E; 2121620
x x
A big fish with a rectangular head and
a long fin
hammer. shark;
E; 1482330
sockeye salmon;
E; 2534734
x x
A big fish with very sharp teethshark;
P; 1482330
shark;
P; 1482330
- -
A big reptile with a long mouth and
sharp teeth, that lives in lakes and
rivers
crocodile;
P; 1697178
crocodile;
P; 1697178
- -
A big strong wild animal with thick furbear;
P; 2131653
polar bear;
E; 2131653
- x
A big, black and white sea bird that
swims and cannot fly
penguin;
P; 2055803
penguin;
P; 2055803
- -
A bird kept on a farm and bred for
meat and eggs
chicken;
P; 7644967
chicken;
P; 7644967
- -
A bird that has large yellow eyes and
hunts small animals at night
owl;
P; 1621127
owl;
P; 1621127
- -
A black bird with yellow beakblackbird;
P; 1558594
common blackbird;
E; 1558594
- x
A colorful insect with two orange and
black wings that lives in North
America or Mexico
monarch butterfly;
E; 2274259
monarch butterfly;
E; 2274259
- -
A large mammal that steals honey from
beehives and lives in a den all winter
bear;
P; 2131653
white tiger;
E; 2129604
x x
A large mammal with long claws that
hunts fish in mountain rivers
bear fish hunter;
E; 2131653
polar bear;
E; 2131653
- x
A sea creature with ten legs and a
circular body covered by a shell
crab;
P; 1976957
crab;
P; 1976957
- -
A small, green animal with long back
legs for jumping that lives near water
frog;
P; 1639765
trachemys turtle;
E; 1662784
x x
A tall African animal with a very long
neck and long, thin legs
giraffe;
P; 2439033
piemontese bull;
E; 2403325
x x
102 risultati della sperimentazione
An Australian animal like a small bear
with grey fur which lives in trees and
eats leaves
koala;
P; 1882714
koala;
P; 1882714
- -
An insect with large, patterned wingsbutterfly;
P; 2274259
monarch butterfly;
E; 2274259
- x
An intelligent grey fishdolphin;
P; 2068974
hammer. shark;
E; 1482330
x x
The all black bird, with a yellow
eye-ring and bill, that has a rich
melodious song
common blackbird;
E; 1558594
common blackbird;
E; 1558594
- -
The animal that eats bananasmonkey;
P; 2484322
roloway monkey;
E; 2484322
- x
The animal with black and white fur
and that eats bananas
roloway monkey;
E; 2484322
roloway monkey;
E; 2484322
- -
The animal with eight leg that spins its
web to catch insects
spider;
P; 1772222
thin leg spider;
E; 1772222
- x
The animal with eight tentacles with
suckers that lives in sea
octopus;
P; 1970164
blue ringed octopus;
E; 1970164
- x
The big bird with hooked beak that
eats carrions
vulture;
P; 1616318
bald eagle;
E; 1613294
x x
The big carnivore with white fur and
black stripes
white tiger;
E; 2129604
white tiger;
E; 2129604
- -
The big carnivore with yellow fur and
black stripes
tiger;
P; 2129604
tiger;
P; 2129604
- -
The big herbivore with antlersdeer;
P; 2430045
deer;
P; 2430045
- -
The big herbivore with two stub on the
head
female deer;
E; 2430045
female deer;
E; 2430045
- -
The big mammal with white fur that
lives in Arctic and that eats walruses
polar bear;
E; 2131653
polar bear;
E; 2131653
- -
The bird with a white collar, living in
Indian montane forests and subtropical
or tropical high-altitude shrubland
white collared
blackbird;
E; 1558594
white collared
blackbird;
E; 1558594
- -
The bird with grey plumage that jumps
and flutters from branch to branch and
prefers quick and low flights over
vegetation
gray catbird;
E; 1558594
gray catbird;
E; 1558594
- -
The black and brown animal with eight
striped legs
tarantula spider;
E; 1772222
tarantula spider;
E; 1772222
- -
The blue amphibian that lives in a lakeblue frog;
E; 1639765
blue frog;
E; 1639765
- -
risultati della sperimentazione 103
The brown mollusk with white stripeswonderpus octopus;
E; 1970164
wonderpus octopus;
E; 1970164
- -
The brown small herbivore with white
spots on his back
puppy deer;
E; 2430045
puppy deer;
E; 2430045
- -
The carnivore with big jaws and
without mane
lion female;
E; 2129165
lion female;
E; 2129165
- -
The carnivore with brown fur and short
tail and tufted ears
lynx;
P; 2127052
lynx;
P; 2127052
- -
The carnivore with mane and big jawslion;
P; 2129165
lion female;
E; 2129165
- x
The carnivore with mane and white furwhite lion;
E; 2129165
white lion;
E; 2129165
- -
The Chinese herbivore with no antlers
and with two big tusks
water deer;
E; 2430045
water deer;
E; 2430045
- -
The circular small insect with two red
spotted wings and that eats aphids
ladybug;
P; 2165456
ladybug;
P; 2165456
- -
The domestic felinecat;
P; 2121620
white tiger;
E; 2129604
x x
The equine with grey fur, long ears and
white and black striped legs
donkey africanus;
E; 2389559
donkey africanus;
E; 2389559
- -
The equine with long earsdonkey;
P; 2389559
catalan donkey;
E; 2389559
- x
The equine with long red ears and with
white and black fur
catalan donkey;
E; 2389559
catalan donkey;
E; 2389559
- -
The fast feline with semi-retractable
claws and spotted fur
cheetah e;
E; 2130308
cheetah e;
E; 2130308
- -
The felin that hunts mice with long tail
but without fur
canadian sphinx;
E; 2121620
canadian sphinx;
E; 2121620
- -
The felin with black fur that hunts miceblack cat;
E; 2121620
black cat;
E; 2121620
- -
The felin with yellow and black stripes
that hunts mice
european cat;
E; 2121620
european cat;
E; 2121620
- -
The female bird with black plumage
and dark beack
female blackbird;
E; 1558594
white collared
blackbird;
E; 1558594
- x
The fish that lives in freshwater lakes or
rivers found naturally in areas close to
the Adriatic Sea
adriatic trout;
E; 2537085
hammer. shark;
E; 1482330
x x
The fish that reproduces in northern
rivers and lives on both coasts of the
Atlantic Ocean
Atlantic Salmon;
E; 2534734
Atlantic Salmon;
E; 2534734
- -
The fish with red body, green head and
green fins that eats plankton
sockeye salmon;
E; 2534734
sockeye salmon;
E; 2534734
- -
104 risultati della sperimentazione
The freshwater fish that swims
upstream
salmon;
P; 2534734
Atlantic Salmon;
E; 2534734
- x
The freshwater fish that swims
upstream and lives near the coastal
waters of Alaska
Silver salmon;
E; 2534734
Atlantic Salmon;
E; 2534734
- x
The freshwater fish with golden flanks
and red, horizontal bands along the
lateral lines on each side
golden trout;
E; 2534734
golden trout;
E; 2534734
- -
The insect with sting and black and
yellow striped body that produces
honey
bee;
P; 2206856
monarch butterfly;
E; 2274259
x x
The little black amphibian with yellow
spots
salamander;
P; 1629276
salamander;
P; 1629276
- -
The long reptile with forked tonguesnake;
P; 1726692
sea snake;
E; 1726692
- x
The long reptile with forked tongue
and red stripes
coral snake;
E; 1726692
coral snake;
E; 1726692
- -
The long reptile with forked tongue
that lives in tropical seas
sea snake;
E; 1726692
sea snake;
E; 1726692
- -
The mammal bred for milk and for
slaughter
cow;
P; 1887787
cachena cow;
E; 1887787
- x
The mammal that eats carrots and
vegetables and can reach the length of
100 centimeters
giant rabbit;
E; 2324045
albino rabbit;
E; 2324045
- x
The mammal with one pouch and long
tail
kangaroo;
P; 1877134
red kangaroo;
E; 1877134
- x
The mammal with trunk and enormous
ears
elephant;
P; 2503517
catalan donkey;
E; 2389559
x x
The mice hunter with whiskers and
long tail
cat;
P; 2121620
cat;
P; 2121620
- -
The mollusk with feelers but without
shell
snail no shell;
E; 1944390
snail no shell;
E; 1944390
- -
The orange amphibian with black spot
strawberry poison
frog;
E; 1639765
strawberry poison
frog;
E; 1639765
- -
The primate with red nosemandrill;
E; 2484322
mandrill;
E; 2484322
- -
The raptor with big wings that flies
over mountains
eagle;
P; 1613294
filippine eagle;
E; 1613294
- x
The raptor with white head, hooked
beak and two orange feet
bald eagle;
E; 1613294
bald eagle;
E; 1613294
- -
risultati della sperimentazione 105
The reptile with shell that reaches a
length of 200 cm and lives in sea
giant sea turtle;
E; 1662784
giant sea turtle;
E; 1662784
- -
The rodent that eats cheesemouse;
P; 2330245
mouse;
P; 2330245
- -
The small animal that flies at night and
orients by ultrasound
bat;
P; 2139199
white collared
blackbird;
E; 1558594
x x
The small animal with feelers that eats
lettuce
snail lettuce eater;
E; 1944390
snail lettuce eater;
E; 1944390
- -
The small animal with white fur and
tail that lives in the Arctic
arctic fox;
E; 2118333
arctic fox;
E; 2118333
- -
The small domestic mammal with
white fur and red eyes
albino rabbit;
E; 2324045
albino rabbit;
E; 2324045
- -
The small green animal with red eyes
and orange feet
red eyed tree frog;
E; 1639765
red eyed tree frog;
E; 1639765
- -
The small mammal with long ears that
eats carrots
rabbit;
P; 2324045
albino rabbit;
E; 2324045
- x
The very big fish that eats planktonwhale;
P; 2062744
sockeye salmon;
E; 2534734
x x
The very slow animal with one feeler
and a shell
snail one feeler;
E; 1944390
snail one feeler;
E; 1944390
- -
The very slow animal with shellsnail;
P; 1944390
snail one feeler;
E; 1944390
- x
The very slow animal with shell and
four legs
turtle;
P; 1662784
trachemys turtle;
E; 1662784
- x
The very small animal with eight long
legs
thin leg spider;
E; 1772222
tarantula spider;
E; 1772222
- x
The woods animal with red fur and
that eats hens
fox hens eater;
E; 2118333
fox hens eater;
E; 2118333
- -
The woods animal with red fur and the
tip of the tail white
fox;
P; 2118333
desert fox;
E; 2118333
- x
The yellow feline with black spots that
runs very fast
cheetah;
P; 2130308
cheetah;
P; 2130308
- -
The yellow mollusk with tentacles and
blue and black spots
blue ringed octopus;
E; 1970164
blue ringed octopus;
E; 1970164
- -
B I B L I O G R A F I A
[1] Benjamin Adams and Martin Raubal. A metric conceptual space
algebra. In Spatial information theory, pages 51–68. Springer, 2009. (cit.
a p. 14)
[2] John Robert Anderson. Retrieval of propositional information from
long-term memory. Cognitive Psychology, 6(4):451–474, 1974. (cit. a p.
31)
[3] John Robert Anderson. Language, memory, and thought. 1976. (cit.
a p. 21)
[4] John Robert Anderson. How can the human mind occur in the
physical universe? 2007. (cit. a p. 19)
[5] John Robert Anderson and Jonathan Betz. A hybrid model of cate-
gorization. Psychonomic Bulletin & Review, 8(4):629–647, 2001. (cit. a
p. 63)
[6] John Robert Anderson, Daniel Bothell, Michael D Byrne, Scott Dou-
glass, Christian Lebiere, and Yulin Qin. An integrated theory of the
mind. Psychological review, 111(4):1036, 2004. (cit. a p. 21, 36, and 64)
[7] Alan Baddeley. Working memory. 1986. (cit. a p. 65)
[8] Jerry Ball, Stuart Rodgers, and Kevin Gluck. Integrating act-r and
cyc in a large-scale model of language comprehension for use in
intelligent agents. In AAAI workshop, pages 19–25, 2004. (cit. a p. 63)
[9] Dan Bothell. Act-r 6.1 reference manual. 2014. (cit. a p. 38)
107
108 bibliografia
[10] Roberto Cordeschi and Marcello Frixione. Rappresentare i concet-
ti: filosofia, psicologia e modelli computazionali. Sistemi Intelligenti,
pages 25–40, 2011. (cit. a p. 5)
[11] Jonathan St BT Evans and Keith Ed Frankish. In two minds: Dual
processes and beyond. Oxford University Press, 2009. (cit. a p. 15)
[12] Marcello Frixione and Antonio Lieto. The computational representa-
tion of concepts in formal ontologies - some general considerations.
In KEOD, pages 396–403, 2010. (cit. a p. 5 and 11)
[13] Marcello Frixione and Antonio Lieto. Representing concepts in for-
mal ontologies: Compositionality vs. typicality effects. Logic and
Logical Philosophy, 21(4):391–414, 2012. (cit. a p. 3)
[14] Marcello Frixione and Antonio Lieto. Towards an extended model of
conceptual representations in formal ontologies: A typicality-based
proposal. Journal of Universal Computer Science, 20(3):257–276, 2014.
(cit. a p. 3 and 16)
[15] Peter Gärdenfors. Conceptual spaces: The geometry of thought. MIT
press, 2004. (cit. a p. 13)
[16] Michael E Hansen, Andrew Lumsdaine, and Robert L Goldstone.
Cognitive architectures: a way forward for the psychology of pro-
gramming. In Proceedings of the ACM international symposium on New
ideas, new paradigms, and reflections on programming and software, pages
27–38. ACM, 2012. (cit. a p. 20)
[17] Philip Nicholas Johnson-Laird. The computer and the mind: An intro-
duction to cognitive science. Harvard University Press, 1988. (cit. a p.
13)
[18] Douglas B Lenat. Cyc: A large-scale investment in knowledge infra-
structure. Communications of the ACM, 38(11):33–38, 1995. (cit. a p.
53)
[19] Antonio Lieto. A computational framework for concept represen-
tation in cognitive systems and architectures: Concepts as heteroge-
neous proxytypes. Procedia Computer Science, 41:6–14, 2014. (cit. a p.
41)
bibliografia 109
[20] Antonio Lieto, Andrea Minieri, Alberto Piana, and Daniele P Radicio-
ni. A knowledge-based system for prototypical reasoning. Connection
Science, (ahead-of-print):1–16, 2014. (cit. a p. 2)
[21] Antonio Lieto, Andrea Minieri, Alberto Piana, Daniele P Radicioni,
and Marcello Frixione. A Dual Process Architecture for Ontology-
Based Systems. In Joaquim Filipe, Jan Dietz, and David Aveiro, edi-
tors, Proceedings of KEOD 2014, 6th International Conference on Knowled-
ge Engineering and Ontology Development, pages 48–55. SCITEPRESS –
Science and Technology Publications, 2014. ISBN 978-989-758-049-9.
(cit. a p. 49)
[22] Antonio Lieto, Daniele P. Radicioni, Marcello Frixione, and Valenti-
na Rho. Entending ontological categorization through a dual process
conceptual architecture. In Selected Papers from the KEOD 2014 Procee-
dings, LNCS in Communications in Computer and Information Science.
Springer, 2015. (cit. a p. 81)
[23] Edouard Machery. 100 years of psychology of concepts: the theore-
tical notion of concept and its operationalization. Studies in History
and Philosophy of Science Part C: Studies in History and Philosophy of
Biological and Biomedical Sciences, 38(1):63–84, 2007. (cit. a p. 6)
[24] Edouard Machery et al. Doing without concepts. Oxford University
Press Oxford, 2009. (cit. a p. 16)
[25] Barbara C Malt. An on-line investigation of prototype and exemplar
strategies in classification. Journal of Experimental Psychology: Learning,
Memory, and Cognition, 15(4):539, 1989. (cit. a p. 16, 42, 58, 60, and 84)
[26] Diego Marconi, Rosa Manenti, Eleonora Catricala, Pasquale A Del-
la Rosa, Simona Siri, and Stefano F Cappa. The neural substra-
tes of inferential and referential semantic processing. Cortex, 49(8):
2055–2066, 2013. (cit. a p. 81)
[27] Douglas L Medin and Marguerite M Schaffer. Context theory of
classification learning. Psychological review, 85(3):207, 1978. (cit. a p.
8, 16, and 49)
110 bibliografia
[28] Andrea Minieri. Progettazione e sviluppo di un framework per la rappre-
sentazione di concetti e il reasoning negli spazi concettuali. Università
degli Studi di Torino, Dipartimento di Informatica, 2014. (cit. a p. 14
and 49)
[29] Marvin Minsky. A framework for representing knowledge. 1974. (cit.
a p. 10)
[30] A. Morton. Frames of Mind: Constraints on the Common-Sense
Conception of the Mental. Clarendon Press, 1980. (cit. a p. 17)
[31] Allen Newell. Unified theories of cognition. Harvard University Press,
1990. (cit. a p. 20 and 21)
[32] Allen Newell, Herbert Alexander Simon, et al. Human problem solving,
volume 104. Prentice-Hall Englewood Cliffs, NJ, 1972. (cit. a p. 21)
[33] Robert M Nosofsky. Attention, similarity, and the identification–
categorization relationship. Journal of experimental psychology: General,
115(1):39, 1986. (cit. a p. 56)
[34] Alessandro Oltramari and Christian Lebiere. Mechanisms meet con-
tent: Integrating cognitive architectures and ontologies. In 2011
AAAI Fall Symposium Series, 2011. (cit. a p. 90)
[35] Alessandro Oltramari and Christian Lebiere. Pursuing artificial ge-
neral intelligence by leveraging the knowledge capabilities of act-r.
In Artificial General Intelligence, pages 199–208. Springer, 2012. (cit. a
p. 63)
[36] Alberto Piana. Sviluppo, integrazione e test di componenti per un sistema
ibrido di rappresentazione della conoscenza. Università degli Studi di
Torino, Dipartimento di Informatica, 2014. (cit. a p. 54)
[37] Jesse J Prinz. Furnishing the mind: Concepts and their perceptual basis.
MIT press, 2002. (cit. a p. 1 and 9)
[38] Zenon Pylyshyn. The role of location indexes in spatial perception:
A sketch of the finst spatial-index model. Cognition, 32(1):65–97, 1989.
(cit. a p. 27)
bibliografia 111
[39] Eleanor Rosch. Cognitive representations of semantic categories.
Journal of experimental psychology: General, 104(3):192, 1975. (cit. a p.
7)
[40] Adina L. Roskies. Neuroimaging della funzione cognitiva. In Storia
della Scienza, volume IX, pages 709–722. Istituto della Enciclopedia
Italiana, 2003. (cit. a p. 36)
[41] Dario D. Salvucci. Endowing a cognitive architecture with world
knowledge. In Procs. of the 36th Annual Meeting of the Cognitive Science
Society, 2014. (cit. a p. 63)
[42] Holger Schultheis, Shane Lile, and Thomas Barkowsky. Extending
act-r’s memory capabilities. Proc. of EuroCogSci, 7:758–763, 2007. (cit.
a p. 64)
[43] Ron Sun, Edward Merrill, and Todd Peterson. From implicit skills to
explicit knowledge: A bottom-up model of skill learning. Cognitive
Science, 25(2):203–244, 2001. (cit. a p. 21)
[44] Kristina Toutanova, Dan Klein, Christopher D Manning, and Yoram
Singer. Feature-rich part-of-speech tagging with a cyclic dependen-
cy network. In Proceedings of the 2003 Conference of the North Ame-
rican Chapter of the Association for Computational Linguistics on Hu-
man Language Technology-Volume 1, pages 173–180. Association for
Computational Linguistics, 2003. (cit. a p. 54)
[45] Daniel Aaron Weiskopf. The plurality of concepts. Synthese, 169(1):
145–173, 2009. (cit. a p. 16)
[46] Ludwig Wittgenstein. Philosophical Investigations. Blackwells, Oxford,
1953. (cit. a p. 7)