Full text
WikiChron networks: Una herramienta para el análisis de redes en wikis Trabajo de Fin de Grado Curso 2018–2019 Autor Youssef El Faqir El Rhazoui Director Javier Arroyo Gallardo Abel Serrano Juste Grado en Ingeniería Informática Facultad de Informática Universidad Complutense de Madrid
WikiChron networks: Una herramienta para el análisis de redes en wikis Trabajo de Fin de Grado en Ingeniería Informática Departamento de Ingeniería del Software e Inteligencia Artificial Autor Youssef El Faqir El Rhazoui Director Javier Arroyo Gallardo Abel Serrano Juste Convocatoria: Junio 2019 Calificación: Grado en Ingeniería Informática Facultad de Informática Universidad Complutense de Madrid 31 de mayo de 2019
Agradecimientos Aún siendo un desarrollo en el que estoy yo solo como integrante, este ha sido fruto gracias a la dedicación y desempeño de un magnífico equipo de profesionales. Han sido muchas semanas de constantes reuniones y tardes muy largas con Abel Serrano, limpiando código y pensando constantemente en el siguiente paso a dar. Mi reconocimiento a la gran labor docente de mi director, Javier Arroyo, que pese a su baja, su presencia a sido constante para impulsar este trabajo, y para introducirme en el mundo investigador, que finalmente pudimos cristalizar en un artículo en conjunto con Abel. Quiero mencionar también a Guillermo Jiménez y a Elena Martínez, que pese a estar muy ocupados hemos podido contar con su ayuda para testear y dar diseño a la interfaz. A todos ellos, muchas gracias. v
Resumen La producción colaborativa de bienes comunes ha marcado el desarrollo de grandes proyectos como puedan ser Wikipedia oLinux. Estos proyectos se sustentan sobre grupos de personas de diferente índole, que trabajan cooperativamente sin jerarquías marcadas. Esto hace que el análisis de redes complejas sea perfecto para abordar el problema. Pero debido a que se conforman comunidades dinámicas y constantemente cambiantes, debemos tener en cuenta como eje central del análisis la variable temporal. En este trabajo proponemos una herramienta web, con la que facilitar el estudio y seguimiento de las comunidades que surgen y se conforman alrededor de wikis. La herramienta dispone de tres visualizaciones diferentes, en función del espacio de interacción seleccionado (artículos, páginas de talk y páginas de usuario), además de presentar métricas que resumen comportamientos y niveles de participación de los usuarios dentro de la comunidad. De esta manera, se puede tener diferentes perspectivas de la comunidad en espacios de interacción como en el plano temporal. Por último, ilustramos el uso de WikiChron networks con un caso de estudio para mostrar las virtudes que pensamos que ofrece la herramienta. Palabras clave Wiki, Open Collaboration, Network Analysis, Complex Networks, Visualization, Webtool vii
Abstract Commons-based peer production communities can be analyzed with the help of social network analysis. However, they are fluid organizations that continually change over time and consequently the time dimension needs to be considered in the analysis as a central variable. In this work we propose a webtool, WikiChron networks, to facilitate the study of the evolution of wiki communities through time. The tool displays three different community networks depending on the space considered for the interactions: articles, talk pages of articles or talk pages of users. The joint consideration of these three networks offer complementary views of the same community, while the time dimension makes possible to observe how the network structures changes through time and the changes in the played network role experimented by some editors. We illustrate the usefulness of our tool analyzing the evolution of a wiki community in different moments and showing network structures that can be seen in other wiki communities. Keywords Wiki, Open Collaboration, Network Analysis, Complex Networks, Visualization, Webtool ix
Chapter 1 Introduction In 1995, Ward Cunningham invented the first wiki system that allowed people to share content through the World Wide Web, until then, users required more technical knowledge to be able to perform these tasks. In 2003, Wikipedia was born and has not stopped growing since then. Nowadays, it is undoubtedly the largest online encyclopedia in the world. Although, Wikipedia has been a success, we must also highlight that other platforms such as Wikia (Fandom), that host thousands of wikis in order to producing content created by different communities of hundreds (even thousand) editors that are self-organized. As a result, wikis are one of the most complex social media networks to analyze. Thus, we can study these communities to understand how they behave, evolve and produce collaborative content throughout their life. Social network analysis provides us to study the relationships that occur within these communities, seeing how connections between users are produced, giving a broad sense to the underlying structure, and understanding user’s dynamic more closely. 1.1. Objectives With this project we seek to give more visibility to Social network analysis as an analytical tool to understand the meaning of wiki communities. To do this, we have developed a tool, WikiChron networks, to facilitate the study and management of wikis data such as complex networks and open 1
2Chapter 1. Introduction systems. The premise under WikiChron networks is to be easy to use and allow for a deeper analysis of how the community behaves, for this, we have always had in mind the temporal dimension, since it allows a more focused study of the problem. In addition, we wanted to follow the philosophy of open data that wikis have, and for this, we have tried to make it as simple as possible to share and download the data that the tool hosts. 1.2. Document structure In chapter 2, we give an introduction to the paradigm of wikis, illustrating the achievements that have been reached in their study. We also talk about other tools that are available to compare. In the chapter; Wikis as networks (3) we give a vision of how to model the problem in the form of a graph, what alternatives can be proposed and what parameters are proposed for the analysis. Next, chapter 4 explains how the information that is used in the tool has been extracted, what technologies it uses, and a usage guide is given. Chapter 4.3 gives a temporary vision of how work has been done to build the final web tool. Finally, the chapter of analysis 6 poses a case of study with the tool.
Cap´ ıtulo 1 Introducción En 1995, Ward Cunningham inventó el primer sistema de wikis que permitió a la gente compartir contenido a través de la World Wide Web, hasta entonces los usuarios necesitaban tener conocimientos más técnicos, para poder realizar estas tareas. En 2003, nace Wikipedia y no ha parado de crecer desde entonces. Hoy en día, es sin duda alguna la enciclopedia online más grande que hay. Aunque Wikipedia haya sido un éxito, también debemos de destacar que otras plataformas como Wikia (Fandom) que albergan miles de wikis, todas ellas con la finalidad de producir contenido creado por la comunidad. Las wikis son un recurso muy valioso de información al que podemos acceder dada su naturaleza de ser un proyecto open source. Debido a esto, las wikis conforman una red social de las más complejas a las que se puede acceder. Así, podemos estudiar estas comunidades para entender como se comportan, evolucionan y desarrollan para producir contenido colaborativo a lo largo de su vida útil. El análisis de redes complejas nos permite estudiar las relaciones que se producen dentro de estas comunidades, ver como se producen estas conexiones entre usuarios, dar un sentido amplio a la estructura subyacente de coordinación y entender de una manera más cercana las dinámicas de los usuarios. 1.1. Objetivos Con este proyecto buscamos dar más visibilidad al análisis de redes como herramienta de análisis para entender el funcionamiento de las comunidades 3
4Capítulo 1. Introducción de estas wikis. Para ello, hemos desarrollado una herramienta, WikiChron networks, para facilitar el estudio y manejo de los datos de las wikis como redes complejas y sistemas abiertos. La premisa de WikiChron networks por tanto, es ser fácil de usar y permitir realizar análisis más profundos de cómo se comporta la comunidad, para ello, hemos tenido siempre en mente la dimensión temporal, ya que permite un estudio más focalizado del problema. Además, hemos querido seguir la filosofía de datos abiertos que nos dan las wikis, y por ello hemos intentado que sea lo más sencillo posible compartir y descargar los datos que aloja la herramienta. 1.2. Estructura del documento En el capítulo 2, ofrecemos una introducción al paradigma de las wikis, ilustrando los hitos a los que se ha llegado en su estudio. También hacemos una recapitulación de que otras herramientas están disponibles en el mercado que sean comparables a la que nosotros proponemos. En el capítulo; Wikis como redes (3) damos una visión de como modelar el problema en forma de grafo, que alternativas se pueden plantear y que métricas se proponen para el posterior análisis. A continuación, el capítulo 4 explica cómo se ha extraído la información que se usa en la herramienta, que tecnologías usa, y se da una guía de uso. El capítulo 4.3 da una visión temporal de cómo se ha trabajado hasta construir la herramienta final. Por último, el capítulo de análisis 6 plantea un caso de estudio real con la herramienta.
Cap´ ıtulo 2 Estado del arte Como ya hemos discutido previamente el trabajo colaborativo se ha convertido en un pilar fundamental de internet, el cual ha roto las barreras jerárquicas tradicionales en pro de una democratización a la hora de generar contenido. Las wikis son una caso curioso dentro de este paradigma, ya que a priori sin necesidad de tener un conocimiento muy técnico permiten crear grandes volúmenes de contenido entre pares. Un caso de éxito sin duda es Wikipedia, que a pesar de poder editar ”cualquiera”, es la compilación de saber más grande de la humanidad, y en general el contenido se intenta contrastar con diferentes fuentes, para que sea fiable. De hecho, varios estudios han mostrado que los artículos relacionados con varios campos científicos, como oncología o farmacéutica, son tan precisos y contrastados como los artículos científicos de la rama del conocimiento asociada. Siendo Wikipedia uno de los casos de éxito más sonados podemos destacar otros tantos, como es el caso de Fandom la cual conforma una de las mayores plataformas para el desarrollo e implantación de wikis de cualquier temática. Casos de éxito son el de Harry Potter Marvel oStar Trek, los cuales mantienen una alta participación de sus usuarios y siguen generando con el paso del tiempo una gran cantidad de contenido. Aunque la temática de estas wikis es variada, bien es cierto que la mayoría que consigue mantener el interés de sus usuarios y generar contenido suelen ser las que se relacionan con la temática fan, como se puede ver en el censo de Jimenez-Diaz et al. (2018). Con lo cual otras muchas wikis son abandonadas por sus usuarios, o simplemente no tienen el suficiente calado para atraer a nuevos usuarios que finalmente realicen nuevas aportaciones. 5
6Capítulo 2. Estado del arte Todo lo anterior en su conjunto, nos llama a profundizar en como se forman las relaciones entre usuarios que puedan cristalizan en contenido para la comunidad, o como afecta el flujo de usuarios a la longevidad del proyecto, incluso cuando podemos entender que la wiki fracasa o tiene éxito. 2.1. Ediciones y roles de editores Un enfoque que se ha tomado para analizar comunidades en wikis ha sido desde el punto de vista del contenido que generan los editores, es decir, que roles de editores forman estas comunidades y como afectan en ellas. Estos roles se determinan en base a una clasificación previa de las ediciones realizadas. Ya Faigley y Witte (1981) clasificaron las ediciones sobre cualquier texto en función de la intencionalidad del cambio, dando lugar a dos grandes grupos; Los cambios de Texto Base que engloban cambios en el contenido del corpus del texto, y los cambios de Superficie los cuales hacen referencia a cambios en la forma del corpus del texto (e.g. estilo, referencias, ...). Más adelante, con Wikipedia ya asentada, Ang et al. (2006) buscan encontrar diferencias culturales en el proceso de escribir artículos en esta. Con lo que comparan ediciones y artículos de diferentes idiomas como el alemán, el francés o el japonés, aunque sin basarse en taxonomías anteriores, usando así una propia para el análisis. Con esto, intentan buscar contrastes entre colectivismo–individualismo o feminidad–masculinidad y evidenciar diferencias culturales. Posteriormente, Daxenberger y Gurevych (2012) realizan un clasificador de ediciones basándose en la taxonomía que propusieron Faigley y Witte (1981), añadiendo además un nuevo tipo, las Políticas de Wikipedia, que hacen referencia a ediciones que se puedan considerar vandálicas o a las propias que revierten estos vandalismos. Con esta taxonomía, posteriormente en Arazy et al. (2016) añaden una capa de complejidad más y realizan una clasificación de los roles asociados a cada tipo de edición, y al contrario de lo que piensan en un inicio (los roles son muy marcados y van asociados a cada tipo de usuario) se dan cuenta que estos roles son más bien dinámicos, aparecen y desaparecen según la comunidad necesita de ellos.
2.2. Distribución del trabajo en las wikis 7 2.2. Distribución del trabajo en las wikis Kittur y Kraut (2010) realiza un estudio estadístico de una muestra de casi 7,000 wikis (de Wikia ahora Fandom), y hace una comparación directa con el caso Wikipedia. Encuentra que en ambos casos hay una relación directa entre el número de usuarios y la cantidad de recursos que se destinan a la coordinación para escribir artículos. Saca a la luz también, que las wikis al contrario que Wikipedia no son tan rígidas con las normas de la comunidad. Por último, evidencia la desigualdad que se produce en estas wikis, ya que la mayoría de contenido es añadido por una minoría de usuarios (core). Más adelante, Shaw y Hill (2014) inciden de nuevo sobre la idea de que muchas veces grupos pequeños de usuarios controlan la mayoría de contenido y espacios de moderación. Van incluso más lejos afirmando que en vez de formarse estructuras democráticas en las que la participación es equitativa, se forman por el contrario estructuras oligárquicas, aunque luego bien es cierto que encuentran ejemplos de lo contrario. En Serrano et al. (2018) inciden sobre la idea de estudiar la desigualdad de la distribución del trabajo dentro de una wiki, para ello aplican a parámetros de participación el coeficiente de Gini, el cual se usa en el ámbito económico para medir la desigualdad en la población. Incluso van más allá, y aplican un coeficiente que llaman ratio 10:90, el cual mide cuánto más hace el 10% con más participación sobre el resto de la comunidad, esto finalmente se traduce en una confirmación de que en muchas comunidades la participación o el contenido de la wiki pende de unos pocos. Más reciente, Jimenez-Diaz et al. (2018) realizan un censo de wikis de Fandom, evidenciando el gran sesgo que hay, como por ejemplo; Que el 75 % de las wikis tienen una media de no más de 23 artículos, incluso el 95 % de las wikis tienen una media de 177 artículos. También lanzan otros datos interesantes como que el 71% de las wikis están en inglés, a pesar de no ser la lengua más hablada del mundo. 2.3. Redes complejas Aunque bien es cierto que las anteriores aproximaciones han arrojado luz a como se comportan estas comunidades, o que sesgos se producen en ellas, no dan un punto de vista acerca de como los editores se comportan de manera individual o como se relacionan con otros. Aquí pues es donde el análisis de redes nos da un enfoque más adecuado para abordar este asunto. En el análisis de redes complejas se modelan entidades y las relaciones
8Capítulo 2. Estado del arte entre ellas en forma de grafo. Sobre estos modelos podemos aplicar toda la teoría de grafos. Así, realizar análisis, predicciones y réplicas de sucesos. Por ejemplo, como se enseña en Barabási y Pósfai (2016) un fallo del sistema eléctrico de EE.UU en 2003 dejó sin corriente eléctrica a millones de personas durante muchas horas. Posteriormente, se modelo la red equivalente y un análisis demostró que fue debido a una caída del sistema en cascada, ya que el nodo en caer era lo suficientemente grande como para que los adyacentes no pudieran asumir la carga extra, y estos caer a su vez arrastrados por el primero. Como se dice en Kadushin (2012) las redes sociales se clasifican como ego-céntricas, socio-céntricas o como sistemas abiertos. Las wikis las podemos clasificar dentro de este último grupo, ya que las relaciones o límites entre usuarios no están bien definidos, lo que ocasiona que sean difíciles de analizar. Esto es tanto así porque estas relaciones son volátiles, pues nuevos usuarios se unen, otros dejan de ser activos, incluso los anónimos pueden participar. Por tanto, la dimensión temporal consideramos que toma mucha relevancia en un estudio de estas características. Una idea sobre la que se ha intentado incidir en Bolici et al. (2016) ha sido el hecho de clasificar a las comunidades de producción colaborativa (más allá de las wikis) como comunidades estigmérgicas, es decir, que la producción entre pares se asemeja a como se comportan las colonias de hormigas, en las que los individuos participan de forma equitativa y saben más o menos cual es su papel en el proyecto. Hace poco Foote et al. (2019) intentaron ver si en las etapas iniciales de la vida de una wiki se cumple esto, para ello modelaron las comunicaciones entre usuarios como redes y hicieron un estudio sobre una muestra amplia de wikis, finalmente concluyen que ese patrón no es explicado al menos con las redes de comunicación que ellos definen. 2.4. Herramientas de visualización de wikis Antes de empezar el desarrollo de la herramienta nos documentamos y buscamos qué soluciones pudieran haber en el mercado. Por desgracia o por fortuna no encontramos muchos avances en ese sentido. La oferta disponible suelen ser herramientas de uso general, como Gephi oCytoscape, las cuales no generan ni mucho menos las redes que buscamos, sino que son herramientas a las que se les carga una red ya calculada, y sobre esta se pueden hacer cálculos y visualizar.
2.4. Herramientas de visualización de wikis 9 Por otro lado, también dimos con el siguiente repositorio, que contiene código usado en Foote et al. (2019), el inconveniente era que la definición que se proponía para las redes era diferente a las que planteamos en 3.2, con lo cual finalmente se descarta su uso de igual manera. En cuanto a lo más cercano que había era un TFM desarrollado el año pasado, Villa (2018), que aunque en un principio consideramos su uso, finalmente se descartó porque se hubiera tenido que reescribir gran parte del código para integrarse con WikiChron. Por último, dispusimos de la herramienta desarrollada por compañeros de la UCM (Abel Serrano, Javier Arroyo), WikiChron-classic, que aunque si trabajaba específicamente con wikis se encarga de realizar un análisis más estadístico y de series temporales. Con lo cual decidimos partir del núcleo de la aplicación para construir la nueva herramienta WikiChron-networks.
16 Capítulo 3. Definición de las wikis como redes complejas forma más directa, y nos sirve como canal para ver el flujo de las comunicaciones entre individuos. Así pues, la red de comunicación directa se define tal que; En una ventana V de tiempo, inferimos un enlace desde el editor A hacia el editor B, si A ha editado en la página de usuario de B. De igual manera para inferir un enlace desde B hasta A, B tiene que editar la página de usuario de A. Si A edita su propia página usaremos una métrica propia de esta red como contador de las veces que sucede, esta métrica se puede usar como el tamaño del nodo, lo cual nos dará una idea de la importancia del editor. De esta forma, la red de comunicación directa se define como un grafo dirigido con pesos en las aristas. 3.4. Definición de la red de discusión de artículos como red de colaboración y comunicación La siguiente red que proponemos se basa en el contenido generado a partir de las redes de discusión, como ya hemos mencionado previamente estas páginas se usan como punto de encuentro entre los usuarios a la hora de editar artículos, a la hora de poner normas de estilo, de estructura o del contenido que esta permitido o no introducir. Queremos dar un matiz a esta red, ya que la consideramos un nexo de unión entre la red de coedición y la red de comunicación, pues al final lo que se pretende es poner en consenso a los editor sobre un marco común de las reglas que hay que seguir para editar en el artículo X. Otras representaciones que hemos valorado son; la de Welser et al. (2011) que establece enlaces entre usuarios cuando se replican entre ellos, produciendo así un grafo dirigido. Este enfoque no lo consideramos acertado puesto que lo que se comenta en estas páginas no va solo dirigido a una persona sino a la comunidad como tal. Otro enfoque es el de Foote et al. (2019), el cual establece un enlace a los 5 usuarios anteriores que hayan editado la página al mensaje del usuario A, esto nos parece un poco arbitrario, puesto que no tiene en cuenta la dilatación temporal que pueda haber entre cada mensaje. Por lo tanto, definimos la red de discusión como sigue; En una ventana V de tiempo, los nodos son usuarios que hayan editado al menos una página de discusión, y enlazamos a dos editores si han participado en la misma página de discusión, si participan en más aumentaremos el peso del enlace en una
3.5. Definición de la red de Co-edición como red de colaboración 17 unidad. Con esto tenemos un grafo no dirigido. Como en el resto de redes la ventana V de tiempo es configurable para establecer relaciones más o menos estrechas. 3.5. Definición de la red de Co-edición como red de colaboración Vamos a definir esta red de co-edición en base a los artículos editados, entonces, en una ventana V de tiempo, definimos como nodos a los usuarios que hayan editado al menos un artículo, e inferimos un enlace entre ellos si han editado el mismo artículo. Si ambos usuarios han editado conjuntamente más de un artículo aumentamos el peso del enlace entre ambos en una unidad. Con lo cual, esta red de colaboración es definida mediante un grafo no dirigido y con pesos. Dejamos a discreción del usuario el ajustar la ventana temporal V, para definir relaciones de trabajo más estrechas o más laxas, siendo el mínimo intervalo de V de 1 mes. Por ejemplo, en wikis con una actividad muy intensa de ediciones, tener una ventana amplia de tiempo no va a definir correctamente que dos usuarios hayan colaborado en un artículo común, pues es perfectamente posible que el contenido que editó el usuario A haya cambiado completamente cuando el usuario B edita. Por otro lado, en wikis con una actividad de contenido muy baja, si ajustamos la ventana V al mínimo (un mes), no veremos cambios relevantes, pues hemos aumentado demasiado la granulidad de nuestra red, en consecuencia tendremos redes muy dispersas (los usuarios no se conectan entre sí) o incluso una red vacía en el peor de los casos. Es remarcable que estos sucesos pueden pasar perfectamente dentro de una misma wiki, pues puede pasar por momentos en los que hay picos de trabajo y momentos de estancamiento. 3.6. Métricas que miden la importancia relativa de los usuarios Una vez definidas las redes que vamos a emplear para el análisis, se hace necesario disponer de métricas con las que podamos discernir la importancia del los editores en la red. Definimos dos grandes grupos, unas serán métricas propias a la wiki con las que mediremos cuán prolífico es el editor, y otras
18 Capítulo 3. Definición de las wikis como redes complejas irán ligadas a la topología de la red que hemos creado, llamada centralidad. El concepto de centralidad va ligado a la facilidad que tiene un nodo (editor en nuestro caso) de ser accedido por otros, una mayor centralidad suele conllevar una mayor influencia en la red de ese nodo. 3.6.1. Métricas de producción Estas definen un serie de valores sencillos de computar, pero que nos sirven para medir cual ha sido la cantidad de contenido generado por usuario o cuánto ha aportado. Además estas se computan en función de la ventana V establecida previamente. Tenure / Longevidad: mide la antigüedad del usuario en la comunidad desde su primera edición. Más antiguo implica un valor más alto. Edited Articles / Artículos editados: es el número de artículos diferentes editados. Article Edits / Ediciones en artículos: número de ediciones totales en artículos. Edited Talk Pages / Páginas de discusión editadas: es el número de páginas de discusión editadas. Talk Page Edits / Ediciones en páginas de discusión: número total de ediciones en páginas de discusión. Edits in its own page / Ediciones en propia página de usuario: número total de ediciones en su propia página de usuario. User Talks / Páginas de usuario editadas: es el número de páginas de usuario diferentes editadas. 3.6.2. Centralidad Como ya hemos dicho las medidas de centralidad miden la importancia relativa de los editores en la red. Nos apoyamos en la aproximación que se dan en Zhang y Wang (2012) para darlas contexto. Degree / Grado: nos da el número de enlaces que inciden sobre un editor. Si el grafo es dirigido tendremos In-degree como grado de entrada, y Out-degree como grado de salida del editor. Con esta métrica podemos medir el número de colaboraciones que involucran al editor.
3.7. Métricas que muestran el comportamiento de la comunidad 19 Closeness / Cercanía: mide la facilidad de acceso al resto de la red, o dicho de otro modo, se busca que la distancia al resto de nodos de la red sea pequeña. Lo asociamos con un rol generalista, un valor elevado indicará que ese editor diversifica su trabajo en la comunidad en vez de centrarse en solo una parte. Toma valores en el rango (0,1] Betweenness / Intermediación: mide la centralidad desde el punto de vista de cuántos caminos mínimos pasan por el editor. Lo asociamos con el rol de colaborador-puente, pues cuando tiene un valor muy alto significa que trabaja con editores de diferentes partes de la wiki. Toma valores en el rango [0,+∞]para grafos con pesos. Page Rank: se basa en el algoritmo de búsqueda de Google, y mide no solo la cercanía de un editor a otro sino también la de los vecinos más próximos. Así un editor que pueda parecer aislado en un principio, si esta conectado a otro nodo con una betweenness alta este le dará acceso más fácil al resto de la wiki. Toma valores en el rango [0,1] 3.7. Métricas que muestran el comportamiento de la comunidad Para dar un sentido más general a las redes también disponemos de métricas en las que apoyarnos y que nos sirven muchas veces de resumen de las métricas locales a los nodos. Density / Densidad: mide cuánto de conectada esta la red, un valor alto demuestra una cohesión alta entre los editores de la red, es decir, donde todos los editores trabajan entre sí. Toma valores en el rango [0,1] Gini of Degree / Gini de grado: el coeficiente de Gini mide la desigualdad en la red, aplicándolo al grado de los editores nos da un valor con el que podemos medir la desigualdad en las colaboraciones. Si nos da un valor cercano a 0 podemos decir que es una comunidad en la que la participación es equitativa entre todos los artículos. Por el contrario, un valor cercano a 1 indicaría que un grupo pequeño de editores son los que centralizan las comunicaciones o colaboraciones. Toma valores en el rango [0,1] Gini of Betweennes / Gini de intermediación: nos sirve para medir la desigualdad del rol de colaborador-puente, un valor cercano a 0 indicaría que este rol no es apreciable en la comunidad. Pero si topamos con un valor cercano a 1, querrá decir que este rol es la llave en la red. Toma valores en el rango [0,1]
20 Capítulo 3. Definición de las wikis como redes complejas Assortativity Degree / Asortatividad de grado: como se plantea en Barabási y Pósfai (2016), es el coeficiente de correlación que mide como se asocian los editores entre sí. Toma valores en el rango [−1,1] Si se encuentra en el rango de: µ= 0,37 ±0,11 decimos que la red es asortativa, es decir, que los editores que son hubs (tienen un grado alto) tienden a juntarse entre ellos, y los que tienen un grado más bajo tienden a juntarse entre editores con el mismo grado. Por otro lado, si el coeficiente se encuentra en el rango de: µ=−0,76 ±0,04 decimos que la red es disortativa, es decir, los hubs tienden a agruparse con los nodos con menor grado y se repelen entre ellos. Por último, con un valor cercano a 0, se dice que la red es neutra, y los enlaces se producen de forma aleatoria. Proporcionamos además otras métricas adicionales que pueden se de ayuda en el análisis, como el diámetro de la red con el que podemos saber la distancia máxima entre nodos, el número de componentes conexas, o las páginas editadas y el número total de ediciones en función de la red que se disponga.
3.7. Métricas que muestran el comportamiento de la comunidad 21 3.7.1. Búsqueda de comunidades A menudo en las redes complejas se tienden a producir subcomunidades debido a la disposición de los enlaces, los cuales forman zonas altamente conectadas en la red y otras menos densas. Una comunidad ideal es la que forma un clique (componente conexa en la que todos los nodos se conectan entre sí), si varios de estos cliques se conectan eventualmente por algún enlace, entonces es fácil de ver que cada clique forma su propia comunidad a pesar de ser todos alcanzables entre sí. El problema de buscar comunidades en base a cliques es que es un problema NP-Completo, y a parte, es también una forma más rígida de establecer comunidades (todos con todos), con lo cual si queremos tener un algoritmo que no sea tan costoso ni tan riguroso al establecer comunidades, entonces debemos relajar la condición de comunidad y tendremos que buscar alternativas. En nuestro caso nos hemos basado en el algoritmo que se describe en Pons y Latapy (2005). La idea bajo el algoritmo es que caminos aleatorios cortos tienden a mantenerse dentro de una misma comunidad. Así, por cada nodo se lanzan varios caminos aleatorios y finalmente se hace una ponderación de con que vecinos se ha mantenido más cercanía durante la simulación. A la hora de estudiar las comunidades que forman las wikis podemos usar este algoritmo ver si se forman pocas subcomunidades o clústeres, lo que indica una colaboración más próxima entre todos los usuarios, o por el contrario muchas comunidades significa que tenemos grupos de trabajo separados.
Cap´ ıtulo 4 Arquitectura de la aplicación y modelo de proceso En el presente capítulo hablaremos de cómo hemos construido WikiChron networks, tecnologías sobre las que se sustenta, integración en el ecosistema WikiChron, el proceso de extracción, transformación y cargado (load) de los datos (ETL). Terminaremos mostrando las ventajas y limitaciones técnicas que presenta. El repositorio se encuentra en: https://github.com/Grasia/WikiChron, y lo hemos desplegado en producción para una mayor comodidad de uso a la hora de probarlo, http://wikichron.science. Conviene que vayamos adelantando que no todo el código incluido en el repositorio (el mencionado más arriba) es parte de este proyecto, más concretamente, lo que sí se ha desarrollado para el proyecto es todo lo que cuelga de: WikiChron/wikichron/dash/apps/networks/. Se hará una referencia explícita cuando algo no haya sido desarrollado para este trabajo. 4.1. Tecnologías Desde un inicio teníamos en mente que el desarrollo de la herramienta tenía que venir de la mano con una integración en WikiChron classic, herramienta desarrollada por Abel Serrano y Javier Arollo para el grupo de investigación GRASIA de la Universidad Complutense de Madrid, que trata el mismo problema pero desde un punto de vista de analíticas y series temporales. Por lo tanto, para hacer esta integración efectiva desde un primer momen23
24 Capítulo 4. Arquitectura de la aplicación y modelo de proceso to, se adoptaron las mismas tecnologías usadas para el desarrollo de Classic, esto es, el uso de Python 3.6 sobre el framework Plotly-Dash. La ventaja de usar este framework es que nos permite programar tanto el backend como el frontend sobre un único lenguaje, Python. Los datos que se manejan en el programa son en última instancia csv’s o ficheros de texto plano, los cuales son manipulados mediante la librería de Pandas. Estos ficheros contienen un histórico de las ediciones de cada wiki con valores separados por ’;’. Aunque este recorrido ya estaba allanado previamente por Abel en el desarrollo de WikiChron-classic, y por lo tanto, nos basaremos en este principio para construir las redes discutidas en el capítulo anterior. A partir de aquí, tuvimos que elegir diferentes tecnologías para el manejo y visualización de los grafos. En primer lugar, para manipular los datos en forma de grafos y calcular sus métricas asociadas discutimos diferentes alternativas, aunque eso sí, teniendo siempre en mente usar una tecnología extendida y bien documentada. Entre las opciones destacamos NetworkX ypython-igraph. Finalmente se optó por el uso de python-igraph por dos motivos: una es que esta librería está hecha en C, con lo cual cálculos o algoritmos más costosos son más llevaderos que en NetworkX desarrollado íntegramente en Python. Otra razón para inclinarnos por python-igraph, era que ya habíamos usado NetworkX anteriormente, y buscábamos aprender nuevas tecnologías. Por último, para la presentación del grafo en la app tuvimos muy pocas opciones, por un lado estaba; D3.js, librería muy potente para gráficos pero no especializada en grafos y con la necesidad de traducir código JS a código Python. Otra opción a tener en cuenta era el uso de Plotly, aunque sí que era usable directamente con Python no se especializa en el uso de grafos. Ambas opciones suponían un incremento sustancial en el tiempo de desarrollo, lo cual, no era admisible si queríamos llevar a la práctica todas las ideas que teníamos en mente. Finalmente, dimos con dash-cytoscape una implementación de la librería Cytoscape.js sobre el framework Plotly/Dash, ahora sí pudimos disponer de una librería especializada en el manejo de grafos. Aunque esta se encontraba y encuentra en un estado inicial de su desarrollo, por tanto, aún presente algunos fallos menores que han sido solucionados o lo serán en un futuro.
4.2. Arquitectura 25 4.2. Arquitectura En la figura 4.1 queda reflejada de forma esquemática la arquitectura de las tecnologías usadas. Y en la figura 4.2 la correspondencia con los principales paquetes de código involucrados. En lineas generales hemos respetado la arquitectura previa montada para WikiChron-classic, esto es, estructura de paquetes y la comunicación entre ellos. Aunque dado que los requisitos son cambiantes y hay que introducir siempre nuevos archivos y paquetes esto obviamente ha cambiado hasta lo mostrado en 4.2. Vamos a dar una visión general de como funciona la aplicación. En primer lugar, se llama a la aplicación con los códigos de la wiki, red, e intervalo temporal que se quiere mostrar (se hace una selección previa de estos valores, o porque se ha compartido un enlace). Con esto se llama al archivo data_controller.py para que devuelva el dataframe asociado a la wiki. Este además se filtra temporalmente y para limpiar bots y usuarios anónimos. A continuación, se elige una red del paquete networks/models, se crea la red correspondiente en base al dataframe y se calculan las métricas asociadas. El proceso anterior termina con un grafo de la librería igraph-python, pero para mostrarlo usamos la librería Cytoscape, con lo cual, hay que parsear el grafo a un formato que se pueda entender, más concretamente, a un diccionario. Finalmente, tenemos solo falta componer la hoja de estilos del grafo a mostrar, para ello, usamos el archivo CytoscapeStylesheet.py que nos sirve como fachada de las operaciones que queremos permitir para hacer cambios al estilo. Con esto ya se actualiza la pantalla y los datos de las métricas calculadas. Cabe resaltar que cada vez que se cambia el tipo de red, la wiki o la ventana temporal se vuelve a ejecutar todo lo anterior. No pasa lo mismo si deseamos hacer cambios de estilo sobre la red, como cambiar de tamaño los nodos o color (esto se detalla en el siguiente capítulo), pues solo se recalcula la hoja de estilos.
32 Capítulo 5. Guía de uso Figura 5.2: Página de selección previa Una vez hecha la selección, si pulsamos sobre el botón de ”Generate”, tras unos instantes1se generará la red como se muestra en la en la figura 5.3. Si empezamos por la cabecera, tenemos un par de enlaces (en la parte izquierda) para volver atrás en la selección de la wiki, y para cambiar rápidamente entre entre las diferentes redes para la misma wiki seleccionada. Por el lado derecho, tenemos dos botones, uno con el que podemos compartir el enlace a esta wiki con la misma selección temporal. Y el otro botón que nos sirve para descargar los datos ya calculados de la red en formato GML. En la parte superior, del cuerpo de la página (donde sale el título de la wiki), disponemos de la selección temporal, podemos jugar con los valores para filtrar temporalmente la red. Los ”steps” del slider son mensuales como indican las etiquetas que se encuentran encima de las asas. Además podemos manejar el slider con los controles incluidos inmediatamente debajo, los cuales nos permiten manejar ambas asas en base al número de meses que las queramos mover a un lado u al otro. Si seguimos el orden descendente, debajo del filtro temporal se disponen los diferentes controles de la red. Podemos mostrar u ocultar la leyenda, las etiquetas de los nodos, o resetear la vista del grafo. Además, otros controles importantes son el de mostrar las comunidades, o el de colorear y dar tamaño a los nodos en base a una métrica (respectivamente en 5.4 y 5.5). 1El tiempo de generación puede variar mucho entre wikis, y también por el rango temporal seleccionado
33 Figura 5.3: Red de co-edición de la wiki Community Data Collective Wiki Figura 5.4: Clusters coloreados de diferentes colores
34 Capítulo 5. Guía de uso Figura 5.5: Degradado de la longevidad de los usuarios. Azul oscuro indica usuarios más antiguos. El tamaño refiere a la cantidad de ediciones en artículos. En el centro de la página nos encontramos con la red, esta se presenta mediante un layout de fuerzas, estos tipos de layout simulan una interacción mediante fuerzas en función del tamaño del nodo y las aristas, éstos por lo general dejan en el centro a los nodos más grandes y escoran a los nodos menos relevantes a la periferia. Por otro lado, podemos interactuar con la red, haciendo zoom y moviendo nodos, si pinchamos sobre una arista se nos muestra encima de esta el peso que tiene. Si queremos restablecer la vista podemos pulsar sobre el botón de ”reset” mencionado anteriormente. En la parte baja de la página disponemos de un gráfico de barras de la distribución de grados de los nodos, podemos cambiar a diferentes escalas. Es útil para ver el comportamiento de la red, por ejemplo si sigue una ley potencial o una distribución de Poisson. En la parte superior de la columna lateral de la página, se presenta un panel con las métricas globales ya descritas en el capítulo 3.7. El siguiente panel muestra una tabla con el top diez de usuarios en base a una métrica seleccionada. La tabla se puede paginar, ordenar por columnas, y filtrar. Para filtrar nombres pondremos eq "Nombre", y para filtrar valores pondremos por ejemplo: >"50" para mostrar solo los valores mayores a 50. Por último, si seleccionamos una fila en la tabla se nos marcará el nodo asociado en la red. Además si pinchamos sobre cualquier nodo de la red aparecerá su información en el último panel de la barra lateral (figura 5.6).
35 Figura 5.6: Selección de una fila de la tabla, e información concreta de un nodo.
Cap´ ıtulo 6 Análisis En el siguiente capítulo proponemos un caso de estudio, con el fin de mostrar la utilidad de la herramienta. Además añadiremos links que permitan comprobar de primera mano las afirmaciones propuestas, pues el lector podrá acceder mediante el link a la aplicación. 6.1. El caso de Cities Wiki Esta es una wiki de habla inglesa en la que se recoge la historia y cultura de diferentes ciudades del mundo. Hemos querido seleccionar dicha wiki para poder observar si se producen sub-comunidades, en concreto, queremos analizar si existen distintos grupos de editores que trabajan en distintas partes de la wiki, lo cual podría decir, que gente de diferentes culturas/regiones trabajan de manera aislada. Esta es una wiki con unos 15 años de historia, con lo cual vamos a poder ver la evolución que ha tomado, teniendo así periodos con mucha actividad y otros con menos actividad. 6.1.1. Primera etapa Empezamos pues con una visión global de la primera etapa, que hemos centrado entre Nov 2006 - Nov 2007, en la figura 6.1 se muestra parte de la red de coedición resultante, donde el tamaño de los nodos corresponde con el número de ediciones realizadas en artículos, y el color refleja la pertenencia a una comunidad. Es visible la formación de diferentes comunidades, y que el usuario Robin Patterson parece el coordinador principal, pues comunica con las diferentes comunidades formadas y partes de la red. Además el tamaño nos indica cuales son los editores más entusiastas. Aún con todo considera37
38 Capítulo 6. Análisis mos que la ventana temporal tomada es muy laxa, 1 año es demasiado para considerar que dos individuos hayan podido colaborar. Figura 6.1: Red de co-edición de artículos entre Nov 2006 - Nov 2007 Pasamos entonces a aumentar la lupa de nuestra red al periodo de Nov 2006 - Feb 2007, que comprende un rango de 4 meses entre ediciones. En la figura 6.2 podemos ver una red un tanto dispersa pues para 39 usuarios apenas tenemos una densidad del 0.04, lo que implica que haya muy poca cohesión como grupo, pues cerca del 40 % de los editores emprenden proyectos que no involucran a más gente. Podemos notar que tanto el usuario Robin Patterson como CocoaZen son los encargados de gestionar y coordinar la wiki, esto es confirmable con el hecho de que el gini de betweenness es de 0.94, un valor muy alto que nos indica la desigualdad tan elevada que hay a la hora de conectar las diferentes partes de la red, lo que llamamos en su momento ”colaborador-puente”, dicho de otra manera, muy poca gente es la encargada de conectar al resto de usuarios de la red entre sí. Además, el valor de assortativity degree (-0.43) nos indica una ligera tendencia hacia las disasortatividad, es decir, los hubs tienden a evitarse entre ellos y los editores más casuales (con poco grado), se conectan a dichos hubs. Todo ello refuerza la idea de ser una comunidad sostenida sobre dos usuarios principales.
6.1. El caso de Cities Wiki 39 Figura 6.2: Red de co-edición de artículos entre Nov 2006 - Feb 2007 En la tabla 6.1 podemos ver un top 5 de los usuarios con las métricas más altas de la red. Destacamos el papel de Unisunn que teniendo unos valores tan bajos en métricas que miden su importancia relativa en la red, tiene unas métricas de creación de contenido altísimas, esto da a entender que es un usuario que se ha involucrado en un proyecto propio dentro de la wiki, y apenas se comunica con los usuarios centrales de la misma. Usuario Degree Closeness Betweenness Artículos editados Ediciones totales Robin Patterson 13 0.0444 117 44 52 CocoaZen 6 0.0432 31 76 105 Cancun.gringo 4 0.0437 52 7 21 Unisunn 2 0.0413 0 276 594 Manjunathg 1 0.0421 16 3 16 Tabla 6.1: Un top de usuarios con las métricas más altas de la red de coedición de artículos entre Nov 2006 - Feb 2007 En cuanto a la red de discusión en el mismo periodo, vemos una red muy pobre tan solo los coordinadores principales se comunican através de ella. Esto nos indica que solo los usuarios más veteranos o coordinadores principales discuten acerca de como producir contenido, lo que por otro lado puede
40 Capítulo 6. Análisis tener sentido pues no es una wiki con muchos artículos y una necesidad clara de coordinación. Si pasamos a la red de comunicación directa del mismo periodo, podemos ver en la figura 6.3 (el tamaño de los nodos refleja ediciones en su propia página de usuario), la presencia de principalmente 2 clústeres en forma de estrella, sustentados sobre los usuarios Robin Patterson yCocoaZen, esto se debe a una política de recibimiento de nuevos usuarios que se mantenía en esa época para captar y mantener a nuevos miembros (un mensaje de CocoaZen aManchester_Planner). Podemos confirmar además, el hecho de que la mayorías de comunicaciones son de unos pocos usuarios a la mayoría viendo que el gini out-degree es de 0.97 y que el gini betweenness es de 0.98. Figura 6.3: Red de comunicación directa entre Nov 2006 - Feb 2007 6.1.2. Segunda etapa Esta etapa va a venir dada por un estancamiento tanto a la hora de producir contenido nuevo, como a la hora de atraer usuarios nuevos. Ahora nos centaremos en la red de coedición en el periodo que comprende Nov 2010 -
6.1. El caso de Cities Wiki 41 Feb 2011. En la figura 6.4 podemos ver una red con una estructura más pobre, apenas se han realizado 33 ediciones en 4 meses, además el número de usuarios activos a descendido hasta los 13 que conforman la red. Es destacable que los dos usuarios que antes se encargaban de la coordinación de la wiki en este periodo han pasado a un papel muy secundario. Por otro lado, se ha formado un cluster de usuarios que editan páginas de ciudades pakistaníes, estos conforman en su mayoría el contenido generado durante estos meses. En su conjunto la red conforma una densidad del 0.21, y el coeficiente de gini de betweenness nos da 0.75, seguramente estos datos fueran más equitativos si contáramos solo con el grupo de editores paquistaníes, pues parece que se coordinan bastante para editar. Figura 6.4: Red de coedición entre Nov 2010 - Feb 2011 En cuanto a las redes de discusión y de comunicación directa no se generan ediciones en ese periodo. Aunque si que es verdad que en esta wiki las páginas de discusión no han sido muy usadas en general, incluso en la etapa anterior que era más boyante. Además donde en la etapa anterior había una fuerte presencia de los usuarios coordinadores que mantenían una política de integración de los nuevos usuarios, ahora se han abandonado por completo estas políticas, lo que repercute en una menor entrada de usuarios nuevos y finalmente en menor contenido generado en beneficio de la wiki. Ya por último, en el periodo que comprende Nov 2016 - Feb 2017 vemos que la wiki está prácticamente desierta, apenas hay 6 editores para 14 edi-
Chapter 8 Conclusions Common-based peer production allows several approaches to study, to understand how these communities are born, evolve and die. Social network analysis provides a broader understanding of the dynamics that we mentioned. Therefore, we propose a tool that allows, not only the analysis of the communities but also that of the individuals that form them. We have wanted to follow the line of what is already in the state of the art at the moment of modeling the networks, but at the same time we wanted to include the time variable that is so important studying the dynamics that arise. This tool, being integrated in the same eco-system, allows to carry out a wider study, because you can have statistical tools to compare the results in the same temporal window. We consider that we have built a robust tool, easy to use, since it allows you to download and share networks in an agile and simple way. This encourages that if we could need some metrics that the tool does not provide, we can take our network and use it with specialized libraries or other tool. Proof that the development has been successful is to have managed to write a paper with the little time that we had, because this goal has been thanks to the hard work that has involved. 49
Bibliografía Ang, C. S.,Zaphiris, P. yPfeil, U. Cultural Differences in Collaborative Authoring of Wikipedia. Journal of Computer-Mediated Communication, vol. 12(1), páginas 88–113, 2006. ISSN 1083-6101. Arazy, O.,Daxenberger, J.,Lifshitz-Assaf, H.,Nov, O. yGurevych, I. Turbulent stability of emergent roles: The dualistic nature of self-organizing knowledge coproduction. Information Systems Research, vol. 27, páginas 792–812, 2016. Barabási, A. yPósfai, M. Network Science. Cambridge University Press, 2016. ISBN 9781107076266. Bolici, F.,Howison, J. yCrowston, K. Stigmergic coordination in floss development teams: Integrating explicit and implicit mechanisms. Cognitive Systems Research, vol. 38, páginas 14–22, 2016. Daxenberger, J. yGurevych, I. A corpus-based study of edit categories in featured and non-featured wikipedia articles. Proceedings of COLING 2012, páginas 711–726, 2012. El Faqir, Y.,Arroyo, J. ySerrano, A. Visualization of the evolution of collaboration and communication networks in wikis. OpenSym19, 2019. Faigley, L. yWitte, S. Analyzing revision. College Composition and Communication, vol. 32(4), páginas 400–414, 1981. ISSN 0010096X. Foote, J.,Shaw, A. yHill, B. M. Communication networks do not explain the growth or survival of early-stage peer production projects. SocArXiv, 2019. Jimenez-Diaz, G.,Serrano, A. yArroyo, J. A wikia census: motives, tools and insights. En Proceedings of the 14th International Symposium on Open Collaboration (OpenSym’18). ACM Press, Article, 6. 2018. 51
52 BIBLIOGRAFÍA Kadushin, C. Understanding Social Networks: Theories, Concepts, and Findings. Oxford University Press, USA, 2012. ISBN 9780195379471. Kittur, A. yKraut, R. E. Beyond wikipedia: coordination and conflict in online production groups. En Proceedings of the 2010 ACM conference on Computer supported cooperative work, páginas 215–224. ACM, 2010. Pons, P. yLatapy, M. Computing communities in large networks using random walks. En International symposium on computer and information sciences, páginas 284–293. Springer, 2005. Serrano, A.,Arroyo, J. yHassan, S. Participation inequality in wikis: A temporal analysis using wikichron. En Proceedings of the 14th International Symposium on Open Collaboration, página 12. ACM, 2018. Shaw, A. yHill, B. M. Laboratories of oligarchy? how the iron law extends to peer production. Journal of Communication, vol. 64(2), páginas 215– 238, 2014. Villa, D. F. Aplicación de técnicas de visualización y análisis de redes para el estudio de la producción colaborativa de conocimiento. Director, vol. 28, página 08, 2018. Welser, H. T.,Underwood, P.,Cosley, D.,Hansen, D. yL, W. B. Wiki networks: Connections of creativity and collaboration. En Analyzing Social Media Networks with NodeXL (editado por D. L. Hansen, B. Shneiderman y M. A. Smith), páginas 247 – 271. Morgan Kaufmann, Boston, 2011. ISBN 978-0-12-382229-1. Zhang, X. yWang, C. Network positions and contributions to online public goods: The case of chinese wikipedia. Journal of Management Information Systems, vol. 29(2), páginas 11–40, 2012.