ArtReal logo
На грани иронии
 

<! doctype content //public >
<! xref location=/Toweek/2006 >

 
12.03.2006

Вадим Артамонов

Идеальный агрегатор

Что требуется от правильного RSS-агрегатора?

"Видишь ли, преобразование хаоса - далеко не новая задача. Вспомни, к примеру, демона Максвелла. Правда, его (демона) еще никто "вживую" не видел."
(Ciamca)

   Сегодня, когда syndication превратилась из экзотики в норму, а специализированные поисковые системы успешно потрошат блоги, хочется, чтобы RSS aggregator (далее RA) был бы не просто "программой для просмотра содержимого rss", а хорошим, удобным инструментом работы с собранной информацией - персональным информационным центром. С хорошей эффективностью и комфортом.
   Что же требуется от идеального агрегатора? Я попытался составить список:

   - разделение функций: качалка/читалка
   Вместо комбайна (типа пылесоса с кофеваркой, холодильником и телевизором), жрущего память как лошадь, есть смысл разделить RA на две достаточно независимых части - и пусть каждая их них занимается своим делом. Одна часть - сбором информации, а другая - ее обработкой и фронт-ендом с пользователем. Одна "засовывает" записи в базу, другая эти записи из базы асинхронно изымает.
   Логично было бы еще разделить разбор xml-файла (rss и atom разных версий) и фронт-енд, работающий с текстом записей (и с которым общается пользователь).Принцип мануфактуры - надо разделять работу на части, так, чтобы отдельную часть выполнять более качественным и специально-заточенным инструментом.

   - юзер-скриптинг
   Дать пользователю возможность писать собственные скрипты для обработки/визуализации информации и реализации нетрадиционных алгоритмов (например, обработки текста).

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

   - мультиперсональность (разные шаблоны/профили пользователей)
   Даже если пользователь у RA один, все равно надо учитывать, что в разное время у пользователя разные модели (персоны) работы с информацией. Например, пользователь с утра "для разогрева" предпочитает почитать анекдоты и lytdybr, а потом уже переходить к более сложным (и требующим применения извилин) вопросам типа "Применение статистических бифуркаций при анализе трафика малого офиса".

   - multiview
   Возможность перекомпоновки семантической сети по каким-то критериям и возможность смены "точки зрения". Если представить семантическую сеть в виде трехмерной паутины, а пользователя - как перемещаемую в пространстве точку, то принцип должен быть понятен.

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

   - автоматический таггинг
   Контентный анализ, присваивающий записям ключевые слова (категории, таги, etc) по содержимому записи еще до того, как пользователь прочитал эту запись. По выставленным тагам можно настраивать фильтрацию.
   Ручной режим "пометки записи тагом" имеет смысл только тогда, когда запись отправляется в архив (memories) или остается "висящей" (sticked).

   - сквозной поиск во всем пространстве "добытых" и сохраненных записей
   Большинство RA ищут только по текущему фиду. В пределах прочитанного за последнюю сессию (last session) чаще всего востребован именно такой тип поиска, но нередко пользователю нужен более полный охват, включая архив. Желательна возможность управления релевантностью поиска.

   - эвристики для сортировки
   RA должен поддерживать эвристики (в том числе и написанные пользователем), раскладывающих записи по разным "блюдечкам" (по тематике, важности, авторитетности автора, информационной ценности, etc)

   - "база знаний" (memories) и автоматическая линковка к новым записям
   Хорошо, когда тебе напоминают: а вот по этой теме раньше были вот какие записи в "ранее прочитанном". Это помогает быстро "войти в тему", а не "долго и мучительно" вспоминать, когда и где я читал нечто похожее.
   Кроме того, программа сохраняет записи во "временном пуле" еще какое-то время после того, как запись "ушла" из rss. С возможностью при необходимости переноса нужных записей в memories (архив) . Перенос записей может быть как автоматическим (пользователь сам удалит из архива "лишние" записи), так и ручным (пользователь будет включать только важные/нужные записи).

   - экспорт и backup архива и "активного пула записей"
   Экспорт записей в "переносимый формат": rtf, pdf или html. Как отдельными записями, так и группой (выбранный фид, результаты поиска или выборка по ключевому слову/тагу).
   Кроме того, для лучшей сохранности записей неплохо им регулярно делать backup (архивировать на внешнее запоминающее устройство).

   - планировщик просмотра
   Возможность присваивать фидам различный приоритет, чтобы влиять на то, какие записи (при прочих равных условиях) будут первыми в ленте записей, а какие фиды лучше складывать в "долгий ящик", и по мере накопления (или в определенное время) выкладывать их скопом в ленту.
   Например, анекдотные и развлекательные записи копить до обеда, не показывая их в рабочее время (или во время дедлайна).

   - режимы работы: автоматический/ручной
   Должна быть возможность отключить "автопилот" RA (т.е. сортировку, эвристики, etc) и читать записи в ручном режиме.

   - тестовая подписка
   Новый фид RA включает в список только на какой-то тестовый срок (неделя, месяц, три месяца). После окончания тестового периода пользователь должен принять решение: включить фид в постоянном режиме или отписаться. Это позволит сократить количество мусора и заставить пользователя отказаться от ненужных/неинтересных фидов.
   Кроме того, на ограниченный срок имеет смысл подписываться на комментарии в rss - в этом случае неактуальные фиды будут удаляться автоматически и избавлять пользователя от периодической "профилактики" списка ("фидоцида")

   - скрытие неактивных фидов
   Неактивные фиды (по которым давно не было обновления) скрываются из списка фидов (чтобы не занимали места). При необходимости скрытые фиды можно перевести в режим видимости.

   
   В итоге должен получится небольшой информационно-аналитический процессинговый центр. То есть действительно эффективный инструмент для работы с внешней информацией.

На печать  

<! xref location=/Toweek/2006 >
<! doctype links //site-relative >