Going Viral

No preview image

1 collaborator

Default-person Yash Siddhartha (Author)

Tags

(This model has yet to be categorized with any tags)
Parent of 1 model: Going Viral v4
Model group MAM-2013 | Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0.4 • Viewed 219 times • Downloaded 38 times • Run 0 times
Download the 'Going Viral' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


I have used the virus model in some capacity for my setup, though the rest of my model will be vastly different. For this phase of my project, it makes sense to use a setup that works. I will be making changes as I see fit once my model has progressed to a more completed state.

HOW TO CITE

If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

  • Stonedahl, F. and Wilensky, U. (2008). NetLogo Virus on a Network model. http://ccl.northwestern.edu/netlogo/models/VirusonaNetwork. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
  • Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.

COPYRIGHT AND LICENSE

Copyright 2008 Uri Wilensky.

CC BY-NC-SA 3.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals 
[ humorcheck
  angercheck
  infocheck
  sadcheck
  roundcheck
  numberwatch
]
turtles-own
[
  shared?         ;; if true, the turtle has shared the content
  watched?          ;; if true, the turtle has seen the content and has/has not shared it yet
  contcheck   ;; number of times content has been viewed
  funny
  anger
  sad             ;; evoking the primal emtions to what degree -- could maybe be one attribute : emotion 
  savvy           ;; How connected are you? will you "get" the content in a sense
  enthu           ;; slightly linked to arousal but also intrinsic to the person- how enthusiastically are you going to share this video?
  arousal         ;; a culmination of emotions, visibility and other factors --> to share or not to share
]

to setup
  clear-all
  
  
  setup-nodes
  setup-spatially-clustered-network
  
  ask turtles [set shared? false]
  ask turtles [set watched? false]
  ask turtles [set anger random 100 / 100]
  ask turtles [set sad random 100 / 100]
  ask turtles [set funny random 100 / 100]      ;; I want arousal to almost be a 6-point scale that determines sharing- one person's enthusiasm should also perhaps directly feed another's more directly? endorsement vs. just passive sharing effect
  
  ask turtles [if funny < 0.4 [ set funny funny + 0.3]];  ;; humor is a pretty universal attribute -even people who don't find most things funny respond to humor more than other emotions. 
  ask turtles [set enthu random 100 / 100]
  
  ask turtles [set contcheck 0]
  
  if homophily = 1 [
  
  ask turtles [ask link-neighbors [ if abs ([funny] of myself - funny) > 0.3 [set funny (funny + [funny] of myself) / 2 ] ] ]     ;;Homophily - people tend to be surrounded/friends with people similar to them- minimzing variances in their personality types- homophily
  
  ask turtles [ask link-neighbors [ if abs ([anger] of myself - anger) > 0.3 [set anger (anger + [anger] of myself) / 2]]]
      
  ask turtles [ask link-neighbors [ if abs ([sad] of myself - sad) > 0.3 [set sad (sad + [sad] of myself) / 2]]]
          
  ask turtles [ask link-neighbors [ if abs ([enthu] of myself - enthu) > 0.3 [set enthu (enthu + [enthu] of myself) / 2]]]]
  
  if target = 0 [ask n-of campaignlevel turtles [seecontent]]
  if target = 1 [ask n-of campaignlevel turtles with [funny > 0.5 and anger > 0.5][seecontent]]               ;; This is effectively releasing the content across the internet  
  
  ;;ask links [ set color white ]                              ;; Do I care about the color of the links? Probably not, unless I'm doing re-transmission ie re-sharing..unlikely.
  reset-ticks
end 

to setup-nodes     
                                             ;; ALL OF THIS IS FROM VIRUSES
  set-default-shape turtles "circle"
  crt number-of-nodes                                         ;; NEED A SCALED DOWN VERSION OF THE WORLD. I might just make it a number that scales well based on say- the population of NA since most of my literature and research is definitely limited by that in a sense. 
  [
    ; for visual reasons, we don't put any nodes *too* close to the edges
    setxy (random-xcor * 0.95) (random-ycor * 0.95)
  ]
  ask turtles [set color white]              ;; No exposure to any content. Will be handled in  "go" 
end 

to setup-spatially-clustered-network
  
  let num-links (average-node-degree * number-of-nodes) / 2       ;; I'm not completely sold on this form of creating links. Currently it looks like it could serve the purpose I need it for but might need some work. 
  while [count links < num-links ]                                ;; Note: While the links are created based on proximity in the code, it is not meant to be interpreted as such. It is just meant to serve as "internet proximity" 
  [                                                               ;; Can't tell if that would be an issue, but I'm guessing not at this point.    
    ask one-of turtles
    [
      let choice (min-one-of (other turtles with [not link-neighbor? myself])
                   [distance myself])
      if choice != nobody [ create-link-with choice ]
    ]
  ]
  ; make the network look a little prettier                     ;; I'll probably keep this since it does help with making the network look pretty. 
  repeat 30
  [
    layout-spring turtles links 0.3 (world-width / (sqrt number-of-nodes)) 1
  ]
end 

to seecontent                                               ;; turtle procedure
  
  set watched? true
  
  set contcheck contcheck + 1 
  
  set arousal ( arousal + arousal / ( contcheck + 1) )                 ;;
  
  if contcheck = 1 [set color yellow]  
end 

to go 
  ask n-of campaignlevel turtles [if roundcheck < rounds [seecontent set roundcheck roundcheck + 1]]
 
  ask turtles [if watched? = true [shareornot] ]     ;; once turtles see content, they can decide whether or not to share the content.      
  
  ifelse vanger + vfunny + vsad + vutil > 30 [tick-advance 1] [ tick-advance 3]
  
  ask turtles [if 2.5 < arousal [set color red] ]
  
  set numberwatch count turtles with [watched? = true]
  
  tick 
end 

to shareornot    ;; MIGHT HAVE TO SET UP COMBOS THAT MAKE SENSE. THE AMALGAM DOESN'T MAKE ALL THAT MUCH SENSE TO ME 

  ifelse vfunny > 5 + funny * 4 [set humorcheck (vfunny - 5) * funny][set humorcheck 0]
  ifelse vsad > 5 + sad * 4 [set sadcheck (vsad - 5) * sad][set sadcheck 0]
  ifelse vanger > 5 + anger * 4 [set angercheck (vanger - 5) * sad]  [set angercheck 0]            ;; Getting the agent to decide if he will share or not. How important each attribute is to the agent vs. how much that's reflected in the content
 
  if contcheck > 1 and contcheck < 4 [set arousal (arousal + (arousal / (1 + contcheck)))]     ;;Are you really more likely to share once you've seen something 4 times and decided not to share?
  
  if contcheck = 1 [set arousal (0.6 * humorcheck - 0.2 * sadcheck + 0.5 * angercheck + 0.2 * vutil + 0.1 * repfreq)] ;;including how useful the content is as a parameter; also if it's second interaction with content, arousal levels add, but by smaller factors each time
   
  if arousal > 2.6 [share]   ;; Max. value possible 1.4. Just set a reasonable threshold. will go from there based on results.            
end 

to share
  
  
  ask link-neighbors [seecontent] 
  
  
  set shared? true
end 

There are 2 versions of this model.

Uploaded by When Description Download
Yash Siddhartha about 12 years ago This is v3. The others are under Files. Download this version
Yash Siddhartha about 12 years ago Initial upload Download this version

Attached files

File Type Description Last updated
SiddharthaYash_Proposal_ProgressAtt1.docx word Progress Report about 12 years ago, by Yash Siddhartha Download
Virality.nlogo extension Viralityv3 about 12 years ago, by Yash Siddhartha Download
Virality.nlogo extension WorkingSetup-Addingfunctions about 12 years ago, by Yash Siddhartha Download
Virality.nlogo extension Viralityv2 about 12 years ago, by Yash Siddhartha Download
YashSiddhartha_SlamPres.pptx powerpoint Slam Presentation about 12 years ago, by Yash Siddhartha Download
YashSiddProgressreport4.6.docx word Progress Report = 6/4 about 12 years ago, by Yash Siddhartha Download

This model does not have any ancestors.

Children:

Graph of models related to 'Going Viral'