详细描述
在下面对各种实施例的描述中,对构成了描述的一部分并以举例示出在其中可以实现本发明各实施例的附图作出了参考。应该明白,也可以使用其它实施例并且可以对结构和功能进行修改而不脱离本发明的范围。
本发明的各方面均提供了一种使用自动列表来查询并搜索计算机上数据文件的方法和系统。如上所述,自动列表是一种持续保存(persisted)查询定义,在任意指定时间均可用来获得与改查询定义相匹配的一组文件。从自动列表获得的该组数据文件是动态的,因为一旦调用自动列表,就会返回满足相关联自动列表或持续保存查询定义的新数据文件。同样地,不再满足相关联自动列表的数据文件(例如,对数据文件的修改致使所述数据文件不再满足查询定义)导致调用自动列表时不再返回该数据文件。仍如上所述,自动列表可以用来定义搜索其它自动列表或持续保存查询定义的范围。
在本发明一个实施例的另一示例中,自动列表能够返回位于不同存储空间(memory location)中的数据文件,这些存储空间包括但不限于文件夹、卷、远程机器或设备等。经由自动列表搜索数据文件可以基于所搜索的数据文件的特性,而不是数据文件在存储器中的位置,因此可以横跨任何存储空间。此外,通过以一定的数据结构存储自动列表的定义,就可以持续保存自动列表。
在本发明的又一方面中,自动列表查询可以被用来定义搜索范围,以便识别用于其它自动列表的数据文件。该处理改善了数据文件或文档搜索的灵活性。在本发明又一方面中,自动列表查询可以结合其它过滤器信息或规则。
图1示出了可以实施本发明的合适的计算系统环境100的示例。计算系统环境100只是一个合适的计算系统环境的示例,并不是对本发明用法或功能的范围提出的任何限制。计算环境100既不能被解释成对示例性操作环境100中所示出的部件中的任意一个或其组合具有任何依赖性也不能被解释成对其有要求。
本发明可以使用很多其它的通用或专用计算系统环境或配置。适于本发明使用的公知计算系统、环境、和/或配置的示例,包括但不限于,个人计算机、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、可编程家用电器、网络PC、小型机、大型机、包括上述系统或装置中的任一种的分布式计算环境等。
参考图1,用于实施本发明的示意性系统包括作为计算机110的通用计算装置。计算机110的部件可以包括但不限于处理单元120、系统存储器130、以及系统总线121,系统总线121连接各种系统部件,包括把系统存储器连接到处理单元120。系统总线121可以是几种总线结构中的任意一种,包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任一种的本地总线。作为示例而非限制,这种体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展工业标准结构(EISA)总线、视频电子标准协会(VESA)本地总线、以及也被叫做夹层(Mezzanine)总线的外围元件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质包括易失和非易失介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质以及通信介质,包括但不限于RAM,ROM,EEPROM,闪速存储器或其它存储器技术;CD-ROM,数字视频盘(DVD)或其它光盘存储装置;磁带盒,磁带,磁盘存储装置或其它磁性存储设备,或者可以用来存储想要的信息并能被计算机110访问的任何其它介质。通信介质通常包含计算机可读指令、数据结构、程序模块、或诸如载波、或其它传输机制的已调制数据信号中的其它数据,还包括任何信息传输介质。术语“已调制数据信号”指的是,以在信号中对信息编码的方式,设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接这样的有线介质,以及诸如声音、RF、红外这样的无线介质以及其它无线介质。上述中的任意组合也应包括在计算机可读介质范围内。
系统存储器130包括易失和/或非易失存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含基本例程,其用来诸如在启动期间帮助在计算机110的元件之间传输信息并且通常存储在ROM 131中。RAM 132通常含有数据和/或程序模块,其可被处理单元120立刻访问和/或当即操作。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110还包括其它可移动/不可移动、易失/非易失计算机存储介质。仅仅作为示例,图1示出了对不可移动、非易失磁性介质进行读或写的硬盘驱动器140,对可移动、非易失磁盘进行读或写的磁盘驱动器151,以及对诸如CD ROM或其它光介质这样的可移动、非易失光盘156进行读或写的光盘驱动器155。其它可用于示例性操作环境的可移动/不可移动、易失/非易失计算机存储介质,包括但不限于,磁带盒,闪存卡、数字视频盘、数字视频磁带、固态RAM,固态ROM,等等。硬盘驱动器141通常通过不可移动存储器接口诸如接口140连至系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口诸如接口150连至系统总线121。
上述在图1中示出的驱动器及其相连的计算机存储介质,用来存储用于计算机110的计算机可读指令、数据结构、程序模块以及其它数据。在图1中,例如,硬盘驱动器141被示出为存储操作系统144、应用程序145、其它程序模块146以及程序数据147。注意这些部件可以与操作系统134、应用程序135、其它程序模块136以及程序数据137相同也可以不相同。存储操作系统144、应用程序145、其它程序模块146、以及程序数据147在此处均给出了不同的参考标号,以便至少表示出他们是不同的复本。用户可以通过诸如键盘162和指示装置161(通常涉及鼠标、轨迹球或触摸板)之类的输入装置把命令和信息输入到计算机20中。其它输入装置(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星反射器、扫描仪等。这些以及其它输入装置常常通过与系统总线耦合的用户输入接口160连至处理单元120,但也可以通过其它接口和系统结构来连接,例如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示装置也经由诸如视频接口190的接口连至系统总线121。除了监视器,计算机还可以包括其它外设输出装置,诸如扬声器197和打印机196,其可以经由输出外设接口190来连接。
计算机110可以使用到一个或多个诸如远程计算机180这样的远程计算机的逻辑连接,在联网环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它普通网络节点,并且通常包括很多或所有上述关于计算机110所描述的元件,尽管在图1中仅仅示出了存储器存储装置181。在图1中所描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这种联网环境在办公、大企业计算机网络、内部网以及因特网中是很常见的。
当在LAN联网环境中使用时,计算机110经由网络接口或适配器170连至LAN171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或其它用于在诸如因特网这样的WAN 173上建立通信的装置。调制解调器172可以是内部的或者外部的,可以经由用户输入接口160或其它适当的机构连至系统总线121。在联网环境中,关于计算机110描述的程序模块,或其一部分,可以存储在远程存储装置上。通过举例而不是限制,图1示出了远程应用程序185驻留在存储装置181。应该明白,所示出的网络连接是示例性的,还可以使用其它在计算机之间建立通信链接的装置。
应该明白,所示出的网络连接是示例性的,还可以使用其它在计算机之间建立通信链接的装置。假定存在各种公知协议,诸如TCP/IP、以太网、FTP、HTTP等中的任何一种,系统可以在客户机-服务器配置模式下运行以允许用户在基于web(web-based)的服务器上检索网页。可以使用各种常规网络浏览器中的任意一种来显示和操作网页上的数据。
本发明的一个方面涉及了在搜索、定位、或查找计算机上的数据文件或文档中使用自动列表。还可以横跨多个存储空间和/或计算机来查找数据文件。例如,计算机上的文件夹可以位于不同的存储空间,这样就要在不同的文件夹中查找期望的数据文件。同样地,可以在不同的存储设备中查找数据文件,例如而不是局限于连至计算机的不同存储装置、或完全不同的计算机。因此,计算机的存储装置或服务器可以在各种存储空间中包含很多数据文件,或者数据文件可以存储在不同的文件夹、驱动器、存储装置等中。
计算机用户可能希望访问或查找满足某种规则(即,查询定义)的所有文件,包括位于多个不同存储空间中(例如,在其它文件夹或存储装置中)的满足查询定义的文件。在本发明的一个方面中,从用户处接收含有查询定义的查询并根据该查询定义搜索文件。查询定义提供了搜索文件的规则。例如,查询定义可以为搜索期望的文件提供一个或多个关键字。查询定义可以在数据结构(即,自动列表)中持续保存,用户可以根据需要重新使用这些数据结构,计算机操作系统可以用这些数据结构来创建与上述自动列表相对应的可视文件夹。
本发明提供了一种在其中计算机用户通过应用一组查询定义(即,搜索规则)来创建自动列表的方法和系统。查询定义可以包括对搜索范围的定义。创建自动列表包括通过提供用于自动列表的查询定义来定义用于自动列表的搜索范围。可以用任何数量的被应用自动列表来创建任何数量的自动列表。同样,当由另一自动列表或自动列表组定义该自动列表的搜索范围时,也就完成了自动列表的组合工作。
图2示出了用于创建和/或组合自动列表以及基于自动列表进行查询的本发明的一个方面。图2中的计算机包括存储文件的诸如服务器200这样的存储装置。在该示例中,服务器200为记者存储杂志或报纸文章的文本文件。该示例中的用户可以是多家期刊的记者,其中有两家期刊在图2中示出了(例如,National Geographic(国家地理)和Wired(连线))。记者在服务器200上存储其已写的所有文章,不管这些文章是为National Geographic还是为Wired杂志或者任何其它该记者可能供稿的期刊所写的文章。本发明的这个示例提供了一种,能够有效访问并回调满足查询定义的期望文章或一组文章的方法和系统。在图2示出的示例中,应用查询定义创建第一自动列表201,从而获得关于动物(animal)或旅行(travel)的与NationalGeographic的文章相关联的文章。该示例中的第一自动列表201通过对持续保存查询定义进行处理,例如搜索含有关键字“动物(Animal)”、“旅行(Travel)”、或“National Geographic”的文章来返回文章。此外,自动列表还可以表示要进行的搜索范围(即,要搜索的地方,例如服务器200)。因此,在该示例中,自动列表210提供了相关的查询定义,用于搜索满足自动列表查询定义的位于服务器200上的相应数据文件。
类似地,可以创建第二自动列表202,用来搜索服务器200上存储的并满足第二查询定义的文章。在该示例中,第二自动列表提供了查询定义(即,搜索规则)以便查找某些期望的Wired杂志的文章(例如,关于电话(phone)和配件(gadget)的Wired杂志的文章)。在该示例中,在指定搜索范围内(例如,该示例中由自动列表202所提供的服务器200)搜索关键字电话、配件、以及Wired(自动列表202所提供的),从而定位服务器200上存储的所有关于电话和配件的Wired文章。
图3A和3B通过创建National Geographic自动列表201的举例说明二示出了创建自动列表的示例。在图3A和3B中,图2示例中的用户通过输入相应的搜索规则来选择关于动物和旅行的National Geographic的文章,从而获得该类型的文档。在图3A中,用户使用期望的查询定义搜索National Geographic的文章,以便获得满足在地址栏(也叫活页夹层级栏)301示出的该搜索规则的文章集合301。用户还可以把查询定义保存为自动列表。在该示例中,如图3B中所示用户把所述查询定义保存为标题为“National Geographic”302的自动列表201。用这种方式,用户可以在任何时候很容易地访问更新后的搜索。
类似地,图4A和4B通过为Wired杂志创建自动列表的举例说明而示出了创建自动列表的过程,其上述自动列表中用户搜索关于电话和配件的Wired杂志文章。在该示例中,用户使用地址栏401中示出的相关查询定义来获得关于电话和配件的Wired的文章401(图4A),并把所产生的查询定义保存为标题为“Wired”402的自动列表202(图4B)。
重新参考图2,自动列表还可以被用来定义与基于随后的后续查询定义相对应的搜索的搜索范围。此外,在随后的搜索期间,通过把附加搜索规则添加到所述查询定义中,可以扩展查询定义。通过用其它自动列表或自动列表组定义自动列表的搜索范围也可以完成自动列表的组合工作。在组合自动列表的该示例中,用标题为“已晚文章(Late Articles)”203的第三自动列表来定义第三搜索的查询定义。第三搜索的查询定义(即,“已晚文章”203自动列表)作为该查询定义的一部分只是搜索范围是两个先前存在的自动列表即,National Geographic和Wired。附加搜索规则被添加到已晚文章自动列表203的查询定义中。如图2所示,添加到该示例中所用的自动列表203的查询定义中的新搜索规则,是“Assigned to=Nicholas(分派给=Nicholas)”,Priority=1(优先级=1),并且Due Date>Last Month(到期日>上个月)。因此,该示例中的已晚文章列表203能够搜索并识别从至少上个月开始已经到期、具有较高优先级并分派给Nicholas的National Geographic自动列表和Wired自动列表内所有的文章。
值得注意的是,如果定义搜索范围所使用的任何自动列表发生了变化,或者定义搜索范围所使用的自动列表产生了不同的搜索结果,则会自动更新作为搜索范围的一部分而并入之前修改的各自动列表的第三自动列表。在该示例中,如果关于National Geographic或Wired的文章的查询定义发生了变化(例如,如果NationalGeographic被更新为除了动物和旅行之外还包括关于埃及人的文章,或者如果Wired被更新为除了电话和配件之外还包括光纤),这些变化将会自动反映给已晚文章自动列表查询。
图5A-5C示出了组合图2中所示出的已晚文章自动列表的一个示例。在该示例中,用户(例如,记者)错过了向Wired杂志的编辑提交文章的最后期限并且想要查找并识别所有过期的Wired杂志的文章。为了这样做,该示例中的用户/记者可以输入查询定义来搜索所有满足过期规则的Wired的文章。生成的查询结果构成了“已晚文章”自动列表。用这种方法,来组合已晚文章自动列表以记录最后期限以及有可能晚了的文章提交。
同样,该示例中的用户/记者还可以使用搜索规则来定位所有满足指定搜索规则的数据文件。如图5A所示,用户/记者使用搜索规则(即,查询定义)来获得某种优先权的文章以及指定给他的到期日。例如,基于查询定义的搜索,其根据已晚文章自动列表,并导致返回了指定给“Nicholas”(即,用户)、优先权=1并且到期日至少是上个月(即,到期日>上个月)的所有文章。
图5B示出了搜索范围的指定。在该示例中,用户已经创建了搜索并定位所有关于National Geographic的文章的一个自动列表以及所有关于Wired的文章的另一自动列表。并非是必须把这些规则输入到至少部分由关于National Geographic文章的自动列表和关于Wired杂志的文章的自动列表定义的范围内的其它搜索(这将妨碍搜索的灵活性),用户可以通过使用先前存在的自动列表(在该示例中,NationalGeographic和/或Wired自动列表)指定搜索范围来组合自动列表。而且,用户只需要指定作为搜索范围的要使用的自动列表而不是必须重新输入先前存在的自动列表所表示的全部期望的关键字和其它规则。对于用户而言,这样就节省了时间和精力。图5B示出了自定义自动列表的组合过程,其中把所述范围设置为包括与National Geographic自动列表和Wired自动列表相关联的持续保存的查询定义。定义了新的查询定义的最新组合的自动列表保存在唯一的名字下,而上述新查询定义包括对应于National Geographic和Wired自动列表的搜索范围的指示。在该示例中,该新组合的自动列表被保存为“已晚文章”自动列表(图5C)。
图2还示出了使用自动列表来定义搜索范围的另一个示例。在图2中,用户/记者可能想要检索所有已经提交用于出版的文章。而且,还可能想要搜索特定个人提交的所有文章和/或具有特定状态的所有文章。如图2所示,可以组合自动列表,搜索并返回所有这种期望的文章。在该示例中,用户想要查找所有“准备审阅(即,一特定状态)”并由Nicolas或Melissa所写的National Geographic的文章和Wired的文章。接收对应于期望的规则的相应查询定义,并且搜索以及由文章提交自动列表204返回由Nicolas或Melissa所写的文章。然而,由于搜索范围是查询定义的一部分,并且在该示例中由National Geographic和Wired自动列表进行定义,文章提交自动列表204只返回National Geographic和Wired的文章。
应该理解,由于自动列表可以采用很多形式,因而上述示例只是用来举例说明的而不是用来限制本发明的。在另一个示例中,如图6中所示,一个自动列表可以定义搜索一个源或范围的查询定义,而另一个自动列表可以定义搜索不同源或范围的查询定义。在该示例中,满足期望规则的National Geographic的文章(此处,这些National Geographic文章有关于动物和旅行,并不早于1995年发表)被返回到National Geographic自动列表603中。同样地,关于电话和配件并且不早于1999年的Wired杂志文章被返回到Wired自动列表604中。不过,是在服务器1601内搜索National Geographic文章从而形成National Geographic自动列表603,而在服务器2602内搜索Wired杂志文章从而形成Wired自动列表604。因此,每个自动列表都从不同的源或存储空间获得文章。在图6中,在National Geographic自动列表603和Wired自动列表604的查询定义中提出的范围内搜索满足期望的查询定义的文章,返回相应于图6中已晚文章列表605或文章提交自动列表606的文章。对于已晚文章自动列表605来说,所返回的文章最近到期、优先权高并被分派给特定记者(即,Nicholas)。对于文章提交自动列表606来说,检索到的文章属于Nicolas或Melissa并且是“准备审阅”。根据National Geographic自动列表603和Wired自动列表604各自持续保存的查询定义所定义的搜索范围,已晚文章自动列表605和文章提交自动列表606两者都搜索National Geographic文章和Wired杂志文章,即使National Geographic自动列表603在服务器1601上搜索而Wired自动列表604在服务器2602上搜索。在该示例中,已晚文章自动列表605和文章提交自动列表606,都结合了在该范围内使用的每个自动列表所产生的结果(即,在该示例中为National Geographic自动列表603和Wired自动列表604),并在其各自的查询定义中使用其各自的附加搜索规则。因此,用来定义搜索范围的自动列表可以是不同的或者甚至是有冲突的规则。
本发明并不局限于任何自动列表的格式,因为任何格式的自动列表都可以在本发明范围内使用。图7A-7C示出了其它非限制性的示例,作为自动列表的编辑者可以使用的备选的用户界面格式。在图7A中,给出了作为树型节点的自动列表。每个自动列表都含有用于选择的检查框。例如每个National Geographic自动列表801和Wired自动列表802都具有相应的检查框。
图7B示出了自动列表节点,作为高级节点(例如,本地磁盘C)内的子节点。例如,National Geographic自动列表805和Wired自动列表806都被描述为在自动列表子节点804之下,而该自动列表子节点804又被描述为在本地磁盘C节点之下。
图7C把自动列表示出为自动列表807的单独列表,该列表与计算机中其它位置相分隔。此外,自动列表中可以含有过滤器并在自动列表编辑器(未示出)中一行式地示出。不过,可以使用反映过滤器的任何方法。例如,过滤器可以被表示为悬停在光标(未示出)上的工具提示。
可选地,在创建另一自动列表的过程中,自动列表可以被暴露为查询定义内的搜索规则。在图8A中,增加了National Geographic自动列表作为搜索规则,以便于National Geographic自动列表所返回的结果作为已晚文章自动列表的查询定义的一部分而被合并。图8B示出了通过增加National Geographic自动列表作为过滤器(即,搜索规则),使用National Geographic自动列表添加自动列表结果。在该示例中,自动列表可以用下拉菜单来选择,当然也可以使用任何其它的方法。图8C示出了包括在已晚文章自动列表范围内的National Geographic自动列表。
仍是在提供自动列表的备选方法的另一实施例中,自动列表可以显示多个规则。例如,在图9A中,显示已晚文章自动列表的所有细节,包括作为其它规则而被包括的自动列表。在该示例中,National Geographic自动列表作为附加规则而被包括,以便查找分派给Nicolas的优先权较高并且到期日至少是上个月的文章。因此,除了在“Patrick”和“Common(公共)”中搜索这种文章之外,已晚文章自动列表还用National Geographic自动列表进行搜索。这些附加规则在自动列表编辑器中显示。
图9B示出了提供具有多个规则的自动列表的又一个示例,其中用Wired自动列表来查找有可能过期的Wired文章。例如,在图9B中,Wired自动列表作为其它规则而被包括。在该示例中,还包括Wired自动列表,以便除了NationalGeographic文章之外还查找分派给Nicolas的优先权较高并且到期日至少是上个月的Wired文章。在该示例中,提供了作为规则被包括的所有自动列表的全部细节。
根据本发明的另一个示例性的方面,自动列表不会返回重复的结果。例如,第一自动列表可以返回来自一组存储空间的数据文件,例如来自一组文件夹、磁盘驱动器、存储器设备等的数据文件。第二自动列表可以返回来自第二组存储空间的数据文件。第一自动列表和第二自动列表之间还可以有重叠的存储空间,以便由第一自动列表搜索的至少一个存储空间可以与由第二自动列表搜索的存储空间相同。如果第三自动列表结合了第一自动列表和第二自动列表两者,就可能返回重复的数据文件。因此,由第三自动列表返回的数据文件并非每一个都是唯一的。这就导致了会返回非唯一的重复数据文件的重复性的搜索结果。
图10示出了一个在一组返回的数据文件中管理重复数据文件的自动列表的示例。在图10中,用查询定义创建远东旅行自动列表1001,所述查询定义返回与关于远东的度假照片的图像文件相对应的数据文件。在该示例中,远东旅行自动列表1001返回描述日本、中国、韩国、或泰国地标的图像数据文件。还用查询定义创建日本自动列表1002,而该查询定义返回的是与关于日本的图像和文档相应的数据文件。用查询定义组合空闲自动列表1003,而该查询定义按引用合并了远东旅行自动列表1001和日本自动列表1002。在该示例中,空闲自动列表1003合并了远东旅行自动列表1001和日本自动列表1002作为搜索范围的定义。因此,在该示例中的空闲自动列表1003返回与远东度假照片和与日本相关的图像和文档两者相对应的数据文件。
不过,由于空闲自动列表1003合并了远东旅行自动列表1001和日本自动列表1002两者作为搜索范围,如果任何数据文件满足了远东旅行自动列表1001和日本自动列表1002两者的查询定义,这些数据文件就会在空闲自动列表1003中被返回两次。如果返回的数据文件不是唯一的,那么得到的就是重复的结果,这就导致了搜索结果的混淆。为了避免与多余搜索结果相关联的问题,自动列表可以进行过滤并只返回唯一的数据文件。因此,在本发明的这一示例性方面,所述系统可以检测重复的数据文件并只返回这种数据文件的一个实例(即,只返回唯一的数据文件)。
在本发明一个方面的又一示例中,可以防止自动列表中非期望的循环(cycling)。例如,如果第一自动列表被组合成在查询定义中合并了第二自动列表,则如果第二自动列表也在查询定义中合并了第一自动列表的话,就会产生自动列表之间相互引用的无限循环。类似地,如果通过其它自动列表引用而进行的一系列合并中的自动列表又合并了上述其它自动列表中的一个,就会形成一个导致自动列表失败的循环。图11示出了自动列表的循环的一个示例。在该示例中,我收藏的照片自动列表1103,被组合以尝试返回用户(该示例中为Nicolas)的图像数据文件。该示例中的我收藏的相片自动列表1103按引用合并了最近照片自动列表1101和度假照片自动列表1102。因此,最近照片自动列表1101和度假照片自动列表1102为我喜欢的照片自动列表1103提供了搜索范围。仍如图11所示,最近照片自动列表1101还合并了我喜欢的照片自动列表1103。合并了最近照片自动列表1101的我喜欢的照片自动列表1103以及合并了我喜欢的照片自动列表1103的最近照片自动列表1101在自动列表之间产生了引用循环,这会导致引用的无限循环。
在本发明的一个示例中,可以避免第一自动列表引用第二自动列表而第二自动列表又引用第一自动列表的的这种非期望循环。同样地,如果第一自动列表合并了第二自动列表,而该第二自动列表可能没有通过引用直接合并第一自动列表,而是通过合并第三自动列表来合并第一自动列表,就可能发生循环。第三自动列表在随后可以合并第一自动列表,构成一个循环并产生类似的非期望循环。在这种带有任意数量介入自动列表的循环中可以包括任何数量的自动列表。
图12A和12B示出了在其中避免自动列表循环的本发明的一个示例。在该示例中,如图11所示,尝试组合并入最近照片自动列表1101的我收藏的照片自动列表1103作为搜索范围。不过,最近照片自动列表1101已经合并了我收藏的照片自动列表1103。因此,系统检测到了由于疏忽正在尝试自动列表的循环,并防止其发生。如图12A所示,最近照片自动列表和度假照片自动列表都被创建以包括各个的查询定义。图12B示出了尝试组合如图11所示的我收藏的照片自动列表1103。不过,如图11所示,我收藏的照片自动列表合并最近照片自动列表110会产生不允许的自动列表循环。因此,如图12B所示,所述系统提供信息以告知用户出现了非法引用自动列表的尝试,并防止这种引用的发生。
图12A和12B示出了结合与例如使用用户界面的用户进行交互来避免自动列表循环的示例,然而还有很多其它防止自动列表循环的示例。例如,还可以在处理级别上防止循环。在该示例中,在处理自动列表时检测到产生自动列表的循环尝试,并且自动终止该循环。用这种方法,不需与用户进行交互就能防止自动列表的循环。
图13是示出了在处理级别防止自动列表循环的另一个示例的数据流程图。在该示例中,National Geographic自动列表1303通过搜索服务器11301上的数据文件,返回所期望的National Geographic文章(即,关于动物和旅行的文章)。Wired自动列表1304通过搜索服务器21302上的数据文件,返回期望的Wired文章(即,关于电话和配件的文章)。不过,在该示例中,Wired自动列表1304尝试在Wired自动列表1304的搜索范围内包括已晚文章自动列表1305。已晚文章自动列表1305通过合并National Geographic自动列表1303和Wired自动列表1304作为搜索范围,返回过期文章。不过,这是在试图产生自动列表循环,因为Wired自动列表1304试图合并已晚文章自动列表1305,而同时已晚文章自动列表1305在试图合并Wired自动列表1304。
在防止自动列表循环的上述示例中,不需用户界面就可以在处理级别上检测到尝试的循环。系统检测到循环并自动删除该循环。例如,图13中所示出的Wired自动列表1304通过在服务器21302中进行搜索,可以返回相关的Wired文章(即,关于电话和配件的Wired文章)。由于检测到合并已晚文章自动列表1305是不允许的循环,Wired自动列表1304就会从搜索范围中自动“修剪”已晚文章自动列表1305。因此,如图13所示,通过合并National Geographic自动列表1303和Wired自动列表1304,文章提交自动列表1306可以返回相关的提交的文章,而Wired自动列表1304只在服务器1302中搜索相关的Wired文章(即,关于电话和配件的文章)。Wired自动列表1304通过引用已晚文章自动列表1305而进行合并的行为被自动“修剪”。如果需要的话,还可以向用户进一步提供告知或警告消息,以便通知用户自动列表被修改。
自动列表可以按很多种格式作为代码存储。例如,自动列表可以按诸如XML之类的标记语言的形式被存储。作为XML文件存储的自动列表的一个示例如下:
<?xml version=″1.0″?>
<persistedQuery version=″1.0″>
<viewInfo viewMode=″Icons″iconSize=″128″>
<stackList>
<stack viewField=″microsoft/Author″/>
</stackList>
</viewInfo>
<query>
<scope>
<include saveLocation=″true″
knownFolder=″{FDD39AD0-238F-46AF-ADB4-6C85480369C7}″/>
<include knownFolder=″{ED4824AF-DCE4-45A8-81E2-FC7965083634}″/>
<include knownFolder=″{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}″/>
</scope>
<visibleInList>
<visibleIn name=″Document″/>
</visibleInList>
</query>
<properties>
<visibleIn>Document AutoList</visibleIn>
</properties>
</persistedQuery>
在上述示例中,自动列表提供了特定作者入栈的所有数据文件。
作为XML存储的自动列表的又一个示例如下:
<?xml version=″1.0″?>
<persistedQuery version=″1.0″>
<viewInfo viewMode=″Details″iconSize=″16″>
<sortList>
<sort viewField=″microsoft/FileLastEditedTime″
direction=″descending″/>
</sortList>
</viewInfo>
<query>
<scope>
<include saveLocation=″true″
knownFolder=″{FDD39AD0-238F-46AF-ADB4-6C85480369C7}″/>
<include knownFolder=″{ED4824AF-DCE4-45A8-81E2-FC7965083634}″/>
<include knownFolder=″{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}″/>
</scope>
<visibleInList>
<visibleIn name=″Document″/>
</visibleInList>
</query>
<properties>
<visibleIn>Document AutoList</visibleIn>
</properties>
</persistedQuery>
在该示例中,按最后编辑日期的降序返回所有数据文件。
应该明白,本发明的各个方面可以采用很多形式并具体实现。此处示出的实施例用来说明而非限制本发明,应该明白可以做出改变而在不脱离本发明范围的精神。尽管已经示出并描述了本发明的示例性实施例,但是很多修改、变化和替换都可以用在前述说明中,并且在某些实例中可以使用本发明的某些特征,而不用使用其它相应的特征。因此,应该以和本发明的范围相一致的方式较宽泛地解释所附的权利要求书。