WikiAnalytics

WikiAnalytics preview image

2 collaborators

Patarakin_m Evgeny Patarakin (Author)
Default-person Boris Yarmakhov (Team member)

Tags

analytics 

Tagged by Evgeny Patarakin about 11 years ago

nw 

"nw_extension"

Tagged by Evgeny Patarakin about 11 years ago

wiki 

Tagged by Evgeny Patarakin about 11 years ago

Parent of 1 model: Child of WikiAnalytics
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.1.0 • Viewed 608 times • Downloaded 57 times • Run 0 times
Download the 'WikiAnalytics' modelDownload this modelEmbed this model

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


WHAT IS IT?

Это средство для представления историй создания и редактирования вики страниц в форме действий, которые совершают агенты NetLogo. Для представления центральности узлов используется метод layout-spring (a general understanding of what the model is trying to show or explain)

HOW IT WORKS

(what rules the agents use to create the overall behavior of the model) В системе определены следующие породы: авторы, страницы, связи. Свойства авторов - Имяавтора. Свойство страницы - ИмяСтраницы На входе модель получает историю редактирований вики в форме строк: "ИмяАвтора" "ИмяСтраницы" и обрабатывает значение этой пары. Правила обработки просты. Проверятся существование автора с указанным именени и страницы с указанным именем. 1) Если автора (user) и страницы (page) с такими именами еще не существуют, то создается автор (со свойством "ИмяАвтора") и этот автор создает страницу (со свойством "ИмяСтраницы"), и автор создает направленную связь (bond) к странице. Значение edits для данной связи устанавливается 1. 2) Если автор с таким именем уже был, а страницы еще не было, то этот автор создает страницу (со свойством "Имя_Страницы"), и автор создает направленную связь (bond) к странице. Значение edits для данной связи устанавливается 1. 3) Автора еще не было, а страница уже была. В этом случе страница создает автора и направленную связь от автора к странице. Значение edits для данной связи устанавливается 1. 4) В системе есть и автор и страница с указанным именем. 4.1. Если связи между автором и страницей еще не было то связь создается. Значение edits для данной связи устанавливается 1. 4.2. Если связь уже существовала, то значение edits для данной связи увеличивается на единицу. После каждой обработки строки делается новое визуальное представление отношений между узлами в системе.

HOW TO USE IT

(how to use the model, including a description of each of the items in the Interface tab) startup - сбрасывает все данные и очищает экран loaddata - загружает и данные из файла - в дальнейшем будет развиваться именно этот вариант. uselist- в демоверсии можно использовать заранее подготовленный список авторов и страниц. generate_list - список авторов и страниц генерируется программой - тут просто случайные значения присваиваются участникам и страницам, но можно выбирать значение авторов и страниц, которые будут действовать в системе.

THINGS TO NOTICE

Это продолжение обсуждения темы центральности - чем больше связанность объекта, тем более центральное положение он занимает.

THINGS TO TRY

Можно посмотреть зависимость связанности системы от числа авторов. Но, в целом система предназначена для представления данных из реально действующей вики.

EXTENDING THE MODEL

Доработать предварительную обработку данных на входе в модель. Дополнить модель новыми параметрами. Например, выделить автора страницы - не просто того, кто принял участие в редактировании, но был первым создателем этой страницы.

NETLOGO FEATURES

В модели практически не используются списки и не хранятся данные. Каждый раз проверяется группа агентов, обладающих сходными свойствами.

RELATED MODELS

http://modelingcommons.org/browse/one_model/3401

CREDITS AND REFERENCES

(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Comments and Questions

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

Click to Run Model

extensions [nw]

breed [users user] ;
breed [pages page] ;
undirected-link-breed  [bonds bond] ;

users-own [agentname] ;
pages-own [pagename] ;
bonds-own [edits] ;

to startup
clear-all ;
    set-default-shape users "person" ;
  set-default-shape pages "box" ;
end 


;; 

to load_data
    ifelse ( file-exists? "user_page_u.txt" )
   [

    file-open "user_page_u.txt"
        while [ not file-at-end? ]     [ visual list file-read file-read ]
    file-close
    user-message "Готово!"
     ]
   
     [ user-message "user_page_u.txt нет такого файла!" ]
end 

to use_list   
let wikihistory [
["Ученик_1" "Страница_1"]
["Ученик_1" "Страница_2"]
["Ученик_1" "Страница_3"]
["Ученик_1" "Страница_2"]
["Ученик_1" "Страница_3"]
["Ученик_2" "Страница_3"]
["Ученик_3" "Страница_3"]
["Ученик_4" "Страница_4"]
["Ученик_5" "Страница_5"]
["Ученик_6" "Страница_6"]
["Ученик_2" "Страница_6"]
["Ученик_2" "Страница_7"]
["Ученик_2" "Страница_1"]
["Ученик_1" "Страница_1"]
["Ученик_1" "Страница_1"]
["Ученик_4" "Страница_4"]
["Ученик_4" "Страница_4"]
["Ученик_7" "Страница_8"]
["Ученик_7" "Страница_9"]
["Ученик_7" "Страница_9"]
["Ученик_7" "Страница_8"]
["Ученик_8" "Страница_9"]
["Ученик_8" "Страница_8"]

  ]
  foreach wikihistory [visual ?] ;  
end 

to generate_list 
let wikihistory generate "User" "Page"  ;
  foreach wikihistory [visual ?] ;
end 

to-report generate [a b]
  let glist [] ;
  repeat g_agents + g_pages [
    set glist lput list word a (1 + random g_agents)  word b (1 + random g_pages ) glist ; 
  ]
report glist
end 

to visual [flist]
 let agent_name first flist ;; это мы просто считали имена агентов и страниц
 let page_name last flist
;; если у нас нет страницы и нет юзера ;
ifelse (not any? users with [agentname = agent_name]) and  (not any? pages with [pagename = page_name])
  [ 
  create-ordered-users 1 [
    set size 1.4
    set color red 
    set agentname agent_name ;
 ;   set label agentname ;
    hatch-pages 1 [ set pagename page_name set color green   create-bond-with myself ;
      ask bond  [who] of myself [who] of self [set edits 1  ]
      ] ;        
                         ]
  ]
;; Не было юзера, а страница уже была - т.е. появляется автор и его действие - редактирование существующего
[ ifelse (not any? users with [agentname = agent_name]) and  (any? pages with [pagename = page_name])
  [
  let myfirstpage [who] of one-of pages with [pagename = page_name] ;
   ask page  myfirstpage [hatch-users 1 
     [ set color red set agentname agent_name   
       ; set label agentname 
       create-bond-with myself   ;
       ask bond [who] of self myfirstpage [set edits 1 ] 
     ]
      ]
    ]
;; у нас есть юзер, но нет страницы
[ ifelse (any? users with [agentname = agent_name]) and  (not any? pages with [pagename = page_name])
  [
  let author [who] of one-of users with [agentname = agent_name] ;
   ask user author [hatch-pages 1 
     [ set color green  set pagename page_name  
        ; set label pagename  
        create-bond-with myself      
       ask bond author [who] of self  [set edits 1] 
        ] 
       ;     
      ]
    ]
;; Ситуация, когда есть и пользователь и страница - и там варианты с тем, что есть связь или нет связи
[
    let author [who] of one-of users with [agentname = agent_name] ;
      let mypage [who] of one-of pages with [pagename = page_name] ;
      ifelse is-link? bond author mypage [ask bond author mypage [set edits edits + 1 ] ]
     [ask user author [create-bond-with page mypage] ask bond author mypage [set edits 1]  ]
  ]
]] 

layout
end 

to analytics
nw:set-context turtles bonds
; show map sort nw:get-context
;; ask  turtles [set label round nw:betweenness-centrality ]
 ask  turtles [set label nw:eigenvector-centrality ] ;; - только для связанной сети
;; ask  turtles [set label nw:closeness-centrality ] 
;; ask  turtles [set label nw:clustering-coefficient ] 
ask  turtles [set label nw:bicomponent-clusters ] 
;;show global-clustering-coefficient
;; show nw:weak-component-clusters
;;show nw:maximal-cliques ;; - не работает
;; show nw:biggest-maximal-cliques
end 

to layout
 repeat 3 [
 ;;   layout-spring turtles links 0.18 0.01 1.2
    layout-spring turtles links 0.2 0.01 1.4  
    display
  ]
end 

to show_names
  ask users [ set label agentname]
  ask pages  [set label pagename]
  ask bonds [set label edits]
  ask turtles [set label-color orange]
end 

to-report global-clustering-coefficient
  let closed-triplets sum [ nw:clustering-coefficient * count my-links * (count my-links - 1) ] of turtles
  let triplets sum [ count my-links * (count my-links - 1) ] of turtles
  report closed-triplets / triplets
end 

There are 2 versions of this model.

Uploaded by When Description Download
Evgeny Patarakin about 11 years ago NW-extension was added, so it is possible to investigate centralities and clusters Download this version
Evgeny Patarakin over 11 years ago Initial upload Download this version

Attached files

File Type Description Last updated
WikiAnalytics.png preview Preview for 'WikiAnalytics' over 11 years ago, by Evgeny Patarakin Download

This model does not have any ancestors.

Children:

Graph of models related to 'WikiAnalytics'