Код документа: RU2636691C2
ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее раскрытие в целом относится к компьютерным системам, а более точно к системам и способам для обработки неоднородных входных потоков календарных приложений.
УРОВЕНЬ ТЕХНИКИ
[0002] Календарные приложения могут быть применены для облегчения планирования и отслеживания событий для отдельных пользователей и/или групп пользователей. Календарное приложение может выполняться компьютерной системой, содержащей один или более серверных компьютеров и/или одно или более клиентских устройств.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0003] Настоящее раскрытие проиллюстрировано с помощью примеров, а не с помощью ограничений, и может быть более полно понято со ссылками на следующее подробное описание при рассмотрении с использованием фигур, на которых:
[0004] Фиг. 1 изображает схему уровня сети одного иллюстративного варианта осуществления компьютерной системы, исполняющей календарное приложение, в соответствии с одними или более аспектами настоящего раскрытия;
[0005] Фиг. 2 схематично иллюстрирует несколько структур данных, поддерживаемых компьютерной системой, исполняющей календарное приложение, в соответствии с одним или более аспектами настоящего раскрытия;
[0006] Фиг. 3a-3b схематично иллюстрируют примеры календарных представлений, визуализируемых компьютерной системой, исполняющей календарное приложение, в соответствии с одним или более аспектами настоящего раскрытия;
[0007] Фиг. 4a-4b схематично иллюстрируют примеры блокнотных представлений, визуализируемых компьютерной системой, исполняющей календарное приложение, в соответствии с одним или более аспектами настоящего раскрытия;
[0008] Фиг. 5 изображает блок-схему способа обработки входов календарных приложений, в соответствии с одним или более аспектами настоящего раскрытия; и
[0009] Фиг. 6 изображает структурную схему иллюстративной компьютерной системы, работающей в соответствии с примерами настоящего раскрытия.
ПОДРОБНОЕ ОПИСАНИЕ
[00010] В материалах настоящей заявки описаны способы и системы для обработки неоднородных входных потоков календарных приложений. К "календарному приложению" в материалах настоящей заявки следует относить приложение, облегчающее планирование и отслеживание событий для отдельных пользователей и/или групп пользователей.
[00011] Календарные приложения, описанные в материалах настоящей заявки, могут быть выполнены компьютерными системами, содержащими одно или более компьютерных устройств, включая серверы и клиентские устройства, которые могут быть взаимосвязаны через одну или более сетей. Пользователи могут получать доступ к календарному приложению через различные клиентские вычислительные устройства, включая, например, персональные компьютеры и мобильные устройства, такие как смартфоны. Клиентское устройство может вводить информацию через различные интерфейсы, включая, например, клавиатуру, сенсорный экран, сетевой интерфейс, микрофон, видеокамеру, фотокамеру и/или микрофон. Следовательно, входной поток календарного приложения может быть представлен, например, текстовым потоком, одним или более фотографическими изображениями, видеопотоком и/или аудиопотоком. Компьютерная система, выполняющая календарное приложение, может преобразовывать нетекстовые входные данные в текстовые (например, преобразование изображения в текст с помощью способов оптического распознавания символов (OCR), преобразование голоса в текст и т.д.).
[00012] В определенных реализациях компьютерная система, выполняющая календарное приложение, может обрабатывать один или более входных потоков для получения календарных записей и некалендарных текстовых элементов (заметок). Компьютерная система может затем визуализировать на клиентском устройстве календарные записи и заметки с помощью различных представлений, включая, например, календарное представление и блокнотное представление. Различные аспекты указанных выше систем и способов детально описаны ниже в материалах настоящей заявки в форме примеров, а не в форме ограничений.
[00013] Фиг. 1 изображает схему уровня сети одного иллюстративного варианта осуществления компьютерной системы 1000 в соответствии с одним или более аспектами настоящего раскрытия. Компьютерная система 1000 может содержать один или более серверов 110, выполняющих серверные части 120 календарного приложения. Один или более клиентских компьютеров 130, выполняющих клиентские части 125 календарного приложения, могут быть соединены с серверным компьютером 110 через множество взаимосвязанных сетей 115. К "компьютеру" в материалах настоящей заявки следует относить устройство, содержащее процессор, память и по меньшей мере один интерфейс ввода/вывода (I/O). Компьютер может быть представлен, например, сервером, виртуальной машиной, работающей на центральной компьютерной системе, портативным или настольным персональным компьютером (ПК), планшетным компьютером или смартфоном. Также термин "компьютер" должен включать любую совокупность компьютеров, которые отдельно или совместно исполняют набор (или несколько наборов) команд для выполнения одного или более любых способов, описанных в материалах настоящей заявки.
[00014] К "сети" в материалах настоящей заявки следует относить распределенную систему связи, взаимосвязывающую два или более компьютеров. Сеть может быть представлена, например, локальной сетью (LAN), глобальной сетью (WAN) или виртуальной частной сетью (VPN). В определенных реализациях множество взаимосвязанных сетей 115 может включать сеть Интернет.
[00015] Функции компьютерной системы 1000 могут быть предоставлены конечному пользователю с помощью одного или более клиентских устройств 130, таких как, например, портативный или настольный персональный компьютер (ПК), планшетный компьютер или смартфон. В одном примере, одно или более клиентских устройств 130 могут предоставлять функции пользовательского интерфейса и обмениваться данными с одним или более серверами 110, которые могут выполнять обработку клиентских запросов, балансирование загрузки, аутентификацию клиентов, авторизацию, хранение и извлечение календарных записей, формирование счетов и другие функции. Эти и другие функции могут быть распределены между одним или более серверами 110, находящимися на одном или более физическом оборудовании.
[00016] В другом примере, по меньшей мере некоторые из перечисленных выше серверных функций могут быть выполнены одним или более клиентскими устройствами 130. В определенных реализациях, клиентское устройство 130 может выполнять по меньшей мере подмножество своих функций, не будучи подключенным к серверу 110. Этот режим обработки также называется автономным (офлайновым) клиентским рабочим режимом.
[00017] Некоторые из перечисленных выше функций, такие как, например, обработка клиентских запросов, балансирование загрузки, аутентификация клиентов, авторизация, хранение и извлечение календарных записей, формирование счетов могут рассматриваться как имеющие отношение к функциональным возможностям сервера. Другие функции, такие как, например, прием ввода пользователя и/или визуализация информации в календарном и/или блокнотном представлениях могут рассматриваться как имеющие отношение к функциональным возможностям клиента. Однако, в определенных реализациях, календарная система 1000 может включать один или более компьютеров, выполняющих по меньшей мере некоторые функциональные возможности сервера, имеющие отношение к функциональным возможностям сервера, и по меньшей мере некоторые функции, имеющие отношение к функциональным возможностям клиента. Следовательно, обозначение функциональных возможностей клиента и сервера, о чем может быть ссылка в материалах настоящей заявки, предназначено для целей иллюстрации, не касаясь работы компонентов компьютерной системы 1000.
[00018] В одном примере, компьютерная система 1000 может поддерживать модель данных, содержащую календарные записи и заметки, как схематично проиллюстрировано на Фиг. 2. Календарная запись может быть представлена структурой данных 210, содержащей идентификатор 212 и время 214. В определенных реализациях, идентификатор 212 может быть образован с помощью удобочитаемой для человека последовательности буквенно-цифровых символов, содержащей заголовок и/или описание календарной записи. Альтернативно, идентификатор календарной записи может быть образован с помощью буквенно-цифрового или не буквенно-цифрового идентификатора, который не предназначен быть удобочитаемым для человека.
[00019] В определенных реализациях, время 214 может быть представлено временем начала события, определяемым по календарной записи и длительности события. Альтернативно, время 214 может быть представлено временем начала и временем окончания события. Время начала и/или время окончания события может быть представлено датой (например, содержащей день, месяц и год) и временем суток (например, содержащим часы, минуты и секунды). Время 214 может дополнительно содержать идентификатор часового пояса.
[00020] Структура данных 210 может дополнительно содержать заголовок 216, описание 218, местоположение 220, идентификатор инициатора 222 события, определяемого по календарной записи, список участников 224 события, повторяющийся график 226 и/или другие поля. В определенных реализациях, структура данных 210 может содержать тип идентификатора 211 календарной записи. Примеры календарных записей, представляемые структурой данных 210, могут включать встречи, приглашения на встречу, напоминания и т.д. В определенных реализациях, структура данных 210 может содержать один или более указателей 228 на наборы данных, которые могут быть названы прикреплениями (вложениями). В одном примере, прикрепление может быть представлено файлом произвольного типа, такого как текст, аудиопоток, видеопоток, фотографическое изображение и т.д.
[00021] Заметка может быть представлена структурой данных 240, содержащей текст заметки 248. В определенных реализациях, структура данных 240 может дополнительно содержать тип идентификатора 241, идентификатор заметки 242, время создания и/или изменения 244 заметки и/или заголовок 246 заметки. Время 244 может быть представлено датой (например, содержащей день, месяц и год) и временем суток (например, содержащим часы, минуты и секунды). Время 244 может дополнительно содержать идентификатор часового пояса.
[00022] В определенных реализациях, структура данных 240 может содержать один или более указателей 250 на наборы данных, которые могут быть названы прикреплениями. В одном примере, прикрепление может быть представлено файлом произвольного типа, такого как текст, аудиопоток, видеопоток, фотографическое изображение и т.д.
[00023] В определенных реализациях, компьютерная система 1000 может хранить структуры данных, описанные выше, в реляционной базе данных, находящейся на одном или более компьютерах, включая один или более серверов 110 и/или одно или более клиентских устройств 130. В определенных реализациях, другие способы хранения модели данных, описанной выше, например, иерархическая база данных или один или более плоских файлов, могут быть применены компьютерной системой 1000 для хранения календарных данных, согласно описанной выше модели данных.
[00024] В определенных реализациях, компьютерная система 1000 может хранить пользовательский каталог, связанный с календарной системой в сервере каталогов, таком как сервер с облегченным протоколом доступа к каталогам (LDAP). В определенных реализациях, другие способы хранения пользовательского каталога, включая, например, собственный пользовательский каталог, предоставляемый операционной системой сервера 110, могут быть применены компьютерной системой 1000.
[00025] Компьютерная система 1000, выполняющая календарное приложение, может принимать один или более входных потоков через один или более входных интерфейсов клиентского устройства 130. В одном примере, компьютерная система 1000 может принимать, через клавиатуру и/или сенсорный экран клиентского устройства 130, текст ввода пользователя, содержащий последовательность буквенно-цифровых и не буквенно-цифровых символов. В другом примере, компьютерная система 1000 может принимать, через микрофон клиентского устройства 130, речевой поток, и затем преобразовывать речевой ввод в текст. В дополнительном примере, компьютерная система 1000 может принимать, через видеокамеру клиентского устройства 130, видеопоток, и затем преобразовывать видеопоток в текст. В дополнительном примере, компьютерная система 1000 может получать, через устройство формирования изображения, изображение объекта, сфокусированное линзами формирования изображения устройства формирования изображения, и затем преобразовывать изображение в текст. В определенных реализациях, компьютерная система 1000 может получать входные данные любых перечисленных выше или других типов через сетевой интерфейс.
[00026] Компьютерная система 1000 может затем обрабатывать входные потоки для создания последовательности символов, представляющей элемент входных данных, такой как календарная запись или заметка. В определенных реализациях, входящий текст может быть разделен на два или более элементов входных данных, основываясь на одном или более предварительно определенных символах, найденных в тексте. Например, разделитель, указывающий на границу элемента входных данных, может быть представлен знаком препинания, таким как запятая (,). В другом примере, разделитель может быть представлен двумя или более символами, такими как запятая, за которой следует управляющий символ "красная строка", две последовательные запятые или два последовательных управляющих символа "красная строка".
[00027] В определенных реализациях, входной поток может быть разделен на два или более элементов входных данных до преобразования этих элементов в текст. В одном примере, видеопоток, содержащий изображения объектов, несущих рукописный и/или набранный текст, может быть разделен на два или более элементов входных данных, причем каждый элемент содержит изображение одного текста несущего объекта. В другом примере, фотографическое изображение, которое несет объект, может быть разделено на два или более изображений, основываясь на двух или более отличительных графических разделителях, найденных в изображении, таких как линии и формы, визуально разделяющие текст на несколько частей. В дополнительном примере, аудиопоток может быть разделен на две или более частей, основываясь на двух или более отличительных аудиоразделителях, найденных в аудиопотоке (например, предварительно определенный звук, включая слышимые и не слышимые звуки; предварительно определенная фраза; или фрагмент молчания с длительностью, превышающей предварительно определенный порог).
[00028] Компьютерная система 1000 может затем разобрать (проанализировать) элементы входных данных, чтобы определить, содержит ли элемент входных данных временную ссылку, и, следовательно, может ли элемент входных данных быть классифицирован как представляющий календарную запись или заметку. Компьютерная система 1000 может применять различные способы разбора элементов входных данных. В одном примере, компьютерная система 1000 может хранить один или более форматов, таких как, например, ММ/ДД/ГГ, ММ/ДД/ГГГГ и/или ММ/ДД/ГГГГ чч:мм:сс. Каждая строка формата может включать одно или более текстовых полей и один или более разделительных символов. Текстовому полю может быть предписано хранение определенного количества символов из предварительно определенного алфавита, и оно может представлять предварительно определенную часть данных и/или времени (например, поле ММ может содержать две цифры или может представлять месяц). В ответ на установление того, что часть входящего текста совпадает с предварительно определенным форматом времени, компьютерная система 1000 может декодировать временную ссылку, основываясь на идентифицированном формате, и сохраняет временную ссылку в структуру данных времени.
[00029] В одном примере, структура данных времени может содержать дату (например, включая день, месяц и год) и время суток (например, включая часы, минуты и секунды). Альтернативно, структура данных времени может быть представлена временной переменной типа POSIX (Portable Operating System for unIX - интерфейс переносимой операционной системы для Unix), содержащей поле целых чисел, содержащее количество секунд, прошедших после предварительно определенного времени в прошлом (например, полночь 1 января 1970). В определенных реализациях, структура данных времени может дополнительно содержать идентификатор часового пояса. Альтернативно, все значения времени могут быть сохранены компьютерной системой 1000 в предварительно определенном часовом поясе, таком как, например, Всемирное Координированное Время (UTC).
[00030] В одном примере, компьютерная система 1000 может обнаруживать относительные временные ссылки, представленные одной или более предварительно определенными лексемами, указывающими день относительно текущего времени, такими как, например, сегодня, завтра и т.д. В другом примере, компьютерная система 1000 может определять относительные временные ссылки, которые могут быть представлены одной или более предварительно определенными лексемами, указывающими время суток, такими как, например, утро, день, вечер, ночь и т.д. В другом примере, компьютерная система 1000 может определять относительные временные ссылки, которые могут быть представлены одной или более предварительно определенными лексемами, указывающими день недели, такими как, например, воскресенье, понедельник, вторник и т.д.
[00031] В определенных реализациях, компьютерная система 1000 может преобразовывать неточную относительную текстовую временную ссылку в структуру данных времени, применяя одно или более предварительно определенных правил преобразования и/или параметров конфигурации, устанавливая соответствие между неточными временными ссылками и временем, таким как, например, "после обеда", "конец рабочего дня", "конец дня" и т.д.
[00032] В определенных реализациях, компьютерная система 1000 может определять один или более естественных языков, использованных во входном потоке. Альтернативно, один или более естественных языков, использованных во входном потоке, могут быть заданы как параметры конфигурации компьютерной системы 1000.
[00033] Как отмечено выше в материалах настоящей заявки, в ответ на определение того, что элемент входных данных содержит временную ссылку, компьютерная система 1000 может классифицировать элемент входных данных как представляющий календарную запись, и сохраняет в структуре данных календарной записи время, определенное по временной ссылке, вместе с нулем или более необязательных полей, как более подробно описано ниже в материалах настоящей заявки. В ответ на определение того, что элемент входных данных не содержит временную ссылку, компьютерная система 1000 может классифицировать элемент входных данных как представляющий заметку, и сохраняет в структуре данных заметки по меньшей мере часть текста элемента входных данных вместе с другими необязательными полями, включая текущее время и один или более указателей на прикрепления.
[00034] В определенных реализациях, компьютерная система 1000 может обрабатывать элемент входных данных, определенный как представляющий календарную запись, для извлечения одного или более элементов календарной записи, таких как, например, тип идентификатора, заголовок, описание, местоположение события, идентифицированного по календарной записи, инициатор события, список участников события, повторяющийся график события и/или одно или более прикреплений.
[00035] Поле типа идентификатора может быть представлено числовым или строковым значением, определяющим тип календарной записи, например, встречи, приглашения на встречу, напоминания и т.д. Поле заголовка может быть представлено буквенно-цифровой строкой, содержащей удобочитаемый для человека идентификатор события, на который ссылается календарная запись, такой как, например, "Встреча о статусе проекта", "Деловой обед" и т.д. Поле описания может быть представлено буквенно-цифровой строкой, содержащей удобочитаемую для человека информацию, связанную с событием, такую как, например, повестка встречи. Поле местоположения может быть представлено буквенно-цифровой строкой, содержащей удобочитаемое для человека описание места события, такое как, например, "Конференц-зал 100". В определенных реализациях, поле местоположения может быть представлено идентификатором структуры данных во внешней системе, такой как система управления офисным помещением. Поле инициатора события может быть представлено буквенно-цифровой строкой, содержащей идентификатор человека, инициировавшего событие (такой как, например, председатель собрания). В определенных реализациях, поле инициатора события может быть представлено идентификатором структуры данных во внешней системе, такой как пользовательский каталог (например, каталог LDAP). Список участников может быть представлен списком буквенно-цифровых строк, содержащих идентификаторы участников события (такие как, например, участники собрания). В определенных реализациях, идентификатор участника события может быть представлен идентификатором структуры данных во внешней системе, такой как пользовательский каталог (например, каталог LDAP). Поле повторяющегося графика может быть представлено списком дат и времен событий и/или одним или более атрибутами повторения (например, еженедельно, ежемесячно, и т.д.). Прикрепление может быть представлено файлом произвольного типа, такого как текст, аудиопоток, видеопоток, фотографическое изображение и т.д.
[00036] После получения команды пользовательского интерфейса компьютерная система 1000 может визуализировать на клиентском устройстве одну или более календарных записей и/или заметок с помощью различных представлений, включая, например, календарное представление и блокнотное представление.
[00037] Календарное представление может содержать одну или более календарных записей, визуализируемых на экране с визуальными ссылками на один или более индикаторов времени. В одном примере, как схематично проиллюстрировано на Фиг. 3a, календарное представление 300 может содержать одно или более недельных представлений 310. Недельное представление 310 может содержать до семи визуально отделенных областей экрана, соответствующих дням недели (дневные представления 312). Каждое дневное представление может быть визуально разделено на несколько областей экрана 314, соответствующих времени суток. Одно или более значений времени суток могут быть размещены в дневном представлении. Одна или более календарных записей 316 могут быть показаны в дневном представлении 312. В другом примере, как схематично проиллюстрировано на Фиг. 3b, календарное представление 300 может содержать одно или более месячных представлений 320. Месячное представление 320 может содержать множество недельных представлений 310. Недельное представление 310 может содержать до семи визуально отделенных областей экрана, соответствующих дням недели (дневные представления 312). Каждое дневное представление может быть визуально разделено на несколько областей экрана 314, соответствующих времени суток. Одно или более значений времени суток могут быть размещены в дневном представлении. Одна или более календарных записей 316 могут быть показаны в дневном представлении 312. В дополнительном примере, календарное представление может содержать квартальное представление, годовое представление и/или другие представления.
[00038] Блокнотное представление может содержать одну или более заметок, визуализируемых на экране. В одном примере, как схематично проиллюстрировано на Фиг. 4a, одна или более заметок 410, визуализируемых в блокнотном представлении 400, могут быть отсортированы в алфавитном порядке по заголовку/теме. В другом примере, как схематично проиллюстрировано на Фиг. 4b, одна или более заметок, визуализируемых в блокнотном представлении 400, могут быть отсортированы в хронологическом порядке по дате времени создания или изменения заметки.
[00039] В определенных реализациях, компьютерная система 1000 может визуализировать одно или более календарных событий и одну или более заметок в смешанном представлении, например, выбирая и/или сортируя календарные события и заметки по заголовку, ключевому слову, автору, и/или дате и времени создания или изменения календарного события или заметки.
[00040] В определенных реализациях, компьютерная система 1000 может принимать ввод пользователя, редактирующий существующую календарную запись или существующую заметку. В одном примере, в ответ на прием ввода пользователя, редактирующего заметку, компьютерная система 1000 может определить, что недавно добавленный текст содержит временную ссылку. После такого определения компьютерная система 1000 может преобразовать заметку в календарную запись, и сохраняет в структуре данных календарной записи время, идентифицированное по временной ссылке, вместе с нулем или более необязательных полей, как более подробно описано выше в материалах настоящей заявки.
[00041] Фиг. 5 изображает блок-схему одного варианта осуществления способа 500 для обработки входного потока календарных приложений. Способ 500 может выполняться компьютерной системой, которая может содержать аппаратные средства (например, схема, нестандартная логика и/или программируемая логика), программное обеспечение (например, команды, исполняемые компьютерной системой для выполнения аппаратного моделирования) или любой их комбинацией. Способ 500 и/или каждая из его отдельных функций, программ, подпрограмм или операций может быть выполнена одним или более физическими процессорами компьютерной системы, исполняющей способ. Две или более функции, программы, подпрограммы или операции способа 500 могут быть выполнены параллельно или в порядке, который может отличаться от порядка, описанного выше.
[00042] Обработка может начинаться компьютерной системой с приема, в блоке 510, входного потока через один или более входных интерфейсов клиентского устройства. В одном примере, компьютерная система может принимать, через клавиатуру и/или сенсорный экран клиентского устройства, текст ввода пользователя, содержащий последовательность буквенно-цифровых и не буквенно-цифровых символов. В другом примере, компьютерная система может принимать, через микрофон клиентского устройства, речевой поток. В дополнительном примере, компьютерная система может принимать, через видеокамеру клиентского устройства, видеопоток. В дополнительном примере, компьютерная система может получать, через устройство формирования изображения, изображение объекта, сфокусированное линзами формирования изображения устройства формирования изображения. В определенных реализациях, компьютерная система может получать входные данные любых перечисленных выше или других типов через сетевой интерфейс.
[00043] В блоке 520 компьютерная система может обрабатывать входные потоки для создания последовательности символов, представляющей элемент входных данных, такой как календарная запись или заметка. Как отмечено выше в материалах настоящей заявки, один или более нетекстовых входных потоков могут быть преобразованы в текст. Входной поток может быть разделен на два или более элементов входных данных, основываясь на одном или более предварительно определенных текстовых, графических и/или других типах разделителей.
[00044] В ответ на определение в блоке 530 того, что элемент входных данных содержит временную ссылку, компьютерная система может продолжить обработку в блоке 540; иначе способ может ответвиться в блок 550.
[00045] В блоке 540 компьютерная система может создавать и сохранять в своей памяти новую календарную запись, используя структуру данных календарной записи. Календарная запись может содержать идентификатор времени, на которое ссылается временная ссылка. В определенных реализациях, компьютерная система может дополнительно обрабатывать элемент входных данных, определенный как представляющий календарную запись, для извлечения одного или более элементов, таких как, например, тип идентификатора, заголовок, описание, местоположение события, идентифицированного по календарной записи, инициатор события, список участников события, повторяющийся график события и/или одно или более прикреплений, как более подробно описано выше в материалах настоящей заявки.
[00046] В блоке 550 компьютерная система может создавать и сохранять в своей памяти новую заметку, используя структуру данных заметки. Заметка может содержать по меньшей мере часть текста элемента входных данных. В определенных реализациях, компьютерная система может дополнительно обрабатывать элемент входных данных, определенный как представляющий заметку, для извлечения одного или более элементов, таких как, например, заголовок, тема и/или одно или более прикреплений, как более подробно описано выше в материалах настоящей заявки.
[00047] В блоке 560 компьютерная система может получать ввод пользователя, выбирающего календарное или блокнотное представление для визуализации одной или более календарных записей или заметок.
[00048] В блоке 570 компьютерная система может визуализировать календарное представление, как более подробно описано выше в материалах настоящей заявки. В блоке 580 компьютерная система может визуализировать блокнотное представление, как более подробно описано выше в материалах настоящей заявки. В ответ на завершение операций, на которые ссылаются блоки 570 или 580, способ может завершиться.
[00049] Фиг. 6 изображает пример компьютерной системы 100, способной к исполнению команд, заставляющих компьютер выполнять один или более способов, описанных в материалах настоящей заявки. В определенных вариантах осуществления, компьютерная система 100 может соответствовать одному или более серверам 110 и/или клиентским устройствам на Фиг. 1.
[00050] В определенных вариантах осуществления, компьютерная система 100 может быть подключена (например, через сеть, такую как локальная сеть (LAN), интранет, экстранет или Интернет) к другим компьютерным системам. Компьютерная система 100 может работать на производственных мощностях сервера или клиентского компьютера в клиент-серверной среде, или как одноранговый компьютер в одноранговой или распределенной сетевой среде. Компьютерная система 100 может быть представлена персональным компьютером (ПК), планшетным ПК, телевизионной приставкой (STB), персональным цифровым ассистентом (PDA), сотовым телефоном, сетевым устройством, сервером, сетевым маршрутизатором, коммутатором или мостом или любым устройством, способным исполнять набор команд (последовательных или других), который задает действия, выполняемые этим устройством.
[00051] В дополнительном аспекте, компьютерная система 100 может включать в себя процессор 1002, энергозависимую память 1004 (например, оперативное запоминающее устройство (ОЗУ)), энергонезависимую память 1006 (например, постоянное запоминающее устройство (ПЗУ) или электрически стираемое программируемое ПЗУ (ЭСППЗУ, EEPROM)) и вспомогательную память 1016 (например, устройство хранения данных), которые могут обмениваться данными друг с другом через мост 1008. Процессор 1002 может быть представлен одним или более процессорами, такими как процессор общего назначения (такой как, например, микропроцессор с полным набором команд (CISC), микропроцессор с сокращенным набором команд (RISC), микропроцессор с командными словами очень большой длины (VLIW), процессор, реализующий другие типы наборов команд) или специализированный процессор (такой как, например, специализированная интегральная схема (ASIC), программируемая вентильная матрица (FPGA), цифровой сигнальный процессор (DSP) или сетевой процессор).
[00052] Компьютерная система 100 дополнительно может включать в себя устройство 1022 сетевого интерфейса. Компьютерная система 100 также может включать в себя устройство 1010 отображения видео (например, жидкокристаллический дисплей, LCD), устройство буквенно-цифрового ввода 1012 (например, клавиатура), указательное устройство 1014 (например, мышь) и устройство звукового вывода 1020 (например, динамик).
[00053] Вспомогательная память 1016 может включать в себя некратковременный компьютерно-читаемый запоминающий носитель 1024, на котором могут быть сохранены команды календарного приложения 120, 125. Команды календарного приложения 120, 125 могут также находиться, полностью или частично, в основной памяти 1004 и/или в процессоре 1002 во время исполнения их компьютерной системой 1000, следовательно, основная память 1004 и процессор 1002 могут также составлять компьютерно-читаемый запоминающий носитель. Хотя компьютерно-читаемый запоминающий носитель 1024 показан в иллюстративном варианте осуществления как одиночный носитель, термин "компьютерно-читаемый запоминающий носитель" должен включать в себя одиночный носитель или множество носителей (например, централизованная или распределенная база данных и/или ассоциированные кэши и серверы), которые хранят один или более наборов исполняемых команд. Термин "компьютерно-читаемый запоминающий носитель" должен также включать любые некратковременные носители, которые способны сохранять или декодировать набор команд для выполнения компьютером, предписывающий компьютеру выполнять любой из одного или более способов, описанных в материалах настоящей заявки. Термин "компьютерно-читаемый запоминающий носитель" должен включать в себя, но не ограничиваться, твердотельную память, оптические носители и магнитные носители.
[00054] Способы, компоненты и признаки, описанные в материалах настоящей заявки, могут быть реализованы дискретными аппаратными компонентами или могу быть интегрированы с функциональными возможностями других аппаратных компонентов, таких как ASIC, FPGA, DSP или подобные устройства. Кроме того, способы, компоненты и признаки могут быть реализованы программно-аппаратными модулями или функциональной схемой в аппаратных устройствах. Также способы, компоненты и признаки могут быть реализованы любой комбинацией аппаратных устройств и программных компонентов, или только в программном обеспечении.
[00055] Если особым образом не заявлено иное, термины, такие как "обновление", "идентификация", "определение", "отправка", "назначение", или тому подобное, указывают на действия и операции, выполняемые или реализуемые компьютерными системами, которые манипулируют и преобразуют данные, представленные как физические (электронные) величины в регистрах и памяти компьютерной системы, в другие данные, подобным образом представленные как физические величины в памяти или регистрах компьютерной системы, или других устройствах хранения, передачи или отображения такой информации.
[00056] Варианты осуществления, описанные в материалах настоящей заявки, также относятся к устройству для выполнения способов, описанных в материалах настоящей заявки. Это устройство может быть специально сконструировано для требуемых целей, или оно может содержать компьютер общего назначения, выборочно запрограммированный компьютерной программой, сохраненной в компьютерной системе. Такая компьютерная программа может храниться на компьютерно-читаемом некратковременном запоминающем носителе.
[00057] Способы и иллюстративные примеры, описанные в материалах настоящей заявки, не присущи какому бы то ни было конкретному компьютеру или другому устройству. Различные системы общего назначения могут быть использованы в соответствии с концепциями, описанными в материалах настоящей заявки, или может оказаться удобным конструировать более специализированные устройства для выполнения требуемых функций, программ, подпрограмм или операций способа. Требуемая конструкция для многообразия этих систем будет ясна в соответствии с вышеприведенным описанием.
[00058] Вышеприведенное описание направлено на то, чтобы быть иллюстративным, а не ограничивающим. Хотя настоящее раскрытие было описано со ссылками на конкретные иллюстративные примеры и варианты осуществления, следует понимать, что настоящее раскрытие не ограничено описанными вариантами осуществления. Объем раскрытия следует определять со ссылкой на последующую формулу изобретения, наряду с полным объемом эквивалентов, к которым относится формула изобретения.
Изобретение относится к области обработки календарных приложений. Техническим результатом является повышение точности обработки входных потоков календарных приложений. Способ содержит: прием компьютерной системой первого входного потока, содержащего по меньшей мере одно из: текстового потока, изображения, видеопотока или аудиопотока; обработку первого входного потока для создания первой последовательности символов; в ответ на определение того, что первая последовательность символов не содержит временных ссылок, сохранение заметки, содержащей по меньшей мере часть первой последовательности символов, в первой структуре данных первого типа; прием второго входного потока, изменяющего упомянутую заметку; обработку второго входного потока для создания второй последовательности символов; в ответ на определение того, что вторая последовательность символов содержит временную ссылку, преобразование упомянутой заметки в календарную запись; сохранение упомянутой календарной записи, содержащей идентификатор времени, на которое ссылается временная ссылка, во второй структуре данных второго типа. 3 н. и 15 з.п. ф-лы, 8 ил.