CN101601033B - 响应于模式化查询而生成专业的搜索结果 - Google Patents

响应于模式化查询而生成专业的搜索结果 Download PDF

Info

Publication number
CN101601033B
CN101601033B CN200780018683.1A CN200780018683A CN101601033B CN 101601033 B CN101601033 B CN 101601033B CN 200780018683 A CN200780018683 A CN 200780018683A CN 101601033 B CN101601033 B CN 101601033B
Authority
CN
China
Prior art keywords
search
pattern
query
professional
inquiry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200780018683.1A
Other languages
English (en)
Other versions
CN101601033A (zh
Inventor
N·B·温因格
R·V·古哈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN101601033A publication Critical patent/CN101601033A/zh
Application granted granted Critical
Publication of CN101601033B publication Critical patent/CN101601033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

第三方内容供应商可以指定参数,该参数用于:响应于查询与特定模式相匹配,生成专业搜索结果。以此,普通的搜索网站可以被增强以向订阅用户提供专业搜索结果。在一个实施方式中,仅当给定用户已经订阅了来自该特定内容供应商的增强时,这些专业结果才出现在该用户的结果页面上,从而使用户可以定制其搜索体验,并查看其可能更为感兴趣的结果。在其他实施方式中,专业结果对所有用户都是可用的。

Description

响应于模式化查询而生成专业的搜索结果
相关申请交叉引用
本专利申请要求以下申请的优先权:2006年4月7日递交的、名为“Specifying Output Generation in Response to Patterned Queries”的美国临时专利申请序号60/790,319,以及2007年3月30日递交的、名为“Generating Specialize Results in Response to Patterned Queries”的美国发明专利申请序号11/694,490,在此通过参考并入上述申请。
技术领域
本发明涉及显示专业搜索结果,并且更具体地,涉及允许第三方内容供应商创建对搜索结果页面的增强的机制,其中该搜索结果页面由与特定模式相匹配的查询所触发。
背景技术
当用户在互联网上搜索网站或者其他信息时,他们可能并不总能获得预期的结果。在很多情况下,用户为了获取其搜寻的信息必须仔细地表达其查询。一些用户,特别是初级用户,并不具有表达出将会产生预期信息的查询的技能、技术、知识、经验或者耐心。
另一方面,网站作者常常具有这种技术,并且能够表达出将会提供可能对那些网站的访问者有用的信息的查询。网站上经常出现专业的搜索功能,其允许那些网站的访问者看到适应于他们可能感兴趣的特定内容的搜索结果,该特定内容是根据用户正在从该网站进行搜索这一事实而被认为是用户可能感兴趣的。例如,专用于交通信息的网站可以对例如“洲际280”的查询进行不同于通用搜索站点将提供的解释。用户正在访问交通信息网站这一事实意味着,他或者她对于交通信息感兴趣。
然而,用户并不总是便于访问特定网站来执行这样的专业搜索。用户可能希望在诸如www.google.com的通用搜索站点上执行其所有(或者大多数)搜索,而不是为执行不同的搜索而必须访问不同的网站。因此,如果第三方内容供应商能够在通用搜索站点上支持专业搜索,这将是有益的。
此外,不同的用户具有不同的偏好、需要以及兴趣。一些用户可能对于涉及电视节目的搜索感兴趣,而其他用户可能对于涉及世界天气的搜索感兴趣。因此,有益的是:使用户能够指定其对哪些类型的专业搜索感兴趣,从而专业搜索结果可以适合于那些确认为感兴趣的领域。
发明内容
本发明允许第三方内容供应商创建对匹配特定模式的查询所触发的搜索结果页面的增强。在一个实施方式中,仅当用户已经订阅了来自该特定内容供应商的增强时,这些专业结果才会出现在给定用户的结果页面上,使得用户能够定制其搜索体验,并且查看其更有可能感兴趣的结果。
响应于查询与给定模式相匹配,本发明的系统产生以下内容中的一个或多个:
-到有用的外部站点的链接,包括基于该查询的使用URL模式的深链接;
-给出关于某些类型事物的状态或者实际情况的文本,允许用户直接根据结果页面得到对一些问题集的答案,而不需要点击进入到外部站点。
-允许用户与外部供应商进行有益交互的链接和文本(以及可选地更为丰富的接口原语);和/或
-由第三方服务器主控的IFRAMED内容。
应用编程接口(API)允许第三方内容供应商指定参数,以便将其专业结果包括在搜索结果页面中。内容供应商由此可以响应于特定种类的查询,按照特定的格式来显示特定类型的信息。
内容供应商规定参数,也即,什么类型的搜索查询将触发从该供应商获取内容。内容供应商还规定将如何对查询进行解析,以及如何使用所提取的查询项来获取内容。最终,内容供应商规定所获取的内容将如何显示在用户的浏览器窗口中。在一个实施方式中,用户可以选择其希望接收哪些类型的专业搜索结果,并将这些结果添加到其结果页面中,以利用第三方内容来增强其搜索体验。
附图说明
图1示出了包括专业搜索结果的结果屏幕的示例。
图2示出了包括基于模式匹配的专业搜索结果的结果屏幕的示例。
图3示出了包括指定了响应格式的专业搜索结果的结果屏幕的示例。
图4示出了包括基于正则表达式而生成的专业搜索结果的结果屏幕的示例。
图5示出了包括专业搜索结果(该专业搜索结果包含额外提取的元素)的结果屏幕。
图6示出了包括使用参考属性获取的专业搜索结果的结果屏幕的示例。
图7是示出了用于实践本发明的系统示例的框图。
图8是示出了根据一个实施方式的、用于实践本发明的方法示例的流程图。
图9是示出根据一个实施方式的、用户在与本发明的系统进行交互中的体验的示例流程图。
附图仅仅出于说明的目的而描述了本发明的优选实施方式。根据下文的讨论,本领域的技术人员将会容易地认识到,可以采用在此说明的结构和方法的备选实施方式,而不背离在此描述的本发明的原理。
具体实施方式
在下文描述中,术语“订阅的链接”用来表示用户可以通过它来指明他或者她对接收特定类别的搜索结果感兴趣的机制。如下文更详细描述的,搜索结果的类别通常是基于某种查询模式。术语“订阅的”表示用户可以自由地参与或者退出搜索结果类别(实际上是打开或者关闭订阅)这一事实。
然而,在一个实施方式中,可以将搜索结果类别提供给所有用户。可选地,可以基于一些标准(诸如浏览器平台、OS平台、地理位置、搜索历史、人口统计特征、网站访问历史等等)将搜索结果类别提供给一些用户。实际上,符合标准的那些用户继而可以自动订阅某些链接。在一个实施方式中,在用户已经自动订阅之后,用户可以自由退出;在其他实施方式中,用户没有这么做的自由。
在下文描述中,术语“专业结果”表示通过在此描述的模式化查询/响应机制生成的任何结果,而不论发起的链接是否是订阅的链接。
服务器基础架构
现在参考图7,其示出了用于实践本发明的系统700的示例。本领域技术人员将会认识到,图7中所示的并在此描述的架构仅仅是出于说明性的目的而给出的,本发明同样可以通过其他架构来实践。
还要参考图8,其示出了根据一个实施方式的、用于实践本发明的方法的示例。
在一个实施方式中,本发明是使用数据服务器或者数据服务器集701来实现的。这些服务器存储有各种内容供应商提交的知识库数据以及查询/结果规范文件。下文将进一步描述这些规范文件的格式和功能。
使用客户端750,已登录用户在搜索网站702输入802查询,其中查询网站702可以是诸如www.google.com的通用搜索站点。在一个实施方式中,用户登录,使他或者她能够被识别,从而可以确定该用户已经订阅了哪些链接(如果有的话)。将用户的查询703发送803至前端服务器704。前端服务器704将请求715传递804给一个或多个信任服务器705,该信任服务器705执行以下步骤:
首先,信任服务器705获取805内容供应商的列表706,其中用户足够“信任”这些内容供应商,来自这些内容供应商的专业结果将呈现给用户。这包括用户做出的所有显式的、直接的订阅决定。在一个实施方式中,这还可以包括间接信任关系和/或试验性推荐。列表706包括供应商馈送的URL,从而使得可以从适当的来源获取用于订阅链接的数据。
对于列表706中的每个供应商,信任服务器705向适当的数据服务器701发送806请求707,以得到该内容供应商针对查询703的专业结果。数据服务器701可以根据公知技术而共享。
将专业搜索结果708返回807给信任服务器705,信任服务器705继而以HTML形式呈现808该结果,并且将用HTML呈现的结果709发送至前端服务器704。在一个实施方式中,该呈现是通过信任服务器705外部的部件来执行的。例如,可以通过实现为链接到信任服务器705的呈现器(未示出)来执行该呈现;可选地,其可以实现为服务器的调出(call-out)(例如Google Gadget服务器),以便支持与API(例如Google Gadgets API)的紧密集成。呈现器处理例如以下的决策:在所返回的专业结果708的总数过大的情况下,显示什么以便使其适合可用的显示空间。本领域的技术人员将会意识到,不一定通过HTML对结果进行格式化,而是可以使用其他任何格式。
只要将所呈现的结果709提供给了前端服务器704,便将其中继809到搜索站点702,以便由搜索站点702内嵌式(drop-in)显示(可能与其他搜索结果一起)。搜索站点702生成801结果页面,并且将其传输给客户端750处运行的浏览器。客户端浏览器继而将结果显示811给用户。如下文描述的例子中所示,可以通过视觉上截然不同的方式(例如,在阴影框内)来显示专业的呈现结果709,从而将其与普通搜索结果区分开;备选地,可以不做出特别的视觉区分。
在接收到调用以针对给定查询和供应商提供专业结果时,每个单独的数据服务器701根据针对该供应商的专业结果列表来处理该查询,提取适当的知识库元素。数据服务器701根据供应商规定的输出模板对结果进行格式化。
订户/供应商服务器710允许用户订阅和退订由特定内容供应商所提供的专业结果,并且还允许供应商上传定义有其专业结果的XML文件的位置。
馈送爬取(feed crawl)服务器711根据从订户/供应商服务器710接收到的馈送URL列表712,来处理实际的XML数据文件从内容供应商网站的载入。馈送爬取服务器711将XML转换为数据服务器701使用的内部protobuffer(原型缓冲器)格式。馈送爬取服务器711对数据进行确认,并在数据改变时向数据服务器701分片(shard)发送更新713。当数据服务器701接收到了针对其存储器中没有的、来自供应商的订阅链接的请求时,生成加载请求720。数据服务器701将加载请求720发送给馈送爬取服务器711,从而使馈送爬取服务器711将取回针对该供应商的数据。
对用户订阅信息的改变由信任关系服务器架构来处理。当供应商的信息改变时,馈送爬取服务器711将更新请求714广播至前端服务器704,前端服务器704继而将更新请求传递到适当的数据服务器701分片上。
在一个实施方式中,每个数据服务器701均支持以下操作:
-处理针对给定供应商集合的请求,从而获取与该请求匹配的所有专业结果。
-通过从馈送爬服务器711或者本地数据文件读取针对供应商的最新规范和/或基础数据来更新数据,以及可选地添加和/或删除一些指定的对象。
前端服务器704对于其控制的数据服务器701分片具有以下责任:
-跟踪每个供应商分片,并且在用户进行查询时将专业数据请求转发到适当的数据服务器701分片上。
-当供应商修改规范或者知识库数据时,将更新数据请求转发至适当的数据服务器701分片。
-搜索站点702从用户处接收801查询。
图7中所示的架构以及图8中所示的方法将在若干例子的上下文中进一步描述。然而,这些例子中的具体特征意在说明性而非限制性。本领域的技术人员将会认识到,本发明可以通过不同的方式实践。
用于生成和显示专业搜索结果的API
在一个实施方式中,本发明是作为应用编程接口(API)实现的,该API允许第三方规定用于响应于特定查询而显示专业信息的参数。该参数例如可以通过XML文件的形式来提供。
在一个实施方式中,内容供应商定义了一个或多个ResultSpec标签。ResultSpec标签包含Query(查询)标签和Response(响应)标签。Query标签提供将使内容供应商的结果被获取和显示的、查询的一般触发模式。Response标签提供用于在触发模式得以满足时,用于显示内容供应商的结果的模板。
ResultSpec标签还可以具有id属性,以唯一地标识该ResultSpec。在一个实施方式中,每个ResultSpec都具有id属性。
例如,不论用户何时输入查询“订阅的链接”,下面的规范都将显示“Hello World”信息化消息:
<ResultSpec id=″InfoMatch″>
  <Query>subscribed links</Query>
          <Response>
            <Output name=″title″>Google Subscribed Links API</Output>
            <Output
name=″more_url″>www.google.com/subscribed_links</Output>
            <Output name=″text1″>Hello,world!</Output>
            <Output name=″text2″>Google Subscribed Links allow you to put
yourown</Output>
            <Output name=″text3″>contenton the Google search results
page.</Output>
        </Response>
      </ResultSpec>
在此示例中,ResultSpec标签具有的id是“InfoMatch”。Query标签规定:将响应于一个特定查询(也即“订阅的链接”)显示结果。对于任何其他查询,将不显示结果。每个Output(输出)标签具有name(名称)属性,其规定了输出的特定部分将出现在所显示结果中的位置。名为title(标题)的输出将是用于标题链接的锚文本;more_url输出给出了链接所指向的URL;而text1、text2、text3输出定义了三行主体文本。
现在参考图1,其示出了响应于查询107、由上述代码生成的结果屏幕100的示例。专业搜索结果102在高亮框103中显示,高亮框103将专业结果102与其他结果106区分开。结果102右上角中的词语“Subscribed Link(订阅的链接)”101指出:为了查看该专业结果102,用户必须进行订阅。在一个实施方式中,用户必须进行订阅,以便指明他或者她希望该内容供应商的专业结果出现在他或她的结果页面上;在另一实施方式中,用户无需进行订阅。
“Edit(编辑)”链接104允许用户编辑他或她的订阅的链接列表。“Remove(删除)”链接105允许用户删除产生专业结果102的订阅的链接。
从图1中可以看出,结果102中所显示的文本是根据上文ResultSpec标签的例子中给出的Output标签生成的。
现在参考图9,其示出了描述根据一个实施方式的、用户在与本发明的系统进行交互中的体验的示例流程图。用户按照如下进行配置以使搜索结果包括专业结果。首先,用户通过登陆和密码进行登记901,使得他或者她能够被识别。在一个实施方式中,可以使用cookie来将登录信息(如果期望,包括密码)存储在用户的机器上,使得并不是针对每个会话都需要手动登陆。用户继而访问902网页,该网页包括用户可以添加到其搜索结果的“订阅链接”的目录。用户选择903该目录中的条目(通过点击它),以订阅到订阅链接之一。
如上所述,在一些情况下,用户可以根据任何期望的标准而自动订阅某些订阅链接(查询结果的类别)。
只要用户已经订阅了链接(或者只要他或者她已经自动订阅),便将用户带到904属性页面。这里,他或她可以指定905附加的参数和选项,并且可以确认他或她想要进行订阅。
随后,当用户输入906与所指定参数相匹配的搜索查询时,如图1所示以及根据上文结合图8描述的方法,获取907相关信息并显示907包括内容供应商结果的结果页面。
如果用户将来不想查看特定类型的专业搜索结果,他或她点击结果框103右下角中的“remove”链接105,以便退订特定的订阅的链接。
创建查询模式
如上文例子所示,XML文件中的Query项定义了一组查询,针对该组查询将出现专业结果。在上面的例子中,模式是非常严格的:其将只基于单个特定的查询进行触发。理论上,内容提供者可以针对将触发专业结果的每个单个查询来编写独立的ResultSpec。然而,通常规定这样的模式更为有效:当该模式被匹配时,其将使专业的结果被显示。为了创建更为强大的查询模式,内容供应商可以使用Query项中的type(类型)和attribute(属性)来构建相应的Response。Type表示DataObject(数据对象),将在下文对其进行讨论。
例如,假设内容供应商希望报告各条高速公路的限速。对于“X上的限速”这一形式的任何查询,内容供应商希望具有基本上相同的结果格式,其中X是高速公路的名称。具体结果将取决于X的值(高速公路的名称)。为了实现它,内容供应商可以定义多个“Highway(高速公路)”类型的支持DataObject,每个都具有称为“max_speed_limit(最大限速)”的属性,该属性给出了高速公路上的最大限速。继而,内容供应商可以定义Query和Response如下:
      <ResultSpec id-″HignwayMatchl″>
        <Query>speed limit on[Highway]</Query>
        <Response>
          <Output name=″title″>Speed limit info for
[0.fullname]</Output>
          <Output
name=″more_url″>www.myspeedlimitssite.com/describe?hwy=[0.abbrev]</Outpu
t>
          <Output name=″text1″>The maximum speed limit on
[0.fullname]</Output>
          <Output name=″text2″>is[0.max_speed_limit].</Output>
        </Response>
      </ResultSpec>
这里,Query中的DataObject通过括号内包含的类型名称来表示。在一个实施方式中,类型名称是大小写敏感的。
在Response的Output行,内容供应商可以参考所提取的DataObject的属性,这些属性从0开始编号。这些属性参考也包含在括号中,并且也是大小写敏感的。
定义数据对象
为了使“HighwayMatchl”Query和Response能够实际工作,内容供应商定义了一些“Highway”类型的DataObject。一个这样的对象可以如下:
<DataObject id=″Highway101″type=″Highway″>
  <QueryName value=″101″/>
  <QueryName value=″US 101″/>
  <Attribute name=″fullname″value=″US Route 101″/>
  <Attribute name=″abbrev〞value=″US101″/>
  <Attribute name=″max_speed_limit″value=″65 MPH″/>
</DataObject>
由此,适应上文所述的ResultSpec例子的DataObeject的定义如下:
●type属性是ResultSpec的Query字段中的括号中使用的类型。
Figure G2007800186831D0011150651QIETU
两个QueryName标签提供两个不同的名称,在查询中可以通过所述名称来识别该对象。在一个实施方式中,每个DataObject具有至少一个QueryName(查询名称);DataObject具有的QueryName越多,在查询中就存在应用它的更多备选方式。
●属性名称包括fullname(全名)、abbrev(缩写)以及max_speed_limit(最大限速),所有都是来自上文示例的Response中所使用的。
●类似于ResultSpec,DataObject由其id属性唯一标识。在一个实施方式中,每个DataObject以及每个ResultSpec具有其自己唯一的id。
结合模式与对象
现在参考图2,其示出了包括专业结果102的结果屏幕200的示例。该示例假设:内容供应商已经生成了包含如上所述的ResultSpec和DataObject二者的XML文件。响应于查询107,显示专业搜索结果102。当用户搜索“101的限速”或者“US 101的限速”时,显示类似于图2的结果,因为“101”和“US 101”二者都将匹配所定义的Highway对象。为了针对更多的限速查询显示结果,内容供应商可以定义更多Highway类型的DataObject,并且无需向ResultSpec进行任何添加。
图2中的专业结果102是按照如下生成的。查询107(“101的限速”)与Query标签“speed limit on[Highway]”相匹配,因为已经将“Highway”类型的数据对象定义为与QueryName“101”相匹配。数据对象指明了“Highway 101”的其他属性,包括全名(“US Route 101”)、缩写(“US101”)以及限速(“65MPH”)。ResultSpec中的Output标签指明了用于将这些属性以及伴随的文本包括在所显示的专业结果102中的格式。
完成XML文件
为了完成指定了订阅的链接的XML文件,内容供应商添加最高层的Results(结果)标签。内容供应商还可以添加AuthorInfo(作者信息)标签,给出关于规范的作者或者关于内容供应商的一些信息。下面是完整文件的示例:
      <Results>
      <AuthorInfo description=″Find highway speed limits″author=″Joe
Author″/>
      <ResultSpec id-″HighwayMatchl″>
        <Query>speed limit on[Highway]</Query>
        <Response>
          <Output name=″title″>Speed limit info for
[0.fullname]</Output>
          <Output
name=″more_url″>www.myspeedlimitssite.com/describe?hwy=[0.abbrev]</Outpu
t>
          <Output name-″text1″>The maximum speed limit on
[0.fullname]</Output>
          <Output name=″text2″>is[0.max_speed_limit].</Output>
        </Response>
      </ResultSpec>
<DataObject id=″Highway101″type=″Highway″>
  <QueryName value=″101″/>
  <QueryName value=″US101″/>
  <Attribute name=″fullname″value=″US Route 101″/>
  <Attribute name=″abbrev〞value=″US101″/>
  <Attribute name=″max_speed_limit″value=″65 MPH″/>
</DataObject>
</Results>
输出格式选项
如上面的例子所示,在一个实施方式中,标准结果格式包括标题链接和最多三行主体文本。在一个实施方式中,对Output规范中的所有HTML标签自动地进行相应的格式化。在一个实施方式中,自动剪切掉超出字符长度限制的输出行。
除了标题链接之外,如果期望,内容供应商还可以在结果主体中包括附加链接。为了实现它,内容供应商可以通过向Response添加更多的Output来指定每行的链接。Output的名称是link1、link2、link3(用于链接的锚文本)以及url1、url2、url3(用于链接的URL)。编号1、2或3控制将在主体文本的哪行上显示链接。例如,为了仅在主体中提供一个链接,而且是在第三行,则与该链接相关联的Output名称应当是link3、url3。
内容供应商可以针对一些行指定链接、仅为一些行保留纯文本,或者彻底在行中省略纯文本而仅保留链接。
默认地,主体链接将出现在每行上文本的左侧。为了对此进行改变,内容供应商可以将Response标签的format(格式)属性设置为answer_right。因此例如如下设置,对于查询“结果格式”,将产生图3中的屏幕快照300中所示的输出,其包括链接301和链接文本302。
<ResultSpec id=″FormatDemo″>
  <Query>result format</Query>
  <Response format=″answer_right″>
    <Output name=″title″>Simple format demonstration</Output>
    <Output name=″more_url″>www.google.com</Output>
    <Output name=″text1″>Some text before the</Output>
    <Output name=″link1″>first link</Output>
    <Output name=″url1″>www.foobarl.com</Output>
    <Output name=″text2″>You might want to get</Output>
    <Output name=″link2″>more information</Output>
    <Output name=″url2″>www.foobar2.com</Output>
    <Output name=″link3″>This line is just alink.</Output>
    <Output name=″url3″>www.foobar3.com</Output>
  </Response>
</ResultSpec>
备选地,如果从Response标签中省略format=“ansewer_right”,则前两行上的链接301将显示在文本302的片段的左侧。
高级特征
在一些实施方式中,还可以单独或者任意结合地提供任意或者全部的下述特征。
使用多个文件
当内容供应商提交定义其订阅的链接的XML文件的URL时,表单实际上允许内容供应商指定不止一个URL。如果指定了不止一个URL,则订阅的链接将根据来自所有指定URL的组合数据而触发。例如在希望复用由其他人创建的DataObject列表的情况下,这可能是有益的。
例如,如果内容供应商具有包含Highway类型的DataObject列表的XML文件,并具有包含使用该列表的ResultSpec的单独XML文件,则可以使前一文件可公开获得,使得其他内容供应商可以使用Highway类型的DataObject的已有列表。
使用括号和反斜线
在上述例子中,括号字符[]用来设置Query中所提取元素的类型以及Response中所提取元素的属性。如果内容供应商希望将这些字符包括在输出模式或者Query模式中,他或者她可以通过在字符前添加前缀“\”(反斜线)来实现。
特殊对象类型
在一个实施方式中,可以在Query模式中使用多个公用对象类型。通过使用这些对象类型之一,内容供应商不需要提供他或她自己的DataObject。这种公共对象类型的示例包括(非限制性):
City(城市):元素规范[City]将匹配北美城市和城镇的名称,其是通过具有州名的城市名或者单独通过城市名(对于较大的城市)给出的。所以,例如:
<Query>elevation of[City]</Query>
将匹配“elevation of San Francisco”、“elevation of Springfield,IL”等之类的查询。作为结果的被提取对象将具有以下属性,这些属性可以在Response中使用:
●fullname:具有州/省的城市的全名,例如“San Francisco,California”
●abbrev:没有空格的、具有州/省缩写后缀的城市名称,例如“SanFranciscoCA”
●zipcode:城市的邮政编码。
Regular Expression Match(正则表达式匹配)。在一个实施方式中,本发明的系统支持根据标准格式的Perl兼容正则表达式(PCRE)。内容供应商可以通过为正则表达式设置前缀“RE:”来指定在查询中所要匹配的正则表达式。作为结果的对象的属性是正则表达式的匹配群组;其被命名为“gr0”、“gr1”,依此类推。因此,例如:
       <ResultSpec id=″REDemo″>
       <Query>[RE:(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})]sub-
net</Query>
         <Response>
           <Output name=″title″>Subnet breakdown for
[0.gr0].[0.gr1].[0.gr2].[0.gr3]</Output>
           <Output name=″more_url″>www.foo.com</Output>
           <Output name=″text1″>Class A subnet:[0.gr0]</Output>
           <Output name=″text2″>Class C subnet:[0.gr2]</Output>
         </Response>
       </ResultSpec>
将匹配“127.0.0.1子网”之类的查询。现在参考图4,其示出了包括根据正则表达式而生成的专业搜索结果102的结果屏幕300的示例,其中查询107与正则表达式匹配。
Date(日期)。元素类型“date(日期)”、“timeofday(时间)”以及“timerange(时间范围)”将分别与美国英语格式的日期、时间以及时间范围匹配。因此,示例:
<Query>sunset on[date]</Query>
将匹配“sunset on X”形式的查询,其中X是日期。匹配器足够灵活,以识别不同的日期格式,因此“sunset on 11/22/05”和“sunset onOctober 16th”二者都将匹配。
作为结果的对象具有其自己固定的属性集。对于“date”,属性集是:
●year:年
●mon:月(1-12)
●mon_name:月份名(1月到12月)
●mday:月份中的日(1-31)
●wday:星期中的天(1=周日,7=周六)
●wday_name:星期中的天的名称
对于“timeofday”,属性集是:
●hour_24:24小时制的小时(0-23)
●hour_12:12小时制的小时(1-12)
●ampm:“AM”或者“PM”
●min:分钟(0-59)
●sec:秒(0-59)
对于“timerange”,属性集是“start_X(开始时间)”和“finisn_X(结束时间)”,其中X在所有“timeofday”属性上变化。
本领域技术人员将会认识到,还可以提供其他内建对象类型。
提取符
除了指定按查询本身将找到的对象,内容供应商还可以指定将要获取的附加元素,其由那些已经找到的元素给出。为了指定附加的提取元素,内容供应商向ResultSpec添加Extract(提取)标签,其给出了类型名称和提取规范。提取规范按照与Response相同的方式使用已提取元素的属性来构建字符串,继而将该字符串与给定类型的对象的QueryName进行匹配。
下面是一个示例:
       <ResultSpec id-″PopulationMatchl″>
         <Query>population of[City]in[RE:(\\d{4})]</Query>
         <Extract
type-″CityPopulationData″>pop_[0.abbrev]_[1.gr0]</Extract>
         <Response>
           <Output name=″title″>Population:[0.fullname][1.gr0]</Output>
           <Output name=″ore_url″>www.google.com</Output>
           <Output name=″text1″>The population of[0.fullname]in
[1.gr0]</Output>
           <Output name=″text2″>was[2.population].</Output>
         </Response>
       </ResultSpec>
       <DataObject id=″PopSFCA2000″type=″CityPopulationData″>
         <QueryName value=″pop_SanFranciscoCA_2000″/>
         <Attribute name=″population″value=″776,733″/>
       </DataObject>
这将触发查询“population of San Francisco in 2000(2000年SanFrancisco的人口)”、试图提取名为“pop_SanFranciscoCA_2000”的“CityPopulationData”类型的附加DataObject,并显示结果。
现在参考图5,其示出了结果屏幕500的示例,其中,专业结果102包括上述附加提取元素。
内容供应商可以包括他或者她希望的任意数目的附加提取对象,并且每个对象可以在构建其提取规范时使用所有先前对象的属性。
确认符
内容供应商可以使用Validate(确认)标签来限制将针对其显示Response的查询集合。Validate标签的操作很像Extract标签:其使用“源”和“目标”两个字符串,这两个字符串是使用所提取元素的属性填入的。继而对这两个字符串进行比较,并且仅当其相等时显示Response。
例如
      <ResultSpec id=″RadioStationMatchl″>
        <Query>frequency of[RadioStation]in[State]</Query>
        <Validates rc=″[0.state]″dst=″[1.fullname]″/>
        <Response>
          <Output name=″title″>Population info for[0.fullname]in
[1.gr0]</Output>
          <Output name=″more_url″>www.foo.com</Output>
          <Output name=″text1″>The broadcast frequency of
[0.fullname]</Output>
          <Output name=″text2″>is[0.frequency].</Output>
        </Response>
      </ResultSpec>
<DataObject id-″CaliforniaState″type=″State″>
  <QueryName value=″California″/>
  <Attribute name=″fullname″value=″California″/>
</DalaObject>
<DataObject id-″NewYorkState″type=″State″>
  <QueryName value=″New York″/>
  <Attribute name=″fullname″value=″New York″/>
</DataObject>
<DataObject id=″KQED″type=″RadioStation″>
  <QueryName value=″KQED″/>
  <Attribute name=″fullname″value=″KQED-FM″/>
  <Attribute name=″frequency″value-″88.5″/>
  <Attribute name=″state″value=″California″/>
</DataObject>
<DataObject id=″WMHT″type=″RadioStation″>
  <QueryName value=″WMHT″/>
  <Attribute name=″fullname″value=″WMHT-FM″/>
  <Attribute name=″frequency″value=″89.1″/>
  <Attribute name=″state″value=″New York″/>
</DataObject>
通过上面的定义,结果将触发查询“frequency of KQED inCalifornia”以及“frequency of WMHT in New York”,而不触发“frequency of KQED in New York”。其原因在于:为了触发专业结果,[0.state]的值和[1.fullname]的值必须匹配。这有助于防止错误建议的尝试根据无意义的项的组合而生成专业结果。由于KQED所在的州是“California”而WHMT所在的州是“New York”,因此仅当查询中输入的州的全名与无线台进入的州相匹配时,查询才匹配。
引用属性
存在这样的情况,使DataObject的Attribute(属性)值不是字符串文字而是对另一DataObject的引用将是有益的。内容供应商可以通过将Attribute的值设置为与将被引用的DataObej ct的ID相等、并且相应地在Response中使用多层属性引用(由句号隔开的多个属性名称),以此来指定引用。例如:
     <ResultSpec id=″RadioSDationMatchl″>
       <Query>population[RadioStation]</Query>
       <Response>
         <Output name=″title″>Infoon[0.fullname]</Output>
         <Output name=″more_url″>www.foo.com</Output>
         <Output name-″text1″>The station[0.fullname]</Output>
         <Output name=″text2″>is located in a state with a population
of[0.state.population].</Output>
       </Response>
     </ResultSpec>
     <DataObject id=″CaliforniaState″type=″State″>
       <QueryName value=″California″/>
       <Attribute name=″fullname″value=″California″/>
       <Attribute name=″population″value=″36,000,000″/>
     </DataObject>
    <DataObject id=″KQED″type=″RadioStation″>
      <QueryName value=″KQED″/>
      <Attribute name=″fullname″value=″KQED-FM″/>
      <Attribute name=″frequency″value=″88.5″/>
      <Attribute name=″state″value=″CaliforniaState″/>
    </DataObject>
这将触发查询107“population KQED”并产生输出,如图6的结果屏幕600所示。输出标签规定:应当显示[0.state.population]。这解析为对与查询相匹配的记录相关联的州的人口。由于查询是“Population KQED”,项“KQED”映射为[RadioStation]。该数据对象的州是“CaliforniaState”,这是另一数据对象的ID。由此,为了解析[0.state.population],参考CaliforniaState ID,其显示“population”的值“36,000,000”。继而显示该值。
查询建议
在一个实施方式中,本发明还能够分析查询107,并向用户建议备选查询。这例如可以是这样实现的:对所输入的查询107与结果项的索引进行比较,并选择可能的备选查询形式,可能的备选查询形式(a)与所输入的查询107类似的,以及(b)如果输入将得到更多结果。在一个实施方式中,将备选查询作为可点击的链接给出,如果用户对所显示的专业链接和常规链接不满意,他或者她可以激活所述可点击链接。
自动订阅
在一个实施方式中,用户可以根据一些标准(诸如浏览器平台、OS平台、地理位置、搜索历史、人口统计特征、网站访问历史等等)而自动地订阅搜索结果类别。实际上,满足该标准的那些用户可以自动订阅某些链接。例如,希望在汽车站点搜索信息的用户可以自动订阅与汽车相关的搜索结果类别。
在一个实施方式中,在用户已经自动订阅之后,其可以自由地退出;在其他实施方式中,用户没有这么做的自由。
对订阅的链接进行测试和故障检测
在一个实施方式中,内容供应商可以在发布ResultSpec之前测试其操作,以确保其触发希望其触发的查询以及显示正确的输出。为了实现这一点,对于特定的ResultSpec,内容供应商可以向ResultSpec标签中添加属性“test=true”,如在此示例中:
      <ResultSpec id-″HighwayMatchl″test-true>
        <Query>speed limit on[Highway]</Query>
        <Response>
          <Output name=″title″>Speed limit info for
[0.fullname]</Output>
          <Output
name=″more_url″>www.myspeedlimitssite.com/describe?hwy=[0.abbrev]</Outpu
t>
          <Output name=″text1″>The maximum speed limit on
[0.fullname]</Output>
          <Output name=″text2″>io[0.max_speed_limit].</Output>
        </Response>
      </ResultSpec>
继而,当特定用户(例如内容供应商自己)登陆到他或她的Google账户并且进行与Query匹配的搜索时,将显示该ResultSpec所指定的结果,但是当添加了该内容供应商的订阅的链接的任何其他用户进行搜索时,不显示该结果。
在一个实施方式中,为了确保公正,对于每个查询任何给定的ResultSpec只被允许某个固定量的计算时间。
规范语言
通常,规定用于专业搜索结果的参数是一个三步过程:
1.向知识库添加查询匹配器应当知道的新的元素类型,并且列出这些类型的实例。
2.规定将要匹配的、包含已知类型元素的模式。
3.规定将要使用匹配元素的属性来构建的结果。
这些步骤都是通过编写如上所述的XML文件来执行的。还支持如下能力:使用迄今为止从匹配元素得出的字符串来提取附加元素,并且允许进行确认步骤,其中,将根据匹配元素生成的字符串与预期的值进行比较,然后再输出生成。
在一个实施方式中,本发明的系统还提供如下能力:以某种方式对匹配元素的属性执行更丰富计算,或者编写用于进行查询触发决策的更复杂的算法。为此目的,第三方可以编写其自己的代码。在一个实施方式中,仅仅允许高度信任的第三方提交这样的变换。
服务器部署和分片策略
在一个实施方式中,本发明是使用多个数据中心来实现的。每个数据中心具有服务器的完整部件,包括数据服务器701分片、支持前端服务器704以及Prose信任服务器、至少一个馈送爬取器以及至少一个前端服务器。
这样来控制延迟代价:在查询周期的一开始,甚至在拼写更正和查询重写之前,就发送针对专业结果的查询,因为这只需要原始的查询。
在一个实施方式中,专业数据的分片是由内容供应商执行的,因为当匹配针对服务供应商的专业结果的查询时,每个内容供应商具有待访问的知识库数据的不同集合。提供了两组数据库服务器701分片:一个用于由系统操作者或者受信第三方提供的专业结果,另一个用于一般的非受信内容供应商。这里的分片不同于复制;每个分片处理供应商的某个集合,出于负载均衡以及容错的目的,每个分片至少被双重复制;并且受信分片需要与非受信分片的复制不同程度(假定更高)的复制。
可以简单地通过将供应商的ID对其类型(受信或者非受信)的分片数目求模来指派内容供应商。对于非受信供应商而言,这将工作良好,因为ID的随机分布将确保供应商在分片之间的良好“扩散”,并且每个供应商的数据大小将受到限制。作为替代,对于受信供应商,在一个实施方式中,实现了特殊的分片规则,因为一些供应商可能需要提交非常多的数据,其将其他供应商挤压到其分片之外。在一个实施方式中,为数据大小规模大得要求它们跨越多个机器而分割的一些供应商提供多个供应商ID。
在一个实施方式中,当空间充满时,为了响应于查询而载入新的数据,将旧供应商数据从存储器中删除;分片在“最近最少使用”的基础上将供应商清出存储器。在一些情况下,系统可以停止允许新的非受信供应商,直到更多的机器可用。
实现专业结果
针对专业结果的查询包括查询107和内容供应商的集合。对于所列的每个内容供应商,相对于针对该内容供应商的所有触发模式来对查询进行匹配。为此目的,为每个内容供应商维护称为OneBoxSet的结构。当进行针对特定内容供应商的匹配时,系统对该内容供应商已经定义的知识库对象进行引用;由此将知识库结构(称为KB)划分为KBSegment,每个KBSegment代表一个内容供应商所定义的对象。
对于内容供应商所指定的每个触发模式,系统确定给定的查询是否与该特定模式相匹配,并找到与该模式中指定的参数相对应的概念对象。为了封装该过程,定义抽象基类ObjectMatcher(对象匹配器)和MatchedObject(匹配对象)。ObjectMatcher对应于特定概念对象的类型;其Match例程确定给定的字符串是否具有与该类型的对象相匹配的前缀,如果是,则输出MatchedObject。MatchedObject基本上是属性名称-值映射;其使用对象的属性来构建触发查询的结果,调用MatchedObject::GetAttribute。
匹配查询的核心工作继而由ObjectMatcher的子类来完成。LiteralKeywordMatcher检查字符串是否具有与一些给定关键词或者关键短语字面上相同的前缀。最常使用的可能是KBObjectMatcher,其通过在知识库对象的散列表中查找查询的符号化前缀来进行操作。针对正则表达式以及针对日期和时间来提供专用匹配符。
为了加速匹配过程,在一个实施方式中,针对每个提供而创建一个散列表。散列表的关键字是相应触发模式的文字前缀。例如,对于触发模式“flights from[City]to[City](从[城市]to[城市]的航班)”,文字前缀是“flights from”。继而,当针对供应商的触发模式集来匹配查询时,本发明的系统考虑其文字前缀与查询的前缀相匹配的那些模式。
访问馈送爬取服务器711
如上所述,在一个实施方式中,馈送爬取服务器711使用标准web爬取机制来爬取内容供应商指定作为其数据位置的XML文件;解析这些文件;以及如果解析成功,则将结果数据置于存储器中的LRU(最近最少使用)高速缓存中。馈送爬取器通过三种方式来得到其爬取任务。首先,当数据服务器701分片接收到请求来自其存储器中不具有的内容供应商的数据的GetProseOneBoxes请求时,其发出加载请求。第二,当供应商提交针对专业数据的新XML文件位置时,馈送爬取器将该供应商的数据重新加载到其存储器中的高速缓存中。第三,馈送爬取器周期性地轮询供应商的XML文件以便更新,当其检测到新数据时,广播UpdateOneBoxData请求;轮询策略由供应商先前进入高速缓存的频率来确定。
由此,对于最终以XML格式存储在内容供应商网站上的数据而言,数据服务器701分片充当了第一级高速缓存,而馈送爬取器的存储器充当了第二级高速缓存。
在一个实施方式中,如果查询时所指定的内容供应商的专业数据位于数据服务器701分片的存储器内,对数据服务器701分片的请求将仅仅返回专业结果。当数据服务器701发出针对其不具有的内容供应商数据的加载请求时,在尝试返回针对激发加载请求的查询的专业结果之前,数据服务器701将不会等待加载发生。由此,如果用户恰好是提交查询的第一个人,他或者她偶尔可能会无法得到专业结果。
安全性考虑
在一个实施方式中,本发明是通过这样的方式实现的:反击某些安全威胁。这种威胁的例子包括:
1.提交如下规范的恶意用户,该规范的输出文本在某种意义上是破坏性的。
2.提交如下规范的恶意用户,该规范的时间和/或空间资源需求将挤压其他供应商的时间和/或空间,和/或超过服务器所能承担的能力。
3.使用关于系统的数据来间接窥测操作的机密方面的恶意用户。
为了解决问题(1),在一个实施方式中,本发明的系统完全忽略来自非受信供应商的所有输出字符串。对输出字符串的长度进行限制,从而防止页面上过渡的空间消耗以及溢出攻击。对于比较受信的供应商而言,只要其通过了评审过程(在该过程中,对其初始规范和数据进行检查),则可以放松或者消除这些限制。
为了解决问题(2),在一个实施方式中,数据服务器701分片受制于超时:在处理给定查询花费某个数目的毫秒之后,分片将立刻停止,并且返回其针对该查询所具有的任何结果。类似地,在等待数据服务器701分片根据GetProseOneBoxes请求返回结果花费某个数目的毫秒之后,前端服务器704简单地累加其迄今为止已经得到的任何结果,并且将其传递回给请求者。
在一个实施方式中,将分片策略输入如上所述的位置,以确保已被提升为显示所有给用户的专业搜索结果或者来自高度受信供应商的专业结果位于与执行完全非受信供应商的数据的那些分片相分离的分片上。以此,其针对受信供应商的处理时间不会受到非受信供应商的可能的坏行为的影响。而且,在一个实施方式中,如果对某个供应商数据的查询过分频繁地超时,则至少在一段时间内对该供应商去激活,从而允许激活其他供应商的数据。而且,在一个实施方式中,在馈送爬取器端强制执行公平策略,从而没有一个供应商可以消耗过多的更新业务。
对于问题(3),在一个实施方式中,内容供应商可以跟踪对其专业搜索结果的大多数订阅。内容供应商继而了解用户通过其专业搜索链接点击进入其站点的频率。
针对上述所有问题的一道进一步的防线是:可以将所有非受信内容供应商搜索结果设置为选择加入。用户采取积极行动来订阅这些结果(也即,信任其供应商),此后才可以显示该结果。此外,用户可以容易地从他们发现给予他们不良结果的内容供应商处进行退订,并且可以报告垃圾邮件、欺诈、侵犯版权等等。
已经关于一种可能的实施方式详细描述了本发明。本领域的技术人员将会意识到,本发明可以通过其他实施方式付诸实践。首先,组件的特定命名、术语的大写、属性、数据结构或者任何其他任何编程或者结构方面都不是强制性的或者重要的,并且实现本发明或其特征的机制可以具有不同的名称、格式或者协议。此外,系统可以通过如上所述的硬件和软件的结合来实现,或者可以完全通过硬件元件来实现。而且,在此描述的各系统部件之间的特定功能划分仅仅是示例性的,而不是强制性的;由单个系统部件执行的功能可以由多个部件来执行;而由多个部件执行的功能可以由单个部件来执行。
上文描述的一些部分按照对信息进行操作的算法或者符号化表示给出了本发明的特征。这些算法描述和表示是数据处理领域的技术人员用来将其工作的实质最为有效地传递给本领域其他技术人员的手段。这些操作尽管是从功能上或者逻辑上进行描述的,应当将其理解为由计算机程序实现。此外,已经证明,在不失一般性的情况下,将这些操作布置表示为模块或者功能性名称有时是方便的。
除非特别声明,否则根据上文讨论易见的是:可以理解,贯穿说明书,使用诸如“计算”或者“确定”或者“标识”等术语的描述表示计算机系统或者类似电子计算设备的行为和过程,其对计算机系统存储器或者寄存器或者其他这种信息存储器、传输或者显示设备中表示为物理量(电子量)的数据进行操纵和变换。
本发明的某些方面是使用命令、记忆术、符号、格式、语法或者其他编程惯例描述的。名称、格式、语法等的特定选择仅仅是示例性的,而非限制性的。本领域的技术人员可以容易地构造可替换的名称、格式、语法规则等以用于定义上下文文件以及经由上下文处理来对可编程搜索引擎的操作进行编程。
本发明的某些方面包括在此以算法形式描述的过程步骤以及指令。应当注意,本发明的过程步骤以及指令可以通过软件、固件或者硬件来实现,并且当其通过软件实现时,其可被下载,以便在实时网络操作系统所使用的不同平台上驻留和操作。
本发明还涉及用于执行这里的操作的装备。该装备可以针对所需的目的而特别构建,或者其可以包括通用计算机,该通用计算机由存储在计算机可以访问的计算机可读介质上的计算机程序选择性地激活或者重配。这样的计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机访问存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或者适合存储电子指令的任意类型的介质,每个介质都耦合至计算机系统总线。
这里给出的算法和操作并不内在地涉及任何特定的计算机或者其他装置。根据这里的启示,可以将各种通用系统与程序结合使用,或者可以证明,构建更为专门化的装置来执行所需的方法步骤是方便的。各种这样的系统的所需结构以及等效变形对于本领域的技术人员而言是易见的。此外,没有参考任何特定的编程语言来描述本发明。应当意识到,可以使用各种编程语言来实现在此描述的本发明的启示,并且提供对特定语言的任何参考都是为了公开本发明的实现以及最佳模式。
最后,应当注意,说明书中所使用的语言原则上是出于可读性和指示性的目的而选择的,而不是被选来描绘或者限制发明主题。因此,本发明的公开意在对所附权利要求中记载的本发明范围的示范而非限制。

Claims (36)

1.一种支持响应于模式化查询而生成专业搜索结果的方法,包括:
针对专业查询类型而接收查询模式,其中针对所述查询模式的专业结果将响应于接收到与所述查询模式相匹配的搜索查询而被显示,其中针对所述接收的查询模式定义有数据对象,每个所述数据对象的定义具有类型、在所述搜索查询中识别所述数据对象的至少一个查询名称、以及属性;
针对所述专业查询类型,接收将响应于与所述查询模式相匹配的查询而使用的专业结果模式,其中所述专业结果模式包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;以及
将所述查询模式和所述专业结果模式存储在与所述专业查询类型相关联的记录中。
2.根据权利要求1所述的方法,其中所述查询模式包括XML文件。
3.根据权利要求1所述的方法,还包括:
接收针对所述专业查询类型的至少一个支持数据对象;以及
存储所述支持数据对象。
4.根据权利要求1所述的方法,其中所述查询模式至少包括文本字符串。
5.根据权利要求1所述的方法,还包括:
接收搜索查询;
将所述搜索查询同关联于所述专业查询类型的已存储的所述查询模式进行比较;
响应于所述搜索查询与针对已存储的所述查询模式而定义的数据对象的至少一个查询名称相匹配,按照所述专业结果模式生成至少一个专业搜索结果,其包括所述查询模式中的所述数据对象的属性以及伴随文本;
响应于所述搜索查询与已存储的所述查询模式不匹配,生成至少一个普通搜索结果;以及
输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
6.根据权利要求1所述的方法,还包括:
接收搜索查询;
将所述搜索查询同关联于所述专业查询类型的已存储的所述查询模式进行比较;
响应于所述搜索查询与针对已存储的所述查询模式而定义的数据对象的至少一个查询名称相匹配:
按照所述专业结果模式生成至少一个专业搜索结果,其包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;以及
生成至少一个普通搜索结果;以及
同时输出多个搜索结果,所述多个搜索结果包含按照所述专业结果模式生成的所述至少一个专业搜索结果以及所述至少一个普通搜索结果。
7.根据权利要求6所述的方法,其中同时输出多个搜索结果包括:输出网页,所述网页包括按照所述专业结果模式生成的所述至少一个专业搜索结果以及所述至少一个普通搜索结果。
8.根据权利要求1所述的方法,还包括:
存储表明用户已经订阅专业查询的指示。
9.根据权利要求8所述的方法,还包括:
接收搜索查询;
识别生成所述搜索查询的用户;
将所述搜索查询与针对所述用户已经订阅的专业查询类型的至少一个已存储查询模式进行比较;
响应于所述搜索查询与所述已存储查询模式相匹配,按照所述专业结果模式生成至少一个专业搜索结果;
响应于所述搜索查询与所述已存储查询模式不匹配,生成至少一个普通搜索结果;以及
输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
10.根据权利要求8所述的方法,其中存储表明用户已经订阅专业查询类型的指示是响应于请求所述订阅的用户输入而执行的。
11.根据权利要求8所述的方法,其中存储表明用户已经订阅专业查询类型的指示是响应于关于用户对所述专业查询类型感兴趣的可能性的确定而自动执行的。
12.根据权利要求11所述的方法,其中所述关于用户对所述专业查询类型感兴趣的可能性的确定,是根据选自用户特性、搜索历史、站点访问历史、地理信息、人口统计特征、购买历史以及操作系统特性的至少一个来进行的。
13.根据权利要求1所述的方法,还包括:响应于请求对所述专业查询类型的订阅的用户输入,存储表明用户已经订阅所述专业查询类型的指示。
14.根据权利要求1所述的方法,还包括:响应于请求删除对所述专业查询类型的订阅的用户输入,删除先前存储的、表明用户已经订阅所述专业查询类型的指示。
15.一种响应于模式化查询而生成专业搜索结果的方法,包括:
接收搜索查询;
将所述搜索查询与关联于专业查询类型的已存储查询模式进行比较,其中针对所述已存储查询模式定义有数据对象,每个所述数据对象的定义具有类型、在所述搜索查询中识别所述数据对象的至少一个查询名称、以及属性,关联于专业结果模式的所述专业查询模式包括针对所述查询模式而定义的所述数据对象的属性;
响应于所述搜索查询与针对所述已存储查询模式而定义的数据对象的至少一个查询名称相匹配,按照专业结果模式生成至少一个专业搜索结果,其包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;
响应于所述搜索查询与所述已存储查询模式不匹配,生成至少一个普通搜索结果;以及
输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
16.根据权利要求15所述的方法,其中按照所述专业结果模式生成所述至少一个专业搜索结果包括:
从所述搜索查询中提取数据对象的至少一个查询名称;
从所述存储的查询模式中获取所述数据对象的属性;以及
生成包含所述数据对象的已获取的所述属性的所述至少一个专业搜索结果以及伴随文本。
17.根据权利要求15所述的方法,其中输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果包括:将生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果传送至客户端以便在其上显示。
18.根据权利要求15所述的方法,其中输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果包括:在显示设备上显示所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
19.根据权利要求15所述的方法,其中输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果包括:生成包含生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果的网页,以及将生成的所述网页传送至客户端以便在其上显示。
20.根据权利要求15所述的方法,其中输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果包括:生成包含生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果的网页,以及在显示设备上显示生成的所述网页。
21.一种响应于模式化查询而生成专业搜索结果的方法,包括:
接收搜索查询;
将所述搜索查询同关联于专业查询类型的已存储查询模式进行比较,其中针对所述已存储的查询模式定义有数据对象,每个所述数据对象的定义具有类型、在所述搜索查询中识别所述数据对象的至少一个查询名称、以及属性,关联于专业结果模式的所述专业查询模式包括针对所述查询模式而定义的所述数据对象的属性;
响应于所述搜索查询与针对所述已存储查询模式而定义的数据对象的至少一个查询名称相匹配:
按照专业结果模式生成至少一个专业搜索结果,其包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;以及
生成至少一个普通搜索结果;以及
同时输出多个搜索结果,所述多个搜索结果包含按照所述专业结果模式生成的所述至少一个专业搜索结果以及所述至少一个普通搜索结果。
22.一种响应于模式化查询而生成专业搜索结果的方法,包括:
接收搜索查询;
识别生成所述搜索查询的用户;
将所述搜索查询与针对所述用户已经订阅的专业查询类型的至少一个已存储查询模式进行比较;
响应于所述搜索查询与所述已存储查询模式相匹配,按照专业结果模式生成至少一个专业搜索结果;
响应于所述搜索查询与所述已存储查询模式不匹配,生成至少一个普通搜索结果;以及
输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
23.一种用于支持响应于模式化查询而生成专业搜索结果的设备,包括:
用于针对专业查询类型而接收查询模式的装置,其中针对所述查询模式的专业结果将响应于接收到与所述查询模式相匹配的搜索查询而被显示,其中针对所述查询模式定义有数据对象,每个所述数据对象的定义具有类型、在所述搜索查询中识别所述数据对象的至少一个查询名称、以及属性;
用于针对所述专业查询类型而接收将响应于与所述查询模式相匹配的查询而使用的专业结果模式的装置,其中所述专业结果模式包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;以及
用于将所述查询模式和所述专业结果模式存储在与所述专业查询类型相关联的记录中的装置。
24.根据权利要求23所述的设备,其中所述查询模式包括XML文件。
25.根据权利要求23所述的设备,还包括:
用于接收针对所述专业查询类型的至少一个支持数据对象的装置;以及
用于存储所述支持数据对象的装置。
26.根据权利要求23所述的设备,其中所述查询模式至少包括文本字符串。
27.根据权利要求23所述的设备,还包括:
用于将所述搜索查询同关联于所述专业查询类型的已存储的所述查询模式进行比较的装置;
用于响应于所述搜索查询与针对已存储的所述查询模式而定义的数据对象的至少一个查询名称相匹配,按照所述专业结果模式生成至少一个专业搜索结果的装置,其包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;
用于响应于所述搜索查询与已存储的所述查询模式不匹配,执行以下操作的装置:
生成至少一个普通搜索结果;以及
输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
28.根据权利要求23所述的设备,还包括:
用于接收搜索查询的装置;
用于将所述搜索查询同关联于所述专业查询类型的已存储的所述查询模式进行比较的装置;
用于响应于所述搜索查询与针对已存储的所述查询模式而定义的数据对象的至少一个查询名称相匹配,执行以下操作的装置:
按照所述专业结果模式生成至少一个专业搜索结果,其包括针对所述查询模式而定义的所述数据对象的属性以及伴随文本;以及
同时输出多个搜索结果,所述多个搜索结果包含按照所述专业结果模式生成的所述至少一个专业搜索结果以及至少一个普通搜索结果。
29.根据权利要求28所述的设备,其中用于同时输出多个搜索结果的装置包括:用于输出网页的装置,所述网页包括按照所述专业结果模式生成的所述至少一个专业搜索结果以及所述至少一个普通搜索结果。
30.根据权利要求23所述的设备,还包括:
用于存储表明用户已经订阅专业查询的指示的装置。
31.根据权利要求30所述的设备,还包括:
用于接收搜索查询的装置;
用于识别生成所述搜索查询的用户的装置;
用于将所述搜索查询与针对所述用户已经订阅的专业查询类型的至少一个已存储查询模式进行比较的装置;
用于响应于所述搜索查询与已存储的所述查询模式相匹配,按照所述专业结果模式生成至少一个专业搜索结果的装置;以及
用于响应于所述搜索查询与已存储的所述查询模式不匹配,执行以下操作的装置:
生成至少一个普通搜索结果;以及
输出生成的所述至少一个专业搜索结果或者所述至少一个普通搜索结果。
32.根据权利要求30所述的设备,其中用于存储表明用户已经订阅专业查询类型的指示的装置响应于请求所述订阅的用户输入而进行操作。
33.根据权利要求30所述的设备,其中用于存储表明用户已经订阅专业查询类型的指示的装置是响应于关于用户对所述专业查询类型感兴趣的可能性的确定而自动操作的。
34.根据权利要求33所述的设备,其中所述关于用户对所述专业查询类型感兴趣的可能性的确定是根据选自用户特性、搜索历史、站点访问历史、地理信息、人口统计特征、购买历史以及操作系统特性的至少一个来进行的。
35.根据权利要求23所述的设备,还包括用于响应于请求对所述专业查询类型的订阅的用户输入,存储表明用户已经订阅所述专业查询类型的指示的装置。
36.根据权利要求23所述的设备,还包括用于响应于请求删除对所述专业查询类型的订阅的用户输入,删除先前存储的、表明用户已经订阅所述专业查询类型的指示的装置。
CN200780018683.1A 2006-04-07 2007-04-09 响应于模式化查询而生成专业的搜索结果 Active CN101601033B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US79031906P 2006-04-07 2006-04-07
US60/790,319 2006-04-07
US11/694,490 2007-03-30
US11/694,490 US7593939B2 (en) 2006-04-07 2007-03-30 Generating specialized search results in response to patterned queries
PCT/US2007/066259 WO2007118240A2 (en) 2006-04-07 2007-04-09 Generating specialized search results

Publications (2)

Publication Number Publication Date
CN101601033A CN101601033A (zh) 2009-12-09
CN101601033B true CN101601033B (zh) 2014-03-12

Family

ID=38576741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780018683.1A Active CN101601033B (zh) 2006-04-07 2007-04-09 响应于模式化查询而生成专业的搜索结果

Country Status (4)

Country Link
US (1) US7593939B2 (zh)
EP (1) EP2013787B1 (zh)
CN (1) CN101601033B (zh)
WO (1) WO2007118240A2 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250478A1 (en) * 2006-04-23 2007-10-25 Knova Software, Inc. Visual search experience editor
US20090144264A1 (en) * 2007-12-04 2009-06-04 Vik Singh Third-party information overlay on search results
US8435119B2 (en) * 2007-12-26 2013-05-07 Scientific Games Holdings Limited User-controlled sweepstakes entries
US8277324B2 (en) 2007-12-26 2012-10-02 Scientific Games Holdings Limited System and method for collecting and using player information
US20110014972A1 (en) * 2007-12-26 2011-01-20 Herrmann Mark E System and method for managing content delivery and measuring engagement
US8145620B2 (en) * 2008-05-09 2012-03-27 Microsoft Corporation Keyword expression language for online search and advertising
US9003474B1 (en) 2008-08-22 2015-04-07 Taser International, Inc. Systems and methods for managing disclosure of protectable information
US20100114876A1 (en) * 2008-11-06 2010-05-06 Mandel Edward W System and Method for Search Result Sharing
US8260800B2 (en) * 2008-11-06 2012-09-04 Nexplore Technolgies, Inc. System and method for image generation, delivery, and management
US8635528B2 (en) * 2008-11-06 2014-01-21 Nexplore Technologies, Inc. System and method for dynamic search result formatting
US9805123B2 (en) * 2008-11-18 2017-10-31 Excalibur Ip, Llc System and method for data privacy in URL based context queries
US20100332493A1 (en) * 2009-06-25 2010-12-30 Yahoo! Inc. Semantic search extensions for web search engines
US20150261858A1 (en) * 2009-06-29 2015-09-17 Google Inc. System and method of providing information based on street address
US9870572B2 (en) * 2009-06-29 2018-01-16 Google Llc System and method of providing information based on street address
CN102012900B (zh) * 2009-09-04 2013-01-30 阿里巴巴集团控股有限公司 信息检索方法和系统
CA2774278C (en) 2009-09-25 2018-10-30 Shady Shehata Methods and systems for extracting keyphrases from natural text for search engine indexing
US20110238686A1 (en) * 2010-03-24 2011-09-29 Microsoft Corporation Caching data obtained via data service interfaces
US8799280B2 (en) 2010-05-21 2014-08-05 Microsoft Corporation Personalized navigation using a search engine
US20110302186A1 (en) * 2010-06-04 2011-12-08 Miguel Angel Pallares Lopez Method and Apparatus for Query Reformulation with Latency Preservation
US20150248698A1 (en) * 2010-06-23 2015-09-03 Google Inc. Distributing content items
US8543554B1 (en) * 2010-08-10 2013-09-24 ScalArc Inc. Method and system for transparent database query caching
CN102143224A (zh) * 2011-01-25 2011-08-03 张金海 基于手机上网用户行为的分析方法和装置
US8799188B2 (en) * 2011-02-08 2014-08-05 International Business Machines Corporation Algorithm engine for use in a pattern matching accelerator
CN102316167B (zh) * 2011-09-26 2013-11-06 中国科学院计算机网络信息中心 网站推荐方法和系统以及网络服务器
US20130091022A1 (en) * 2011-10-11 2013-04-11 David Barrow Systems and methods for brokering preference shields
US20130246385A1 (en) * 2012-03-13 2013-09-19 Microsoft Corporation Experience recommendation system based on explicit user preference
US20130246415A1 (en) * 2012-03-13 2013-09-19 Microsoft Corporation Searching based on others' explicitly preferred sources
US20130311440A1 (en) * 2012-05-15 2013-11-21 International Business Machines Corporation Comparison search queries
CN103581250B (zh) * 2012-07-31 2018-12-07 盛趣信息技术(上海)有限公司 数据处理、发布、获取方法及系统
US20140156627A1 (en) * 2012-11-30 2014-06-05 Microsoft Corporation Mapping of topic summaries to search results
US9779170B2 (en) * 2013-03-15 2017-10-03 International Business Machines Corporation Personalized search result summary
EP2824587A1 (en) 2013-07-11 2015-01-14 Junge Meister* GmbH A method of supplementing search results of a search engine and a method for returning search results by a search engine
US10110541B2 (en) * 2013-10-17 2018-10-23 International Business Machines Corporation Optimization of posting in social networks using content delivery preferences comprising hashtags that correspond to geography and a content type associated with a desired time window
WO2015138497A2 (en) 2014-03-10 2015-09-17 Interana, Inc. Systems and methods for rapid data analysis
US10229155B2 (en) * 2014-09-05 2019-03-12 Facebook, Inc. Multi-tiered targeted querying
CN104252537B (zh) * 2014-09-18 2019-05-21 彩讯科技股份有限公司 基于邮件特征的索引分片方法
CN105808618B (zh) * 2014-12-31 2019-10-22 阿里巴巴集团控股有限公司 Feed数据的存储和查询方法及其装置
US10296507B2 (en) * 2015-02-12 2019-05-21 Interana, Inc. Methods for enhancing rapid data analysis
CN106161380B (zh) * 2015-04-14 2020-04-10 深圳市腾讯计算机系统有限公司 一种信息处理方法及装置
CN105893581A (zh) * 2016-04-03 2016-08-24 北京设集约科技有限公司 一种有效分享收藏的方法及系统
US10146835B2 (en) 2016-08-23 2018-12-04 Interana, Inc. Methods for stratified sampling-based query execution
CN107480162B (zh) * 2017-06-15 2021-09-21 北京百度网讯科技有限公司 基于人工智能的搜索方法、装置、设备及计算机可读存储介质
CN113994626B (zh) * 2019-05-22 2023-01-17 妙泰公司 具有增强的安全性、弹性和控制的分布式数据存储方法及系统
US11727057B2 (en) * 2019-09-04 2023-08-15 Samsung Electronics Co., Ltd. Network key value indexing design
US11238121B1 (en) * 2020-07-24 2022-02-01 Alegeus Technologies, Llc Micro-services architecture to integrate heterogeneous nodes for digital feed generation
CN111782962B (zh) * 2020-09-04 2021-01-12 浙江口碑网络技术有限公司 模式匹配方法、装置及电子设备
CN116450657B (zh) * 2023-06-19 2023-08-29 北京好心情互联网医院有限公司 数据分片调度方法、装置、设备及存储介质
CN116720006B (zh) * 2023-08-10 2023-11-03 数据空间研究院 一种基于有限用户敏感属性的公平推荐方法、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1170684A1 (en) * 2000-07-06 2002-01-09 Richard Macartan Humphreys An information directory system
CN1378674A (zh) * 1999-05-28 2002-11-06 奥弗图尔服务公司 影响计算机网络搜索引擎产生的搜索结果清单中位置的系统和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664173A (en) * 1995-11-27 1997-09-02 Microsoft Corporation Method and apparatus for generating database queries from a meta-query pattern
US20020091680A1 (en) * 2000-08-28 2002-07-11 Chirstos Hatzis Knowledge pattern integration system
US7526425B2 (en) * 2001-08-14 2009-04-28 Evri Inc. Method and system for extending keyword searching to syntactically and semantically annotated data
US20030130994A1 (en) * 2001-09-26 2003-07-10 Contentscan, Inc. Method, system, and software for retrieving information based on front and back matter data
KR20030084245A (ko) * 2002-04-26 2003-11-01 문성업 인터넷검색엔진과 연계한 역 탐색기의 구현 방법
US8312382B2 (en) * 2004-05-11 2012-11-13 Sap Ag Developing and executing applications with configurable patterns
US8126937B2 (en) * 2004-10-05 2012-02-28 Sap Ag Visual database modeling
US7366723B2 (en) * 2004-10-05 2008-04-29 Sap Ag Visual query modeling for configurable patterns
US7571157B2 (en) * 2004-12-29 2009-08-04 Aol Llc Filtering search results
US7272597B2 (en) * 2004-12-29 2007-09-18 Aol Llc Domain expert search
US7349896B2 (en) * 2004-12-29 2008-03-25 Aol Llc Query routing
US7895193B2 (en) * 2005-09-30 2011-02-22 Microsoft Corporation Arbitration of specialized content using search results

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1378674A (zh) * 1999-05-28 2002-11-06 奥弗图尔服务公司 影响计算机网络搜索引擎产生的搜索结果清单中位置的系统和方法
EP1170684A1 (en) * 2000-07-06 2002-01-09 Richard Macartan Humphreys An information directory system

Also Published As

Publication number Publication date
EP2013787A4 (en) 2009-07-29
WO2007118240A2 (en) 2007-10-18
WO2007118240A3 (en) 2008-12-11
US20070239716A1 (en) 2007-10-11
EP2013787A2 (en) 2009-01-14
US7593939B2 (en) 2009-09-22
CN101601033A (zh) 2009-12-09
EP2013787B1 (en) 2019-08-21

Similar Documents

Publication Publication Date Title
CN101601033B (zh) 响应于模式化查询而生成专业的搜索结果
CN1095568C (zh) 命名书签组
KR101444389B1 (ko) 원격 모듈용 메시지 목록
US8290941B2 (en) System and method for detecting changes within search results
AU2003204104B8 (en) Use of Extensible Markup Language in a System and Method for Influencing a Position on a Search Result List Generated by a Computer Network Search Engine
KR100799658B1 (ko) 문자스트림과 연관된 호스트 기반 지능형 결과
AU2010201642B2 (en) Remote module incorporation into a container document
CN100367276C (zh) 用于在计算机网络内搜索的方法和设备
KR100885772B1 (ko) 제품 정보를 등록 및 검색하기 위한 방법 및 시스템
US20050131889A1 (en) Intelligent data query builder
US20080281904A1 (en) Associating service listings with open source projects
WO2007070403A2 (en) Module specification for a module to be incorporated into a container document
WO2007070402A2 (en) Proxy server collection of data for module incorporation into a container document
WO2007070404A2 (en) Customized container document modules using preferences
WO2007080413A1 (en) Search platform
US20060074843A1 (en) World wide web directory for providing live links
WO2004104853A1 (en) Automatically website connecting system keyword and control method thereof
KR20100126147A (ko) 키워드를 이용한 광고 방법
KR20020094808A (ko) 검색 서비스 시스템 및 이의 운영 방법
GB2405497A (en) Search engine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.