Leonardi
Model was written in NetLogo 5.0.4
•
Viewed 365 times
•
Downloaded 61 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
patches-own [ affordances ] breed [people person] breed [expectations expectation] ;breed [technologies technology] people-own [ usage verified? ] expectations-own [feature strength] directed-link-breed [holds hold] to setup ca ;; possible expectations: a, ~a, b, ~b, a & b, ~a & ~b or nothing OR a, ~b, b ~a ;; create people with different kinds of expectations (for now, only positive ones) ; create all people with 2 expectations ; each expectation has a feature and a strength ; strength can be pos, neg or 0 create-people total-# [ setxy random-pxcor random-pycor hatch-expectations 1 [ set feature "a" set strength 0 create-hold-from myself ] hatch-expectations 1 [ set feature "b" set strength 0 create-hold-from myself ] ] ask n-of #-expecting-a people with [ all? out-hold-neighbors [strength = 0] ] [ ask out-hold-neighbors with [ feature = "a" ] [ ;set valence "+" set strength 1 + random 10 ] ] ask n-of #-expecting-b people with [ all? out-hold-neighbors [strength = 0] ] [ ask out-hold-neighbors with [ feature = "b" ] [ ;set valence "+" set strength 1 + random 10 ] ] ask n-of #-expecting-both people with [ all? out-hold-neighbors [strength = 0] ] [ ask out-hold-neighbors with [ feature = "a" ] [ ;set valence "+" set strength 1 + random 10 ] ask out-hold-neighbors with [ feature = "b" ] [ ;set valence "+" set strength 1 + random 10 ] ] ask people [ set usage [] set shape "person" set size 1.6 set verified? false color-code-usage ] ask expectations [ format-expectations ] ;; for these two I want to set something so that it is visually clear who is starting, but then I want them to just set their ; usage based on their expectations and their interaction with the technology. HOW TO DO THIS? if introduce-technology = 0 [ adopt-technology] reset-ticks end to adopt-technology if technology-introduced = "one patch" [ ask patch 0 0 [ set affordances (sentence technology-affordances) color-code-affordances ask neighbors [ set affordances (sentence technology-affordances) color-code-affordances ] ] ] if technology-introduced = "one person" [ ask one-of people [set usage technology-affordances color-code-usage set usage [] ask patch-here [ set affordances technology-affordances color-code-affordances ] ] ] ; ask neighbors ; [ set affordances technology-affordances ; color-code-affordances ] ] ] ] if technology-introduced = "everyone" [ ask people [ set usage technology-affordances color-code-usage set usage [] ask patch-here [ set affordances technology-affordances color-code-affordances ] ] ] ;wait .5 end to color-code-affordances if member? "a" affordances and not member? "b" affordances [ set pcolor blue - 2.5 ] if not member? "a" affordances and member? "b" affordances [set pcolor yellow - 2.5] if member? "a" affordances and member? "b" affordances [ set pcolor green - 2.5] if not member? "a" affordances and not member? "b" affordances [ set pcolor gray - 2.5 ] end to format-expectations ;; make expectations color, shape and placement reflect what they indicate ;if valence = "+" if strength > 0 [ set shape "circle" set size .5 ] ;if valence = "-" if strength < 0 [ set shape "x" set size .6 ] if strength = 0 [hide-turtle] if strength != 0 [show-turtle] if feature = "a" [ set color blue + 1.5 setxy ( [ xcor ] of one-of in-hold-neighbors - .5) ( [ ycor ] of one-of in-hold-neighbors + .5) ] if feature = "b" [ set color yellow + 1.5 setxy ( [ xcor ] of one-of in-hold-neighbors + .5) ( [ ycor ] of one-of in-hold-neighbors + .5) ] ask my-in-holds [hide-link] end ;; Set color to reflect the technology's capabilities to color-code-usage if member? "a" usage and not member? "b" usage [ set color blue + .8 ] if member? "b" usage and not member? "a" usage [ set color yellow + .8 ] if member? "a" usage and member? "b" usage [ set color green + .8] if not member? "a" usage and not member? "b" usage [ set color gray + .8 ] end ;; When all the turtles have decided what they expect of the new technology, stop the model to go if all? people [verified? = true] [ stop ] if ticks = introduce-technology and ticks != 0 [ adopt-technology display wait .5 ] interact-with-others interact-with-technology ask people [ color-code-usage ] if technology-introduced != "one patch" [reset-patches] move-turtles tick end to move-turtles ask people [ let path random-normal 0 30 rt path fd 1 ask out-hold-neighbors [ rt path fd 1 ] ] end ;; Turtles who aren't sure what to think about the new technology yet (haven't verified their expectations) ;; can find out about it from others. to interact-with-others ask people with [verified? = false ] [ if any? other people-here with [ any? out-hold-neighbors with [ strength != 0 ] ] [ learn-from-others ] ] ;color-code-expectations ] ] end ; I want to say that all you look for is whether the other person's expectation is pos or negative--strength doesn't matter, you just increment yours ; but do you look at all of their expectations, or just one? to learn-from-others let sender one-of other people-here ask out-hold-neighbors [ ;show strength let insight one-of expectations with [ in-hold-neighbor? sender and feature = [feature] of myself ] if [ strength ] of insight > 0 [ set strength strength + 1] if [ strength ] of insight < 0 [ set strength strength - 1 ] ;show strength format-expectations ] if technology-introduced = "one person" [ if [usage] of sender != [] [ ask patch-here [ set affordances technology-affordances ] ] ] end ;; so whoever is interacting with the technology: ; ask technology: do you do what I expect? ; set usage accordingly ;; Turtles who aren't sure what to think about the new technology yet (haven't verified their expectations) ;; can also find out about it by interacting with the technology ;; If turtles have no expectations at all, they explore the technology openly and learn from it ;; If turtles have some expectations already, they test them to interact-with-technology ask people with [ verified? = false ] [ if [ affordances ] of patch-here != 0 ; [ if any? out-hold-neighbors with [ valence = "+" ] [ test-expectations if not any? out-hold-neighbors with [ strength != 0 ] [ learn-from-technology ] ; set verified? true ] ] end ;; If a patch that's already been socially constructed (ie a place that the technology has spread) ;; *doesn't* have the capabilities a turtle expects, the turtle revises its expectations to reflect that. to test-expectations let tool patch-here ask out-hold-neighbors with [ strength > 0 ] [ if member? feature [ affordances ] of tool [ set strength strength + 5 ] if not member? feature [ affordances ] of tool [ set strength strength - 5 ] format-expectations ] ; set usage (sentence [ feature ] of out-hold-neighbors with [ valence = "+" ] ) ; show usage ; set verified? true end ;; If a turtle has no expectations, it learns what the technology can do from a socially-constructed patch itself to learn-from-technology let tool patch-here ask out-hold-neighbors [ if random-float 1 < chance-learn-from-technology [ if member? feature [ affordances ] of tool [ set strength strength + 2 ] if not member? feature [ affordances ] of tool [ set strength strength - 2 ] format-expectations ] ] ;; do I want there to be something where the more strongly you believe something does something the more likely ; you are to be able to find it there? so it is possible that you'll find out that the technology does something you ; didn't know to look for at all, but unlikely? end to reset-patches ask patches [ set affordances 0 set pcolor black ] end to-report total-# report #-expecting-a + #-expecting-b + #-expecting-both + #-no-expectations end ;to-report %-a ; report count turtles with [expectations = ["a"]] / count turtles ;end ; ;to-report %-b ; report count turtles with [expectations = ["b"]] / count turtles ;end ; ;to-report %-both ; report count turtles with [member? "a" expectations and member? "b" expectations ] / count turtles ;end ; ;to-report %-none ; report count turtles with [expectations = []] / count turtles ;end
There are 5 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Leonardi.png | preview | Preview for 'Leonardi' | over 11 years ago, by Eleanor Anderson | Download |
This model does not have any ancestors.
This model does not have any descendants.