Система и способ установки и выполнения прикладных программ предпочтений
Иллюстрации
Показать всеПредложение относится к средствам персонализации компьютерных систем. Техническим результатом является повышение производительности работы пользователя за счет обеспечения возможности совместного использования данных между компонентами прикладной программы и между прикладными программами. Конечным пользователям предоставляется инструмент для простого написания разнообразного текста и сложных предпочтений, например, с использованием множества простой логики высказываний IF-THEN. Предпочтения затем преобразуют в запросы и выполняют в отношении структурированных данных. Удовлетворяющие предпочтения затем выполняют действия, такие как представление уведомления или сохранение данных в конкретной папке. Кроме того, в соответствии с аспектом изобретения все данные, логика, события, помимо прочих, являются схематизированными. 5 н. и 18 з.п. ф-лы, 43 ил.
Реферат
Перекрестная ссылка на родственные заявки
В данной заявке заявлен приоритет заявки на американский патент регистрационный № 10/693,735 под названием SYSTEM AND METHOD FOR PREFERENCE APPLICATION INSTALLATION AND EXECUTION, поданной 24 октября 2003 г., которая приведена здесь полностью в качестве ссылочного материала.
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к компьютерным системам и более конкретно к системе и способу персонализации компьютерных систем.
Уровень техники
Пользователи компьютеров и технологий, связанных с компьютерами, обычно разделяются на две явно выраженные категории, а именно на квалифицированных и обладающих глубокими знаниями лиц и всех остальных. Квалифицированные и обладающие знаниями лица, знают, как использовать компьютеры самым разным образом и изменяют их конфигурацию по собственному желанию для изменения программ и обеспечения разнообразной и полезной их работы. Остальной мир пользователей компьютеров зависит от милости этих квалифицированных и обладающих знаниями лиц, поскольку для них отсутствует простой или дешевый доступ к знаниям, информации или возможности использовать компьютеры для обслуживания своих потребностей.
Основной прорыв в компьютерной технике произошел, когда технология разрушила некоторые барьеры к доступу. В мире мэйнфреймов компьютеры были слишком дорогостоящими для всех, кроме крупных фирм. Появление миникомпьютеров и затем персональных компьютеров (ПК, PC) разрушило барьер стоимости и сделало компьютеры доступными для малого бизнеса и отдельных лиц. В 1980-е годы программисты приложили много усилий, чтобы создать прикладные программы графического интерфейса пользователя (GUI, ГИП). Без разнообразных и последовательных GUI программисты не смогли бы построить полноценные прикладные программы для пользователей ПК. Революция, происшедшая с появлением Visual Basic, а также использование конструкций GUI, основанных на управлении и событиях, позволили разработчикам прикладных программ легко строить разнообразные прикладные программы. Впоследствии был установлен эффективный цикл, благодаря которому значительно большее количество конечных пользователей получили возможность использовать эти прикладные программы. В 1990-е годы конечные пользователи стремились преодолеть отсутствие доступа к информации. Рост Интернет изменил наш мир, делая почти всю ценную информацию доступной для любого человека, имеющего браузер. Однако все еще остаются значительные барьеры, которые нужно преодолеть.
Обычное использование компьютера не является персональным. В том, что называют персональным компьютером, очень немного того, что действительно является "персональным". Это правда, что данные, записанные на локальный диск, являются персональными. Однако поведение машины, а именно действие (действия), которые она выполняет от имени пользователя, практически идентичны для миллионов пользователей. Несмотря на обладание удивительно мощным компьютером общего назначения, пользователь среднего уровня считает его статическим инструментом, полезным как конечная точка для передачи данных, используемым как точка входа при выполнении поиска, применяемым для выполнения некоторых однотипных прикладных программ, рассчитанных на массовый рынок, но в основном не способным выполнять какие-либо "персональные расчеты" в истинном смысле этого слова. Возможности персонализации, доступные в существующих в настоящее время в прикладных программах, всего лишь позволяют в малой степени задействовать то, что является возможным и желательным.
Кроме того, обычное использование компьютеров является не автоматизированным, а скорее происходит вручную, требуя от пользователей принятия решений и действий в соответствии с ними в соответствующие моменты времени. Рассмотрим ежедневную рутинную работу большинства типичных конечных пользователей компьютера. Помимо прочего, конечные пользователи собирают информацию, реагируют на сообщения, инициируют сообщения или отвечают на них и организуют информацию. Компьютеры улучшили связь между людьми и улучшили доступ к информации. Однако компьютеры мало сделали для освобождения конечных пользователей от ответственности при принятии решений и действий по ним в соответствующее время.
Также традиционное использование компьютеров не является контекстуальным. Компьютерные программные средства обычно обеспечивают параметры настройки, которые являются скорее статическими и несвязанными с действительным контекстом пользователя.
При этом требуется действительно персонализированная компьютерная система, которая осознавала бы потребности и предпочтения конечных пользователей и которая действовала бы, таким образом, направляемая этими потребностями, а также контекстом пользователя. Кроме того, компьютерные системы и программные средства должны предоставлять каждому конечному пользователю персонального ассистента для сбора и просеивания информации, представляющей интерес для одного или нескольких конечных пользователей, и автоматического реагирования на эту информацию таким образом, как указал пользователь.
Сущность изобретения
Ниже упрощенно представлена сущность изобретения, предназначенная для обеспечения основ понимания некоторых аспектов изобретения. Эта сущность изобретения не представляет собой подробный обзор изобретения. Она не предназначена для идентификации ключевых/критических элементов изобретения или выражения объема изобретения. Единственное ее назначение состоит в представлении в упрощенной форме некоторых концепций изобретения в качестве вступления к более подробному описанию, которое представлено ниже.
Здесь раскрыты система - информационный агент, прикладные программы и методологии. Система - информационный агент обеспечивает платформу для выполнения прикладных программ информационного агента (иногда называемых здесь прикладными программами IA (ИА)). Затем конечные пользователи могут программировать прикладные программы IA и использовать их в качестве исполнительных ассистентов или агентов конечного пользователя. Агенты затем действуют для значительного повышения индивидуальной производительности конечного пользователя, интегрируют настольные прикладные программы и все персональные среды передачи данных (например, мобильный телефон, пейджер,
КПК …).
Центром информационной прикладной системы является схематизация данных. Схематизация представляет собой структурирование данных в виде хорошо известных и хорошо проработанных структур, которые позволяют множеству прикладных программ распознавать и взаимодействовать друг с другом. Информационные свойства, информационные события и логика принятия решений все они могут быть схематизированы. Схематизированные свойства информации относятся к данным, которые представляют собой основу прикладных программ конечного пользователя (например, электронная почта, люди, группы, местоположения …). Информационные свойства могут быть схематизированы, что позволяет обеспечить последовательную интерпретацию данных для множества различных прикладных программ. Информационные события обеспечивают привязки для присоединения логики программы. Эти события представляют собой события высокого уровня и связаны с информационными потоками, улучшающими их понимание неопытными конечными пользователями. События также могут быть схематизированы. Кроме того, логика принятия решения тоже может быть схематизирована. Поскольку конечные пользователи являются неопытными разработчиками, неразумно ожидать, что программа будет написана на традиционном языке программирования. Скорее для конечных пользователей может быть обеспечено построение схематизированных логических блоков (например, на основе оператора IF-THEN) так, чтобы они могли программировать, сшивая эти блоки вместе в виде простых, но все же разнообразных комбинаций. Схематизация данных, информационные привязки (события) и возможности программирования конечным пользователем обеспечивают конечным пользователям значительную ценность соединенных разнообразной средой прикладных программ, взаимодействующих через логику, установленную конечным пользователем, что впоследствии позволяет конечным пользователям - новичкам стать системными интеграторами.
Кроме того, в соответствии с аспектом настоящего изобретения информационная прикладная система включает гибкий исполнительный механизм, который может компилировать и выполнять как тяжелые, так и легкие информационные прикладные программы. Тяжелые прикладные программы содержат программы, которые часто работают на высокопроизводительных серверах и, помимо прочего, требуют высокой пропускной способности и масштабируемости. Легкие прикладные программы представляют собой программы, которые часто выполняются на меньших системах, таких как персональные компьютеры, и требуют меньшего времени задержки, меньшего объема, занимаемого базой данных, и меньшего рабочего набора. В меньших прикладных программах компромисс между временем задержки и пропускной способностью полностью противоположен по сравнению с прикладными программами больших серверов. В соответствии с этим исполнительный механизм в соответствии с предметом изобретения является гибким в том, что он позволяет компилировать и выполнять прикладные программы на множестве различных прикладных платформ, на основе компромисса для выражения требований конкретной системы (например, малое время задержки, малый объем, занимаемый базой данных …).
В соответствии с другим аспектом настоящего изобретения предпочтения или правила конечного пользователя разрабатывают по одному, но выполняются в наборах. Модель программирования по одному представляет собой самую естественную модель для разработчиков, которая позволяет разработчикам увязывать одно событие с одним предпочтением. Однако в соответствии с аспектом изобретения система считывает по одной программные декларации и обрабатывает запросы класса условия, которые выполняются в виде набора, используя, таким образом, такие технологии, как индексирование и устранение дубликатов. Это является полезным, поскольку обеспечивает очень эффективную оценку предпочтений, в то время как разработчикам и конечным пользователям остается осмысление и написание программ с использованием подхода по одной.
В соответствии с другим аспектом предмета изобретения предложены новая система и способ установки прикладных программ. В обычных системах установка прикладной программы включает значительное увеличение объектов базы данных, таблиц и сохраненных процедур. В некоторых случаях прикладные программы создают полностью новые базы данных. Предмет изобретения упрощает и делает целесообразным установку прикладной программы, обеспечивая набор базовых таблиц. Для установки прикладной программы система просто обновляет базовые таблицы. Это может быть выполнено путем сохранения программных действий, условий, событий и процедур в виде данных. Например, в отношении процедур они могут быть созданы в виде свитка текста, который сохранен в накопителе данных. Для запуска таких процедур текст программы можно просто вытягивать из накопителя данных и выполнять.
В соответствии с еще одним аспектом предмета изобретения система может поддерживать константы средства доступа, что позволяет условиям/действиям сопоставлять информацию в различных областях информации. Константы средства доступа упрощают обмен информацией или совместное использование данных, находящихся в различных областях. Например, константа средства доступа MyFamily (моя семья) может быть определена так, что функция средства доступа будет иметь возможность определять членов MyFamily путем запроса данных, записанных прикладной программой электронной почты или прикладной программой - календарем. Комбинация схематизированной логики и средств доступа является полезной, по меньшей мере, потому что она позволяет лицам, не являющимся программистами, писать эффективные запросы в разных областях. Кроме того, относительно небольшое количество классов условия, скомбинированных с относительно малым количеством ограничений средства доступа, позволяют использовать большое количество интересных условий, которые в противном случае не были бы обеспечены разработчиком прикладной программы.
В соответствии с еще одним аспектом настоящего изобретения предпочтения, определяемые пользователем, могут быть расширены так, что они позволят устанавливать взаимосвязь между прикладными программами. По большой части измерение прикладной программы IA определяется возможностями, которые предоставлены пользователям. Поэтому степень, в которой прикладная программа IA обладает возможностями расширения, может быть определена по степени, в которой новые условия и действия сделаны доступными для пользователей, определяющих новые предпочтения в контексте существующей прикладной программы. Расширяемость прикладной программы, прежде всего, направлена на обеспечение возможности добавления новых условий и действий для прикладной программы позже, после того как прикладная программа будет установлена, без дальнейшего вмешательства автора (авторов) оригинальной прикладной программы. Поэтому конечные пользователи без помощи разработчика могут создавать предпочтения, которые используют условия и действия, обеспечиваемые различными прикладными программами, и, таким образом, обеспечивать разнообразную взаимосвязь между прикладными программами.
Также система в соответствии с настоящим изобретением поддерживает прикладные программы - информационные агенты. В соответствии с аспектом настоящего изобретения одна такая прикладная программа может относиться к персонализированным папкам, контейнерам данных или к другой системе организации данных, обеспечиваемой накопителем данных и соответствующей файловой системой (например, иерархической системой, файлами, взаимосвязанными с использованием произвольных или явно выраженных зависимостей). Персонализированные папки определяются и управляются логикой, указанной конечным пользователем, или предпочтениями. Соответственно, конечные пользователи могут определять условия и действия, которые управляют содержанием папок при возникновении события. В одном аспекте изобретения события соответствуют изменениям в данных, находящихся в папках (например, документ, добавлен, удален или модифицирован). Предпочтения (например, условия, действия) могут для целей данного кратного описания быть разделены на три категории, предпочтения, которые выполняют действия от имени пользователей (например, посылают электронные сообщения, относящиеся к отчетам о затратах в папку с аналогичным названием), предпочтения, которые управляют содержанием папок (например, сохранить все джазовые песни, которые были прослушаны за последние две недели в текущей папке джаз), и комбинацию первых двух (например, сохранить все отчеты по затратам, сумма которых меньше, чем определенная сумма в долларах в папке одобрения, и передать сообщение по электронной почте конечному пользователю, чтобы информировать его об этом действии).
Действия типа потока заданий можно использовать с применением активных папок в соответствии с еще одним аспектом предмета изобретения. Здесь конечный пользователь, использующий предпочтения, может определять многоэтапную задачу или часть работы, которая должна быть представлена через пункты папок. Действия впоследствии могут быть предприняты в отношении пунктов папок, для завершения задачи или части работы.
Папки, в которых регистрируется информация, также можно использовать в соответствии с аспектом настоящего изобретения. Регистрируемая информация представляет историю и контекстную информацию, относящуюся к пользователю или пользователям системы. В соответствии с аспектом предмета изобретения регистрируемая информация может быть сохранена в накопителе данных и к ней может быть обеспечен свободный доступ для всех конечных пользователей. Таким образом, конечный пользователь может контролировать данные истории и писать предпочтения на этой основе. Например, пользователь может разрешить каждому члену своей рабочей группы просматривать информацию истории, относящейся к определенному курсу акций, но может пожелать ограничить доступ к контекстной информации, например, для случаев, когда они находятся за своими столами или на собрании.
Для выполнения описанных выше и других соответствующих целей здесь описаны определенные иллюстративные аспекты изобретения в связи со следующим описанием и прилагаемыми чертежами. Эти аспекты раскрывают различные способы, с помощью которых изобретение может быть выполнено на практике, причем все они должны быть охвачены настоящим изобретением. Другие преимущества и новые свойства изобретения будут очевидными из следующего подробного описания изобретения при его рассмотрении совместно с чертежами.
Краткое описание чертежей
На фиг.1 показана блок-схема системы информационного агента в соответствии с аспектом настоящего изобретения.
На фиг.2 - блок-схема уведомления компонента в соответствии с аспектом настоящего изобретения.
На фиг.3 - блок-схема прикладной программы информационного агента в соответствии с аспектом настоящего изобретения.
На фиг.4 - блок-схема примера логической схемы в соответствии с аспектом настоящего изобретения.
На фиг.5 - блок-схема системы, предназначенная для оценки постоянного средства доступа, в соответствии с аспектом предмета изобретения.
На фиг.6 - блок-схема системы оценки предпочтений в соответствии с аспектом настоящего изобретения.
На фиг.7 - блок-схема системы предпочтений в соответствии с аспектом настоящего изобретения.
На фиг.8 схематично показана блок-схема, иллюстрирующая классификатор, в соответствии с аспектом настоящего изобретения.
На фиг.9 - блок-схема, иллюстрирующая классификацию сообщения, в соответствии с аспектом настоящего изобретения.
На фиг.10 - блок-схема, иллюстрирующая вывод скалярного значения классификатора, в соответствии с аспектом настоящего изобретения.
На фиг.11 - блок-схема, иллюстрирующая тексты, классифицированные в соответствии с классом и скалярным выходным значением, в соответствии с аспектом настоящего изобретения.
На фиг.12 показана схема, иллюстрирующая модели линейных приоритетов, в соответствии с аспектом настоящего изобретения.
На фиг.13 - схема, иллюстрирующая модель нелинейных приоритетов, в соответствии с аспектом настоящего изобретения.
На фиг.14 - схема, иллюстрирующая модель определения активности пользователя, в соответствии с аспектом настоящего изобретения.
На фиг.15 - схема, иллюстрирующая модель, основанную на интерфейсе, предназначенную для определения активности текущего пользователя, в соответствии с аспектом настоящего изобретения.
На фиг.16 - схема, иллюстрирующая модель, построенную на основе интерфейса, предназначенную для определения затрат на оповещение, в соответствии с аспектом настоящего изобретения.
На фиг.17 - схема, иллюстрирующая более подробную модель, построенную на основе интерфейса, предназначенную для определения затрат на оповещение, в соответствии с аспектом настоящего изобретения.
На фиг.18 - схема, иллюстрирующая более подробную модель, построенную на основе интерфейса, предназначенную для определения затрат на оповещение, с учетом потери точности, в соответствии с аспектом настоящего изобретения.
На фиг.19 - схема последовательности выполнения операций, иллюстрирующая методологию генерирования, и определения приоритетов в соответствии с аспектом настоящего изобретения.
На фиг.20 - схема, иллюстрирующая программу генерирования текста и классификатор, в соответствии с аспектом настоящего изобретения.
На фиг.21 схематично показана блок-схема, иллюстрирующая систематическое взаимодействие между исполнительным механизмом и анализатором контекста, в соответствии с аспектом настоящего изобретения.
На фиг.22 показана блок-схема, иллюстрирующая анализатор контекста, в соответствии с одним аспектом настоящего изобретения.
На фиг.23 - блок-схема, иллюстрирующая источники и приемники, в соответствии с аспектом настоящего изобретения.
На фиг.24 - график, изображающий использование уведомлений, отображаемых по времени.
На фиг.25 представлена иллюстрация примера интерфейса в соответствии с аспектом настоящего изобретения.
На фиг.26 иллюстрируется методология определения контекста пользователя путем прямого измерения в соответствии с аспектом настоящего изобретения.
На фиг.27 показана блок-схема, иллюстрирующая пример иерархически упорядоченного набора правил для определения контекста, в соответствии с аспектом настоящего изобретения.
На фиг.28 схематично показана блок-схема системы, иллюстрирующая анализ на основе логического вывода, выполняемый механизмом логического вывода, для определения контекста пользователя, в соответствии с аспектом настоящего изобретения.
На фиг.29 представлен пример байесовской сети, предназначенной для определения фокуса внимания пользователя для единичного периода времени, в соответствии с аспектом настоящего изобретения.
На фиг.30 представлена байесовская модель фокуса внимания пользователя среди контекстных переменных в различные периоды времени в соответствии с аспектом настоящего изобретения.
На фиг.31 показана схема последовательности выполнения операций, иллюстрирующая определение контекста пользователя, в соответствии с аспектом настоящего изобретения.
На фиг.32 - схема последовательности выполнения операций, иллюстрирующая процесс передачи уведомления, в соответствии с аспектом настоящего изобретения.
На фиг.33 - иллюстрация эволюционной цепи действия/условия в соответствии с аспектом настоящего изобретения.
На фиг.34 - блок-схема системы, предназначенной для организации взаимодействия прикладных программ, в соответствии с аспектом настоящего изобретения.
На фиг.35 - блок-схема персонализированной системы в соответствии с аспектом настоящего изобретения.
На фиг.36 - схема последовательности выполнения операций, представляющая методику, предназначенную для применения предпочтений, в соответствии с аспектом настоящего изобретения.
На фиг.37 - схема последовательности выполнения операций, представляющая методику, предназначенную для установки прикладной программы, в соответствии с аспектом предмета изобретения.
На фиг.38 - схема последовательности выполнения операций, представляющая методику, предназначенную для расширения прикладных программ, в соответствии с аспектом настоящего изобретения.
На фиг.39 - схема последовательности выполнения операций, предназначенная для деинсталляции прикладной программы, в соответствии с аспектом настоящего изобретения.
На фиг.40 - схема последовательности выполнения операций способа расширения программных констант среди прикладных программ в соответствии с аспектом настоящего изобретения.
На фиг.41 - схема последовательности выполнения операций, представляющая методику персонализированного функционирования компьютера, в соответствии с аспектом настоящего изобретения.
На фиг.42 схематично показана блок-схема, иллюстрирующая соответствующую рабочую среду, в соответствии с аспектом настоящего изобретения.
На фиг.43 - блок-схема среды расчета выборки, с которой может взаимодействовать настоящее изобретение.
Осуществление изобретения
Настоящее изобретение будет описано ниже со ссылкой на прилагаемые чертежи, на которых одинаковыми ссылочными позициями обозначены одинаковые элементы. Следует, однако, понимать, что чертежи и подробное их описание не предназначены для ограничения изобретения конкретной раскрытой формой. Скорее предполагается охватить все модификации, эквиваленты и альтернативы, находящиеся в пределах сущности и объема настоящего изобретения.
Используемые в данной заявке термины "компонент" и "система" предназначены для обозначения объекта, относящегося к компьютеру, как к аппаратным средствам, так и к комбинации аппаратных и программных средств, к программным средствам или выполняемым программным средствам. Например, компонент может представлять собой, но без ограничений, процесс, выполняемый с помощью процессора, процессор, объект, исполняемую программу, последовательность выполняемых действий, программу и/или компьютер. В качестве иллюстрации как прикладная программа, работающая на сервере, так и сервер могут представлять собой компонент. Один или больше компонентов могут находиться в пределах процесса и/или последовательности выполняемых действий, и компонент может быть локализован в одном компьютере и/или может быть распределен между двумя или больше компьютерами.
Используемый здесь термин "логический вывод", в общем, относится к процессу умозаключения о логических состояниях системы 10, окружающей среды и/или пользователя на основе набора наблюдений, зарегистрированных через события и/или данные. Логические выводы можно использовать для идентификации определенного контекста или действия, или они позволяют сгенерировать распределение вероятности, например, по состояниям. Логический вывод может быть вероятностным, то есть расчет распределения вероятности по представляющим интерес состояниям, на основе анализа данных и событий. Логические выводы также могут относиться к технологиям, используемым для составления событий высокого уровня из набора событий и/или данных. Такой вывод приводит к построению новых событий или действий на основе набора наблюдаемых событий и/или сохраненных данных события, независимо от того, скоррелированы или нет эти события в тесной временной близости, и от того, поступили или нет события и данные из одного или нескольких источников событий и данных.
Платформа информационного агента
Рассмотрим вначале фиг.1, на которой представлена система 100 информационного агента в соответствии с аспектом настоящего изобретения. Система 100 информационного агента содержит интерфейс (интерфейсы) 110 прикладного программирования (API, ИПП), компилятор 120, компонент 130 события, анализатор 140 контекста, накопитель 150 схематизированных данных, механизм 160 выполнения предпочтений, компонент 170 действия и компонент 180 уведомления. Система 100 образует платформу, которая обеспечивает выполнение различных прикладных программ информационного агента. Система 100 может представлять собой автономную систему или часть более крупной системы. Система 100 может, в соответствии с аспектом предмета изобретения, использоваться совместно с компьютерной операционной системой, в которой операционную систему можно использовать на множестве различных вычислительных устройств, включая, без ограничений, персональные компьютеры и мобильные устройства, такие как телефоны, и карманные персональные компьютеры (КПК, PDA). Система 100 также может применяться на серверах (например, на сервере SQL (ЯСЗ, язык структурированных запросов), сервере WinFS) и совместно с услугами, предоставляемыми по подписке. В соответствии с этим систему 100 можно использовать для обеспечения синергетического эффекта использования различных продуктов и услуг, обеспечивающих возможности информационного агента для клиентов, серверов и услуг облака-клиент-сервер (например, Outlook, Exchange и Hotmail).
API 110 включены в систему 110 для облегчения взаимодействия с системой 100. Разработчик может использовать API 110 для установки различных компонентов в системе 110 информационного агента. Кроме того, API 110 можно использовать для построения множества событий на основе одного или больше источников событий и/или текущего контекста пользователя, доступного для прикладных программ информационного агента, работающих в системе 100. Также API 110 можно использовать для отражения в логической схеме, сохраненной в накопителе 150 данных, и записи предпочтения в накопитель 150 данных. Следует понимать, что множество других вариантов использования API 110, которые должны охватываться объемом предмета изобретения, будут очевидны для специалистов в данной области техники после прочтения этого описания.
Накопитель 150 данных представляет собой разнообразно структурированный накопитель схематизированных данных. Схематизация данных, структурирование данных в виде хорошо известной и определенной структуры, является в особенности важной для предмета изобретения, поскольку позволяет обеспечить взаимодействие множества прикладных программ. Как будет более подробно описано ниже, накопитель 150 данных может использоваться прикладными программами информационного агента для сохранения, помимо прочего, данных, связанных с прикладными программами, таких как, например, таблицы событий и предпочтения. Кроме того, хотя накопитель 150 данных представлен как включенный в систему 100 информационного агента, следует понимать, что накопитель 150 данных может взаимодействовать с компонентами, находящимися вне пределов системы.
Компилятор 120 также включен в систему 100. Компилятор 120 выполняет компиляцию прикладных программ информационного агента. В частности, компилятор 120 компилирует схемы разработчика и предпочтения конечного пользователя. В соответствии с одним аспектом настоящего изобретения помогает переводить схемы и предпочтения конечного пользователя в данные для сохранения в виде таблицы, например, в накопителе 150 данных.
Система 100 также содержит компонент 130 события. События включают так, чтобы инициировать и представить информацию для оценки предпочтений. События происходят из источников событий, которые могут представлять собой внутренние изменения состояния, например, в отношении прикладной программы или данных и/или внешние изменения в окружающем мире. Компонент 130 события может захватывать события, подаваемые через API из прикладных программ и начинать оценку предпочтения. Например, события могут поступать через провайдера простого протокола пересылки электронной почты (SMTP, ПППП), который принимает новые сообщения SMTP, изменения данных в накопителе 150 данных, действия операционной системы, явные действия пользователя и/или действия других предпочтений. Компонент 130 события может также собирать события или принимать события от провайдеров третьей стороны и из множества различных типов источников, включая, без ограничений, сообщения, такие как Интернет-сообщения и сообщения, передаваемые на основе сети, а также телефонные сообщения и программные услуги, файлы XML (РЯР, расширяемый язык разметки гипертекста), прикладные программы и базы данных. Кроме того, компонент 130 события позволяет отслеживать и собирать данные с использованием различных способов. Примеры способов сбора данных включают, без ограничений, мониторинг директории в отношении добавления файлов, проверку системы и журналов регистрации событий для определенных типов входных данных, организацию ловушек для обнаружения изменений в таблицах базы данных и просмотр данных, предоставляемых сетевой услугой (услугами).
Также существует множество различных моделей, которые могут использоваться компонентом 130 события для сбора данных. Эти модели позволяют влиять на то, как часто и в каких условиях компонент 130 события будет собирать события из различных источников события.
Компонент 130 события может быть уведомлен или в него могут быть переданы данные, по меньшей мере, двумя путями. Компонент 130 события может ожидать, когда информация будет "подана" или передана в него, или он может "вытягивать" информацию из источника путем опроса источника и сбора каких-либо новых или обновленных данных. Например, если пользователь желает, чтобы его уведомляли каждый раз, когда изменяется заголовок на предпочитаемой им странице новостей, компонент 130 события может быть выполнен так, что он будет отслеживать эту страницу и будет выполнять поиск изменений, например, в тексте заголовка. При изменении текста компонент 130 события может выделить новые данные заголовка и передать их в систему 100, например, путем сохранения их в виде таблицы события в накопителе 150 данных. В приведенном выше примере компонент события отвечает за сбор требуемых данных, поскольку эти данные не поступают в компонент 130 события из источника события, как было бы в случае использования методики подачи.
Дополнительно или в качестве альтернативы компонент 130 события может получать данные события для системы 100 на основе плана или появления события, которое удовлетворяет заранее определенным критериям. Запланированный компонент 130 события может периодически включаться на основе установок, выполненных разработчиком прикладной программы. Запланированный компонент 130 события может включаться в работу, считывать и подавать данные нового события и затем отключаться до следующего запланированного момента включения. Компонент 130 события, управляемый событиями, также может отслеживать источник события, работая постоянно. После появления данных, которые удовлетворяют определенным критериям сбора, компонент события может их собирать или может обозначать появление события. В качестве альтернативы, компонент 130 события, управляемый событием, может только включаться в ответ на функцию внешнего вызова или в ответ на некоторый внешний стимул. Такая внешняя функция затем определяет, присутствуют ли допустимые данные события для их сбора, и использует компонент 130 события как средство для сбора таких данных. После сбора компонентом 130 события данных из внешнего источника события он может записывать эти данные в таблицу событий и сохранять таблицу событий в базе данных 150.
Независимо от того, какой способ (способы) или система (системы) используют для сбора и/или накопления событий, следует понимать, что для улучшения эффективности события могут быть записаны и обработаны в пакетном режиме. Пакет, как, в общем, определено здесь, может представлять собой набор данных (например, событий, предпочтений …), обрабатываемых как группа. Размер группы или пакета может быть определен и назначен разработчиком во время установки системы и/или указан пользователем, например, через панель управления.
Информация, собираемая анализатором 140 контекста, в соответствии с одним аспектом настоящего изобретения включает контекстную информацию, определенную анализатором. Контекстная информация определяется с помощью анализатора 140 путем распознавания местоположения пользователя и его состояния, в частности его внимания, по одному или нескольким источникам контекстной информации (не показаны), как более подробно описано в следующем разделе описания. Анализатор 3122 контекста, например, может обладать возможностью точно определять действительное местоположение пользователя с помощью системы глобальной навигации (GPS, СГН), которая установлена как часть автомобиля или сотового телефона пользователя. Анализатор также может использовать статистическую модель для определения вероятности того, что пользователь находится в данном состоянии внимания, учитывая фоновые оценки и/или наблюдения, собираемые с учетом такой информации, как день (рабочий, выходной или праздник), время суток, дата в календаре пользователя, и наблюдения о действиях пользователя. Данное состояние внимания можно затем использовать как событие или условие для предпочтения, определяемого пользователем.
Механизм 160 выполнения предпочтения также может быть вовлечен в обработку действий. Хотя логика предпочтений в действительности производит только набор результатов, она в качестве альтернативы называется здесь действиями, поскольку оказывает общее влияние на такие результаты. Использование механизма 160 предпочтительного выполнения для выполнения действий представляет собой всего лишь один способ выполнения действий. Действия также могут выполняться с помощью прикладных программ, которые просто считывают результаты предпочтений системы 100 и действуют по ним. При выполнении дейст