MediaWiki es un software wiki gratuito y de código abierto desarrollado originalmente por Magnus Manske para su uso en Wikipedia el 25 de enero de 2002, y mejorado aún más por Lee Daniel Crocker , [5] [6] después de lo cual ha sido coordinado por la Fundación Wikimedia . Impulsa varios sitios web de alojamiento wiki en Internet, así como la mayoría de los sitios web alojados por la Fundación Wikimedia, incluidos Wikipedia, Wiktionary , Wikimedia Commons , Wikiquote , Meta-Wiki y Wikidata , que definen una gran parte de los requisitos establecidos para el software. [7] MediaWiki está escrito en el lenguaje de programación PHP y almacena todo el contenido de texto en una base de datos . El software está optimizado para manejar de manera eficiente proyectos grandes, que pueden tener terabytes de contenido y cientos de miles de vistas por segundo. [7] [8] Debido a que Wikipedia es uno de los sitios web más grandes y visitados del mundo, lograr escalabilidad a través de múltiples capas de almacenamiento en caché y replicación de bases de datos ha sido una gran preocupación para los desarrolladores. Otro aspecto importante de MediaWiki es su internacionalización; su interfaz está disponible en más de 400 idiomas. [9] El software tiene más de 1000 ajustes de configuración [10] y más de 1800 extensiones disponibles para permitir agregar o cambiar varias funciones. [11] Además de su uso en sitios de Wikimedia, MediaWiki se ha utilizado como sistema de gestión de conocimientos y de contenidos en sitios web como Fandom , wikiHow e importantes instalaciones internas como Intellipedia y Diplopedia .
MediaWiki es gratuito y de código abierto y se distribuye según los términos de la Licencia Pública General GNU versión 2 o cualquier versión posterior. Su documentación, ubicada en su sitio web oficial en www.mediawiki.org, se publica bajo la licencia Creative Commons BY-SA 4.0 y parcialmente es de dominio público . [12] Específicamente, los manuales y otros contenidos en MediaWiki.org tienen licencia Creative Commons , mientras que el conjunto de páginas de ayuda destinadas a ser copiadas libremente en nuevas instalaciones wiki y/o distribuidas con el software MediaWiki es de dominio público. Esto se hizo para eliminar problemas legales que surgen de la importación de páginas de ayuda a wikis con licencias que son incompatibles con la licencia Creative Commons. [13] El desarrollo de MediaWiki generalmente ha favorecido el uso de formatos multimedia de código abierto . [14]
MediaWiki tiene una comunidad de voluntarios activa para el desarrollo y mantenimiento. Los usuarios que han hecho contribuciones significativas al proyecto mediante el envío de parches generalmente reciben, previa solicitud, acceso para enviar revisiones al repositorio Git / Gerrit del proyecto . [15] También hay programadores pagados que desarrollan principalmente proyectos para la Fundación Wikimedia . Los desarrolladores de MediaWiki participan en Google Summer of Code facilitando la asignación de mentores a estudiantes que deseen trabajar en proyectos centrales y de extensión de MediaWiki. [16] Durante el año anterior a noviembre de 2012, hubo alrededor de doscientos desarrolladores que habían comprometido cambios en el núcleo o las extensiones de MediaWiki. [17] Las principales versiones de MediaWiki se generan aproximadamente cada seis meses tomando instantáneas de la rama de desarrollo, que se mantiene continuamente en un estado ejecutable; [18] versiones menores , o versiones puntuales , se emiten según sea necesario para corregir errores (especialmente problemas de seguridad). MediaWiki se desarrolla según un modelo de desarrollo de integración continua , en el que los cambios de software se envían en vivo a los sitios de Wikimedia de forma regular. [18] MediaWiki también tiene un rastreador de errores público , phabricator.wikimedia.org , que ejecuta Phabricator . El sitio también se utiliza para solicitudes de funciones y mejoras .
Cuando Wikipedia se lanzó en enero de 2001, se ejecutaba en un sistema de software wiki existente , UseModWiki . UseModWiki está escrito en el lenguaje de programación Perl y almacena todas las páginas wiki en archivos de texto ( .txt ). Este software pronto demostró ser limitante, tanto en funcionalidad como en rendimiento. A mediados de 2001, Magnus Manske , desarrollador y estudiante de la Universidad de Colonia , además de editor de Wikipedia , comenzó a trabajar en un nuevo software que reemplazaría a UseModWiki, diseñado específicamente para su uso en Wikipedia. Este software fue escrito en el lenguaje de programación PHP y almacenó toda su información en una base de datos MySQL . El nuevo software se desarrolló en gran medida el 24 de agosto de 2001 y poco después se estableció una wiki de prueba.
La primera implementación completa de este software fue la nueva Meta Wikipedia el 9 de noviembre de 2001. Existía el deseo de implementarlo inmediatamente en la Wikipedia en inglés. [19] Sin embargo, Manske estaba preocupado por posibles errores que dañaran el naciente sitio web durante el período de los exámenes finales que tenía que completar inmediatamente antes de Navidad; [20] esto llevó a que el lanzamiento en Wikipedia en inglés se retrasara hasta el 25 de enero de 2002. Luego, el software se implementó, gradualmente, en todos los sitios en idioma Wikipedia de esa época. Este software fue denominado "el script PHP" y como "fase II", con el nombre de "fase I", dado retroactivamente al uso de UseModWiki.
El aumento del uso pronto provocó que volvieran a surgir problemas de carga y, poco después, comenzó otra reescritura del software; esta vez realizada por Lee Daniel Crocker , lo que pasó a conocerse como "fase III". Este nuevo software también fue escrito en PHP, con un backend MySQL, y mantuvo la interfaz básica del software de fase II, pero con la funcionalidad añadida de una escalabilidad más amplia . El software de la "fase III" se publicó en Wikipedia en julio de 2002.
La Fundación Wikimedia se anunció el 20 de junio de 2003. En julio, el colaborador de Wikipedia, Daniel Mayer, sugirió el nombre "MediaWiki" para el software, como un juego de palabras con "Wikimedia". [21] El nombre MediaWiki se introdujo gradualmente a partir de agosto de 2003. El nombre ha causado frecuentemente confusión debido a su similitud (intencional) con el nombre "Wikimedia" (que a su vez es similar a "Wikipedia"). [22]
El antiguo logotipo del producto fue creado por Erik Möller , utilizando una fotografía de flores tomada por Florence Nibart-Devouard , y se presentó originalmente al concurso de logotipos para un nuevo logotipo de Wikipedia, celebrado del 20 de julio al 27 de agosto de 2003. [23] [24 ] El logotipo quedó en tercer lugar y fue elegido para representar a MediaWiki en lugar de Wikipedia, y el logotipo del segundo lugar se utilizó para la Fundación Wikimedia. [25] Los corchetes dobles ( [[ ]] ) simbolizan la sintaxis que utiliza MediaWiki para crear hipervínculos a otras páginas wiki; mientras que el girasol representa la diversidad de contenidos de Wikipedia, su constante crecimiento y la naturaleza salvaje. [26]
Más tarde,Brooke Vibber , directora técnica de la Fundación Wikimedia , [27] asumió el rol de gerente de lanzamiento . [28] [29]
Los principales hitos en el desarrollo de MediaWiki incluyen: el sistema de categorización (2004); funciones del analizador , (2006); Revisiones marcadas , (2008); [30] el " ResourceLoader ", un sistema de entrega para CSS y JavaScript (2011); [31] y VisualEditor , una plataforma de edición "lo que ves es lo que obtienes" ( WYSIWYG ) (2013). [32]
El concurso para diseñar un nuevo logotipo se inició el 22 de junio de 2020, ya que el antiguo logotipo era una imagen de mapa de bits y tenía "altos detalles", lo que generaba problemas al renderizar en resoluciones altas y bajas, respectivamente. Después de dos rondas de votación, el nuevo y actual logotipo de MediaWiki diseñado por Serhio Magpie fue seleccionado el 24 de octubre de 2020 y adoptado oficialmente el 1 de abril de 2021. [33]
La primera versión de MediaWiki, 1.1, se lanzó en diciembre de 2003.
El uso más famoso de MediaWiki ha sido en Wikipedia y, en menor grado, en otros proyectos de la Fundación Wikimedia. Fandom , un servicio de alojamiento wiki anteriormente conocido como Wikia, se ejecuta en MediaWiki. Otros wikis públicos que se ejecutan en MediaWiki incluyen wikiHow y SNPedia . WikiLeaks comenzó como un sitio basado en MediaWiki, pero ya no es un wiki.
En MediaWiki se ejecutan varias enciclopedias wiki alternativas a Wikipedia, incluidas Citizendium , Metapedia , Scholarpedia y Conservapedia . MediaWiki también lo utilizan internamente un gran número de empresas, incluidas Novell e Intel . [34] [35]
Los usos notables de MediaWiki dentro de los gobiernos incluyen Intellipedia , utilizada por la Comunidad de Inteligencia de los Estados Unidos , Diplopedia , utilizada por el Departamento de Estado de los Estados Unidos , y milWiki, una parte de milSuite utilizada por el Departamento de Defensa de los Estados Unidos . Agencias de las Naciones Unidas como el Programa de las Naciones Unidas para el Desarrollo y el INSTRAW optaron por implementar sus wikis utilizando MediaWiki porque "este software ejecuta Wikipedia y, por lo tanto, se garantiza que será probado minuciosamente, continuará desarrollándose en el futuro y los futuros técnicos en estos Los wikis tendrán más probabilidades de estar expuestos a MediaWiki que a cualquier otro software wiki". [36]
La Free Software Foundation utiliza MediaWiki para implementar el sitio LibrePlanet . [37]
MediaWiki proporciona un rico conjunto de funciones principales y un mecanismo para adjuntar extensiones para proporcionar funcionalidad adicional.
Debido al fuerte énfasis en el multilingüismo en los proyectos de Wikimedia, la internacionalización y localización han recibido una atención significativa por parte de los desarrolladores. La interfaz de usuario ha sido traducida total o parcialmente a más de 400 idiomas en Translatewiki.net , [9] y los administradores del sitio pueden personalizarla aún más (toda la interfaz se puede editar a través de la wiki).
Varias extensiones, en particular las recopiladas en MediaWiki Language Extension Bundle, están diseñadas para mejorar aún más el multilingüismo y la internacionalización de MediaWiki.
La instalación de MediaWiki requiere que el usuario tenga privilegios administrativos en un servidor que ejecute PHP y un tipo compatible de base de datos SQL. Algunos usuarios encuentran que configurar un host virtual es útil si la mayor parte de su sitio se ejecuta bajo un marco (como Zope o Ruby on Rails ) que es en gran medida incompatible con MediaWiki. [38] El alojamiento en la nube puede eliminar la necesidad de implementar un nuevo servidor. [39]
Se accede a un script PHP de instalación a través de un navegador web para inicializar la configuración del wiki. Solicita al usuario un conjunto mínimo de parámetros requeridos, dejando cambios adicionales, como habilitar cargas, [40] agregar un logotipo del sitio, [41] e instalar extensiones, que se realizarán modificando los ajustes de configuración contenidos en un archivo llamado LocalSettings.php
. [42] Algunos aspectos de MediaWiki se pueden configurar a través de páginas especiales o editando ciertas páginas; por ejemplo, los filtros de abuso se pueden configurar a través de una página especial [43] y se pueden agregar ciertos gadgets creando páginas JavaScript en el espacio de nombres de MediaWiki. [44] La comunidad MediaWiki publica una guía de instalación completa. [45]
Una de las primeras diferencias entre MediaWiki (y su predecesor, UseModWiki ) y otros motores wiki fue el uso de " enlaces libres " en lugar de CamelCase . Cuando se creó MediaWiki, era típico que los wikis requirieran texto como "WorldWideWeb" para crear un enlace a una página sobre la World Wide Web ; Los enlaces en MediaWiki, por otro lado, se crean rodeando las palabras con corchetes dobles, y cualquier espacio entre ellos se deja intacto, por ejemplo [[World Wide Web]]
. Este cambio fue lógico con el propósito de crear una enciclopedia, donde la precisión en los títulos es importante.
MediaWiki utiliza un marcado wiki ligero, extensible [46] diseñado para ser más fácil de usar y aprender que HTML . Existen herramientas para convertir contenido como tablas entre el marcado de MediaWiki y HTML. [47] Se han hecho esfuerzos para crear una especificación de marcado de MediaWiki, pero parece haberse llegado a un consenso de que Wikicode requiere reglas gramaticales sensibles al contexto . [48] [49] La siguiente comparación lado a lado ilustra las diferencias entre el marcado wiki y HTML:
(Cita anterior de Las aventuras de Alicia en el país de las maravillas de Lewis Carroll )
Las herramientas de edición de páginas predeterminadas de MediaWiki han sido descritas como algo difíciles de aprender. [50] Una encuesta de estudiantes asignados para usar un wiki basado en MediaWiki encontró que cuando se les hizo una pregunta abierta sobre los principales problemas con el wiki, el 24% citó problemas técnicos con el formato, por ejemplo, "No pude entender cómo obtener un wiki". imagen en. No puedo entender cómo mostrar un enlace con palabras; inserta un número." [51]
Para facilitar la edición de páginas largas, MediaWiki permite la edición de una subsección de una página (identificada por su encabezado). Un usuario registrado también puede indicar si una edición es menor o no. Corregir la ortografía, la gramática o la puntuación son ejemplos de ediciones menores, mientras que agregar párrafos de texto nuevo es un ejemplo de edición no menor.
A veces, mientras un usuario edita, un segundo usuario guarda una edición en la misma parte de la página. Luego, cuando el primer usuario intenta guardar la página, se produce un conflicto de edición . Luego, el segundo usuario tiene la oportunidad de fusionar su contenido en la página tal como existe ahora después de guardar la página del primer usuario.
La interfaz de usuario de MediaWiki se ha traducido a muchos idiomas diferentes. También se puede establecer un idioma para el contenido wiki, que se enviará en el encabezado HTTP "Idioma de contenido" y en el atributo HTML "lang" .
MediaWiki tiene una API web extensible ( interfaz de programación de aplicaciones ) que proporciona acceso directo y de alto nivel a los datos contenidos en las bases de datos de MediaWiki. Los programas cliente pueden utilizar la API para iniciar sesión, obtener datos y publicar cambios. La API admite clientes JavaScript ligeros basados en web y aplicaciones de usuario final (como herramientas antivandálicas). Se puede acceder a la API desde el backend de otro sitio web. [52] Una extensa biblioteca de bots de Python , Pywikibot, [53] y una popular herramienta semiautomática llamada AutoWikiBrowser , también interactúan con la API. [54] Se accede a la API a través de URL como . En este caso, la consulta pediría a Wikipedia información relacionada con las últimas 10 ediciones del sitio. Una de las ventajas percibidas de la API es su independencia del idioma; escucha conexiones HTTP de clientes y puede enviar una respuesta en una variedad de formatos, como XML , PHP serializado o JSON . [55] El código del cliente se ha desarrollado para proporcionar capas de abstracción a la API. [56]https://en.wikipedia.org/w/api.php?action=query&list=recentchanges
MediaWiki admite contenido enriquecido generado mediante sintaxis especializada. Por ejemplo, el software viene con soporte opcional para representar fórmulas matemáticas usando LaTeX y un analizador especial escrito en OCaml . Una funcionalidad similar para otros contenidos, que van desde líneas de tiempo gráficas hasta trazados matemáticos y partituras musicales hasta jeroglíficos egipcios , está disponible a través de extensiones.
El software se ha vuelto más potente para manejar una amplia variedad de archivos multimedia cargados. Su funcionalidad más rica se encuentra en el área de imágenes, donde se pueden generar galerías de imágenes y miniaturas con relativa facilidad. También hay soporte para metadatos Exif . El uso de MediaWiki para operar Wikimedia Commons , uno de los archivos multimedia de contenido gratuito más grandes, ha impulsado la necesidad de una mayor funcionalidad en esta área.
Para la edición WYSIWYG, VisualEditor está disponible para su uso en MediaWiki, lo que simplifica el proceso de edición para los editores y se incluye desde MediaWiki 1.35. [57] Existen otras extensiones para manejar la edición WYSIWYG en diferentes grados. [58]
Entre las funciones de MediaWiki para ayudar en el seguimiento de las ediciones se encuentra una función de Cambios recientes que proporciona una lista de las ediciones recientes del wiki. Esta lista contiene información básica sobre esas ediciones, como el usuario que realiza la edición, el resumen de la edición, la página editada, así como cualquier etiqueta (por ejemplo, "posible enlace de malware ") [59] agregada mediante filtros de abuso personalizables y otras extensiones para ayudar a combatir ediciones inútiles. [60] En wikis más activos, ocurren tantas ediciones que es difícil rastrear los cambios recientes manualmente. A veces se emplea software antivandálico, incluidas herramientas asistidas por el usuario, [61] en dichos wikis para procesar elementos de cambios recientes. La carga del servidor se puede reducir enviando una fuente continua de cambios recientes a un canal IRC que estas herramientas puedan monitorear, eliminando la necesidad de enviar solicitudes de una fuente actualizada de cambios recientes a la API. [62] [63]
Otra herramienta importante son las listas de vigilancia. Cada usuario que ha iniciado sesión tiene una lista de seguimiento a la que puede agregar las páginas que desee. Cuando se realiza una edición en una de esas páginas, aparece un resumen de esa edición en la lista de seguimiento la próxima vez que se actualice. [64] Al igual que con la página de cambios recientes, las ediciones recientes que aparecen en la lista de seguimiento contienen enlaces en los que se puede hacer clic para revisar fácilmente el historial del artículo y los cambios específicos realizados.
También existe la posibilidad de revisar todas las ediciones realizadas por cualquier usuario en particular. De esta manera, si una edición se identifica como problemática, es posible verificar otras ediciones del usuario en busca de problemas.
MediaWiki permite vincular a versiones específicas de artículos. Esto ha sido útil para la comunidad científica, ya que revisores expertos pudieron analizar artículos, mejorarlos y proporcionar enlaces a la versión confiable de ese artículo. [65]
La navegación a través del wiki se realiza en gran medida a través de wikilinks internos. Los wikilinks de MediaWiki implementan la detección de existencia de páginas, en la que un enlace se colorea de azul si la página de destino existe en el wiki local y de rojo si no es así. Si un usuario hace clic en un enlace rojo, se le solicita que cree un artículo con ese título. La detección de existencia de páginas hace que sea práctico para los usuarios crear artículos "wikificados", es decir, artículos que contienen enlaces a otros temas pertinentes, sin que esos otros artículos aún existan.
Los enlaces Interwiki funcionan de forma muy parecida a los espacios de nombres. Se puede configurar un conjunto de prefijos interwiki para que, por ejemplo, el título de una página wikiquote:Jimbo Wales
dirija al usuario al artículo de Jimbo Wales en Wikiquote . [66] A diferencia de los wikilinks internos, los enlaces interwiki carecen de la función de detección de existencia de página y, en consecuencia, no hay forma de saber si un enlace interwiki azul está roto o no.
Los enlaces interidiomas son pequeños enlaces de navegación que aparecen en la barra lateral en la mayoría de los aspectos de MediaWiki y que conectan un artículo con artículos relacionados en otros idiomas dentro de la misma familia Wiki. Esto puede proporcionar comunidades de idiomas específicos conectadas por un contexto más amplio, con todos los wikis en el mismo servidor o cada uno en su propio servidor. [67]
Anteriormente, Wikipedia utilizaba enlaces entre idiomas para vincular un artículo a otros artículos sobre el mismo tema en otras ediciones de Wikipedia. Esto fue reemplazado por el lanzamiento de Wikidata. [68]
Las pestañas de página se muestran en la parte superior de las páginas. Estas pestañas permiten a los usuarios realizar acciones o ver páginas relacionadas con la página actual. Las acciones predeterminadas disponibles incluyen ver, editar y discutir la página actual. Las pestañas específicas que se muestran dependen de si el usuario ha iniciado sesión en el wiki y si el usuario tiene privilegios de administrador del sistema en el wiki. Por ejemplo, la capacidad de mover una página o agregarla a la lista de seguimiento generalmente está restringida a los usuarios que han iniciado sesión. El administrador del sitio puede agregar o eliminar pestañas usando JavaScript o instalando extensiones. [69]
Cada página tiene una página de historial asociada desde la cual el usuario puede acceder a todas las versiones de la página que hayan existido y generar diferencias entre dos versiones de su elección. Las contribuciones de los usuarios se muestran no sólo aquí, sino también a través de la opción "contribuciones de los usuarios" en una barra lateral. En un artículo de 2004, Carl Challborn y Teresa Reimann señalaron que "si bien esta característica puede ser una ligera desviación del espíritu colaborativo y 'sin ego' de los puristas del wiki, puede ser muy útil para los educadores que necesitan evaluar la contribución y la participación. de usuarios estudiantes individuales." [70]
MediaWiki proporciona muchas funciones más allá de los hipervínculos para estructurar contenido. Una de las primeras características de este tipo son los espacios de nombres . Uno de los primeros problemas de Wikipedia fue la separación del contenido enciclopédico de las páginas relacionadas con el mantenimiento y la discusión comunitaria, así como de las páginas personales sobre editores de enciclopedias. Los espacios de nombres son prefijos antes del título de una página (como " User:
" o " Talk:
") que sirven como descriptores para el propósito de la página y permiten que existan varias páginas con diferentes funciones bajo el mismo título. Por ejemplo, una página titulada " [[The Terminator]]
", en el espacio de nombres predeterminado, podría describir la película de 1984 protagonizada por Arnold Schwarzenegger , mientras que una página titulada " [[User:The Terminator]]
" podría ser un perfil que describa a un usuario que elige este nombre como seudónimo. Más comúnmente, cada espacio de nombres tiene un " Talk:
" espacio de nombres asociado, que se puede utilizar para analizar su contenido, como " User talk:
" o " Template talk:
". El propósito de tener páginas de discusión es permitir que el contenido se separe de la discusión que rodea al contenido. [71] [72]
Los espacios de nombres pueden verse como carpetas que separan diferentes tipos básicos de información o funcionalidad. Los administradores del sitio pueden agregar espacios de nombres personalizados. Hay 16 espacios de nombres predeterminados para el contenido, con 2 "pseudo-espacios de nombres" utilizados para Special:
páginas " " generadas dinámicamente y enlaces a archivos multimedia. Cada espacio de nombres en MediaWiki está numerado: los espacios de nombres de las páginas de contenido tienen números pares y los espacios de nombres de sus páginas de discusión asociadas tienen números impares. [73]
Los usuarios pueden crear nuevas categorías y agregar páginas y archivos a esas categorías agregando una o más etiquetas de categoría al texto del contenido. Agregar estas etiquetas crea enlaces en la parte inferior de la página que llevan al lector a la lista de todas las páginas de esa categoría, lo que facilita la búsqueda de artículos relacionados. [74] El uso de la categorización para organizar el contenido se ha descrito como una combinación de:
Además de los espacios de nombres, el contenido se puede ordenar mediante subpáginas . Esta sencilla función proporciona rutas de navegación automáticas del patrón [[Page title/Subpage title]]
desde la página después de la barra (en este caso, "Título de la subpágina") hasta la página antes de la barra (en este caso, "Título de la página").
Si la función está habilitada, los usuarios pueden personalizar sus hojas de estilo y configurar JavaScript del lado del cliente para que se ejecute con cada vista de página. En Wikipedia, esto ha dado lugar a una gran cantidad de herramientas y ayudas adicionales desarrolladas a través de la wiki y compartidas entre los usuarios. Por ejemplo, las ventanas emergentes de navegación son una herramienta JavaScript personalizada que muestra vistas previas de artículos cuando el usuario pasa el cursor sobre los enlaces y también proporciona accesos directos para tareas de mantenimiento comunes. [76]
Toda la interfaz de usuario de MediaWiki puede ser editada a través del propio wiki por usuarios con los permisos necesarios (normalmente llamados "administradores"). Esto se hace a través de un espacio de nombres especial con el prefijo "MediaWiki:", donde cada título de página identifica un mensaje de interfaz de usuario particular. Usando una extensión, [77] también es posible que un usuario cree scripts personales y elija si ciertos scripts de todo el sitio deben aplicarse alternando las opciones apropiadas en la página de preferencias del usuario.
El espacio de nombres "MediaWiki:" también se usó originalmente para crear bloques de texto personalizados que luego podrían cargarse dinámicamente en otras páginas usando una sintaxis especial. Posteriormente, este contenido se trasladó a su propio espacio de nombres, "Plantilla:".
Las plantillas son bloques de texto que se pueden cargar dinámicamente dentro de otra página cada vez que se solicita esa página. La plantilla es un enlace especial entre llaves dobles (por ejemplo " {{Disputed|date=October 2018}}
"), que llama a la plantilla (en este caso ubicada en Plantilla: Disputada ) para que se cargue en lugar de la llamada de plantilla.
Las plantillas son documentos estructurados que contienen pares atributo-valor . Se definen con parámetros , a los que se les asignan valores cuando se transcluyen en la página de un artículo. El nombre del parámetro está delimitado del valor por un signo igual . En Wikipedia se utiliza una clase de plantillas conocidas como cuadros de información para recopilar y presentar un subconjunto de información sobre su tema, generalmente en la parte superior (vista móvil) o en la esquina superior derecha (vista de escritorio) del documento.
Un método relacionado, llamado sustitución de plantilla (que se llama agregando subst:
al principio de un enlace de plantilla) inserta el contenido de la plantilla en la página de destino (como una operación de copiar y pegar ), en lugar de cargar el contenido de la plantilla dinámicamente cada vez que se carga la página. . Esto puede generar inconsistencia al usar plantillas, pero puede ser útil en ciertos casos y en la mayoría de los casos requiere menos recursos del servidor (la cantidad real de ahorro puede variar según la configuración del wiki y la complejidad de la plantilla).
Las plantillas han encontrado muchos usos diferentes. Las plantillas permiten a los usuarios crear diseños de tablas complejos que se utilizan de forma coherente en varias páginas y en los que solo se inserta el contenido de las tablas mediante parámetros de plantilla. Las plantillas se utilizan con frecuencia para identificar problemas con un artículo de Wikipedia colocando una plantilla en el artículo. Luego, esta plantilla genera un cuadro gráfico que indica que el contenido del artículo está en disputa o necesita alguna otra atención, y también lo categoriza para que se puedan ubicar artículos de esta naturaleza. Las plantillas también se utilizan en las páginas de los usuarios para enviarles mensajes estándar dándoles la bienvenida al sitio, [78] otorgándoles premios por contribuciones destacadas, [79] [80] advirtiéndoles cuando su comportamiento se considera inapropiado, [81] notificándoles cuando están bloqueados para editar, [82] y así sucesivamente.
MediaWiki ofrece flexibilidad para crear y definir grupos de usuarios. Por ejemplo, sería posible crear un grupo "ninja" arbitrario que pueda bloquear usuarios y eliminar páginas, y cuyas ediciones estén ocultas de forma predeterminada en el registro de cambios recientes. También es posible configurar un grupo de usuarios "autoconfirmados" del que uno se convierte en miembro después de realizar una cierta cantidad de ediciones y esperar una cierta cantidad de días. [83] Algunos grupos que están habilitados de forma predeterminada son los burócratas y los administradores de sistemas. Los burócratas tienen el poder de cambiar los derechos de otros usuarios. Los sysops tienen poder sobre la protección y eliminación de páginas y el bloqueo de la edición de los usuarios. Los controles disponibles de MediaWiki sobre los derechos de edición se han considerado suficientes para publicar y mantener documentos importantes, como un manual de procedimientos operativos estándar en un hospital. [84]
Cuando una página consta únicamente de contenido inútil, existen varias formas de eliminar ese contenido. La forma más sencilla, disponible para todos los usuarios, es simplemente dejar la página en blanco. Sin embargo, esto interfiere con la detección de la existencia de páginas, a menos que se instale una extensión para tratar las páginas en blanco como si no existieran. [85] La eliminación también deja el contenido accesible a través de la página del historial, un resultado que, si bien potencialmente aumenta la transparencia al permitir que los operadores que no son administradores revisen fácilmente la decisión de eliminación de contenido para determinar si es apropiado, podría ser inaceptable o incluso ilegal [86] en algunos casos. Otra opción es que un administrador de sistemas elimine la página y así evitar que sea vista por personas que no son administradores de sistemas. Un grupo (por ejemplo, "Supervisores") puede utilizar otro nivel de eliminación, llamado RevisionDelete, para evitar que personas que no son miembros de ese grupo vean una página. [87] También es posible, utilizando ciertas extensiones, eliminar el contenido para que no se pueda ver a través de cualquiera de los canales normales de la wiki, [88] o incluso eliminar completamente las revisiones de la base de datos. [89]
MediaWiki viene con un conjunto básico de características relacionadas con la restricción del acceso, pero su diseño original y continuo está impulsado por funciones que se relacionan en gran medida con el contenido, no con la segregación de contenido. Como resultado, con excepciones mínimas (relacionadas con herramientas específicas y sus páginas "especiales") relacionadas, el control de acceso a la página nunca ha sido una alta prioridad en el desarrollo central y los desarrolladores han declarado que los usuarios que requieren acceso seguro y controles de autorización no deben confiar en MediaWiki, ya que nunca fue diseñado para este tipo de situaciones. Por ejemplo, es extremadamente difícil crear un wiki donde sólo ciertos usuarios puedan leer y acceder a algunas páginas. [90] Aquí, los motores wiki como Foswiki , MoinMoin y Confluence brindan más flexibilidad al admitir mecanismos de seguridad avanzados como listas de control de acceso .
El código base de MediaWiki contiene varios enlaces que utilizan funciones de devolución de llamada para agregar código PHP adicional de forma extensible . Esto permite a los desarrolladores escribir extensiones sin necesidad de modificar el núcleo o enviar su código para revisión. La instalación de una extensión normalmente consiste en agregar una línea al archivo de configuración, aunque en algunos casos se requieren cambios adicionales, como actualizaciones de la base de datos o parches principales.
Se crearon cinco puntos de extensión principales para permitir a los desarrolladores agregar características y funcionalidades a MediaWiki. Los ganchos se ejecutan cada vez que ocurre un determinado evento; por ejemplo, el ArticleSaveComplete
enlace se produce después de que se haya procesado una solicitud para guardar el artículo. [91] Esto puede ser utilizado, por ejemplo, por una extensión que notifica a los usuarios seleccionados cada vez que se produce una edición de página en el wiki por parte de usuarios nuevos o anónimos. [92] Se pueden crear nuevas etiquetas para procesar datos con etiquetas de apertura y cierre ( <newtag>...</newtag>
). [93] Las funciones del analizador se pueden utilizar para crear un nuevo comando ( {{#if:...|...|...}}
). [94] Se pueden crear nuevas páginas especiales para realizar una función específica. Estas páginas se generan dinámicamente. Por ejemplo, una página especial podría mostrar todas las páginas que tienen uno o más enlaces a un sitio externo o podría crear un formulario que proporcione comentarios enviados por los usuarios. [95] Las máscaras permiten a los usuarios personalizar la apariencia de MediaWiki. [96] Un punto de extensión menor permite el uso de Amazon S3 para alojar archivos de imágenes. [97]
MediaWiki puede hacerse más avanzado y útil para diversos fines a través de sus extensiones. Estas extensiones varían mucho en complejidad.
La Fundación Wikimedia opera un servidor Git donde muchas extensiones alojan su repositorio. La mayoría de ellos también tienen una página de documentación en el sitio web de MediaWiki.
La revisión del código de MediaWiki se facilitó históricamente a través de una extensión de MediaWiki. [98] A partir de marzo de 2012, se ha hecho a través de Gerrit .
Desde la versión 1.16, MediaWiki utiliza la biblioteca jQuery . [99]
Entre las extensiones más populares se encuentra una extensión de función de analizador, ParserFunctions, que permite representar contenido diferente en función del resultado de declaraciones condicionales . [100] Estas declaraciones condicionales pueden realizar funciones tales como evaluar si un parámetro está vacío, comparar cadenas, evaluar expresiones matemáticas y devolver uno de dos valores dependiendo de si existe una página. Fue diseñado como reemplazo de una plantilla notoriamente ineficiente llamada {{Qif}}. [101] Schindler relata la historia de la extensión ParserFunctions de la siguiente manera: [30]
En 2006, algunos wikipedistas descubrieron que a través de una intrincada y complicada interacción de características de plantillas y CSS podían crear texto wiki condicional, es decir, texto que se mostraba si un parámetro de plantilla tenía un valor específico. Esto incluyó llamadas repetidas a plantillas dentro de plantillas, lo que atascó el rendimiento de todo el sistema. Los desarrolladores se enfrentaron a la elección de impedir la difusión de una función obviamente deseada detectando dicho uso y prohibiéndola explícitamente dentro del software u ofreciendo una alternativa eficiente. Esto último fue hecho por Tim Starling, quien anunció la introducción de funciones de analizador, texto wiki que llama a funciones implementadas en el software subyacente. Al principio sólo se implementaron texto condicional y el cálculo de expresiones matemáticas simples, pero esto ya aumentó enormemente las posibilidades para los editores wiki. Con el tiempo se introdujeron más funciones de analizador, lo que finalmente condujo a un marco que permitía la escritura simple de funciones de extensión para agregar funcionalidades arbitrarias, como por ejemplo servicios de codificación geográfica o widgets. Esta vez los desarrolladores reaccionaron claramente a la demanda de la comunidad, viéndose obligados a luchar contra la solución del problema que tenía la comunidad (es decir, texto condicional) u ofrecer una implementación técnica mejorada para reemplazar la práctica anterior y lograr una mejor solución general. actuación.
Otra extensión de funciones del analizador, StringFunctions, se desarrolló para permitir la evaluación de la longitud y la posición de la cadena, etc. Las comunidades de Wikimedia, después de haber creado soluciones incómodas para lograr la misma funcionalidad, [102] clamaron que se habilitara en sus proyectos. [103] Gran parte de su funcionalidad finalmente se integró en la extensión ParserFunctions, [104] aunque deshabilitada de forma predeterminada y acompañada de una advertencia de Tim Starling de que habilitar funciones de cadena permitiría a los usuarios "implementar sus propios analizadores en la programación más fea e ineficiente". Idioma conocido por el hombre: wikitexto de MediaWiki con ParserFunctions." [105]
Desde 2012 existe una extensión, Scribunto, que permite la creación de "módulos" (páginas wiki escritas en el lenguaje de programación Lua ) que luego se pueden ejecutar dentro de plantillas y páginas wiki estándar. Scribunto se ha instalado en Wikipedia y otros sitios de Wikimedia desde 2013 y se utiliza mucho en esos sitios. El código de Scribunto se ejecuta significativamente más rápido que el código de wikitext correspondiente utilizando ParserFunctions. [106]
Otra extensión muy popular es una extensión de citas que permite agregar notas a pie de página a las páginas utilizando referencias en línea. [107] Sin embargo, esta extensión ha sido criticada por ser difícil de usar y requerir que el usuario memorice una sintaxis compleja. Un gadget llamado RefToolbar intenta facilitar la creación de citas utilizando plantillas comunes. MediaWiki tiene algunas extensiones que son muy adecuadas para el mundo académico, como extensiones matemáticas [108] y una extensión que permite representar moléculas en 3D . [109]
Existe una extensión genérica de Widgets que permite que MediaWiki se integre con prácticamente cualquier cosa. Otros ejemplos de extensiones que podrían mejorar una wiki son extensiones de sugerencia de categorías [110] y extensiones para inclusión de vídeos Flash , [111] vídeos de YouTube, [112] y feeds RSS . [113] Metavid , un sitio que archiva secuencias de vídeo de los procedimientos del Senado y la Cámara de Representantes de los EE. UU. , se creó utilizando un código que extiende MediaWiki al dominio de la creación colaborativa de vídeos. [114]
Hay muchos robots de spam que buscan en la web instalaciones de MediaWiki y les añaden enlaces spam , a pesar de que MediaWiki utiliza el atributo nofollow para desalentar tales intentos de optimización de motores de búsqueda . [115] Parte del problema es que los republicadores de terceros, como los mirrors , pueden no implementar de forma independiente la etiqueta nofollow en sus sitios web, por lo que los especialistas en marketing aún pueden obtener el beneficio de PageRank al insertar enlaces en las páginas cuando esas entradas aparecen en sitios web de terceros. [116] Se han desarrollado extensiones antispam para combatir el problema introduciendo CAPTCHA , [117] poniendo en la lista negra ciertas URL, [118] y permitiendo la eliminación masiva de páginas agregadas recientemente por un usuario en particular. [119]
MediaWiki viene preinstalado con una búsqueda estándar basada en texto. Existen extensiones para permitir que MediaWiki utilice motores de búsqueda de terceros más sofisticados, incluidos Elasticsearch (que desde 2014 se utiliza en Wikipedia), Lucene [120] y Sphinx . [121]
También se han creado varias extensiones de MediaWiki para permitir una búsqueda por facetas más compleja , tanto en los datos introducidos en la wiki como en los metadatos , como el historial de revisiones de las páginas. [122] [123] Semantic MediaWiki es una de esas extensiones. [124] [125]
MediaWiki puede utilizar el sistema de gestión de bases de datos relacionales MySQL / MariaDB , PostgreSQL o SQLite . La compatibilidad con Oracle Database y Microsoft SQL Server se ha eliminado desde MediaWiki 1.34. [126] Una base de datos de MediaWiki contiene varias docenas de tablas , incluida una tabla que contiene títulos de página, identificadores de página y otros metadatos; [127] y una tabla a la que se agrega una nueva fila cada vez que se realiza una edición, que contiene la identificación de la página, un breve resumen textual del cambio realizado, el nombre de usuario del editor del artículo (o su dirección IP en el caso de un usuario no registrado) y una marca de tiempo. [128] [129]page
revision
En un período de cuatro años y medio antes de 2008, la base de datos de MediaWiki tenía 170 versiones de esquemas . [130] Posiblemente el mayor cambio de esquema se realizó en 2005 con MediaWiki 1.5, cuando el almacenamiento de metadatos se separó del de contenido, para mejorar la flexibilidad del rendimiento. Cuando se aplicó esta actualización a Wikipedia, el sitio se bloqueó para su edición y el esquema se convirtió a la nueva versión en aproximadamente 22 horas. Algunas propuestas de mejora de software, como una propuesta para permitir que secciones de artículos se vean a través de una lista de seguimiento, han sido rechazadas porque los cambios de esquema necesarios habrían requerido un tiempo de inactividad excesivo de Wikipedia. [131]
Debido a que se utiliza para ejecutar uno de los sitios de mayor tráfico en la Web, Wikipedia, el rendimiento y la escalabilidad de MediaWiki se han optimizado altamente. [29] MediaWiki admite Squid , replicación de bases de datos con equilibrio de carga , almacenamiento en caché del lado del cliente, almacenamiento en caché memcached o basado en tablas para el procesamiento de resultados de consultas a los que se accede con frecuencia, un caché de archivos estático simple, operación con funciones reducidas, compresión de revisión y una cola de trabajos. para operaciones de bases de datos. Los desarrolladores de MediaWiki han intentado optimizar el software evitando costosos algoritmos, consultas de bases de datos, etc., almacenando en caché cada resultado que sea costoso y tenga una localidad temporal de referencia, y centrándose en los puntos calientes del código mediante la creación de perfiles . [132]
El código de MediaWiki está diseñado para permitir que los datos se escriban en una base de datos de lectura y escritura y se lean desde bases de datos de solo lectura, aunque la base de datos de lectura y escritura se puede usar para algunas operaciones de lectura si las bases de datos de solo lectura aún no están actualizadas. . Los metadatos , como el historial de revisiones de artículos, las relaciones de los artículos (enlaces, categorías, etc.), las cuentas de usuario y las configuraciones se pueden almacenar en bases de datos centrales y almacenarse en caché; el texto de revisión real, que se utiliza con menos frecuencia, se puede almacenar como blobs de solo anexo en un almacenamiento externo. El software es adecuado para el funcionamiento de granjas de wiki a gran escala como Wikimedia , que tenía alrededor de 800 wikis en agosto de 2011. Sin embargo, MediaWiki no viene con una GUI incorporada para administrar dichas instalaciones.
La evidencia empírica muestra que la mayoría de las revisiones en las bases de datos de MediaWiki tienden a diferir sólo ligeramente de las revisiones anteriores. Por lo tanto, las revisiones posteriores de un artículo se pueden concatenar y luego comprimir, logrando índices de compresión de datos muy altos de hasta 100x. [132]
Para obtener más información sobre la arquitectura, como cómo almacena wikitexto y ensambla una página, consulte Enlaces externos.
El analizador sirve como estándar de facto para la sintaxis de MediaWiki, ya que no se ha definido ninguna sintaxis formal. Debido a esta falta de una definición formal, ha sido difícil crear editores WYSIWYG para MediaWiki, aunque existen varias extensiones WYSIWYG, incluido el popular VisualEditor .
MediaWiki no está diseñado para ser un reemplazo adecuado para foros en línea o software de blogs dedicados, [133] aunque existen extensiones para permitir ambos. [134] [135]
Es común que los nuevos usuarios de MediaWiki cometan ciertos errores, como olvidarse de firmar publicaciones con cuatro tildes (~~~~), [136] o ingresar manualmente una firma de texto sin formato, [137] debido a la falta de familiaridad con los detalles idiosincrásicos involucrados en comunicación en las páginas de discusión de MediaWiki. Por otro lado, un educador citó el formato de estas páginas de discusión como una fortaleza, quien afirmó que proporciona capacidades de discusión más detalladas que los foros de discusión tradicionales. Por ejemplo, en lugar de "responder" a un mensaje completo, el participante en una discusión puede crear un hipervínculo a una nueva página wiki en cualquier palabra de la página original. Las discusiones son más fáciles de seguir ya que el contenido está disponible a través de una página wiki con hipervínculos, en lugar de una serie de mensajes de respuesta en un foro de discusión tradicional. Sin embargo, excepto en unos pocos casos, los estudiantes no utilizaban esta capacidad, posiblemente debido a su familiaridad con el estilo tradicional de discusión lineal y a la falta de orientación sobre cómo hacer que el contenido fuera más " rico en enlaces ". [138]
MediaWiki por defecto tiene poco soporte para la creación de documentos ensamblados dinámicamente o páginas que agregan datos de otras páginas. Se han realizado algunas investigaciones para habilitar dichas funciones directamente en MediaWiki. [139] La extensión Semantic MediaWiki proporciona estas características. No se utiliza en Wikipedia, pero sí en más de 1.600 instalaciones de MediaWiki. [140] Sin embargo, el repositorio Wikibase y el cliente del repositorio Wikibase se implementan en Wikidata y Wikipedia respectivamente y, hasta cierto punto, proporcionan funciones de web semántica y vinculación de datos almacenados centralmente a cuadros de información en varios artículos de Wikipedia.
La actualización de MediaWiki suele ser totalmente automática y no requiere cambios en el contenido del sitio ni en la programación de la plantilla. Históricamente se han encontrado problemas al actualizar desde versiones mucho más antiguas. [141]
Los desarrolladores de MediaWiki han promulgado estándares de seguridad, tanto para el código central como para las extensiones. [142] Las consultas SQL y la salida HTML generalmente se realizan a través de funciones contenedoras que manejan la validación, el escape y el filtrado para prevenir secuencias de comandos entre sitios e inyección SQL . [143] Muchos problemas de seguridad tuvieron que solucionarse después del lanzamiento de una versión de MediaWiki, [144] y, en consecuencia, MediaWiki.org afirma: "El paso de seguridad más importante que puede tomar es mantener su software actualizado" suscribiéndose al anuncio. lista de correo e instalar las actualizaciones de seguridad que se anuncian. [145]
Los desarrolladores de MediaWiki están repartidos por todo el mundo, aunque la mayoría se encuentra en Estados Unidos y Europa. Desde 2004 se han celebrado reuniones cara a cara y sesiones de programación para desarrolladores de MediaWiki una o varias veces al año. [146]
El soporte para usuarios de MediaWiki consiste en:
Los usuarios de software de colaboración en línea están familiarizados con las funciones y el diseño de MediaWiki debido a su uso destacado en Wikipedia. Una descripción general de 2006 sobre el software social en el mundo académico observó que "en comparación con otros wikis, MediaWiki también es bastante agradable desde el punto de vista estético, aunque simple, y tiene un menú lateral y una hoja de estilo fácilmente personalizados ". [150] Sin embargo, en una evaluación realizada en 2006, se consideró que Confluence era un producto superior debido a su API muy utilizable y su capacidad para soportar mejor múltiples wikis. [109]
Un estudio de 2009 de la Universidad de Hong Kong comparó TWiki con MediaWiki. Los autores señalaron que TWiki ha sido considerada una herramienta colaborativa para el desarrollo de artículos educativos y proyectos técnicos, mientras que el uso más destacado de MediaWiki es en Wikipedia. Aunque ambas plataformas permiten la discusión y el seguimiento del progreso, TWiki tiene una parte de "Informe" de la que MediaWiki carece. Los estudiantes percibieron que MediaWiki era más fácil de usar y más divertido que TWiki. Cuando se les preguntó si recomendaban usar MediaWiki para proyectos grupales de cursos de gestión del conocimiento , 15 de 16 encuestados expresaron su preferencia por MediaWiki dando respuestas de gran certeza, como "por supuesto", "seguro". [151] TWiki y MediaWiki tienen una arquitectura de complementos flexible. [152]
Un estudio de 2009 que comparó la experiencia de los estudiantes con MediaWiki con la de Google Docs encontró que los estudiantes le dieron a este último una calificación mucho más alta en cuanto a diseño fácil de usar. [153]
Un estudio de 2021 realizado por el Instituto Brasileño de Ingeniería Nuclear comparó un sistema de gestión del conocimiento basado en MediaWiki con otros dos basados en DSpace y Open Journal Systems , respectivamente. [154] Destacó la facilidad de uso como una ventaja del sistema basado en MediaWiki, señalando que debido a que la Fundación Wikimedia había estado desarrollando MediaWiki para un sitio dirigido al público en general (Wikipedia), "su interfaz de usuario fue diseñada para ser más fácil de usar". -compatible desde el principio y ha recibido numerosos comentarios de los usuarios durante mucho tiempo", en contraste con el enfoque de DSpace y OJS en audiencias específicas. [154]
488 idiomas (sin incluir los idiomas compatibles pero que no tienen traducción)