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

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


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


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


Планируется сделать достаточно много полей-метаданных (класс, сложность и т. д.) Они помогут нам при категоризации задач и последующем отборе. К сожалению, встроенные возможности MediaWiki по части обработки категорий достаточно слабы (например, нет инструмента пересечения категорий, невозможно построить список всех задач (с текстами) из данной категории и т. д.), но мы сможем впоследствии реализовать все, что нам нужно, с помощью внешних инструментов (либо написав или найдя необходимые extensions к MediaWiki). В настоящий момент, главное — это подготовить базовую инфраструктуру для сбора задач, вместе со всеми необходимыми метаданными в формате, пригодном для автоматической обработки.
Если в шаблоне {{tl|Новая задача}} заполнен параметр ''решение'', то создается страница [[Математический задачник/Задачи/NNNN/Решение]] и трансклудится в [[Математический задачник/Задачи/NNNN]] (заворачиваясь в шаблон-hider). (Этот пункт — под вопросом. Возможно, не стоит все усложнять, и достаточно заворачивания решений в hider и <nowiki><noinclude></nowiki>.)

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


== Обсуждение ==
== Обсуждение ==
Строка 17: Строка 15:
[[Участник:Ilya Voyager|Ilya Voyager]] 21:18, 28 января 2008 (UTC)
[[Участник:Ilya Voyager|Ilya Voyager]] 21:18, 28 января 2008 (UTC)


* Что касается нумерации задач, мне кажется, вариант с пространством имен наиболее интересен. [[Участник:Xtr|Xtr]] 08:11, 29 января 2008 (UTC)
*: Я сомневаюсь, что для нашего проекта будут заводить отдельное пространство имен -- хотя само наличие пространства "Задача" здесь осмысленно, нам придется добавлять какие-то префиксы, чтобы показать, что эта задача относится к данному проекту. Потому что в противном случае придут физики/химики/кто-угодно-еще и захотят сделать физический/химический/какой-угодно-еще задачник. Скорее всего, не по тем принципам, которые мы сейчас здесь придумаем. Поэтому я пока склоняюсь к алиасам вида '''МЗЗ/NNNN'''. [[Участник:Ilya Voyager|Ilya Voyager]] 10:03, 29 января 2008 (UTC)
*:: ОК, разумно. [[Участник:Xtr|Xtr]] 11:23, 29 января 2008 (UTC)
*::: Да? А мне так не кажется :) Я вот подумал — а зачем нам сознательно ограничиваться математикой, да еще и кружковой? Если мы сделаем некую инфраструктуру, которая будет сколь-нибудь удобна — почему бы не дать ей пользоваться и всем остальным? То есть я стал мыслить глобальнее, и теперь думаю переименовать этот проект в [[Викиучебник:Проект:Задачник]], и собирать задачник вообще — вне зависимости от области. (Со сквозной нумерацией, без префиксов.) [[Участник:Ilya Voyager|Ilya Voyager]] 11:50, 29 января 2008 (UTC)
* Вначале, пока задач будет сравнительно мало, для поиска вполне достаточно будет работы с категориями. Реализация посика внешними средствами -- это уже следующий этап работы. [[Участник:Xtr|Xtr]] 08:11, 29 января 2008 (UTC)
* Вначале, пока задач будет сравнительно мало, для поиска вполне достаточно будет работы с категориями. Реализация посика внешними средствами -- это уже следующий этап работы. [[Участник:Xtr|Xtr]] 08:11, 29 января 2008 (UTC)
*: Угу. [[Участник:Ilya Voyager|Ilya Voyager]] 10:03, 29 января 2008 (UTC)
*: Угу. [[Участник:Ilya Voyager|Ilya Voyager]] 10:03, 29 января 2008 (UTC)

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

Цели

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

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

Реализация

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

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

, который позволяет записать все данные задачи так, чтобы они не смешивались и допускали автоматическую обработку.

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

Обсуждение

Comments are welcome. Ilya Voyager 21:18, 28 января 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)[ответить]