lunes, 11 de mayo de 2009

Premio Nacional al "Mejor proyecto comunitario"

Finalmente se celebró la fase final del III Concurso de Software Libre, y AVBOT ha tenido el honor de recibir el Premio Nacional al "Mejor proyecto comunitario" de esta edición.

Los premiados y algunos pingüinos

La relación completa de premiados ha sido la siguiente:
  • Mejor proyecto de innovación
    • Primer premio: eOPSOA de David Castellanos Serrano de la Universidad de Castilla la Mancha
    • Finalista: Cool Imaging de Luis Antonio González Jaime y Ricardo Juan Palma Durán de la Universidad de Granada
  • Mejor proyecto de ocio y educación
    • Primer premio: Tucan de Jose Francisco Lupion González, Francisco Salido Ruiz y Jose Manuel Cordero Rodríguez de la Universidad de Málaga
    • Finalista: Geco de Daniel García Moreno de la Universidad de Sevilla
  • Mejor proyecto comunitario
    • Primer premio: AVBOT de Emilio José Rodríguez Posada de la Universidad de Cádiz
    • Finalista: The Digital Coach de Andoni Morales Alastruey de la Universidad Politécnica de Madrid

Además de los premios en metálico, los premiados se llevan una subscripción a la revista Linux Magazine y a la revista Novática.

Quisiera agradecer a la organización, participantes y patrocinadores, todo el esfuerzo llevado a cabo para sacar adelante esta nueva edición del concurso.

¡Muchas gracias a todos!

viernes, 24 de abril de 2009

Buscando nuevos patrones

Ahora que el robot es bastante estable, me estoy centrando en mejorar la lista de expresiones. Ya llevo más de 700 introducidas. Para ello estoy generando unas listas con los vandalismos detectados por humanos, para que me den ideas para nuevas expresiones regulares.

Un ejemplo de estas listas es: Usuario:AVBOT/Reversiones humanas/2009/04/23

domingo, 19 de abril de 2009

Clones de AVBOT

Ya son varios los usuarios de Wikipedia en español que han decidido instalarse un clon de AVBOT en sus máquinas, para ejecutarlo, y que en caso de que el servidor desde el que corro mi versión del robot esté fuera de servicio, sus clones sirvan de copia de respaldo y protejan a Wikipedia.

Esto conduce a realizar una serie de mejoras, pues la ejecución a la par de varios clones puede llevar a errores (avisos duplicados por ejemplo), aunque este extremo ya parece estar solucionado con los últimos parches que he aplicado.

Ahora queda realizar algunas pequeñas mejoras más para que los clones no se entorpezcan, y Wikipedia en español sea una barrera infranqueable para los vándalos. ¡Que ya lo es!

miércoles, 8 de abril de 2009

La sociología del vandalismo

Una de las ventajas de estar realizando el programa sobre un proyecto tan grande y tan dinámico como Wikipedia, y a la vez tan trasparente, es que tengo acceso a ingentes cantidades de datos derivados de la ejecución diaria del robot.

Entre las gráficas más expresivas que he generado se encuentra la siguiente:

Vandalismos por día durante el año 2008

En ella se observan los vandalismos que se realizaron durante casi todo el año 2008. Se observan dos grandes caidas. La primera entorno a los meses de junio-julio-agosto, y la segunda ocupa diciembre de 2008 y enero de 2009.

No cuesta imaginar el motivo de los descensos. En junio-julio-agosto la gente del hemisferio norte se va a la playa (en el hemisterio sur es invierno y coincide con algún mes de vacaciones de colegio) y deja de vandalizar, a finales de año todo el mundo está más ocupado con las fiestas y las vacaciones de Navidad.

Las constantes subidas y bajadas son las semanas. Los valles son los fines de semana (en los que la gente también deja en paz a Wikipedia), y los picos son los miércoles, que debe ser cuando están más aburridos en el trabajo, supongo.

Tengo algunas gráficas más. Las iré poniendo más adelante.

lunes, 6 de abril de 2009

IRC vs API

En la documentación anterior hemos comentado que el robot captura los cambios recientes en tiempo real a través de un canal de IRC. Esto no viene activado por defecto. El software MediaWiki permite habilitarlo en los ficheros de configuración, pero hay sitios web que utilizan MediaWiki y que por algún motivo no pueden o no desean usar un servidor de IRC para ello.

La solución pasa por implementar la opción de capturar los cambios recientes a través de la API de MediaWiki. Esto me mantendrá ocupado los próximos días.

miércoles, 1 de abril de 2009

Microsoft cerrará Encarta antes de fin de año

Microsoft ha anunciado que dejará de comercializar la enciclopedia Encarta en los próximos meses, quedando cerrada el 31 de octubre de 2009 (exceptuando Japón, cuyo cierre se producirá el 31 de diciembre).

Una parte del aviso deja entrever que es imposible competir contra otras formas de generar conocimiento que han conseguido gran popularidad en la red en los últimos años:

Why are these Encarta Web sites and software products being discontinued?
Encarta has been a popular product around the world for many years. However, the category of traditional encyclopedias and reference material has changed. People today seek and consume information in considerably different ways than in years past. As part of Microsoft’s goal to deliver the most effective and engaging resources for today’s consumer, it has made the decision to exit the Encarta business.

No son pocas las voces que proclaman a Wikipedia como victoriosa en esta batalla tácita por la difusión del conocimiento que se viene produciendo entre le enciclopedia libre y las enciclopedias de toda la vida. Por ejemplo, El País publica el siguiente titular "Microsoft se rinde ante la Wikipedia y cierra Encarta tras 16 años".

En la lista de correo de la Fundación Wikimedia han comentado la idea de solicitar la liberación de algunos contenidos de Encarta, para poder incorporarlos a Wikipedia.

Recordar que recientemente Google sacó un proyecto de generación de conocimiento llamado Knol, y que tampoco ha tenido mucho impacto.

miércoles, 18 de marzo de 2009

Fase local

Hoy 18 de marzo he presentado a AVBOT en las Jornadas de Software Libre y Conocimiento Abierto de la UCA, como participante en el Concurso Universitario de Software Libre. Para mi sorpresa he resultado ganador. Hay que decir mucho a favor de los otros proyectos presentados, en concreto de Libgann y Free padel. Aunténticas virguerías.

viernes, 6 de marzo de 2009

Logros alcanzados

Se detallan a continuación algunos de los logros alcanzados:
  • Más de 5000 horas de trabajo.
  • Funcionamiento ininterrumpido comprobado durante más de 7 días (del 26 de noviembre al 2 de diciembre). Lo que dice mucho de su estabilidad.
  • Más de 200 mil ediciones hasta la fecha. En torno a la mitad de ellas han sido reparaciones a páginas, el resto avisos a usuarios.
  • Tasa de acierto del 99,5% según datos de diciembre de 2008. Primero fue mejorado con las puntuaciones, posteriormente con los contrapesos.
  • Ningún bloqueo por malfuncionamiento.
Algunos de los usuarios de Wikipedia también han expresado su satisfacción con el trabajo del bot. También pasó la autorización para poder ejecutarse con 19 votos a favor y 0 en contra. Un signo de que la comunidad quiere que el bot continue trabajando lo constrituye la página de sugerencias, desde donde se pueden pedir nuevas funcionalidades para el programa.

Dificultades superadas

En un principio el programa analizaba una edición tras otra, de forma secuencial. Este sistema era bastante lento, pues había que esperar a que se terminara de comprobar una edición para saltar a la siguiente y en Wikipedia en español el ritmo de modicaciones a veces superaba al ritmo de análisis. Para evitar esto se introdujo el uso de hilos, mediante la librería thread. Con esta solución, cada vez que llegan los datos de un cambio, se llama a la función de análisis. Si llegan varias modificaciones a la vez, no se espera a que termine una para empezar con la siguiente, ya que son independientes.

Otro aspecto relevante es el precompilado de expresiones. Cada vez que era analizada una edición, había que pasar la lista de expresiones (varios cientos de ellas) sobre un texto que en algunas ocasiones era bastante extenso. Este proceso requería los siguientes pasos:
  1. Leer la expresión regular.
  2. Compilar la expresión regular.
  3. Pasar la expresión regular compilada al texto objetivo.
  4. Volver al paso 1 con la siguiente expresión.
Se puede evitar la compilación continua de una misma expresión si guardamos el resultado de dicha compilación. Por ello, se implentó una mejora en el cargador de expresiones, que en vez de guardar sólamente la expresión en cruda, guarda su compilación. La mejora fue drástica. De tener que compilar entorno a 600 expresiones por cada página analizada, lo que hacía que el proceso de análisis consumiera unos 10 segundos, se pasó a menos de una milésima de segundo por análisis. Denitivamente esta fue una mejora crucial en el programa.

miércoles, 4 de marzo de 2009

Proyecto Fin de Carrera

Hoy miércoles 4 de marzo presenté a AVBOT como Proyecto Fin de Carrera. El nombre completo es "Detector y corrector automático de ediciones maliciosas en Wikipedia".
Calificación: Matrícula de honor.

domingo, 22 de febrero de 2009

Alcance

Se trata de un proyecto innovador, surge de la necesidad de controlar las ingentes cantidades de información que vuelcan miles de usuarios alrededor del mundo en un proyecto colaborativo como Wikipedia. Wikipedia pertenece a la denominada Web 2.0, una nueva concepción de la World Wide Web en la que los usuarios ya no son meros consumidores de datos que los webmasters cuelgan en Internet, sino que ellos mismos juegan el papel de productores/consumidores de esa información.

Esto conlleva una serie de ventajas y desventajas. Por un lado el potencial de producción crece exponencialmente, ya que cualquier persona con un navegador web puede modicar los contenidos y mejorarlos. Por otro lado la cantidad de errores bienintencionados o de mala fe también crece.

Estas aportaciones no deseadas son, la mayoría de las veces, detectables fácilmente para un humano o un ordenador, ya que lo modicado resalta sobre lo demás por contener expresiones malsonantes o texto sin sentido. En otras ocasiones esta tarea se hace más compleja para un computador por no poder ser descrito mediante un patrón sencillo.

Existen muchas personas comprometidas con Wikipedia, y la mayoría de ellos controlan de manera altruista y voluntaria que nadie destruya los contenidos de la enciclopedia. Este esfuerzo podría dedicarse a la mejora o creación de nuevos artículos, en vez de a vigilar constantemente si los cambios producidos por usuarios nuevos o anónimos son malintencionados. Esto sería un gran benecio para la comunidad. Para ello puede desarrollarse un programa que haga esta tarea, al menos con las ediciones claramente destructivas.

El producto de este proyecto tiene por nombre AVBOT. Es el acrónimo de "AntiVandal BOT" (en español: "BOT AntiVándalos"). Este programa analizará las ediciones que se realicen en Wikipedia en español para buscar contribuciones maliciosas y las revertirá. AVBOT no podrá sustituir nunca a una persona, pues la capacidad de comprensión humana a la hora de leer un texto sobrepasa con creces la que pueda tener un programa de ordenador, aunque sí será de gran ayuda para revertir esos vandalismos repetitivos y monótonos.

domingo, 15 de febrero de 2009

Objetivos

Se pretende crear un programa que proteja a Wikipedia en español (y por extensión a cualquier página web que utilice el software MediaWiki) de usuarios maliciosos que introduzcan modicaciones indeseadas. Para ello es necesario completar cada uno de los siguientes objetivos:
  1. Lectura de los cambios que se producen en los artículos en tiempo real.
  2. Análisis y valoración de cada uno de los cambios capturados en el "objetivo 1".
  3. Tomar las acciones oportunas: actuar si el cambio es malicioso o dejarlo pasar si no supone peligro.
  4. Mantener un log de las acciones realizadas para su depuración en caso de error.
Más adelante se hará una distinción entre modicaciones meramente maliciosas y ediciones de prueba. En cualquier caso, se trata de aportaciones que deben ser deshechas, pues no contribuyen a la mejora de Wikipedia.

martes, 10 de febrero de 2009

Manual de instalación y usuario

Ya están disponibles los manuales de instalación y usuario de AVBOT en formato PDF. El primer comenta los pasos necesarios para integrar pywikipediabot + irclib + AVBOT, y el segundo explica los comandos básicos de ejecución y algunos consejos.

viernes, 30 de enero de 2009

Actividad durante 2008 y AVBOT

En la gráfica se observan las reversiones que se produjeron en Wikipedia en español cada día de 2008. La línea celeste representa aquellas que fueron realizadas por usuarios anónimos, y es la que menos se eleva de todas. Esto es así porque los anónimos no suelen dedicarse al mantenimiento de Wikipedia. La línea azul marino corresponde a los bibliotecarios y es muy similar a la rosa, correspondiente a AVBOT (desde marzo es el único robot que se dedica a revertir).

¿No deberia AVBOT hacer todo el trabajo? ¿Es que el robot no es eficiente? Por desgracia no todas las ediciones inservibles son fácilmente indentificables por un robot. Muchísimas de las reversiones que realizan los usuarios registrados (línea amarilla) o los bibliotecarios (línea azul marino) son reparaciones a ediciones que contienen frases fuera de contexto, no neutrales, vandalismos muy especializados, errores de novatos, etc, las cuales no pueden ser ponderadas por un programa. Tratar que el bot repare esos casos llevaría a muchos falsos positivos y sería contraproducente.

Con anterioridad a marzo existía un programa (BOTpolicia) que hacía la misma función que AVBOT pero era menos eficiente (a penas alcanza las 200 reversiones/día). A partir de marzo y hasta fin de año se ve que AVBOT ha hecho casi 600 reversiones/día de media en los puntos más altos, aunque normalmente hace 300-400. Durante el periodo estival el número de vándalos desciende, por lo que el robot tiene menos trabajo. A mediados de agosto y a finales de octubre el robot estuvo parado por mantenimiento de ahí que caiga hasta cero (se observa que la línea amarilla crece vertiginosamente para paliar la ausencia del robot).

Las constantes subidas y bajadas (dientes de sierra) corresponden a la diferencia de actividad durante la semana (los miércoles son los máximos y los fines de semana los mínimos).