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

Материал из Викиучебника — открытых книг для открытого мира
→‎Реализация: нельзя, редиректы не раскрываются при обращении к подстраницам
(нет различий)

Версия от 20:16, 29 января 2008

Цели

У проекта несколько целей. Во-первых — создание свободной базы по математическим задачам — в первую очередь, олимпиадного (или кружкового) типа. В некотором смысле, мы делаем свободный аналог проектов типа http://problems.ru/.

Однако, это не все. Подобная база, безусловно, имеет свою ценность, но вики-среда предоставляет нам много дополнительных возможностей по ее использованию. Например, можно создавать тематические страницы, группировать задачи по тем или иным (нетривиальным) критериям, писать специальные задачники для разных целей и т. д.

Реализация

База данных довольно далека от концепции вики сама по себе. С другой стороны, движок MediaWiki достаточно гибок и имеет много полезным возможностей. Планируется следующая концепция:

Новая задача добавляется пользователем на страницу Математический задачник/Новые задачи с помощью шаблона {{Новая задача}}. Ежедневно специальный бот (его еще предстоит написать) раскидывает новые задачи с этой страницы по подстраницам Математический задачник таким образом, что каждая задача получает свой номер и попадает на отдельную страницу Математический задачник/Задачи/NNNN. (Вариант: Математический задачник/Задача NNNN. Плюс: проще воспринимается название. Минус: в первом случае можно будет создать редирект МЗЗ → Математический задачник/Задачи, и трансклудить и ссылаться на задачи как МЗЗ/NNNN. Еще один вариант: создать пространство имен Задача:)

Если в шаблоне {{Новая задача}} заполнен параметр решение, то создается страница Математический задачник/Задачи/NNNN/Решение и трансклудится в Математический задачник/Задачи/NNNN (заворачиваясь в шаблон-hider). (Этот пункт — под вопросом. Возможно, не стоит все усложнять, и достаточно заворачивания решений в hider и <noinclude>.)

В шаблоне {{Новая задача}} планируется сделать достаточно много полей-метаданных (класс, сложность и т. д.) Они помогут нам при категоризации задач и последующем отборе. К сожалению, встроенные возможности MediaWiki по части обработки категорий достаточно слабы (например, нет инструмента пересечения категорий, невозможно построить список всех задач (с текстами) из данной категории и т. д.), но мы сможем впоследствии реализовать все, что нам нужно, с помощью внешних инструментов (либо написав или найдя необходимые extensions к MediaWiki). В настоящий момент, главное — это подготовить базовую инфраструктуру для сбора задач, вместе со всеми необходимыми метаданными в machine-readable формате.

Обсуждение

Comments are welcome. Ilya Voyager 21:18, 28 января 2008 (UTC)[ответить]

  • Что касается нумерации задач, мне кажется, вариант с пространством имен наиболее интересен. Xtr 08:11, 29 января 2008 (UTC)[ответить]
    Я сомневаюсь, что для нашего проекта будут заводить отдельное пространство имен -- хотя само наличие пространства "Задача" здесь осмысленно, нам придется добавлять какие-то префиксы, чтобы показать, что эта задача относится к данному проекту. Потому что в противном случае придут физики/химики/кто-угодно-еще и захотят сделать физический/химический/какой-угодно-еще задачник. Скорее всего, не по тем принципам, которые мы сейчас здесь придумаем. Поэтому я пока склоняюсь к алиасам вида МЗЗ/NNNN. Ilya Voyager 10:03, 29 января 2008 (UTC)[ответить]
    ОК, разумно. Xtr 11:23, 29 января 2008 (UTC)[ответить]
    Да? А мне так не кажется :) Я вот подумал — а зачем нам сознательно ограничиваться математикой, да еще и кружковой? Если мы сделаем некую инфраструктуру, которая будет сколь-нибудь удобна — почему бы не дать ей пользоваться и всем остальным? То есть я стал мыслить глобальнее, и теперь думаю переименовать этот проект в Викиучебник:Проект:Задачник, и собирать задачник вообще — вне зависимости от области. (Со сквозной нумерацией, без префиксов.) Ilya Voyager 11:50, 29 января 2008 (UTC)[ответить]
  • Вначале, пока задач будет сравнительно мало, для поиска вполне достаточно будет работы с категориями. Реализация посика внешними средствами -- это уже следующий этап работы. Xtr 08:11, 29 января 2008 (UTC)[ответить]
    Угу. Ilya Voyager 10:03, 29 января 2008 (UTC)[ответить]
  • Не совсем понятно, как будут обрабатывться задачи-"синонимы" (гномики вместо рыбок и т.п.), а также разные решения одной и той же задачи. Xtr 08:11, 29 января 2008 (UTC)[ответить]
    Разные решения одной задачи можно просто вписывать в графу "решения" как подразделы, с этим проблем нет. В принципе, так же можно поступать и с разными решениями -- просто завести подраздел "альтернативные формулировки условия", завернув его в noinclude. (Было бы хорошо, если бы можно было передавать трансклудам параметры... Чтобы, скажем, выбрать одно из альтернативных условий... Но я не уверен, что движок это позволяет -- надо поэкспериментировать.) Если их будет слишком много, можно а) завернуть в hider, б) вынести на подстраницу и дать ссылку. Можно сказать, что с этим проблем нет. Ilya Voyager 10:03, 29 января 2008 (UTC)[ответить]
    Вопрос не совсем в этом. Представь ситуацию: были созданы две разные страницы с задачами-синонимами. Кто-то из участников это заметил и хочет их объединить. Как это будет реализовано? Хотим ли мы как-то автоматизировать этот процесс? (Наверное, очевидный ответ: пока нет. Но все же...) Xtr 11:23, 29 января 2008 (UTC)[ответить]
    Нет, автоматизировать (пока) не хотим. Ctrl+C/Ctrl+V — не самая сложная операция :) Вариант: просто поставить шаблон «эта задача является аналогом задачи номер такой-то». И пусть бот отслеживает такие шаблоны и ставит шаблоны в обратную сторону автоматически. Ilya Voyager 11:53, 29 января 2008 (UTC)[ответить]