知晓元数据的搜索引擎的制作方法

文档序号:6356107阅读:336来源:国知局
专利名称:知晓元数据的搜索引擎的制作方法
技术领域
本发明涉及搜索引擎,尤其是知晓元数据的搜索引擎。
背景技术
搜索引擎是搜索内容集合以寻找一个或多个特定内容单元的软件程序。搜索引擎可用各种方式来实现以在不同的上下文中进行搜索并寻找不同的内容。企业搜索引擎可被用来搜索内容,如企业网络中的文档、文件、以及电子邮件消息。web搜索引擎可被用来搜索万维网内容,包括网页。在其他上下文中可以使用其他类型的搜索引擎。搜索引擎基于该搜索引擎的用户所提供的输入来执行搜索。搜索引擎将接受用户所提供的输入并检查内容集合以寻找与该输入相匹配的内容单元。例如,用户可以提供一个或多个文本关键词作为输入,并且搜索引擎可以检查该内容集合以寻找包含这些文本关键词的文档。在检查了该内容集合之后,搜索引擎将会定位了内容单元的列表(除非搜索不成功并且不与该数据集中的任何数据相匹配)。该内容单元的列表是搜索引擎所执行的搜索的结果。这一列表可按某一次序来呈现给用户,包括根据排名。例如,该列表中的内容单元可以根据文本关键词在每一文档中的出现次数或其他文档对每一文档进行的引用次数 (这可指示内容单元的重要性)来排名。通常,搜索引擎如上所述地执行搜索,只基于每一用户所提供的输入来进行搜索。 但是,一些搜索引擎可以对输入进行推断并且可基于这些推断来扩充或补充该输入。例如, 如果对于搜索引擎所执行的许多搜索而言,在描述该搜索的输入中,项“Boston (波士顿),, 跟随有项“Red Sox(红袜队)”,则搜索引擎可以推断这两项是相关的。一旦作出了这一推断,如果搜索引擎稍后接收到与要执行包含“Boston”而不包含“Red Sox”的搜索有关的输入,则搜索引擎可以将“Red Sox”添加到该输入并基于这两项来执行搜索。或者,如果搜索引擎接收到包含“Boston”而不包含“Red Sox”的输入,则搜索引擎可以使用项“Boston” 执行搜索,但可将包括项“Boston”和“Red Sox”两者的内容单元比只包括“Boston”的内容单元排名得更高。搜索引擎可以这样做是因为搜索已经确定这两项之间可能存在联系并且寻找关于这两项之一的信息的用户可能正在寻找关于另一项的信息。搜索引擎还可以对在搜索期间找到的内容单元中包含的信息作出推断。例如,如果在基于搜索“Boston”找到的内容单元中的许多内容单元中找到了项“Red Sox”,则搜索引擎可以推断出这两项是相关的。如上所述,搜索引擎随后可以将项“Red Sox”添加到搜索中或将包括项“Red Sox”的结果排名得更高。

发明内容
常规搜索引擎被限于基于搜索引擎可用的信息来执行搜索。对于常规搜索引擎, 这一信息是来自用户的输入的形式或基于输入或被搜索的内容集合来作出的推断的形式。因此,在搜索引擎执行关于人工产物的搜索时,该搜索引擎可以执行该搜索并且基于来自用户的输入和所作出的推断来对结果进行排名。人工产物可以与可同该人工产物相关的一段或多段元数据相关联。各段元数据可以提供与同对人工产物的搜索相关的人工产物有关的一些信息。例如,该元数据可以指示人工产物的属性,如人工产物的创建者、该人工产物的创建时间、该人工产物的类型、或其他属性。这些元数据段不在要被搜索的内容集合中或来自用户的输入中。相反,这些元数据段可被存储在别处,如在人工产物的创建者的专用存储中。因此,常规搜索引擎不能访问这一元数据。如果搜索引擎可以访问元数据并且在搜索中使用该元数据,则该搜索引擎可被改进,并且该搜索引擎提供的结果可被改进。本文描述了可一起或单独用来操作搜索引擎以检索元数据信息并使用该元数据信息来执行搜索的各原理。在下文描述的这些原理中的一些的一个实施例中,搜索引擎可以从用户接受描述用户希望执行的搜索的输入。搜索引擎随后可以检查该输入以确定该输入是否与人工产物相关或该输入与什么人工产物相关。搜索引擎随后可以从与所确定的人工产物相关的元数据的源检索元数据信息并使用该元数据信息来执行用户所请求的搜索。以上概述是对由所附权利要求定义的本发明的非限定性的概述。


附图不旨在按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的附图标记来表示。出于简明的目的,不是每一个组件在每张附图中均被标记。在附图中图1是可在搜索引擎中实现来基于用户输入并基于与该输入所涉及的人工产物相关的元数据来执行搜索的一个过程的流程图;图2是其中可以实现图1所示的过程的一个示例性计算机系统的图示;图3是可被实现来接收与要执行的搜索有关的输入的一个过程的流程图;图4是可在搜索引擎中实现以标识输入所涉及的人工产物的一个过程的流程图;图5是可在搜索引擎中实现以基于输入的文本关键词和与人工产物相关的文本关键词来标识该输入所涉及的人工产物的一个过程的流程图;图6是可由搜索引擎实现以检索关于一个或多个人工产物的信息的一个过程的流程图;图7A和7B是用于使用应用程序编程接口(API)来收集关于一个或多个人工产物的元数据的示例性过程的流程图;图8A和8B是可由搜索引擎实现以使用元数据信息来执行搜索的示例性过程的流程图;图9是可由搜索引擎实现以向用户提供搜索结果的一个过程的流程图;图10是可由搜索引擎实现以检索关于搜索的元数据的另一示例性过程的流程图;图11是可由搜索引擎实现来维护元数据信息的本地源以供在检索与搜索相关的元数据时使用的示例性过程的流程图;图12是可由搜索引擎实现以检索附加元数据来用于执行搜索的示例性过程的流程图;以及图13是某些实施例可与其一起实现的示例性计算设备的框图。
具体实施例方式如果较可靠或相关的内容单元作为搜索的结果来提供并且较不可靠和较不相关的内容单元不被提供或以某种方式被指示为较不可靠或较不相关(例如,通过排名),则搜索引擎可被改进并且可以提供更好的结果。常规搜索引擎适用于基于用户提供的输入和/或内容集合中的内容单元来搜索该内容集合。搜索引擎可以基于该输入或数据集来作出推断并且确定各个关系,所述推断和关系尝试改进搜索结果并找出更可靠或更相关的内容单元。但是,常规技术被限于基于可从用户输入获得的或可从该数据集获得的信息来作出推断。因此,常规搜索引擎被限于基于用户输入、要被搜索的内容集合以及可从概率推断确定的信息来搜索并提供结果。在定位可靠或相关内容单元时,可在来自用户的输入或要被搜索的内容集合之外获得的信息对搜索引擎而言是有用的。例如,可存在描述人工产物的元数据并且该元数据可被存储在关于这些人工产物的专用网络中。元数据可以描述人工产物,或可以描述人工产物的一个或多个属性,并且在执行与人工产物相关的搜索时对搜索引擎而言是有用的。 但是,这一元数据可能不能经由来自用户的输入或在要被搜索的内容集合中获得。相反,这一元数据可以存储在不可由常规搜索引擎访问的别处。如果搜索引擎能够确定与搜索相关的或作为搜索的主题的人工产物,确定存在该人工产物的元数据,并且检索关于该人工产物的元数据,则在执行该搜索时该元数据对搜索引擎而言是有用的。例如,元数据可被用来定位可靠和相关的内容单元和/或用来呈现这些可靠和/或相关的内容单元作为搜索的结果。因此,本文描述了用于操作搜索引擎来检索关于人工产物的元数据并使用该元数据来执行与人工产物相关的搜索时的原理。本文描述的各原理可以一起或分开或以任何组合来使用,以操作使用元数据来执行搜索的搜索引擎。图1示出一种用于操作搜索引擎来检索关于人工产物的元数据并使用该元数据来执行关于该人工产物的搜索的说明性技术。图1是作为根据本文描述的原理中的一些原理操作的某些搜索引擎所遵循的总体过程的图示来提供的。在下文中详细描述结合图1的过程所讨论的各个动作中的一些以及可在用于实现这些动作的一些实施例中使用的示例性技术。图1的过程100在框102开始,其中一实体通过向搜索引擎提供描述该实体想要执行的搜索的输入来请求执行搜索。实体的性质和输入的性质不是必要的。在各实施例中,实体可以是任何搜索请求者,包括诸如人类用户和软件代理等用户,并且输入可以是对搜索引擎的任何合适的输入,包括文本(例如,关键词)或二进制数据(例如,图像文件)。 为便于描述,在以下示例中,实体被描述为用户或人类用户,并且输入可被描述为文本关键词,但各实施例不限于这一方面。在框104,在接收到输入之后,搜索引擎(或搜索引擎的软件组件或与搜索引擎相关并与搜索引擎进行通信的软件组件)检查该输入以确定该输入是否与一个或多个人工产物相关。如本文所使用的,人工产物可以是任何搜索主题和与可以生成哪些信息有关并与哪些信息可用有关的任何主题。人工产物包括物理对象(例如,软件产品、静止图像、视频、食品、建筑物、城市等)、实体(例如,商业企业、人,等)、内容单元、信息的主题或类别、 信息段、以及想法,等等。用户可能想要关于人工产物的信息并且可能想要搜索引擎执行与该人工产物相关的搜索以找出该信息。例如,用户可能想要对软件应用程序的特定特征的使用作出指令。 因此,该用户可以向搜索引擎提供与该人工产物相关的输入。为了确定该搜索是否与人工产物相关,搜索引擎可以检查用户所提供的输入。搜索引擎可以使用任何合适的技术来确定该输入是否与人工产物相关,包括下文讨论的任何示例性技术。在一些技术中,人工产物的列表可由搜索引擎存储或存储在搜索引擎可以访问的位置中,并且该列表中的人工产物中的每一个可以与一段或多段信息相关联。这一列表可以用任何合适的方式来创建和/或维护,包括由管理员或通过自动过程来创建和/或维护, 因为各实施例不限于这一方面。在这样的实施例中,确定输入是否与人工产物相关可包括将该输入与同一个或多个人工产物相关联的各段信息进行比较。例如,在一个实施例中,接受文本关键词作为输入并且各文本关键词与每一人工产物相关联。搜索引擎随后可以将该输入的文本关键词与同一个或多个人工产物相关联的文本关键词进行比较。如果该输入的文本关键词中的任一个与人工产物的文本关键词相匹配,则可以确定该输入与该人工产物相匹配。例如,人工产物可以是可从华盛顿州雷蒙德市的微软公司获得的Microsoft Word文字处理应用程序。该人工产物可以在搜索引擎的具有文本关键词“microsoft word”和/或与Microsoft Word的特定特征相关联的任何关键词的记录中相关联。如果用户提供包括关键词“microsoft word”的输入,则该输入的文本关键词中的至少一些将与该人工产物的文本关键词的至少一些相匹配。关键词的这一匹配可以指示该输入与该人工产物相关并且用户想要关于该人工产物的信息。如上所述, 如果搜索引擎确定用户所需的搜索与人工产物相关,则可以检索与该人工产物相关的并可帮助搜索引擎确定相关和/或可靠的内容单元以作为搜索结果来呈现的元数据。如果在框104确定该输入不与人工产物相关,则过程100继续至框112以基于该输入来执行搜索。在框112,可以按任何合适的方式来执行搜索,包括根据已知的搜索引擎技术。不使用元数据来执行搜索的方式不是必要的。然而,如果在框104确定该输入与人工产物相匹配,则在框106,标识该人工产物的元数据的源。如上所述,人工产物可以与一段或多段元数据相关联。元数据可以是描述人工产物的任何信息。元数据可包括与该人工产物的一个或多个属性有关的信息。例如, 该元数据可标识创建了该人工产物的人或团体,如文档的作者、软件程序的开发人员、或视频/电影的导演。元数据可以标识用来创建人工产物的装备,如软件程序的开发环境或被用来创建静止图像的照相机。元数据还可描述人工产物的大小,包括物理大小或数据存储大小。元数据可以描述人工产物的过去、现在或将来位置。描述人工产物的任何合适的信息都可以是元数据。元数据可在任何合适的时间并以任何合适的方式来创建,因为各实施例不限于这一方面。例如,元数据可在处理或考虑人工产物时创建,包括在创建、测试、审阅、存储、或在任何其他时间并以任何其他方式处理该人工产物时。一旦创建了元数据,则该元数据可被存储在任何合适的位置并从中被检索,所述任何合适的位置包括该元数据被创建的位置和/或某一其他位置。在一些实施例中,元数据可以存储在一位置并从该位置被检索,该位置聚集了在一个或多个其他位置处创建的元数据。创建和/或存储元数据的位置可以担当元数据的源。搜索引擎可以从元数据的任何合适的源来检索元数据。每一人工产物可以与元数据的至少一个源相关联,并且可以存储将该人工产物与该元数据的源进行关联的信息。将人工产物与元数据的源进行关联的信息可以标识每一元数据源的本体,从而描述每一元数据源所存储的元数据的类型和每一个源的元数据所涉及的一个或多个人工产物。因此,在搜索引擎将输入与人工产物进行匹配时,搜索引擎可以使用与该人工产物相关联的信息来确定与该人工产物相关的元数据的源。在框106,可以查询元数据的源以寻找与该人工产物相关的元数据。这一查询可以用任何合适的方式来完成,包括根据下文详细描述的示例性技术中的任一种。在一种示例性技术中,可在发送到元数据的源的查询中标识人工产物。例如,该输入的至少一部分可包括在发送到元数据的源的查询中。在框108,响应于框106的查询来从元数据的源接收元数据。在框110,使用在框108接收到的元数据来执行在框102所请求的搜索。可以使用元数据来帮助搜索引擎确定相关和/或可靠的内容单元以作为搜索结果来呈现,使得搜索引擎提供一些用户可能认为更好的结果。可以使用元数据来执行搜索的方式的一些示例在下文中更详细地讨论。可以在一些实施例中使用元数据来执行搜索的一种方式是将其用于对结果进行排名。例如,描述要执行的搜索的输入可包括文本关键词,要由搜索引擎搜索的内容集合可包括文本文档,并且接收到的元数据可包括附加文本关键词。搜索引擎可以搜索内容集合并且确定包括该输入的文本关键词的文档集合。搜索引擎随后可以使用元数据的附加文本关键词来对结果中的文档进行排名,使得包括该文本关键词的文档比不包括该文本关键词的文档排名得更高。但是,应当明白,这只是可以使用元数据来执行搜索的方式的一个示例。搜索引擎可以按任何合适的方式来使用元数据,并且使用元数据的方式可以取决于搜索引擎的类型、搜索引擎所搜索的内容的类型或格式、元数据中包含的信息的类型或格式、以及其他因素而变化。还应当明白,如本文所使用的,“执行搜索”包括与搜索相关的所有动作。在一些搜索引擎中,执行搜索可包括配置该搜索引擎以执行搜索,进行搜索(即,基于搜索参数来检查内容集合)、处理搜索的结果(例如,排名、过滤等)和/或呈现经处理的搜索的结果来作为搜索结果。元数据可以按任何方式来用于执行搜索并且因此可被用于执行搜索所包括的动作中的任何一个或多个动作中。在框110或框112中执行了搜索之后,该过程100结束。在一些情况下,搜索结果随后可按任何合适的方式来显示给搜索的请求者。在一些情况下,向用户显示搜索结果可包括向用户显示确定输入所涉及的人工产物的标识和/或提供给元数据的源的信息的标识。在一些实施例中,还可标识相关联的元数据的源。与元数据的源和人工产物有关的任何合适的信息可与搜索结果一起传递给用户。但是,应当明白,结果可以用任何合适的方式来使用,并且各实施例不限于向用户显示搜索结果。一旦执行了搜索就使用搜索结果的方式不是必要的。为了说明,现在描述图1的过程的一个具体实现。
在本文描述的技术的一个实现中,用户可以向搜索引擎提交描述该用户想要执行的关于一软件应用程序的搜索的输入。例如,该用户可能正在操作可从华盛顿州雷蒙德市的微软公司获得的Microsoft Word文字处理软件,并且可能有关于如何使用该软件应用程序的拼写检查器的问题。该用户可以提供包括诸如“检查microsoft word中的拼写”等文本关键词的输入。根据下文描述的技术中的一些操作的搜索引擎可以检查该输入以确定该输入是否与一人工产物相关。在这一情况下,通过检查来自用户的输入,搜索引擎可以确定该输入与Micr0S0ft W0rd软件应用程序相关和/或与拼写检查器相关。搜索引擎随后可以确定与Microsoft Word有关的元数据的源,在这一情况下,该源是由微软公司维护的元数据服务器。搜索引擎可以查询元数据的源以寻找关于Micr0S0ft W0rd和/或拼写检查器的元数据并可以从该源检索元数据。在这一情况下,从该源接收到的元数据可以是 Micr0S0ft W0rd的该特定特征的主开发人员的名字。搜索引擎随后可以使用该主开发人员的名字来执行搜索。例如,搜索引擎可以搜索web以寻找与Microsoft Word中的拼写检查相关的网页,并且使用该元数据来将结果中的由该主开发人员撰写的与Microsoft Word中的拼写检查器有关的文章排名得很高。这可以完成,因为具有给出主开发人员的名字的元数据的搜索引擎知道主开发人员可以是与该特定特征的信息有关的良好的源。因此,可以确定该主开发人员所撰写的文章是可靠或相关的搜索结果并将其在结果中排名得很1 。应当明白,上述具体实现只是出于说明目的来提供的,并且决不旨在表征各实施例或各实施例的限制。各实施例不限于执行在该具体实现中描述的示例性技术中的任一种,并且不限于操作在该实现中描述的示例性信息类型(例如,示例性人工产物和示例性元数据)中的任一种。图2示出一种根据图1中示出的示例性过程操作的搜索引擎可以在其中进行操作的系统。但是,应当明白,图2的系统仅仅是说明性的并且各实施例不限于在任何特定系统中操作或与任何特定设备一起操作。图2的系统包括多个设备连接到的通信网络200。通信网络200可以是任何合适的通信网络,包括任何合适的有线和/或无线网络。在一些情况下,通信网络200可以是由商业企业运营的企业网络,并且在其他情况下,通信网络200可以是因特网或另一公共网连接到通信网络的设备包括客户机设备202、202A和202B。客户机设备202 (以及设备202A和202B)可以与人类用户进行交互以接收与该用户想要执行的搜索有关的输入并呈现已被执行的搜索的结果。客户机设备202可以与用户进行交互以接收或通过任何合适的用户界面呈现关于搜索的信息。在一些实施例中,用户界面可以是经由web浏览器呈现的网页。在从用户接收到描述搜索的输入之后,客户机设备202可以将该输入的至少一部分传递给主存并运作搜索引擎的服务器204。尽管服务器204被示为单个服务器,但应当明白,在一些实施例中,服务器204可被实现为共享处理负担和/或进行互通信来主存并运作搜索引擎的多个服务器的集合。服务器204所主存的搜索引擎适用于基于与搜索有关的输入来执行搜索。搜索引擎因此可以基于客户机设备202所提供的输入来执行搜索,该输入是由用户提供给客户机设备202的。搜索引擎可以基于该输入来执行对内容集合204A的搜索。内容集合204A可包括能够由搜索引擎搜索并且可被指示为搜索结果的一个或多个内容单元。内容集合204A 的内容单元可以是任何合适的类型和任何合适的格式,包括多个类型和格式。内容单元的类型和格式可取决于搜索引擎的类型而变化。内容集合可以是搜索引擎可用的要被搜索的信息集合。在一些情况下,内容集合 204A可以是存储在可由搜索引擎访问的位置中的包括要被搜索的信息的数据集。例如,在 web搜索引擎的情况下,内容集合204A可以是可由搜索引擎访问的web内容的数据存储,该 web内容由从其他服务器检索并存储web内容的web爬行器创建。虽然内容集合204A在图2中被示为单个单元,可由服务器204作为本地数据存储或网络可访问数据存储来访问, 但在一些情况下,内容集合204A可以存储在各个位置并且作为各个部分来存储。内容集合 204A的存储方式或位置不是必要的。如上所述,在一些实施例中,搜索引擎可以使用关于人工产物的元数据来执行关于该人工产物的搜索。因此,在一些实施例中,关于人工产物的信息集合204B也可被存储在可由搜索引擎访问的位置中。人工产物信息集合204B可包括关于人工产物的任何合适的信息,包括人工产物的列表、每一人工产物的元数据的源的列表、和/或可被用来确定所请求执行的搜索是否与人工产物相关的关于每一人工产物的信息。列表中的人工产物可以是任何合适的人工产物,并且该列表可以用任何合适的方式来确定。例如,可以使用自动过程以基于搜索引擎先前执行的搜索和/或通过分析内容集合204A的内容单元和任何其他信息源来生成人工产物的列表和人工产物信息集合 204B。作为另一示例,搜索引擎的管理员可以基于该管理员可用的信息来配置人工产物的列表和人工产物信息集合204B。作为又一示例,搜索引擎(或搜索引擎的操作者或所有者)可以确立与一个或多个元数据源(或元数据源的操作者或所有者)的关系。每一元数据源可以作为元数据的储存库来操作并且由可能希望提供元数据以供搜索引擎免费或付费使用的实体来管理,包括由商业实体管理。在搜索引擎确立与元数据源的关系时,元数据源可以提供该源具有关于它的元数据的一个或多个人工产物的列表、以及关于该人工产物的信息、关于该源的信息、 或可用于人工产物信息集合204B中的任何其他合适的信息。作为这样的关系的一个示例,创建并分发软件应用程序的软件供应商可具有与该供应商所创建并分发的软件应用程序有关的可用元数据。例如,软件供应商可具有包括该应用程序的开发环境、致力于该应用程序的开发人员的身份、该应用程序的各版本的发行时间表、该应用程序的改变历史、或者关于软件应用程序或关于软件应用程序的各属性的可用作元数据的任何其他信息的元数据。该示例的软件应用程序可以是人工产物,并且关于软件应用程序的元数据可以是关于人工产物的元数据。软件供应商因此可以担当元数据源并且使该信息对搜索引擎可用。为了这样做,软件供应商可以确立与搜索引擎的关系,以使得该搜索引擎能够使用该元数据来提供相关和/或可靠的搜索结果。软件供应商可以使这一信息可用以使得请求关于应用程序的搜索的顾客能够找出相关和/或可靠的结果并且能够找出关于该应用程序的信息,和/或软件供应商可以使该信息可用以使得该软件供应商可以就该信息获利。例如, 搜索引擎和软件供应商可以确立关系,使得每次在软件应用程序从该软件供应商检索元数据时,搜索引擎向该软件供应商付费。不管人工产物信息集合204B的内容或该内容是如何生成的,在确定了描述搜索的输入与人工产物相关并标识了该人工产物的元数据源之后,搜索引擎可以查询元数据源 206以检索该元数据。查询元数据源可以用任何合适的方式来完成。在一些情况下,该查询可以通过搜索引擎与元数据源之间的安全连接来传送。在搜索引擎与元数据源之间建立安全连接可以涉及认证过程,包括下文所述的对搜索引擎与元数据源之间的关系的认证。通过安全连接,可以进行任何合适类型的查询,包括根据文件传输协议(FTP)的查询或使用应用程序编程接口(API)的查询。可以存储元数据集合206A以可由元数据源206访问,使得元数据源可以响应于查询来检索元数据并将该元数据提供给搜索引擎。尽管元数据集合206B被示为单个单元,但应当明白,在一些情况下,元数据集合206B可以作为多个单元来存储和/或存储在多个位置。在一些情况下,元数据集合206B可从网络中的多个位置获得,如通信网络200或专用通信网络208。在一些实现中,元数据源206可以聚集来自元数据集合206B处的多个位置的元数据。一旦元数据源将元数据提供给了搜索引擎,则搜索引擎就将使用该元数据来执行对内容集合204A的搜索。在确定了搜索结果的集合之后,结果(或结果的指示)将被传送到客户机设备202以供呈现给用户。应当明白,尽管结合图1和2来概括地讨论了搜索引擎的操作和搜索引擎可在其中操作的一个系统,但图1和2中示出的过程和系统仅仅是说明性的。各实施例不限于以结合图1讨论的方式来操作或在结合图2讨论的系统中操作。此外,尽管在上述讨论中提供了各个示例,但应当明白,这些示例中的每一个仅仅被提供来示出特定组件可以操作的一种方式,并且各实施例不限于以结合这些示例中的任一个描述的方式来操作。此外,下文描述了各附加示例以更好地示出一些实施例的操作。这些示例仅仅是被给出来提供对这些实施例可如何操作的理解。其他实施例不限于以在这些示例中讨论的方式来操作。图3示出一个实施例如何操作来接收与搜索有关的输入的示例。但是,应当明白, 输入的内容或格式或者接收输入的方式不是必要的。在图3的过程300中,从请求要执行的搜索的实体接收关于该搜索的输入。在图 3的示例中,人类用户正在请求搜索。过程300在框302开始,其中向用户呈现搜索选项。搜索选项可包括可从用户接受来作为输入的任何类型的信息和该类型的信息可接受的任何值。搜索选项可被用来定义作为由搜索引擎执行的搜索的结果来返回的内容单元的属性,并且因此搜索选项可包括内容单元的属性。这些属性可以基于要搜索的内容单元的类型而变化。例如,搜索选项可包括应被搜索的内容单元的类型或格式、内容单元的创建时间/日期、用来创建或使用内容单元的应用程序、内容单元应当包括的文本关键词、内容单元应当包括的二进制数据关键词(例如,作为图像的一部分或整体的数据)、或其他选项。在框304,接收描述搜索的输入。该输入可对应于在框302中呈现的搜索选项中的一个或多个。例如,用户可以输入日期作为内容单元的创建时间,或可以提供文档要包括的文本关键词。在以下给出的示例中,输入可被描述为文档要包括的文本关键词,但应当明白,各实施例不限于接收作为或包括文本关键词的输入。
在框306,将从用户接收到的输入的至少一部分发送到搜索引擎。如果用户直接向主存并操作搜索引擎的同一设备提供输入,则该输入可被直接提供给搜索引擎或可以经由计算机内部的消息传递协议来提供。如果用户将该输入提供给与主存并操作搜索引擎的设备不同的设备,则该输入(或该输入的一部分)可跨通信网络(例如,图2的通信网络200) 来被传送到主存搜索引擎的设备。一旦该输入被提供给了搜索引擎,则过程300结束。如上所述,在搜索引擎从用户(直接地、或经由来自另一设备的传输、或以任何其他方式)接收到输入时,搜索引擎可以确定该输入是否与人工产物相关。图4和5示出搜索引擎可以遵循以确定输入是否与一个或多个人工产物相关的示例性过程。图4的过程400在框402开始,其中从用户接收输入。该输入可包括任何合适的信息,包括与搜索选项相对应的任何合适的信息。在框404,检索关于至少一个人工产物的信息。关于人工产物的信息可用任何合适的方式来创建,因为用来创建与搜索引擎所存储的人工产物有关的信息的技术不是必要的。如上所述,在一些实施例中,该信息可由管理员、自动过程、和/或响应于与元数据源的关系的确立来创建并维护。关于人工产物的信息可包括关于人工产物的任何合适的信息并且可以基于该人工产物来变化。关于人工产物的信息可包括描述该人工产物的一段或多段元数据。例如, 关于人工产物的信息可包括人工产物的一个或多个名称、与人工产物相关联的一个或多个文本关键词、以及人工产物的创建者或所有者的身份。任何合适的信息都可以是关于人工产物的信息。在框406,将该输入与关于人工产物的信息进行比较以确定该输入是否与一个或多个人工产物相关。用于确定输入与一个或多个人工产物之间的匹配的比较技术不是必要的。相反,该比较可以用任何合适的方式来完成并且可取决于该输入的类型或格式和关于人工产物的信息的类型或格式。在各实施例中,输入与关于至少一个人工产物的信息之间的任何对应关系可被用来标识匹配,如只有一段信息之间的匹配。在一些实施例中,可以使用自然语言处理技术来分析关于要执行的搜索的输入。 自然语言处理技术在本领域中是已知的,并且因此在这将不再赘述。在一些这样的实施例中,自然语言处理技术可被用来标识要用来标识人工产物的查询的主题,而在其他这样的实施例中,自然语言处理技术可被用来标识人工产物。在其他实施例中,可以使用各种技术来标识与该输入相关的底层问题。可以使用包括迭代细化技术在内的语言映射技术来标识该输入所涉及的已知问题。映射技术在本领域中是已知的,并且因此在这将不再赘述。在使用自然语言处理技术或映射技术并且操作包括文本关键词的输入的各实施例中,在一些情况下,这些文本关键词可以与多个不同的词语或定义相对应。在这些情况下,一些实施例中可以使用最常见的定义或基于上下文来标识最可能的定义。在其他实施例中,可以基于所标识的多个词语或定义来标识多个主题或人工产物。在一些实施例中,将使用阈值水平的对应关系来确定是否存在匹配,如需要各段信息之间的三个匹配。此外,尽管在一些实施例中,在确定匹配时所有信息段可被相等地加权,但在其他实施例中,各段信息可被不同地加权,使得人工产物的名称出现在输入中的情况比人工产物的创建日期出现在该输入中的情况被更重地加权。在不同的信息段比其他信息段更强地指示匹配时,可以使用不同的权重。基于使用哪一技术来执行比较并确定匹配,框406的输出可以不同。例如,使用一些比较技术,可以产生“匹配”或“不匹配”的二元决策作为输出,而在其他技术中,可以输出指示该输入与人工产物匹配得有多近的匹配分数。不管比较是如何执行的以及输出了什么结果,框406的对输入与关于一个或多个人工产物的信息之间的比较的输出在框408中被用来标识该输入所涉及的一个或多个人工产物。框408可包括收集在框406生成的一个或多个匹配的列表并评估这些匹配。该评估可包括取决于框406的比较的结果来标识该输入与一个、两个或更多个人工产物之间的匹配。在其中标识了两个或更多个人工产物的一些情况下,基于该输入的多个不同的可能解释,该两个或更多个人工产物中的每一个可以与该输入的可能主题相对应。在一些这种情况下,标识匹配可包括标识该输入与该输入所涉及的最可能的人工产物之间的匹配。最可能的人工产物可以是基于该比较的最强匹配,如具有与该输入相匹配(基于该比较)的最多信息的人工产物。在其他情况下,可以标识两个或更多个人工产物,其中描述要执行的搜索的输入标识了两个或更多个人工产物。例如,在用户寻求关于在一公司工作的人的信息的情况下,可以标识对应于该人的人工产物和对应于该公司的人工产物。在一些这种情况下,这两种人工产物可被标识为该输入所涉及的人工产物,并且与这些人工产物中的每一个相关联的元数据源可被用来检索元数据。但是,在其中标识了两个或更多个人工产物的一些情况下,可以提示用户来标识该输入所涉及的人工产物之一。用户所选择的人工产物可被当作该输入所涉及的人工产物,并且可以联系与所选人工产物相关联的元数据的源。一旦在框408标识了匹配,过程400结束。图5的过程500是图4的过程400的一个说明性实现,其中来自用户的输入包括文本关键词并且关于每一人工产物的信息包括文本关键词。但是,如上所述,应当明白,各实施例不限于用文本关键词来操作。过程500在框502开始,其中从用户接收一个或多个文本关键词来作为输入。这些文本关键词描述要执行的搜索,因为这些文本关键词指定搜索引擎要定位的文档应当包括这些文本关键词中的一个、一些或全部。在框504,检索与人工产物列表中的每一人工产物相关的文本关键词集合。与每一人工产物相关联的文本关键词可以是可以描述人工产物的任何合适的词语,包括人工产物名称或可与该人工产物相关联的一个或多个词语。在文本关键词中的每一个与人工产物相关联时,这些文本关键词之一在输入中的存在可以指示该输入与该人工产物相关。在框506,将该输入的文本关键词中的每一个与同人工产物中的每一个相关联的文本关键词进行比较以确定这些关键词中的任何关键词之间是否存在匹配。跟踪每一匹配,并且维护每一人工产物的相匹配的关键词的数量的计数。一旦将输入关键词与人工产物的文本关键词中的每一个进行了比较,具有最多数量的相匹配的关键词的人工产物在框 508中被确定为该输入所涉及的人工产物。过程500随后结束。应当明白,尽管图4和5的示例性过程400和500中的每一个是根据确定匹配来描述的,但在一些情况下,输入可不与人工产物相关或搜索引擎可以不知晓该输入所涉及的人工产物。在这些情况下,将不标识该输入所涉及的人工产物。如果没有标识人工产物, 则可以基于该输入用任何合适的方式来执行搜索,包括根据常规搜索技术。一旦标识了该输入与一个或多个人工产物之间的匹配,就将检索关于每一人工产物的元数据,使得搜索引擎可以使用元数据来执行该搜索。图6、7A和7B示出用于在搜索引擎和一个元数据源之间进行通信以检索关于人工产物的元数据的技术。如果标识了多个人工产物,则可以向元数据源发送多个查询,或查询可被发送到多个元数据源中的每一个。图6的过程600在框602开始,其中建立搜索引擎与元数据源之间的连接。在框 604,将请求元数据的查询从搜索引擎发送到元数据源。该查询可以用任何合适的方式来格式化并可包括任何合适的信息,因为该查询的形式不是必要的。在一个示例性实现中,该查询可只包括对元数据的请求,没有关于该输入或人工产物的信息。这可以是例如如下情况 元数据源包括只关于一个人工产物的元数据并且将响应于查询来提供关于该人工产物的所有元数据。在另一实现中,可以在发送到元数据源的查询中提供输入的部分或全部。在又一实现中,人工产物的名称或关于人工产物的其他信息可以在发送到元数据源的查询中提供。任何合适的信息都可包括在查询中。在框606,从包括元数据的元数据源接收对查询的响应。一旦在框606中接收到元数据,过程600结束。图7A和7B示出使用应用程序编程接口(API)的过程600的示例性实现。可以使用任何合适的协议在程序和设备之间进行API调用,所述协议包括简单对象访问协议 (SOAP)。图7A和7B各自示出可包括在示例性API调用中的信息的示例。图7A示出用于使用API调用的示例性集合TransactionOpen (事务打开)、 TransactionInquiry (事务询问)以及TransactionClose (事务关闭)来检索元数据的过程的流程图。TransactionOpen被用来打开搜索引擎与元数据源之间的通信路径。iTransactionOpen 取一个参数,标识为 PrivateKey (私钥)。PrivateKey 是搜索引擎与元数据源之间的关系的指示符。如果该关系需要搜索引擎为每一查询向元数据源付费,则I^rivateKey可以允许发生开账单过程。如果搜索引擎或元数据源之间没有关系,则I^rivateKey可以为空。对TransactionOpen的响应是事务的标识符,称为 TransactionID(事务ID)。TransactionID可被用于后续通信中以标识该事务。因此,在过程700的框702中,将TransactionOpen通信从搜索引擎发送到元数据源。TransactionOpen 命令包括 PrivateKey0 在框 704, 口向应于该 TransactionOpen 通信, 从元数据源接收TransactionID。TransactionOpen il 胃 t 后,可以 il!用 TransactionInquiry ffl ft ( ^ Sl 源发送一个或多个询问。TransactionInquiry将karchKeywordsList (搜索关键词列表)作为参数,karchKeywordsList可以是一个或多个关键词的集合。在一些实现中,kar chKeywor dsL i st可以是作为来自用户的输入来提供的文本关键词中的部分或全部或者用户所提供的任何其他类型的输入的部分或全部。Transactionlnquiry还可以取TransactionID以及搜索引擎与元数据源之间的关系的I^rivateKey作为参数。 TransactionInquiry 返回 ReferenceList (弓I用列表),ReferenceList 包括元数据源可用的以及与^^代!^巧恥!^^计中包括的关键词(或其他信息段)相关的各段元数据。
因此,在框706,TransactionInquiry通信从搜索引擎发送到元数据源, Transactionlnquiry包括作为由用户提供给搜索引擎的输入的一部分来包括的一个或多个文本关键词。在框708,从元数据源接收一段或多段元数据信息。一旦完成了所有Transactionlnquiry操作,搜索引擎可以向元数据源发送 TransactionClose 命令。TransactionClose 命令可以取通信会话的 TransactionID 作为参数,以使得可以关闭该事务。这可由元数据源用来基于在事务期间发送的查询来启动开账单操作或基于事务的结束来启动任何其他合适的操作。因此,在框710,将"TransactionClose通信发送到元数据源,并且过程700结束。图7B示出使用API与元数据源进行通信的搜索引擎可遵循的替换过程。在图7B的示例中使用的API中,没有确立搜索引擎和元数据源之间的关系。因此,像iTransactionOpen和jTransactionClose等命令是不必要的。相反,只发送 Transactionlnquiry H。在过程720的框722,从搜索引擎将Transactionlnquiry命令发送到元数据源。 Transactionlnquiry 命令包括参数 SearchKeywordsList, SearchKeywordsList 包括用户提供给搜索引擎的输入的全部或部分。在框724,搜索引擎接收对Transactionlnquiry命令的响应,该响应在ReferenceList中包括一段或多段元数据。一旦在框724中接收到元数据,过程720结束。以上参考对元数据进行检索来讨论的技术描述了搜索引擎如何从元数据源检索元数据。由元数据源用来检索或存储元数据的技术未被详细讨论。但是,应当理解,元数据是如何在元数据源处创建的或元数据源用来检索元数据的技术不是必要的。各实施例不限于与使用特定技术来检索元数据的任何元数据源一起操作。相反,元数据源可以使用任何技术。一些实施例中可以与根据供策略服务器使用来定位并检索元数据和身份信息的技术来检索元数据的元数据源一起操作,该技术在2009年4月14日提交的题为“Discovery of inaccessible computer resources (发现不可访问的计算机资源)”的美国专利申请第12/423,023号(“‘023申请”)中描述。‘023申请整体结合于此,至少结合了它的关于策略服务器和用于检索并聚集元数据和身份信息的技术的讨论。如上所述,元数据可以是描述人工产物和/或人工产物的属性的任何合适的信息。元数据可以在对人工产物的任何合适的处理期间的任何合适的时刻处创建,该处理包括创建、测试、审阅、存储、或传送人工产物。在处理人工产物时,处理该人工产物的实体 (例如,人类或软件代理)可生成并存储元数据。处理人工产物的每一实体可以担当元数据源。作为替换或补充,元数据源可以进行动作来发现其他元数据源,恢复存储在每一处的元数据,并且聚集和存储该元数据。作为可创建并存储元数据的方式的一个示例,软件供应商可以在开发软件时使用配置管理软件。该配置管理软件可以维护标识与正在开发的软件应用程序进行交互的开发人员(例如,人类程序员)、该软件应用程序的开发环境、以及在开发期间对该软件应用程序作出的改变、以及其他属性的开发记录。。软件供应商还可存储关于软件开发的文档和该文档的作者的标识。测试记录和结果还可以与执行该测试的测试者的标识一起维护。在开发软件应用程序时,软件供应商可以生成多段其他信息。软件供应商的元数据源可以进行动作来检索并聚集来自该软件供应商所维护的记录中的每一个的每一段元数据。元数据源可以是可由搜索引擎访问的包括软件供应商所生成的元数据的数据存储在内的服务器。元数据源可以标识网络上可用的记录中的每一个,检索这些记录,并与关于该元数据所涉及的软件应用程序(即,人工产物)的信息相关联地存储该信息。搜索引擎随后可以查询元数据源以检索关于该软件应用程序的元数据。在各实施例中,元数据源可以进行动作来以与元数据源创建并存储元数据的格式相同的格式来传送该元数据。在其他实施例中,元数据源可以对元数据执行任何合适的转换过程以将该元数据重新格式化以供搜索引擎使用。在一些情况下,对元数据的转换还可由元数据源来完成,以保护该元数据源可用的专有信息。例如,通过从元数据源可用的记录中提取元数据并将该元数据以另一格式存储,或通过对记录进行重新格式化,信息源不想使之可由搜索引擎或用户公开获得的一些信息可被保持隐藏,同时可以使对搜索引擎有用的元数据公开。一旦搜索引擎检索到元数据,搜索引擎就可以使用该元数据来执行搜索。如上所述,元数据可被用于搜索的任何部分。执行搜索可包括配置搜索引擎以执行搜索,搜索内容集合,处理搜索的结果,将结果呈现给搜索结果的消费者,或与搜索相关的任何其他动作。在一些实施例中,元数据可被用来通过返回该元数据作为搜索的结果来执行搜索,搜索引擎不对内容集合执行任何附加搜索。在搜索引擎响应于对元数据源的查询而接收到元数据时,该元数据可被格式化成搜索结果并作为搜索结果被呈现给用户。在其他实施例中,该元数据中的至少一些可被包括在呈现给消费者的结果中,但可不用于执行搜索的其他方面,直至消费者请求将该元数据用于执行搜索的其他方面为止。在这样的实施例中,搜索结果可与人工产物的标识或元数据源一起呈现给用户,连同使用元数据来配置搜索引擎、搜索和/或处理搜索的结果、或以任何其他方式使用该元数据的选项。但是,在其他实施例中,可以用任何其他合适的方式使用元数据来执行搜索。搜索引擎可以使用元数据来执行搜索的方式可以基于搜索引擎的类型、该搜索引擎所搜索的内容单元的类型、元数据的类型、以及其他因素而变化。因此,尽管在下文中讨论了各示例性技术,但应当明白,各实施例不限于以在这些示例性技术中描述的方式来使用元数据。图8A的过程800在框802开始,其中使来自用户的描述搜索的输入和与人工产物相关的元数据对搜索引擎可用。可以用任何合适的方式来接收输入和元数据,包括根据上述技术中的任一种。在框804,搜索引擎基于用户提供的输入来搜索内容集合。这一搜索可以用任何方式来执行,包括根据常规搜索技术。例如,如果内容集合包括文档并且输入包括文本关键词,则搜索引擎可以定位包括该输入的文本关键词的文档。在框804,如果搜索是成功的,则确定至少一个内容单元是搜索的结果。在框806, 随后在将搜索的结果呈现给用户之前以某种方式对其进行处理。可以完成该处理以提示或标识相关或可靠的内容单元或者比其他内容单元更相关或更可靠的内容单元。为了这样做,一些搜索引擎可以使用诸如排名或过滤等处理技术,排名技术对可能相关或可靠的内容单元进行排名,而过滤技术过滤出可能不相关或不可靠的内容单元。存在着用于处理内容单元的许多不同的技术,并且存在着用于对内容单元进行排名和/或过滤的许多不同的技术。
在一些实施例中,元数据被用于处理内容单元。在一个示例中,排名是使用该元数据来执行的。例如,一旦确定了内容单元是搜索的结果,则可以根据该元数据来搜索这些内容单元以确定结果中的最紧密地匹配该元数据的那些内容单元。如果该元数据包括文本关键词,则根据该元数据搜索内容单元可包括确定任何内容单元是否包括这些文本关键词。 如果该元数据包括日期或日期范围,则根据该元数据搜索内容单元可包括确定在该日期或在该日期范围期间内是否创建了任何内容单元。如果该元数据包括身份(例如,软件程序的开发人员的身份),则根据该元数据搜索内容单元可包括确定是否由该身份所指示的人创建了任何内容单元或是否有任何内容单元引用了该身份所指示的人。一旦根据该元数据搜索了内容单元,则包括该元数据所标识的信息的内容单元可被认为比不包括该元数据所标识的信息的内容单元更相关或更可靠。这可以是因为已经确定用户在寻找关于人工产物的信息并且已知该元数据是关于该人工产物的信息。如果内容单元包括该元数据,则可以认为它比不包括该元数据的内容单元更紧密地与该人工产物相关,并且因此可以确定它是对于用户的更相关或更可靠的搜索结果。因此,使用根据元数据的搜索的结果,在框806中执行对在框804中确定的内容单元的处理。在图8A的示例中,框806的处理可以是进行排名。因此,在框806,包括与该元数据相关的信息的内容单元比不包括与该元数据相关的信息的内容单元排名得更高。另外,包括与该元数据更紧密地相关的信息的内容单元可以比包括与该元数据较不紧密地相关的信息的内容单元排名得更高。在一些情况下,在确定排名时,不同类型的元数据可被不同地加权,使得在内容单元与一段较高加权的元数据相匹配时,该内容单元可以比与一段较低加权的元数据相匹配的内容单元排名得更高。各实施例可以使用任何合适的排名技术,因为各实施例不限于使用任何特定排名技术。一旦完成了框806的排名,则在框808输出经排名的内容单元来作为搜索的结果, 并且过程800结束。如上所述,应当明白,图8A示出了使用元数据来处理搜索结果的过程。但是,元数据可以在执行搜索时的任何时间点来使用。图8B示出其中元数据被用于执行搜索的过程的不同部分的另一过程,示出了可以用不同的方式来使用元数据并且可将其用于不同的部分中。在图8B的示例中,元数据被用来搜索内容单元集合。图8B的过程820在框822开始,其中使来自用户的输入和元数据对搜索引擎可用。如在图8A的框802中,这可以用任何合适的方式来完成。在框824,将来自该元数据的信息添加到来自用户的输入。例如,如果来自用户的输入包括文本关键词并且元数据包括文本关键词,则这些关键词可被组合以产生单个关键词集合。其他类型的输入和其他类型的元数据可被类似地组合,以便确定包括来自用户的输入和元数据两者的搜索参数的集合。在框826,使用在框824中确定的搜索参数的集合来搜索内容集合。以此方式,从元数据源检索到的元数据被用于对内容集合的搜索中并且被用来确定该搜索的结果集。这可以完成,因为已经确定输入与某一人工产物相关,并且已知该元数据与该人工产物相关, 所以该元数据可被用来执行对内容集合的聚焦搜索。以此方式,只返回既与该输入相关又与该元数据相关的内容单元来作为搜索的结果,并且因此只有可能与该人工产物相关的内容单元(因为内容单元包括与该人工产物相关的元数据)才被确定为是结果。因此,可以从搜索的结果中移除不与该人工产物相关并且将会不相关的内容单元。框826的搜索可以用任何合适的方式来执行,包括根据已知的搜索技术,并且可以取决于输入的类型、元数据的类型、以及要搜索的内容单元的类型而变化。在框826,如果搜索是成功的,则确定至少一个内容单元是搜索的结果。随后在框 8 以某种方式处理该内容单元。例如,可以根据该内容单元与搜索参数的集合匹配得有多紧密来对该内容单元进行排名,包括该内容单元与来自用户的输入和元数据匹配得有多紧密。一旦在框823处理了结果,则可以输出该结果并且过程820结束。一旦以任何合适的方式和以任何合适的方法使用了元数据来执行搜索并且确定了结果列表,则将结果返回给用户。在上文的图3中,在客户机设备处接收来自用户的描述搜索的输入并且将其传送到主存搜索引擎的服务器。在图9的示例中,搜索的结果被从服务器传送到客户机设备。但是,如应从图3的以上讨论明白的,各实施例可以在设备的任何合适系统中并以任何合适的方式来操作,并且各实施例不限于实现图9中示出的技术或与服务器和/或客户机设备一起操作。图9的过程900在框902开始,其中搜索引擎获得搜索的结果。在框904,将结果格式化以经由用户界面呈现给用户。在用户界面是要显示在web浏览器中的网页时,框904 的格式化可包括创建包含搜索结果中的至少一些的列表以及用于与结果进行交互或请求更多结果的链接和/或按钮的网页。在一些实施例中,将结果格式化还可包括在结果中标识被确定为描述该搜索的输入所涉及的人工产物。人工产物可以由名称或以任何其他合适的方式来标识。在一些情况下,作为补充或替换,可以标识在搜索期间联系的元数据源,和 /或可以提供被提供给元数据源的信息。在结果中提供人工产物和元数据源的标识可以向搜索结果的消费者(例如,用户)提供关于执行了什么搜索的更好的信息。结果还可包括检索关于人工产物或来自元数据源的更多信息的方式,如通过联系具有附加信息的元数据源。另外,在上述不使用元数据来执行搜索直至消费者请求使用元数据为止的各实施例中, 将结果格式化还可包括向消费者呈现使用元数据来执行搜索的选项。在框906,经由通信网络将经格式化的结果传送到客户机设备,并且在框908,经由用户界面将这些结果显示给用户,并且过程900结束。以上描述了各实施例可操作来使用关于人工产物的元数据执行与该人工产物相关的搜索的方式的各示例。上述技术中的每一种可以按任何合适的组合来使用,包括与本文未明确描述的其他技术进行组合。此外,应当明白,上述技术中的每一种仅仅是各实施例可以操作的方式的示例,并且其他方式是可能的。例如,尽管上述各实施例在搜索引擎处(或在搜索引擎的软件组件处,或与搜索引擎相关并与其进行通信的软件组件)确定描述搜索的输入所涉及的人工产物,但在其他实施例中,客户机设备或搜索引擎的用户界面可以确定该输入与哪一(些)人工产物相关。作为另一示例,尽管元数据在上文中被描述为由服务器上的搜索引擎用于执行搜索,但在一些实现中,该元数据可在客户机设备上用于执行搜索,如通过使用该元数据来执行对由搜索引擎确定的搜索结果的排名。此外,尽管上述各实施例将搜索引擎描述为确定输入所涉及的人工产物,但在一些实施例中,作为补充或替换,搜索引擎可以确定与该输入相关联的元数据源。该输入的至少一些随后可被提供给元数据源,并且该元数据源可以确定与该输入相对应的元数据,如通过首先确定该输入所涉及的人工产物。该元数据源随后可以用元数据来对搜索引擎进行响应。图10示出这样的过程的一个示例。在过程1000的框1002,搜索引擎接收描述搜索引擎想要执行的搜索的输入。在该示例中,该输入包括文本关键词。这些文本关键词描述要执行的搜索,因为这些文本关键词指定搜索引擎要定位的文档应当包括这些文本关键词中的一个、一些或全部。在框1004,检索与搜索引擎所知晓的每一元数据源相关的文本关键词集合。与每一元数据源相关联的文本关键词可以是可描述该元数据源与其相关联的人工产物的任何合适的词语或者该元数据源可用的人工产物的分类或类别,包括人工产物名称或可与人工产物相关联的一个或多个词语。例如,在元数据源是软件供应商时,与该元数据源相关联的文本关键词可以是该供应商的名称(例如,“微软”)或一套产品的名称。供应商的名称或一套产品的名称可以出现在描述要执行的关于该供应商所发行的软件应用程序的搜索的输入中,并且因此可被用来将该输入与该元数据源进行匹配。在框1006,将该输入的文本关键词中的每一个与同元数据源中的每一个相关联的文本关键词进行比较以确定这些关键词中的任何关键词之间是否存在匹配。跟踪每一匹配,并且维护每一人工产物的相匹配的关键词的数量的计数。一旦将输入关键词与元数据源的文本关键词中的每一个进行了比较,具有最多数量的相匹配的关键词的元数据源就被确定为该输入所涉及的元数据源。在框1008,搜索引擎能在请求元数据的任何合适的通信中将该输入的至少一部分提供给元数据源。例如,可以使用上述示例性API通信中的任一种。在框1010,元数据源确定该输入所涉及的人工产物以及关于该人工产物的至少一段元数据。这可以按任何合适的方式完成。例如,以上结合确定输入所涉及的人工产物来描述的技术可以由元数据源来实现。作为另一示例,可以执行使用该输入的企业搜索来确定与该输入相关的人工产物和/或至少一段元数据。作为又一示例,可以使用在上述‘023申请中描述的、可由策略服务器实现来确定网络数据技术来确定人工产物和/或元数据。可以使用任何合适的技术。在框1012,元数据源将元数据提供给搜索引擎,并且在框1014,搜索引擎以任何合适的方式使用该元数据来执行搜索。一旦执行了搜索,过程1000结束。在上述各示例性实施例中的每一个中,元数据源被描述为可由搜索引擎远程地访问的不同计算机,如经由通信网络连接到主存搜索引擎的服务器的另一服务器。然而,在一些实施例中,元数据源可以存储在搜索引擎的本地或作为由搜索引擎管理的数据存储的一部分来存储。在一些这样的情况下,搜索引擎本地的元数据源可以聚集来自一个或多个其他元数据源的元数据。在一个示例性实施例中,本地元数据源可由搜索引擎通过基于从一个或多个其他元数据源接收到的通信周期性地更新该本地元数据源来维护。图11示出这样的过程的一个示例。图11的过程1100在框1102开始,其中搜索引擎从远程的元数据源接收元数据并且将该元数据存储在本地元数据源中。本地元数据源可以用任何合适的方式来存储和管理,因为本地源的存储的方式不是必要的。在一些情况下,本地元数据源可以用准许根据每一段元数据所涉及的人工产物来搜索该本地源的格式来存储各段元数据。在一些这样的情况下,每一段元数据可以与关于人工产物的信息相关联地存储,所述关于人工产物的信息诸如人工产物名称或人工产物的其他标识符。在框1104,搜索引擎接收关于要执行的搜索的输入并使用本地元数据源来确定可由搜索引擎用于执行搜索的至少一段元数据。确定至少一段元数据可以用任何合适的方式来完成。如果本地元数据源将每一段元数据与一人工产物相关联地存储,则确定至少一段元数据可包括标识该输入所涉及的至少一个人工产物并随后检索与该人工产物相关联的元数据。在框1106,搜索引擎使用该元数据来执行搜索。该元数据可被以任何合适的方式用来执行搜索,包括根据上述技术。在框1108,在搜索引擎处从远程的元数据源接收元数据更新通信。该元数据更新通信可以响应于来自搜索引擎的对元数据的请求来接收,所述请求可能由搜索引擎响应于任何合适的触发来发送。搜索引擎的示例性触发包括过去了预定的时间量或接收到与特定一段元数据相关的搜索。或者,元数据更新通信可以在没有来自搜索引擎的请求的情况下接收,而是可由远程的元数据源响应于任何合适的触发来传送。搜索引擎的示例性触发包括过去了预定的时间量或检测到对先前提供给搜索引擎的一段元数据的更新。可以在任何合适的时间并出于任何合适的原因来在搜索引擎处接收元数据更新通信。在框1110,使用包括在元数据更新通信中的元数据来更新本地元数据源。更新本地元数据源可包括替换先前存储的元数据和/或添加新元数据。可以使用任何合适的存储技术来更新本地源,因为存储数据的方式不是必要的。更新本地源中的元数据的方式可以取决于存储并管理本地源的方式而变化。一旦更新了本地元数据源,过程1100结束。在一些实施例中,除查询远程的元数据源之外,搜索引擎可以维护本地元数据源。 在一些这样的情况下,搜索引擎可以主要依赖于远程的元数据源来寻找被用于执行搜索的元数据,但该搜索引擎可以用存储在本地的元数据来补充该元数据。在一种这样的情况下,搜索弓I擎可以实现用于从与元数据源不同的位置检索元数据的查询功能。例如,如果搜索引擎确定关于人工产物的元数据不足或关于人工产物的可用元数据对用户而言没有用,则该搜索引擎可以联系人类来检索附加元数据。所联系的人类可以是搜索引擎的管理员、元数据源的管理员、关于人工产物的元数据所标识的人(例如,软件应用程序的开发人员)、或任何其他人。该人类随后可以提供关于人工产物的元数据或提供任何其他元数据,并且搜索引擎可以将该新的元数据存储在本地。在执行搜索时, 搜索引擎可以使用从远程的元数据源检索到的元数据和从本地元数据源检索到的元数据。图12示出这样的过程的一个示例。过程1200在框1202开始,其中搜索引擎使用元数据来执行一个或多个搜索并且将搜索的结果呈现给用户。在框1204,搜索引擎检测与人工产物相关的搜索结果对用户没有用或不是用户所寻找的结果。可以使用任何技术来确定结果是否有用,包括用来确定搜索引擎是否表现良好和/或产生有用结果的任何常规技术。因为元数据是由根据本文描述的技术操作的搜索引擎来使用的,所以搜索引擎可以在框1206尝试检索关于该人工产物的附加元数据。搜索引擎1206因此可以向该搜索引擎的管理员呈现标识该人工产物并标识关于该人工产物的搜索结果没有用或不足够有用的消息。该消息也可以请求关于该人工产物的元数据。该请求可以标识搜索引擎确定它缺少的特定类型的元数据,可以标识先前被确定为有用(或者自动地由搜索引擎确定、或者基于搜索引擎的配置来确定的)的特定类型的元数据,可以标识任何其他特定类型的元数据,或可以只标识所需的元数据。在框1208,搜索引擎接收响应于该消息的附加元数据。该附加元数据可以由管理员以任何合适的方式来确定,包括通过执行关于该人工产物的查询,检查关于该人工产物的其他引用文献,联系关于该人工产物的元数据源,或执行对元数据的任何其他搜索。在框1210,搜索引擎接收与该人工产物相关的新搜索,并使用从远程的元数据源检索到的元数据和在框1208中接收到的新元数据来执行该搜索,并且过程1200结束。根据本文描述的原理操作的技术可以按任何合适的方式来实现。以上的讨论中所包括的是示出操作搜索引擎来使用元数据执行搜索的各种过程的步骤和动作的一系列流程图。以上的流程图的处理和判定框表示可被包括在实现这各种过程的算法中的步骤和动作。从这些过程导出的算法可以被实现为与一个或多个多用途处理器集成并指导其操作的软件、可以被实现为诸如数字信号处理(DSP)电路或专用集成电路(ASIC)等功能上等效的电路、或可以用任何其他合适的方式来实现。应当理解,此处包括的流程图未描绘任何特定电路的句法或操作,也未描绘任何特定的编程语言或编程语言类型的句法或操作。相反,各流程图示出了本领域普通技术人员可用于制造电路或实现计算机软件算法来执行实现此处描述的各类型的技术的特定装置的处理的功能信息。还应当理解,除非另外指明,否则每一流程图中描述的步骤和动作的特定序列仅是可被实现的算法的说明,并且可以在此处描述的原理的各实现和实施例中变化。因此,在某些实施例中,此处描述的技术可以用被实现为软件的计算机可执行指令来具体化,软件包括应用软件、系统软件、固件、中间件、或任何其他合适类型的软件。这样的计算机可执行指令可使用多种合适的程序设计语言和/或程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。当此处描述的技术被具体化为计算机可执行指令时,这些计算机可执行指令可以用任何合适的方式来实现,包括被实现为多个功能工具,每一功能工具提供完成根据这些技术来操作的算法的执行所需的一个或多个操作。不论是如何实例化的,“功能工具”都是计算机系统的一个结构组件,其在与一个或多个计算机集成并由其执行时使得该一个或多个计算机执行具体操作任务。功能工具可以是软件元素的一部分或是整个软件元素。例如, 功能工具可被实现为进程的函数、或被实现为离散进程、或被实现为任何其他合适的处理单元。如果此处描述的技术被实现为多个功能工具,则每一功能工具可以按其自己的方式来实现;不必将所有功能工具以相同的方式来实现。另外,这些功能工具可在适当时并行或串行执行,并且可使用在其上执行这些模块的计算机上的共享存储器、使用消息传递协议、 或以任何其他合适的方式,来在彼此之间传递信息。一般而言,功能工具包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,功能工具的功能可以如它们在其中操作的系统所需来组合或分布。在一些实现中,执行本文描述的技术的一个或多个功能工具可以一起形成完整的软件包,例如作为软件应用程序,诸如Siarepoint 企业搜索等企业搜索引擎或诸如Bing搜索引擎等web搜索引擎,这两者都可从华盛顿州雷蒙德市的微软公司获得。在替换实施例中,这些功能工具可适用于与其他不相关的功能工具和/或进程交互,来实现软件程序应用。用于执行一个或多个任务的某些示例性功能工具已在此处描述。但应当理解,所描述的功能工具和任务划分仅是可实现此处描述的示例性技术的功能工具的类型的说明, 且本发明不限于以任何特定数量、划分、或功能工具类型来实现。在某些实现中,所有功能可在单个功能工具中实现。应当理解,在某些实现中,此处描述的功能工具中的某一些可以与其他功能工具一起实现或分开实现(即,作为单个单元或分开的单元),或者这些功能工具中的某一些可能不被实现。在某些实施例中,实现此处描述的技术的计算机可执行指令(但被实现为一个或多个功能工具或以任何其他方式实现时)可以被编码在一个或多个计算机可读存储介质上来向该存储介质提供功能。这些介质包括诸如硬盘驱动器等磁介质、诸如压缩盘(CD)或数字多功能盘(DVD)等光介质、持久或非持久固态存储器(例如,闪存、磁RAM等)、或任何其他合适的存储介质。这一计算机可读存储介质可被实现为以下图13的计算机可读存储介质1306 (S卩,作为计算设备1300的一部分)或作为独立的、单独的存储介质。应当明白, 如本文所使用的,“计算机可读介质”包括“计算机可读存储介质”,指的是具有可在创建该介质的过程、将数据记录于其上的过程、或用数据对该一个或多个介质进行编码的任何其他过程期间用嵌入的数据以某种方式来更改的至少一个物理属性的非暂态的有形的存储介质。例如,计算机可读介质的物理结构的一部分的磁化状态可在记录过程中更改。在其中各技术可被具体化为计算机可执行指令的某些但非全部实现中,这些指令可以在任何合适的计算机系统中操作的一个或多个合适的计算设备上执行,包括图13的示例性计算机设备和图2的示例性计算机系统。包括这些计算机可执行指令的功能工具可以与单个多用途可编程数字计算机装置、共享处理能力且联合执行此处所描述的技术的两个或更多多用途计算机装置的协作系统、专用于执行此处所描述的技术的单个计算机装置或计算机装置的协作系统(位于同处或在地理上分布)、用于实现此处所描述的技术的一个或多个现场可编程门阵列(FPGA)、或任何其他合适的系统集成,或指导这些系统的操作。图13示出了计算设备1300形式的可用作实现本文描述的技术的系统中的主存搜索引擎的设备的计算设备的一个示例性实现,然而其他实现也是可能的。应理解,图13既不旨在是对用于依照本发明描述的原理操作的计算设备的必要组件的描绘,也不旨在是全面描绘。图13的计算设备1300可包括至少一个处理器1302、网络适配器1304、以及计算机可读存储介质1306。计算设备1300可以是例如台式或膝上型个人计算机、服务器、或任何其他合适的计算设备。网络适配器1304可以是使得计算设备1300能够通过任何合适的计算网络来与任何其他合适的计算设备进行无线通信的任何合适的硬件和/或软件。该计算网络可包括无线接入点以及用于在两个或更多个计算机之间交换数据的任何合适的一个或多个有线和/或无线通信介质,包括因特网。计算机可读介质1306适用于存储要由处理器1302处理的数据和/或要由处理器1302执行的指令。处理器1302能够处理数据和执行指令。这些数据和指令可被存储在计算机可读存储介质1306上,并且例如可以启用计算设备1300的各组件之间的通信。存储在计算机可读存储介质1306上的数据和指令可包括实现根据本文描述的原理操作的技术的计算机可执行指令。在图13的示例中,如上所述,计算机可读存储介质 1306存储实现各种工具并存储各种信息的计算机可执行指令。计算机可读存储介质1306 可以存储用于以任何合适的方式执行搜索的搜索引擎工具1308。搜索引擎工具1308还可包括用于确定提供给搜索引擎工具1308的输入是否与一个或多个人工产物相关的人工产物确定工具1310。在其他实施例中,人工产物确定工具可以与搜索引擎工具1308分开实现,而非实现成搜索引擎工具1308的组件。计算机可读存储介质1306还可存储可由搜索引擎工具1308和人工产物确定工具 1310使用的信息。例如,可以存储内容集合1312,它可包括关于可由计算机可读存储介质 1306搜索的一个或多个内容单元的信息。也可存储人工产物信息集合1314,它可包括关于一个或多个人工产物的信息,包括例如人工产物的名称、与人工产物相关的元数据的源、以及可被用来将对搜索引擎的输入与该输入所涉及的一个或多个人工产物进行匹配的任何 fn息ο尽管未在图13中示出,但计算设备可另外具有一个或多个组件和外围设备,包括输入和输出设备。这些设备特别地可被用来呈现用户界面。可被用来提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或显示屏以及用于可听地呈现输出的扬声器或其他声音生成设备。可被用于用户界面的输入设备的示例包括键盘和诸如鼠标、触摸垫和数字化输入板等定点设备。作为另一示例,计算设备可以通过语音识别或以其他可听格式来接收输入信息。已经描述了其中各技术以电路和/或计算机可执行指令来实现的本发明的各实施例。应当明白,本发明可被具体化为方法,其示例已经提供。作为该方法的一部分所执行的动作可以按任何合适的方式来排序。因此,可以构建各个实施例,其中各动作以与所示的次序所不同的次序执行,不同的次序可包括同时执行某些动作,即使这些动作在各说明性实施例中被示为顺序动作。本发明的各个方面可单独、组合或以未在前述实施例中具体讨论的各种安排来使用,从而并不将其应用限于前述描述中所述或附图中所示的组件的细节和安排。例如,可使用任何方式将一个实施例中描述的各方面与其他实施例中描述的各方面组合。在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、 或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对 “包括”、“包含”、“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其他项目。至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。这样的更改、修改和改进旨在是本发明的一部分,且旨在处于本发明的精神和范围内。因此,上述描述和附图仅用作示例。
权利要求
1.一种操作搜索引擎(204)来执行对一个或多个内容单元的搜索的方法,所述方法包括操作至少一个已编程的处理器来执行至少一个动作,所述至少一个动作由用于对所述至少一个已编程的处理器进行编程的可执行指令来标识,所述至少一个动作包括(A)接收关于要由所述搜索引擎执行的搜索的输入(102);(B)查询与关联于所述输入的人工产物相关联的元数据源(106);以及(C)使用从所述源接收到的元数据来执行所述搜索(110)。
2.如权利要求1所述的方法,其特征在于,还包括(D)确定所述输入是否与至少一个动作的一个人工产物相关联(104);以及(E)如果所述输入与一人工产物相关联,则确定关于该人工产物的元数据源(104)。
3.如权利要求2所述的方法,其特征在于,所述输入包括至少一个文本关键词,并且每一人工产物与一个或多个人工产物关键词相关联,以及其中确定所述输入是否与任何人工产物相关联的动作(D)包括将所述输入的至少一个文本关键词与人工产物关键词集合进行比较以确定所述输入所涉及的人工产物(506)。
4.如权利要求2所述的方法,其特征在于,所述搜索引擎的操作者与至少一个元数据源中的每一个之间存在关系,每一元数据源与至少一个人工产物相关联,以及其中所述方法还包括(D)确定所述输入是否与关联于所述至少一个元数据源之一的人工产物相关联 (408)。
5.如权利要求1所述的方法,其特征在于,查询所述元数据信息的源包括(Bi)将所述输入的至少一部分传送到所述元数据源(604)。
6.如权利要求1所述的方法,其特征在于,使用所述元数据来执行所述搜索的动作(C) 包括(Cl)基于所述输入来执行所述搜索以确定所述搜索的至少一个结果(804);以及(C2)使用所述元数据对所述至少一个结果进行排名(806)。
7.如权利要求1所述的方法,其特征在于,使用所述元数据来执行所述搜索的动作(C) 包括(Cl)将所述输入与所述元数据进行组合以产生经扩充的输入(824);以及(C2)基于所述经扩充的输入来执行所述搜索以确定所述搜索的至少一个结果(拟6)。
8.如权利要求1所述的方法,其特征在于,所述元数据是与所述人工产物相关联的至少一个人的身份信息。
9.如权利要求8所述的方法,其特征在于,与所述人工产物相关联的所述至少一个人是对所述人工产物的创建有贡献的至少一个人。
10.至少一个用计算机可执行指令来编码的计算机可读存储介质,所述计算机可执行指令在由计算机执行时使得所述计算机执行一种方法,所述方法操作搜索引擎(204)来执行对一个或多个内容单元的搜索,所述方法包括(A)接收描述要执行的搜索的输入(102),所述输入包括至少一个文本关键词;(B)将所述输入的至少一个文本关键词与同至少一个人工产物相关联的人工产物关键词集合进行比较以确定所述输入所涉及的人工产物(506);(C)查询关于所述人工产物的元数据源(106);(D)从所述元数据源接收与所述人工产物相关联的至少一个人的身份信息(108);以及(E)使用从所述源接收到的身份信息来执行所述搜索(110)。
11.如权利要求10所述的至少一个计算机可读存储介质,其特征在于,使用所述元数据来执行所述搜索的动作(E)包括(El)基于所述输入来执行所述搜索以确定所述搜索的至少一个结果(804);以及 (E2)使用所述元数据对所述至少一个结果进行排名(806)。
12.如权利要求10所述的至少一个计算机可读存储介质,其特征在于,使用所述元数据来执行所述搜索的动作(E)包括(El)将所述输入与所述元数据进行组合以产生经扩充的输入(824);以及(E2)基于所述经扩充的输入来执行所述搜索以确定所述搜索的至少一个结果(拟6)。
13.如权利要求10所述的至少一个计算机可读存储介质,其特征在于,所述查询所述元数据信息的源包括(Bi)将所述输入的至少一些传送到所述元数据源(604)。
14.如权利要求10所述的至少一个计算机可读存储介质,其特征在于,所述搜索引擎的操作者与至少一个元数据源中的每一个之间存在关系,每一元数据源与至少一个人工产物相关联,以及其中所述方法还包括(D)确定所述输入是否与关联于所述至少一个元数据源之一的人工产物相关联 (408)。
15.如权利要求14所述的至少一个计算机可读存储介质,其特征在于,查询所述元数据源(70 包括向所述元数据源提供所述关系的标识符。
全文摘要
本文描述了可一起或单独用来实现搜索引擎以检索元数据信息并使用该元数据信息来执行搜索的各个原理。在本文描述的一个实施例中,搜索引擎从用户接受描述该用户想要执行的搜索的输入。搜索引擎随后可以检查该输入以确定该输入是否涉及人工产物或该输入涉及什么人工产物。搜索引擎随后可以从与所确定的人工产物相关的源检索元数据信息并使用该元数据信息来执行用户所请求的搜索。
文档编号G06F17/30GK102193970SQ201110063158
公开日2011年9月21日 申请日期2011年3月8日 优先权日2010年3月9日
发明者J·普利扣提尔, M·马努 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1