ПОИСК ПРОИЗВОЛЬНОГО ТЕКСТА И ПОИСК ПО АТРИБУТАМ В ДАННЫХ ЭЛЕКТРОННОГО РУКОВОДСТВА ПО ПРОГРАММАМ
SEARCH FOR ARBITRARY TEXT AND SEARCH BY ATTRIBUTES IN ONLINE PROGRAM MANUAL DATA

Листинг компьютерной программы
Набор распечаток текстового XML-файла, используемых в соответствии с изобретением, приведен в приложении после реферата и включен посредством ссылки в описание. Листинг текстового XML-файла является примером списка атрибутов (например, блок 310 на Фиг.3).
Область техники
Настоящее изобретение в целом относится к передаче мультимедийных данных, конкретно - к поиску произвольного текста и атрибутов данных электронного руководства по программам (EPG).
Предшествующий уровень техники
В цифровой телевизионной системе пользователи обычно осуществляют поиск информации о просмотре программ в электронном руководстве по программам (ЭРП, EPG). ЭРП представляет собой набор данных программы и метаданных программы, которые относятся к программам, доступным из пользовательского локального головного узла (канальных настроек поставщика программ) в течение интервала времени, например в течение одной недели. Пользователь отыскивает программы посредством указания ключевых слов для выполнения текстового поиска заголовков программ. Результат поиска, обычно заголовок программы, который удовлетворяет критериям поиска, называют "ответом".
Телевизионные программы могут также быть найдены посредством поиска по атрибутам программ, а не только ключевых слов из заголовка программы. Хотя заголовок программы может быть просмотрен в качестве одного из атрибутов программы, элемент "атрибут" используется в "более техническом" смысле в области мультимедиа для описания многих характеристик программы, не относящихся к заголовку. Как таковые, атрибуты включают в себя неограниченное количество характеристик программы и ее представления. Программа и ее атрибуты обычно вносятся в обширную иерархию информации ЭРП. Некоторые атрибуты, такие как "категории", могут описывать широкий набор программ, в котором разыскиваемая программа является элементом, то есть атрибут "категория" описывает иерархический уровень, включающий в себя разыскиваемую программу, так что пользовательский поиск атрибута "категория" приводит к "ответам" для каждой программы в категории. Поиск "вестернов", например, может приводить ко многим ответам, принадлежащим к кинематографическому и телевизионному жанру "вестерн".
Атрибуты могут также описывать такие характеристики, которые являются корректными для заголовка программы, то есть атрибуты могут описывать параметры, которые приводят к тому, что две версии одной и той же программы отличаются друг от друга. Этот более узкий тип атрибута описывает элементы ЭРП-иерархии "ниже" конкретной программы, то есть приводит к тому, что одна и та же программа имеет различные признаки. Например, одна версия фильма "Гора" с Спенсером Трэйси в главной роли может иметь атрибуты "черно-белый" и "монофонический", в то время как другая версия имеет атрибуты "цветной", "DOLBY Digital", "субтитры" и "не рекомендуется детям". Текстовый поиск, ограниченный элементами ключевого слова заголовка, приведет к извлечению обеих версий в качестве "ответа", в то время как текстовый поиск элементов ключевого слова заголовка, объединенного с поиском атрибута "Dolby", извлечет только версии DOLBY Digital и DOLBY Stereo sound system.
Обычный текстовый поиск по элементу - ключевому слову заголовка выполняется посредством ввода текста ключевого слова в поле поиска пользовательского интерфейса (ПИ, UI), и обычный поиск по атрибуту выполняется посредством ввода атрибута-критерия (например, в позицию для отметки) отдельно от ключевых слов текстового поиска в отдельной части ПИ, или полностью в отдельном ПИ. "Ответы" от отдельного текстового поиска и отдельного поиска по атрибутам логически объединяются только в конце обоих способов поиска для получения списка "ответов".
Фиг.1 показывает обычный текстовый поиск 100 и обычный поиск 102 по атрибутам, в котором критерии в виде текстовых ключевых слов и атрибутов вводятся отдельно, например, в поле поиска, отдельном от позиций для отметки атрибутов, которые отображены на одном или более ПИ.
На этапе 104 вводят текстовое(ые) ключевое(ые) слово(а). На этапе 106 атрибуты-критерии вводят отдельно от ввода ключевого(ых) слова(слов). Текстовый поиск выполняют 108 обычно в заголовке программы, используя введенное текстовое(ые) ключевое (ые) слово(а), и поиск по атрибутам выполняют 110, используя введенные критерии поиска по атрибутам. Каждая отдельная операция поиска выдает отдельные результаты 112, 114. Логическая схема 116 фильтрации может сравнивать результаты 112, 114 и выдавать список "ответов", который обычно удовлетворяет и текстовому поиску 100, и поиску 102 по атрибутам.
Так как пользователю обычно требуется выполнять поиск по атрибутам в отдельной части ПИ, многие ограничивают свой ввод данных поиска только запросами стиля ключевого слова из слов заголовка программы, в то время как другие неправильно вводят атрибуты в качестве ключевых слов для текстового поиска заголовков программы без понимания того, что цифровая телевизионная система интерпретирует атрибуты, введенные таким образом, как обычные элементы поиска заголовка программы.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Изобретение включает в себя машину поиска для поиска данных электронного руководства по программам (ЭРП) и соответствующие способы. В приведенном в качестве примера способе текстовая поисковая цепочка может быть нормализована в доступные для поиска элементы и элементы, интерпретируемые или как элементы текстового поиска, или как элементы поиска по атрибутам. Создаются запросы, использующие логику поиска изменяющейся сложности, согласно интерпретации элементов (терминов) в поисковой цепочке (строке поиска). Один или более поисков (операций поиска) в базах данных ЭРП и/или web-ресурсах ЭРП выполняют для каждого текстового элемента и каждого элемента-атрибута, и результаты ранжируются по релевантности согласно интерпретации поисковой цепочки. Объединенные результаты поиска могут быть ранжированы, отфильтрованы и сгруппированы для отображения пользователю. Результаты могут также отображаться прогрессивно при вводе пользователем каждого символа поисковой цепочки.
В одном варианте осуществления список атрибутов может использоваться для отделения текстовых элементов от элементов-атрибутов. Примерный список атрибутов может дополнительно содержать индексы или метаданные для каждого атрибута, которые задают направление поисков, выполняемых для каждого элемента-атрибута в поисковой цепочке.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является графическим представлением текстового поиска и поиска по атрибутам согласно предшествующему уровню техники.
Фиг.2 является графическим представлением примера поиска согласно изобретению.
Фиг.3 иллюстрирует блок-схему приведенной в качестве примера машины поиска.
Фиг.4 является графическим представлением примера поиска, выполненного приведенной в качестве примера машиной поиска согласно Фиг.3.
Фиг.5 является графическим представлением примера прогрессивного поиска, выполненного приведенной в качестве примера машиной поиска согласно Фиг.3.
Фиг.6 иллюстрирует блок-схему примера способа согласно изобретению.
Фиг.7 иллюстрирует блок-схему образцовой среды вычислительных устройств для реализации изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Краткий обзор
Быстрый, интуитивный и точный поиск данных электронного руководства по программам (ЭРП) важен для конечных пользователей цифровых телевизионных систем, включая и системы телевизионных приставок, присоединяемых к телевизионным системам, и системы персональных компьютеров (PC), способных принимать и записывать телевизионные передачи. Пример выполнения изобретения описывает машину поиска и связанные с ней способы ввода и интерпретации запросов пользовательского текста и атрибутов в цифровой телевизионной системе. Этот быстрый и точный механизм поиска интерпретирует, например, одиночный ввод пользователем текстовой строки и делает вывод о вероятном намерении пользователя, отображая набор результатов "ответа", который пытается согласовать интерпретацию того, что пользователь ищет. Такие возможности расширенного поиска важны, когда рынки цифровых видеомагнитофонов на основе ПК (DVR) и телевизионных приставок расширяется с большой скоростью.
Фиг.2 дает краткий обзор примера поиска 200 в базах данных ЭРП или других ресурсах. Примерный поиск 200 начинается с поисковой цепочки 202, вводимой или принимаемой от пользователя или извлекаемой из памяти. Приведенная в качестве примера машина 204 поиска принимает поисковую цепочку 202, выполняя несколько преобразований над элементами строки, чтобы сгенерировать возможные команды запроса различных уровней сложности.
Одиночная поисковая цепочка 202 может порождать один или более независимых поисков в зависимости от сложности и неопределенностей поисковой цепочки 202, и таким образом в соответствии с одним вариантом выполнения изобретения интерпретатор 214 строки пытается составить столько запросов (один, если можно) и столько ограничительных запросов, насколько возможно, на основании конкретной поисковой цепочки 202. Например, в одном варианте осуществления интерпретатор 214 строки получает минимальное количество кратких и/или ограничительных запросов посредством определения, какие элементы в поисковой цепочке 202 являются известными атрибутами, которые должны быть отысканы в качестве элементов поиска по атрибутам. Оставшиеся элементы в поисковой цепочке 202 могут быть возможными элементами-атрибутами или возможными текстовыми элементами, но определение известных атрибутов (например, использование базы данных или списка известных атрибутов) часто значительно сужает запрос. Таким образом, интерпретатор 214 строки "рассматривает" ряд поисков 206 текста, поисков 208 по атрибутам, условных поисков 210 текста и условных поисков 212 по атрибутам, используя различные способы и ресурсы, как раскрыто более подробно ниже со ссылками на Фиг.3.
В одном варианте осуществления грубое определение вероятного значения поисковой цепочки 202 выполняют посредством выполнения предварительного поиска по каждому нормализованному элементу в поисковой цепочке 202 или в базе данных ЭРП, и/или в словаре, доступном в оперативном режиме, и ранжирования результатов. Например, если "Ryan" является элементом поиска, то "Saving Private Ryan" может быть выдан вдобавок к "Ryan O'Neal" как вероятной интерпретации поиска, если это является более обычным в базе данных или словаре. В другом варианте осуществления интерпретатор 214 строки проверяет различные комбинации элементов поиска, пока не будет найдена или логически облегчен поиск одной из комбинаций в ресурсах ЭРП. Следовательно, элементы поиска "луна" и "бумага", встречающиеся случайно, но в качестве одиночных текстовых элементов в числе множества элементов-атрибутов в поисковой цепочке 202 вероятно могут привести к интерпретации "Бумажная Луна", которая будет высоко ранжирована, если фактически будет найдена в качестве "ответа" в результате запроса.
Интерпретатор 214 строки, таким образом, приходит к одной или более интерпретациям, которые приводят к запросу 216 (или запросам). Запрос 216 используется для выполнения одного или более поисков, приводящих к объединенному, отфильтрованному и/или ранжированному списку "ответов", который отображается пользователю. Этот приведенный в качестве примера поиск 200 является только одним примером того, как один или более поисков, чувствительных к тексту и атрибутам, могут возникать только из одной поисковой цепочки 202. Поисковая цепочка 202 подвергается синтаксическому анализу, преобразуется и анализируется, например, интерпретатором 214 строки для получения интерпретации элементов, осведомленной о тексте и атрибутах в поисковой цепочке 202.
В одном варианте осуществления объединенный, отфильтрованный и/или ранжированный список "ответов" обновляется, когда различные пути поиска возвращают результаты. Альтернативно, результаты могут прогрессивно появляться в объединенном, отфильтрованном и/или ранжированном списке "ответов", когда вводится поисковая цепочка 202, то есть, когда каждый символ добавляется к поисковой цепочке 202, инициализируется новый и/или измененный поиск.
Пример машины поиска
Фиг.3 более подробно иллюстрирует приведенную в качестве примера машину поиска 204 из фиг.2. Примерная машина 204 поиска соединена с возможностью обмена с одной или более базой(ами) 300 данных ЭРП. Некоторые особенности и процессы, выполняемые примерной машиной поиска 204, описаны ниже, но конечно, примерная машина 204 поиска может иметь признаки и выполнять обработку, которые являются дополнительными к тем, что показаны, например, индексацией содержимого базы данных. Различные реализации примерной машины 204 поиска будут, конечно, работать с различными языками общения людей. Таким образом, некоторые признаки примерной машины 204 поиска могут не применяться или могут быть не необходимы для некоторых языков.
Вообще, примерная машина 204 поиска выполняет поиск(и) ЭРП в базе данных посредством отображения сначала приемника 301 поисковой цепочки, например интерфейса прикладной программы (API), который принимает выражения для поиска и обращается к набору ограничений, сгенерированных или запрограммированных пользователем. После формирования запросов, частично основанных на ограничениях, примерная машина 204 поиска возвращает набор результатов.
Приемник 301 поисковой цепочки может принимать поисковую цепочку 202 через один или более UI (интерфейсов пользователя, ИП). ИП для поиска данных ЭРП может быть оптимизирован для или "двухфутовой" или "десятифутовой" системы. Двухфутовая система является цифровой телевизионной системой, в которой пользователь имеет возможность ввода информации, типичную для систем на основе ПК. Например, двухфутовая система может использовать полную клавиатуру, мышь и монитор. Десятифутовая система, с другой стороны, является цифровой телевизионной системой, в которой пользователь имеет ограниченную возможность ввода по сравнению с двухфутовой системой. Десятифутовая система может быть ПИ, сгенерированным телевизионной приставкой, и поисковой цепочкой 202, введенной с использованием дистанционного управления с относительно малым количеством клавиш для активации.
Поскольку ввод данных и навигация по ПИ обычно являются более трудными для десятифутовой системы, полезно сокращать (минимизировать) количество данных, необходимых для фиксации (захвата) намерения пользователя при вводе данных поиска в десятифутовую систему, в то же время максимизируя точность и мощность поиска.
Приемник 301 поисковой цепочки может, конечно, принимать пользовательские вводимые данные из любого числа полей для ввода, позиций для ввода (кнопок-флажков), выключателей и/или устройств. Если вводимыми данными являются только одиночная поисковая цепочка 202, примерная машина 204 поиска может, однако, "декодировать" поисковую цепочку для разделения информации поиска текста и по атрибутам и конструирования соответствующих запросов. Блок 302 нормализации, связанный с возможностью обмена с приемником 301 поисковой цепочки, преобразует нарушения порядка (т.е. преобразует формат "не-стандартизированных" элементов) в поисковой цепочке 202 в элементы, которые могут последовательно применяться в различных запросах. Нестандартные введенные данные являются элементом или частью поисковой цепочки 202, которые имеют текстовые, символьные, языковые особенности (формальности) и/или особенности пунктуации, которые не соответствуют особенностям баз(ы) 300 данных ЭРП, в которых(ой) осуществляется поиск. Нестандартные вводимые данные вносят в интерпретатор 304 строки риск частичного или полного непонимания и могут приводить к отсутствию "ответов", когда их особенности не соответствуют просматриваемой(ым) базе(ам) 300 данных ЭРП.
В качестве части запроса на поиск приемник 301 поисковой цепочки часто принимает строку символов, введенных пользователем, например "The West Wing". Блок 302 нормализации или другой модуль примерной машины 204 поиска может использовать разделение на элементы, чтобы попытаться разбить фразу на каждое из слов, которые составляют его, выполняя текстовый поиск для каждого слова в отдельности. Это разделение на отдельные слова имеет преимущество, заключающееся в обнаружения совпадений, когда пользователь пропустил или перестроил слова в известном заголовке, но может также генерировать большее количество "ответов", чем предполагалось пользователем. Элементы поиска отдельных слов часто отделяются штриховой и штрихпунктирной граничной линией. Блок 302 нормализации может также удалять дополнительные пробелы между словами цитируемой фразы. Пользователи не всегда вводят поисковую цепочку 202, используя правильный регистр ввода символов. Например, "The West Wing" может быть напечатано как "the west wing". Дополнительно, информация базы данных ЭРП иногда имеет необычный регистр ввода во фразах, например "ВОСКРЕСНЫЙ БИЛЕТ" вместо "Воскресный Билет" или "воскресный билет". Блок 302 нормализации может выполнять нормализацию регистра ввода символов, преобразуя каждый элемент поиска и также текст просматриваемой базы данных ЭРП к общему регистру ввода (или верхний или нижний), например, следуя правилам текущего региона.
Блок 302 нормализации может также нормализовать некоторые символы и метки. Диакритическим знаком является объединяющий символ, например ударение или умляут, которые могут появляться во многих алфавитах иностранных языков, обычно сопровождая гласные. В одном варианте осуществления изобретения элементы поиска и текст просматриваемой базы данных сравнивают так, как будто диакритические знаки отсутствуют. Символы и специальные символы алфавита могут также быть перезаписаны и/или добавлены к элементам поиска блоком 302 нормализации, чтобы облегчить точный поиск. Например, символы, например, немецкого "β" могут быть перезаписаны как "ss", так что поиск, содержащий немецкое "β", будет приводить к "ответу", если или форма "Р", или форма "ss" присутствуют в разыскиваемом тексте.
Нормализация символов включает в себя удаление или преобразование символов, таких как пунктуация, и из элемента (ов) поиска и просматриваемого текста при поиске более точного соответствия. Например, точки в сокращениях, например "F.B.I.", и звездочки в "M*A*S*H" должны быть удалены. Символы, такие как "&" и "@", могут быть преобразованы в их словесную форму "and" ("и") и "at" ("в"). Символы, замененные буквами, могут быть преобразованы, например, знак "$" в "Vega$". Эта нормализация символов может приводить к дополнительным поискам. Например, примерная машина 204 поиска может искать и "Vegas" и "Vega$" после того, как блок 302 нормализации обработал поисковую цепочку 202, вместо использования только одной формы посредством соглашения и нормализации как элемента поиска, так и текста, являющихся предметом поиска, к одной обычной форме.
Артикли речи, также как и повсеместно используемые, но не очень описательные, слова, например, "a", "the", "is", "are", "el", "la", "los", "les" и т.д., могут быть удалены из элементов поиска блоком 302 нормализации, чтобы ускорить обработку. В некоторых вариантах осуществления артикли и повсеместно используемые слова не удаляются или отыскиваются условно, если они являются единственными словами, присутствующими в поиске, или если первый проход поиска не выдает никаких результатов.
Примерная машина 204 поиска может просматривать поисковую цепочку заранее в поисках лексем, которые изменяют значение поиска некоторым образом. Например, предшествование слову знака "минус" ("-") может указывать, что слово не должно появиться в совпадении. Группировка элементов вместе в кавычках может указывать, что группа должна рассматриваться только когда элементы в группе появляются в данном порядке и вместе. Слова "AND" ("И"), "OR" ("ИЛИ") и "NOT" ("HE") могут использоваться специальным образом, чтобы влиять на операторы поиска. Это предоставляет пользователю большую степень управления поиском.
В одном варианте осуществления блок 302 нормализации, или другие компоненты машины 204 поиска, может применять проверку правильности написания к поисковой цепочке 202 после ее ввода. Используются несколько стратегий, чтобы помочь пользователю избежать ошибок при вводе поисковой цепочки 202. Пользователь может быть предупрежден о возможном присутствии слов с орфографической ошибкой в тексте поиска, прежде чем будет выполнен поиск, или через диалоговое окно записи по буквам или посредством другого текстового индикатора, например, подсветкой INTELLISENSE "волнистой строкой". Альтернативно, проверка правильности написания может быть задержана до конца выполнения поиска и выполнена, только если никакие точные результаты не найдены. Наконец, проверка правильности написания может быть выполнена прозрачным образом. Исправленные формы слов, интерпретируемых блоком 302 нормализации как имеющих орфографическую ошибку, могут быть автоматически добавлены в конец к поисковой цепочке 202 и запрошены в качестве операций условного поиска. Ранжирование уместности (описано ниже) может использоваться затем, чтобы понизить ранг этих условных элементов поиска, если поиски выдают "ответы", которые действительно содержат элементы поиска с орфографической ошибкой.
Блок 302 нормализации может также использовать автокоррекцию, которая является упрощенной формой проверки правильности написания. Вместо сравнения каждого элемента поиска со словарем слова исправляют во время их ввода, используя простую поисковую таблицу слов с традиционно допускаемыми орфографическими ошибками. В редких случаях, в которых автокоррекция дает неправильное решение (исправление слова, в котором пользователь преднамеренно хотел сделать орфографические ошибки), пользователь может однократно выполнить отмену автоматического исправления. Когда пользователь набирает (вводит) текст, блоком 302 нормализации также может быть представлен ниспадающий список с возможными завершениями слова на основании заранее существующего полнотекстового индекса. Это позволяет пользователю более быстро вводить критерии поиска.
Интерпретатор 304 строки соединен с возможностью обмена с блоком 302 нормализации. В одном варианте осуществления интерпретатор 304 строки включает в себя преобразователь 306 строки и идентификатор 308 атрибутов, соединенный с возможностью обмена со списком 310 атрибутов. Интерпретатор 304 строки может также быть соединен с возможностью обмена с таблицей ограничений 312 поиска.
Преобразователь 306 строки может проверять элементы поиска в поисковой цепочке 202 или отдельно, или в комбинации, чтобы получить интерпретацию для поисковой цепочки 202 и определять, была ли строка перестроена. Преобразователь 306 строки может использовать схему перестановки и/или перемежения, чтобы попробовать комбинации различных элементов в пределах поисковой цепочки 202 и в различном порядке, чтобы идентифицировать возможные атрибуты, которые пользователь пробовал искать. Таким образом, "dolby the closed mile green captioning" может выдать элементы-кандидаты поиска, включающие в себя "dolby", "the green Mile", и "closed captioning". Если окажется, что два или более элементов должны быть сгруппированы вместе, преобразователь строки может перемещать элементы и/или прозрачным образом добавлять положенную в основу группу к элементам поиска в поисковой цепочке 202. Чтобы выполнить это, преобразователь 306 строки может проверять элементы поиска по списку 310 атрибутов и/или таблице ограничений 312 поиска.
Преобразователь 306 строки может положить в основу элемент поиска, чтобы расширить возможности поиска. "Морфологический поиск" является процессом удаления префиксов и/или суффиксов из элемента поиска, чтобы обеспечить корню элемента поиска представлять первоначальный элемент поиска. Это обеспечивает большее количество "ответов", захватывая большее количество вариантов первоначального элемента поиска. Например, слово "divine" ("божественный") может быть урезано до "divin", так чтобы оно обеспечивало соответствие для "divinity" (богословие), "divination", "diviner" и т.д. Преобразователь 306 строки может использовать известный алгоритм морфологического поиска, например алгоритм "Porter" (проводник). Морфологический поиск имеет преимущество, заключающееся в генерации "ответов", которые могут быть пропущены, если элемент поиска был запрошен точно, но имеет недостаток, заключающийся в том, что часто генерирует не относящиеся к теме "ответы". Этот эффект может быть уменьшен, используя блок ранжирования уместности или в преобразователе 306 строки, или в другой части примерной машины 204 поиска, например компиляторе результатов (описан ниже). В некоторых вариантах осуществления морфологический поиск требует этапа предварительной обработки данных, который может привести к уменьшению быстроты поиска. Поэтому в некоторых вариантах осуществления морфологический поиск ограничивается специальными словами, например редкими словами, которые определены индексом (показателем) частоты появления.
Преобразователь 306 строки может выполнять дополнительные преобразования элемента и строки. Разветвление на основе слова использует генерацию набора элементов поиска из одиночного элемента. Может использоваться список связанных слов. Например, элемент поиска "NFL" может привести к элементу "футбол", добавляемому к поисковой цепочке 202, и таким образом "NFL" может порождать дополнительный поиск для слова "футбол". Элемент "тридцать" может быть добавлен к поисковой цепочке 202, если элемент "30" появляется в поисковой цепочке 202, и т.д. Связанные элементы могут возникать из списка исключений, относящегося к данным, и/или списка исключений, сохраненного в определяемой пользователем или программно определенной таблице 312 ограничений. Разветвление на основе слова может также замедлять поиск и может генерировать не относящиеся к теме результаты, но он также генерирует "ответы" в некоторых случаях, когда ни один не был бы найден. Блок ранжирования уместности может использоваться для того, чтобы разместить менее уместные результаты внизу списка 222 "ответов".
Также может использоваться "размножение". "Размножение" - это простая форма морфологического поиска слова, который генерирует дополнительные элементы поиска, основанные на сингулярной или множественной форме первоначального слова. Например, если элементом поиска является "младенец", то может быть включен дополнительный элемент поиска "младенцев".
Необязательно, интерпретатор 304 строки или другой компонент машины 204 поиска может добавлять синтаксический анализ естественного языка к другим особенностям и процессам интерпретации строки. Этот тип синтаксического анализа включает в себя преобразование фразы поиска, например "Когда Звездные Войны показываются в Dolby Digital?", в осуществимые элементы поиска, которые удовлетворяют пользовательскому запросу на поиск. Хотя синтаксический анализ естественного языка является очень мощным, грамматика обычно ограничивается пользовательским выбором значений существительного/глагола. Дополнительно, учитывая увеличенное число слов в поисковой цепочке 202 на естественном языке (относительно логического поиска элементов), поиск на естественном языке не может быть оптимальным выбором для десятифутовой системы, в которую элементы поиска должны быть введены, используя вспомогательную клавиатуру для удаленного управления. Наконец, синтаксический анализ естественного языка может требовать большей мощности обработки для осуществления.
Особенности и процессы, выполняемые преобразователем 306 строки и другими модулями примерной машины 204 поиска, описаны в некотором порядке, но порядок, в котором эти особенности и процессы представлены, не предназначен для указания предложенного порядка использования в конвейере обработки. Во многих случаях упорядочение и/или эффективность каждой из этих особенностей и процессов важны для сгенерированных результатов. Идентификатор (блок идентификации) 308 атрибутов отделяет текстовые элементы поиска от элементов-атрибутов поиска различными способами, например сравнением кандидата или потенциальных элементов поиска с атрибутами в списке 310 атрибутов. Идентификатор 308 атрибутов может также получать информацию обратной связи от результатов поиска текста и применять процесс удаления элементов в поисковой цепочке 202, чтобы таким образом найти атрибуты. В этом случае идентификатор 308 атрибутов может постулировать различные булевые соотношения между элементами поиска. Например, элементы поиска "green mile dolby" могут интерпретироваться как "'green' ИЛИ 'mile' И dolby" или "'зеленая миля' И dolby", но может порождать поиск, который возвращает только экземпляры "The Green Mile" в DOLBY Digital или DOLBY* Sound Stereo из-за второго набора постулированных булевых отношений.
Список 310 атрибутов, конечно, может быть сохранен в памяти компьютера для быстрой интерпретации строки. Если в списке 310 атрибутов используется список из приблизительно двух сотен атрибутов программ телевидения, тогда, возможно, фактически все атрибуты, релевантные к программам телевидения, которые могут быть введены пользователем, могут быть идентифицированы идентификатором 308 атрибутов и отделены от текстовых элементов поиска.
Представление примерного списка 310 атрибутов приведено в качестве примерной структуры данных расширяемого языка разметки (XML) в Приложении А: "Примерный список атрибутов". Это представление содержит только типовой выбор телевизионных программ, атрибутов, элементов и значений. Соответственно типичный список 310 атрибутов может содержать большее или меньшее количество записей, чем те, что показаны, и/или отличные элементы, атрибуты и/или значения.
Как демонстрируется XML-версией примерного списка 310 атрибутов в Приложении А, список 310 атрибутов не должен ограничиваться последовательным массивом элементов-атрибутов, который обеспечивает только значения истина/ложь или соответствие "существует/не существует", когда представлен с элементом-кандидатом для поиска атрибута. Список 310 атрибутов может содержать метаданные 311 для, по меньшей мере, некоторых из атрибутов, причем метаданные атрибута связывают атрибут с ресурсами поиска и со значениями для использования в поиске. Метаданные 311 могут также связывать атрибут с набором логических условий поиска в таблице 312 ограничений. Кроме того, список 310 атрибутов может содержать индекс(ы) 313, чтобы связать атрибут в списке 310 атрибутов с другими связанными атрибутами и значениями, поиск которых может быть разумно осуществлен для получения "ответов", соответствующих поисковой цепочке 202.
В некоторых вариантах осуществления индекс(ы) 313 и/или метаданные 311 могут содержать относительно сложные ветвления логической и/или древовидной структуры логических условий поиска, которые могут генерировать "ответы", соответствующие намерению пользователя при построении поисковой цепочки 202. Например, если идентификатор 308 атрибутов проверяет список 310 атрибутов в поисках элемента "стерео", соответствие может быть найдено посредством обозначения истинного наименования атрибута и/или обозначения, что поля поиска в информации ЭРП, вероятно, содержат атрибуты "стерео" программ; например, программы "стерео" могут быть найдены, просматривая поля "ScheduleEntryAttribute" записей в базе данных. Далее, найдя, что элемент-кандидат поиска удовлетворяет критериям атрибута и задавая поля поиска в данных ЭРП, список 310 атрибутов может также выдавать одно или более точных значений, например "MSEPGA_STEREO", которые могут представлять элемент поиска, ключ или категорию, с которой (или в которой) нужно найти стереопрограммы.
Возможность индексации списка 310 атрибутов может быть сильно разветвленной. Например, если идентификатор 308 атрибутов проверяет список 310 атрибутов на наличие элемента-кандидата для поиска "спортивные состязания", список 310 атрибутов может идентифицировать "спортивные состязания" в качестве атрибута, далее идентифицировать его как тип "категория" атрибута, и выдавать команду идентификатору 308 атрибутов выполнить перекрестную проверку трех других категорий для относящихся программ: "новости", "частности" и "MSEPGC_SPORTS".
Применяя особенности и процессы, описанные выше, для преобразователя 306 строки и идентифицируя атрибуты и связанные метаданные посредством списка 310 атрибутов, интерпретатор 304 строки получает набор элементов поиска, который пытается аппроксимировать намерение пользователя при построении поисковой цепочки 202. Другими словами, интерпретатор 304 строки получает набор текстовых элементов поиска и элементов поиска атрибута, которые имеют высокую вероятность "ответов", что соответствуют тому, что большинство пользователей искало бы, если они конструировали поисковую цепочку 202. Например, если пользователь создает поисковую цепочку "scifi dolby letterbox", примерная машина 204 поиска может возвращать список "ответов" в качестве показов научной фантастики, показываемых в DOLBY Stereo Sound в почтовом ящике. Если пользователь создает поисковую цепочку "primetime network comedies", примерная машина 204 поиска может возвращать список 222 "ответов" показов комедий в лучшее время телепередач на сетевых станциях. Если пользователь конструирует поисковую цепочку "drama rated pg", примерная машина 204 поиска может возвращать список 222 "ответов" показов драмы с оценкой "не рекомендуется смотреть детям". Если пользователь конструирует поисковую цепочку "Discovery" (Открытие), примерная машина 204 поиска может возвращать список 222 "ответов" показов со словом "открытие" в заголовке и каналов со словом "открытие" в названии канала, например "DISCOVERY CHANNEL".
Генератор 314 запросов соединен с возможностью обмена с интерпретатором 304 строки. Генератор 314 запросов может включать в себя формирователь 316 текстового запроса и формирователь 318 запроса атрибута. В одном варианте осуществления формирователь 316 текстового запроса и формирователь 318 запроса атрибута составляют настолько (часто только один) и такой ограничительный запрос или запросы, насколько это возможно для поиска в базе(ах) 300 данных ЭРП и доступных через сеть ресурсах 334 ЭРП. Если составлено множество запросов, то результаты могут быть объединены.
Для каждого элемента поиска, который принят от интерпретатора 304 строки, генератор 314 запросов может применять оператор, который воздействует на способ, которым найдено соответствие во время запроса базы(баз) данных 300 ЭРП или web-доступных ресурсов 334 ЭРП. В одном варианте осуществления каждый оператор определяет позицию или конфигурацию, в которых элемент поиска должен (или не должен) быть найден в тексте, в котором осуществляют поиск. Несколько примерных операторов описаны ниже. "Точный" оператор указывает, что элемент поиска должен точно соответствовать данной части текста, в котором осуществляют поиск, то есть, если генератор 314 запросов осуществляет поиск некоторого типа поля, элемент поиска должен точно соответствовать полю. Оператор "Начиная с (фраза)" указывает, что элемент поиска должен быть найден в начале поля текста, в котором осуществляют поиск. Оператор "Начиная с (слово)" указывает, что элемент поиска должен быть началом слова в пределах поля текста, в котором осуществляют поиск. Оператор "содержит" указывает, что элемент поиска может быть найден в любом месте в поле текста, в котором осуществляют поиск.
Для каждого из описанных выше операторов может использоваться "противоположный оператор" (форма НЕ) для указания, что "ответ" не должен быть сгенерирован машиной 204 поиска, если соответствующее условие истинно. Операторы поиска "AND" (И) и "OR" (ИЛИ) также могут использоваться для указания, должны ли быть найдены все элементы поиска в поле текста, в котором осуществляют поиск, или если должны соответствовать только некоторые из элементов поиска.
Администратор 319 данных использует различные элементы поиска, сформированные генератором 314 запроса, для выполнения поиска в базе(ах) 300 данных ЭРП. В некоторых вариантах осуществления изобретения администратор 319 данных может быть или может использовать SQL (язык структурированных запросов) процессор базы данных или процессор базы данных JET, и если это так, то может комбинировать некоторые из функций компилятора 320 результатов. Поэтому администратор 319 данных может внутренним образом выполнять множество способов поиска файлов и комбинировать их. Соответственно в базе(ах) 300 данных ЭРП может применяться ряд различных форматов (например, XML, двоичный, JET, SQL и т.д.), несколько более подходящих для хранения и несколько более подходящих для передачи по сетям. В зависимости от ограничений среды передачи оптимальный формат для передачи может отличаться от оптимального формата для хранения и/или поиска. Несколько из этих вариантов выборов формата и их относительные сильные и слабые стороны описаны ниже.
Некоторые услуги по предоставлению руководства (по программам) передают клиентам многодневные руководства, используя XML, который отформатирован так, чтобы соответствовать определенной схеме. XML является удобным форматом для работы из-за легкости его понимания, удобочитаемости и наличия большого количества существующих инструментальных средств. XML, однако, не является очень компактным форматом. По этой причине руководство eHome сжимают в файл в формате "CAB" перед передачей и затем декомпрессируют после того, как прием закончен.
В больших XML-файлах нелегко осуществлять поиск. Например, десятидневные ЭРП данные могут быть записаны в файл размером 6.6 мегабайт. Загрузка XML файла такого размера в объектную модель документа (DOM) требует почти девяноста мегабайт оперативной памяти. Просмотр такого большого файла в течение каждого поиска непрактичен. По этим причинам формат XML может использоваться главным образом для передачи и постоянного хранения. Когда много клиентов загружает файл данных ЭРП, нетекстовые данные сохраняют в памяти, и все основанные на тексте данные записывают в отображенный в память файл для поиска. Некоторые API данных ЭРП могут иметь заказную базу данных для приспособления изменений в данных и/или образцах поиска.
Другим выбором для базы(баз) данных 300 ЭРП является двоичный формат. Хотя двоичные форматы часто очень компактны, они обычно полагаются на заказные инструментальные средства для их генерации и просмотра. Подобно XML файлам двоичные файлы обычно не оптимальны для поиска и могут требовать альтернативного промежуточного формата хранения для этой цели.
Машина 204 поиска может также использовать процессор базы данных JET, который поддерживается инструментальными средствами базы данных для осуществления запросов к базе(базам) 300 данных ЭРП. Повторно распространяемый интерфейс API, называемый MDAC, обеспечивает многофункциональные интерфейсы API для создания и запроса баз данных JET, используя SQL, ADO или OLE базы данных. Одно из преимуществ использования базы данных JET для базы(баз) 300 данных ЭРП - простой поиск, использующий промышленный стандарт SQL команд и простой просмотр с использованием стандартного программного обеспечения. Производительность поиска с использованием JET обычно больше, чем для многих других способов (одним из исключений является SQL-сервер) до тех пор, пока индексы соответственно сгенерированы и сохранены. Базы данных JET также хранят в одиночном файле, облегчающем манипуляции с полной базой(ами) 300 данных ЭРП.
Подобно процессору базы данных JET SQL представляет хорошо поддержанную платформу базы данных для базы(баз) 300 данных ЭРП с большой библиотекой инструментальных средств и интерфейсов API. Хотя хорошо известная современная версия SQL-сервера выполняется только на серверных компьютерах, версия SQL-сервера, называемая MSDE (или SQL Desktop Edition), может быть установлена на многих современных версиях программного обеспечения операционной системы. Поиск в хорошо индексированной базе данных SQL, вероятно, является более быстрым и более гибким, чем другие известные методы поиска данных. Базы данных SQL, однако, не легко передаются по сети. Может потребоваться этап пост-обработки загрузки данных ЭРП в базу данных SQL из другого формата, чтобы использовать MSDE. Также в отличие от серверной версии MSDE не может всегда поддерживать поиск на естественном языке или полнотекстовую индексацию (хотя оба могут быть эмулированы, используя другие способы).
Следует отметить, что во многих случаях собственный формат базы(баз) 300 данных ЭРП может не быть представлен в конечной форме, требуемой примерной машиной 204 поиска. Например, может быть необходимо сгенерировать индексы данных или может быть необходимо считывать данные в альтернативную базу данных, которая оптимизирована для поиска, но трудно передается по сети. В одном варианте осуществления примерная машина 204 поиска даже отклоняет нежелательные данные и объединяют определенные пользователем данные для более быстрого поиска.
Если используются индексы данных, машина 204 поиска может осуществлять полнотекстовую индексацию. Это включает в себя генерацию инвертированного (обратного) индекса в каждый элемент основанных на тексте данных ЭРП. Полнотекстовая индексация значительно увеличивает эффективность поиска за счет большей базы(баз) 300 данных ЭРП и увеличенного времени для генерации индексов.
Машина 204 поиска может также использовать индексацию сигнатуры. Подобно полнотекстовой индексации индексация сигнатуры является способом быстрой идентификации возможных совпадений поиска. В базе(ах) 300 данных ЭРП каждая строка данных (программа, канал, и т.д.) имеет двоичную сигнатуру, подобную хэш-функции, которая указывает, какие символы имеют место в каждом слове. Выполнение аналогичных вычислений над элементом поиска и словом из текста, в котором осуществляют поиск, а затем сопоставление результатов, используя двоичную арифметику, позволяет получить быструю аппроксимацию того, соответствует ли слово элементу поиска. Во вторых, более интенсивный поиск с использованием процессора может быть затем необходим, чтобы определить, должна ли строка, содержащая совпадающее слово, генерировать "ответ".
Как упомянуто выше, изобретение не ограничивается способностью машины 204 поиска получать текстовые элементы поиска и элементы-атрибуты поиска из одиночной поисковой цепочки 202. Примерная машина 204 поиска может выводить (получать) элементы поиска из множества источников, например различных полей ввода в ПИ в дополнение к выводу (получению) текстовых элементов поиска и элементов-атрибутов поиска из одиночной поисковой цепочки 202. Например, в некоторых продуктах атрибуты, такие как "Stereo", "closed capturing", "start time" (начальное время) и "year of release" (год выпуска), являются часто доступными в качестве элементов поиска, но вводятся в некоторые ПИ посредством позиций для отметки, "радио-кнопок" и т.д. Они могут также быть адаптированы примерной машиной 204 поиска посредством передачи в API поиска в качестве элементов поиска. Эта адаптация не ограничивает машину 204 поиска от получения других элементов-атрибутов поиска и текстовых элементов поиска из одиночной поисковой цепочки 202.
Примерная машина 204 поиска может запрашивать пользователя выбирать поля, по которым пользователь желает осуществлять поиск. Так, в дополнение к автоматическому поиску по всем областям (например, заголовку, описанию, каналам, составу исполнителей и т.д.) и ранжированию "ответов" по их предсказанной уместности примерная машина 204 поиска может также позволять пользователю вручную сужать области и/или поля поиска.
Примерная машина 204 поиска также включает в себя компилятор 320 результатов, соединенный с возможностью обмена с администратором 319 данных и интерпретатором 304 строки. Приемник 322 "ответов" в компиляторе 320 результатов собирает "ответы" от различных модальностей (особенностей) поиска или от одиночной модальности поиска, осуществляющей поиск во множестве баз данных. Поскольку множество операций поиска могут происходить одновременно, приемник "ответов" может содержать накопитель приема или буфер, который может хранить "ответы", временно ожидающие дальнейшей компиляции.
В примерной машине 204 поиска компаратор/фильтр 324 поиска соединен с возможностью обмена с приемником 322 "ответов" и с интерпретатором 304 строки. Компаратор/фильтр 324 поиска сверяет "ответы" с интерпретацией строки, установленной интерпретатором 304 строки. Как описано выше, интерпретатор 304 строки получает рабочую гипотезу, или интерпретацию, о намерении пользователя в построении поисковой цепочки 202 посредством преобразователя 306 строки и идентификатора 308 атрибутов. Если в компиляторе 320 результатов "ответ" не согласуется с интерпретацией, "ответ" может быть отфильтрован, то есть удален из отображенного списка 222 "ответов" или понижен в ранге с целью ранжирования в отображенном списке 222 "ответов". В одном варианте осуществления компаратор/фильтр 324 поиска просматривает результирующий набор "один-к-одному", чтобы определить, является ли каждый результат действительно "ответом". Это более вероятно в случае, если запрос не может быть "разложен" до достаточно мелкого уровня, чтобы исключить все промахи и в то же время все еще включать в себя все "ответы". В качестве примера интерпретации, если первоначальной поисковой цепочкой 202 является "duck dolby" и интерпретатор 304 строки поддерживает интерпретацию "Howard the Duck, by Thomas Dolby" сверх интерпретации "Donald Duck in Dolby Digital", то "ответ" "Donald Duck" может быть полностью удален из списка 222 "ответов" или, по меньшей мере, ему может быть присвоен более низкий ранг.
Блок 326 ранжирования результатов может переупорядочить "ответы" для отображения по уместности или другим критериям, или когда все операции поиска закончены, или в некоторых вариантах осуществления, когда результаты приняты приемником 322 "ответов" по частям и переданы через компаратор/фильтр 324 поиска. "Ответы", сгенерированные машиной 204 поиска, могут часто быть ранжированы так, что результаты "ответов" могут быть отсортированы для отображения таким образом, чтобы представить наиболее вероятные результаты первыми, то есть те "ответы", которые являются самыми близкими к интерпретации намерения пользователя при построении поисковой цепочки 202 (как предполагается интерпретатором 304 строки). Точные совпадения каждого элемента поиска, например, могут быть предоставлены с ранжированием уместности 100% и заданным высшим приоритетом. "Ответам", которые только совпадают с текстом, в котором должен быть осуществлен поиск, после некоторого преобразования, например, морфологического поиска или коррекции произношения, обычно задают более низкую уместность.
Фильтр 328 включений может быть соединен с возможностью обмена с блоком 326 ранжирования результатов. В некоторых вариантах осуществления фильтр 328 включений может быть программно установлен для выполнения фильтрации некоторым образом, в то время как в других вариантах осуществления фильтр 328 включений может быть настроен пользователем. Например, фильтр 328 включений может быть установлен или настроен так, чтобы полностью исключить любые результаты "ответов", которые являются уместными менее чем на 100%, когда найден, по меньшей мере, один "ответ", уместный на 100%. В других случаях фильтр 328 включений может быть установлен или настроен так, чтобы отсекать длинный список результатов, отображая только некоторое число наивысших результатов, несмотря на то, что некоторые из результатов имеют уместность 100%. В других случаях фильтр 328 включений может только позволять отображать результаты "ответов", которые имеют ранг, назначенный выше некоторого процентиля. Поэтому, если поиск осуществляют для кинофильма "Where the Red Fern Grows" ("Там, где растет красный папоротник") и единственным "ответом" является "The Red Skelton Hour" с уместностью, ранжированной только 15%, то фильтр 328 включений может отображать сообщение "никаких результатов не найдено".
Фильтр 328 включений может также ограничить число результатов определенным значением и/или ограничивать результаты в зависимости от управления-источника и/или пользователя, проводящего поиск. В контексте записи фильтр 328 включений может устранять результаты, которые не будут иметь отображения в будущем.
Блок 330 обновления отображения включен в компилятор 320 результатов, чтобы управлять дисплеем 332, на котором представляется пользователю список "ответов". Имеется много возможных способов представить список "ответов" результатов поиска. "Ответы" могут быть отображены в алфавитном порядке или хронологически. Результаты могут также быть сгруппированы и ранжированы по уместности. В некоторых вариантах осуществления блок 330 обновления отображения может быть "центром обмена информацией" для результатов, то есть блок 330 обновления отображения может сохранять количество того, что отображается. Если результаты "ответов" принимаются постепенно, то блок 330 обновления отображения может выполнять интегрирующую функцию объединения старых результатов с новыми результатами и принятием решения, какие результаты отображать. В течение поиска по частям блок 330 обновления отображения может разделить изображение, чтобы показывать порядок, в котором принимаются группы результатов поиска, и/или может также разделить изображение, чтобы показывать, какие "ответы" относятся к каким элементам поиска. Во время прогрессивного поиска (описан более подробно ниже) блок 330 обновления отображения может отказывать в отображении всех или большинства результатов, каждый раз когда пользователь добавляет (например, печатает и/или вводит) в поисковую цепочку 202 новый алфавитно-цифровой символ. Таким образом, при прогрессивном поиске блок 330 обновления отображения реконфигурирует результаты поиска, поскольку значение вводимой поисковой цепочки 202 изменяется.
Конечно, в некоторых вариантах осуществления различные модули компилятора 320 результатов могут быть объединены вместе или упорядочены по-другому. В вариантах осуществления некоторые из модулей могут быть удалены или могут быть добавлены другие обычные модули базы данных.
Варианты осуществления примерной машины 204 поиска могут быть адаптированы, чтобы удовлетворить быстродействию и мощности обработки доступных аппаратных средств и/или программной среды, используемой в варианте выполнения. Поиск может занимать больше времени для выполнения, чем приемлемо для пользователя. Машина 204 поиска может асинхронно возвращать "ответы", когда они найдены, в то время как поиск(и) все еще выполняется. Альтернативно, примерная машина 204 поиска может интеллектуально делить поиск на части, периодически обновляя набор результатов до тех пор, пока поиск не будет завершен. Например, может быть выполнен текстовый поиск для точного соответствия слова (и результаты возвращены) перед тем, как будут применены функции морфологического поиска и нормализации и возвращены результаты при последующем проходе. Операции поиска могут также быть разбиты во времени, осуществляя поиск программ в группах, разделенных согласно намеченным в эфире периодам временам.
В другом возможном варианте, если дополнительные хранилища данных доступны приведенной в качестве примера машине 204 поиска, область поиска может быть расширена. Машина 204 поиска может выполнять операции поиска в каждом хранилище данных, объединяя результаты перед завершением результирующего набора. Это может быть использовано, например, для объединения поиска в локальной базе(базах) 300 данных ЭРП с поиском доступных через сеть ЭРП ресурсов 334. Дополнительно, программы, предварительно записанные на локальном носителе, также могут быть добавлены к области поиска. Такие операции поиска могут быть выполнены через множество API и объединены перед отображением.
Примерная машина 204 поиска может также сохранять критерии поиска для более позднего и/или фонового выполнения. Пользователи могут быть заинтересованы в создании поиска, который может быть повторно выбран без повторного ввода поисковой цепочки 202. Также полезно отслеживать, какие "ответы" пользователь уже рассмотрел, так что в некоторых вариантах осуществления некоторые результаты могут быть скрыты, отделены или сделаны "недоступными" для более простого прочтения. Постоянные операции поиска могут быть выполнены каждый раз, когда информация базы(баз) 300 данных ЭРП модифицируется, так что пользователь может быть информирован относительно наступающих событий, в которых он заинтересован.
Критерии поиска могут быть преобразованы в последовательную форму, например в макрокоманды, и действовать как механизм преобразования в последовательную форму для определения автоматических записей, то есть хронологических списков поисков. Маркеры также могут быть назначены каждому преобразованию элементов поиска в последовательную форму, так чтобы пользователь мог выбирать преобразование в последовательную форму посредством выбора маркера. Преобразованный в последовательную форму поиск может быть передан другим пользователям посредством электронной почты сетевому соединению и/или внедрен в телевизионную передачу для выполнения связи посредством "щелчка, чтобы сделать запись". Примерная машина 204 поиска может также определять один или более форматов преобразования в последовательную форму. Результаты поиска и/или преобразования в последовательную форму могут быть сохранены в двоичной форме для компактного хранения или приведены в форму ASCII для простой передачи посредством электронной почты. Преобразование в последовательную форму может использоваться отдельно или вместе с автоматической записью, в которой пользователь задает поиск и указывает, что все будущие отображения (минус дублированные экземпляры), которые соответствуют критериям поиска, должны быть записаны.
Пример поиска
Фиг.4 иллюстрирует пример поиска 400 согласно изобретению, который может быть выполнен машиной поиска, например, приведенной в качестве примера машиной 204 поиска. Относительно неопределенная поисковая цепочка 202, например, "doLBy WEST-rated 'g'" принимается от пользователя или от постоянного хранилища посредством примерной машины 204 поиска. Эта поисковая цепочка 202 не может быть ограничена до одиночного краткого запроса. Примерная машина 204 поиска, однако, обладает большой многосторонностью для выполнения множества операций поиска, чтобы найти вероятные "ответы". Приведенный в качестве примера блок 302 нормализации преобразовывает строку в образцовую стандартизированную форму, например в нормализованную поисковую цепочку 402: "DOLBY WEST-RATED G". В этом случае блок 302 нормализации заменил регистр символа некоторых из символов в "doLBy", чтобы получить текстовый элемент поиска, который будет соответствовать случаю текста, в котором должен быть проведен поиск, например, в базе(ах) 300 данных ЭРП. Блок 302 нормализации разделил элементы поиска, используя незаполненные промежутки между словами и черточку между "WEST" и "rated" в качестве границ. Блок 302 нормализации удалил кавычки вокруг "д" и изменил регистр полной строки элементов поиска, то есть сделал буквы заглавными.
Нормализованную поисковую цепочку 402 передают в приведенный в качестве примера интерпретатор 304 строки, который может выполнить довольно убедительную (обоснованную) интерпретацию намерения пользователя при построении поисковой цепочки 202. Довольно обоснованная интерпретация может быть получена, если элементы-атрибуты поиска, введенные пользователем, являются ясно выделяемыми (устанавливаемыми) из текстовых элементов поиска, например, посредством списка 310 атрибутов. Интерпретатор 304 строки может быть неспособен получить обоснованное разделение между элементами текста и атрибутами, однако в этих случаях интерпретатор 304 строки может передавать элементы поиска на генератор 314 запросов для выполнения операций дополнительного и/или условного поиска. То есть, если имеется неоднозначность относительно некоторого элемента, этот элемент может использоваться в текстовом поиске и также в поиске по атрибутам, чтобы увидеть, например, сколько "ответов" следуют из каждого типа поиска. Так, элемент поиска "DOLBY" может быть словом в заголовке программы, например "Dolby Digital Experience;" это может быть атрибут создателя программы, например "Thomas Dolby;" и это может быть атрибут качества программы, например "DOLBY Digital". Приведенный в качестве примера генератор 314 запросов может проверять каждую из этих возможностей: как два поиска 406 по атрибутам (DOLBY Digital и DOLBY Stereo Sound), как альтернативный текстовый поиск 410 ("dolby" как элемент в заголовке программы) и как альтернативный поиск по атрибутам (состав исполнителей и команда с названием Dolby"). Генератор 314 запросов может решить не искать "DOLBY" в качестве первичного текстового поиска 406, так как ранжирование уместности "DOLBY" в качестве атрибута очень высоко. Однако, если "DOLBY" может быть найден в текстовом поиске, тогда это будет обнаружено альтернативным текстовым поиском 410. Следовательно, альтернативные или условные операции поиска могут использоваться в качестве резерва в случае, если никакие "ответы" не возвращены операциями поиска с более высоким приоритетом, и/или альтернативные процедуры 410, 412 поиска могут использоваться в качестве пробы или модификатора, чтобы получить подробную информацию относительно поисковой цепочки 202, например, чтобы усилить интерпретацию поисковой цепочки 202 или найти новые направления поиска.
Элемент поиска "WEST" из нормализованной поисковой цепочки 402 может также использоваться в альтернативном текстовом поиске 412, поскольку "WEST" может быть словом из заголовка программы или в некоторых схемах может быть атрибутом человека, связанного с программой. Если "WEST" не найден при просмотре списка 310 атрибутов интерпретатором 304 строки, тем не менее интерпретатор 304 строки может сформировать хорошо обоснованное предположение, что "WEST" должен быть первичным текстовым элементом для поиска заголовков программы.
Интерпретатор 304 строки определяет, что элемент поиска "RATED" предшествует поиску элемента "G", так что два элемента, вероятно, интерпретируются как "RATED G" и соответственно ищутся. Хотя одиночный элемент "RATED" может быть запрошен при альтернативном текстовом поиске 410 (то есть программа со словом "RATED" в заголовке), такой дополнительный поиск, вероятно, даст низкое значение ранжирования уместности, когда "RATED" и "G" найдены вместе в поисковой цепочке 202 в надлежащем порядке хорошо известного атрибута.
Генератор 314 запросов и/или машина 204 поиска продолжает выполнять различные процедуры текстового поиска 406, поиска 408 по атрибутам, альтернативного текстового поиска 410 и альтернативного поиска 412 по атрибутам. Число вариантов поиска, которые могут быть выполнены одновременно или в логическом порядке, продиктованном длиной и значением поисковой цепочки 202, не ограничено. В некоторых случаях приведенная в качестве примера машина 204 поиска выполняет все операции поиска и перечисляет результаты согласно уместности после "первого прохода" по всем операциям поиска. В других случаях примерная машина 204 поиска следует по дереву логических условий, установленных интерпретатором 304 строки или генератором 314 запроса. Например, логические условия могут быть вида: "если текстовый поиск 406 дает А, то продолжите поиск 408 по атрибуту, используя элемент 410 поиска X, но если текстовый поиск 406 дает В, то продолжите поиск 412 по трем дополнительным атрибутам". Логика может также предусмотреть, что А - это количество "ответов", и В является конкретным "ответом", содержащим специфическое текстовое соответствие.
Каждый тип поиска может возвращать промежуточный список "ответов", имеющий результаты этого специфического поиска. Списки 414 "ответов" текстового поиска по элементу поиска "WEST" могут содержать заголовки программ, например, "How The West was Won," "West Side Story", "the Wild Wild West", "The West Wing" и т.д. Для относительно неопределенного одиночного элемента поиска, такого как "WEST", генератор 314 запросов наиболее вероятно будет использовать общий оператор "в строке", чтобы найти любые заголовки программ, содержащие слово "WEST".
Списки 415 "ответов" поисков по атрибутам могут содержать или пытаться возвращать большое количество заголовков программ, имеющих атрибуты "DOLBY Stereo Sound", "DOLBY Digital" и "Rated G." Зная, что эти атрибуты являются используемыми почти повсеместно, генератор 314 запросов может функционировать перед такими поисками 408 по атрибуту относительно общих атрибутов и вместо их выполнения включать атрибуты в качестве условий и/или фильтров во время текстового поиска 406. Другими словами, "ответ" текстового поиска (406), которое содержит элемент поиска "WEST", может быть не разрешен, если он также не связан по меньшей мере с одним атрибутом Dolby и оценкой "G".
Так как текстовый поиск 406 для "WEST" приводит к большому количеству разнообразных "ответов", машина 204 поиска, вероятно, будет выполнять альтернативный текстовый поиск 410 по "DOLBY", "RATED" и "G" и возможно выполнять подсчет "ответов" для каждого для сбора дополнительной информации. Возможно, если бы имелись программы, озаглавленные "Dolby WEST", машина 204 поиска изменила бы свою начальную интерпретацию в свете точного соответствия заголовку - на смежные элементы поиска, которые, как первоначально полагала машина 204 поиска, были смесью элементов поиска текста и по атрибутам.
Альтернативный поиск 412 по атрибутам может выдавать дополнительные результаты, например, в схемах, которые используют список исполнителей и названия команды в качестве атрибутов. Так, альтернативный поиск по атрибутам "DOLBY" и "WEST" выдаст четыре категории: фильмы Томаса Долби (Thomas Dolby), фильмы Стива Долби (Steve Dolby), фильмы Доминика Веста (Dominic West) и фильмы Шейн Вест (Shane West). Элемент "G" альтернативного поиска по атрибутам также дает большое количество заголовков программы, связанных с оценкой "G", но это может быть отфильтровано из-за его размера или потому, что этот поиск уже охвачен в первичных процедурах поиска 408 по атрибутам.
Наконец, все списки 416, 418, 420 "ответов" после различных операций 406, 408, 410, 412 поиска обрабатывают компилятором 320 результатов. Компаратор/фильтр 324 поиска может сравнивать "ответы", принятые для интерпретации поисковой цепочки 202, установленной интерпретатором 304 строки. Блок 326 ранжирования результатов может придавать каждому "ответу" ранжирование уместности. Фильтр 328 включений может устранять накопленные низко ранжированные и/или излишние "ответы" (их слишком много), также как и те "ответы", которые не соответствуют интерпретации поисковой цепочки 202. В проиллюстрированном отфильтрованном списке "ответов", если интерпретатор 304 строки предварительно определил булевые отношения между элементами поиска, то получена интерпретация поисковой цепочки 202, такая что: заголовок программы должен включить в себя элемент "WEST" и что программа должна быть в DOLBY Digital и должна быть оценена "G" - только "How the West was Won", и относительно мало других заголовков программы будут отображены. Конечно, если интерпретация, полученная примерной машиной 204 поиска, не является близкой к намерению пользователя (как очевидно из-за недостатка полезных результатов, как определяется пользователем), пользователь может всегда изменить поиск, тем более что во многих вариантах выполнения весь процесс может выполняться почти немедленно.
Пример прогрессивного поиска
Фиг.5 иллюстрирует прогрессивный поиск согласно изобретению. Поскольку аппаратные средства и/или программное обеспечение, доступное для формирования модулей машины поиска, например примерной машины 204 поиска, являются достаточно мощными, чтобы обеспечить высокую скорость поиска, то в одном варианте осуществления примерной машины 204 поиска возможно исполнить операции прогрессивного поиска.
При прогрессивном поиске результаты поиска динамически обновляются с такой скоростью, с какой могут быть сгенерированы результаты, когда пользователь набирает или вводит символы в ПИ. Новый "пакет" поисков начинается после того, как вводится (или удаляется) каждый символ. При непрогрессивном поиске пользователь запрашивается для того, чтобы запустить поиск вручную нажатием клавиши "Enter" (Ввод) и/или указанием, выполняемым некоторым другим способом, что поисковая цепочка 202 завершена. Фиг.5 изображает пять кадров в поисковой цепочке 202 "The West Wing Election" во время ее ввода для поиска в базе(ах) 300 данных ЭРП, которая(ые) имеет(ют) заслуживающую внимания ЭРП информацию за несколько недель и коллекцию локально записанных программ на локальном жестком диске цифровой системы видеозаписи. На этапе 502 вводят слово "The", и примерная машина 204 поиска регистрирует нулевые результаты 504. Это может быть результатом того, что блок 302 нормализации распознал "The" в качестве артикля речи и подавил операции поиска, которые основаны только на артикле. Однако, когда было введено "Т" из "The", очень быстрая система может возвратить программы с отдельно стоящим "Т" в заголовке программы, например "Mr. Т".
На этапе 506 были введены слова "The West", и примерная машина 204 поиска возвращает пятьдесят результатов 508, включая такие заголовки, как "The West Wing", "How the West was Won" и т.д.
На этапе 510 были введены слова "The West Wing", сужая количество "ответов" от пятидесяти до десяти результатов 512. В этот момент вероятно определен заголовок программы, и десять результатов вероятно состоят из эпизодов телефильма или кинофильма "The West Wing", каждый имеющий свой собственный идентификационный номер ID программы.
На этапе 514 были введены слова "The West Wing Dolby", и квалифицирующие "ответы" далее сводятся к пяти результатам 516. Те эпизоды из предыдущих десяти, которые не являются в формате DOLBY Digital или имеют некоторый другой атрибут Dolby, удаляются. На этапе 518 были введены слова "The West Wing Dolby Election". Это дает только два результата 520. Два "ответа" состоят из тех эпизодов "The West Wing", которые имеют атрибут "Dolby" и которые имеют атрибут "Election", возможно в качестве слова в поле описания для эпизода.
Так как различные результаты "ответов" отображаются тогда, когда вводится поисковая цепочка 202, возможно желательный эпизод "The West Wing" появится на дисплее 332 раньше в процессе, например, когда будут введены только слова "The West" на этапе 506, и пользователь будет способен немедленно выделять и выбирать требуемый эпизод.
Примеры способов
Фиг.6 иллюстрирует примерный способ 600 выполнения поиска произвольного текста и по атрибутам согласно изобретению. Этот способ 600 может быть выполнен модулем, например, примерной машиной 204 поиска, показанной на фиг.2, 3, и 5. В блок-схеме алгоритма операции объединены в отдельные блоки. Операции могут быть выполнены аппаратными средствами и/или в качестве машинно-читаемых команд (программного обеспечения или программируемого оборудования), которые могут быть выполнены процессором.
На этапе 602 принимают поисковую цепочку. Строка может быть принята от пользователя через один или более ПИ, или может быть получена из памяти в качестве сохраненной макрокоманды или преобразованного в последовательную форму поиска. Поисковая цепочка может также быть принята по одному символу за раз, и новый набор операций поиска выполняется прогрессивно каждый раз, когда новый символ принимается и добавляется к увеличивающейся поисковой цепочке. Принятая поисковая цепочка, как ожидается, будет текстовой строкой с атрибутами, разъясненными в текстовой форме. Однако, так как принятая поисковая цепочка будет нормализована так, что нетекстовые элементы преобразуются в стандартизированный текст или стандартизированные символы поиска, принятая поисковая цепочка может быть любой комбинацией алфавитно-цифровых символов, символов, назначенных набору ASCII, маркерами и/или символами иностранного алфавита. В некоторых вариантах осуществления поисковая цепочка может также содержать ввод в позицию для отметки входной программируемой клавиши, нажатых значков и т.д.
На этапе 604 поисковую цепочку нормализуют. Нормализация состоит из преобразования принятой строки в доступные для поиска элементы, которые являются понятными для поиска в конкретных информационных источниках ЭРП, то есть которые имеют формат, соответствующий формату данных в информации ЭРП, в котором осуществляют поиск. Цель состоит в том, чтобы устранить простые различия в тексте, регистре и формализме символов для предотвращения получения соответствия между элементами поиска и информацией ЭРП, которая иначе дала бы "ответ", но для различий в формализме. Следовательно, нормализация является целым комплектом инструментальных средств проверки правильности написания, авто-исправления, разделения элементов, стандартизации регистра ввода символов, нормализации символов, устранения артиклей речи, удаления пунктуации и т.д. как в элементах поиска, так и, возможно, в информации целевой базы данных. Например, "mash" и "M*A*S*H*" будут всегда совпадать независимо от того, найдена ли или форма в элементе поиска, в целевой части искомой информации, или в обоих.
На этапе 606 поисковая цепочка разделяется на текстовые элементы и элементы-атрибуты. Это разделение реализует и сопровождает интерпретацию поисковой цепочки. Разделение на текстовые элементы и элементы-атрибуты приводит к некоторой интерпретации, также как и к некоторому преобразованию и перемещению доступных для поиска элементов, обеспеченных нормализацией. Так как средняя поисковая цепочка обычно составляет только пять или шесть элементов поиска или меньше, схема может сопровождаться попытками группировки всех возможных комбинаций элементов поиска различных размеров и во всех возможных порядках. Следовательно, поисковая цепочка может быть переставлена, чтобы проверить различные группировки и комбинации элементов поиска.
Когда получены различные элементы-кандидаты поиска и фразы (группировки) поиска, они могут быть проверены или интерпретированы в соответствии со списком уже существующих атрибутов, чтобы определить, какие из элементов поиска и фраз являются известными атрибутами. Элементы-кандидаты поиска могут быть также сопоставлены с любыми результатами поиска, которые, возможно, уже были выполнены над поисковой цепочкой, так как иногда различные операции поиска, выполненные над поисковой цепочкой, выполняют не одновременно, а последовательно или итерационно согласно логике условного поиска, которая может быть задана в качестве ограничений поиска во время интерпретации поисковой цепочки, упомянутой выше. Быстрый просмотр слов во фразе поиска может также выявить другие подробности, заданные пользователем, которые составляют другой элемент интерпретации. Если имеется много коротких артиклей и соединяющих слов, например "в", "и", "является" (is) и "the", то поисковая цепочка может интерпретироваться как ввод на естественном языке. Однако короткая поисковая цепочка только с несколькими краткими элементами, вероятно, интерпретируется как поиск по булеву стилю (как двоичный поиск).
На этапе 608 проводятся одна или более операций поиска для каждого текстового элемента и каждого элемента-атрибута. Относительно сложные запросы поиска могут быть установлены в зависимости от присутствующих текста и элементов-атрибутов и того, как они относятся друг к другу. В качестве маловероятного, но иллюстративного примера, поисковая цепочка "western after 1980 sci-fi actors" (вестерн после актеров научной фантастики 1980) может быть интерпретирована как "поиск вестернов, созданных после 1980, но только теми актерами, кто широко известен в кино научной фантастики". Такой поиск повлечет за собой поиск в категории "westerns" (вестерны) и использования субстрактивной логики, чтобы удалить те вестерны, что созданы до 1980, и те вестерны, которые не имеют актеров, которые заняты в фильмах научной фантастики. Много операций поиска текстовых элементов и операций поиска элементов-атрибутов могут быть выполнены одновременно, а также последовательно или итерационно в зависимости от полученных результатов. Следовательно, машиной поиска, выполняющей примерный способ 600, например примерной машиной 204 поиска, может быть накопитель поиска, инициализирующий операции поиска, которые происходят "во всех направлениях сразу".
На этапе 610 результаты поиска объединяют, ранжируют и/или фильтруют для отображения. Объединение обычно выполняется согласно булевым отношениям, постулируемых во время отделения элементов-атрибутов от текстовых элементов. То есть то, как объединены результаты поиска, предопределяется, в частности, интерпретацией поисковой цепочки, полученной во время разделения текста и элементов-атрибутов и во время формирования запроса. То, как результаты ранжированы по уместности, также может зависеть от интерпретации, полученной ранее в процессе. Фильтрация может зависеть от предварительно установленных предпочтений пользователя для отображения или может зависеть от схемы, в которой результаты, имеющие уместность ниже порога, не отображаются.
На этапе 612 результаты поиска отображают пользователю. Результаты могут быть отображены после того, как все операции поиска выполнены, но они могут также быть отображены тогда, когда они получены и откомпилированы. При прогрессивном поиске результаты отображают с такой скоростью, с какой вводится поисковая цепочка, причем при каждом вводе символа начинается целый новый набор операций поиска.
Вышеописанный примерный способ 600 является только одним из примеров осуществления изобретения. Это не предполагает ограничения, но описывает один процесс в качестве примера, который может иметь много вариантов, доступных пользователю.
Пример вычислительного устройства
Фиг.7 иллюстрирует пример компьютера 700, подходящего в качестве среды для осуществления аспектов изобретения. Компоненты примерного компьютера 700 могут включать в себя, но не ограничиваться ими, процессор 720, системную память 730 и системную шину 721, которая соединяет различные системные компоненты, включая системную память 730 и процессор 720. Системная шина 721 может быть любой из нескольких типов шинных структур, включая шину памяти или контроллер памяти, шину периферийных устройств и локальную шину, используя любую из ряда шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (МСА), усовершенствованную шину ISA (EISA), локальную шину Ассоциации стандартов видеоэлектроники (VESA) и шину соединения периферийных устройств (PCI), также известную как шина Mezzanine.
Примерный компьютер 700 обычно включает в себя ряд считываемых компьютером носителей. Считываемыми компьютером носителями могут быть любые доступные носители, к которым может обращаться приведенный в качестве примера компьютер 700, и включают в себя и энергозависимые и энергонезависимые средства, сменные и несменные носители. Посредством примера, а не ограничения, считываемые компьютером носители могут содержать компьютерные носители данных и средства связи. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и несменные носители, осуществленные посредством любого способа или технологии для хранения информации, например считываемые компьютером команды, структуры данных, модули программ или другие данные. Компьютерные носители данных включают в себя, но не ограничены ими, RAM (оперативная память), ROM (постоянное запоминающее устройство, ПЗУ), EEPROM (электрически стираемые перепрограммируемые ПЗУ), флэш-память или память другой технологии, CD-ROM, цифровые универсальные диски (DVD) или другую оптическую память на диске, магнитные кассеты, магнитную ленту, магнитную память на диске или другие магнитные запоминающие устройства, или любую другую среду, которая может использоваться для хранения требуемой информации и к которой можно обращаться с помощью примерного компьютера 700. Средства связи обычно реализуют считываемые компьютером команды, структуры данных, модули программ или другие данные в модулируемом сигнале данных, например сигнале несущей или другом транспортном механизме, и включают в себя любые информационные средства доставки. Элемент "модулированный сигнал данных" означает сигнал, который имеет одну или более из его характеристик, установленную или измененную таким образом, чтобы закодировать информацию в сигнале. Посредством примера, а не ограничения, средства связи включает в себя аппаратно реализованные средства, например проводную сеть или соединение с прямым проводным соединением, и беспроводные средства, например акустические, РЧ, инфракрасные и другие беспроводные средства. Комбинации любых вышеупомянутых средств должны также быть включены в рамки считываемых компьютером средств.
Системная память 730 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, например постоянного запоминающего устройства (ROM) 731 и оперативной памяти - RAM 732. Базовая система ввода/вывода 733 (BIOS) содержит основные подпрограммы, которые помогают передавать информацию между элементами в примерном компьютере 700, например, во время включения, обычно сохраняется в ROM 731. RAM 732 обычно содержит данные и/или модули программ, которые являются немедленно доступными для и/или в данный момент выполняющиеся процессором 720. Посредством примера, а не ограничения, фиг.7 иллюстрирует операционную систему 734, прикладные программы 735, приведенную в качестве примера машину 204 поиска, другие программные модули 736 и программные данные 737. Хотя примерная машина 204 поиска изображена как программное обеспечение в оперативной памяти 732, другие реализации примерной машины 204 поиска могут быть аппаратными или комбинациями программных и аппаратных средств.
Примерный компьютер 700 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. Только в качестве примера фиг.7 иллюстрирует накопитель 741 на жестком диске, который считывает с или записывает на несменные, энергонезависимые магнитные средства, накопитель 751 на магнитном диске, который считывает с или записывает на сменный, энергонезависимый магнитный диск 752, и накопитель 755 на оптическом диске, который считывает с или записывает на сменный энергонезависимый оптический диск 756, например CD-ROM или другую оптическую среду. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в примерной среде, включают в себя, но не ограничиваются ими, кассеты с магнитными лентами, платы флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельную оперативную память, твердотельную ПЗУ и т.п. Накопитель 741 на жестком диске обычно соединяется с системной шиной 721 через несменный интерфейс памяти например интерфейс 740, а накопитель 751 на магнитном диске и накопитель 755 на оптическом диске обычно соединяются с системной шиной 721 интерфейсом сменной памяти, например интерфейсом 750.
Накопители и связанные с ними компьютерные носители данных, описанные выше и проиллюстрированные на фиг.7, обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для примерного компьютера 700. На фиг.7, например, накопитель 741 на жестком диске проиллюстрирован как хранящий операционную систему 744, прикладные программы 745, другие программные модули 746 и программные данные 747. Следует обратить внимание, что эти компоненты могут быть или такими же, или отличными от операционной системы 734, прикладных программ 735, других программных модулей 736 и программных данных 737. Операционная система 744, прикладные программы 745, другие программные модули 746 и программные данные 747 здесь обозначены различными числами, чтобы иллюстрировать, что как минимум, они являются различными копиями. Пользователь может вводить команды и информацию в примерный компьютер 700 через устройства ввода данных, например клавиатуру 762 и устройство 761 управления позиционированием, обычно называемой мышью, трэкбол, или касанием клавиатуры. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер или подобные устройства. Эти и другие устройства ввода данных часто соединяются с процессором 720 через пользовательский интерфейс 760 ввода, который соединен с системной шиной, но может быть связан другим интерфейсом и шинными структурами, такими как параллельный порт, игровой порт или универсальной последовательной шиной (USB). Монитор 791 или другой тип устройства отображения также связан с системной шиной 721 через интерфейс, например видеоинтерфейс 790. В дополнение к монитору компьютеры могут также включать в себя другие периферийные устройства вывода, например динамики 797 и принтер 796, которые могут быть связаны через интерфейс 795 периферийных устройств вывода.
Компьютер может работать в связанной в сеть среде, используя логические подключения к одному или более удаленным компьютерам, например удаленному компьютеру 780. Удаленным компьютером 780 может быть персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий сетевой узел, и обычно включает в себя многие или все элементы, описанные выше для примерного компьютера 700, хотя только запоминающее устройство памяти 781 было проиллюстрировано на фиг.7. Логические подключения, изображенные на фиг.7, включают в себя локальную сеть (ЛС, LAN) 771 и глобальную сеть (ГС, WAN) 773, но могут также включать в себя другие сети. Такие сетевые среды являются общепринятыми в офисах, компьютерных сетях в масштабах предприятия, интранет и Интернет.
При использовании в сетевой среде LAN примерный компьютер 700 связан с ЛС 771 через сетевой интерфейс или адаптер 770. При использовании в сетевой среде WAN примерный компьютер 700 обычно включает в себя модем 772 или другие средства для установления связи по WAN 773, например Интернет. Модем 772, который может быть внутренним или внешним, может быть связан с системной шиной 721 через пользовательский интерфейс 760 ввода или другой соответствующий механизм. В сетевой среде программные модули, изображенные для примерного компьютера 700 или его частей, могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, фиг.7 иллюстрирует удаленные прикладные программы 785 как постоянно находящиеся в устройстве памяти 781. Очевидно, что показанные сетевые подключения являются примером и могут использоваться другие средства установления связи между компьютерами.
Конечно, изобретение также может использоваться во многих других средах, например телевизионной приставке, имеющей соответствующие аппаратные средства, игровой пульт и многие другие типы обрабатывающих устройств. Каждая из этих сред может содержать некоторые, но не все компоненты, описанные выше для примерного компьютера 700.
Заключение
Должно быть отмечено, что изобретение, описанное выше, может быть осуществлено посредством аппаратных средств, программного обеспечения или и аппаратными средствами и программными средствами. В некоторых вариантах осуществления примерные системы и связанные с ними способы могут быть описаны в общем контексте выполняемых компьютером команд, например программных модулей, выполняемых компьютером. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют специфические задачи или реализуют специфические абстрактные типы данных. Изобретение может также быть осуществлено в распределенных средах связи, в которых задачи выполняют по беспроводной связи удаленными устройствами обработки, которые связаны через систему обмена информацией. В беспроводной сети программные модули могут быть расположены и в локальных, и в удаленных запоминающих устройствах хранения данных устройств связи, включающих в себя запоминающие устройства памяти.
Предшествующее описание описывает приведенные в качестве примера системы и способы для поиска произвольного текста и атрибутов данных ЭРП. Хотя изобретение было описано на языке, специфическом для структурных особенностей и/или методологических действий, должно быть понятно, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничено специфическими особенностями или описанными действиями. Скорее, специфические признаки и действия раскрыты как примеры форм осуществления заявленного изобретения.