Skip to content

Instantly share code, notes, and snippets.

@gerbrand
Last active March 22, 2016 14:20
Show Gist options
  • Save gerbrand/eb31f845ecd0641b229b to your computer and use it in GitHub Desktop.
Save gerbrand/eb31f845ecd0641b229b to your computer and use it in GitHub Desktop.
Spreading activation in neo4j, Dutch

Spreading activation in Neo4j

Introduction

Hoe werkt ons brein? Hoe herinneren we ons iets? Hierover denken is al behoorlijk verwarrend. Een mogelijkheid antwoord uit de wetenschappelijke wereld is dat ons brein werkt als een semantisch netwerk. Op Kahn Academy, de gratis universiteit wordt een heldere uitleg gegeven door Carole Yue, gratis beschikbaar. Onze ervaringen, herinneringen zijn met elkaar verbonden, sommige sterker dan andere. Ieder feit, of het nu een abstract begrip, persoon, ding of gebeurtenis is verbonden aan een ander feit. De sterkte van die verbinding verschilt en hangt af van allerlei factoren als ervaring en emotie op moment dat de verbinding werd gelegd. Probeer maar: noem eens een vogel? Waarschijnlijk is het eerste waar je aan denkt een mus of eend. Een uitgestorven dier? Nu denk je misschien aan een dodo, mammoet of dinosaurus. Dier op de zuidpool: een pinguin? Of een ijsbeer? Onze herinneringen zijn niet hiërarchisch opgeslagen zoals bestanden op een harde schijf. Ze zijn ook niet in tabellen vastgelegd zoals in relationele databases. Als je gevraagd wordt alle vogels op te noemen die je kent, kun je niet onmiddellijk een lange lijst van vogelnamen op noemen. Een (database)model dat meer lijkt op hoe ons menselijk brein werkt is de graaf: een netwerk van met elkaar verbonden punten.

Bovenstaande herinneringen zou je als volgt kunnen modelleren:

create (vogel {name:"vogel"})<-[_0:IS {weight: 1}]-(eend {name:"eend"}),
 (vogel)<-[_1:IS {weight: 0.9}]-(mus {name:"mus"}),
 (extinct {name:"extinct"})-[_3:IS {weight: 0.8}]->(mammoet {name:"mammoet"}),
 (extinct)-[_4:IS {weight: 0.7}]->(dodo {name:"dodo"}),
 (extinct)-[_5:IS {weight: 0.8}]->(dinosaurus {name:"dinosaurus"}),
 (dodo)-[_6:IS {weight: 0.7}]->(vogel),
 (zuidpool {name:"zuidpool"})<-[_7:LIVES {weight: 1}]-(pinguin {name:"pinguin"}),
 (zuidpool)<-[_8:LIVES {weight: 0.5}]-(ijsbeer {name:"ijsbeer"}),
 (pinguin)-[_9:IS {weight: 0.6}]->(vogel)
 RETURN *

Gerbrand van Dieijen - | Email | | Twitter | LinkedIn

Onne van der Weijde - | Email | LinkedIn |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment