用于信息资源搜索的方法和设备转让专利

申请号 : CN200710108983.0

文献号 : CN101324887B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张雷马力潘越J-S·布伦纳

申请人 : 国际商业机器公司

摘要 :

本发明公开了用于信息资源的搜索的方法和设备。在该方法中,包括步骤:根据当前用于第一类型信息资源的查询,获取关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系;以及将上述获取的关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系返回给用户。根据本发明,用户能够以一种简单的方式,进行复杂的信息资源的搜索。

权利要求 :

1.一种用于信息资源搜索的方法,包括步骤:

根据当前用于第一类型信息资源的查询,获取关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系;以及将上述获取的关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系返回给用户。

2.根据权利要求1所述的方法,还包括步骤:

判定用户选择了返回的所述第一类型信息资源的一个侧面下的一个元数据;

将当前用于第一类型信息资源的查询和用户所选择的所述第一类型信息资源的一个侧面下的一个元数据相组合,以形成一个新的用于第一类型信息资源的查询;以及将所述新的用于第一类型信息资源的查询作为当前用于第一类型信息资源的查询,以又一次获取和返回关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系。

3.根据权利要求1所述的方法,还包括步骤:

判定用户选择了返回的与所述第二类型信息资源的关系;

基于当前用于第一类型信息资源的查询和选择的与所述第二类型信息资源的关系构造当前用于第二类型信息资源的查询;

根据当前用于第二类型信息资源的查询,获取关于所述第二类型信息资源的查询结果和所述第二类型信息资源的一个或多个侧面和每个侧面下的元数据;以及将获取的关于所述第二类型信息资源的查询结果和所述第二类型信息资源的一个或多个侧面和每个侧面下的元数据返回给用户。

4.根据权利要求3所述的方法,还包括步骤:

判定用户选择了返回的所述第二类型信息资源的一个侧面下的一个元数据;

将当前用于第二类型信息资源的查询和上述用户选择的所述第二类型信息资源的一个侧面下的一个元数据相组合,以形成一个新的用于第二类型信息资源的查询;

将所述新的用于第二类型信息资源的查询作为当前用于第二类型信息资源的查询,以又一次获取和返回关于所述第二类型信息资源的查询结果和所述第二类型信息资源的一个或多个侧面和每个侧面下的元数据。

5.根据权利要求4所述的方法,还包括步骤:

判定又一次返回的关于所述第二类型信息资源的查询结果是用户所希望的查询结果;

将当前用于第一类型信息资源的查询和导致又一次返回的当前用于第二类型信息资源的查询相组合,以形成一个新的用于第一类型信息资源的查询;以及将所述新的用于第一类型信息资源的查询作为当前用于第一类型信息资源的查询,以又一次获取和返回关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与除了所述第二类型信息资源之外的其他类型信息资源的关系。

6.一种用于信息资源的搜索的设备,包括:

获取装置,用于根据当前用于第一类型信息资源的查询,获取关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系;以及返回装置,用于将上述获取的关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系返回给用户。

7.根据权利要求6所述的设备,还包括:

判定装置,用于判定用户选择了返回的所述第一类型信息资源的一个侧面下的一个元数据;

组合装置,用于将当前用于第一类型信息资源的查询和用户所选择的所述第一类型信息资源的一个侧面下的一个元数据相组合,以形成一个新的用于第一类型信息资源的查询;以及赋值装置,用于将所述新的用于第一类型信息资源的查询作为当前用于第一类型信息资源的查询,以又一次获取和返回关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系。

8.根据权利要求6所述的设备,还包括:

判定装置,用于判定用户选择了返回的与所述第二类型信息资源的关系;

构造装置,用于基于当前用于第一类型信息资源的查询和选择的与所述第二类型信息资源的关系构造当前用于第二类型信息资源的查询;

其中,所述获取装置还用于根据当前用于第二类型信息资源的查询,获取关于所述第二类型信息资源的查询结果和所述第二类型信息资源的一个或多个侧面和每个侧面下的元数据;

所述返回装置还用于将获取的关于所述第二类型信息资源的查询结果和所述第二类型信息资源的一个或多个侧面和每个侧面下的元数据返回给用户。

9.根据权利要求8所述的设备,其中:

所述判定装置还用于判定用户选择了返回的所述第二类型信息资源的一个侧面下的一个元数据;

所述组合装置还用于将当前用于第二类型信息资源的查询和上述用户选择的所述第二类型信息资源的一个侧面下的一个元数据相组合,以形成一个新的用于第二类型信息资源的查询;

所述赋值装置还用于将所述新的用于第二类型信息资源的查询作为当前用于第二类型信息资源的查询,以又一次获取和返回关于所述第二类型信息资源的查询结果和所述第二类型信息资源的一个或多个侧面和每个侧面下的元数据。

10.根据权利要求9所述的设备,其中:

所述判定装置还用于判定又一次返回的关于所述第二类型信息资源的查询结果是用户所希望的查询结果;

所述组合装置还用于将当前用于第一类型信息资源的查询和导致又一次返回的当前用于第二类型信息资源的查询相组合,以形成一个新的用于第一类型信息资源的查询;以及所述赋值装置还用于将所述新的用于第一类型信息资源的查询作为当前用于第一类型信息资源的查询,以又一次获取和返回关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与除了所述第二类型信息资源之外的其他类型信息资源的关系。

说明书 :

用于信息资源搜索的方法和设备

技术领域

[0001] 本发明涉及信息技术领域。更具体地说,本发明涉及用于信息资源搜索的方法和设备。

背景技术

[0002] 传统的基于文本的搜索被广泛用于信息资源(例如图书、汽车、单位等)的搜索。然而,用户搜索所使用的关键字有可能与描述信息资源的数据不匹配,尽管它们可能具有相同的含义。这样,用户必须猜测相应的关键字,才能搜索到所需要的结果。
[0003] 分层次导航以类似树的结构组织信息资源,帮助用户对特定的信息资源进行导航。在网站http://dir.yahoo.com/中,就是以上述的类似树的结构组织信息资源的。然而,用户对于信息资源可以怎样被分层次组织可能具有不同的观点。因此,用户对所提供的层次可能并不容易适应,因此在检索时有可能走向死胡同。
[0004] 最近,提出了一种称为侧面搜索的方案,用来搜索或导航信息资源。例如,专利US7146362B2公开了一种通过向用户显示信息资源的各个侧面和每个侧面下的元数据,来帮助用户导航信息资源的方案。这里,通过参考将该专利引入本申请。
[0005] 在这种侧面搜索(facet search)方案中,侧面搜索引擎自动地向用户显示信息资源的各个侧面(facet)和每个侧面下的元数据,便于用户更进一步地细化当前查询,并且向用户提供关于信息资源的整体描述。这有助于用户更好地理解信息资源,并更好地细化其查询来搜索到用户所需要的结果。
[0006] 例如,当搜索图书时,侧面搜索引擎可能显示图书的主题、作者、出版时间、出版社等图书的侧面和在这些侧面的每一个下的元数据。通过这些元数据,用户可以细化其查询。例如,用户可以选择侧面搜索引擎显示的关于作者这一侧面的元数据(例如作者姓名)来寻找由该作者所著的所有图书。
[0007] 然而,目前,标准侧面搜索不能很好地解决跨越不同类型的信息资源的搜索。例如,考虑如下的搜索:“由年龄小于30岁的亚洲作者所著的图书”。关系“由谁所著”连接两种不同类型的信息资源:图书和作者。侧面搜索引擎将显示图书的侧面(例如主题、作者、出版社、价格等)以及每个侧面下的元数据,但不显示作者的侧面(例如年龄、国籍等)及每个侧面下的元数据。因此,用户不能使用这些关于作者的侧面的元数据来搜索所需要的图书。
[0008] 有人可能会想到可以将作者的侧面作为图书的侧面来对待,从而使得用户能够使用关于作者的侧面的元数据来搜索图书。这是不太实际的。
[0009] 例如考虑如下的搜索:“由为位于美国的公营单位工作的年龄小于30岁的作者所著的图书”。
[0010] 在图1中所示的一种实现中,将其他类型的信息资源的侧面作为图书的侧面,例如,将作者的侧面(国籍、年龄等)和单位的侧面(类型、行业、住所等)看作为图书的侧面。因此,如图1中所示,在该实现中,包括出版社侧面、作者的国籍侧面、作者的年龄侧面、作者所工作的单位的类型侧面、出版时间侧面、作者所工作的单位的行业侧面、作者所工作的单位的住所侧面、以及价格侧面。
[0011] 该实现实际上枚举了经由关系(一个或多个)连接到图书的一些可能类型的信息资源的一部分可能侧面。
[0012] 上述实现是不可扩展的。所增加的侧面的数目的最大值等于通过关系(一个或多个)与当前类型的信息资源连接的所有其他类型的信息资源的所有可能侧面的数目。
[0013] 例如,在上面的实现中,如果考虑“由谁所出版”关系,则在图1中还应当包括图2所示的关于出版社的各个侧面,即出版社的类型侧面、出版社的住所所在地侧面、出版社所出版的图书所属于的行业侧面等。
[0014] 当查询变得越来越复杂的时候,也就是说,当用许多关系连接各种类型的信息资源时,增加的侧面的数目将是巨大的。当面对这样巨大数目的侧面时,用户将变得迷茫。此外,由于不能提前知道用户感兴趣的是哪个关系,例如,是“由谁所出版”关系还是“由谁所著”关系,因此,很难减少侧面的数目。
[0015] 另外,在上述情况中,还有人可能会想到,可以将作者的侧面作为作者的元数据来对待。更具体地,将作者的侧面和与作者用关系连接的其他类型的信息资源(例如单位)的侧面都作为作者的元数据来对待。这也是不太实际的,当查询变得越来越复杂的时候,作者这个侧面也将非常复杂。
[0016] 因此,需要一种有效地组合各个信息资源的侧面以使用户能够方便地进行信息资源的搜索或导航的方法和设备。

发明内容

[0017] 本发明的一个目的是提供一种用于信息资源的搜索的方法和设备,利用该方法和设备,用户能够容易地搜索到所需要的相关信息。
[0018] 根据本发明的一个方面,提出了一种用于信息资源的搜索的方法,包括步骤:根据当前用于第一类型信息资源的查询,获取关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系;以及将上述获取的关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系返回给用户。
[0019] 根据本发明的另一个方面,提出了一种用于信息资源的搜索的设备,包括获取装置,用于根据当前用于第一类型信息资源的查询,获取关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系;以及返回装置,用于将上述获取的关于所述第一类型信息资源的查询结果、所述第一类型信息资源的一个或多个侧面和每个侧面下的元数据、以及所述第一类型信息资源与至少包括第二类型信息资源的其他类型信息资源的关系返回给用户。
[0020] 根据本发明,用户能够以一种简单的方式,进行复杂的信息资源的搜索/导航。

附图说明

[0021] 通过以下结合附图的说明,并且随着对本发明的更全面了解,本发明的其他目的和效果将变得更加清楚和易于理解,其中:
[0022] 图1示出了对于跨越不同类型的信息资源的搜索,可能采取的一种不可扩展的实现;
[0023] 图2示出了根据图1中的上述实现,如果再考虑一个关系,需要在图1中再包括的侧面;
[0024] 图3示出了本发明可以在其中实现的系统300;
[0025] 图4示出了在客户端上显示的一个窗口;
[0026] 图5示出了在客户端上显示的两层窗口;
[0027] 图6示出了在客户端上显示的三层窗口;
[0028] 图7是在服务器上执行的用于信息资源的搜索的方法的流程图;
[0029] 图8示出了一个数据库的表模式的设计。
[0030] 在所有的上述附图中,相同的标号表示具有相同、相似或相应的特征或功能。

具体实施方式

[0031] 以下,结合具体的实施方式来描述本发明。
[0032] 图3示出了本发明可以在其中实现的系统300。如图3所示,该系统300包括一个服务器310、一个客户端320和一个网络330。服务器310、客户端320可以是膝上型计算机、小型机、或中型机等等。并且,服务器310经由链路312连接到网络330;客户端320经由链路322连接到网络330。链路312、322可以是有线链路,诸如同轴电缆、光纤等,也可以是无线链路,诸如卫星链路等。同样地,网络330可以是无线网、有线网或它们的组合。另外,网络330可以是局域网、城域网、广域网。例如,网络330是因特网。
[0033] 当然,本领域的技术人员应该理解,在网络330上还可以连接有其他的客户端和/或服务器。并且,为了能够彼此识别,客户端和服务器可以具有可以唯一地识别它们的标识,例如IP地址、统一资源定位符(URL)等。
[0034] 另外,在客户端320上安装有客户端应用,而在服务器310上,具有搜索引擎。
[0035] 以下,将在客户端320和服务器310,更具体地说,是在客户端应用和搜索引擎这两个方面来分别描述本发明。用户进行搜索的目标信息资源可以被一个固定的数据模型或模式(schema)限制,所述固定的数据模型或模式例如可以是数据库模式或UML(统一建模语言)模型。
[0036] 例如,一个给定类型的信息资源具有固定数目的属性(即侧面)、以及具有到其他类型信息资源的固定可能关系。然而,目标信息资源也可以不由固定的数据模型或模式限制。例如,目标信息资源是遵循W3C RDF和OWL规范(Graham Klyne and Jeremy Carroll,editors,Resource Description Framework(RDF):Concepts and AbstractSyntax,W3C Recommendation,Feb.10,2004;Peter F.Patel-Schneider,Patrick Hayes and Ian Horrocks,editors,OWL Web Ontology LanguageSemantics and Abstract Syntax,W3C Recommendation,Feb.10,2004)的数据集,其中信息资源可以具有任意的属性,并且与任意其他信息资源具有任意关系。
[0037] 在客户端上发生的交互
[0038] 现在描述发生在客户端320上的交互。
[0039] 当用户需要搜索某个信息资源时,他会在客户端320打开一个客户端应用,并在该客户端应用中输入所希望进行搜索的某个信息资源,来访问在服务器310上的搜索引擎。
[0040] 在用户在该客户端应用中输入他想进行搜索的信息资源(第一类型信息资源),例如“图书”,并点击了该客户端应用上的“搜索”按钮后,在客户端320中将生成一个新的窗口400,如图4所示。
[0041] 如图4所示,在窗口400中显示的不仅仅包括搜索得到的结果(结果栏410),还包括关于图书这类信息资源的当前搜索结果的可应用的侧面:出版社、出版时间、价格以及在这些侧面下的元数据。最主要地,还包括图书这类信息资源的当前搜索结果可以与其他类型的信息资源进行连接的关系。在这里,该关系包括:“由谁所著”、“在哪里卖”,也就是说,在这里,上述其他类型的信息资源包括作者、书店等。
[0042] 另外,在图4中,在一些侧面下,例如在价格这个侧面下,元数据可以是数值范围。
[0043] 另外,需要说明的是,在每个侧面下的元数据的右边的括号中的数字表示在该元数据下这类信息资源的数目。例如满足当前搜索条件并且是由Springer这个出版社出版的图书有200种。
[0044] 另外,所有侧面的元数据和关系以某种方式突出(例如不同的颜色)并且是可点击的。
[0045] 当用户在客户端320上看到如图4所示的窗口400后,他可以通过点击鼠标来选择某个侧面的元数据或选择关系。
[0046] 例如,如果用户希望搜索关于Springer这个出版社所出版的图书,他可以点击在出版社侧面下的Springer这个元数据。此后,如图4所示的窗口发生变化。更具体地,图4中的结果栏410中显示的内容发生变化,所显示的是由Springer这个出版社所出版的图书的名称。另外,侧面栏420中显示的侧面也发生变化,例如不再显示出版社这个侧面,并且其他侧面下的元数据,例如出版时间侧面下的元数据也发生变化。这里出于简单的目的,在结果栏中只是示出了图书的名称,本领域的技术人员应当理解,在结果栏中也可以显示图书的其他元数据,例如价格、出版时间等等。
[0047] 然而,如果用户希望搜索由某个特定作者(第二类型信息资源)所著的图书,则他可以点击“由谁所著”这个关系。
[0048] 在用户在如图4所示的侧面栏420中点击“由谁所著”这个关系后,将产生一个新的窗口,如图5下部的窗口500所示。
[0049] 在窗口500中,示出了窗口400中搜索出的图书的作者(在右边的结果栏510中),以及这些作者的可应用的侧面:国籍、年龄等、在这些侧面下的元数据、以及最主要地,还包括作者这类信息资源可以与其他类型的信息资源进行连接的关系(如侧面栏520所示)。在这里,关系包括:“为谁工作”,也就是说,在这里,上述其他类型的信息资源包括单位。
[0050] 此时,不但在图5中的窗口500的侧面栏520中,所有侧面的元数据和关系以某种方式突出(例如不同的颜色)并且它们是可点击的,而且连结果栏510中的作者的姓名也以某种方式突出(例如不同的颜色)并且它们是可点击的。
[0051] 用户可以在图5中的窗口500的侧面栏520中进行关于作者的标准侧面搜索。例如,如果用户希望搜索国籍是美国的作者,他可以点击在国籍侧面下的美国这个元数据。此后,图5中的窗口500中的结果栏510中显示的内容发生变化,只显示国籍是美国的作者的姓名。另外,窗口500中的侧面栏520中显示的内容也发生变化,例如不再显示国籍这个侧面,并且其他侧面下的元数据,例如年龄侧面下的元数据也发生变化。
[0052] 然而,如果用户希望搜索为某个特定单位(第三类型信息资源)工作的作者,他可以点击“为谁工作”这个关系。
[0053] 在用户在窗口500中的侧面栏520中点击“为谁工作”这个关系后,将产生一个新的窗口600,如图6的最下面的那个窗口所示。
[0054] 在窗口600中,示出了窗口500中搜索出的作者的工作单位名称(如结果栏610所示),以及单位的可应用的侧面:住所、行业、类型等、在这些侧面下的元数据(如侧面栏620所示)。在该实施方式中,单位这类信息资源没有与其他类型的信息资源连接的关系。
[0055] 此时,在窗口600中,不但结果栏620中的所有侧面的元数据以某种方式突出(例如不同的颜色)并且它们是可点击的,而且连侧面栏610中的单位名称也以某种方式突出(例如不同的颜色)并且它们是可点击的。
[0056] 用户可以在侧面栏620中进行关于单位的标准侧面搜索。例如,如果用户希望搜索住所在美国的单位,他可以点击在住所侧面下的“美国”这个元数据。此后,窗口600中的结果栏610中显示的内容发生变化,其只显示住所在美国的单位名称。另外,在侧面栏620中的侧面也发生变化,例如不再显示“住所”这个侧面,并且其他侧面下的元数据,例如行业侧面下的元数据也发生变化。
[0057] 当用户对一个窗口的结果满意时,可以简单地关闭该窗口。当关闭该窗口后,该窗口的上一层窗口中的结果栏(例如结果栏410、510)中显示的内容发生变化,只显示与用户在该关闭的窗口中选择的某个侧面下的元数据相对应的结果。
[0058] 例如,如果用户希望搜索的是其单位的住所是在美国的作者所著的图书,并且用户在图6所示的窗口620中点击了“住所”侧面下的“美国”这个元数据后,关闭了在图6中所示的窗口600。此后,图6中所示的窗口600上方的窗口500中的结果栏510中的内容发生变化,其只显示那些其工作单位的住所是在美国的那些作者的姓名。
[0059] 同样,在关闭窗口500之后,窗口500上面的窗口400中的结果栏410中所显示的内容也将发生变化,其只显示了那些其工作单位的住所是在美国的那些作者所著的图书的书名。
[0060] 在本发明的一个实施方式中,在一个窗口被关闭之前,用户不能操作该窗口的上一级窗口。更具体地,参考图6,在窗口600被关闭之前,用户不能操作窗口500。同样,在窗口500被关闭之前,用户不能操作窗口400。在大多数视窗操作系统中,这可以通过在创建新窗口时指定窗口类型为child modal window或类似类型来实现。
[0061] 可以通过点击各个窗口中的“OK”按钮(未示出)来关闭各个窗口。也可以点击窗口标题栏中的X型关闭按钮来关闭窗口。本领域的技术人员应当理解,关闭窗口有多种可能的实现。
[0062] 当然,在本发明的实施方式中,在关闭一个窗口,并且其上一层显示的内容发生变化之后,用户还可以在该上一层窗口的侧面栏中进行标准侧面搜索,即例如用鼠标点击年龄侧面下的元数据。
[0063] 在服务器上执行的步骤。
[0064] 图7示出了由服务器310,更具体地说,由服务器310中的搜索引擎执行的步骤。
[0065] 首先,在步骤S701,搜索引擎根据用户的当前查询,获取该查询的结果。
[0066] 接下来,在步骤S702,搜索引擎获取可以向用户建议的可应用的侧面,以及在每个侧面下的元数据。
[0067] 接下来,在步骤S703,搜索引擎获取可以向用户建议的可应用的关系。
[0068] 接下来,在步骤S704,搜索引擎向客户端320,更具体地说,向客户端320上的客户端应用,返回在步骤S701获取的该查询的结果、在步骤S702获取的可应用的侧面和在每个侧面下的元数据、以及在步骤S703获取的可应用的关系。
[0069] 然后,在步骤S705,搜索引擎判断用户是否对在步骤S704提供的信息满意。例如,当用户点击了窗口中的“OK”按钮,那么搜索引擎判断用户对在步骤S704提供的信息满意。而当用户点击了在步骤S704提供的可应用的侧面下的元数据或可应用的关系后,则判断用户不满意。
[0070] 接下来,在步骤S706,搜索引擎判断用户选择(点击)的是一个侧面下的元数据还是关系。
[0071] 当判断出用户选择的是元数据时,流程进行到步骤S710。在该步骤,搜索引擎将用户选择的某个侧面下的元数据这样的一个限制与在步骤S701接收的当前查询组合,来形成一个新的查询。并且,在步骤S711,将该新的查询作为当前查询。然后,流程返回到步骤S701。
[0072] 当判断出用户选择的是一个关系时,流程进行到步骤S707。在该步骤,搜索引擎构造这样的一个新查询,该新查询将导致获取的信息包括所选择的该关系的另一端的某种类型的信息资源的信息,具体包括该种类型的信息资源的侧面和每个侧面下的元数据、以及最主要地,这种类型的信息资源可以与其他类型的信息资源进行连接的关系。并且,该新查询基于在步骤S701中所述的那个当前查询,如下面将描述的。然后,在步骤S708,使用该新查询来递归地调用图7中描述的步骤,包括前面描述的步骤和后面将描述的步骤。在这里,用XFACETED QUERY来表示在图7中所示的所有步骤。
[0073] 递归调用退出的条件是判断出用户对提供的信息感到满意,并因此点击了一个窗口中的“OK”按钮来选择关闭该窗口。
[0074] 在递归调用退出后,在步骤S709,搜索引擎将当前查询与导致递归步骤S708中返回的结果的查询相组合,形成一个新的查询。并且,在步骤S711,将该新的查询作为当前查询。然后,流程返回到步骤S701。
[0075] 这里,返回不但指整个搜索过程结束,也指递归调用退出。更具体地,当用户对返回的信息感到满意,并用鼠标点击了窗口上的“OK”按钮后,或者整个搜索过程结束,或者一级递归调用退出。
[0076] 上述步骤可以分别由执行相应步骤的装置执行,例如,可以由获取装置获取查询结果、可应用的侧面和侧面下的元数据、可应用的关系;可以由返回装置返回获取的该查询的结果、获取的可应用的侧面和在每个侧面下的元数据、以及获取的可应用的关系;由判定装置判定用户选择的是元数据还是关系还是对结果满意;由组合装置将当前查询与用户选择的元数据或结果进行组合构成新的查询;由赋值装置将新的查询作为当前查询;由构造装置构造一个获取在选择的关系的另一端的某种类型的信息资源的信息的新查询等等。
[0077] 以下,将分开地描述当目标信息资源由一个固定的数据模型或模式限制时搜索引擎对于上述步骤的具体实现和当目标信息资源不受一个固定的数据模型或模式限制时搜索引擎对于上述步骤的具体实现。
[0078] 具有数据模型或模式限制
[0079] 在这种情况下,每种类型的信息资源具有固定数目的属性(侧面)和关系。这里我们使用数据库模式和SQL作为例子。当然,本领域的技术人员应当理解,其他的模型或模式(例如UML模型、XML模式)和其他的语言也是可以的。还应该注意下面的实现只是一个简单易懂的例子而不是最优化的。基于这里所公开的,本领域的技术人员完全可以开发更优的实现。
[0080] 仍然使用图书、作者和单位的例子,可以有如图8所示的数据库模式来定义和存储关于图书(BOOK)、作者(AUTHOR)、和单位(COMPANY)的信息。
[0081] 每种类型的信息资源存储在一个表(T)中。表中的一行代表该种类型的信息资源的一个实例。信息资源的属性值(侧面元数据)以值的方式存储在表的列中,并且关系以指向其他类型的信息资源的外部键的方式存储在表的列中。数据库模式定义了一种信息资源可以具有多少可能的属性(侧面)和与其他类型的信息资源的关系。如果该种类型的信息资源的某个特定实例没有某一方面的属性或关系,则在该实例的该方面的属性或关系列下的值为NULL值。
[0082] 如前所述,当用户需要搜索某个信息资源时,他通过在客户端320打开一个客户端应用,在该客户端应用中输入他希望进行搜索的某个信息资源,并点击该客户端应用上的“搜索”按钮,来访问在服务器310上的搜索引擎。
[0083] 这里,假定用户在该客户端应用中输入的他想进行搜索的信息资源是“图书”。
[0084] 对于步骤S701,搜索引擎构造从该类型的信息资源中选择出所有信息资源实例的ID的SQL语句S,例如S=“SELECT id FROMBOOK”。然后,搜索引擎执行该SQL语句S,以获取最初的结果。
[0085] 对于步骤S702,假定可以通过某种方法,例如,通过读取存储当前类型的信息资源的所有预定义的侧面定义的文件,每个侧面定义包括侧面名称和在该侧面下的元数据,或者通过将每个属性作为侧面,并扫描在属性列中的所有值,来获取可应用的侧面和在每个侧面下的元数据。例如,价格和出版时间是图书的侧面,它们来自数据库中的BOOK表格的“价格”和“出版时间”属性列。对于价格侧面,其元数据是数值范围,例如“小于30”、“在30到70之间”、以及“大于70”。
[0086] 对于步骤S703,由于数据模型是固定的,可以提前知道当前类型的信息资源的所有可能关系,即在表中的所有外部键列。可以将所有这些可能关系建议给用户。优选地是,将对于当前查询S没有NULL值的那些关系建议给用户。也就是说,如果下面的查询:
[0087] SELECT count(id)FROM T
[0088] WHERE REL!=NULL AND id in(S)
[0089] 返回非零的计数,则向用户建议关系REL。
[0090] 对于步骤S704,因为如上所述,当前的查询S是选择用户感兴趣的信息资源的ID,这不太直观。可以获取一个或多个该类信息资源的比较形象的属性值(例如名称)来作为查询结果。例如,可以使用如下的查询:
[0091] SELECT name FROMT
[0092] WHERE id in(S)
[0093] 来选择信息资源的名称作为查询结果。
[0094] 如上所述,在该步骤,也向用户显示可应用的侧面和每个侧面下的元数据、以及关系。
[0095] 对于步骤S710,搜索引擎将用户选择的侧面元数据限制与当前查询S相组合,以形成一个新的查询S’。这里,侧面元数据限制可以是对属性列的值范围限制(例如大于、等于、小于)。可以将新的限制添加到查询S的WHERE子句(如果没有WHERE子句,增加一个WHERE子句)。假定当前查询S是如下的形式:
[0096] SELECT...FROM...WHERE...
[0097] 那么新的查询S’将是:
[0098] SELECT...FROM...WHERE...AND new_constraint
[0099] 该步骤也是标准侧面搜索中的一个步骤。
[0100] 作为一个例子,假定用户在当前的查询S:
[0101] SELECT id FROM BOOK
[0102] 下选择价格侧面下的“小于30”这个元数据限制,那么新的查询S’为:
[0103] SELECT id FROM BOOK WHERE Price<30
[0104] 在用户选择了出版时间侧面下的“在1980年之前”这个元数据限制之后,查询进一步改变成:
[0105] SELECT id FROM BOOK WHERE Price<30AND PubY<1980
[0106] 对于步骤S707,给定当前查询S和用户选择的关系REL,其中该关系与表T’相关联,搜索引擎将构造如下的新查询S′,该新查询将导致获取在表T’中的并经由REL与S连接的信息资源实例:
[0107] SELECT T’.id FROM T,T’
[0108] WHERE T’.id=T.REL AND T.id in(S)
[0109] 例如,当前查询S为:
[0110] SELECT id FROM B OOK WHERE Price<30
[0111] 当用户选择了“由谁所著”关系后,新的查询S’变成:
[0112] SELECT AUTHOR.id FROM BOOK,AUTHOR
[0113] WHERE AUTHOR.id=BOOK.AuthoredBy AND
[0114] BOOK.id in(SELECT id FROM BOOK WHERE Price<30)
[0115] 对于步骤S708,用在步骤S707构造得到的新的查询S’作为输入,递归调用XFACTED QUERY。
[0116] 对于步骤S709,根据当前查询S,用户选择的关系REL,以及从步骤S708返回的结果R,搜索引擎将构造一个使用R来进一步限制S的新查询S’。
[0117] 假定S是:
[0118] SELECT T.id FROM...WHERE...
[0119] 那么S’将是:
[0120] SELECT T.id FROM...WHERE...AND T.REL in(R)
[0121] 作为例子,假定当前查询S是:
[0122] SELECT id FROM B OOK WHERE Price<30
[0123] 从步骤S708返回的结果R是如下查询的结果:
[0124] SELECT AUTHOR.id FROM B OOK,AUTHOR
[0125] WHERE AUTHOR.id=BOOK.AuthoredBy AND BOOK.id in(SELECT id FROM BOOK WHERE Price<30)AND Age<30
[0126] 那么S’为:
[0127] SELECT id FROM BOOK WHERE Price<30AND AuthoredBy in
[0128] (
[0129] SELECT AUTHOR.id FROM BOOK,AUTHOR
[0130] WHERE AUTHOR.id=BOOK.AuthoredBy AND BOOK.id in
[0131] (SELECT id FROM BOOK WHERE Price<30)AND Age<30
[0132] )
[0133] 对于步骤S711,搜索引擎简单地用在步骤S709或在步骤S710构造的新的查询来代替当前查询,即使得S=S’。
[0134] 没有数据模型或模式的限制
[0135] 假定由用户导航或搜索的目标信息资源不被一个固定的数据模型或模式所限制。一种类型的信息资源可以具有任何的属性和关系。所有的信息资源可以看作是一个网络,其中网络中的节点为信息资源,而网络的边为两种信息资源之间的关系。
[0136] 这里,我们使用以RDF(资源描述框架)格式的数据集和SPARQL(Simple Protocol and RDF Query Language)查询语言(EricPrud′hommeaux and Andy Seaborne,SPARQL query language for RDF,W3C Working Draft,Oct.,2006)作为例子。在RDF中,每个信息资源由URI识别。这里,使用例如ex:Book的缩写来写URI(统一资源标识符)。
[0137] 这里,假定用户希望搜索所有的图书。因此,对于步骤S701,搜索引擎执行如下的SPARQL S:
[0138] SELECT?b WHERE{?b rdf:type ex:Book}
[0139] 对于步骤S702,假定可以通过某种方法,例如,通过读取存储当前类型的信息资源的所有预定义的侧面定义的文件(每个侧面定义包括侧面名称和在该侧面下的元数据)来获取可应用的侧面和在每个侧面下的元数据。
[0140] 对于步骤S703,可以基于当前查询S,来构造一个SPARQL查询,该查询用来获取对于当前类型的信息资源可应用的关系。
[0141] 如果当前查询S是:
[0142] SELECT?x WHERE{...}
[0143] 那么用来获取上述可应用的关系的查询为:
[0144] SELECT?p WHERE{?x?p?z.?p rdf:typeowl:ObjectProperty....}[0145] 其中?z是不在S中的变量。
[0146] 例如,如果当前查询S是:
[0147] SELECT?b WHERE{?b rdf:type ex:Book}
[0148] 那么用来获取上述可应用的关系的查询为:
[0149] SELECT?p
[0150] WHERE
[0151] {?b?p?z.?p rdf:type owl:ObjectProperty.?b rdf:type ex:Book}[0152] 对于步骤S704,当前的查询S的结果有可能不太直观。可以获取一个或多个该类信息资源的比较形象的属性值(例如名称)来作为查询结果。
[0153] 由于当前查询S是:
[0154] SELECT?x WHERE{...}
[0155] 可以基于这个查询来构造一个新的查询,该新查询用于获取?x:的某个属性(例如ex:attr)的值:
[0156] SELECT?v WHERE{?x ex:attr?v....}
[0157] 例如,如果当前查询S为:
[0158] SELECT?b WHERE{?b rdf:type ex:Book}
[0159] 那么可以使用如下的查询:
[0160] SELECT?v WHERE{?b dc:title?v.?b rdf:type ex:Book}
[0161] 来获取用户感兴趣的图书的名称。
[0162] 如上所述,在该步骤,也向用户显示可应用的侧面和每个侧面下的元数据、以及关系。
[0163] 对于步骤S710,搜索引擎将用户选择的侧面元数据限制与当前查询S相组合,以形成一个新的查询S’。可以将新的限制添加到查询S的WHERE子句。假定当前查询S是如下的形式:
[0164] SELECT?x WHERE{...}
[0165] 那么新的查询S’可以是:
[0166] SELECT?x WHERE{?x ex:attr?v.Q....}
[0167] 其中侧面元数据限制包括属性ex:attr和SPARQL查询条件Q。
[0168] 其中?v不是在S中的变量,以及在Q中的变量必须被?v代替。
[0169] 例如,假定用户在当前S:
[0170] SELECT?x WHERE{?x rdf:type ex:Book}
[0171] 下选择了价格侧面的元数据“<30”,
[0172] 那么S’为:
[0173] SELECT?x
[0174] WHERE{?x ex:price?v.FILTER(?v<30).?x rdf:type ex:Book}
[0175] 在用户选择了出版时间侧面的元数据“<1980”后,查询进一步改变到:
[0176] SELECT?x
[0177] WHERE{?x ex:publication-year?w.FILTER(?w<1980).
[0178] ?x ex:price?v.FILTER(?v<30).
[0179] ?x rdf:type ex:Book}
[0180] 对于步骤S707,给定当前查询S和用户选择的关系ex:p,搜索引擎将构造如下的新查询S′,该新查询将导致获取经由ex:p与S连接的信息资源实例。
[0181] 由于当前查询S为:
[0182] SELECT?x WHERE{...}
[0183] 则新查询S可以构造成:
[0184] SELECT?y WHERE{?x ex:p?y....}
[0185] 例如,如果当前查询S为:
[0186] SELECT?x
[0187] WHERE{?x ex:price?v.FILTER(?v<30).?x rdf:type ex:Book}
[0188] 并且用户选择ex:authoredBy关系,
[0189] 那么新查询S’为:
[0190] SELECT?y
[0191] WHERE{?x ex:authoredBy?y.
[0192] ?x ex:price?v.FILTER(?v<30).
[0193] ?x rdf:type ex:Book}
[0194] 对于步骤S708,用在步骤S707构造得到的新的查询S’作为输入,递归调用XFACTED QUERY。
[0195] 对于步骤S709,根据当前查询S,用户选择的关系ex:p,以及从步骤S708返回的结果R,搜索引擎将构造一个使用R来进一步限制S的新查询S’。
[0196] 例如,如果S为:
[0197] SELECT ?x WHERE{X-CONDITIONS}
[0198] R为
[0199] SELECT ?y WHERE{Y-CONDITIONS}
[0200] 则新的查询S’为:
[0201] SELECT ?x
[0202] WHERE{?x ex:p ?y.X-CONDITIONS.Y-CONDITIONS}
[0203] 在Y-CONDITIONS中的变量如果也出现在X-CONDITIONS中,则在Y-CONDITIONS中的变量需要重新命名。
[0204] 例如,如果S是:
[0205] SELECT ?x
[0206] WHERE{?x ex:price ?v.FILTER(?v<30).?x rdf:type ex:Book}[0207] R是:
[0208] SELECT ?y
[0209] WHERE{?y ex:age ?v.FILTER(?v<30).
[0210] ?x ex:authoredBy?y.
[0211] ?x ex:price ?v.FILTER(?v<30).
[0212] ?x rdf:type ex:Book}
[0213] 那么新查询S’是:
[0214] SELECT ?x
[0215] WHERE{?x ex:authoredBy?y.
[0216] ?x ex:price ?v.FILTER(?v<30).
[0217] ?x rdf:type ex:Book.
[0218] ?y ex:age ?w.FILTER(?w<30)}
[0219] 对于步骤S711,搜索引擎简单地用在步骤S709或在步骤S710构造的新的查询来代替当前查询,即使得S=S’。
[0220] 需要说明的是,本发明不但适用于信息搜索的情况,也适用于信息导航的情况。
[0221] 应当注意,为了使本发明更容易理解,上面的描述省略了对于本领域的技术人员来说是公知的、并且对于本发明的实现可能是必需的更具体的一些技术细节。
[0222] 提供本发明的说明书的目的是为了说明和描述,而不是用来穷举或将本发明限制为所公开的形式。对本领域的普通技术人员而言,许多修改和变更都是显而易见的。
[0223] 因此,选择并描述实施方式是为了更好地解释本发明的原理及其实际应用,并使本领域普通技术人员明白,在不脱离本发明实质的前提下,所有修改和变更均落入由权利要求所限定的本发明的保护范围之内。