Вікіхакатон: боты і вялікія дадзеныя

Два тыдні назад удзельнічаў у вікіхакатоне ў Кіеве, дзе падымаўся цэлы шэраг пытанняў, якія свадзіліся да аднаго асноўнага. Як вы карыстоўваць сучасныя прылады, для паляпшэння эфектыўнасці працы з ведамі.

У гэтым допісе я сканцэнтруюся на апісанні сэрвісаў і прыладаў для стварэння ботаў, якія пры правільным карыстанні могуць істотна палепшыць якасць кантэнта вікі-хабаў, структураванасць (звязнасць) яго і таксама зменшыць працу невялікай вікі-супольнасці беларускай з-за аўтаматызацыі аднатыпных задач.

Магчымасці ботаў

Найбольш цікавы для мяне і блок быў прысвечаны працы з мовай праграмавання пайтан (python) y стварэнні вікі-ботаў. Што такое вікі боты? Гэта скрыпты, якія могуць запускацца з вашай або любой на ваш выбар машыны, каб рабіць некую працу на сэрверах вікі-праекта (напрыклад, Вікіпедыі).

Самай распаўсюджанай і абазнанай бібліятэкай ботаў на пайтане з’яўляецца пайвікібот. Сваім функцыяналам, яна пакрывае папулярныя задачы, якія могуць стаяць перад актыўнымі вікі рэдактарамі, напрыклад, устаўка (add_text.py) і замена тэкста (replace.py), катэгорый (category.py), праверка бітых крыніцаў (weblinkchecker.py), замена шалонаў (template.py) і шмат шмат іншага.

Па гэтай жа спасылцы вы даведаецеся, як пісаць боты з нуля, выкарыстоўваючы Пайвікібот бібліятэку. Паставіўшы пайтан і бібліятэку пайвікібот к сабе на комп, камандай

python add_text.py -file:"pages.txt" -text:"Прывет, свет!" -up

вы зможаце дадаць уверсе старонкі тэкст “Прывет, свет!” на ўсе старонкі пазначаныя ў файле pages.txt Такім чынам выкарыстанне ботаў, для выканання тыповых, паўтараючыхся задач, можа істотна сэканоміць сілы вікі-актывістаў.

Заўвага. Калі ў вас на машыне няма пайтана або вы не на сваёй машыне, тады можна вы карыстаць вэб-сэрвіс Джапайтэр лабараторыі вікімедыі.

Напрыклад, вы захацелі, выкарыстоўваць скрыпт аўтазамены, для пошука ўсіх мэйлаў у беларускай вікі. Вы можаце стварыць маску з так званых рэгулярных выразаў. Гэта маска дапаможа ў такім пошуку. Для тэсціравання свайго фільтра ёсць добры рэсурс. Як бачым выкарыстаннне replace.py можа быць не проста замена аднаго слова на іншае, гэта можа быць замена таго, што адпавядае маске, напісанай на рэгулярных выразах на патрэбнае вам.

Бот на пайтане, які можна выкарастаць для аўтазаліўкі артыкулаў населеных пунктаў, або артыкулаў з тыповай структурай. Глядзіце іншыя прыклады з хакатона.

Падсумуем пра боты

Ніжэй алгартым "Як пачаць вікібот-практыку":

  1. Пастаўце сабе кампілятар пайтана
  2. Залейце бібліятэку скрыптоў пайвікібот. Як зрабіць першыя крокі чытайце ў падручніку.
  3. Бот можна запускаць пад сваім уласным профілем у Вікіпедыі.
  4. Рэкамендую запускаць боты для тэста на старонках уласнага профіля, або у чарнавіках, або на тэставай Вікіпедыі, дзе выпадковыя вандалізмы вашых ботаў ніяне не паўздзейнічаюць на вашу рэпутацыю ў супольнасці.
  5. Калі вы ўжо патрэніраваліся і гатовы вырашаць рэальны практычныя задачы, калі ласка завітайце на старонку Задачы для ботаў.

Пры актыўнай працы бота, стандартны профіль, які вы маеце на вікі, можа быць недастаткова, асабліва, калі вашы боты апрацоўваюць вялікі аб’ёмы інфармацыі. Можна зарэгістраваць новы профіль з канчаткам на Bot. Напрыклад, мой бот мае мянушку MrZabejBot. І пасля пакінуць запыт на атрыманне статуса Бота. Калі вы атрымаецце гэты статус, у вас з’явіцца больш працэсарнага часу на серверы.

Магічныя словы

Для ставарэння больш дынамічнага кантэнту ў вікі ёсць мірыяды так званых “магічных словаў”. Гэтыя словы могуць адлюстроваць бягучую дату, час, паказваць  некаторыя элементы старонак, дапамагаць у адаптацыі перакладаў артыкулаў, запускаць адмыслова запісаныя скрыпты і модулі напісаныя ў Вікіпедыі. У сваіх чарнавіках я трохі пратэсціраваў самыя базавыя магчымасці магічных словаў.

Мой першы шаблон

Асобны блок быў прысвечаны напісанню шаблонаў. Наогул шаблоны - гэта неадрыўная частка вікі-праектаў. Яны ствараюць звязнасць розных звестак, фарматуюць або адмыслова адлюстроўваюць тэкст. Самы яскрывы прыклад вікі-шаблона - гэта блок з правага боку артыкулаў пра краіны свету, занакамітых людзей, або батанічныя аб’екты і інш.

Існуе шэраг мануалаў, як ствараць шаблоны, але вось на гэтай старонцы прадстаўлены базавы прыклад, як зрабіць свой першы шаблон.

Вы спытаеце навошта вам веды пра шаблоны, калі ўжо існуе набор гатовых? Па-першае, існуючы пералік шаблонаў, у беларускай Вікіпедыі далёка да неабходнага. Па-другое, шэраг існуючых шаблонаў няпоўныя або з багамі, таму веданне элементарных асноваў шаблонаў можа істотна палепшыць жыццё вікі-супальнасці і даць больш часу сканцэнтравацца на развіцці.

Вялікія дадзеныя ў Вікіпедыі

Цікавую інфармацыю можна атрымаць з дапамогай праекта Куары, якія размяшчаецца на сэрверы лабараторый Вікімедыі. Для гэтага канешне прыйдзецца ужо вывучыць саму мову запытаў у базы дадзеных - SQL, але як асвоіце ў вашых руках з’явіцца магутны інструмент па аналізу вялікіх дадзеных вікі-пераектаў. Зараз гэта мільёны і мільёны адзінак інфармацыі.

Для мяне гэта не самы гарачы праект, але пры візуалізацыях абавязкова звярнуся да яго, тым больш сэрвіс дазваляе выгружаць інфармацыю ў машыначытаемых фарматах. Украінскія калегі зрабілі вельмі просты падручнік з прыкладамі, а аўтар падручніка абяцае адказваць на пытанні чытачоў і дапамагаць ім складаць запыты па іх задачах. Карыстайцеся!

Для таго, хто не ўпічатліўся, проста клікніце на Examples з кампілятара мовы запытаў SPRQL, які таксама разглядаўся на хакатоне.

Вікі-звесткі

На другі дзень, пасля шаблонаў, мы плаўна перайшлі да вывучэння магчымасцяў праекта вікі-дадзеныя(звесткі). Гэты праект вельмі плотна інтэграваўся з вікіпедыяй. Яго сутнасць заключаецца ў тым, што інфармацыя, занесеная ў шаблоны адной моўнай версіі можа сінхранізавацца з інфармацыяй у шаблонах іншай моўнай версіі. Такім чынам, калі адбаваецца дадаванне інфармацыі ў адзін шаблон, аўтаматычна пашыраецца змест гэтага шаблона ў іншых моўных версіях.

Гэта яшчэ не усё. Вікі дадзеныя захоўваюцца ў адмысловай базе, што дае магчымасць выгрыбаць іх для розных праектаў і статыстык. Існуе шэраг праектаў, каб развіваць і пашыраць саму базу вікідадзеных. Для гэтай мэты існуе вікідата-гульня  або можа быць Пэтскан, праект які мае функцыянал массавага пераводу ведаў у Вікіпедыі ў вікі звесткі.

Напрыклад, вы маеце выбітных людзей Магілёва, якія занесены ў катэгорыю “Нарадзіліся ў Магілёве”, але на ўласных шаблонах адсутнічае месца нараджэння гэтых людзей, Пэтскан, дае магчымасць дадаць месца нараджэння Магілёў для ўсіх артыкулаў людзей якія нарадзіліся ў Магілёве. Практычны сэнс, гэтай аперацыі ў тым, што іншым моўным радзелам будзе прасцей атрымліваць інфармацыю на іх мове аб беларускіх выбітных людзях, а не шукаць месца нараджэння ў тэксце.

Развіваем шаблоны. Луа і функцыі парсінга

Таксама ў развіццё тэмы шаблонаў, мы крануліся рознай логікі, якую дае рухавік медыявікі і яго функцыі парсінга. Калі распавядалі пра гэты функцыянал, я ўжо быў выжаты інтэлектуальна. Але пакідаю тут спасылку на старонку з усім тым функцыяналам, каб вярнуцца, калі ўдарыць навальніца.  

Таксама варта адзначыць, што істотным штуршком у развіцці, як шаблонаў, так вікі звестак, з’яўляецца мова праграмавання луа (Lua), якая на сёння з дапамогай Скрыбунта інтэгравана ў сам рухавік медыя вікі (у тым ліку ў беларускую Вікіпедыю - глядзіце спіс пашырэнняў) - што дае большыя магчымасці ў працы з шаблонамі, чым класічнае выкарыстанне шматлікіх дужак {{{}}}. Вось, напрыклад, мой першы скрыпт на Луа, які вызываецца простым допісам {{#invoke:TextMetaModule | printSome}} На любой старонцы. У любым разе вы можаце самастойна пачаць вывучэнне гэтай скрыптавай мовы.

Зноў боты

Напрыканцы паста падзялюся спасылкай на лабараторыю прыладаў (Wikimedia Tool Labs), дзе змяшчаецца падборка ботаў і вэбпрылад. Некаторыя маюць графічныя інтэрфейсы, што можна палепшыць даступнаць, але некаторыя ляжаць на гібхабе, таму вам спатрэбяцца базавыя веды, каб іх запусіць. Тут жа гэты спіс спрабуе прыняць больш чалавекалюбівы выгляд, з больш-менш зручным пошукам. Дадзены рэсурс рэкамендуецца асабліва тым, хто не мае тэхнічных ведаў. Вось, напрыклад, скрып паказвае візуалізацыю статыстыкі беларускай Вікіпедыі на дыяграмах і табліцах.

На гэтым мой перапоўнены шматлікі спасылкамі агляд Вікіхакатона ў Кіеве заканчваецца. Буду рады папрацаваць з кім-небудзь па вышэй апісаных тэмах.

ЗЫ
Пасля хатона я быў запрошаны на Грамадскае радыё, дзе мы з іншымі вікіпедыстамі паразважалі ўжо не на тэхнічныя тэмы. Вось тут захаваўся запіс, а таксама яго тэкставая расшыфроўка.