Leonardi

Leonardi preview image

1 collaborator

Default-person Eleanor Anderson (Author)

Tags

(This model has yet to be categorized with any tags)
Part of project 'Organizational Change Set'
Model group MAM-2013 | Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0.4 • Viewed 365 times • Downloaded 61 times • Run 0 times
Download the 'Leonardi' modelDownload this modelEmbed this model

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.

Uploaded by When Description Download
Eleanor Anderson over 11 years ago expectations are now fully incremented rather than binary Download this version
Eleanor Anderson over 11 years ago people stop changing once verified; learning from technology happens with randomness Download this version
Eleanor Anderson over 11 years ago different patterns of technology introduction; can choose timing of introduction Download this version
Eleanor Anderson over 11 years ago added chooser for technology affordances Download this version
Eleanor Anderson over 11 years ago Initial upload Download this version

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.