Начало.
В процессе подготовки новой серии слегка уточнил терминологию. В предыдущей серии теперь следует читать "информационное поле" вместо "информационная карта". В этом есть определенная логика: область, где непосредственно разложена информация (по которому мы "ходим") -- это поле. А вот взгляд на эту область со стороны, помогающий навигации -- это как раз карта. О чем ниже.
* Описанная ранее идеальная организация информационного поля (двумерная область со свободной организацией объектов "руками") скорее всего, является излишне радикальной для того чтобы такие интерфейсы можно было ожидать массово и в ближайшем будущем. Да и далеко не всегда такой подход возможен и осмыслен: ни каждое письмо в папке на 10 000 штук, ни каждую строчку кода в исходнике "разбрасывать по плоскости" смысла нет.
* Но даже в том случае, когда организация информации у нас одномерна, навигацию по ней можно существенно улучшить, предоставив инфопутешественнику* информационную карту -- представление информации, которое охватывало бы все доступные объекты и позволяло бы быстро по ним навигировать.
* Слова инфожитель/инфопутешественник -- мои любимые замены слову "пользователь", когда речь идет об информационном дизайне.
* На данный момент единственные повсеместные подходы к картографированию информации -- это скроллбар (показывающий лишь соотношение текущей видимой области со всем доступным полем) и "список важных объектов" -- содержание для документа, список классов/методов для исходников и т.п.). И тот, и другой метод исключительно убоги: скроллбар, как и было сказано, отображает только "размеры"; список методов/заголовков/меток игнорирует соотношения различных информационных объектов (содержание документа ничего не скажет о размере глав; а список методов и вовсе отсортирован алфавитно и "теряет" даже порядок организации кода).
*
Инфоскроллер, которому Артем Горбунов придумал достаточно удачное название (
не являясь автором идеи) -- это уже лучше. Но, скажем так, обсуждение и использование идеи инфоскроллера происходит несколько "без царя в голове". (Одна из основных причин этого, по видимому -- восприятие такого элемента как "разожравшегося скроллбара", а не основного способа навигации.)
* Итак, хорошая информационная карта -- это а) обобщенное представление всей доступной информации (см. инфоскроллер) плюс б) вехи на этой информации, облегающие навигацию и узнавание отдельных областей.
* Вехами могут служить, например, естественные заголовки/разделители информации (заголовки документа в текстовом процессоре, названия классов и методов в редакторе кода, названия групп в группированных списках и т.п.). Но для эффективной работы с информационной картой необходимо, чтобы текстовые вехи читались. Не обязательно умещать текст заголовка полностью -- нескольких первых букв вполне может хватить. Здесь много места для красивых графических решений (например -- плавное уменьшение шрифта вдоль заголовка, край его не читается, но угадывается) и "искуственного интеллекта" (например -- при соглашении о кодировании, подразумевающем множество методов с названиями вроде getBlah/setBlah слова "get/set" в вехах можно сильно уменьшать, или вовсе обозначать неким значком).
* Также вехами могут служить результаты анализа данных, места обнаруженных ошибок и конфликтов. Такое решение уже является стандартом де-факто для средств сравнения файлов.
* Вехи могут быть и сознательно проставлены вручную -- простейшие инструменты цветовой пометки во многих случаях позволяют сделать карту более информативной (интересный вариант -- добавлять объекты в карту, не изменяя их представления на основном поле; например, "выделить слово синим" -- текст документа не меняется, а в карте появляется новая синяя вешка)
* Следующий крайне интересный и важный вариант: сиюминутные вехи; например, результаты поиска (или результаты нескольких поисков, отображенные, опять же, разным цветом); при этом преобретают смысл всякие сложные поисковые инструменты (если в результате поиска вы просто доберетесь до объекта -- сложное условие лень вводить, а вот для изменения информационной карты -- может иметь смысл)
* Еще более "сиюминутное" -- отображение на информационной карте истории работы с информационным полем; скажем, отображение "последних измененных мест" (с давностью изменения, отображаемой яркостью); или, при чтении длинного текста, "быстро промотанные" части на инфокарте заливать легким серым фоном, "невнимательно просмотренные" -- белым, "тщательно прочитанные" -- зеленым, и все зеленее с каждым последующим прочтением ("степень прочитанности" измерять просто тем, сколько соответствующий кусок текста отображался на экране).
* Дополнительная, но соблазнительная возможность -- для вех, между которыми можно установить отношение больше/меньше, использовать горизонтальную организацию. Например, представим себе исторический текст с кучей дат -- вынеся даты на информационную карту в качестве вех, приятно было бы видеть их относительное расположение (в смысле -- в истории расположение, а не в тексте).
* Наконец, техническое взаимодействие с информационной картой -- также хорошоее пространство для изящных решений. Использование линзы-fisheye, чтобы "присматриваться" к отдельным частям информации; опциональное отключение "слоев" карты (разных типов вех), непропорциональное представление (в случаях типа "за краем текущего экрана находятся 5 непрочитанных писем и 10 000 прочитанных"), массовая обработка вех (выделить в документе все слова, которые я помечал в "синий" слой) -- все это subject of experiment.
О как. Обсуждения, идеи, ссылки на prior art приветствуются. Впрочем, говорят, что тем кто постит в воскресенье с утра, Дед Бабай не приносит комменты; ну, посмотрим.