
Recientemente, Confluence y sharepoint han reinado casi por completo en el mercado de la base de conocimiento. Los sistemas son excelentes, no lo discuto, pero personalmente no tengo suficiente flexibilidad y de alguna manera no crecí juntos: el wiki de sharepoint se mantuvo en algún lugar en el nivel de 2005 (no tengo palabras para trabajar con documentos de oficina, todo está zumbando), y Confluencia, en virtud de sus características, con el creciente número de artículos inexorablemente convertidos en un basurero en el que es imposible encontrar todo lo que necesita (
pero tal vez el problema estaba en mí ).
Sin disminuir los méritos de estos sistemas, me gustaría hablar sobre las oportunidades que
tiene Mediawiki como base de conocimiento corporativo. Por supuesto, mediawiki no es adecuado para todos: no tiene una integración de moda con jira / tfs / etc., transferir documentos con imágenes desde el paquete de Microsoft Office es una gran inconveniencia, y está escrito en PHP, lo que recientemente ha servido como un elemento disuasorio para algunas personas de TI . Sin embargo, la plataforma es más animada que todas las vivas y una buena cantidad de personas está trabajando en su desarrollo, siempre y cuando
la familia de proyectos de
la Fundación Wikimedia se base en ella.
El wiki en sí es bastante tacaño con las posibilidades, pero se han escrito muchas
extensiones para él. La mayor parte de la funcionalidad interesante reside en las extensiones, por lo que una buena parte del artículo tratará sobre ellas. Y sí, no puedo dejar de notar que hay una versión corporativa especial de Mediawiki -
BlueSpice , que no usé, y por lo tanto no puedo juzgar su adecuación.
¿Por qué te metiste en esto y quién eres de todos modos?Hola Mi nombre es Nikolai, soy ingeniero de control de calidad.
El control de calidad incluye no solo / no tanto pruebas como garantía de calidad en un sentido amplio. Y entre otros significados de este sentido más amplio, se ha ocultado algo como la gestión del conocimiento. Hay bastantes artículos y libros abstractos sobre este tema que hablan sobre los principios de la gestión del conocimiento, pero sorprendentemente hay pocas recomendaciones concretas e ideas prácticamente aplicables, al menos de alguna manera frescas. Esto me hace pensar que cualquiera usa lo que las compañías famosas le dan a todos y se regocija, o no usa nada y sufre, o vio su propia bicicleta secreta, de la cual es vergonzoso hablar en una compañía decente.
Estoy avergonzado también, pero te lo diré. Primero, sobre los chips de mediaiwki en sí
Antes de hablar de extensiones, vale la pena mencionar qué características tiene el mediawiki en general. Si tiene miles de ediciones en Wikipedia en su cuenta, entonces es poco probable que aprenda algo nuevo de esta parte, puede omitirlo de manera segura.
La primera y una de las cosas más tangibles:
categorías . Las páginas se pueden agregar a categorías, las categorías mismas se pueden agregar a categorías. A diferencia de la estructura del archivo (olvídate de los enlaces simbólicos), una página / categoría puede estar en varias categorías a la vez. El uso de categorías dificulta el crecimiento del caos con el creciente número de artículos. Especialmente si navega periódicamente por listas de artículos sin clasificar y categorías sin clasificar
Espacios de nombres . La ideología de la wiki dice que todo es una página (incluso una categoría o imagen). Para separar páginas de diferentes tipos, se agregó la idea de espacios de nombres. Si lo desea, puede agregar sus propios espacios de nombres para separar el conocimiento de los diferentes tipos (por ejemplo, espacios de nombres separados para información de productos, utilidades, guías, descripciones de procesos, otra información de servicio).
El wiki también admite
plantillas : páginas wiki que luego se pueden incluir en otras páginas. Las plantillas admiten trabajar con parámetros, lo que los convierte en algo más que simples inserciones de texto: si lo desea, puede escribir una secuencia de comandos simple en el idioma de la plantilla. Por cierto, dicen que
Turing puede completar el lenguaje de plantilla .
Además de las plantillas, la extensión
Scribunto permite el uso de
módulos lua dentro de un wiki. Los módulos junto con las plantillas le permiten implementar muchas cosas sin siquiera tener que escribir sus propias extensiones.
Por ejemplo,
las tablas de navegación se crean sobre la base de este dúo. La tabla de navegación es, por ejemplo, esta cosa, que generalmente se puede ver en la parte inferior de la página:

Aunque no son una funcionalidad estándar, se han establecido como un medio conveniente de navegación y restablecimiento del orden y ahora se usan en casi todas partes.
No puedo dejar de mencionar los archivos
Mediawiki: Common.css y Mediawiki: Common.js que le permiten agregar un poco de personalización a la wiki; es mejor usar extensiones para grandes cosas.
Editores
Una de las partes más importantes de una wiki es el editor. Es extremadamente difícil implementar un wiki si no tiene un editor visual, porque solo una persona con mucha iniciativa estará de acuerdo en aprender el marcado de wiki.
Editor visual
Una extensión relativamente reciente:
VisualEditor resuelve el problema con la edición visual de artículos. Él tiene sus propias jambas, pero para la mayoría de las tareas tiene suficiente. De los problemas más notables: no existe la inserción de imágenes más conveniente.
La apariencia del editor visual está estrechamente relacionada con la llegada de
Parsoid , un servicio de conversión entre la sintaxis de Mediawiki y html. Esta tarea resultó ser extremadamente no trivial debido al hecho de que la sintaxis mediawiki se desarrolló al azar y no se definió estrictamente. Lea más en la
excelente publicación del blog oficial .
Entre las extensiones que se integran con VisualEditor, puede seleccionar
Graph para editar gráficos,
Math para editar fórmulas matemáticas y
SyntaxHighlight para resaltar la sintaxis de fragmentos de código.
Wikieditor
WikiEditor es un simple editor de wikitexto. Algunas cosas difíciles son aún más convenientes para hacer a través del editor de wikitexto, en algunos lugares la edición visual todavía no es compatible. Sea como fuere, WikiEditor facilita el trabajo con Wikitext, y es
bastante sencillo personalizarlo .
Edición de conflictos
Cualquiera que haya usado Mediawiki en el pasado recuerda lo dolorosa que fue cada resolución de conflictos de edición.
TwoColConflict con beta habilitada por defecto simplifica enormemente la solución. En caso de conflicto, puede ver los lugares donde tiene lugar el conflicto y seleccionar la versión deseada del fragmento controvertido. Si ambas versiones no están completas, puede complementar una de ellas. Algo así se ve en los negocios:

Puede probarlo usted mismo
en la página de prueba .
Formas para agregar el mismo contenido
La
extensión PageForms le permite agregar contenido uniforme a su wiki mediante formularios. En mi práctica, utilicé formularios para agregar claves de registro, tablas de bases de datos y otras cosas típicas similares a la wiki.

Esta extensión revela su poder cuando se usa
Semantic Mediawiki o sus análogos. La ciencia semántica de los medios le permite agregar propiedades de página u objetos con sus propiedades a la página. Las propiedades se configuran así (por ejemplo, página de Alemania):
[[ ::]]
Estas propiedades y objetos se pueden obtener utilizando la
solicitud ask o mediante la api.
A partir de las propiedades obtenidas, puede derivar tablas, crear gráficos y
hacer muchas otras cosas interesantes . Por ejemplo, en mi caso, sobre la base de tablas agregadas a través de formularios, se crean los esquemas db más simples. Además, el esquema se puede construir no para todo el producto, sino para una categoría específica. Y en el diagrama, además de los obvios enlaces FK / PK, también se pueden reflejar enlaces implícitos que no se pueden ver con las herramientas de gráficos estándar.
Para las claves de registro, la información clave se extrae de las mismas propiedades para que pueda usarse para generar un archivo .reg con un valor dado.
Árbol de categorías
PageForms admite la capacidad de agregar un campo con un árbol de categorías, por lo que para agregar una página a las categorías que necesita, simplemente haga clic en las casillas de verificación necesarias.
Por otro lado, cuando ya tenemos artículos categorizados, se pueden mostrar en cualquier página en forma de árbol:

El árbol se carga dinámicamente, por lo que funciona para una gran cantidad de artículos y para categorías en bucle, si alguien los necesita de repente.
Autorización LDAP / AD
La extensión de
autenticación Ldap admite la autorización de dominio, la restricción de acceso para ciertos grupos y la asignación de grupos de usuarios de mediawiki a grupos ldap. Puede configurar múltiples dominios a la vez. Es bastante tedioso en términos de configuración, pero, afortunadamente,
hay muy buenas instrucciones en Internet .
Derechos de acceso granular
Aquí todo está mal. Si la tarea es restringir el acceso a usuarios no autorizados, entonces esto es simple. Si entre estos usuarios es necesario distinguir grupos separados con derechos de acceso especiales, entonces esto es difícil.
Hay muchas extensiones diferentes, pero no resuelven el problema fundamental: mediawiki no se creó como un CMS. Para admitir los derechos de acceso, deberá parchear el código Mediawiki, agregando manualmente
$title->userCan('read')
en todo lo que no se debe dar sin verificación de derechos. Lo mismo se aplica a todas las extensiones: para cada extensión que agregue, deberá agregar manualmente todas las comprobaciones necesarias.
Por mí mismo, resolví el problema con una extensión hecha a medida, basada en la idea de
PermissionACL y un paquete de parches para diferentes extensiones y el propio mediawiki. Afortunadamente, no necesitaba una ACL avanzada; había suficientes controles primitivos para varios grupos.
Para admitir lo mismo para las imágenes, deberá ajustar el acceso al archivo en
Img_auth.php . Y este último utiliza un transmisor de archivos de mediawiki, que no sabe cómo proporcionar
contenido parcial (en el momento de mediawiki 1.31), por lo que para admitir la reproducción de video tendrá que adjuntar otro transmisor de archivos.
Soporte de video
El soporte de video no está incluido en el paquete estándar, pero se resuelve trivialmente instalando la extensión
TimedMediaHandler . Reproductor de video normal, nada especial. Insertar video en una página es exactamente lo mismo que insertar una imagen.
Buscar
Una de las cosas que personalmente me molesta en Confluence es la búsqueda. La búsqueda estándar de Mediawiki es aún peor, pero afortunadamente hay extensiones de terceros. De las extensiones de búsqueda, las más populares son
CirrusSearch y
SphinxSearch . Nunca utilicé este último, pero llegué a conocer el primero con mucha fuerza, por cierto, también se usa en proyectos de la Fundación Wikimedia
CirrusSearch funciona sobre la base de
elasticsearch , para que la extensión funcione, también deberá instalar una interfaz intermedia: la extensión
Elastica .
CirrusSearch admite una
cantidad increíble
de parámetros y se está desarrollando de manera bastante activa. Por ejemplo, me agradó mucho que la búsqueda de CamelCase comenzara en la rama 1.32.
Otro punto que me gustó es la posibilidad de agregar un diccionario de sinónimos. El diccionario funciona bien con jerga corporativa interna bien establecida, abreviaturas, errores tipográficos típicos o varias transliteraciones. Pero primero se debe escribir el diccionario, que puede no ser la tarea más fácil. Si no agudiza el diccionario para una empresa específica, puede probar los diccionarios existentes en el espíritu de
WordNet , pero no el hecho de que le convengan personalmente.
La extensión no admite la adición de sinónimos en el nivel de
configuración de LocalSettings, pero esto no es difícil de resolver editando el código de extensión; consulte
AnalysisConfigBuilder.php e
instrucciones para configurar sinónimos para elasticsearch .
Si lo desea, puede agregar una línea de búsqueda a la página principal a través de la extensión
InputBox , después de lo cual puede
fijar el autocompletado de acuerdo con las instrucciones .

Por cierto,
AdvancedSearch ayudará a ordenar el aspecto de la página de búsqueda, con lo que no se verá como una víctima de un fan de casilla de verificación.
Analítica
Suena ridículo, por supuesto, pero el análisis es extremadamente útil incluso para la base de conocimiento interno que visitan cientos de personas por mes. Le permite comprender cómo los usuarios interactúan con la interfaz, qué están buscando, qué leen, qué usan. Si los planes incluyen un mayor desarrollo de la base de conocimiento, las estadísticas serán simplemente invaluables.
Para la intranet hay una extensión extremadamente digna de
Matomo (ex Piwik). La extensión correspondiente para la integración es
MatomoAnalytics .

Matomo recopila estadísticas sobre consultas de búsqueda, fuentes de tráfico, descargas, clics (puede ver la frecuencia de clics con superposición en la página) y muchas otras métricas. Las estadísticas se pueden recopilar tanto con referencia a usuarios específicos como anónimas, para no confundir a nadie.
Otros
Además de lo anterior, hay muchas extensiones que simplemente hacen la vida más fácil. Por ejemplo,
GuidedTour para enseñar a los principiantes los conceptos básicos del trabajo con interfaces,
ventanas emergentes para obtener una vista previa de los artículos al pasar el mouse,
MultimediaViewer para una visualización más cómoda de imágenes a tamaño completo y mucho, mucho más.
Cual es el resultado?
El conjunto de extensiones de caballeros enumerados cubre una parte importante de las necesidades para crear una base de conocimiento, pero no todas. Mediawiki no es adecuado como base de conocimiento unificada universal. Pero a todos los demás también les va mal como sistema universal: carpetas de puntos de vista, confluencia, perspectiva de la vieja escuela, que tardan media hora en buscar, etc. Mediawiki en su fondo se distingue por sus capacidades de personalización y excelente escalabilidad.
En contraste con todas estas ventajas, mediawiki requiere constantemente la funcionalidad de corte de archivos para las necesidades de una empresa en particular, por lo que su administrador debe estar mentalmente preparado para comprender el código php, js y lua. Pero si no da miedo y si acepta separar el trabajo con documentos de Office y trabajar con artículos wiki en diferentes plataformas, mediawiki como base de conocimiento puede ser una muy buena idea.