Collaboration-Wiki

No preview image

2 collaborators

I-patarakin Evgeny Patarakin (Author)
Default-person Boris Yarmakhov (Teacher)

Tags

(This model has yet to be categorized with any tags)
Parent of 1 model: Collaboration-atomic-1
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0 • Viewed 350 times • Downloaded 13 times • Run 0 times
Download the 'Collaboration-Wiki' modelDownload this modelEmbed this model

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


Comments and Questions

Базовые метафоры (Question)

Разбираюсь с тем, что тут чего. Начинается все с того, что человечки породили объекты (кружочки своего цвета). Потом между ними начинается некое взаимодействие. Некоторые кружочки начинают пухнуть - это значит что длина текста увеличивается? Или нарастает количество правок? Но ведь если текст правлен другим человеком, пузырь должен и цвет менять - он же становится продуктом совместного творчества? Кружочки и движущиеся человечки нравятся больше, чем когда у тебя были страницы-кирпичики и все было статично. Надо понять, что стоит за метафорами движения, связей, размера, цвета объектов.

Posted about 7 years ago

Probablyfirst (Question)

Не понимаю пока, какая жизненная ситуация стоит за правилом "На каждом шаге в системе действует следующее правило - ход, скорее всего, совершает самый успешный агент" Переходит ли эта майка лидера от одного к другому? Или эта пожизненно? Какой стратегии должен придерживаться юзер, чтобы стать пробаблиферстом? И чего в этом статусе хорошего? Больше пузырей вокруг?

Posted about 7 years ago

Атомарная ситуация (Question)

И вот смотрю я на код и понимаю, что он слишком уже развесистый, чтобы от него какую то логику выстраивать - он прекрасен сам по себе. Чтобы делать дерево моделей, нужна некая атомарная ситуация, которая могла бы потом разрастаться. Скажем. Есть два юзера. У обоих по одной версии. Первый отредактировал (а еще лучше - проголосовал за) версию второго - и ее пузырь подрос. От такого атома можно было бы строить дальнейшие сюжеты. Так. А вот интересно - такой ли я лопух, чтобы от твоей сложной модели не суметь такой атом построить?

Posted about 7 years ago

С чего все начинается

Про начальные условия - начинается все с того, что уже есть какие-то вещи вне вики. В модели создается список Вещей и потом участники к этому списку обращаются. Зачем это сделано - чтобы показать, что наполнение вики есть конкретная задача - описать какую-то область. Нет задачи просто писать статьи. Есть задача описать школы, города и т.п. Описали - закончили работу.

Posted about 7 years ago

Probablyfirst - для агентов (Question)

Конструкция используется несколько раз в коде и нужно ее разносить: 1) В самой вики первый ход с вероятностью 1/2 делает самый успешный - тот, кто уже набрал больше всех очков. Вот он сделал удачный ход, получил подкрепление и стремится снова сыграть - жизненная ситуация? А вот если он не пошел, то ходит другой.

Posted about 7 years ago

Probablyfirst - для действий (Question)

Агентам свойственно выбирать те действия, которые уже были успешны. Т.е. если я на предыдущем ходу создавал страницу и был успешен, то я и на следующем буду создавать страницу - логично?

Posted about 7 years ago

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 about 7 years ago by Evgeny Patarakin.

Attached files

No files

This model does not have any ancestors.

Children:

Graph of models related to 'Collaboration-Wiki'