电子节目指南数据的自由文本和属性搜索的制作方法

文档序号:6396124阅读:262来源:国知局
专利名称:电子节目指南数据的自由文本和属性搜索的制作方法
技术领域
本发明一般涉及多媒体数据通信,明确地说,涉及电子节目指南(EPG)数据的自由文本和属性搜索。
背景技术
在数字电视系统中,用户通常搜索电子节目指南(EPG)中的节目观看信息。EPG是节目和时间表元数据的数据集,该节目和时间表元数据涉及在时间间隔(例如,一个星期)期间可从用户的本地头端器(广播节目供应者的频道阵容)获得的节目。用户通过指定用于执行节目标题的文本搜索的关键字项目,来搜索节目。符合该搜索标准的搜索结果(通常是节目标题)被称作“命中”。
也可以通过搜索节目属性(而不只是来自该节目标题的关键字)来找到电视节目。虽然节目的标题可以被视作该节目的一个属性,但是,在多媒体技术领域中,更多地在技术上使用项目“属性”来描述节目的许多非标题特征。照此,属性包括关于节目及其呈现的无数特征。节目及其属性通常适合广大层级的EPG信息。一些属性(例如,“种类”)可以描述一大组节目(正在寻找的节目是其中的组成部分),也就是说,该“种类”属性描述包括正在寻找的节目的分级层次,以便用户对该“种类”属性的搜索会产生关于该种类中的每个节目的命中。例如,对“西部片”的搜索可能会产生属于该西方电影和电视流派的许多命中。
属性也可以描述适合节目标题的特征,即,属性可以描述使同一节目的两个版本彼此不同的选项。这种范围较狭窄类型的属性描述在特定节目“以下”的EPG层级的要素(即,使同一节目具有不同风味的要素)。例如,由SpencerTracy主演的“山脉”的一个版本可能具有“黑白”和“单声道”的属性,而另一个版本具有“彩色”、“DOLBY数字式”、“封闭式字幕”和“被评定为PG”的属性。局限于该标题的关键字要素的文本搜索将把这两个版本都作为命中而提出,但与对“Dolby”的属性搜索相结合的对该标题的关键字要素的文本搜索将只提出“DOLBY数字式”版本和“DOLBY立体声”音响系统版本。
通过将关键字文本输入用户界面(UI)的查寻栏,来执行对该标题的关键字要素的常规文本搜索;并且,通过与该UI的单独的部分中或单独的UI中的文本搜索关键字完全分开地输入该属性标准(例如,在复选框中),来执行常规属性搜索。只在单独的文本搜索和单独的属性搜索结束时符合逻辑地结合来自这两种搜索的命中,以产生命中列表。
图1表现了常规文本搜索100和常规属性搜索102,其中,这些文本关键字和属性标准被分开地输入(例如)与经由一个或多个UI而加以显示的属性复选框分开的查寻栏中。
在方框104处,输入该文本关键字。在方框106处,与该关键字输入分开地输入该属性标准。通常使用所输入的文本关键字来对该节目标题执行文本搜索108,并且,使用所输入的属性搜索标准来执行属性搜索110。每个单独的搜索产生单独的结果112、114。过滤逻辑116可以比较结果112、114,并产生通常符合文本搜索100和属性搜索102的命中列表118。
由于通常要求用户搜索UI的单独部分中的属性,因此,许多用户将其搜索输入只限定为节目标题字的关键字风格询问,而其他用户错误地将属性作为关于节目标题的文本搜索的关键字来输入,而没有认识到该数字电视系统将如此被输入的属性解释为普通的节目标题搜索项目。

发明内容
主题包括关于电子节目指南(EPG)数据和相关方法的搜索引擎。在示范方法中,可以将文本搜索字符串规格化成可搜索项目以及被解释为文本搜索项目或属性搜索项目的项目。根据该搜索字符串中的项目的解释,来创建使用复杂性不定的搜索逻辑的询问。为每个文本和每个属性项目执行EPG数据库和/或EPG web资源中的一项或多项搜索,并且,根据该搜索字符串的解释来为结果提供的关联性等级。可以对这些组合的搜索结果进行排列、过滤和分组,用于向该用户显示。也可以在该用户输入搜索字符串的每个字符时渐进地显示结果。
在一项实施中,可以使用属性列表来将这些文本项目跟这些属性项目分开。示范的属性列表可以另外包含关于每个属性的索引或元数据,这些索引或元数据指导为该搜索字符串中的每个属性项目而执行的搜索过程。


图1是原先技术的文本搜索和属性搜索的图示。
图2是根据该主题的示范搜索的图示。
图3是示范搜索引擎的框图。
图4是由图3中的示范搜索引擎执行的示范搜索的图示。
图5是由图3中的示范搜索引擎执行的示范渐进搜索的图示。
图6是根据该主题的示范方法的流程图。
图7是其中可实践该主题的示范计算设备环境的框图。
具体实施例方式
纵览对于数字电视系统(包括被加入电视机的“机顶盒”系统和能够接收并记录电视广播的个人计算机(PC)系统)的最终用户而言,电子节目指南(EPG)数据的快速、直观和精确的搜索很重要。示范主题描述用于在数字电视系统中输入并解释用户的文本和属性询问的搜索引擎和相关方法。这种快速、精确的搜索机制解释(例如)用户所输入的单一文本字符串,并且推断出该用户的可能的意图,从而显示尝试与该用户正在搜索的内容的解释相匹配的一组命中结果。由于该PC数字视频记录器(DVR)市场和机顶盒市场的迅速扩大,这类先进的搜索性能很重要。
图2提供了EPG数据库或其他资源中的示范搜索200的纵览。示范搜索200始于由用户输入或从用户那里接收的或从存储器中检索到的搜索字符串202。示范搜索引擎204接收搜索字符串202,从而对该字符串的各个项目执行几次变换,以生成各种复杂层次的可能的查询指令。
单一搜索字符串202可能会根据搜索字符串202的复杂性和不定性来引起一项或多项独立的搜索,所以相应地,在一项实施中,字符串解释器214根据特定的搜索字符串202来尝试组成尽可能少的询问(如果可能的话,是一个)和进可能具有限制性的询问。例如,在一项实施中,字符串解释器214通过确定搜索字符串202中的哪些项目是将要作为属性搜索项目而加以搜索的已知属性,来实现这个最小数量的简明和/或限制性的询问。搜索字符串202中的剩余项目也许是可能的属性项目或可能的文本项目,但是,确定已知属性(例如,使用已知属性的数据库或列表)经常会大大缩小询问。这样,字符串解释器214使用如以下根据图3更加充分地加以讨论的各种方法和资源来“考虑”文本搜索206、属性搜索208、条件文本搜索210和条件属性搜索212系列。
在一项实施中,通过对EPG数据库中和/或在线词典和排列结果中的搜索字符串202中的每个规格化项目执行初步搜索,来实现搜索字符串202的可能含义的强力确定。例如,如果“瑞恩”是搜索项目,那么,假如“拯救大兵瑞恩”在该数据库或词典中更加常见,则可以越过“瑞恩·奥尼尔”选择它,作为该搜索的可能的解释。在另一项实施中,字符串解释器214尝试这些搜索项目的不同组合,直到在正被搜索的EPG资源中找到这些组合之一或者在逻辑上支持这些组合之一。因此,偶然发生、但作为搜索字符串202中的许多属性项目之中的唯一文本项目的搜索项目“月亮”和“纸”将很有可能会产生解释“纸月亮”,如果实际上经由询问被发现是命中,则该解释的排列等级很高。
这样,字符串解释器214获得一个或多个解释,这些解释导致询问216(或各种询问)。使用询问216来执行一项或多项搜索,这些搜索产生为该用户显示的被组合、过滤和/或排列的命中列表222。这个示范搜索200只是一项或多项文本和属性敏感搜索如何可以只源于一个搜索字符串202的一个例子。搜索字符串202(例如)由字符串解释器214来解析、变换和分析,以实现搜索字符串202中的项目的文本和属性明白解释。
在一项实施中,更新被组合、过滤和/或排列的命中列表222,作为各种搜索路径返回结果。作为选择,当搜索字符串202正在被输入时,结果可能会逐渐出现在被组合、过滤和/或排列的命中列表222中,即,当每个字符被加入搜索字符串202时,启动新的和/或修改过的搜索。
示范搜索引擎图3更详细地表现了图2中的示范搜索引擎204。示范搜索引擎204用通讯联络的方式与一个或多个EPG数据库300耦合。现在将描述示范搜索引擎204所执行的某些特点和过程,但当然,示范搜索引擎204可能具有特点并执行对于所展示的内容(例如,索引数据库内容)而言是附加的过程。当然,示范搜索引擎204的各种实施将利用各种不同的人类语言来进行操作。这样,示范搜索引擎204的一些特点可能不会应用一些语言,也可能是一些语言所不需要的。
一般而言,示范搜索引擎204通过首先揭露接收搜索表达式并评估用计划性方式或由该用户生成的一组约束的搜索字符串接收器301(例如,应用程序接口(API)),来执行该EPG数据库搜索。在部分根据这些约束来创建询问之后,示范搜索引擎204返回该结果集。
搜索字符串接收器301可以经由一个或多个UI来接受搜索字符串202。可以为“两足”或“十足”系统优化关于EPG数据搜索的UI。两足系统是一种数字电视系统,其中,该用户具有PC系统特有的信息输入性能。例如,两足系统可能使用全键盘、鼠标和监视器。另一方面,十足系统是一种数字电视系统,其中,该用户具有与两足系统相比而言有限的输入性能。十足系统可能是由机顶盒和搜索字符串202生成的UI,搜索字符串202使用要操纵的键相对较少的遥控法来加以输入。
由于UI周围的数据输入和导航通常对于十足系统而言更加困难,因此,捕捉该用户在将搜索输入该十足系统中的意图所必要的数据量的最小化是有用的,同时可将该搜索的精确度和能力最佳化。
当然,搜索字符串接收器301可以从任何数量的输入域、复选框、开关和/或设备接受用户输入。但是,如果该输入只是单一搜索字符串202,则示范搜索引擎204可以为该搜索字符串“解码”,以便将文本搜索信息和属性搜索信息区别开来并创立合适的询问。
用通讯联络方式与搜索字符串接收器301耦合的规范器302将搜索字符串202中的不规则性转换(即,转换“非标准化”项目的格式)成可以在这各种询问中被一贯应用的项目。非标准输入是搜索字符串202的项目或一部分,搜索字符串202具有不与将要加以搜索的EPG数据库300的规定形式相匹配的文本、字符、语言和/或标点符号规定形式。非标准输入要冒对于字符串解释器304而言局部或整体无法理解的危险,并且,当其规定形式不与正在加以搜索的EPG数据库300相匹配时,可能会导致错过具有资格的命中。
作为搜索请求的一部分,搜索字符串接收器301经常被传递由该用户输入的字符串(例如,“The West Wing”)。规范器302或示范搜索引擎204的另一个模块可以使用项目分离来尝试将该短语分成组成它的单词中的每个单词,从而为每个单词单独执行文本搜索。这种分成单独的单词的分离具有当该用户省略或调整众所周知的标题中的单词时找到匹配的优点,但也可能生成比该用户想要的更多的命中。单独的单词搜索项目经常在空白和破折号分界线处被分开。规范器302也可以除去引用短语的各个单词之间的额外空间。
用户不总是使用正确的字母大小写来输入搜索字符串202。例如,“The WestWing”可能被打成“the west wing”。此外,EPG数据库信息有时包含象“SUNDAYTICKET”而不是“Sunday Ticket”或“sunday ticket”的短语中的非常规字母大小写。例如通过遵循该当前场所的规则来将每个搜索项目和正在加以搜索的EPG数据库文本转换成普通情况(较高或较低),这样,规范器302可以执行字母大小写规格化。
规范器302也可以对某些符号和标记进行规格化。附加符号是诸如可以出现在许多国际语言字母表中的重音符或变音符的组合字符,通常是附随的元音。在该主题的一项实施中,对搜索项目和正在加以搜索的数据库文本进行比较,好象这些附加符号不存在。符号和特殊的字母表字符也可以由规范器302重写并/或加入搜索项目,以促进精确的搜索。例如,诸如德语esset“β”的字符可以被重写成“ss”,以便如果正在被搜索的文本中有esset形式或“ss”形式,则包含该德语esset的搜索将产生命中。
符号规格化涉及符号(例如,标点符号)从该搜索项目和为更精确的匹配而正在加以搜索的文本中的去除或转换。例如,缩写词(例如,“F.B.I”)内的句点和“M*A*S*H”中的星号将被除去。诸如“&”和“@”等符号可以被转换成其单词形式“and”和“at”。可以转换替换字母的符号(例如,“Vega$”中的“$”)。这种符号规格化可能会导致额外的搜索。例如,在规范器302已处理搜索字符串202之后,示范搜索引擎204可能会搜索“Vegas”和“Vega$”,而不是通过转换只使用一种形式,也不是根据这一种常规形式来对该搜索项目和正在加以搜索的文本进行规格化。
可以从这些搜索项目中除去语音冠词以及普遍存在但没有很大的描述作用的单词(例如,“a”、“the”、“is”、“are”、“el”、“la”、“los”、“les”等),以加快处理。在一些实施中,如果这些冠词和普遍存在的单词只是存在于该搜索中的单词,或者,如果该搜索的第一遍没有产生结果,则不除去它们或对它们进行有条件的搜索。
示范搜索引擎204可以为以某种方式改变该搜索含义的记号预先扫描该搜索字符串。例如,在单词前面加上负号“-”可以指出该单词不可以出现在匹配中。将项目一起归类为引号可以指出只有当该组中的项目按给定顺序出现并在一起时,才应该考虑该组。可以用特殊的方式来使用单词“AND”、“OR”和“NOT”,以影响搜索操作符。这允许用户对搜索实行更多的控制。
在一项实施中,规范器302或搜索引擎204的其他部件可以将拼写错误应用于被输入的搜索字符串202。使用几种策略来帮助该用户避免在输入搜索字符串202时发生错误。在经由拼写对话框或另一种文本指示符(例如,“波状线”INTELLISENSE加亮区)来执行该搜索之前,可以警告该用户注意在该搜索文本中可能存在拼错的单词。作为选择,可以将拼写检查推迟到搜索执行结束的时候,并且,只有当没有发现确切的结果时,才可以执行拼写检查。最后,显然可以执行拼写检查。将要拼错的、由规范器302解释的单词的纠正形式可以被自动附加到搜索字符串202,并作为条件搜索来加以询问。然后,如果这些搜索产生实际上包含这些拼错的搜索项目的命中,则可以使用关联性排列(以下将加以讨论)来降低这些条件搜索项目的等级。
规范器302也可以使用自动纠正——一种拼写检查的简化形式。通过使用一般会拼错的单词的简单查找表格,在打入单词的同时对其进行纠正,而不是将每个搜索项目与词典进行比较。在自动纠正作出错误的决定(纠正该用户有意要“拼错”的单词)的罕见的情况下,该用户可以回退一次,以撤消该自动纠正。当用户打字时,也可以根据先前存在的全文索引,由规范器302呈现可能的单词完成的弹出列表。这允许该用户更迅速地输入搜索标准。
字符串解释器304用通讯联络的方式与规范器302耦合。在一项实施中,字符串解释器304包括字符串变换器306和用通讯联络方式跟属性列表310耦合的属性标识符308。字符串解释器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”、“divinity”等相匹配。字符串变换器306可以使用已知的抽去词根算法(例如,“Porter”算法)。抽去词根具有生成命中的优点,如果曾精确地询问该搜索项目,则可能已错过这些命中;但是,抽去词根也具有经常生成不相关的命中的缺点。在字符串变换器306或示范搜索引擎204的另一个部分(例如,(以下所描述的)结果编辑器))中,可以通过使用关联性排列器来减少这种效果。在一些实施中,抽去词根要求执行会使搜索速度下降的数据预处理步骤。因此,在一些实施中,抽去词根局限于特殊的单词(例如,由事件索引频率来加以确定的罕见的单词)。
字符串变换器306可以执行额外的项目和字符串变换。单词分支涉及从单一项目中生成一组搜索项目。可以使用有关单词列表。例如,搜索项目“NFL”可能会导致项目“football”被附加到搜索字符串202,这样,“NFL”可能会产生对“football”的额外搜索。如果项目“30”出现在搜索字符串202等中,则可以将项目“thirty”加入搜索字符串202。这些有关的项目可来自与正在搜索的数据有关的例外列表,以及/或者被存储在用户定义的或用计划方式加以确定的约束表格312中的例外列表。单词分支也可能会放慢搜索,并可能会生成不相关的结果,但它也将在无任何发现的一些情况下生成命中。可以使用关联性排列器,将不太相关的结果放置在命中列表222的底部。
也可以使用复数化。复数化是一种抽去单词词根的简单形式,它根据该原始单词的单数或复数形式来生成额外的搜索项目。例如,如果该搜索项目是“baby”,则可以包括“babies”的额外搜索项目。
随意地,字符串解释器304或搜索引擎204的另一个部件可以将自然语言解析加入其他的字符串解释特点和过程。这种类型的解析包括将搜索短语(例如,“When is Star Wars shown in Dolby-Digital?”)转换成符合该用户的搜索请求的可使用的搜索项目。虽然自然语言解析很有功效,但是,该语法通常局限于该用户对名词/动词含义的选择。此外,假设自然语言搜索字符串202中的单词数量增加(相对于布尔项目搜索),则对于其中必须使用遥控键区来输入搜索项目的十足系统而言,该自然语言搜索可能不是最佳的选择。最后,自然语言解析会要求更多的处理功率来加以执行。
按某种顺序来描述由字符串变换器306和示范搜索引擎204的其他模块执行的特点和过程,但呈现这些特点和过程的顺序并不意在通过处理流水线来指出建议的使用顺序。在许多情况下,对于所生成的结果而言,每个这些特点和过程的排序和/或性能都很重要。
属性标识符308通过各种方法(例如,将候选的或潜在的搜索项目与属性列表310中的属性进行比较),将文本搜索项目与属性搜索项目区别开来。属性标识符308也可以从文本搜索结果中接收反馈,并将消除过程应用于搜索字符串202中的项目,从而找到属性。在这种情况下,属性标识符308可以在各个搜索项目之间假定各种布尔关系。例如,搜索项目“green mile dolby”可能被解释为“‘green’或‘mile’和dolby”或“‘green mile’和dolby”,但可能会产生搜索,由于第二组假定的布尔关系,该搜索只返回采用DOLBY数字式或DOLBY立体声音响的表演“The Green Mile”的实例。
当然,可以将属性列表310存储在计算机存储器中,用于快速字符串解释。如果在属性列表310中使用近似有200个电视广播节目属性的列表,那么,实质上,将由用户输入的、与电视广播节目有关的所有属性都可以由属性标识符308来加以识别,并与文本搜索项目分开。
作为示范的可扩展标记语言(XML)数据结构的示范属性列表310的表示出现在附录A“示范属性列表”中。该表示只包含电视广播节目属性、要素和值的样品选择。相应地,典型的属性列表310可以包含比所示条目更多或更少的条目,以及/或者不同的要素、属性和/或值。
如附录A中的示范属性列表310的XML版本所示,属性列表310不需要局限于一排连续的属性要素,当具备属性搜索项目候选者时,这些属性要素只提供真/假或“存在/不存在”匹配。属性列表310可以包含关于这些属性中的至少部分属性的元数据311,其中,属性的元数据使该属性跟搜索资源和将要在该搜索中使用的值联系起来。元数据311也可以使该属性与约束表格312中的一组逻辑搜索条件联系起来。此外,属性列表310可以包含索引313,以便使属性列表310中的属性跟其他有关的属性和值联系起来,这些有关的属性和值可以被合理地加以搜索,以产生符合搜索字符串202的命中。
在一些实施中,索引313和/或元数据311可以包含相对较复杂的分支逻辑和/或逻辑搜索条件的树形结构,该逻辑搜索条件的树形结构可以生成符合该用户在创立搜索字符串202中的意图的命中。例如,如果属性标识符308为搜索项目“stereo”而检验属性列表310,则可以找到指定该属性的适当的名称并/或指定可能包含节目的立体声属性的EPG信息中的查寻栏(例如,可以通过顺便访问数据库记录的“ScheduleEntryAttribute”领域,来找到“立体声”节目)的匹配。另外,已发现该候选搜索项目符合属性标准,并且已指定该EPG数据中的查寻栏,这样,属性列表310也可以产生可能表现利用其(或在其中)来找到立体声节目的搜索项目、键或种类的一个或多个确切的值(例如,“MSEPGA_STEREO”)。
属性列表310的索引性能会出现多个分支。例如,如果属性标识符308为候选搜索项目“sports”检验属性列表310,则属性列表310可以将“sports”识别为属性,将其进一步识别为“种类”类型的属性,并指示属性标识符308为相关的节目“新闻”、“特别通讯”和“MSEPGC_SPORTS”交叉检验其他三个种类。
通过为字符串变换器306部署以上所描述的特点和过程,并通过经由属性列表310来识别属性和有关的元数据,字符串解释器304可实现尝试接近该用户在创立搜索字符串202中的意图的一组搜索项目。换言之,字符串解释器304实现一组文本搜索项目和属性搜索项目,它们具有返回命中的很高的概率,这些命中与大多数用户在已创立搜索字符串202的情况下将会寻找的内容相匹配。例如,如果该用户创立搜索字符串“scifi dolby letterbox”,则示范搜索引擎204可能会返回邮筒中的正采用DOLBY立体声音响的科幻表演的命中列表222。如果该用户创立搜索字符串“黄金时段网络喜剧”,则示范搜索引擎204可能会返回网络站上的黄金时段喜剧表演的命中列表222。如果该用户创立搜索字符串“戏剧评定pg”,则示范搜索引擎204可能会返回具有PG等级的戏剧表演的命中列表222。如果该用户创立搜索字符串“Discovery”,则示范搜索引擎204可能会返回在该标题中具有“discovery”的表演以及在该频道的名称中具有“discovery”的频道(例如,“DISCOVERY CHANNEL”)的命中列表222。
查询发生器314用通讯联络的方式与字符串解释器304耦合。查询发生器314可以包括文本查询配制器316和属性查询配制器318。在一项实施中,文本查询配制器316和属性查询配制器318为EPG数据库300和基于web的EPG资源334中的搜索组成尽可能少(经常只有一个)的询问和尽可能具有限制性的询问。如果组成多个询问,那么,可以组合这些结果。
关于从字符串解释器304接收的每个搜索项目,查询发生器314可以使用操作符,该操作符可影响在EPG数据库300或基于web的EPG资源334的询问期间找到匹配的方法。在一项实施中,每个操作符规定其中必须(或不可以)在正加以搜索的文本中找到该搜索项目的位置或配置。现在将描述一些示范操作符。“确切”操作符规定该搜索项目应该精确地与正在加以搜索的文本的给定部分相匹配,即,如果查询发生器314正在搜索某种类型的领域,则该搜索项目将必须与该领域精确地匹配。“始于(短语)”操作符规定应该在正在加以搜索的文本领域的开端处找到该搜索项目。“始于(单词)”操作符规定该搜索项目应该是正在加以搜索的文本领域内的单词的开端。“包含”操作符规定可以在正加以搜索的文本领域中的任何地方找到该搜索项目。
关于以上所描述的每个操作符,可以使用“反对操作符”(NOT形式)来规定如果各自的条件是真的,则不应该由搜索引擎204来生成命中。也可以使用搜索操作符“与”和“或”来规定是否必须在正加以搜索的文本领域中找到所有搜索项目或者是否这些搜索项目中只有部分搜索项目必须匹配。
数据管理器319使用查询发生器314所产生的各种搜索项目来执行EPG数据库300中的搜索。在该主题的一些实施中,数据管理器319可能是或可能使用SQL(结构化查询语言)数据库引擎或JET数据库引擎,并且,如果是这样,则可以组合结果编辑器320的功能中的部分功能。因此,数据管理器319可以在内部运行多个搜索路径,并对它们加以组合。相应地,EPG数据库300可以假定许多不同的格式(例如,XML、二进制、JET、SQL等)——一些更适合存储,一些更适合在网络上传送。根据该传输介质的约束,关于传输的最佳格式可能不同于关于存储和/或搜索的最佳格式。现在将讨论这些格式选择及其相对强度和弱点中的几种。
一些指导服务使用被格式化以便与定义模式相匹配的XML,将多日指导传送给客户。XML是可以使用的一种方便的格式,因为它容易理解、是人类可读的,并且可以处理大量现存的工具。但是,XML不是很密集的格式。因此,该eHome指导在加以传送之前被压缩到CAB文件中,然后在接收完成之后被解压。
大型XML文件不容易搜索。例如,十天数量的EPG数据可以装满6.6兆字节的文件。将这个尺寸的XML文件载入文档对象模型(DOM)要求差不多90兆字节的随机存取存储器。在每次搜索期间扫描这种大型文件是不切实际的。由于这些原因,可以主要为传输和持久存储器使用该XML格式。当许多客户装载该EPG数据文件时,该非文本数据被存储在存储器中,并且,所有基于文本的数据被写入存储器映射文件,用于搜索。一些EPG数据API可能必须执行自定义数据库,以适应数据和/或搜索模式中的变化。
关于EPG数据库300的另一种选择是二进制格式。虽然二进制格式常常很密集,但是,它们通常依靠自定义工具来生成并浏览它们。与XML文件一样,二进制文件对于搜索而言通常不是最理想的,并且可以为此目的而要求选择性中间存储格式。
搜索引擎204也可以使用Jet数据库引擎(利用数据库工具,可得到良好的支持)来询问EPG数据库300。被称作“MDAC”的可重新分配的API提供丰富的API,用于使用SQL、ADO或OLE DB来创建和询问Jet数据库。为EPG数据库300使用Jet数据库的一个优点是容易使用工业标准SQL命令来进行搜索,并且容易使用普通软件来观看。只要适当地建立并存储索引,使用Jet的搜索的性能通常就比其他许多方法快(一个例外是SQL服务器)。Jet数据库也被存储在单一文件中,以促进整个EPG数据库300的操作。
与Jet数据库引擎一样,SQL是关于具有大型工具和API库的EPG数据库300的被良好支持的数据库平台。虽然SQL服务器的当前众所周知的版本只在服务器上运行,但是,被称作“MSDE”的SQL服务器的版本(或“SQL桌面编辑”)可以被安装在许多当前的操作系统软件版本上。搜索有良好索引的SQL数据库也许比其他已知的数据搜索技术更快、更灵活。但是,SQL数据库不容易在网络上传送。要使用MSDE,将要求执行从另一种格式将EPG数据载入SQL数据库的后处理步骤。此外,与该服务器版本不同,MSDE可能不总是支持自然语言搜索或全文索引(虽然可以使用其他方法来模拟这两者)。
应该注意,在许多情况下,EPG数据库300的本地格式可能不采用示范搜索引擎204所要求的最后形式。例如,可能需要建立数据索引,或者可能需要将数据读入选择性数据库,该选择性数据库可为搜索而优化,但难以在网络上传送。在一项实施中,示范搜索引擎204甚至放弃不需要的数据,并且合并用户特定数据,用于加快搜索。
如果使用数据索引,则搜索引擎204可以执行全文索引。这涉及将相反词索引建立到基于文本的EPG数据的每个要素中。以较大的EPG数据库300和用于该索引建立的时间增加为代价,全文索引大大提高了搜索的性能。
搜索引擎204也可以使用签名索引。与全文索引一样,签名索引是迅速识别可能的搜索匹配的方法。在EPG数据库300中,每个数据阵(节目、频道等)具有二进制签名,该二进制签名类似于指出每个单词中出现哪些字母的散列。对该搜索项目和来自正在加以搜索的文本的单词执行类似的计算,然后使用二进制运算来使这些结果相匹配,这样,允许迅速估计该单词是否与该搜索项目相匹配。然后,可能需要执行第二次更具处理器密集性的搜索,以确定包含该匹配单词的数据阵是否应该生成命中。
如上所述,该主题不会受到搜索引擎204从单一搜索字符串202中得到文本搜索项目和属性搜索项目的能力的限制。除了从单一搜索字符串202中得到文本搜索项目和属性搜索项目以外,示范搜索引擎204还可以从多个来源(例如,UI中的各种输入域)得到搜索项目。例如,在一些产品中,诸如“立体声”、“封闭式字幕”、“起动时间”和“发布年份”的属性经常作为搜索项目,但经由复选框、单选按钮等被输入某个UI中。通过作为搜索项目被传递到该搜索API,这些也可以由示范搜索引擎204来接纳。这种接纳不会阻止搜索引擎204从单一搜索字符串202中得到其他属性搜索项目和文本搜索项目。
示范搜索引擎204可以提示该用户选择该用户希望对其搜索的领域。所以,除了跨越所有领域(例如,标题、说明、频道、演员表等)进行自动搜索以及通过其预测的关联性来排列命中以外,示范搜索引擎204也可以允许该用户手动地减少这些领域和/或搜索域。
示范搜索引擎204也包括用通讯联络的方式与数据管理器319耦合的结果编辑器320以及字符串解释器304。结果编辑器320中的命中接收器322从这各种搜索模态中或从在多个数据库中进行搜索的单一搜索模态中收集命中。由于可以同时发生多项搜索,因此,该命中接收器可以包括接收支管或可以暂时存储待进一步编辑的命中的缓冲器。
在示范搜索引擎204中,搜索比较器/滤波器324用通讯联络的方式与命中接收器322并与字符串解释器304耦合。搜索比较器/滤波器304依照字符串解释器304所提出的字符串解释来测试命中。如上所述,字符串解释器304实现该用户在经由字符串变换器306和属性标识符308创立搜索字符串202中的意图的可使用的假设或解释。在结果编辑器320中,如果命中不符合该解释,则可以过滤该命中,也就是说,可以从显示的命中列表222中排除该命中,或者出于被显示的命中列表222中的排列目的而使该命中降级。在一项实施中,搜索比较器/滤波器324一个接一个地扫描该结果集,以确定每个结果是否真的是命中。如果无法将询问分解到足够精细的层次以便排除所有错过而同时仍然包括所有命中,则这更有可能发生。作为解释的例子,如果原始搜索字符串202是“duck dolby”,并且,与解释“Donald Duck in Dolby Digital”相比,字符串解释器304更喜欢解释“Howard the Duck,by Thomas Dolby”,那么,Donald Duck命中可能从命中列表222中被完全除去,或至少被给予较低的等级。
当所有这些搜索结束时,或者,在一些实施中,当这些结果由命中接收器322一个一个地接收并被传送通过搜索比较器/滤波器324时,结果排列器326可以通过关联性或其他标准来组织用于显示的命中。由搜索引擎204生成的命中可以经常被加以排列,以便可以存储命中结果,用于按这样一种方法来显示,从而首先呈现最有可能的结果,即最接近该用户在创立搜索字符串202中的意图的解释的命中(如字符串解释器304所假设的)。例如,每个搜索项目的确切匹配可以被提供100%的关联性等级,并可以被给予最高的优先权。只与在某种变换(例如,抽去词根或拼写纠正)之后将要加以搜索的文本相匹配的命中通常被给予较低的关联性。
包摄滤波器328可以用通讯联络的方式与结果排列器326耦合。在一些变更中,包摄滤波器328可以用计划方式被设置成按某种方式进行过滤,同时,在其他变更中,包摄滤波器328可以由该用户来调节。例如,包摄滤波器328可以被设置或调节成完全排除当至少发现一个100%的有关命中时小于100%的有关性的任何命中结果。在其他情况中,包摄滤波器328可以被设置或调节成截去很长的结果列表,从而尽管这些结果中的部分结果具有100%的关联性,也只显示特定数量的顶部结果。仍然在其他情况中,包摄滤波器328可以只允许显示具有被分配在某个百分点以上的等级的命中结果。因此,如果该搜索关于电影“Where the Red Fern Grows”,并且唯一的命中是具有只是15%的关联性等级的“The Red Skelton Hour”,那么,包摄滤波器328可能显示“没有发现结果”。
包摄滤波器328也可以将结果数量限制到定义值,并且/或者,根据双亲控制和/或执行该搜索的用户来限制这些结果。在记录上下文中,包摄滤波器328可以排除将来不会有表现机会的结果。
结果编辑器320中包括显示更新器330,以控制命中列表222在其上被呈现给该用户的显示器332。呈现搜索结果的命中列表222有许多可能的方法。可以按字母表顺序或按年代顺序排列的方式来显示这些命中。也可以通过关联性来对结果进行分组和排列。在一些实施中,显示更新器330可能是结果的交换所,也就是说,显示更新器330可以记录正在显示的内容。如果一个一个地接收命中结果,那么,显示更新器330可以执行将老结果与新结果组合起来并决定要显示哪些结果的结合功能。在逐个搜索期间,显示更新器330可以将该显示分成各个部分,以示出接收各组搜索结果的顺序,并且/或者,也可以将该显示分成各个部分,以示出哪些命中与哪些搜索项目有关。在(以下将要更加充分地加以讨论的)渐进搜索期间,每当该用户将新的字母数字字符添加(例如,打入和/或输入)到搜索字符串202上时,显示更新器330可以放弃所有或大部分这些显示结果。这样,在渐进搜索中,当正在被输入的搜索字符串202的含义发展时,显示更新器330从零开始重新配置这些搜索结果。
当然,在一些实施中,结果编辑器320的各种模块可能被组合在一起,或加以不同的排序。在变更中,可能排除这些模块中的部分模块,或者,可能增加其他的常规数据库模块。
示范搜索引擎204的变更可以适合实施中所用的可用硬件和/或软件环境的速度和处理功率。与该用户可以接受的情况相比,搜索可能要更长的执行时间。当发现命中同时该搜索仍然在执行时,搜索引擎204可能会异步地返回这些命中。作为选择,示范搜索引擎204可以聪明地将该搜索分成各个部分,从而定期更新该结果集,直到完成该搜索为止。例如,在随后的通过过程中应用并返回抽去词根功能和规格化功能之前,可以执行关于确切单词匹配的文本搜索(并返回这些结果)。也可以及时停止搜索,从而搜索根据预定的节目开始时间而加以划分的各组中的节目。
在另一个选项中,如果示范搜索引擎204具备额外的数据存储器,则可以扩大该搜索域。搜索引擎204可以在每个数据存储器中执行搜索,从而在把该结果集最后定下来之前合并这些结果。例如,可以使用这一点来将本地EPG数据库300的搜索与基于web的EPG资源334的搜索组合起来。此外,也可以将被预先记录在本地介质上的节目加入该搜索域。这类搜索可以通过多个API来加以执行,并在显示之前加以合并。
示范搜索引擎204也可以坚持关于以后的执行和/或背景执行的搜索标准。用户可能有兴趣创建一种搜索,该搜索无须重新输入搜索字符串202就可以被再次调用。了解用户已经检查了哪些命中,以便在一些实施中,为更容易地进行细读,可以隐藏、分开一些结果或使其“变灰”。每当更新EPG数据库300信息时,可以运行持续不断的搜索,以便可以通知该用户他们感兴趣的即将发生的事件。
例如,该搜索标准可以被串行化成宏指令,并且可以作为用于定义自动记录(即搜索的历史列表)的串行化机制。也可以将记号分配给搜索项目的每个串行化,以便该用户可以通过挑选该记号来选择该串行化。可以经由电子邮件、web链接来与其他用户交换串行化搜索,并且/或者,可以将串行化搜索嵌入关于“点击记录”链接的电视广播。示范搜索引擎204也可以定义一种或多种串行化格式。可以用关于采用ASCII形式的小型存储器或演员表的二进制形式来存储该搜索和/或串行化,用于经由电子邮件来容易地进行传送。可以单独地或协同自动记录来使用该串行化,其中,该用户定义搜索,并指出与该搜索标准相匹配的所有将来的表演(减去复制的实例)将要被记录下来。
示范搜索图4表现了根据该主题的示范搜索400,它可以由搜索引擎(例如,示范搜索引擎204)来实现。经由示范搜索引擎204,从用户那里或从持久存储器那里接收相对不确定的搜索字符串202(例如,“doLBy WEST-评定‘g’”)。对于单一的简明询问而言,这个搜索字符串202可能不具备可限制性。但是,示范搜索引擎204拥有很大的通用性,可以执行多项搜索来找到可能的命中。示范规范器302将该字符串变换成示范的标准化形式(即,被规格化的搜索字符串402“DOLBY WEST RATED G”)。在这种情况下,规范器302已改变了“doLBy”中的部分字母的字母大小写,以实现将与要(例如,在EPG数据库300中)搜索的文本的情况相匹配的文本搜索项目。规范器302通过将单词之间的空白和“WEST”与“rated”之间破折号用作分界线,来分开搜索项目。规范器302已从“g”的周围除去引号,并且已将搜索项目的整个字符串放入一种字母大小写(即大写字母)。
被规格化的搜索字符串402被传递到示范字符串解释器304,示范字符串解释器304可能会获得该用户在创立搜索字符串202中的意图的相当具有决定性的解释。如果由该用户输入的属性搜索项目可经由(例如)属性列表310而与文本搜索项目清楚地划分界线,则可以实现相当具有决定性的解释。字符串解释器304可能无法实现文本项目与属性项目之间的决定性分离,但是,在这种情况下,字符串解释器304可以将搜索项目传递到查询发生器314,用于进行交替的搜索和/或有条件的搜索。也就是说,如果对于某个项目含糊不清,则该项目可以被用于文本搜索中,也可以被用于属性搜索中,以了解(例如)有多少命中产生于每种类型的搜索。因此,搜索项目“DOLBY”可能是节目标题(例如,“The Dolby Digital Experience”)中的单词;它可能是节目创作者属性(例如,“Thomas Dolby”);以及,它可能是节目性质属性(例如,“DOLBY数字式”)。示范的查询发生器314可以测试这些可能性中的每种可能性作为两项属性搜索406(DOLBY数字式和DOLBY立体声音响)、作为交替的文本搜索410(作为节目标题中的项目的“dolby”)和作为交替的属性搜索(具有名称“Dolby”的演员表和工作人员)。由于作为属性的“DOLBY”的关联性等级不是很高,因此,查询发生器314可以决定不进行作为主要文本搜索406的“DOLBY”搜索。但是,如果可以在文本搜索中找到“DOLBY”,那么,它将会通过交替文本搜索410来发现。因此,万一没有通过具有较高优先权的搜索来返回命中,则可以将交替的或有条件的搜索用作备份,并且/或者,可以将交替搜索410、412用作试探器或调节器,以获得关于搜索字符串202的更多信息,即,加强搜索字符串202的解释或找出新的搜索途径。
也可以在交替属性搜索412中使用来自被规格化的搜索字符串402的搜索项目“WEST”,因为“WEST”可以是来自节目标题的单词,或在一些方案中可以是与该节目关联的个人属性。但是,如果字符串解释器304在属性列表310的扫描过程中没有发现“WEST”,则字符串解释器304可能会坚定地推测“WEST”应该是关于节目标题搜索的主要文本项目。
字符串解释器304检测到搜索项目“RATED”在搜索项目“G”的前面,所以,这两个项目很可能被解释为“RATED G”并相应地被加以搜索。虽然单一项目“RATED”在交替文本搜索410中可以被加以询问(即具有该标题中的单词“评定”的节目),但是,当按众所周知的属性的适当顺序在搜索字符串202中一起发现“RATED”和“G”时,很有可能为这种交替搜索提供低关联性等级。
查询发生器314和/或搜索引擎204继续进行各种文本搜索406、属性搜索408、交替文本搜索410和交替属性搜索412。可以同时或按如搜索字符串202的长度和含义所规定的逻辑顺序来执行的搜索数量不受到限制。在一些情况下,示范搜索引擎204根据“第一次通过”所有这些搜索之后的关联性,来执行所有这些搜索并列出这些结果。在其他情况下,示范搜索引擎204遵循由字符串解释器304或查询发生器314设立的树形逻辑条件。例如,这些逻辑条件可能是“如果文本搜索406产生A,那么,使用搜索项目X来继续进行属性搜索408和交替文本搜索410;但是,如果文本搜索406产生B,那么,继续进行三项交替属性搜索412”。该逻辑可以进一步规定A是一些命中,B是包含特定文本匹配的特定命中。
每种类型的搜索可以返回具有那个特定搜索的结果的中间命中列表。搜索项目“WEST”上的文本搜索命中列表414可能包含节目标题(例如,“How theWest was Won”、“West Side Story”、“The Wild Wild West”、“The WestWing”等)。利用相对较含糊的单一搜索项目(例如,“WEST”),查询发生器314最有可能使用一般的“字符串内”操作符来找到包含单词“WEST”的任何节目标题。
属性搜索命中列表415可能包含具有“DOLBY立体声音响”、“DOLBY数字式”和“评定G”的属性的大量节目标题,或尝试将它们返回。知道这些属性相当普遍,因此,查询发生器314可能会放弃关于一般属性的这类属性搜索408,而包括作为文本搜索406期间的条件和/或滤波器的属性。换言之,如果包含搜索项目“WEST”的文本搜索(406)命中也不跟至少一个Dolby属性和“G”等级关联,则它可能得不到准许。
由于对“WEST”结果的文本搜索406会产生许多不同的命中,因此,搜索引擎204可能会执行对“DOLBY”、“RATED”和“G”的交替文本搜索410,并且,也许会为每个执行命中计数,以进一步搜集信息。也许如果有过标题为“Dolby West”的节目,则搜索引擎204将会根据该确切的标题匹配来改变其最初的解释——搜索引擎204最初假定的邻近的搜索项目曾是文本搜索项目和属性搜索项目的混合。
例如在将演员表和工作人员名称用作属性的方案中,交替属性搜索412可能会找到额外的结果。因此,交替属性搜索项目“DOLBY”和“WEST”已发现四个种类Thomas Dolby电影、Steve Dolby电影、Dominic West电影和ShaneWest电影。交替属性搜索项目“G”也已找到与“G”等级关联的该大量节目标题,但这可能会由于其尺寸而被过滤出去,或是因为该搜索已被包括在主要属性搜索408中。
最后,来自各种搜索406、408、410、412的所有这些命中列表414、416、418、420由结果编辑器320来进行处理。搜索比较器/滤波器324可以将所接收的这些命中与字符串解释器304所提出的搜索字符串202的解释进行比较。结果排列器326可以为这每个命中提供关联性等级。包摄滤波器328可以排除累积的低等级,并且/或者,使命中(太多)以及不符合搜索字符串202的解释的那些命中溢出。在所展示的被过滤的命中列表422中,如果字符串解释器304先前确定过这些搜索项目之间的布尔关系(即,实现过搜索字符串202的解释该节目标题应该包括项目“WEST”,以及,该节目应该在DOLBY数字式中并且被评定为“G”),则将只显示“How the West was Won”和相对较少的其他节目标题。当然,如果示范搜索引擎204所实现的解释不接近该用户的意图(由缺乏该用户所确定的有用结果来加以证实),则该用户可以总是修改该搜索,这尤其是因为在许多实施中,这整个过程可能会几乎立即发生。
示范的渐进搜索图5表现了根据该主题的示范的渐进搜索。由于可用于建立搜索引擎(例如,示范搜索引擎204)的各个模块的硬件和/或软件有足够的功效来提供很高的搜索速度,因此,可以在示范搜索引擎204的一项实施中执行渐进搜索。
在渐进搜索中,这些搜索结果的动态更新的速度如同当该用户将字符打入或输入该UI时可以生成结果的速度。在输入(或除去)每个字符之后,开始一批新的搜索。在非渐进搜索中,要求该用户通过操纵“回车”键并且/或者用其他某种方式指出搜索字符串202完成来手动地开始该搜索。
图5表现了在其输入用于在EPG数据库300中搜索期间的搜索字符串202“The West Wing Dolby Election”的五幅快照,EPG数据库300具有几周有价值的EPG信息和数字视频记录系统的本地硬驱动器上的在本地记录的节目的收集。在方框502处,单词“The”已被输入,并且,示范搜索引擎204已揭示零结果504。这可能是因为规范器302已将“The”组织成语音冠词并且已抑制只基于该冠词的搜索。但是,当输入过“The”中的“T”时,速度很快的系统可能已返回具有该节目标题(例如,“Mr.T”)中的单独的“T”的节目。
在方框506处,单词“The West”现在已被输入,示范搜索引擎204已返回50个结果508(包括“The West Wing”、“How the West was Won”等这类标题)。
在方框510处,“The West Wing”现在已被输入,从而将命中数量从50个缩小到10个结果512。此时,该节目标题也许是确定的,并且,这10个结果也许包括“The West Wing”的电视和电影情节(每段情节都有其自己的节目ID号码)。
在方框514处,“The West Wing Dolby”已被输入,并且,这些有资格的命中被进一步缩小到五个结果516。不在DOLBY数字式中或具有其他某种Dolby属性的前十个的那些情节被排除。
在方框518处,单词“The West Wing Dolby Election”已被输入。这只产生两个结果520。这两个命中包括具有“Dolby”属性并具有“Election”属性的“The West Wing”的那些情节,也许作为关于该情节的说明栏中的单词。
由于当正在输入搜索字符串202时显示这各种命中结果,因此,“The WestWing”的所需情节将会已在该过程的早期阶段(例如,当只输入方框506处的单词“The West”时)出现在显示器332上,并且,该用户将已立即能够加亮并选择该所需情节。
示范方法图6表现了根据该主题来执行自由文本和属性搜索的示范方法600。该方法600可以由模块(例如,图2、3和5中所示的示范搜索引擎204)来执行。在该流程图中,在单独的方框中对这些操作进行概述。这些操作可以在硬件中加以执行,并且/或者,作为可以由处理器执行的机器可读指令(软件或固件)来加以执行。
在方框602处,接收搜索字符串。可以通过一个或多个UI从用户那里接收该字符串,或者,可以从存储器接收该字符串,作为被存储的宏指令或串行化搜索。该搜索字符串也可以每次被接收一个字符,并且,每当新的字符被接收并被加入该发展的搜索字符串时,渐进地执行一组新的搜索。所接收的搜索字符串预期是文本字符串,其属性以文本形式被拼出来。但是,由于所接收的搜索字符串将被加以规格化,以便将非文本要素转换成标准化文本或标准化搜索符号,因此,所接收的搜索字符串可以是字母数字字符、被分配给该ASCII集的符号、记号和/或国际字母表字符的任何组合。在一些变更中,该搜索字符串也可以包括复选框输入、软键输入、点击图标等。
在方框604处,该搜索字符串被规格化。规格化包括将所接收的字符串转换成对于搜索特定的EPG信息来源而言可理解的可以搜索的项目,即具有与将要加以搜索的EPG信息中的数据格式相匹配的格式的可搜索项目。该目标是从防止搜索项目与EPG信息(要不是该形式体系中的差别,将会已产生命中)之间的匹配中仅仅消除该文本、情况语句和字符形式体系中的差别。因此,规格化是这些搜索项目和(可能是)该目标数据库信息这两者的拼写检查、自动纠正、项目分离、字母大小写标准化、符号规格化、语音冠词排除、标点符号去除等的整个工具包。例如,不管是在搜索项目中、在正加以搜索的目标信息中还是在这两者中发现任何一种形式,“mash”和“M*A*S*H*”都将始终匹配。
在方框606处,该搜索字符串被分成文本项目和属性项目。该分离可实现并伴随该搜索字符串的解释。分成文本项目和属性项目的分离导致某种解释以及由规格化提供的可搜索项目的某种变换和置换。由于该平均搜索字符串通常只是五个或六个搜索项目或更少,因此,可以遵循一种方案——尝试各种尺寸编组中的采用所有可能的顺序的搜索项目的所有可能的组合。因此,可以搜求该搜索字符串,以测试这些搜索项目的各种编组和组合。
当产生这各种候选搜索项目和搜索短语(编组)时,可以依照预先存在的属性列表来测试或解释它们,以确定这些搜索项目和短语中的哪些搜索项目和短语是已知属性。也可以依照可能已对该搜索字符串加以执行的任何搜索结果来测试这些候选搜索项目,因为有时对搜索字符串执行的各种搜索不是同时进行,而是根据条件搜索逻辑按顺序或反复地加以执行,该条件搜索逻辑可以在上述搜索字符串的解释期间被设立为搜索约束。
该搜索短语中的单词的迅速扫描也可能会展现该用户想要的其他细节,它们构成解释的另一个要素。如果有许多小写字体的冠词和转接词(例如,“in”、“and”、“is”和“the”),那么,该搜索字符串可以被解释为自然语言条目。但是,只具有一些简明项目的简短搜索字符串很可能被解释为布尔风格搜索。
在方框608处,为每个文本项目和每个属性项目执行一项或多项搜索。可以根据存在的文本项目和属性项目以及它们彼此的关系来提出相对较复杂的搜索询问。作为不太可能、但起说明性作用的例子,搜索字符串“1980年后的西部片科幻男演员”可以被解释为“搜索1980年后创作的西部片,但只是具有也已在科幻电影中担任主演的男演员的西部片”。这类搜索将必须搜索“西部片”种类,并且必须使用减去逻辑来排除1980年后创作的那些西部片和没有也在科幻电影中担任过主演的男演员的那些西部片。可以同时执行许多文本项目搜索和属性项目搜索,也可以根据所接收的结果按顺序或反复地来加以执行。因此,执行示范方法600的搜索引擎(例如,示范搜索引擎204)可以是搜索支管,从而开始“同时全方向”进行的搜索。
在方框610处,搜索结果被加以组合、排列和/或过滤,用于显示。通常根据在将属性项目与文本项目分开期间所假定的布尔关系来执行该组合。也就是说,这些搜索结果如何被加以组合部分地由在文本项目和属性项目分开期间和在询问形成期间所实现的搜索字符串的解释来加以预定。如何为这些结果提供关联性等级也可能取决于在该过程中的早期阶段实现的解释。过滤可能取决于用于显示的预置用户偏爱性,或者可能取决于具有低于门限的关联性等级的结果从视觉中被排除的方案。
在方框612处,向该用户显示搜索结果。可以在实行所有搜索之后显示这些结果,但是,也可以在对其进行接收和编辑时将它们显示出来。在渐进搜索中,显示这些结果的速度与正在输入该搜索字符串的速度一样快,每个所输入的字符开始一整组新的搜索。
以上所描述的示范方法600只是该主题的一个例子。这并不意在起限制性的作用,而是意在描述对于用户而言可能具有许多变更的一个范例过程。
示范计算设备图7表现了适合作为用于实践该主题的各个方面的环境的示范计算机700。示范计算机700的部件可以包括(但不局限于)处理单元720、系统存储器730和系统总线721,系统总线721将包括系统存储器730的各种系统部件耦合到处理单元720。系统总线721可能是几种类型的总线结构(包括存储总线或存储控制器、外围总线和使用各种总线构造中的任何总线构造的局域总线)中的任何总线结构。举例来讲(不作限制),这类构造包括“工业标准结构”(ISA)总线、“微通道结构”(MCA)总线、“增强型ISA”(EISA)总线、“视频电子标准协会”(VESA)局域总线和也被称作“中层楼总线”的“外围部件互连”(PCI)总线。
示范计算机700通常包括各种计算机可读介质。计算机可读介质可以是可由示范计算机700进行存取的任何可用介质,它包括易失和非易失介质、可移动和不可移动介质。举例来讲(不作限制),计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失和非易失的可移动和不可移动介质,它们用关于信息(例如,计算机可读指令、数据结构、程序模块或其他数据)存储的任何方法或技术来加以执行。计算机存储介质包括(但不局限于)RAM、ROM、EEPROM、快闪存储器或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光盘存储器、盒式磁带、磁带、磁盘存储器或其他磁性存储设备、或可以被用来存储所需信息并可以由示范计算机700来进行存取的其他任何介质。通信介质通常具体表现计算机可读指令、数据结构、程序模块或调制数据信号(例如,载波或其他传送机制)中的其他数据,它包括任何信息传递介质。术语“调制数据信号”意味着一种信号,该信号的一个或多个特征用这样一种方式来加以设置或更改,以便为该信号中的信息编码。举例来讲(不作限制),通信介质包括有线介质(例如,有线网络或直线连接)和无线介质(例如,声音、RF、红外线和其他无线介质)。以上任何内容的组合也应该被包括在计算机可读介质的范围内。
系统存储器730包括采用易失和/或非易失存储器(例如,只读存储器(ROM)731和随机存取存储器(RAM)732)形式的计算机存储介质。基本输入/输出系统733(BIOS)通常被存储在ROM 731中,该基本输入/输出系统包含有助于在示范计算机700内的各个元件之间传送信息(例如,在启动期间)的基本例行程序。RAM 732通常包含处理单元720可以立即获得并且/或者目前正由处理单元720操作的数据和/或程序模块。举例来讲(不作限制),图7展示了操作系统734、应用程序735、示范搜索引擎204、其他程序模块736和程序数据737。虽然示范搜索引擎204被描绘成随机存取存储器732中的软件,但是,示范搜索引擎204的其他实施也可以是硬件或软件和硬件的组合。
示范计算机700也可以包括其他可移动/不可移动的易失/非易失计算机存储介质。仅仅举例来讲,图7展示了从不可移动的非易失磁性介质读取或对其写入的硬盘驱动器741、从可移动的非易失磁盘752读取或对其写入的磁盘驱动器751,以及从可移动的非易失光盘756(例如,CD ROM或其他光学介质)读取或对其写入的光盘驱动器755。该示范操作环境中可以使用的其他可移动/不可移动的易失/非易失计算机存储介质包括(但不局限于)卡型盒式磁带机、快闪存储卡、数字通用光盘、数字录像磁带、固态RAM、固态ROM和类似的介质。硬盘驱动器741通常通过不可移动的存储接口(例如,接口740)被连接到系统总线721,并且,磁盘驱动器751和光盘驱动器755通常由可移动的存储接口(例如,接口750)连接到系统总线721。
以上所讨论的和图7中所展示的各种驱动器及其关联的计算机存储介质为示范计算机700提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图7中,例如,硬盘驱动器741被展示为存储操作系统744、应用程序745、其他程序模块746和程序数据747。注意,这些部件可以等同于或不同于操作系统734、应用程序735、其他程序模块736和程序数据737。这里为操作系统744、应用程序745、其他程序模块746和程序数据747提供不同的号码,以至少展示它们是不同的副本。用户可以通过输入设备(例如,键盘762)和定点设备761(通常被称作“鼠标”、“跟踪球”或“触垫”)将命令和信息输入示范计算机700。其他输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似的输入设备。这些和其他的输入设备经常通过被耦合到该系统总线的用户输入接口而被连接到处理单元720,但也可以由其他接口和总线结构(例如,并行端口、游戏端口或通用串行总线(USB))来加以连接。监视器791或其他类型的显示设备也经由接口(例如,视频接口790)被连接到系统总线721。除了该监视器以外,计算机也可以包括其他外围输出设备(例如,扬声器797和打印机796),这些外围输出设备可以通过输出外围接口795来加以连接。
该计算机可以在使用与一台或多台远程计算机(例如,远程计算机780)的逻辑连接的联网环境中进行操作。远程计算机780可能是个人计算机、服务器、路由器、网络PC、对等设备或其他共同的网络节点,它通常包括以上相对于示范计算机700而描述的许多或所有元件,尽管图7中只展示了记忆存储设备781。图7中所描绘的逻辑连接包括局域网(LAN)771和广域网(WAN)773,但也可能包括其他网络。这类联网环境在办公室、企业范围的计算机网络、内联网和因特网中很普遍。
当被用于LAN联网环境中时,示范计算机700通过网络接口或适配器770被连接到LAN 771。当被用于WAN联网环境中时,示范计算机700通常包括用于在WAN 773(例如,因特网)上建立通信的调制解调器772或其他装置。调制解调器772(可能是内置的,也可能是外置的)可能经由用户输入接口760或其他合适的机制被连接到系统总线721。在联网环境中,相对于示范计算机700而描绘的程序模块或其各个部分可能被存储在该远程记忆存储设备中。举例来讲(不作限制),图7将远程应用程序785展示为驻留在存储设备781上。将会理解所示的这些网络连接起示范的作用,并且可以使用在这些计算机之间建立通信链路的其他装置。
当然,也可以在许多其他的环境(例如,具有合适的硬件的机顶盒、游戏控制台和许多其他类型的处理设备)中使用该主题。这些环境中的每个环境可以包含部分而不是全部以上为示范计算机700而描述的部件。
结论应该注意,可以在硬件中、在软件中或在硬件和软件中执行以上所描述的主题。在某些实施中,可以在正由计算机执行的计算机可执行指令(例如,程序模块)的一般上下文中描述该示范系统和有关的方法。通常,程序模块包括执行特殊任务或执行特殊的抽象数据类型的例行程序、程序、对象、部件、数据结构等。也可以在分布式通信环境中实践该主题,在这些分布式通信环境中,由通过通信网络而被连接的远程处理设备来执行关于无线通信的任务。在无线网络中,程序模块可能位于包括记忆存储设备的本地通信设备存储介质和远程通信设备存储介质中。
上文描述了关于EPG数据的自由文本和属性搜索的示范系统和方法。虽然已用针对结构特点和/或方法论动作的语言来描述本发明,但是,将会理解所附权利要求书中定义的主题不一定要局限于所描述的特殊特点或动作。相反,这些特殊的特点和动作被揭示为执行所声明的发明的示范形式。
附录A示范属性列表<?xml version=″1.0″encoding=″utf-8″standalone=″yes″?><searchInfo>
<categoryAndAttributeMappings separatorChar=″|″>
<mapping keywords=″closed captioned|closed captioning|closedcaptions″field=″ScheduleEntryAttribute″value=″MSEPGA_CC″/>
<mapping keywords=″stereo″field=″ScheduleEntryAttribute″value=″MSEPGA_STEREO″/>
<mapping keywords=″repeat|rerun|re run″field=″ScheduleEntryAttribute″value=″MSEPGA_REPEAT″/>
<mapping keywords=″live″field=″ScheduleEntryAttribute″value=″MSEPGA_LIVE″/>
<mapping keywords=″subtitled|subtitles″field=″ScheduleEntryAttribute″value=″MSEPGA_SUBTITLED″/>
<mapping keywords=″season premiere|season premier″field=″ScheduleEntryAttribute″value=″MSEPGA_SEASONPREMIERE″/>
<mapping keywords=″season finale″field=″ScheduleEntryAttribute″value=″MSEPGA_SEASONFINALE″/>
<mapping keywords=″series premiere|season premier″field=″ScheduleEntryAttribute″value=″MSEPGA_SERIESPREMIERE″/>
<mapping keywords=″series finale″field=″ScheduleEntryAttribute″value=″MSEPGA_SERIESFINALE″/>
<mapping keywords=″premiere″field=″ScheduleEntryAttribute″value=″MSEPGA_PREMIERE″/>
<mapping keywords=″finale″field=″ScheduleEntryAttribute″value=″MSEPGA_FINAL″/>
<mapping keywórds=″letterbox″field=″ScheduleEntryAttribute″value=″MSEPGA_LETTERBOX″/>
<mapping keywords=″hdtv″field=″ScheduleEntryAttribute″value=″MSEPGA_HDTV″/>
<mapping keywords=″sap″field=″ScheduleEntryAttribute″value=″MSEPGA_SAP″/>
<mapping keywords=″dolby″field=″ScheduleEntryAttribute″value=″MSEPGA_DOLBY″/>
<mapping keywords=″dvs″field=″ScheduleEntryAttribute″value=″MSEPGA_DVS″/>
<mapping keywords=″rated pg 13|rated pg13″field=″ProgramRatingAttribute″value=″MSEPGR_PG13″/>
<mapping keywords=″rated pg″field=″ProgramRatingAttribute″value=″MSEPGR_PG″/>
<mapping keywords=″rated nc 17|rated nc17″field=″ProgramRatingAttribute″value=″MSEPGR_NC17″/>
<mapping keywords=″rated.g″field=″ProgramRatingAttribute″value=″MSEPGR_G″/>
<mapping keywords=″rated r″field=″ProgramRatingAttribute″value=″MSEPGR_R″/>
<mapping keywords=″rated x″field=″ProgramRatingAttribute″value=″MSEPGR_X″/>
<mapping keywords=″rated ao″field=″ProgramRatingAttribute″value=″MSEPGR_AO″/>
<mapping keywords=″paid programming″field=″ProgramAttribute″value=″MSEPGA_PAIDPROGRAMMING″/>
<mapping keywords=″miniseries″field=″ProgramAttribute″value=″MSEPGA_MINISERIES″/>
<mapping keywords=″action adventure series″field=″Category″value=″Series-701″/>
<mapping keywords=″action adventure movie|action adventure movies″field=″Category″value=″CMOVIE_ACTIONADV″/>
<mapping keywords=″action adventure″field=″Category″value=″CMOVIE_ACTIONADV|Series-701″/>
<mapping keywords=″comedy|comedies″field=″Category″value=″Movies-504|Series-703|Kids-303″/>
<mapping keywords=″comedy series″field=″Category″value=″Series-703″/>
<mapping keywords=″comedy movie″field=″Category″value=″Movies-504″/>
<mapping keywords=″documentary|documentaries″field=″Category″value=″Educational-103″/>
<mapping keywords=″drama″field=″Category″value=″CMOVIE_DRAMA|Series-705″/>
<mapping keywords=″educational series″field=″Category″value=″Series-706″/>
<mapping keywords=″educational″field=″Category″value=″Series-706|Kids-304|Educational-1″/>
<mapping keywords=″movies″field=″Category″value=″MSEPGC_MOVIES″/>
<mapping keywords=″peliculas″field=″Category″value=″MSEPGC_MOVIES″/>
<mapping keywords=″music″field=″Category″value=″Movies-508|Series-709|Special-803″/>
<mapping keywords=″news″field=″Category″value=″MSEPGC_NEWS″/>
<mapping keywords=″science fiction movie|science fiction movies″field=″Category″value=″Movies-511″/>
<mapping keywords=″science fiction″field=″Category″value=″Movies-511″/>
<mapping keywords=″fantasy movie|fantasy movies″field=″Category″value=″Movies-506″/>
<mapping keywords=″fantasy″field=″Category″value=″Movies-506″/>
<mapping keywords=″soap operas|soaps″field=″Category″value=″Series-711″/>
<mapping keywords=″sports″field=″Category″value=″News-605|Special-805|MSEPGC_SPORTS″/>
<mapping keywords=″adults only|xxx″field=″Category″value=″Movies-502|Lifestyle-401″/>
<mapping keywords=″kids movies″field=″Category″value=″Movies-503″/>
<mapping keywords=″kids series″field=″Category″value=″Series-702″/>
<mapping keywords=″kids″field=″Category″value=″Series-702|Movies-503|Kids-3″/>
<mapping keywords=″musicals″field=″Category″value=″Movies-508″/>
<mapping keywords=″mystery movies|mysteries|mystery″field=″Category″value=″Movies-509″/>
<mapping keywords=″love stories|romance″field=″Category″value=″Movies-510″/>
<mapping keywords=″suspense″field=″Category″value=″Movies-512″/>
<mapping keywords=″westerns|western″field=″Category″value=″Movies-513″/>
<mapping keywords=″animated|cartoon″field=″Category″value=″Kids-302″/>
<mapping keywords=″baseball|mlb″field=″Category″value=″CBASEBALL″/>
<mapping keywords=″basketball|nba″field=″Category″value=″CBASKETBALL″/>
<mapping keywords=″boxing″field=″Category″value=″CBOXING″/>
<mapping keywords=″football|nfl″field=″Category″value=″CFOOTBALL″/>
<mapping keywords=″golf|pga|lpga|usga″ field=″Category″value=″CGOLF″/>
<mapping keywords=″hockey|nhl″field=″Category″value=″CHOCKEY″/>
<mapping keywords=″outdoor sports″field=″Category″value=″COUTDOOR″/>
<mapping keywords=″racing″field=″Category″value=″CRACING″/>
<mapping keywords=″soccer″field=″Category″value=″CSOCCER″/>
<mapping keywords=″tennis″field=″Category″value=″CTENNIS″/>
<mapping keywords=″sports news″field=″Category″value=″News-605″/>
<mapping keywords=″sports″field=″Category″value=″MSEPGC_SPORTS|News-605″/>
<mapping keywords=″business news|financial news″field=″Category″value=″News-601″/>
<mapping keywords=″interviews|interview″field=″Category″value=″News-602″/>
<mapping keywords=″public affairs″field=″Category″value=″News-604″/>
<mapping keywords=″weather″field=″Category″value=″News-606″/>
<mapping keywords=″cooking″field=″Category″value=″Series-704″/>
<mapping keywords=″game shows|game show″field=″Category″value=″Series-707″/>
<mapping keywords=″how to|howto″field=″Category″value=″Series-708″/>
<mapping keywords=″talk shows|talk show″field=″Category″value=″Series-712″/>
<mapping keywords=″travel″field=″Category″value=″Series-713″/>
<mapping keywords=″religious″field=″Category″value=″Special-804|Lifestyle-409″/>
<mapping keywords=″holidays|holiday″field=″Category″value=″Special-802″/>
<mapping keywords=″biography″field=″Category″value=″Educational-102″/>
<mapping keywords=″science″field=″Category″value=″Educational-105″/>
<mapping keywords=″collectibles″field=″Category″value=″Lifestyle-402″/>
<mapping keywords=″exercise″field=″Category″value=″Lifestyle-404″/>
<mapping keywords=″health″field=″Category″value=″Lifestyle-405″/>
<mapping keywords=″home garden″field=″Category″value=″Lifestyle-406″/>
<mapping keywords=″international″field=″Category″value=″Lifestyle-407″/>
<mapping keywords=″outdoors″field=″Category″value=″Lifestyle-408″/>
<mapping keywords=″primetime|prime time″field=″TimeOfDay″value=″1140|1380″/>
<mapping keywords=″morning″field=″TimeOfDay″value=″300|720″/>
<mapping keywords=″afternoon″field=″TimeOfDay″value=″720|1080″/>
<mapping keywords=″evening″field=″TimeOfDay″value=″1020|1200″/>
<mapping keywords=″late night″field=″TimeOfDay″value=″1380|300″/></categoryAndAttributeMappings></searchInfo>
权利要求
1.一种搜索电子节目指南(EPG)数据的方法,其特征在于,包括接收文本搜索字符串;对该文本搜索字符串进行规格化,其中,该规格化包括除去或转换该文本搜索字符串中的符号,以形成可搜索项目;将这些可搜索项目分成文本项目和属性项目;为每个文本项目和每个属性项目在该EPG数据中执行搜索;以及,执行来自这些搜索的结果的组合、排列和过滤中的一项,用于显示符合该搜索字符串的节目。
2.如权利要求1中所述的方法,其特征在于,该规格化包括转换这些可搜索项目的语言规定形式,以便与该EPG数据的语言规定形式相匹配。
3.如权利要求1中所述的方法,其特征在于,该分离包括将这些可搜索项目与属性列表中的属性进行比较,以便将这些文本项目与这些属性项目分开。
4.如权利要求1中所述的方法,其特征在于,该分离包括将可搜索项目与来自文本搜索的结果进行比较,以便将这些文本项目与这些属性项目分开。
5.如权利要求1中所述的方法,其特征在于,该分离还包括用各种组合对这些可搜索项目进行分组,以实现一组可搜索短语。
6.如权利要求5中所述的方法,其特征在于,该分离还包括在该分组之前,调换这些可搜索项目中的至少两个可搜索项目的顺序。
7.如权利要求5中所述的方法,其特征在于还包括将这些可搜索短语与属性列表中的属性进行比较,以确定这些可搜索短语中的任何可搜索短语是否都是属性。
8.如权利要求7中所述的方法,其特征在于,该属性列表包含索引,该索引使编索引的属性跟关于每个编索引的属性的目标资源和搜索值联系起来。
9.如权利要求7中所述的方法,其特征在于,该属性列表包含与该属性列表中的属性关联的分支逻辑,以便使用该属性来指导搜索。
10.如权利要求7中所述的方法,其特征在于,该属性列表包含关于该属性列表中的属性的元数据,以便使用该属性来指导搜索。
11.如权利要求1中所述的方法,其特征在于,该分离搜索项目包括形成该用户在创立该文本搜索字符串中的意图的解释。
12.如权利要求1中所述的方法,其特征在于,根据该解释来执行该组合、排列和过滤。
13.一种关于电子节目指南(EPG)数据的搜索引擎,其特征在于,包括用通讯联络方式与属性列表耦合的字符串解释器,其中,该字符串解释器假定搜索字符串中的项目的含义;与该字符串解释器耦合的查询发生器;以及,与该查询发生器耦合的结果编辑器,用于实现符合该搜索字符串的节目结果清单。
14.如权利要求13中所述的搜索引擎,其特征在于,该字符串解释器还包括字符串变换器和属性标识符。
15.如权利要求14中所述的搜索引擎,其特征在于,该属性标识符使用该属性列表,将属性项目与该搜索字符串中的文本项目分开。
16.如权利要求13中所述的搜索引擎,其特征在于,该搜索引擎在EPG数据库和基于web的EPG资源中执行搜索。
17.如权利要求13中所述的搜索引擎,其特征在于,还包括具有搜索比较器/滤波器和结果排列器的结果编辑器。
18.如权利要求17中所述的搜索引擎,其特征在于,该搜索比较器/滤波器将搜索结果与该字符串解释器所假定的项目含义进行比较。
19.如权利要求17中所述的搜索引擎,其特征在于,该结果排列器根据该字符串解释器所假定的项目含义来为搜索结果分配关联性等级。
20.一种用于电子节目指南(EPG)数据库搜索的系统,其特征在于,包括搜索字符串接收器,用于接受具有潜在文本项目和潜在属性项目的文本搜索字符串;与该搜索字符串接收器耦合的规范器;与该规范器耦合的字符串解释器,其中,该字符串解释器可以使用属性列表和搜索约束表格;该字符串解释器中所包括的字符串变换器,用于按各种组合对该潜在文本项目和属性项目进行分组,并调换这些可搜索项目中的至少两个可搜索项目的顺序;该字符串解释器中所包括的属性标识符,用于将属性项目与文本项目分开,其中,该属性标识符跟属性列表和搜索约束表格耦合;与该字符串解释器耦合的查询发生器,用于阐明文本和属性询问,其中,该属性标识符跟EPG数据库和基于web的EPG资源耦合;与该查询发生器耦合的结果编辑器;该结果编辑器中所包括的搜索比较器/滤波器,其中,该搜索比较器/滤波器与该字符串解释器耦合;该结果编辑器中所包括的结果排列器,用于为搜索结果分配关联性;该结果编辑器中所包括的包摄滤波器,用于根据所分配的关联性来过滤搜索结果;以及,显示器,用于列出符合这些搜索结果的节目。
21.如权利要求20中所述的系统,其特征在于,该字符串解释器使用该属性列表中的信息和该搜索约束表格中的信息,以便为该搜索字符串中的这些项目分配试验性含义。
22.如权利要求21中所述的系统,其特征在于,该查询发生器根据该试验性含义来创建查询条件和查询逻辑,用于实现符合该试验性含义的搜索结果。
23.如权利要求22中所述的系统,其特征在于,该字符串解释器根据搜索结果来改变该试验性含义。
24.一种用于协助电子节目指南(EPG)数据搜索的属性列表的格式,其特征在于,包括该EPG数据中所列出的节目属性;关于这些属性中的至少部分属性的元数据,其中,属性的该元数据使该属性跟搜索资源和要在该搜索中使用的值联系起来。
25.如权利要求24中所述的格式,其特征在于,该元数据使该属性与约束表格中的一组逻辑搜索条件联系起来。
26.如权利要求24中所述的格式,其特征在于,还包括索引,用于使该属性列表中的属性跟关于该搜索的有关的属性和值联系起来。
27.一种或多种计算机可读介质,其特征在于,包含可由计算机执行的指令,以执行动作,这些动作包括接收文本搜索字符串;将该文本搜索字符串格式化成与将要加以搜索的电子节目指南(EPG)数据相兼容的搜索项目;从这些搜索项目中获得文本项目和属性项目;为每个文本项目和每个属性项目在该EPG数据中执行搜索;以及,为每个搜索结果命中分配关联性等级;以及,显示通过关联性而加以过滤的命中。
28.如权利要求27中所述的包含指令的这一种或多种计算机可读介质,其特征在于,该格式化包括拼写检查、自动纠正、项目分离、字母大小写规格化、标点符号去除、符号规格化、冠词消除和该搜索字符串复数化之一。
29.如权利要求27中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括指令,以便使用搜索项目的抽去单词词根版本来执行搜索。
30.如权利要求27中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括指令,以便使用搜索项目的单词分支版本来执行搜索。
31.如权利要求27中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括指令,用于将这些搜索项目与属性列表中的属性进行比较,以实现这些文本项目和这些属性项目的分离。
32.如权利要求27中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括指令,用于按各种组合对这些搜索项目进行分组,以实现一组搜索短语。
33.如权利要求32中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括指令,用于在执行这些指令来为这些搜索项目分组之前,调换这些搜索项目中的至少两个搜索项目的顺序。
34.如权利要求32中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括指令,用于将这些搜索短语与属性列表中的属性进行比较,以确定这些搜索短语中的任何搜索短语是否都是属性。
35.如权利要求27中所述的包含指令的这一种或多种计算机可读介质,其特征在于,对文本项目和属性项目的这种获得还包括形成该用户在创立该文本搜索字符串中的意图的解释。
36.如权利要求35中所述的包含指令的这一种或多种计算机可读介质,其特征在于,还包括用于根据该解释来组合、排列和过滤搜索结果的指令。
37.一种搜索电子节目指南(EPG)信息的方法,其特征在于,包括接收文本搜索字符串,每次一个字符;每当接收新的字符时,执行一组新的搜索,包括使这个新的字符与该文本搜索字符串的先前所接收的字符连接起来,以产生新的文本搜索字符串;将该文本搜索字符串规格化为一个或多个可搜索项目;将这些可搜索项目分成文本项目和属性项目;为每个文本项目和每个属性项目在该EPG信息中执行搜索;以及,执行来自这些搜索的结果的组合、排列和过滤中的一项,其中,来自这些搜索的结果由符合这个新的搜索字符串的节目来代表。
38.如权利要求37中所述的方法,其特征在于,还包括在接收该文本搜索字符串的下一个字符之前,显示这些结果。
全文摘要
主题包括关于电子节目指南(EPG)数据和有关方法的搜索引擎。在示范方法中,可以将文本搜索字符串规格化成可搜索项目和被解释为文本搜索项目或属性搜索项目的项目。根据该搜索字符串的项目的解释来创建具有不同复杂程度的搜索条件的一个或多个询问。根据这些文本项目和属性项目的解释来执行EPG数据库和/或web资源中的一项或多项搜索,并且根据该解释来为结果提供关联性等级。可以对这些组合的搜索结果进行分组、排列和过滤,用于向该用户显示。当该用户输入搜索字符串的每个字符时,也可以渐进地显示结果。
文档编号G06F17/30GK1533163SQ20041003221
公开日2004年9月29日 申请日期2004年3月24日 优先权日2003年3月24日
发明者S·D·三德士, S D 三德士 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1