Mediawiki популярная CMS для разработки сайтов в стиле wikipedia, позволяющая
организовать отлично структурированный справочный(обычно) сайт, которая не только позволяет легко получить необходимую информацию с помощью простой навигации, но и дает возможность пользователям сайта вносить правки в статьи.
Множество проектов использует эту CMS или схожую с ней.
Такими проектами являются:
Ряд проектов используют схожие CMS, например Справочный сайт ОС Ubuntu - http://help.ubuntu.ru/wiki/ (DokuWiki)
Приведенный далее пример проверки орфографии рассчитан на MediaWiki, но возможно подойдет и для DocuWiki (Ubuntu).
Как видно из приведенного перечня сайтов, данная CMS успешно применяется для различных сфер деятельности.
В тоже время на ряде сайтов присутствуют ошибки:
Перечисленные ошибки обнаружены 21-11-2013 и, соответственно, их можно найти в истории, если они будут исправлены. Я на это рассчитываю, так как обращусь к данным порталам с предложением проверки их wiki-проектов, что позволит улучшить ситуацию с орфографией на порталах и заодно проверить возможности моей программы. При разрешении публикации таких отчетов по wiki - выложу их в обновлениях к данному посту.
Кроме орфографических ошибок, проверяются ошибки оформления (пробел перед запятой/точкой/вопросом и пр.).
Для данных сайтов трудно автоматически проверить орфографию, так как текст страниц содержит специальную разметку, а также множество страниц подвержены частым изменениям, уследить за которыми и проверить не просто.
Наиболее правильное решение для данной CMS проверять не готовую html-страницу, а исходный текст статьи с wiki разметкой.
Получить данный текст можно перейдя по ссылке редактирования страниц.
Для автоматизации данного процесса необходимо было бы построить карту сайта wiki и скачать последовательно все тексты и далее проверять их.
В поисках более простого и эффективного решения обратился к механизму формирования страниц Wiki, который построен на формировании страниц на основе БД.
Описание команд создания архива meidawiki:
Создав дамп БД, обнаружил возможность проверки его на орфографию, но необходимо было бы воссоздавать реляционную структуру БД, чтобы получить информацию, какой текст какой странице соответствует - см. рисунки.
Фрагмент начала строк файла:
Фрагмент строки с найденной ошибкой:
Нашлось простое решение. MediWiki позволяет создавать дампы БД в виде XML. Более того, позволяет создавать дампы только по последней версии статей.
Необходимо выполнить следующую команду:
php5-libxml mysite.ru/www/w/maintenance/dumpBackup.php --current > backup/mysite_ru_xml_db.xml
Примечания:
Итак, получили текст схожий с оформлением DocBook, в котором явно указаны заголовки и тексты статей (см. рис.).
В программе "Локализатор исходного кода" можно специальными наборами регулярных выражений указать, что в файле к каким категориям (текст, контекст, регион, ремарки, пр.)
относится, что я и сделал.
Пример фрагмент файла настроек в программе локализации для mediaWiki:
textelement="REGION ^\s*\<title\>(.*)\<\/title\>\s*$ ^\s*\<title\> <\/title\>\s*$ "
textelement="REGION ^\s*\<[Tt][Ii][Tt][Ll][Ee]\>(.*)\<\/[Tt][Ii][Tt][Ll][Ee]\> ^\s*\<[Tt][Ii][Tt][Ll][Ee]\> \<\/[Tt][Ii][Tt][Ll][Ee]\>$ "
textelement="TEXT ^[^А-Яа-я]*[А-Яа-я].*$ ^() ()$"
textelement="IGNORE ^.*$ ^() ()$"
Описание:
Примечание: рег.выражения сделаны не через группы ( (?<name1>.)(?<name2>.) ) для удобства и простоты, особенно, если обратить внимание на более сложные конструкции в файле настроек.
Предыдущие фрагменты настроек привел для убедительности простоты парсинга файла. Для пользователя они не имеют значения.
Хотя продвинутый пользователь может их под себя поправить/расширить, так как в дальнейшем планирую выложить полное описание этого файла с описанием настроек.
В программе уже заложен механизм изменения настроек пользователем без коррекции основного файла настроек.
На данный момент программа работает только с текстом (добавление XML пока в планах) и вероятны ошибки на произвольно набранном тексте, но в данном случае текст формируется автоматически и ничего сложного в нем нет.
В качестве контекста для фраз указал строки, содержащие открывающий и закрывающий теги <title>, что дало возможность указывать для фрагментов с ошибками их отношение к конкретной статье.
В целом отчет совпадает с уже представленными ранее отчетами по OpenSuese, Ubuntu и пр.
Как видно из изображений, указаны ошибочные слова и название статьи, в которой они присутствуют (см. рис.).
Проверяются даже страницы, относящиеся к файлам статей: шаблоны, описание файлов и пр.
В отчете присутствует раздел, в котором для каждого ошибочного слова указаны вики-статьи, в которых оно присутствует (см.рис.).
Данный отчет является производным от ранее опубликованных отчетов и отличается только использованием разделов в качестве контекста.
Примечание:
Судя по цитате из Manual:Backing up a wiki/ru "В XML дамп входит содержимое wiki-страниц и всех их ревизий (информация о логинаx пользователей, журналы, метаданные изображений в xml дампе не хранятся)." в xml не содержится информация о паролях и пр., потому можно их передавать для исследования.
Подробней подобный отчет можно посмотреть в посте Результаты проверки орфографии исходного кода Ubuntu 13.04
Данный функционал работы с mediawiki будет доступен с версии 0.10.
организовать отлично структурированный справочный(обычно) сайт, которая не только позволяет легко получить необходимую информацию с помощью простой навигации, но и дает возможность пользователям сайта вносить правки в статьи.
Множество проектов использует эту CMS или схожую с ней.
Такими проектами являются:
- Справочный сайт ОС OpenSuse - http://ru.opensuse.org/ (MediaWiki 1.19.3)
- Популярный сайт игровой тематики sc2tv - http://sc2tv.ru/wiki (MediaWiki 1.19.2)
- Публичная неофициальная документация хостинга 1gb.ru - http://1gb.ru/wiki (MediaWiki)
- Школьная база знаний - http://wiki.nntc.nnov.ru (MediaWiki 1.19.2)
Ряд проектов используют схожие CMS, например Справочный сайт ОС Ubuntu - http://help.ubuntu.ru/wiki/ (DokuWiki)
Приведенный далее пример проверки орфографии рассчитан на MediaWiki, но возможно подойдет и для DocuWiki (Ubuntu).
Как видно из приведенного перечня сайтов, данная CMS успешно применяется для различных сфер деятельности.
В тоже время на ряде сайтов присутствуют ошибки:
- ru.opensuse.org/openSUSE:Общение - см. "новичек"
- help.ubuntu.ru/wiki/virtualbox - см. "диаллог". Слово "cистемы" начинается с латинской буквы, в "сd-rom" - русская "с", что делает невозможным нахождение таких слов поиском, что может быть серьезной проблемой поиска термина в wiki, если в нем будет такая опечатка.
- sc2tv.ru/wiki/index.php?title=Заглавная_страница - см. "комаду", "едиственным".
Перечисленные ошибки обнаружены 21-11-2013 и, соответственно, их можно найти в истории, если они будут исправлены. Я на это рассчитываю, так как обращусь к данным порталам с предложением проверки их wiki-проектов, что позволит улучшить ситуацию с орфографией на порталах и заодно проверить возможности моей программы. При разрешении публикации таких отчетов по wiki - выложу их в обновлениях к данному посту.
Кроме орфографических ошибок, проверяются ошибки оформления (пробел перед запятой/точкой/вопросом и пр.).
Для данных сайтов трудно автоматически проверить орфографию, так как текст страниц содержит специальную разметку, а также множество страниц подвержены частым изменениям, уследить за которыми и проверить не просто.
Наиболее правильное решение для данной CMS проверять не готовую html-страницу, а исходный текст статьи с wiki разметкой.
Получить данный текст можно перейдя по ссылке редактирования страниц.
Для автоматизации данного процесса необходимо было бы построить карту сайта wiki и скачать последовательно все тексты и далее проверять их.
В поисках более простого и эффективного решения обратился к механизму формирования страниц Wiki, который построен на формировании страниц на основе БД.
Описание команд создания архива meidawiki:
- Manual:Backing up a wiki/ru: http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki/ru
- Manual:dumpBackup.php (на английском, но подробно про параметры): http://www.mediawiki.org/wiki/Manual:DumpBackup.php
Создав дамп БД, обнаружил возможность проверки его на орфографию, но необходимо было бы воссоздавать реляционную структуру БД, чтобы получить информацию, какой текст какой странице соответствует - см. рисунки.
Фрагмент начала строк файла:
Фрагмент строки с найденной ошибкой:
Нашлось простое решение. MediWiki позволяет создавать дампы БД в виде XML. Более того, позволяет создавать дампы только по последней версии статей.
Необходимо выполнить следующую команду:
php5-libxml mysite.ru/www/w/maintenance/dumpBackup.php --current > backup/mysite_ru_xml_db.xml
Примечания:
- обратите внимание на --current - для получения только последних версий страниц, без истории.
- проверяемый сайт расположен на хостинге Zenon и имеет свои нюансы, поэтому вызов php, вероятно, надо скорректировать;
- название сайта изменено.
Итак, получили текст схожий с оформлением DocBook, в котором явно указаны заголовки и тексты статей (см. рис.).
В программе "Локализатор исходного кода" можно специальными наборами регулярных выражений указать, что в файле к каким категориям (текст, контекст, регион, ремарки, пр.)
относится, что я и сделал.
Пример фрагмент файла настроек в программе локализации для mediaWiki:
textelement="REGION ^\s*\<title\>(.*)\<\/title\>\s*$ ^\s*\<title\> <\/title\>\s*$ "
textelement="REGION ^\s*\<[Tt][Ii][Tt][Ll][Ee]\>(.*)\<\/[Tt][Ii][Tt][Ll][Ee]\> ^\s*\<[Tt][Ii][Tt][Ll][Ee]\> \<\/[Tt][Ii][Tt][Ll][Ee]\>$ "
textelement="TEXT ^[^А-Яа-я]*[А-Яа-я].*$ ^() ()$"
textelement="IGNORE ^.*$ ^() ()$"
Описание:
- textelement - указание параметра настроек текстового элемента в тексте;
- первый параметр - название элемента;
- второй параметр - регулярное выражение, описывающее элемент;
- третий параметр - рег.выражения, не относящееся к началу тексту;
- четвертый параметр - рег.выражения, не относящееся к концу текста.
Примечание: рег.выражения сделаны не через группы ( (?<name1>.)(?<name2>.) ) для удобства и простоты, особенно, если обратить внимание на более сложные конструкции в файле настроек.
Предыдущие фрагменты настроек привел для убедительности простоты парсинга файла. Для пользователя они не имеют значения.
Хотя продвинутый пользователь может их под себя поправить/расширить, так как в дальнейшем планирую выложить полное описание этого файла с описанием настроек.
В программе уже заложен механизм изменения настроек пользователем без коррекции основного файла настроек.
На данный момент программа работает только с текстом (добавление XML пока в планах) и вероятны ошибки на произвольно набранном тексте, но в данном случае текст формируется автоматически и ничего сложного в нем нет.
В качестве контекста для фраз указал строки, содержащие открывающий и закрывающий теги <title>, что дало возможность указывать для фрагментов с ошибками их отношение к конкретной статье.
В целом отчет совпадает с уже представленными ранее отчетами по OpenSuese, Ubuntu и пр.
Как видно из изображений, указаны ошибочные слова и название статьи, в которой они присутствуют (см. рис.).
Проверяются даже страницы, относящиеся к файлам статей: шаблоны, описание файлов и пр.
В отчете присутствует раздел, в котором для каждого ошибочного слова указаны вики-статьи, в которых оно присутствует (см.рис.).
Данный отчет является производным от ранее опубликованных отчетов и отличается только использованием разделов в качестве контекста.
Примечание:
Судя по цитате из Manual:Backing up a wiki/ru "В XML дамп входит содержимое wiki-страниц и всех их ревизий (информация о логинаx пользователей, журналы, метаданные изображений в xml дампе не хранятся)." в xml не содержится информация о паролях и пр., потому можно их передавать для исследования.
Данный функционал работы с mediawiki будет доступен с версии 0.10.
Комментариев нет:
Отправить комментарий