Descripción
Wikipedia es, sin lugar a duda, el mayor esfuerzo colaborativo realizado por la humanidad. Aunque no necesite presentación, podemos destacar que la Wikipedia, en su versión inglesa, apareció el 15 de enero de 2001 y hoy ya contiene más de 5.600.000 artículos en ese idioma, aunque existen más de 290 versiones en diferentes idiomas con más de 46 millones de artículos. La versión catalana destaca por ser la segunda Wikipedia creada tras la inglesa, y cuenta ya con más de 620.000 artículos. La versión castellana, por su parte, contiene actualmente casi 1.540.000 artículos, y representa la novena Wikipedia en tamaño y la cuarta en cuanto a número de ediciones y número de editores considerados en activo. Todos estos datos pueden consultarse aquí.
Como base de datos, Wikipedia es un recurso enorme, además de cambiante, dado que se encuentra en constante evolución. Esto no impide poder obtener volcados (dumps), que se publican periódicamente para cada versión idiomática de Wikipedia, y que permiten disponer de una fotografía fija en un momento dado. El análisis de estos datos representa un reto, especialmente por su volumen, dado que los volcados que se generan de Wikipedia contienen toda la información disponible hasta la fecha, incluido todo el contenido, las ediciones realizadas y la discusión generada entre los editores. Esto supone disponer de almacenamiento para varios centenares de gigabytes, en función del análisis que se desee realizar, así como la capacidad computacional necesaria para manipular dicha cantidad de datos.
Los dumps se encuentran en diferentes formatos, uno de ellos como HTML estático (lo que sería exactamente una «foto» de Wikipedia en un momento dado), pero los más interesantes para su procesado están en ficheros XML y algunos en formato SQL ejecutable, que crea las tablas necesarias para explotarlos. Los ficheros están comprimidos para reducir su tamaño. Los dumps se generan de forma periódica, dependiendo del idioma, y se guardan solamente durante unas semanas, por lo que no es posible acceder a dumps antiguos. Normalmente, dentro de cada dump (y para cada idioma) existe una carpeta llamada latest que contiene el último dump disponible. En principio, se genera un dump los días 1 y 20 de cada mes.
Cada dump es una colección de decenas de ficheros que contienen información relativa a alguno de los elementos que componen Wikipedia (páginas, ediciones, enlaces, etc.), y normalmente se pueden encontrar como un único fichero para cada concepto o bien como una colección de ficheros más pequeños resultado de particionar el anterior.
Enlace al recurso
Ejemplo de uso
Supongamos que queremos analizar el contenido de las páginas de Wikipedia. Dentro del directorio correspondiente al dump hay un fichero llamado <idioma>wiki-<fecha>-pages-meta-current.xml.bz2, que tiene exactamente dicho contenido en formato XML, donde <idioma> puede ser «es», «en», «ca», etc. y <fecha> es la fecha del dump en formato AAAAMMDD o bien la cadena latest. Este fichero ocupa varios gigabytes, por lo que tanto su descarga como su descompresión y procesamiento pueden necesitar un tiempo considerable.
Una vez descargado y descomprimido el fichero, lo mejor es procesarlo con una librería adecuada para manipular ficheros XML, como por ejemplo MediaWiki XML Processing. Con un sencillo programa en Python es posible acceder a cada página:
1 from mwxml import Dump, Page 2 3 # Construct dump file iterator 4 dump = Dump.from_file(open("eswiki-20190801-pages-meta-current.xml")) 5 6 # Iterate through pages 7 for page in dump.pages: 8 # Iterate through a page's revisions 9 for revision in page: 10 print(page.title,”|”,revision.timestamp,”|”,revision.user.text)
Este código genera la siguiente salida (para el dump de la Wikipedia en español):
Artículos solicitados | 2019-04-20T20:35:43Z | Vercelas Andorra | 2019-07-30T22:15:51Z | Rastrojo Argentina | 2019-08-01T04:52:29Z | FARCROSX Geografía de Andorra | 2019-07-28T21:49:13Z | Aosbot Demografía de Andorra | 2019-04-13T20:45:56Z | InternetArchiveBot Comunicaciones de Andorra | 2019-06-12T21:40:13Z | Mitadango Artes visuales | 2019-07-30T01:39:39Z | Mel 23 Agricultura | 2019-07-26T14:35:45Z | SeroBOT Astronomía galáctica | 2016-04-08T12:31:49Z | 187.217.107.130 ASCII | 2019-07-28T21:49:23Z | Aosbot …
En este resultado, obtenido mediante el programa anterior, cada línea incluye el título de la página, la fecha de la última revisión (edición) y el nombre del usuario que la hizo, o bien desde qué dirección IP se realizó. Mediante el uso de la librería mwxml es posible acceder a todos los elementos que constituyen una entrada (página) en Wikipedia, por ejemplo, para saber qué páginas hace más tiempo que no se editan, etc.
Enlaces relacionados
Información sobre los dumps: https://meta.wikimedia.org/wiki/Data_dumps
Último dump en castellano: https://dumps.wikimedia.org/eswiki/latest/
Último dump en catalán: https://dumps.wikimedia.org/eswiki/latest/
Manipulación de dumps: https://pythonhosted.org/mwxml/