Внимание! Шаблон находится в разработке и до снятия этого статуса не должен использоваться на страницах вики.


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

Цель

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

Исследование текущего состояния системы

  • Существует этический вопрос, стоит ли отображать на страницах про людей их настоящие имена. Некоторые люди изъявляли явное желание, чтобы их настоящие имена не фигурировали на страницах, даже если они являются общеизвестной информацией. На IFВики принято правило, что в таких случаях описание следует за явно выраженным желанием описываемой персоны. В настоящий момент такие явно выраженные желания персон фиксируются в свободной форме на странице обсуждения. Например, см. страницу Saint и её обсуждение. Это желание персоны может быть формализовано в виде параметра шаблона, который будет управлять отображением настоящего имени в карточке на странице, а также в целом документировать желание в коде той же страницы.
  • Имеется формируемая вручную страница "Псевдонимы". Её данные в виде пар сопоставления псевдонима и реального имени могут быть полностью перенесены в параметр шаблона, а сама страница может быть заменена на автоматически генерируемую таблицу.
  • На страницах о персонах принято вручную указывать известные псевдонимы. Эти данные могут быть полностью перенесены в параметр шаблона, где известные псевдонимы будут указываться строгим перечнем и обрабатываться для добавления семантики и отображения в едином формате.
  • На страницах о персонах принято вручную добавлять скрытую семантическую ссылку с данными об их дате рождения. Эти данные могут быть полностью перенесены в параметр шаблона, где будут обрабатываться и отображаться в едином формате. Эти данные также могут быть расширены датой смерти и автоматически рассчитываемым количеством полных лет, если для таких расчётов достаточно данных.
  • Нет строгих правил по написанию нерусскоязычных имён. Частью они пишутся на их родном языке, частью представлены в русскоязычной адаптации. Шаблон должен предоставить механизмы для описания всей этой информации: страница именуется по русскоязычному варианту имени, но шаблон предоставляет возможность указать оригинальное написание иностранного имени, которое отобразит отдельным элементом карточки.
  • Страницы о персонах требуют ручного добавления в категорию "Персоналии" или в одну из дочерних категорий. Добавление в категорию может быть полностью автоматизировано шаблоном.
  • Шаблоны "Игры автора" и "ППроекты и разработки" при добавлении на страницу автоматически проставляют категорию "Персоналии". Это потребуется изменить, так как при внедрении новой системы описания субъектов автором игры или разработчиком проекта может быть не только персона. Фактически шаблоном, ответственным за отнесение страницы к категории описания того или иного субъекта должен стать именно шаблон с карточкой описания субъекта.
  • В настоящий момент таксономия предполагает корневую категорию "Персоналии", внутри которой находятся страницы про субъектов-людей, а также дочерние категории "Игровые персонажи", "Иностранные персоналии" и "Компании". Схема явно потребует переработки, например:
    • Категорию "Игровые персонажи" переместить в категорию "Игры".
    • Корневой категорией сделать "Субъекты" или с более понятным названием "Люди и организации". Соответствующим образом надо будет поменять ссылку на главной странице.
    • Внутри корневой категории сделать дочерние, по которым шаблон и должен автоматически распределять. В частности, это могут быть категории "Люди", "Организации" и "Команды".
    • Категория "Иностранные персоналии" должна быть упразднена", так как в принципе представляется неинформативной: де-факто к иностранным относят авторов, которые самостоятельно не писали игры на русском языке, а вот на русском языке писали авторы сразу из нескольких стран, поэтому предполагающаяся антитеза "отечественные" к ним не очень подходит. Но и формирование категорий "русскоязычные" и "не русскоязычные" авторы также представляется спорным решением из-за существования релизов на разных языках, где перевод имеет непонятную долю авторства в команде разработчиков.

Предварительное проектирование

Предполагается, что шаблон глобально должен быть способен описывать субъектов трёх типов:

  • Человек - персоналия, имеющая признаки отдельного реально существующего человека. Например, конкретное физическое лицо автор или переводчик.
  • Организация - некое юридическое лицо или институция. Это может быть компания, разрабатывавшая или издававшая игры, или какое-то неформальное объединение людей, но имеющее минимально формализованную организационную структуру, например, "Гильдия авторов книг-игр" или "Братство РИЛ".
  • Команда - неформальное и ситуативное объединение нескольких людей (или организаций) под определённым названием. Например, игра "Инви непобедимый" написана не автором, а командой GameC, а игра "Резня в Лапландии не удалась" - командой Неизвестное трио.

Для учёта этих видов субъектов может быть введён параметр шаблона "тип", в зависимости от которого будет адаптироваться внешний вид генерируемой карточки и алгоритмы обработки остальных параметров. Однако не исключено, что в итоге предпочтительной реализацией окажется создание нескольких отдельных шаблонов. Для этого необходимо проанализировать предполагаемые общие и специфические поля карточек каждого вида и принять итоговое архитектурное решение. Если будет решено делать отдельные шаблоны, то для некоторых сложных алгоритмов, типа получения списка ролей субъекта, есть смысл подготовить также отдельные шаблоны для переиспользования общей реализации.

Универсальные параметры шаблона

  • Род. Параметр, где надо будет указать род описываемого субъекта, чтобы на его основе подстраивать названия полей карточки, таких как "Родился 1 января 1970", "Известен как автор, переводчик и разработчик" и др. Правда некоторые названия надо будет подстраивать не только в зависимости от рода, но и в зависимости от типа субъекта, например, для людей "Родился 1 января 1970", а для организаций "Создан 1 января 1970".
  • Дата начала существования. Семантической свойство типа дата, обозначающее момент создания субъекта. Хотя можно обойтись универсальным алгоритмом обработки значений, но в карточке для разных видов субъектов потребуется отображение разных названий: "Дата рождения" для людей и "Дата создания" для организаций. Также для команд параметр может оказаться неактуальным из-за дублирования информации о периоде выпуска игр.
  • Дата окончания существования. Семантической свойство типа дата, обозначающее момент окончания существования субъекта. Хотя можно обойтись универсальным алгоритмом обработки значений, но в карточке для разных видов субъектов потребуется отображение разных названий: "Дата смерти" для людей и "Дата закрытия" для организаций. Также для команд параметр может оказаться неактуальным из-за дублирования информации о периоде выпуска игр.
  • Каналы коммуникации. Параметр для указания основных каналов коммуникации: сайт, электронная почта, страница в социальной сети и пр.

Параметры, специфичные для людей

  • Показ имени. Параметр управляющий показом всех полей карточки, отображающих информацию о настоящем имени персоны. Также одновременно выполняет функцию документирования желания человека относительно демонстрации его настоящего имени на странице. Если задан запрет на показ настоящего имени, то значения соответствующих параметров не просто не должны отображаться в карточке на странице, но также не должны и заполнять соответствующие семантические свойства, чтобы эта информация не попадала в возможные отображения в других шаблонах и на других страницах на основе семантических запросов.
  • Настоящее имя. Не эквивалентно имени в названии страницы и карточки, потому что человек может быть не против опубличивания имени, но предпочитать, чтобы страница называлась по его никнейму (случай Ajenta Arrow).
  • Имя на родном языке. Параметр для указания оригинального написания имени, если требуется.
  • Никнейм. Не эквивалентно имени в названии страницы и карточки, потому что человек может предпочитать именование статьи по реальному имени, но при этом иметь некий общеизвестный никнейм (случай Антона Жучкова / Fireton). При этом, представляется необходимым выделять некий основной никнейм из общего списка псевдонимов. Например, у Юрия Павленко есть ряд ситуативных псевдонимов, но также существует основной никнейм Goraph.
  • Полное имя. Поле для указания максимально полного имени, например, Карлос Сезар Сальвадор Аранья Кастанеда для Карлоса Кастанеды. Также может быть использовано для написания имени с использованием символов ударения, поясняющих произношение, например, Пётр Алекса́ндрович Косы́х.
  • Известные псевдонимы. Параметр с обработкой списка с разделителем.

Параметры, специфичные для организаций

  • Название. Строка названия организации.
  • Тип. Строка текста, содержащая перечисление через запятую типов описываемой организации, которые в свою очередь будут обрабатываться как категории, в которые добавляется страница с шаблоном. В этом параметре следует уточнять тип организации, например, "Коммерческие компании", "Некоммерческие организации", "Сетевые сообщества" и пр. Соответствующие категории следует делать подкатегориями категории "Организации". Может возникнуть идея добавлять страницу с шаблоном в категорию "Организации" только при отсутствии указанных категорий в параметре типа, но так лучше не делать, потому что при указании нестандартного типа страница окажется без существующей категории.
  • Альтернативные названия. Параметр для перечисления альтернативных названий организации. Может использоваться для указания сокращённого названия (или наоборот для расшифровки аббревиатуры), а также для указания названия на другом языке, если существует традиция перевода названия организации. Например, для основного названия "Фонд Технологий Интерактивной Литературы" есть смысл указать альтернативные названия Interactive Fiction Technology Foundation и IFTF.
  • Ключевые фигуры. Параметр для общего описания ключевых фигур организации в свободной форме.
  • Состояние. Параметр для общего описания текущего статуса организации. Главным образом нужен для случаев, когда у организации не указана конкретная дата окончания существования, но, вместе с этим, какой-либо активной деятельности ей также не ведётся. Тогда в этом параметре можно указать что-то типа " 2017 года активной деятельности не ведётся".
  • Страна/государство. Как правило, компании имеют выраженную страновую принадлежность: либо общую, либо только юридически значимую в виде регистрации штаб-квартиры в определённой национальной юрисдикции. Хотя следует оценить общую значимость для IFВики факта, что, например, Infocom - это американская компания, а Magnetic Scrolls - британская. Возможно, если это и важно, то только в отдельных случаях и может быть описано в свободной форме под карточкой.

Параметры, специфичные для команд

  • Название. Строка названия команды.
  • Альтернативные названия. Параметр для перечисления альтернативных названий команды. Может использоваться для указания сокращённого названия (или наоборот для расшифровки аббревиатуры), а также для указания названия на другом языке, если существует традиция перевода названия команды.
  • Ключевые фигуры. Параметр для общего описания ключевых фигур команды в свободной форме.
  • Подавлять отображение дат начала и окончания существования, а также возраста, даже если соответствующие параметры указаны. Фактически возраст и срок жизни команд - это тоже самое, что их Период выпуска игр.

Поля и свойства карточки, которые рассчитываются автоматически

Следующие поля карточки не требуют ручного указания и должны рассчитываться автоматически:

  • Срок существования. Количество полных лет, прошедших от даты создания субъекта до текущего дня или даты окончания существования субъекта, если число больше 0. Может потребоваться механизм предотвращения вывода неконтролируемо больших значений, например, через явное указание значения "неизвестно" для даты окончания существования.
  • Период выпуска игр. Временной интервал в годах от даты самой ранней работы субъекта до самой поздней. Желательно именно такое нейтральное название, а не что-то типа "Годы творчества", потому что этот временной интервал может не совпадать с годами жизни (случай Александра Пушкина или Николая Жарикова).
  • Язык выпуска игр. Список всех языков, на которых выпускались игры субъекта. Можно определить по свойству "Свойство:Язык" у страниц из категории "Игры".
  • Перечень ролей. Список ролей, в которых фигурировал описываемый субъект в IFВики. Можно извлечь из родительского для всех форм участия свойства "Роль".

Также страница с карточкой должна получать универсальное семантическое свойство "Название", которое можно будет использовать для вывода данных. Для случаев организаций и команд им просто должно становиться значение соответствующего параметра, а вот для случаев персон всё сложнее. Карточки персон, должны назначить свойство "Название", выбрав его на основе значений параметров отображения настоящего имени, никнейма и настоящего имени:

  • Если разрешён показ настоящего имени и настоящее имя задано, то названием персоны назначается настоящее имя.
  • Если настоящее имя не задано или запрещён его показ, то:
    • Если задан никнейм, то названием персоны назначается никнейм.
    • Если никнейм не задан, то названием персоны назначается название страницы.

Примеры заполнения шаблона

Ниже приводятся примеры заполнения шаблона.

Пример отдельного шаблона персоны

{{персона
|показывать настоящее имя = да
|род или число = мужской
|настоящее имя = Пушкин, Александр
|никнейм = Сверчок
|полное имя = Алекса́ндр Серге́евич Пу́шкин
|имя на родном языке = дор. орф. Александръ Сергѣевичъ Пушкинъ
|псевдонимы = Александр НКШП, Иван Петрович Белкин, Феофилакт Косичкин
|дата рождения = 06.06.1799
|дата смерти = 10.02.1837
|каналы коммуникации = [https://www.museumpushkin.ru/ Сайт Всероссийского музея Александра Сергеевича Пушкина]
}}

Пример отдельного шаблона организации

{{организация
|род или число = женский
|название = Infocom
|тип = Коммерческие компании
|альтернативные названия = Infocom, Inc.
|дата создания = 22.06.1979
|дата закрытия = 05.05.1989
|ключевые фигуры = [[Берез, Джоэл|Джоэл Берез]] (президент , генеральный директор)
|страна = Соединённые Штаты Америки
|состояние = После 1989 года эпизодически использовалась как торговая марка для нескольких изданий
|каналы коммуникации = [http://infocom-if.org Неофициальный сайт-музей]
}}

Пример отдельного шаблона команды

{{команда
|род или число = множественное
|название = Сёстры РИЛ
|альтернативные названия = RIL Sisters
|ключевые фигуры = Почётная основательница - Маша, художественная руководительница - Наташа
|каналы коммуникации = [mailto:rilsisters@example.com Контактный email: rilsisters@example.com\
}}

Мероприятия по внедрению

Для широкомасштабного внедрения шаблона (или системы шаблонов) требуется выполнить следующие действия:

  1. В категории "Шаблоны" создать подкатегорию "Шаблоны описания субъектов", в которой реализовать запланированные шаблоны "Команда", "[[Шаблон:Организация|Организация\\" и "[[Шаблон:Персона|Персона\\", а также возможные вызываемые внутренние шаблоны для переиспользования. Внутренние шаблоны также добавить в категорию "Шаблоны для шаблонов".
  2. Создать страницы всех новых свойств, которые будут использоваться шаблонами, созданными на предыдущем шаге.
  3. Создать основную корневую категорию "Люди и организации", а внутри неё категории "Команды", "Организации" и "Категория:Персоны". Категорию "Люди и организации" временно поместить в категорию "Персоналии".
  4. Переместить страницу "Псевдонимы" в категорию "Люди и организации".
  5. Внедрить шаблоны описания субъектов на страницы из категории "Персоналии". В процессе следует выполнять следующие действия:
    • Добавляя шаблон "Организация" и заполняя в нём параметр "тип", следует проверять, чтобы категории, автоматически добавляемые по значениям параметра, существовали и являлись подкатегориями категории "Организации". Предположительно потребуются следующие категории для типов организаций: "Коммерческая компания", "Некоммерческая организация", "Сетевое сообщество".
    • Значение семантических ссылок "День рождения" переносить в параметр "Дата рождения" шаблона "Персона" или параметр "Дата создания" шаблона "Организация", а саму ссылку "День рождения" удалять.
    • Удалять все ручные добавления страницы в категории "Персоналии", "Иностранные персоналии" и "Компании".
    • Неструктурированные описания псевдонимов, настоящих имён, каналов коммуникации и прочего структурировать в виде заполнения соответствующих параметров шаблонов. Следует учитывать принятое в шаблоне "Персона" разделение на возможный основной никнейм и прочие ситуативные псевдонимы.
  6. Убрать автоматическое добавление категории "Персоналии" в шаблонах "Игры автора" и "Проекты и разработки".
  7. Проверить, что после завершения двух предыдущих шагов в категориях "Персоналии", "Иностранные персоналии" и "Компании" не осталось ни одной страницы. Оставшиеся страницы дообработать как на предпредыдущем шаге, так как это либо ошибки обработки на предыдущих двух шагах, либо какие-то вырожденные случаи. Аналогично не должно остаться страниц с использованием свойства "День рождения".
  8. Модифицировать шаблон "День в истории", чтобы для показа дней рождения он использовал не свойство "День рождения", а свойство "Дата рождения".
  9. Удалить свойство "День рождения", убедившись, что больше не осталось страниц, которые его используют.
  10. Переместить категорию "Игровые персонажи" из категории "Персоналии" в категорию "Игры".
  11. Удалить категории "Персоналии", "Иностранные персоналии" и "Компании". Перед этим следует просмотреть страницы, ссылающиеся на их страницы и выполнить замены ссылок. В общем случае схема замены:
    • Вместо "Персоналии" в зависимости от контекста ссылаться либо на общую "Люди и организации", либо конкретно на "Персоны".
    • Вместо "Иностранные персоналии" ссылаться на общую "Персоны" (прямого аналога не предполагается).
    • Вместо "Компании" ссылаться на "Организации".
  12. Категорию "Люди и организации", временно находившуюся в уже удалённой к этому моменту категории "Персоналии" вынести на корневой уровень.
  13. Обработать страницу "Псевдонимы", перенеся из неё недостающую информацию в параметр "Псевдонимы" шаблона "Персона". Может оказаться, что не все псевдонимы были упомянуты на страницах персон. Обрабатывать эффективнее не с опорой на псевдоним, а с опорой на настоящее имя: так потребуется меньшее количество редактирований. Обработанные данные следует удалять со страницы. Когда данных на странице не останется, её следует удалить, или же разместить на ней шаблон, автоматически генерирующий общую таблицу сопоставления псевдонимов и настоящих имён.
  14. Отредактировать страницу "Правила редактирования персоналий", актуализировав представленные на ней данные (в том числе с возможным её переименованием).
  15. Доработать шаблон "День в истории", внедрив в него показ дней создания организаций и дни смерти персон.