123
UNIVERSITÀ DEGLI STUDI DI TORINO Scuola di scienze della natura Corso di Laurea in Informatica ESTENSIONE DI UN SISTEMA IBRIDO PER LA RAPPRESENTAZIONE DELLA CONOSCENZA ED INTEGRAZIONE NELL’ARCHITETTURA COGNITIVA ACT-R Tesi di Laurea Magistrale Anno Accademico 2013/2014 Relatore: Candidato: Daniele Radicioni Valentina Rho Correlatore: Antonio Lieto

UNIVERSITÀ DEGLI STUDI DI TORINO - valentinarho.github.io · Figura 8 Architettura della base di conoscenza . . . . . . . . 44 ... In questo capitolo viene fatta una panoramica delle

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

A mio nonno,

esempio di ottimismo,

forza e determinazione.

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)