Поиск произвольного текста и поиск по атрибутам в данных электронного руководства по программам
Иллюстрации
Показать всеИзобретение относится к поиску произвольного текста и атрибутов данных электронного руководства по программам. Изобретение позволяет упростить поиск в электронном руководстве по программам. Объект изобретения включает в себя машину поиска данных электронного руководства по программам (ЭРП) и связанные с ним способы. Текстовая поисковая цепочка может быть нормализована в доступные для поиска элементы и элементы, интерпретируемые или как текстовые элементы поиска, или как элементы поиска по атрибутам. Создают один или более запросов, имеющие условия поиска различной степени сложности, в соответствии с интерпретацией элементов поисковой цепочки. Одну или более операций поиска в базах данных ЭРП и/или ресурсах сети выполняют на основании интерпретации элементов текста и атрибутов и результатам присваивают значение ранжирования результатов согласно интерпретации. Объединенные результаты поиска могут быть сгруппированы, ранжированы и фильтрованы для отображения пользователю. Результаты могут также быть отображены прогрессивно, по мере того как каждый символ поисковой цепочки вводится пользователем. 5 н. и 30 з.п. ф-лы, 7 ил.
Реферат
Листинг компьютерной программы
Набор распечаток текстового 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 данных может внутренним образом вып