НАВИГАЦИЯ ПО ПОТОКУ
STREAM NAVIGATION

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Электронные коммуникации стали неотъемлемой частью жизни человека и в коммерческой деятельности и дома. Используя электронные коммуникации, такие как электронная почта, обмен мгновенными сообщениями, SMS и др., люди могут поддерживать связь, вести дела и договариваться о встречах. Например, некоторые программы управления персональной информацией (PIM) позволяют пользователю управлять и организовывать сообщения электронной почты, расписания, задания, записки, контакты и другую информацию.
Для того, чтобы помочь пользователю более легко осуществлять навигацию по своим сообщениям электронной почты, они могут группировать сообщения по таким атрибутам, как: дата, размер, диалог, тема, важность и др. Многие пользователи читают свои сообщения электронной почты в режиме онлайн. Однако часто очень трудно прочитать длинный диалог по электронной почте, учитывая объем содержимого и многочисленные ответы, объединенные в один поток.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Это краткое изложение сущности изобретения дает представление в упрощенной форме о нескольких идеях, которые далее детально описаны. Это изложение сущности изобретения не предназначено ни для определения ключевых или основных признаков заявленного изобретения, ни для определения объема изобретения.
Пользователь может легко читать, просматривать и переходить между сообщениями, которые содержатся в потоке. Элементы пользовательского интерфейса облегчают для пользователя идентификацию сообщений, содержащихся в потоке. Разные части сообщения могут быть выделены так, чтобы их было легче идентифицировать. Пользователь может легко осуществлять навигацию по потоку, выбирая какой-либо элемент пользовательского интерфейса, такой как, например, кнопка стрелки, для передвижения к следующему или предыдущему сообщению в потоке. Порядок потока также может быть изменен в обратную сторону так, чтобы пользователь мог просматривать поток с первого сообщения до последнего или просматривать поток с последнего сообщения до первого сообщения. Сообщения в потоке могут быть размечены, например, тегами XML, для того, чтобы обеспечить идентификацию частей сообщений в потоке.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Фиг. 1 - иллюстрация примерного вычислительного устройства;
Фиг. 2 - функциональная блок-схема, иллюстрирующая в общих чертах систему навигации по потоку;
Фиг. 3 - иллюстрация иллюстративного потока;
Фиг. 4 - иллюстрация элемента пользовательского интерфейса для навигации по сообщениям в потоке;
Фиг. 5 - иллюстрация изменения порядка сообщений в обратную сторону в потоке;
Фиг. 6 - иллюстрация размечания потоков тэгами;
Фиг. 7 - иллюстрация комплексного потока; и
Фиг. 8 - иллюстрация процесса для навигации по потоку, в соответствии с аспектами изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Обратимся теперь к чертежам, в которых одинаковые ссылочные номера соответствуют одинаковым элементам, где будут описаны разные аспекты данного изобретения. В частности, Фиг. 1 и соответствующее обсуждение предназначаются для предоставления краткого, общего описания подходящей вычислительной среды, в которой варианты осуществления изобретения могут быть реализованы.
Как правило, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют отдельные абстрактные типы данных. Другие конфигурации компьютерной системы также могут быть использованы, включая портативные устройства, многопроцессорные системы, программируемую бытовую электронику или электронику с микропроцессорным управлением, миникомпьютеры, универсальные вычислительные машины (мейнфреймы) и др. Распределенные вычислительные среды могут также быть использованы там, где задания выполняются удаленными обрабатывающими устройствами, которые связаны через коммуникационную сеть. В распределенной вычислительной среде программные модули могут находиться и в локальных, и в удаленных устройствах хранения данных.
Читая обсуждение процедур, представленных здесь, нужно отметить, что логические операции разных вариантов осуществления реализуются (1) как последовательность реализуемых компьютером действий или программных модулей, исполняющихся в компьютерной системе, и/или (2) соединенных между собой схем машинной логики или модулей схем в пределах вычислительной системы. Реализация является делом выбора, зависящим от эксплуатационных требований в отношении компьютерной системы, реализующей изобретение. Соответственно, логические операции, проиллюстрированные и составляющие описываемые здесь варианты осуществления, именуются по-разному, как операции, структурные устройства, действия или модули. Эти операции, структурные устройства, действия и модули могут быть реализованы в программном обеспечении, в программно-аппаратных средствах, в цифровых логических схемах специального назначения и в любой комбинации вышеперечисленного.
Для целей данного описания, термин «сообщение» относится к участку потока, который начинается с заголовка одного сообщения в потоке до начала заголовка следующего сообщения в том же потоке.
Рассмотрим теперь Фиг. 1, где иллюстративная компьютерная архитектура для компьютера 2, используемая в различных вариантах осуществления, будет описана. Архитектура компьютера, показанная на Фиг. 1, демонстрирует обычный настольный или портативный ПК, включающий в себя центральный процессор ("CPU"), системную память 7, включающую в себя оперативную память 9 ("RAM") и постоянную память ("ROM") 11, и шину 12, которая соединяет память и центральный процессор 5. Базовая система ввода/вывода, содержащая основные процедуры, которые помогают передавать информацию между элементами внутри компьютера, как, например, во время запуска, содержатся в ROM 11. Компьютер 2 также содержит устройство 14 массовой памяти для хранения операционной системы 16, прикладных программ и других программных модулей, которые будут подробнее описаны ниже.
Устройство 14 массовой памяти соединено с центральным процессором 5 с помощью контроллера массовой памяти (не показан), соединенного с шиной 12. Устройство 14 массовой памяти и ассоциированные с ним машиночитаемые носители, предоставляют энергонезависимое хранилище для компьютера 2. Несмотря на то, что описание машиночитаемых носителей, содержащееся здесь, относится к устройству массовой памяти, такому как накопитель на жестких дисках, или дисковод CD-ROM, машиночитаемые носители могут быть любыми доступными носителями, к которым компьютер 2 может осуществить доступ.
В качестве примера, а не ограничения, машиночитаемые носители могут включать в себя компьютерные носители данных и коммуникационные среды. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым методом или технологией для хранения информации, такой как машиноисполняемые команды, структурированные данные, программные модули, либо другие данные. Компьютерные носители данных включают в себя, но не в ограничительном смысле, RAM, ROM, EEPROM, Flash-память, или память другой технологии, CD-ROM, DVD-ROM или другой дисковый оптический носитель, магнитные кассеты, магнитную ленту, магнитный дисковый накопитель или другие магнитные запоминающие устройства, либо любой другой носитель, который может использоваться для хранения желаемой информации и к которому компьютер 2 может осуществить доступ.
В соответствии с различными способами осуществления изобретения, компьютер 2 может функционировать в сетевой среде, используя логические соединения с удаленными компьютерами посредством сети 18, такой как, например, Интернет. Компьютер 2 может соединяться с сетью 18 через блок 20 сетевого интерфейса соединенного с шиной 12. Блок 20 сетевого интерфейса может также использоваться для того, чтобы соединяться с другими типами сетей и удаленных компьютерных систем. Компьютер 2 может также включать в себя контроллер 22 ввода/вывода для приема и обработки входных данных от ряда других устройств, включая клавиатуру, мышь или электронное перо (не показано на Фиг. 1). Похожим образом, контроллер 22 ввода/вывода может обеспечивать вывод данных на экран монитора, принтер и другие виды устройств вывода.
Как было кратко упомянуто выше, ряд программных модулей и файлов данных могут храниться в устройстве 14 массовой памяти и RAM 9 компьютера 2, включая операционную систему 16, подходящую для управления работой сетевого персонального компьютера, например, операционную систему WINDOWS XP от MICROSOFT CORPORATION, Редмонд, Вашингтон. Устройство 14 массовой памяти и RAM 9 могут также содержать один или более программных модулей. В частности, устройство 14 массовой памяти и RAM 9 могут содержать в себе программу 24 электронной почты и прикладную программу 10 обработки текста. Прикладная программа 10 обработки текста выполнена с возможностью обеспечения функциональности для создания и редактирования электронных документов, каких, например, как сообщение электронной почты для программы 24 электронной почты. В соответствии с вариантами осуществления изобретения, прикладная программа 10 обработки текста представляет собой прикладную программу обработки текста MICROSOFT WORD от MICROSOFT CORPORATION. Другие прикладные программы обработки текста также могут быть использованы.
Прикладная программа 24 электронной почты выполнена с возможностью обеспечения функциональности, относящейся к сообщениям электронной почты. Например, программа 24 электронной почты может быть использована для создания, отображения на экране, отправки и получения сообщений электронной почты. В соответствии с одним вариантом осуществления изобретения, прикладная программа 24 электронной почты представляет собой прикладную программу электронной почты MICROSOFT OUTLOOK от MICROSOFT CORPORATION. Другие прикладные программы электронной почты и/или обмена сообщениями также могут быть использованы.
В сочетании с отображением на экране сообщения электронной почты, менеджер (средство управления) 26 компоновки сообщения электронной почты может использоваться для форматирования сообщения электронной почты для более легкой навигации. Несмотря на то, что менеджер 26 компоновки сообщения электронной почты показан отдельно от программы 24 электронной почты, эта функциональность может находиться в разных местах. Например, она может быть включена в программу электронной почты или находится в каком-нибудь другом месте. Как правило, менеджер 26 компоновки сообщения электронной почты конфигурирует поток таким образом, чтобы по нему было легче осуществлять навигацию.
Фиг. 2 иллюстрирует систему навигации по потоку 200, в соответствии с аспектами изобретения.
В общих чертах, система 200 навигации по потоку помогает пользователю читать, просматривать, переходить между сообщениями, которые содержатся в потоке.
Менеджер 26 компоновки обеспечивает обслуживание прикладной программы 24 электронной почты. В соответствии с одним вариантом осуществления, документы электронной почты и соответствующие потоки могут быть сохранены во вспомогательном запоминающем устройстве 34. Для обеспечения обмена данными с менеджером 26 компоновки, могут быть реализованы одна или более процедур обратного вызова. Используя коды обратного вызова, менеджер 26 компоновки может запрашивать на предмет дополнительной информации, необходимой для конфигурирования разных частей потоков.
Менеджер 26 компоновки обеспечивает средства для форматирования сообщения электронной почты и навигации по потоку. Менеджер 26 компоновки обеспечивает эти средства в ответ на запрос прикладной программы 24 электронной почты. Программа 24 электронной почты и менеджер 26 компоновки включают в себя инструментальные средства навигации для обеспечения чтения, просмотра, и перехода между релевантными частями потока сообщений электронной почты. Менеджер 26 компоновки может включать в себя элементы пользовательского интерфейса внутри сообщения электронной почты с тем, чтобы облегчить для пользователя идентификацию и навигацию по сообщениям, которые содержатся в потоке. Менеджер 26 компоновки может также выделить разные части сообщения с тем, чтобы их было легче идентифицировать. Когда элемент пользовательского интерфейса содержится в потоке, пользователь может легко осуществлять навигацию по потоку, выбирая элемент пользовательского интерфейса, например, кнопку стрелки, для передвижения к следующему или предыдущему сообщению в потоке. Менеджер 26 компоновки может также изменять порядок сообщений в потоке прежде чем он будет отображен; например, порядок потока может быть повернут в обратную сторону так, чтобы пользователь мог просматривать поток с первого сообщения, которое было послано в потоке, до последнего (самое текущее), или просматривать поток с последнего сообщения до первого. Менеджер 26 компоновки может также разметить поток, например, тэгами XML, для того, чтобы облегчить идентификацию разных частей сообщений в потоке.
Программа 24 электронной почты может обмениваться информацией с менеджером 26 компоновки с тем, чтобы запросить форматирование по меньшей мере части потока. Программа 24 электронной почты может также предоставлять менеджеру 26 компоновки текст и другое содержимое сообщения электронной почты, которое должно быть отформатировано. Размечание частей сообщения электронной почты тэгами в потоке позволяет программе электронной почты более легко идентифицировать части потока. Например, разметка XML может быть использована для помечания тэгами соответствующей заготовки части сообщения электронной почты, так чтобы ее можно было легко идентифицировать. Программа электронной почты 24 также сконфигурирована формировать отображение документа 40 электронной почты.
Фиг. 3 демонстрирует иллюстративный поток. Как показано, поток 300 сообщений электронной почты показывает 5 разных сообщений (320, 321, 322, 323 и 324) внутри потока 300 сообщений электронной почты. В соответствии с одним вариантом осуществления, заголовок и/или начало каждого сообщения затенены (см. 310, 311, 312 и 313) так, чтобы пользователь мог легко идентифицировать, где начинаются и кончаются разные сообщения. Любой способ выделения отдельных сообщений в потоке может использоваться. Например, сообщения могут быть показаны одним цветом, а информация заголовка может быть показана другим цветом. В соответствии с другими вариантами осуществления, заголовки могут быть показаны разными способами. Например, они могут быть показаны свернутыми, полусвернутыми или полностью развернутыми. Другая информация может также содержаться в заголовке. Например, заголовок может содержать число (330), которое указывает номер текущего сообщения в потоке. В нашем примере, второй заголовок 310 указывает, что это второе сообщение из пяти (330).
В соответствии с одним вариантом осуществления, когда пользователь нажимает на «ответить» (Reply) 340, информация заголовка размечается тэгами, и включается в ответ. Один способ идентифицировать заголовки заключается в том, чтобы использовать эвристику для определения места нахождения заголовка, разыскивая такие поля в потоке, как: «от» (“From”), «кому» (“To”), «тема» (“Subject”) и т.д. (см. 350). Другая альтернатива определения местонахождения заголовка - это размечание заголовков тэгами. Например, разметка XML может использоваться для индикации местонахождения заголовка (см. Чертежи и соответствующие обсуждения ниже). На основе эвристики можно разумно определить, где заголовок мог бы начинаться и заканчиваться, но используя разметку XML программа может быть уверена в том, кто был отправителем и кто были получатели, какая тема и какая дата. В соответствии с одним вариантом осуществления, заголовки затенены градиентно (310-313) так, чтобы заголовок выделялся. Такое затенение помогает пользователю визуально разобрать поток. Пользователь может осуществить быструю прокрутку вниз по потоку сообщений электронной почты и знать, что когда начинается затенение, начинается новое сообщение в потоке.
Заголовок может также быть различимым, основываясь на таких характеристиках как, кто отправил сообщение, даты и другая информация. Например, заголовки, ассоциируемые с одним пользователем, могут быть выделены красным цветом (не показано), тогда как заголовки, ассоциируемые с другим пользователем, могут быть выделены зеленым цветом.
Фиг. 4 иллюстрирует элемент пользовательского интерфейса для навигации по сообщениям в потоке. Элемент пользовательского интерфейса может обеспечить пользователя способом осуществления навигации от одного сообщения к следующему внутри потока без прокручивания всего потока. В соответствии с одним вариантом осуществления, стрелка 410 «Следующее» («Next») и стрелка 420 «Предыдущее» («Previous») позволяют пользователю осуществлять навигацию к следующему или предыдущему сообщению в потоке.
В соответствии с одним вариантом осуществления, когда пользователь наводит курсор на затенённую область заголовка 430, появляются две навигационные стрелки (410 и 420), и при их выборе, отображаемая часть потока быстро переходит к следующему или предыдущему заголовку внутри потока. Таким образом, пользователь может расположить курсор над стрелкой и нажимать для того, чтобы двигаться по потоку, без необходимости двигать мышкой для выбора другого сообщения. Это позволяет пользователю легко осуществлять навигацию по сообщениям в потоке сообщений электронной почты, быстро переходя к каждому сообщению в потоке. Например, если пользователь ищет определенный ответ кого-либо, он может неоднократно нажимать на одну из навигационных кнопок для навигации по потоку сообщений электронной почты до обнаружения необходимого ответа.
Использование навигационных стрелок является альтернативой прокрутке потока сообщений электронной почты для поиска чего-либо. Пользователь может визуально смотреть на одну часть экрана и продолжать нажимать на одну из навигационных стрелок, чтобы в итоге привести сообщение в ту часть экрана, на которую смотрит пользователь. В соответствии с одним вариантом осуществления изобретения, пользователь может выбрать элемент пользовательского интерфейса для передвижения к началу или концу потока сообщений электронной почты. Движение к нижней части сообщения электронной почты позволяет пользователю прочитать сообщение электронной почты в хронологическом порядке. Пользователь может прочитать, что написал первый человек, а потом либо нажать на верхнюю стрелку или выполнить прокрутку, чтобы перейти к следующему потоку.
Фиг. 5 демонстрирует изменение направления сообщений в потоке на обратное. Существует ряд вещей, которые пользователь может захотеть сделать, читая поток. Одна из них - это прочитать поток в хронологическом порядке. Без изменения направления потока, пользователю пришлось бы осуществлять навигацию к нижней части потока, а потом читать этот поток снизу вверх.
Порядок сообщений в потоке может быть изменен так, чтобы поток начинался с первого отправленного сообщения внутри потока. В соответствии с одним вариантом осуществления, кнопка, называемая «Начать диалог с исходного сообщения электронной почты» (“Start Conversation with Original Email”), может быть использована для изменения направления всего потока так, чтобы самый старый ответ во всем потоке был бы на первом месте. Потоки, как правило, начинаются с самых недавних отправленных сообщений и доходят к самому старому, которое является исходным сообщением в потоке сообщений электронной почты. Изменение порядка на обратный позволяет пользователю читать весь поток в том порядке, который, чаще всего, желателен для длинных потоков.
Обратимся к первоначальному порядку 510, где в потоке содержатся 3 сообщения. Первое сообщение (530) было отправлено 14 Ноября, 2004 и отображается на последнем месте в потоке 510. Второе сообщение (540) было отправлено 15 Ноября, 2004, в 9:59 PM и отображается на втором месте в потоке 510. Третье сообщение (550) было отправлено 15 Ноября, 2004, в 11:13 PM и отображается на первом месте в потоке. Несмотря на то, что этот образец потока может быть легко виден целиком, многие потоки намного длиннее и пользователю может быть сложно осуществлять навигацию по потоку.
В потоке 520 с измененным направлением порядок сообщений, содержащихся в потоке, обращен так, чтобы пользователь мог теперь просматривать самое первое отправленное сообщение в потоке прежде, чем просматривать следующее отправленное сообщение в потоке. При обращении, сообщение 530 теперь отображается на первом месте в потоке 520, за ним следует сообщение 540, за которым следует сообщение 550.
Фиг. 6 иллюстрирует размечание потоков тэгами. Потоки размечаются тэгами таким образом, чтобы части потока могли быть легко идентифицированы. В соответствии с одним вариантом осуществления, поток размечается тэгами в соответствии со схемой XML. Могут быть использованы множество разных схем разметки. В соответствии с одним вариантом осуществления, разметка является краткой для экономии пространства. Рассматривая образец сообщения 610 электронной почты можно увидеть, что Roberto Taboada является отправителем, Deborah Harris является получателем, темой является «Ужин» («Dinner») и сообщение было отправлено в пятницу, 22 Октября, 2004 в 2:01 PM. Текстом сообщения является «Куда ты хочешь пойти поужинать? Roberto.» («Where do you to go for dinner? Roberto»). В соответствии с одним вариантом осуществления, каждый пункт в сообщении заключается в элемент разметки. Разметка XML 620 сообщения 610 электронной почты иллюстрирует примерные элементы разметки. Следующая таблица иллюстрирует примерное описание этих элементов:
элемент
описание
<html xmlns:e="urn:schemas-microsoft-com:office:mailheader">
Объявление пространства имен, которое находится в начале сообщения электронной почты (может быть изменено для соответствия требованиям различных стандартов пространства имен).
e:
Префикс пространства имен, который следует вместе со всеми элементами, привязывая их к новому пространству имен (может быть свободно изменено во избежание конфликта с различными существующими пространствами имен).
m
Сообщение
f
От
s
Отправлено
t
Кому
c
Копия
b
Скрытая копия
a
Тема
V
Значимость: фактическая значимость поля. В соответствии с одним вариантом осуществления, поле «от» не различает между отдельными получателями.
В качестве альтернативы, только часть элементов в сообщении электронной почты может использоваться для размечания тэгами. Например, вся информация в заголовке может быть размечена тэгами как единый блок.
Фиг. 7 демонстрирует комплексный поток 700. Сообщения в потоке 710 могут приходить из различных программ электронной почты. Например, первое сообщение может быть создано программой 1, тогда как остальные сообщения внутри потока могут быть созданы программой 2. В соответствии с одним вариантом осуществления, когда поток принят, он синтаксически разбирается, чтобы отыскать информацию заголовка. Синтаксический разбор идентифицирует блоки заголовка для сообщений электронной почты, созданных при помощи программ электронной почты, не употребляющих разметку. В соответствии с одним вариантом осуществления, временные тэги добавляются к потоку прежде, чем он будет отображен. Тэги могут также быть постоянными. Размечание временными тэгами помогает обеспечить навигационные функциональные возможности, описанные здесь, когда задействуются существующие версии средства составления сообщений электронной почты (или другие клиенты электронной почты).
Разметка XML, которая используется для размечания сообщения электронной почты, является краткой, чтобы избежать увеличения потока в объеме. Как это иллюстрировано, используются очень простые тэги для того, чтобы разметка XML 720 незначительно влияла на сообщения электронной почты. Разметка XML 720 является разметкой образца сообщения 710 электронной почты.
Фиг. 8 демонстрирует процесс для навигации по потоку, в соответствии с аспектами изобретения. После операции запуска, процедура переходит к этапу 810, где осуществляется доступ к потоку.
Переходя к операции 820, поток синтаксически разбирается для определения местонахождения интересующих элементов. Как это уже обсуждалось выше, в соответствии с одним вариантом осуществления, заголовок каждого сообщения является интересующим элементом. Любой элемент в потоке, однако, может быть охарактеризован как представляющий интерес. Синтаксический разбор исследует поток на наличие уже размеченных тэгами участков; идентифицирует зоны потока, которые уже были размечены тэгами и затем размечает тэгами области, которые не были размечены. На этом этапе, местонахождение заголовков известно.
Переходя к операции 830, внешнее оформление потока, например, заголовки, может быть модифицировано. Например, градиентное затенение может быть применено к заголовкам; заголовки могут быть выделены цветом; свернуты/развернуты и т.п. В общем, любое указанное действие может быть применено.
В операции 840 визуальное отображение потока формируется и предоставляется пользователю для навигации по потоку. Отображаемый поток включает в себя модифицированное внешнее оформление с тем, чтобы пользователь мог более легко осуществлять навигацию по потоку.
Переходя к операции 850, взаимодействия с потоком отслеживаются для того, чтобы определить, не активировал ли пользователь какую-либо из навигационных функций, описанных выше. Например, процесс может отслеживать, не навел ли пользователь курсор на заголовок. Процесс также может осуществлять мониторинг, чтобы определить, когда выбрана кнопка пользовательского интерфейса.
Переходя к операции 860, выполняются любые определенные навигационные действия. Например, в соответствии с одним вариантом осуществления, когда пользователь наводит курсор на заголовок, показываются стрелки «Следующее» и «Предыдущее». Действие может также изменять вывод на экран, основываясь на действии выбора элемента управления пользовательского интерфейса. Например, может быть выбран элемент управления для изменения направления потока на обратное, для перемещения на самый вверх/низ потока, перемещения к следующему/предыдущему сообщению в потоке и т.п.
Процесс тогда переходит к операции завершения и продолжает обрабатывать другие действия.
Приведенные вышеописанные примеры и данные обеспечивают полное описание изделия и использования составляющих изобретения.