Викиучебник:Проект:Задачник: различия между версиями

→‎Реализация: обновление
(→‎Реализация: обновление)
База данных довольно далека от концепции вики сама по себе. С другой стороны, движок MediaWiki достаточно гибок и имеет много полезным возможностей. Планируется следующая концепция:
 
Новая задача добавляется пользователем на страницу [[Задачник/Новые задачи]], оформляяи ееоформляется неким стандартизованным, но простым способом. Ежедневно специальный бот (его еще предстоит написать) раскидывает новые задачи с этой страницы таким образом, что каждая задача получает свой уникальный номер и попадает на отдельную страницу [[Задача:NNNN]]. (Пространство имен ''Задача'' еще не создано. Временно вместо него можно пользоваться подстраницами страницы [[Задачник]].) На странице [[Задача:NNNN]] происходит вызов шаблона {{Задача}}, которыйи позволяетпередача записатьему всевсех данныеданных задачио такзадаче таким образом, чтобы они не смешивались и допускали автоматическую обработку. (Это — аналог записи в реляционной базе данных.)
 
При просмотре страницы [[Задача:NNNN]] отображается вся доступная информация по задаче. (Решение может быть скрыто с помощью javascript-hider'а.) При включении (трансклуде) задачи в другую страницу (через <nowiki>{{Задача:NNNN}}</nowiki>) по умолчанию отображается только условие и ссылка на полную версию. (См. proof of concept на [[User:Ilya Voyager/Песочница]]).
 
Планируется сделать достаточно много полей-метаданных (класс, сложность и т. д.) Они помогут нам при категоризации задач и последующем отборе. К сожалению, встроенные возможности MediaWiki по части обработки категорий достаточно слабы (например, нет инструмента пересечения категорий, невозможно построить список всех задач (с текстами) из данной категории и т. д.), но мы сможем впоследствии реализовать все, что нам нужно, с помощью внешних инструментов (либо написав или найдя необходимые extensions к MediaWiki). В настоящий момент, главное — это подготовить базовую инфраструктуру для сбора задач, вместе со всеми необходимыми метаданными в формате, пригодном для автоматической обработки.