Academic Contributions profile (ACP)

С помощью этого экрана пользователь ACIS может изменять и уточнять ссылки на объекты, представляющие собой профессиональную гордость для человека науки.  Прежде всего, это публикации: статьи и книги; далее: это может быть "series": серия статей и рабочих бумаг, редактором которой мог быть человек.

Для каждого из объектов, составляющих ACP, должна быть определена роль описываемого человека.  Чаще других будет использоваться роль "автор", но возможны и другие роли (например, "редактор").

Этот экран будет состоять из нескольких под-экранов.

Самое сложное - основной экран contributions: то, что предстанет перед взором пользователя прежде всего и то, что он будет видеть чаще всего.

Что должно быть на основном экране contributions?

Единого ответа нет.  Это зависит от обстоятельств.  В идеале, этот экран должен вести последовательный диалог с пользователем.  При входе на экран, там должно быть:

Список работ (предварительно найденых системой) должен показываться порциями, если их много.  То есть, мы показываем человеку порцию, он решает, что делать с показанными работами, нажимает кнопочку [continue] и мы показываем следующую порцию.

После того, как все предварительно найденные работы пройдены, мы возвращаемся к тем, которые пользователь не выбрал в качестве своих. Мы спрашиваем: вы уверены? Если вы уверены, то мы больше не будем предлагать вам эти работы для включения в contributions profile.

После этого диалог можно считать завершённым и мы:

Выражение contribution профайла в структуре userdata.

Мы имеем запись типа "person".  Contributions profile может быть выражен или представлен пользователям несколькими разными способами.

Итак, в структуре record типа "person": ключ contributions. Значение ключа contributions — хэш с ключами:

Ключ contributions/accepted в user-data record

Это список.  Элементы списка — отдельные контрибьюшены. Контрибьюшен — это хэш:

Ключ contributions/refused в user-data record

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

Конфигурация

Для работы contribution profile и, наверное, для работы Автоматическая поддержка Contributions профайла (APS), непринятый вариант, нам нужна конфигурация, которая задаст определённые роли и типы объектов, которые могут входить в contribution profile.

Эта конфигурация будет обычно содержать:

В дополнение к этому, частью presentation должны стать литералы, которые будут фигурировать в HTML и email, соответствующие мета-типам и ролям.  По идее, эти литералы должны быть доступны и в XSLT презентерах, и в perl коде.

Поэтому, я полагаю, хороший вариант — это иметь исходники такой presentation-конфигурации в каком-то наиболее простом формате и "компилировать" её после этого в любой другой формат, в частности в XML.

Другой вариант: хранить литералы в виде ACIS::Data::DumpXML файла.

На стадии номер 3 проекта ACIS, мы добавим экран contributions/add и contributions/edit.

Экран contributions/add позволит человеку добавить работу в свой профайл: самостоятельно ввести описание новой работы.

Экран contributions/edit позволит человеку изменить описание работы, которое человек ввёл раньше или уточнить уже существовавшее в базе данных описание.