Por qué construir una base de conocimiento basada en mediawiki no es una mala idea



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.

 textbf‚ąóAplausossimpatizantes‚ąó


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.

Source: https://habr.com/ru/post/437568/


All Articles