Участник:Andrey Kruglov/Всякая всячина по коду OpenCorpora

Материал из OpenCorpora
Перейти к навигации Перейти к поиску

Устройство примеров

Задание - хранится в таблице `morph_annot_samples` Имеет внешний ключ к пулу (`pool_id`) и к ещё какой-то таблице (`tf_id`)

Ответы размечающих хранятся в таблице `morph_annot_instances` (3-4 записи на задание) Кроме instance_id и указания на sample_id хранится два поля - user_id (чей ответ) и answer (что за ответ, номер нажатой кнопки)

Связи в словаре

Как минимум я знаю три:

  • миллион -> млн (FULL-CONTRACTED)
  • миллион -> миллионный (CARDINAL-ORDINAL)

Ещё есть

  • этот -> етот (NORM-ORPHOVAR) тж. см. полчаса -> получас (NORM-ORPHOVAR)

Посмотреть, где они хранятся и какие есть ещё.


Добавление текста в пустом рабочем окружении

См. инструкцию и делай аналогично:

1. Открываем тексты - редактор источников /books.php и добавляем нужную структуру книг.

Данные хранятся в базе в таблице books, предусмотрена иерархическая структура.

Обязательно должно быть два уровня иерархии!! (Далее на это неявно опираются другие страницы)

Уточнить термины: как называется верхний уровень иерархии (записи в books с parent_id =0), как второй уровень.

2. Открываем: Контроль качества - Координация заливки /sources.php и вносим url и заголовок.

Провязку добавлять существующую, новая привязка на чистой вики не работает (написать issue, разобраться)

3. Перейти по ссылке в колонке “Провязка”, кликнуть по "Добавить текст в эту книгу"

TokenizerAddingNewText.png

Здесь в чистой опенкорпоре замечен баг: зависает на поиске абзаца (issue)

Вот и всё, текст добавлен -- можно переходить к разбору морфологии и синтаксиса.

ЗЫ Хорошую вводную статью про токенизацию можно найти тут: http://opencorpora.org/doc/articles/2012_MIEM.pdf

Редактор граммем

Сразу как залогинились в пустое рабочее окружение -- нужно заполнить справочники проекта.

Первый из них -- редактор граммем: /dict.php?act=gram GrmEditor.png

Добавление суперпользователей

После регистраци первого пользователя нужно добавить ему права.

Судя по lib/lib_users.php (функции user_has_permission и is_admin) вполне достаточно проставить по вкусу едички в таблице user_permissions, больше ничего не нужно.

О работе со Smarty

Если вы как и я имеете общее представление о шаблонизаторах, но конкретно со Smarty не работали, то начнём с базового.

Я когда писал инструкцию по настройке виртуалки не стал включать в неё пункт про проверку работы Smarty -- должно и так всё заработать.

Вот этот пропущенный пункт.

Соберём небольшую тестовую страничку с минимальным шаблоном Smarty и убедимся, что всё работает нормально.

На smarty.net есть тривиальный пример, слегка переделаем его чтобы читался тот же конфиг, что и в OpenCorpora:

Сама страница - файл test_smarty.php в /var/www/html:

<?php

//define('SMARTY_DIR', '/var/www/html/vendor/smarty/smarty/distribution/libs/');
require_once(SMARTY_DIR . 'Smarty.class.php');

$smarty = new Smarty();

$config = parse_ini_file('config.ini', true);
$smarty->template_dir = $config['smarty']['template_dir'];
$smarty->compile_dir  = $config['smarty']['compile_dir'];
$smarty->config_dir   = $config['smarty']['config_dir'];
$smarty->cache_dir    = $config['smarty']['cache_dir'];

$smarty->assign('name', 'Katherine');

//** раскомментируйте следующую строку для отображения отладочной консоли
//$smarty->debugging = true;

$smarty->display('static/test_smarty.tpl');

?> 

И ещё понадобится сам шаблон страницы -- файл test_smarty.tpl в /var/www/html/templates/static:

{* Smarty *}

Привет, {$name}! Добро пожаловать в Smarty!

В принципе, заработать должно сразу. Если что-то не работает -- выше ссылка на пример, там всё крайне подробно расписано.