Pourquoi construire une base de connaissances basée sur Mediawiki n'est pas une mauvaise idée



Récemment, Confluence et sharepoint ont presque complètement régné sur le marché de la base de connaissances. Les systèmes sont excellents, je ne discute pas, mais personnellement, je n'ai pas assez de flexibilité et je n'ai pas grandi en quelque sorte ensemble: le wiki sharepoint est resté quelque part au niveau de 2005 (je ne parle pas de travailler avec des documents de bureau, c'est tout le bourdonnement), et Confluence, en raison de ses caractéristiques, avec l'augmentation du nombre d'articles, inexorablement transformé en un dépotoir dans lequel il est impossible de trouver quoi que ce soit nécessaire ( mais peut-être que le problème était en moi ).

Sans diminuer les mérites de ces systèmes, je voudrais parler des opportunités qu'offre Mediawiki comme base de connaissances d'entreprise. Bien sûr, mediawiki ne convient pas à tout le monde - il n'a pas d'intégration à la mode avec jira / tfs / etc, le transfert de documents avec des images à partir du package Microsoft Office est beaucoup d'inconvénients, et il est lui-même écrit en PHP, qui a récemment dissuadé certains spécialistes informatiques . Néanmoins, la plateforme est plus vivante que toutes les plates-formes vivantes et beaucoup de gens travaillent à son développement, tant que la famille de projets de la Fondation Wikimedia est basée sur elle.

Le wiki lui-même est plutôt avare de possibilités, mais de nombreuses extensions ont été écrites pour cela. La plupart des fonctionnalités intéressantes se trouvent dans les extensions, donc une bonne partie de l'article en parlera. Et oui, je ne peux que noter qu'il existe une version d'entreprise spéciale de Mediawiki - BlueSpice , que je n'ai pas utilisée, et donc je ne peux pas juger de son adéquation.

Pourquoi vous êtes-vous embarqué et qui êtes-vous de toute façon
Salut Je m'appelle Nikolai, je suis ingénieur QA.

 textbfApplaudissementssympathiques


L'AQ comprend non seulement / pas tant les tests que l'assurance qualité au sens large. Et parmi d'autres significations de ce sens le plus large, une chose telle que la gestion des connaissances a été cachée. Il y a beaucoup d'articles et de livres abstraits sur ce sujet qui parlent des principes de la gestion des connaissances, mais étonnamment, il y a peu de recommandations concrètes et d'idées pratiquement applicables, du moins en quelque sorte fraîches. Cela me fait penser que tout le monde utilise ce que les entreprises célèbres donnent à tout le monde et se réjouissent, ou n'utilise rien et souffre, ou a vu son propre vélo secret, ce qui est gênant de parler dans une entreprise décente. Je suis gêné aussi, mais je vais vous le dire.

Tout d'abord, sur les puces de mediaiwki lui-même


Avant de parler des extensions, il convient de mentionner les fonctionnalités du mediawiki lui-même en général. Si vous avez mille modifications sur Wikipédia sur votre compte, il est peu probable que vous appreniez quelque chose de nouveau dans cette partie, vous pouvez l'ignorer en toute sécurité.

Le premier et l'un des goodies les plus tangibles - catégories . Les pages peuvent être ajoutées aux catégories, les catégories elles-mêmes peuvent être ajoutées aux catégories. Contrairement à la structure du fichier (oubliez les liens symboliques), une page / catégorie peut être dans plusieurs catégories à la fois. L'utilisation de catégories entrave la croissance du chaos avec le nombre croissant d'articles. Surtout si vous parcourez périodiquement des listes d'articles non catégorisés et de catégories non catégorisées

Espaces de noms . L'idéologie du wiki dit que tout est une page (même une catégorie ou une image). Afin de séparer les pages de différents types, l'idée d'espaces de noms a été ajoutée. Si vous le souhaitez, vous pouvez ajouter vos propres espaces de noms pour séparer les connaissances des différents types (par exemple, des espaces de noms séparés pour les informations sur les produits, les utilitaires, les guides, les descriptions des processus, d'autres informations sur les services).

Le wiki prend également en charge des modèles - des pages wiki qui peuvent ensuite être incluses dans d'autres pages. Les modèles prennent en charge l'utilisation des paramètres, ce qui les transforme en quelque chose de plus que de simples insertions de texte: si vous le souhaitez, vous pouvez écrire un script simple dans le langage du modèle. Soit dit en passant, ils disent que le langage du modèle peut être complet par Turing .

En plus des modèles, l'extension Scribunto permet l'utilisation de modules lua dans un wiki. Les modules ainsi que les modèles vous permettent d'implémenter de nombreuses choses sans même avoir à écrire vos propres extensions.

Par exemple, les tables de navigation sont construites sur la base de ce duo. La table de navigation est, par exemple, cette chose, qui peut généralement être vue au bas de la page:


Bien qu'ils ne soient pas des fonctionnalités standard, ils se sont imposés comme un moyen pratique de navigation et de restauration de l'ordre et sont maintenant utilisés presque partout.

Je ne peux que mentionner les fichiers Mediawiki: Common.css et Mediawiki: Common.js qui vous permettent d'ajouter une petite personnalisation au wiki - il est préférable d'utiliser des extensions pour de grandes choses.

Éditeurs


L'éditeur est l'une des parties les plus importantes d'un wiki. Il est extrêmement difficile d'implémenter un wiki s'il n'a pas d'éditeur visuel, car seule une personne très initiatrice acceptera d'apprendre le balisage wiki.

Editeur visuel


Une extension relativement récente - VisualEditor résout le problème de l'édition visuelle des articles. Il a ses propres jambages, mais pour la plupart des tâches, il en a assez. Parmi les problèmes les plus visibles - il n'y a pas l'insertion d'image la plus pratique.

L'apparition de l'éditeur visuel est étroitement liée à l'avènement de Parsoid , un service de conversion entre la syntaxe Mediawiki et le HTML. Cette tâche s'est avérée extrêmement non triviale en raison du fait que la syntaxe mediawiki s'est développée de manière aléatoire et n'a pas été strictement définie. En savoir plus dans l' excellent article du blog officiel .

Parmi les extensions qui s'intègrent à VisualEditor, vous pouvez sélectionner Graphique pour éditer des graphiques, Math pour éditer des formules mathématiques et SyntaxHighlight pour mettre en évidence la syntaxe des fragments de code.

Wikieditor


WikiEditor est un simple éditeur wikitext. Certaines choses délicates sont encore plus pratiques à faire via l'éditeur wikitext, à certains endroits, l'édition visuelle n'est toujours pas prise en charge. Quoi qu'il en soit, WikiEditor facilite le travail avec Wikitext, et il est assez simple de le personnaliser .

Modification des conflits


Quiconque a utilisé Mediawiki dans le passé se souvient de la difficulté de chaque résolution de conflits d'édition.

TwoColConflict avec bêta activé par défaut simplifie considérablement la solution. En cas de conflit, vous pouvez regarder les endroits où le conflit a lieu et sélectionner la version souhaitée du fragment controversé. Si les deux versions ne sont pas complètes, vous pouvez compléter l'une d'entre elles. Quelque chose comme ça ressemble aux affaires:



Vous pouvez l'essayer vous-même sur la page de test .

Formulaires pour ajouter le même contenu


L' extension PageForms vous permet d'ajouter du contenu uniforme à votre wiki à l'aide de formulaires. Dans ma pratique, j'ai utilisé des formulaires pour ajouter des clés de registre, des tables de base de données et d'autres choses typiques similaires au wiki.



Cette extension révèle sa puissance lors de l'utilisation de Semantic Mediawiki ou de ses analogues. La science des médias sémantiques vous permet d'ajouter des propriétés de page ou des objets avec vos propriétés à la page. Les propriétés sont définies comme ceci (par exemple, page Allemagne):

[[ ::]] 

Ces propriétés et objets peuvent ensuite être obtenus à l'aide de la demande de demande ou via l'API.

À partir des propriétés obtenues, vous pouvez dériver des tableaux, créer des graphiques et faire beaucoup d'autres choses intéressantes . Par exemple, dans mon cas, sur la base de tables ajoutées via des formulaires, les schémas db les plus simples sont construits. De plus, le schéma peut être construit non pas pour l'ensemble du produit, mais pour une catégorie spécifique. Et dans le diagramme, en plus des liens FK / PK évidents, des liens implicites peuvent également être reflétés qui ne peuvent pas être vus avec les outils de cartographie standard.

Pour les clés de registre, les informations de clé sont extraites des mêmes propriétés afin de pouvoir être utilisées pour générer un fichier .reg avec une valeur donnée.

Arbre de catégorie


PageForms prend en charge la possibilité d'ajouter un champ avec une arborescence de catégories, donc pour ajouter une page aux catégories dont vous avez besoin, cliquez simplement sur les cases à cocher nécessaires.

En revanche, lorsque nous avons déjà des articles classés, ils peuvent être affichés sur n'importe quelle page sous la forme d'un arbre:



L'arbre est chargé dynamiquement, il fonctionne donc pour un grand nombre d'articles et pour les catégories en boucle, si quelqu'un en a soudainement besoin.

Autorisation LDAP / AD


L'extension Ldap Authentication prend en charge l'autorisation de domaine, la restriction d'accès pour certains groupes et le mappage des groupes d'utilisateurs mediawiki aux groupes ldap. Vous pouvez configurer plusieurs domaines à la fois. C'est assez fastidieux en termes de paramètres, mais, heureusement, il y a de très bonnes instructions sur Internet .

Droits d'accès granulaires


Ici, tout va mal. Si la tâche consiste à restreindre l'accès aux utilisateurs non autorisés, alors c'est simple. Si parmi ces utilisateurs il est nécessaire de distinguer des groupes séparés avec des droits d'accès spéciaux, alors c'est difficile.

Il existe de nombreuses extensions différentes, mais elles ne résolvent pas le problème fondamental: mediawiki n'a pas été créé en tant que CMS. Pour prendre en charge les droits d'accès, vous devrez patcher le code Mediawiki, en ajoutant manuellement

 $title->userCan('read') 

dans tout ce qui ne devrait pas être donné sans vérification des droits. La même chose s'applique à toutes les extensions: pour chaque extension que vous ajoutez, vous devrez ajouter manuellement toutes les vérifications nécessaires.

Pour ma part, j'ai résolu le problème avec une extension self-made, construite sur l'idée de PermissionACL et un pack de correctifs pour différentes extensions et le mediawiki lui-même. Heureusement, je n'avais pas besoin d'une liste de contrôle d'accès avancée; il y avait suffisamment de contrôles primitifs pour plusieurs groupes.

Pour prendre en charge la même chose pour les images, vous devrez encapsuler l' accès au fichier dans Img_auth.php . Et ce dernier utilise un streamer de fichiers de mediawiki, qui ne sait pas donner un contenu partiel (au moment de mediawiki 1.31), donc pour prendre en charge la lecture vidéo, vous devrez attacher un autre streamer de fichiers.

Support vidéo


Le support vidéo n'est pas inclus dans le package standard, mais est résolu de manière triviale en installant l'extension TimedMediaHandler . Lecteur vidéo normal, rien de spécial. L'insertion de vidéo sur une page est exactement la même chose que l'insertion d'une image.

Chercher


L'une des choses qui me dérange personnellement dans Confluence est la recherche. La recherche standard de Mediawiki est encore pire, mais heureusement, il existe des extensions tierces. Parmi les extensions de recherche, les plus populaires sont CirrusSearch et SphinxSearch . Je n'ai jamais utilisé ce dernier, mais j'ai appris à bien connaître le premier, d'ailleurs, il est également utilisé dans les projets de fonds Wikimedia

CirrusSearch fonctionne sur la base d' elasticsearch , pour que l'extension fonctionne, vous devrez également installer une interface intermédiaire - l'extension Elastica .

CirrusSearch prend en charge un nombre insensé de paramètres et se développe assez activement. Par exemple, j'étais très heureux que la recherche CamelCase ait commencé dans la branche 1.32.

Un autre point que j'ai aimé est la possibilité d'ajouter un dictionnaire de synonymes. Le dictionnaire fonctionne bien avec un jargon interne bien établi, des abréviations, des fautes de frappe typiques ou diverses translittérations. Mais le dictionnaire doit d'abord être écrit, ce qui n'est peut-être pas la tâche la plus simple. Si vous n'affinez pas le dictionnaire pour une entreprise spécifique, vous pouvez essayer les dictionnaires existants dans l'esprit de WordNet , mais pas le fait qu'ils vous conviendront personnellement.

L'extension ne prend pas en charge l'ajout de synonymes au niveau de la configuration LocalSettings, mais cela n'est pas difficile à résoudre en modifiant le code d'extension - voir AnalysisConfigBuilder.php et les instructions pour configurer des synonymes pour elasticsearch .

Si vous le souhaitez, vous pouvez ajouter une ligne de recherche à la page principale via l'extension InputBox , après quoi vous pouvez y fixer l'auto-complétion selon les instructions .



Soit dit en passant, AdvancedSearch aidera à ranger l'apparence de la page de recherche, avec elle, elle ne ressemblera pas à une victime d'un fan de case à cocher.

Analytique


Cela semble ridicule, bien sûr, mais l'analyse est extrêmement utile même pour la base de connaissances interne qu'une centaine de personnes visitent par mois. Il vous permet de comprendre comment les utilisateurs interagissent avec l'interface, ce qu'ils recherchent, ce qu'ils lisent, ce qu'ils utilisent. Si les plans prévoient le développement de la base de connaissances, les statistiques seront tout simplement inestimables.

Pour l'intranet, il existe une extension extrêmement digne de Matomo (ex Piwik). L'extension correspondante pour l'intégration est MatomoAnalytics .



Matomo collecte des statistiques sur les requêtes de recherche, les sources de trafic, les téléchargements, les clics (vous pouvez voir la fréquence des clics avec superposition sur la page elle-même) et de nombreuses autres mesures. Les statistiques peuvent être collectées à la fois en référence à des utilisateurs spécifiques et anonymes, afin de ne dérouter personne.

Autre


En plus de ce qui précède, il existe de nombreuses extensions qui simplifient simplement la vie. Par exemple, GuidedTour pour enseigner aux débutants les bases du travail avec les interfaces, Popups pour prévisualiser les articles en survol, MultimediaViewer pour une visualisation plus confortable des images en taille réelle et bien plus encore.

Quel est le résultat?


L'ensemble d'extensions du gentleman répertorié couvre une partie importante des besoins de création d'une base de connaissances, mais pas tous. Mediawiki ne convient pas comme base de connaissances unifiée universelle. Mais tout le monde fait aussi mal en tant que système universel - sharepoint, confluence, dossiers old-school Outlook, qui prennent une demi-heure à rechercher, etc. Mediawiki sur leur arrière-plan se distingue par ses capacités de personnalisation et son excellente évolutivité.

Contrairement à tous ces avantages, mediawiki nécessite constamment une fonctionnalité de découpe de fichier pour les besoins d'une entreprise particulière, donc son administrateur doit être mentalement préparé à comprendre le code php, js et lua. Mais si cela ne fait pas peur et si vous acceptez de séparer le travail avec les documents bureautiques et de travailler avec des articles wiki sur différentes plates-formes, mediawiki en tant que base de connaissances peut être une assez bonne idée.

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


All Articles