自动查询群集的制作方法

文档序号:6536095阅读:333来源:国知局
专利名称:自动查询群集的制作方法
技术领域
本发明总体上涉及计算机系统,更具体而言,涉及一种通过分析与各种属性集群相关联的项分布来自动将信息项编组成项的更小子集的系统和方法。
背景技术
基于数据库的操作系统的一个关键方面就是通过执行可能包含许多项属性的查询快速查找期望的项的能力。应当将这个能力与先前的系统相比较,所述先前的系统例如需要对文件夹分层结构内的文件位置的认知以便检索期望的信息。虽然查询解决方案是非常有效的,但是更新的系统的成功总体上取决于创建允许查询对普通的用户而言变得简单而直观的用户接口(UI)的能力。在其固有的形式中,数据库查询(例如,用T-SQL语言来表示)让专业程序设计员难以处理并且通常不适合于终端用户。
查询问题的一种解决方案就是显露提供对一些数目的预定义查询直接访问的用户接口命令。例如,可以提供预定义查询以便查找盘(相片库)上的所有图片文件或所有未经阅读的电子邮件。此外,系统可以按某种方式建议分组结果,例如,可以根据拍摄的日期自动将相片放进组中。预定义查询的这种模式对于许多常见的情况都是有用的,但是对于开启数据库的最大能力来说一般是不够的。利用相片示例,可能恰巧所有相片都是在同一天拍摄的(或者,可能没有设定照相机时钟),而在这样情况下按日期进行分组是没有用的。当处理第三方属性(应用定义的、管理员定义的或用户定义的)时这种情况甚至更糟。由于这些属性对于操作系统的创建来说是不为人所知的,因而为属性设计预定义查询可能几乎是不可能的。
别一种解决方案就是给用户提供具有文本查询的查询数据库的能力,所述文本查询显得像自然语言。从数据库的角度来看,这类查询可能一般是足够的并且易于让用户理解的。然而,如果允许能够充分采取自由形式的自然语言查询,那么就难以创建会在每一种情况下都正确理解用户意图的解析器。如果强加一些语法限制,则对于用户而言就变得更加难以形成能够时常围绕大量表达式进行工作的句法上正确的查询。不论是哪一种情况,都需要键入查询文本的非常想法也许不是许多用户所呼吁的。少数小孩、非英语用户和键盘较小的装置(例如,便笺式PC)的用户可能全都有文本键入的问题。由此,需要一种具有用于查找和检索信息的点击简单性的查询界面。

发明内容
为了提供对本发明的一些方面的基本理解,下面展示了简单化的发明内容。这些内容不是本发明的宽泛概述。并不意在确定本发明的关键/至关重要的元件或描绘本发明的范围。其唯一目的就在于以简化形式来展示本发明的一些概念,以作为稍后展示的更详细说明的前奏。
本发明涉及将期望的信息自动检索和显示到易管理的信息集群的子集中。在文件系统用户接口中,比如通过将项显示成列表来导航大的项集合,当试图从这类列表中查找和检索期望的信息时,这变得有问题。本发明提供了一种改进的点击接口,所述点击接口便于导航按照项的相关属性而分类的大的项集合。按照这些属性群集的项能够以类似文件夹的方式呈现(或其它的显示类型),借此可以通过不同的或后续的属性来执行自动群集化以便将查询结果拆分或编组成易管理的集群的子集。可以选择这些子集来检索期望的信息或执行其它的群集程序(例如,嵌套的群集化)。群集的最佳属性能够通过分析各种属性集群中的项分布来确定。
本发明的一个方面提供了群集化属性的自动选择。为了确定这类属性,一个问题可以陈述如下假定项的起始集合以及一组能用于编组的项属性,与项集合相关联的哪一个属性提供了最佳群集的结果?通过最佳群集的结果,本发明试图提供将结果统一编组成适度的集群数目。由此,为了高效地查找和检索期望的信息,当存在只有少数几个具有许多项的集群时的情况或当存在每个集群中只有少数几个项的许多集群时的情况典型地不是人们希望的。
上述问题能够通过给每个项属性分配群集化分数并且选择具有最高分的属性来解决。群集化分数能够通过将每个集群中的项的数目彼此相乘来计算。对于N个项而言,当把所述项分成√N个集群时,将群集化分数计算为集群尺寸的乘积的函数具有它的最大值,各个集群都具有√N个项。对于其它分布而言,利用所述分数来测算并比较所述分布离理想分布还差多远。可选分数函数的一个示例例如可以是以二项式分布为基础的。对于这些典型分布而言,所述分数值具有提供能够把N_total个项分成指定尺寸的集群的许多方式的统计解释。对于用户而言具有大多数值的群集化就是调节相间分布的最大数目的一种群集化。为了比较能用于后续群集化的不同属性,能够为所有的属性计算群集化分数,其中可以利用项列表的单次遍历来容易地执行这种计算。
为了实现上述目的和相关的目的,在此结合下列说明和附图描述了本发明的某些说明性的方面。这些方面表现出了各种方式,以所述各种方式可以实施本发明,所有这些方式都意在为本发明所涵盖。当结合附图考虑时,通过下列发明详述,本发明的其它优点和新颖性特征可以变得明显。
附图简要说明

图1是依照本发明一个方面的群集系统的示意性框图。
图2是举例说明依照本发明一个方面的自动查询群集过程的流程图。
图3-10举例说明依照本发明一个方面的用于自动查询群集的示例性用户接口。
图11是举例说明依照本发明一个方面的适当操作环境的示意性框图。
图12是本发明能与之交互的样本计算环境的示意性框图。
发明详述本发明涉及一种用于本地或远程数据库系统中的数据项的自动群集化和显示的系统和方法。这种群集化能够以与诸如类型、位置、人、日期、时间、用户定义等等之类的数据项相关联的属性为基础,其中可以采用初始属性来形成群集化的第一层,并且可以自动确定后续属性以形成从中查找和检索期望的信息的优化群集化。在一个方面,提供了一种用于编组和检索数据的计算机化接口。所述接口包括用于为至少两个集群属性确定项分布的属性分析器,还包括部分地根据项分布来形成新集群的编组器。
正如在本申请中使用的那样,术语″组件″、″分析器″、″集群″、″系统″等等都是用来指代与计算机有关的实体,或者是硬件、硬件和软件的组合、软件,或者是正在执行的软件。例如,组件可以是但不限于运行在处理器上的进程、处理器、对象、可执行的、执行的线程、程序和/或计算机。通过举例说明的方式,运行在服务器上的应用和服务器本身都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程之内,并且可以在一个计算机上定位组件或者可以在两个或多个计算机之间发布所述组件。此外,可以从具备其上所存储的各种不同数据结构的各种不同的计算机可读介质上执行这些组件。所述组件可以经由本地和/或远程进程来进行通信,比如依照具有一个或多个数据分组的信号来进行通信(例如,来自于与本地系统、分布式系统中的其它组件相交互的一个组件的数据,和/或经由所述信号跨诸如因特网之类的网络来与其它系统进行交互)。
最初参照图1,举例说明了依照本发明一个方面的查询群集系统100。所述系统100包括数据存储器110,其存储将要在用户接口(未示出)上显示的多个数据项120。这里数据项120可能包括能够以各种可查看状态出现在用户接口上的文档、文件、文件夹、图像、音频文件、源代码等等,在下面将更详细地描述所述用户接口。所述项120还与各种属性(例如,元数据)相关联,其中将上述方面描述成项类型(例如,图像、文档、电子表格、二进制等等)、创建日期、与项相关联的人、位置、类别、用户定义的属性等等。集结器130收集所述项120以及相关的属性,并且将这些项呈现给属性分析器140,所述属性分析器执行对各个项和属性的分析。例如,这类分析可以包括自动确定各种潜在集群情况或潜在项组的分数(score)。
根据分析器140的分析,集群编组器150向用户展现新集群160的优化编组。集群160的优化编组便于从数据存储器110中查找和检索期望的信息,所述数据存储器可以包括本地存储介质、远程存储介质或本地和远程存储介质的组合。
在自动集群的一个示例中,缺省顶层群集化能够按照项类型来对这些项进行编组。在用户研究中,人们发现按照项类型的第一层编组是有用的并且更易于用户理解的。然而,人们也发现按照其它属性的第二层群集化不明显并且难以发觉。由此,本发明的一个方面是群集化属性的自动选择。一个问题可以陈述如下假定当开始能够用于编组的项集合和项属性集合时,哪个属性提供了最佳群集结果?通过最佳化或优化群集结果,一个目的就是提供将项统一编组成适度的集群数目。
上述目的可以通过给每个项属性分配群集化分数并且选择具有最高分的属性来实现。所述群集化分数可以通过将每个集群中的项数目乘在一起来计算,比如通过下列等式来计算score=n_itemscluster1*n_itemscluster2*……
对于N个项而言,将群集化分数计算为集群尺寸的乘积的函数当把所述项分成√N个集群时具有它的最大值,每个集群都具有√N个项。对于其它分布而言,利用分数来测算和比较它离理想的或最优化的分布还差多远。人们发现上述合理产性的分数函数会导致测试情况(test cases)。然而,应当注意使用的分数函数是一个示例。例如,在理想分布之外,可以采用给所述分布提供不同相对加权的其它函数。
可选的分数函数的示例是以如下的二项分布为基础的score=(N_total)!/((n_itemscluster1)!*(n_itemscluter2)!*……)在这个示例中,分数值具有这样的统计解释,它提供了能够将N_total个项分成指定尺寸的集群的许多方式。具有大部分用户值的群集化是缓和许许多多相间分布(alternative distributions)的一种群集化。为了比较能够用于后续群集化的不同属性,计算对应所有属性的群集化分数。正如在图2中略述的过程中更详细描述的那样,这可以容易地通过单次遍历所有项的列表来实现。
图2是举例说明依照本发明一个方面的自动群集化过程200的流程图。虽然为了说明的简明性起见,示出了所述方法并且将其描述成一系列动作,但是应当理解和认识到的是,不按动作的顺序来限制本发明,因为依照本发明一些动作可能是以不同顺序发生的或是与这里所述示出和描述的其它动作同时发生的。例如,本领域的技术人员将理解和认识到的是作为选择可以将一种方法表示成一系列相关状态或事件,比如状态图中的状态或事件。另外,实现依照本发明的方法并不需要所有举例说明的动作。
在此假定要比较N个项和M个属性,可以按如下采用过程200在210,初始化M个散列表。在220,遍及N个项进行迭代。在230,对于每个项,遍及M个属性进行迭代。在240,对于每个项属性,计算散列值。用这样一种方法来选择散列函数,即进入相同集群的两个属性值返回相同的散列值。例如,当对日期/时间属性进行群集时,散列函数可以仅仅依据日期部分,而忽略时间部分。在250,采用散列表来追踪集群数目以及每个集群中的项数目。在260,利用来自于每个属性的相关的散列表来为所述这些属性计算群集化分数。
在270,按照集群可能产性的集群质量来对列表中的属性进行排序。如果项数目超过某一阈值(例如,超过10项)的话,则可以在280自动地利用列表顶上的属性来对结果进行群集。同样,作为选择也可以建议将其它集群作为顺序中的下一个集群。例如,当选择电子邮件消息(email message)类型的所有项时,在用于电子邮件消息的测试情况下,上述过程自动由消息发送方(messagesender)来将结果群集。然而,例如当选择Word文档(Word Document)类型的项时,根据上次修改日期来创建群集,而却利用C#_源文件(C#_source files)类型的项的文件夹容积(相当于通过对项目进行编排来进行编组)来对这种类型的项进行编组。上述解决方案的一般性质允许确定极其适合于指定项集合的编组算法,这也被包含在自定义和第三方属性的评估中。
图3-10举例说明了各种示例性用户接口,所述示例性用户接口举例说明了一个或多个自动群集系统以及先前所描述的过程。应当注意的是这些接口可以包括具有一个或多个显示对象的显示器,所述显示对象包括下列这类方面比如具有多个可配置维度、形状、颜色、文本、数据和声音的可配置图标、按钮、滑块、输入框、选项、菜单、制表符等等,以便于与系统100一起操作。另外,所述接口还可以包括用于调节和配置本发明的一个或多个方面的多个其它的输入或控件,并且将在下面更详细地进行描述。这可以包括从鼠标、键盘、语音输入、Web站点、远程Web服务和/或诸如照相机或视频输入之类的其它装置来接收用户命令,以便影响或修改系统100的接口或其它方面的操作。
下列论述描述了本发明的各个方面,且与图3-10中描绘的示例性接口有关。当设计文件夹或其它类型的结构时,设计者(不论他是应用程序设计员还是终端用户)具有极高的自由度,这允许通过把来自顶层视窗的不重要的或很少使用的项放入隐藏文件夹中来隐藏这些项。同样,当创建基于浏览器的属性时,即使群集算法定了高分,也能够提供各种机制以隐藏无意义的或不是非常有用的属性。
可以在不同的层上考虑属性up/downgrading。在应用层上,应用设计者能够指示出哪个属性是将要在用户接口中显露的初级属性,而那些是次级属性或附属属性。典型地讲,这将对应每个项类型而单独被定义。在先前部分中描述的自动查询群集通常考虑到初级属性。另外,每个项类型应该为所有项所共有的属性定义属性映射。例如,可以将共有的数据(Date)属性映射到用于画面的Date Taken,但是作为文档的上次修改日期加以映射。同样,People字段可以是文档的作者(Author)但却是电子邮件的发送方(Sender),诸如此类。
通常来说,只有应能判定哪个属性为最佳的用户才能查看他们各自的数据。可能存在显式的UI来提升或降低任何特定的属性,但是本发明还可以隐含地从用户动作中学习(例如,通过学习算法)。每个属性都具有它的加权,当用户从不同的属性群集化转换成另一个属性群集化时所述加权得到增大,而当它们转换出来时所述加权得到减小。每个属性的最终等级(用来判定哪个属性要群集起来)是属性加权与群集化分数(根据上述公式计算出的)的乘积。
正如上面所论述的那样,用户通常优选在平面列表上群集项类型的分层式编组(hierarchical organization)。分层结构引入了某种排序类型并且使之易于查找到所请求的项类型值。对具有超过几个不同属性值的任何属性来说同样是成立的。以下描述了用于将属性值编组成分层查看的特定示例性技术。就常规的文件来说,项类型是由文件扩展名来定义的。可以使用诸如由当前视窗程序来定义的文件类型的用户友好的名称。通常,早已把产生相同友好名称的不同文件扩展名编组在一起(例如,.h和.hxx两者都称为C/C++头文件)。另外,可以通过对相似类型的所有文件进行编组来引入分层结构的再一层。在设计原型中,考虑并处理文档文件、图片文件、音乐和视频文件、程序文件及其它文件的元组。此外,可以将人元组处理为类对象。
例如,可以按照能用来到达指定人的通信信道类型来把项类型=人(itemtype=people)的列表分成小的部分。这例如包括能够通过投寄邮件、通过语音、通过即时消息传送或通过电子邮件来到达的人的组。如果期望的话,这些组中的每一组都能被进一步划分。例如,在公司环境中,可以把电子邮件地址分成内部的(来源于公司的地址薄)和外部的(通常来源于用户的个人联系列表)。有些人可能有多种通信方法,而在这样情况下,他们可能会终止于多个群集中。与传统的文件夹不同,属性群集没有限制所述项只能处于一个地方。
文件夹表示用户创建的项组。虽然预计随着时间的过去,基于属性的项的群集将会减少对文件夹的需要以及减少文件夹的显著性,但是文件夹仍然能够被支持。通常,对文件夹进行分层结构编组,并且文件夹群集应该相似于这种分层结构。文件夹分层结构的一个缺点就在于像程序文件(Program Files)或Windows目录(Windows directory)一样,它包含用户不太感兴趣的许多目录。当利用现有的文件夹来将项编组成集群时,明显的改善就是只在视窗中显示包含一些项的文件夹分层结构的一部分。
图3是包含(C盘上的)程序文件的样本接口300。在Windows Explorer中,例如,视窗包括完整的文件夹结构。在设计原型中,按照″类别(category)″群集文件只包括与实际选择的项集合(完整的文件夹树的子集)相关的文件夹。
图4是示范通过文件夹来进行群集的接口400。文件夹分层结构的另一方面就在于它加入带有逻辑1的物理位置(这个或那个盘,或是外部共享)的概念(文件夹分层结构中的布局)。由于可以创建可能跨过几个物理位置的逻辑组,因而物理位置可以与文件夹属性分离开,由此彼此具有相同名称的当前文件夹不论它们是什么物理位置都可以与文件夹属性分离开。正如能够认识到的那样,还提供了按照位置编组。
图5是存在于两个驱动器(C盘和D盘)中的文件夹(VSS)的示例性接口500。当查看″类别″VSS时,在510,所述接口500组合来自于物理位置的文件夹内容。这个功能是基于如下假设的,即恰巧如果两个或多个文件夹都具有相同的名称。如果情况不是这样的话,就能够通过在图6中描绘的用户接口600中的位置属性610来容易地分离所述这些文件。
图7是举例说明按照日期属性进行群集的接口700。按照日期和时间进行群集具有固有的year/month/day/hour/minute分层结构。然而,还存在相对时间-相对现在的概念。相信这两种概念都是重要的。日期集群包括许多预定义的查询(动态编组),所述预定义的查询包含从今天(today)、昨天(yesterday)、等等起的项。
一个感兴趣的项分类是通过将项与人相关联来完成的。存在可以用来创建上述关联性的许多项属性,例如电子邮件消息或附件的发送方或接收方、文档的作者、照片的拍摄的人、等等。按人来对项进行群集可能会由于任何人分层结构的表示所承载的社会内涵而形成特殊的难题。例如,可以按照一些形式属性(像内部的或外部的联系)来对人进行编组,但是这些组当中的一些可能仍然太大以致于不能高效地处理。例如,样本电子邮件消息所引用的内部联系列表有约5,000个名字。
可以按字母顺序来所述列表进行排序或者按首字母来对所述列表进行编组(像词典一样),但是任何长的列表通常都难以被理解。一个问题就在于对用户来说重要的人名无意中会被很少有人知道的人名搞混。假定最重要的联系人就是那些用户极其频繁地和最近发过电子邮件的人,或是用户盘上的文档的作者或合作者,等等。利用一些加权分析,能够构造出按所有人对用户而言的相对重要性来排序的所有人的列表。
然而,显示按其计算出的重要性来排序的长人名列表可能是一个可以接受的解决方案。计算出的顺序可能是随机的并且可能没有正确地反映人们的重要感,同时查找接近列表中间或底部的名字可能仍然是很难的。重要性信息应为用来选择哪个名字首先被显示或在顶层上显示,但是按字母顺序对名字进行排序以便更容易地搜索特定名字并且调节关于人的相对重要性的可能建议。
图8是举例说明用于查看相关的人的半折叠列表的示例性接口800。这可以包括仍然作为单个平面的按字母顺序排序的列表而呈现给用户的人员列表的分层扩展名。当时首次显示所述列表时,它只按字母顺序包含顶部的少数几个(10-20个)最重要的名字。这把对关于最相关的人的信息的简易单击访问考虑进去。同时,顶部名字充当词典书签——每一个书签都能被扩展以便显示第二层或另外的第三层的名字。
除了所有扩展的名字都按照对等于第一层名字的方式而被显示在顶层上之外,这有点类似于分层结构扩展名。例如,提供后者以便调节一个人在另一个人上方的涵义,如果它不遵循公司分层结构的话,则可能会消极地感知所述涵义。可以继续列表扩展直到来自重要性列表底部的名字进入视野为止。然而,由于能够对列表的选定区域执行扩展,因而能够限制可见的名字的总数目,典型情况下只限制在十个内。在任何指定的时间,按字母顺序对可见的名字排序并且显现成单个列表。这使得易于查找到所请求的名字。应当注意的是,可以将半折叠的列表应用于许多不同的分类上,不仅仅是人。几个明显的分类就是关键词(类别)的列表和词典(百科全书)条目的列表。
将现有条目用作为目录索引的想法是常见的。实际上,这是对印刷的词典进行编组的标准方式。然而,在标准的词典解决方案中,在每一页的起始和末尾设置索引以指示那一页的内容。这可以被称为连续索引之间的″恒定空间″。无论如何,为索引选定的单词都不是特定的,它们只是刚好处于页面的起始或末尾。
在本发明中,为索引选定的名字是那些位于″重要性″列表顶部上的名字。通过利用词典类推,这些单词将成为最频繁查找的单词。而且,这些名字都是通过它们自己在名字上点击选择它而选定的条目。这提供了对最常见条目的单击访问,而不是翻到包含所述条目的页面。在另一方面,在索引之间可能存在可变的第二级排序条目数。当第二级排序的条目数足够大时,能够创建第三级排序索引,依此类推。
图9举例说明了不完全的收缩的组900,然而当从组900中选择时,在图10中的扩展状态下示出了组1000。图10还描绘了在1010中的半折叠状态下的组1000。当显现集群(或将所述项共同编组)时,另一个问题就是如何在屏幕上可视化集群。可视化组的典型方式就是整体上显示组的一些表示(收缩的视窗)或显示组中的所有项的集合(放大视窗)。在标准的Windows显示中,在所述显示中在左边有文件夹列表而在右边有项列表,能够被看作当前可见文件夹的放大视窗和所有其它文件夹的收缩视窗。典型地,即使子文件夹的缩略图可能包含它内部几项的拼贴,在收缩视窗中也会示出当前文件夹的子文件夹。有时一个以上的已扩展组可能是同时可见的,或者当将所述项示为被编组成堆时。
在允许编组并且能够同时显示多个组的文件视窗中,通常对于将要″可收缩的″组来说,可以分别地显示或隐藏一组的内容。尽管如此,所述组也仍然能处于两种状态下,并且扩展后的状态允许与组中单独的项进行交互。在大组的情况下,扩展一个组会混淆所有其它组的可视性,这使得多组视窗不像那么有用。
在本发明中,在900,引入第三种状态,所述第三种状态示出所述组的最初几项-这被称为组的″挤压″或″半折叠″状态。在1000,重复点击单个按钮以便在已扩展的状态之间循环,在1010,挤压所述单个按钮,并且在900,处于收缩状态。所述接口900是显示两个半折叠的组的文件视窗(File Viewer),并且在910,第三个组足够小以待充分打开地被显示。
挤压状态的一个优点就在于所述组比打开状态要占用屏幕上的更少空间,但是却比关闭状态给了用户更多关于所述组的信息。这允许更多的组将是可见的,同时仍然提供关于所述组的内容的详细信息。用户能够更快速地估计大的项集合中的组,这又提供了更多有效的评估和对大的项组的操纵。
第二个优点就在于收缩状态仍然提供了对少数可见的项的直接单击访问。假定通过可见的项对于用户的″重要性″来选择它们(例如,最近访问的或过去最频繁访问的),那么所述可见的项就是那些用户很可能正在查找的项。例如,为了打印出最近发送给某人的相片,用户可以翻到相片组,并且所述文件应当刚好位于列表顶部上(作为最近访问过的文件)。可以将这个与当前的视窗相比-如果在文件夹图标中示出相片缩略图,则用户可能仍然需要打开文件夹来访问所述文件。最后,挤压视窗约为压缩状态和扩展状态之间的一半长度它尝试从整体上利用对单独项的访问来平衡对组的查看和操作。
由于半折叠的视窗提供了便利的方法来访问来自所述组的选定项(无需处理它当中的所有项),因而用户能够对在半折叠的视窗中显露出哪一项以及呈现多少项给予控制。在一种解决方案中,可以按照预定标准来对所述项进行分类排序,并且那些所示出的项都是来自于分类排序后的列表的顶部。用户可以改变分类排序的标准以及所显示的元素数目。例如,对文档进行分类排序的便利而有用的方法就是按照上次修改日期来进行。默认时,半折叠的视窗可以显示来自列表中的前n个最近的文档,并且可以具有用以显示下n个文档的按钮。可选方案就是具有用以显示从今天、昨天、上星期、上个月等等起的保留文档。典型地,在所有这些情况下,所示出的项的顺序就是用于限制可见项的相同顺序。然而,另一种解决方案就是以对于用户而言最便利的方式来对所述这些项进行排序,而不是必须与选择所述项的标准相同。例如,即使选择顺序是按照″重要性″的,通常也仍按字母顺序来最佳地对人进行排序。
可以将挤压组中的项显示成半折叠的列表。可以有选择地扩展半折叠的列表以便显示更多的项。(作为选择,可以扩展整个组以便显示所有的项)。可以为任何类型的项使用半折叠的列表视窗,而且是当分类排序顺序不同于选择顺序时,(如果分类排序顺序和选择顺序相同的话则还可以使用不完全扩展的列表视窗)。一个示例就是按字母顺序排序的最喜爱歌曲列表。用户能够扩展一部分的列表以便显示较少的流行歌曲,但是将按照歌曲的流行度来选择进入视窗中的下一首歌曲。
当创建属性分层结构时,高层集群典型地包括所有嵌套的集群的内容。例如,文档(Documents)集群包括所有Word文档、Excel工作表等等。同样,来自2003年的项包括来自各个月的项,所述来自各个月的项又包括来自每天的项。可以把任何容器(集群或文件夹)都认定为用来编组视窗的、将要作为单个实体来操作的独立项或是仅仅一组项。
项浏览器的基本功能就是实现易于找到所请求的项。然而,沿着属性集群进行遍历仅仅是其中一种方式。可以通过考虑到水平搜索来大大地增强浏览功能,所述水平搜索会前进至一些相关项而不是沿着属性分层结构搜索下去。而且,浏览器应该考虑以用户定义的方式来对项进行编组。当搜索这些项时,用户时常通过将所述项彼此关联来进行工作。例如,文档何时被最后一次编辑的确切日期也许无人知道,但是用户可能会记住最后一次编辑恰好是在一个重要会议之前。会议本身可能是容易找到的,在这一点上最相关的查询就是″显示所有来自相同日期的文档″。
参照图11,用于实现本发明的各个方面的示例性环境1110包括计算机1112。计算机1112包括处理单元1114、系统存储器1116和系统总线1118。所述系统总线1118将系统组件(包括但不限于系统存储器1116)耦合于处理单元1114。所述处理单元1114可以是各种可用的处理器中的任何一种。还可以采用双微处理器及其它多处理机系统结构以作为处理单元1114。
所述系统总线1118可以是几种类型的总线结构中的任何一种,所述总线结构包括存储器总线或存储器控制器、外围总线或外部总线、和/或采用任意种类的可用总线体系结构的局部总线,所述可用总线体系结构包括但不限于16位总线、工业标准结构(ISA)、微通道结构(MSA)、扩展ISA(EISA)、智能磁盘电子设备(IDE)、VESA局部总线(VLB)、外设部件互连(PCI)、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际联合会总线(PCMCIA)和小型计算机系统接口(SCSI)。
所述系统存储器1116包括易失性存储器1120和非易失存储器1122。包含用于在计算机1112内的元件之间传送信息(比如在启动期间)的基本例行程序的基本输入/输出系统(BIOS)被存储在非易失存储器1122中。通过举例说明的方式,而不是限制,非易失存储器1122可以包括只读存储器(ROM)、可编程序只读存储器(PROM)、电可编程序只读存储器(EPROM)、电可擦只读存储器(EEPROM)或快闪存储器。易失性存储器1120包括随机存取存储器(RAM),其充当外部的高速缓冲存储器。通过举例说明的方式,而不是限制,可以以许多种形式使用RAM,比如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)和direct Rambus RAM(DRRAM)。
计算机1112还包括可拆卸/不可拆卸、易失性/非易失性计算机存储器介质。图11举例说明了例如盘式存储器1124。盘式存储器1124包括但不限于像磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、快闪存储卡或记忆棒那样的装置。另外,盘式存储器1124可以包括独立的存储介质或与其它存储介质相结合的存储介质,包括但不限于诸如光盘ROM装置(CD-ROM)之类的光盘驱动器、CD可刻录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字通用盘ROM驱动器(DVD-ROM)。为了便于将盘式存储装置1124连接到系统总线1118,典型地使用可拆卸或不可拆卸的接口,比如接口1126。
应当认识到的是,图11描述了充当在适当操作环境1110中所描述的用户与计算机主机资源之间的媒介物的软件。这类软件包括操作系统1128。能被存储在盘式存储器1124上的操作系统1128,控制并分配计算机系统1112的资源。系统应用程序1130通过存储在系统存储器1116中或盘式存储器1124上的程序模块1132和程序数据1134来利用操作系统1128的资源管理。应当认识到的是能够利用各种操作系统或操作系统的组合来实现本发明。
用户通过输入装置1136将命令或信息输入到计算机1112中。输入装置1136包括但不限于诸如鼠标、轨迹球、铁笔、触摸板、键盘、麦克风、操纵杆、游戏板、卫星碟、扫描仪、电视调谐卡、数字照相机、数字视频照相机、web照相机等等之类的指位装置。这些及其它输入装置都经由接口端口、通过系统总线1118而连接于处理单元1114。接口端口1138例如包括串行端口、并行端口、游戏端口和通用串行总线(USB)。输出装置1140使用与输入装置1136相同的一些类型的端口。由此,例如,USB端口可以用来向计算机1112提供输入,并且从计算机1112向输出装置1140输出信息。提供输出适配器1142以便举例说明了除了其它输出装置1140以外还存在像监视器、扬声器和打印机这样的需要专用适配器的一些输出装置1140。所述输出适配器1142包括通过举例说明的方式而非限制,提供输出装置1140与系统总线1118之间的连接装置的视频卡和声卡。应当注意的是,其它装置和/或装置的系统既提供了输入能力又提供了输出能力,比如远程计算机1144。
计算机1112能够利用到一个或多个远程计算机(比如远程计算机1144)的逻辑连接而在网络环境中操作。远程计算机1144可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的设备、对等装置或其它公用网络节点等等,并且典型地包括相对于计算机1112描述的许多元件或所有元件。为了简洁起见,仅仅与远程计算机1144一并举例说明了存储器装置1146。远程计算机1144逻辑上通过网络接口1148而连接于计算机1112,然后经由通信连接1150而物理相连。网络接口1148涵盖诸如局域网(LAN)和广域网(WAN)之类的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜导线分布式数据接口(CDDI)、以太网/IEEE 1102.3、令牌环/IEEE 1102.5等等。WAN技术包括但不限于点对点链路、像综合业务数字网(ISDN)那样的线路交换网络及其变形、分组交换网络和数字用户线路(DSL)。
通信连接1150是指用以将网络接口1148连接到总线1118的硬件/软件。虽然为了说明清楚起见而示出通信连接1150是在计算机1112内,但是还可以位于计算机1112外。为连接到网络接口1148所必需的硬件/田软件包括仅作为举例目的,诸如调制解调器之类的内部和外部技术,所述调制解调器包括常规的电话分级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器和以太网卡。
图12是本发明能够与之交互的样本计算环境1200的示意性框图。所述系统1200包括一个或多个客户端1210。所述客户端1210可以是硬件和/或软件(例如,线程、进程、计算装置)。所述系统1200还包括一个或多个服务器1230。所述服务器1230同样也可以是硬件和/或软件(例如,线程、进程、计算装置)。所述服务器1230例如能够驻留线程以便通过采用本发明来执行变换。客户端1210与服务器1230之间的一种潜在通信可以是按适应于在两个或多个计算机进程之间传输的数据分组的形式。所述系统1200包括通信框架1250,可以采用所述通信框架以便于客户端1210与服务器1230之间的通信。所述客户端1210可操作连接于一个或多个客户端数据存储器1260,可以采用所述客户端数据存储器来将本地信息存储到客户端1210。同样,所述服务器1230可操作连接于一个或多个服务器数据存储器1240,可以采用所述服务器数据存储来将本地信息存储到服务器1230。
上面已经描述的内容包括本发明的示例。当然,为了描述本发明起见,不可能描述每个可想到的组件或方法的组合,但是本领域普通技术人员可以认识到的是许多本发明的另外的组合和替代都是可能的。因此,本发明是用来涵盖落入所附权利要求的精神和范围内的所有这类替换、修改和变形。此外,就在详细说明书或权利要求中使用的术语″包括″来讲,当在权利要求中被采用作为过渡单词时,这类术语意在以类似于术语″包含″的方式被广泛含义上地解释。
权利要求
1.一种用于数据显示的计算机化接口,其特征在于,它包括一属性分析器,用于为至少两个集群属性确定项分布;以及一编组器,用于部分地基于项分布来形成新集群。
2.如权利要求1所述的系统,其特征在于,所述集群属性与一个或多个数据项相关联,所述数据项被存储在本地存储位置和远程存储位置的至少其中之一中。
3.如权利要求2所述的系统,其特征在于,所述数据项包括文档、文件、文件夹、图像、音频文件、视频文件、代码、消息以及包括人或地方在内的外部对象的计算机表示。
4.如权利要求2所述的系统,其特征在于,所述集群属性与项的类型、创建的日期或时间、与所述数据项相关联的人、位置、类别、以及系统、应用程序、管理员或用户定义的属性的至少一个相关联。
5.如权利要求1所述的系统,其特征在于,所述属性分析器通过项的类型来确定集群,然后基于另一属性来确定一后续的集群。
6.如权利要求1所述的系统,其特征在于,所述属性分析器给各种项属性分配群集化分数,并且选择一具有最高分数的属性。
7.如权利要求6所述的系统,其特征在于,所述群集化分数是通过下列等式中的乘法来计算的score=n_itemscluster1*n_itemscluster2*……。
8.如权利要求6所述的系统,其特征在于,所述群集化分数是以下列二项式分布为基础的score=(N_total)!/(n_itemscluster1)!*(n_itemscluster2)!*……)。
9.如权利要求1所述的系统,其特征在于,它还包括一用户界面,用于以下的至少其中之一显示集群结果、接收查询选择、以及接收属性信息、显示与群集中的数据项有关的信息。
10.一种具有存储在其上的计算机可读指令的计算机可读介质,所述计算机可读指令用于实现权利要求1所述的属性分析器和集群编组器。
11.一种用于自动群集查询结果的系统,其特征在于,它包括用于检索多个项的属性的装置;用于基于所述属性来为多个项确定分数的装置;以及用于基于所确定的分数自动地将与所述项相关联的数据群集的装置。
12.一种自动查询群集的方法,其特征在于,它包括将一个或多个属性与多个数据项相关联;基于所述属性来确定数据项的分布;以及基于所确定的分布自动地将所述数据项群集。
13.如权利要求12所述的方法,其特征在于,所述分布是根据下列等式中的至少其中之一来确定的score=n_itemscluster1*n_itemscluster2*……score=(N_total)!/((n_itemscluster1)!*(n_itemscluster2)!*……)
14.如权利要求12所述的方法,其特征在于,它还包括处理N个项和M个属性。
15.如权利要求14所述的方法,其特征在于,它还包括下列步骤中的至少其中之一初始化M个散列表、遍及N个项进行迭代以及为每个项遍及M个属性进行迭代。
16.如权利要求15所述的方法,其特征在于,它还包括计算每个属性的散列值。
17.如权利要求16所述的方法,其特征在于,它还包括利用来自一相关联的散列表的数据来计算每个属性的群集化分数。
18.如权利要求12所述的方法,其特征在于,它还包括基于一预定阈值来自动地对集群进行编组。
19.如权利要求18所述的方法,其特征在于,它还包括建议备选的集群分组。
20.如权利要求18所述的方法,其特征在于,它还包括基于用户定义的属性来对集群进行编组。
21.一种图形用户界面,其特征在于,它包括存储在一数据库中的一个或多个数据项及其相关联的属性;为所述数据项创建的一个或多个显示对象;一输入组件,用于选择所述数据项及其相关联的属性;以及一显示组件,用于部分地基于所述属性的自动分析来显现所述显示对象。
22.如权利要求21所述的界面,其特征在于,它还包括用于与所述属性交互的控件。
23.如权利要求22所述的界面,其特征在于,所述属性用于结果的嵌套查询。
24.如权利要求22所述的界面,其特征在于,所述属性包括类型、位置、类别、人、日期、时间和用户定义的参数的至少其中之一。
25.如权利要求22所述的界面,其特征在于,它还包括一用于从用户动作中隐式地学习的组件。
26.如权利要求22所述的界面,其特征在于,它还包括半折叠列表或组的至少其中之一。
27.如权利要求26所述的界面,其特征在于,它还包括用于扩展所述列表或组的控件。
28.如权利要求27所述的界面,其特征在于,至少一个大属性集群是利用半折叠的列表在挤压视窗中显现的。
全文摘要
本发明涉及一种用于本地或远程数据库系统中的数据项的自动群集化和显示的系统和方法。这类群集化能够以与诸如类型、位置、人、日期、时间、用户定义的等等之类的数据项相关联的属性为基础,其中可以采用初始属性来形成群集化的第一层,而可以自动地确定后续的属性来形成优化后的群集化,从所述优化后的群集化中查找和检索期望的信息。提供了一种用于编组和检索数据的计算机化接口。所述接口包括用于为至少两个集群属性确定项分布的属性分析器和部分地根据项分布来形成新集群的编组器。
文档编号G06F17/30GK1648903SQ20051005092
公开日2005年8月3日 申请日期2005年1月26日 优先权日2004年1月26日
发明者A·托斯基, L·程, M·麦克劳林, R·F·拉西德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1