Collaboration-Wiki
No preview image
Model was written in NetLogo 5.0
•
Viewed 2617 times
•
Downloaded 35 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Click to Run Model
breed [pages page] ; breed [users user] ; directed-link-breed [pagelinks pagelink] ; directed-link-breed [uplinks uplink] users-own [impact readlist researching reading writing editing success status knowledge co-editors] ; pages-own [history text_size last_edit is_about] ; uplinks-own [edits] globals [Things_list] ;; to setup ca ; ;; ask patches [set pcolor white ] set-default-shape users "person" set-default-shape pages "circle" ; set Things_list n-values Objects [?] create-users N_Users [ set size 1.5 set status "user+" fd 1 + random max-pycor set heading random 360 set impact [] ; set readlist [] ; set knowledge [] ; set co-editors lput [who] of self [] ; set reading 1 ; set writing 1 ; set editing 1 ; set researching 1 ; set success reduce + (se reading writing editing researching) ] layout-circle users (world-width / 4 ) reset-timer ; reset-ticks ; end to go ;; show se length remove-duplicates agency-to-knol pages length Things_list if length remove-duplicates pages-to-knol agency-to-list pages = length Things_list [stop] ask probablyfirst sort-by [[success] of ?1 > [success] of ?2 ] users [ gowrite] ; collab_diagram ; tick end to gowrite run last probablyfirst act-by-success shuffle (list list researching "researh_thing" list reading "read_page" list writing "write_page" list editing "edit_page" ) ;; if ActChoice = "ProBest" [ run last probablyfirst act-by-success shuffle (list list researching "researh_thing" list reading "read_page" list writing "write_page" list editing "edit_page" ) ] ;; if ActChoice = "Best" [run last first act-by-success shuffle (list list researching "researh_thing" list reading "read_page" list writing "write_page" list editing "edit_page" ) ] ;;if ActChoice = "ProList" [run one-of shuffle (se n-values researching ["researh_thing"] n-values reading ["read_page"] n-values writing ["write_page"] n-values editing ["edit_page"] )] set success reduce + (se reading writing editing researching) ; end to researh_thing let newknol one-of Things_list if member? newknol knowledge [set researching (researching - 0) stop] set knowledge lput newknol knowledge set researching (researching + 0) end to read_page if count pages = 0 [ set reading (reading - 0) stop] let readknol probablyfirst pages-by-edit-time agency-to-list pages ; if member? [is_about] of page readknol knowledge [ set reading (reading - 0) stop] set readlist lput readknol readlist set knowledge lput [is_about] of page readknol knowledge ; set reading reading + 0 end to write_page let unwrited filter [not member? ? pages-to-knol readlist] knowledge ; if empty? unwrited [ set writing (writing - 1) stop] let my_own_preference_list (se pages-by-size agency-to-list pages with [(first history) = [who] of myself ] reverse impact pages-by-in-links readlist ) set writing (writing + 1) hatch 1 [ set breed pages ; setxy 0 0 set is_about one-of unwrited set last_edit timer set text_size 0.5 set size text_size ;; set label is_about create-uplink-from myself ;; ask uplink [who] of myself [who] of self [set edits 1 set label edits] set history lput [who] of myself [] ask myself [ set impact lput [who] of myself impact ;; _____ impact - _____ ________ _ ________ _______, _______ ____ ____________ set readlist lput [who] of myself readlist ; ] ] end to edit_page let my_own_preference_list [] set my_own_preference_list (se pages-by-edit-time readlist pages-by-edit-time agency-to-list pages with [ member? (first history) [co-editors] of myself] impact ) if empty? my_own_preference_list [ set editing (editing - 1) stop] let temp_page probablyfirst my_own_preference_list if timer - [last_edit] of page temp_page < 0.5 [ set editing (editing - 1) stop] set editing editing + 3 ;; ask page temp_page [ ifelse is-link? uplink [who] of myself [who] of self [ ask uplink [who] of myself [who] of self [set edits edits + 1 set label edits]] [ create-uplink-from myself ask uplink [who] of myself [who] of self [set edits 1 ] ] set text_size text_size + 0.2 set size text_size set last_edit timer ;; set color [color] of myself set history lput [who] of myself history ask myself [ set impact lput [who] of myself impact set co-editors remove-duplicates se [history] of myself co-editors ;; ] ] end to collab_diagram repeat 1 [layout-spring (turtle-set pages users ) uplinks 1 1 0.2 ] end ;;;; ;;; REPORTERS ;;;; ;; Agentset converted to the list to-report agency-to-list [agency] report [who] of agency end ;; list converted to the agentset of pages to-report list-to-pages [list1] report pages with [ member? [who] of self list1] end to-report pages-to-knol [list1] report [is_about] of list-to-pages list1; end to-report agency-to-knol [agency] report [is_about] of agency end ; to-report agency-by-success [agency] ; report sort-by [reduce + (se reading writing editing researching) ?1 > reduce + (se reading writing editing researching) ?2 ] agency ; end ;;; ____________ _______ ;;; ;; __ _______ ______ ________, __ __________ ______, __ __________ backlinks to-report pages-by-edit-time [list1] report sort-by [ [last_edit] of page ?1 > [last_edit] of page ?2] list1 end to-report pages-by-size [list1] report sort-by [ [text_size] of page ?1 > [text_size] of page ?2] list1 end to-report pages-by-in-links [list1] report sort-by [ [count my-in-links] of page ?1 > [count my-in-links] of page ?2] list1 end to-report pages-by-out-links [list1] report sort-by [ [count my-out-links] of page ?1 > [count my-in-links] of page ?2] list1 end to-report act-by-success [list1] report sort-by [ first ?1 > first ?2 ] list1 end to-report party_colors report one-of [15 25 45 55 65 75 85 95 105 125 ] ;; end ;;; ;;;; to-report probablyfirst [list1] if empty? bf list1 [ report first list1 ] if random 2 > 0 [report first list1] set list1 but-first list1 report probablyfirst list1 end to-report DeadendPages ;; The following pages do not link to other pages report pages with [count my-out-links = 0] end to-report LonelyPages ;; The following pages are not linked from or transcluded into other pages report pages with [count my-in-links = 0] end to-report StrangePages ;; The following pages are not linked from or do not link to other pages report (turtle-set DeadendPages LonelyPages) end ;;;;;;; to-report SameThingPage report pages with [count other pages with [is_about = [is_about] of myself ] > 0] ; end to-report UnicalPage ; ________, _______ ______ __ _____ ____ report pages with [count other pages with [is_about = [is_about] of myself ] = 0] ; end to-report Co-editingPage report pages with [count my-in-uplinks > 1 ] end to-report CoEditors report count users with [length co-editors > 1] end ;;;;;;;;;;;;;;;;;;;;;;; ;;; Plotting ;;; ;;;;;;;;;;;;;;;;;;;;;;; to update-plot set-current-plot "Plot" ;; set-plot-y-range 0 count users ;;set-current-plot-pen "pages" ;; plot count pages ;;set-current-plot-pen "dublicate" ;; plot count SameThingPage ;;set-current-plot-pen "unic" ;; plot count UnicalPage ;; set-current-plot-pen "_______" ;; plot length Things_list - length remove-duplicates pages-to-knol agency-to-list pages set-current-plot-pen "CoEditPages" plot count Co-editingPage set-current-plot-pen "CoEditors" plot CoEditors set-current-plot "Gimpacts" clear-plot set-plot-x-range 0 count users set-plot-y-range 0 1 + [success] of max-one-of users [success] set-current-plot-pen "IM" histogram [success] of users end
There is only one version of this model, created almost 13 years ago by Evgeny Patarakin.
Attached files
No files
Boris Yarmakhov
Базовые метафоры (Question)
Разбираюсь с тем, что тут чего. Начинается все с того, что человечки породили объекты (кружочки своего цвета). Потом между ними начинается некое взаимодействие. Некоторые кружочки начинают пухнуть - это значит что длина текста увеличивается? Или нарастает количество правок? Но ведь если текст правлен другим человеком, пузырь должен и цвет менять - он же становится продуктом совместного творчества? Кружочки и движущиеся человечки нравятся больше, чем когда у тебя были страницы-кирпичики и все было статично. Надо понять, что стоит за метафорами движения, связей, размера, цвета объектов.
Posted almost 13 years ago
Boris Yarmakhov
Probablyfirst (Question)
Не понимаю пока, какая жизненная ситуация стоит за правилом "На каждом шаге в системе действует следующее правило - ход, скорее всего, совершает самый успешный агент" Переходит ли эта майка лидера от одного к другому? Или эта пожизненно? Какой стратегии должен придерживаться юзер, чтобы стать пробаблиферстом? И чего в этом статусе хорошего? Больше пузырей вокруг?
Posted almost 13 years ago
Boris Yarmakhov
Атомарная ситуация (Question)
И вот смотрю я на код и понимаю, что он слишком уже развесистый, чтобы от него какую то логику выстраивать - он прекрасен сам по себе. Чтобы делать дерево моделей, нужна некая атомарная ситуация, которая могла бы потом разрастаться. Скажем. Есть два юзера. У обоих по одной версии. Первый отредактировал (а еще лучше - проголосовал за) версию второго - и ее пузырь подрос. От такого атома можно было бы строить дальнейшие сюжеты. Так. А вот интересно - такой ли я лопух, чтобы от твоей сложной модели не суметь такой атом построить?
Posted almost 13 years ago
Evgeny Patarakin
С чего все начинается
Про начальные условия - начинается все с того, что уже есть какие-то вещи вне вики. В модели создается список Вещей и потом участники к этому списку обращаются. Зачем это сделано - чтобы показать, что наполнение вики есть конкретная задача - описать какую-то область. Нет задачи просто писать статьи. Есть задача описать школы, города и т.п. Описали - закончили работу.
Posted almost 13 years ago
Evgeny Patarakin
Probablyfirst - для агентов (Question)
Конструкция используется несколько раз в коде и нужно ее разносить: 1) В самой вики первый ход с вероятностью 1/2 делает самый успешный - тот, кто уже набрал больше всех очков. Вот он сделал удачный ход, получил подкрепление и стремится снова сыграть - жизненная ситуация? А вот если он не пошел, то ходит другой.
Posted almost 13 years ago
Evgeny Patarakin
Probablyfirst - для действий (Question)
Агентам свойственно выбирать те действия, которые уже были успешны. Т.е. если я на предыдущем ходу создавал страницу и был успешен, то я и на следующем буду создавать страницу - логично?
Posted almost 13 years ago