专利名称:基于共同元素的用于过滤和组织条目的系统的制作方法
基于共同元素的用于过滤和组织条目的系统本专利申请是国际申请号为PCT/US03/15720,国际申请日为2003年5月15日,进入中国国家阶段的申请号为03801850.0 (200910006767.4),名称为“基于共同元素的用于过滤和组织条目的系统”的发明专利申请的分案申请。交叉引用相关的申请本申请是2003年3月27日申请的美国专利申请N0.10/403,341的部分延续,并按照35U.S.C § 120的规定,要求那个申请日的优先权。发明的领域本发明涉及一种用于查看存储在计算机的存储器中的条目的系统和方法,更具体地,涉及一种基于共同元素来过滤和组织条目的系统和方法。发明的背景现在的计算机文件系统有许多不方便的限制。一个限制是用户一般不能控制所显示的结构。也就是说,在组织文件夹的时候,用户必须选择一种结构,而这个结构之后就很难改变。例如一个具体的例子,对于“音乐”文件夹,用户可能会选择按艺术家/曲集的格式来组织,其中每一个艺术家的所有曲集文件夹被分组到那个特定的艺术家的文件夹中,一个特定的曲集中所有的歌都被分组到那个曲集的文件夹中。这种艺术家/曲集是不利于播放一种类型的音乐(例如,播放来自两个不同艺术家的爵士歌曲),或者是播放来自不同艺术家的曲集的选集的。还有另一个问题,用户可能有着庞大数目的难以组织的文件。有些用户对文件的布局执行严格定位,因而为它们创建精确的层次。由于有效文档的数目的增长,这样的文件的管理变得越来越复杂和困难,使得检索和提取也很困难。当利用来自其它位置的另外的文件,例如共享文件等的时候,这个问题进一步恶化。用户也不得不处理在不同位置的文件,例如在不同的装置上、在其它的PC上、或者在线上。例如,用户能够选择在计算机(当作可访问一个音乐程序)上听他们的音乐或是去线上听来自Web站点的音乐,然而在这两个来源之间有着严格的分界。来自不同位置的音乐被不同地组织,而且不是以相同的方式或在相同的位置中保存。另一个例子,存储在企业通信网中的文件可能本质上是与用户在当前机器上拥有的文件分开的。用户必须追踪的不仅仅是存储了什么文件数据,还有它存储在哪里。例如,对于音乐文件来说,用户被迫在不同的系统中保存副本并且设法追踪哪一个音乐文件在哪里。这使得文件难以定位,甚至是在它们是本地存储的时候。而且有时很难查找并返回用户所拥有的文件。用户也许有时会发现很难回想起他在什么地方怎样存储了某些文件。假如有一组文件夹和甚至一组相似的文件,用户常常很难快速地找到他们正在寻找的那一个。要是文件存储在一个难以找到的地方,定位就更加复杂。另外,一旦用户在一个文件夹中有足够多的文件,就更加难以快速地分析这个文件夹,特别是如果这些内容是相似的。 此外,对于用户来说有时也很难查找并返回在网络上的文件。共享和发布文件常常很难做到,而且要从使这样的文件有效的那个人那里提取它,通常更加困难。用户通常地必须记得或用图标出,他们需要用来在网络上查找文件的各种站点和名字。名字空间也许不同,这能导致用户关于什么是“正确的”的困惑。这在有不同命名约定、限制等的网络上格外确切。例如,某些操作系统也许为了名字是可见的,需要没有间隔的短的名字。程序也常常将文件保存到它们自己的目录中或是其它名字空间中,使得对于用户来说很难找回文件。程序常常有它们存储文档的默认的目录和地方。用户常常得把他们的硬盘全部搜索一遍并猜测文件存储在哪里。相关的条目也常常存储在分开的地方。用户拥有的相关文件可能被存储在硬盘等的不同部分。随着具有多样的内容类型(例如,图片、音乐、视频)的数字媒体服务的发展,这个问题变得更加普遍。本发明的目的是提供一种克服了上述和其它的缺陷的系统和方法。更具体地,本发明涉及一种基于共同元素来过滤和组织条目的系统和方法。
发明概要提供一种基于共同元素来过滤和组织来自计算机存储器的条目的系统和方法。根据本发明的一个方面,提供了用于操作条目的过滤器。过滤器本质上是将一组条目进行缩减的工具。在一个实施例中,基于分开的条目的属性,过滤器被动态地生成。例如,对于一组条目,过滤器机构可以再次查看这些属性,如果这些条目普遍地具有“作者”作为属性,则过滤器可以提供一个作者的列表。那么,通过在一个特定的作者上点击,那些不具有那个作者的条目会消失。这让用户能够缩减内容。根据发明的另一方面,在具有显示器和存储器的计算机系统中提供了一种用于过滤条目的方法,其中存储器是用来存储具有元数据属性的条目的。在显示屏上提供显示对象,其每一个代表一个或更多的条目。显示对象所代表的条目的元数据属性被考察。在显示屏上提供一个与由若干条目共享的元数据属性相应的过滤条件,其中过滤条件的选择使显示屏上提供的条目缩减为那些共享被指定的元数据属性的条目。根据发明的另一方面,在显示屏上提供若干条目,并基于条目的元数据属性动态地生成过滤条件。当过滤条件被选中了的时候,它将在显示屏上提供的条目缩减为具有与过滤条件的元数据属性相应的那些。根据发明的另一方面,在显示屏上提供若干条目,提供一个用户可以输入过滤条件的过滤区域。当用户输入了一个过滤条件时,在显示屏上提供的条目缩减为包含这个过滤条件的那些。在用户键入过滤条件时,当每一个新字符被添加到过滤条件中时,另外的条目也许会被过滤。根据发明的另一方面,提供一个可以在过滤过程中回退的后退按钮。例如,在用户已经输入了一个过滤条件之后,用户也许想要回到在该过滤条件应用之前,在屏幕显示上提供的那组条目。后退按钮使得用户能够回退到在过滤导航中的想要的点。根据发明的另一方面,提供了快速链接。在一个实施例中,快速链接是一组预定义的链接(例如,位于显示屏的左边的),其能够在上面点击来生成条目组的有用的视图。这些可以由程序来预定义,或者由用户来设定。例如在“所有作者”上点击,可以返回一个按作者堆叠的视图。“所有文档”可以返回一个跨越所有存储区域的所有文档的平面视图。用户也可以创建他们自己的快速链接。例如,用户可以过滤出所有他们在2003年I月修改的文档,然后可以把那作为一个快速链接来保存。根据发明的另一方面,实现了一种在具有显示器和用于存储条目的存储器的计算机系统中提供快速链接的方法。根据这个方法,用户首先导航至想要的条目的集合的视图。保存与想要的条目的集合相应的快速链接,并提供一个名字。快速链接的名字被提供在显示屏上,这样,通过在这个快速链接上点击,用户可以返回到想要的条目的集合的视图。根据发明的另一方面,提供了库。库是由可以联系在一起的有用类型的大量组构成的。例如,相片可以是一个库,音乐可以是另一个,而文档可以是另一个。库提供了涉及特定类型的条目的工具和行为。例如,在相片库中,有涉及操作相片的工具和过滤器,像创建幻灯片放映或是共享相片。根据发明的另一方面,提供一种在具有显示器和用于存储条目的存储器的计算机系统中创建库的方法。这个方法开始于创建一个用来包括具有一个或更多被指定的元数据属性的条目库。然后,具有一个或更多被指定的元数据属性的条目被自动地分组到库中。还提供用于操作库中的条目的工具。根据发明的另一方面,在虚拟文件夹中将条目呈现给用户。虚拟文件夹将条目,基于它们的元数据而不是在磁盘上实际的物理底层文件系统结构,以不同的视图呈现给用户。因此,系统能够获得一个存储在数据库中的属性并将它作为一个像文件夹那样的容器来表示。由于用户已经很熟悉用文件夹工作,通过以类似方式提供虚拟文件夹,用户可以更快地适应新系统。根据发明的另一方面,用户能够通过直接操作来用虚拟文件夹工作。换句话说,提供来操纵虚拟文件夹的机制与当前用于操作常规文件夹的(例如,单击并拖曳、复制、粘贴,等等)相似。根据发明的另一方面,很宽的范围内的条目可以是可得到的。也就是说,系统能够提供来自若干物理位置(例如,不同的硬盘、不同的计算机、不同的网络位置,等等)的条目,以使对于用户来说,所有的条目都看起来象是来自一个位置的。例如,可以在单个屏幕上,为用户提供他们所有的音乐文件,并操作来自一个视图的全部文件,尽管这些文件也许是物理地存储在不同的硬盘、不同的计算机或者不同的网络位置上。根据发明的另一方面,在虚拟文件夹中可以提供非文件条目。也就是说,存储在存储器中的文件是位于物理存储器中的。可以使虚拟文件夹包括当前在物理存储器中没有提供的条目。非文件条目的例子是电子邮件和联系人。附图的简要说明如果结合附图,通过参考接下来的详细说明,本发明的上述方面及许多伴随的优点将更加易懂和更好理解,其中:
图1是适合实施本发明的通用计算机系统的框图;图2是根据本发明的一个虚拟文件夹系统的框图;图3是说明一个例行程序的流程图,通过这个程序用户提供一个取回选中的文件和文件夹的查询;图4是说明一个例行程序的流程图,通过这个程序,根据默认的查询或是来自用户的查询,虚拟文件夹被建立并显示在屏幕上;
图5是根据在硬盘上的物理文件夹安排的文件夹结构的树形图;图6是虚拟文件夹结构的树形图;图7是图6中的虚拟文件夹结构的树形图,其中,用合同和年份进一步过滤客户堆;图8是图7中的虚拟文件夹结构的树形图,其中,用年份进一步过滤客户堆的合同;图9是图6中的虚拟文件夹结构的树形图,其中,用客户和年份进一步过滤合同堆,其中用年份再进一步过滤客户;图10是说明一个显示文档库的堆的屏幕显示图;图11是说明示出图10中的ABC公司堆中的文档的屏幕显示图;图12是说明一个屏幕显示的图,在这个屏幕显示中为图11中的文档选中了堆叠功能;图13是说明一个屏幕显示的图,在这个屏幕显示中为图12中的堆叠功能选择了“按作者堆叠”参数;图14是说明一个屏幕显示的图,在这个屏幕显示中图13中的文件已经按作者堆叠好了 ;图15是说明一个屏幕显示的图,在这个屏幕显示中,选中了堆叠功能,并且为重新堆叠图14中的文件进一步选择了 “按分类堆叠”选项;图16是说明一个屏幕显示的图,在这个屏幕显示中图14中的文件已经按分类重新堆叠好了;图17是说明一个屏幕显示的图,在这个屏幕显示中为显示物理文件夹选中了快速链接;图18是说明一个屏幕显示的图,在这个屏幕显示中显示了包括图17中的虚拟文件夹堆中的文件的物理文件夹;图19是说明一个例行程序的流程图,通过这个例行程序用户可以直接操作虚拟文件夹; 图20是说明一个屏幕显示的图,在这个屏幕显示中一个新的“西海岸”堆被添加到了图10的堆中;图21是说明一个屏幕显示的图,在这个屏幕显示中为从“ABC”公司堆复制文件到图20中的“西海岸”堆使用直接操作;图22说明了一个用于系统动态地生成新的过滤条件的例行程序的流程图;图23是说明一个用于系统基于选择的过滤条件来进行过滤的例行程序的流程图;图24是说明一个屏幕显示的图,在这个屏幕显示中,图10中的堆已经用条件“AB”过滤了 ;图25是说明一个屏幕显示的图,在这个屏幕显示中,图10中的堆已经用条件“ABC” 过滤了 ;图26是说明一个屏幕显示的图,在这个屏幕显示中,为图10中的堆选中了过滤条件 “2002 年”;
图27是说明一个屏幕显示的图,在这个屏幕显示中,已经用过滤条件“2002年”过滤了图10中的堆,并进一步选中了过滤条件“月份”;图28是说明一个屏幕显示的图,在这个屏幕显示中给出了用于选择一个月份来过滤的列表;图29是说明一个屏幕显示的图,在这个屏幕显示中,图10中的堆已经被一月份进一步过滤了,并且进一步显示过滤条件“天”;图30是说明一个创建新的快速链接的例行程序的流程图;图31是说明一个屏幕显示的图,其用于基于图29中的过滤创建一个叫做“一月工作”的新的快速链接;图32是说明一个屏幕显示的图,在这个屏幕显示中,快速链接“所有作者”被选中了。图33是说明一个屏幕显示的图,在这个屏幕显示中给出了图32中的所有作者的列表;图34是说明一个屏幕显示的图,在这个屏幕显示中已经从图33中的列表中选中了 “作者1”,并且显示了所有作者I的文档;图35是说明一个用于创建新的库的例行程序的流程图;图36说明一个屏幕显示的图,其显示了各种有效库的集合;图37是说明一个用于定义虚拟文件夹的范围的例行程序的流程图;图38是说明可以形成一个虚拟文件夹集合的范围的各种来源的框图;图39是说明一个用于在虚拟文件夹集合中加进非文件条目的例行程序的流程图;以及图40是说明一个示出了包括在虚拟文件夹中的各种非文件条目的屏幕显示的图。优选实施例的详细说明本发明涉及虚拟文件夹。虚拟文件夹采用与当前普遍用于文件系统的相同或相似的用户界面。虚拟文件夹将常规文件和文件夹(也就是通常所说的目录),基于它们的元数据而不是在磁盘上实际的物理底层文件系统结构,以不同的视图呈现给用户。建立了允许用户利用与那些当前用来管理文件系统相似的控制来操作他们的文件和文件夹的,与位置无关的视图。一般而言,这意味着用户可以基于文件本身的固有特性,而不是作为系统的单独部分来实行的管理和组织,来组织和重新整理他们的文件。虚拟文件夹可以提供来自不同物理位置,例如来自同一台电脑中的多个磁盘驱动器、多个电脑之间或是不同的网络位置之间的文件或条目,以使文件或条目的一个视图可以呈现位于不同物理地址的文件或条目。在一个实施例中,要包括不同的条目或文件,只需通过一个IP网络来连接它们。该虚拟文件夹模型也可以用于传统的非文件实体。它的一种应用是用一套与文件和文件夹(即,对象和容器)相似的用户界面来显示传统的非文件实体。这种非文件实体的一个例子是电子邮件,而另一个例子则是来自联系人信息库的联系人信息。照这样,虚拟文件夹提供了一种不管显示的数据是来自文件还是非文件实体都工作的,与位置无关、基于元数据的视图系统。通常,这些特征在让用户操作他们的文件和数据方面提供了更多的灵活性,既使用普通的用户界面技术(拖曳和松开、双击等),又支持各种数据类型的丰富集人
口 O图1和接下来的论述将对可以实施本发明的适合的计算环境件简要概括的说明。虽然不是必需的,但是本发明将在像由个人电脑来执行的程序模块这样的,计算机可执行指令的通用情况中来说明。一般说来,程序模块包括执行特定的任务或是实现特定的抽象数据类型的例行程序、程序、字符、组件、数据结构,等等。本领域的技术人员会清楚,本发明可以实施于其它的计算机系统配置中,包括手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机,等等。本发明也可以实施在由通过通信网络连接的远程处理设备来完成任务的分布计算环境中。在分布计算环境中,程序模块可以设置在本地和远程的存储器装置中。根据图1,一个用于实现本发明的示范性系统包括一个常规个人电脑20形式的通用计算装置,这个电脑20包括处理装置21、系统存储器22、将包括系统存储器22在内的各种系统部件连接到处理装置21的系统总线23。总线23可以是几种类型的总线结构中的任意一种,这几种类型包括存储器总线或存储控制器、外围总线、使用多种总线结构的中的任意一种的本地总线。系统存储器包括只读存储器(R0M)24和随机存储器(RAM)25。基本输入/输出系统(BIOS) 26存储在R0M24中,它包含了帮助在个人电脑20中的单元之间传递信息的基本的例行程序,例如在启动期间的。个人电脑20还包括用于对硬盘39进行读写的硬盘驱动器27,用于对可移动磁盘29进行读写的磁盘驱动器28,以及用于对象⑶-ROM或其它光学介质这样的可移动光盘31进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口 32、磁盘驱动器接口 33和光盘驱动器接口 34连接到系统总线23。驱动器和它们相关的计算机可读介质为个人电脑20提供了计算机可读指令、数据结构、程序模块以及其它的数据的非易失性存储器。虽然这里说明的示范性环境中使用了硬盘39、可移动磁盘29以及可移动光盘31,本领域的技术人员应当清楚,其它类型的可存储那些可被计算机存取的数据的计算机可读介质,例如磁带、闪存、数字视频盘、Bernoulli和式磁带、随机存储器(RAM),只读存储器(ROM),等等,也可以用在这示范性工作环境中。在硬盘39、磁盘29、光盘31、R0M24或是RAM25中可以存储许多的程序模块,其包括操作系统35、一个或更多个应用程序36、其它程序模块37和程序数据38。用户可以通过像键盘40和指示装置42这样的输入装置来向个人电脑20中输入命令和信息。其它输入装置(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪,等等。这些和其它的输入设备,通常是通过连接到总经23的串行端口接口 46,来连接到处理装置21的,但是,也可以通过其它的接口来连接,例如并行端口、游戏端口或是通用串行总线(USB)。监视器47形式的显示器经由像视频卡或适配器这样的接口 48,也连接到了系统总线23。一个或多个扬声器57也可以经由像音频适配器这样的接口 56连接到系统总线23。除了显示器和扬声器之外,个人电脑通常包括其它外围输出装置(未不出),例如打印机。个人电脑20可以在对一台或多台像远程计算机49这样的个人电脑使用逻辑连接的联网环境里工作。远程计算机49可以是另一台个人电脑、服务器、路由器、网络PC、同等装置或是其它通用的网络节点,并且通常包括许多或所有前面描述的关于个人电脑20的部件。图1中画出的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业内部计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用的时候,个人电脑20通过网络接口或适配器53连接到局域网51。当在WAN网络环境中使用的时候,个人电脑通常包括调制解调器54或其它用于在像因特网这样的广域网52中建立通信的装置。调制解调器54可以是内置或外置的,经由串行端口接口 46连接到系统总线23。在网络环境中,所述的与个人电脑20相关的程序模块或其部分可以存储在远程存储器装置中。可以理解,示出的网络连接是示范性的,可以使用其它的建立通信链路的装置。像在图1所示的类型的系统上实施那样,在新特征中,本发明采用使用户更容易完成有关文件操作和文件夹导航(浏览)的基本任务,并且提供支持更高层次的存储能力的虚拟文件夹。虚拟文件夹将文件和条目,基于它们的元数据而不是在磁盘上实际的物理的底层文件系统结构,以不同的视图呈现给用户。图2是根据本发明的一个虚拟文件夹系统200的框图。与下面将要详细说明的一样,虚拟文件夹允许用户改变控制数据显示方式的“主元素”。作为例子,用户可以把他们的音乐当作一个所有歌曲的平面列表来查看,这个列表可以通过曲集来分组。换句话说,用户可以切换视图,来仅显示流派或艺术家或年份,等等。用户可以裁剪视图而仅看到符合手边的任务的要求的目标。这提供了不需要进一步在文件夹中导航(向下和后退)的改进的浏览技巧。相同的技巧和能力应用到其它不是作为文件存储的数据类型的模型化中。联系人,例如,可以用这样的方式呈现给用户,赋予它们常见的接口能力以及比由平面地址簿提供的更丰富的基础结构。如图2所示,虚拟文件夹系统200包括文件夹处理器210、关系数据库230、虚拟文件夹说明数据库232、其它壳文件夹组件234、文件夹处理程序组件236以及外壳浏览器和视图组件240。文件夹处理器210包括本地处理代码组件212、处理程序生成处组件214、属性记录器组件216、行集合分析程序组件218、查询生成器组件220、枚举器组件222以及属性生成处组件224。关系数据库230存储了系统中所有文件的属性。它也完全地存储一些象联系人(即,非文件条目)这样的条目。一般而言,它存储与它所包含的文件和条目的类型有关的元数据。关系数据库230从查询生成器220接收SQL查询。关系数据库230也将以每个条目一行,列为条目属性的SQL行集合发送到行集合分析程序组件218。虚拟文件夹说明数据库232包括虚拟文件夹说明。虚拟文件夹说明数据库232将数据发送给查询生成器组件220,该数据包括在文件夹中要显示的类型列表、初始过滤器和显示来自(作用域)的结果的物理位置。关于其它外壳文件夹组件234,文件夹处理器210授权给来自许多类型的条目中的现有外壳文件夹,包括所有用于处理程序或属性的文件。其它外壳文件夹组件234将来自其它文件夹的属性发送到属性生成处224。其它外壳文件夹组件也将处理程序发送到处理程序生成处214。文件夹处理程序组件236提供用于像联系人这样仅存在于数据库中的条目的代码行为。这就是使得非文件条目的行为表现类似于文件的东西。文件夹处理程序组件236将处理程序发送到处理程序生成处214。为本地处理代码组件212,文件夹处理器210直接执行基于条目的属性的某些处理程序。本地处理代码组件212将处理程序发送给处理程序生成处214。对于本地处理代码组件212和文件夹处理程序组件236,像所有名字空间一样,虚拟文件夹得为它们的条目
提供一组处理程序(环境菜单、图标、缩略图、信息提示.......)。对于这些(信息提示、数据
对象、拖放处理程序、背景环境菜单.......)中的大多数,虚拟文件夹提供用于它保存的所
有类型的共用(本地)处理程序。但是,还有那类型的程序设计者必须提供的其它的处理程
序(在条目本身中的环境菜单、可写的属性存储.......)。默认的处理程序也可以被覆盖。
虚拟文件夹为文件重新使用这个并且允许非文件条目也这样。处理程序生成处214装入ID序列并生成提供环境菜单、图标等的代码行为。一般而言,正如前面就本地处理代码组件212、其它外壳文件夹组件234以及文件夹处理程序的组件236来说明的那样,文件夹处理器210可以使用本地处理程序、外部处理程序或者授权其它外壳文件夹来获取处理程序。在被视图请求的时候,处理程序生成组件214将处理程序发送到在视图240中的外壳浏览器。处理程序生成组件214发送一个属性处理程序到属性记录器216。属性记录器216将用户的像剪贴、复制、粘贴这样的意图转换成对文件或条目的属性的修正。外壳浏览器和视图组件240将数据发送到属性记录器216,包括直接操纵(剪贴/复制/粘贴)或者元数据的编辑。总之,由于虚拟文件夹基于条目的属性而表现为一个组织,那么像移动和复制(拖放)这样的操作就成了对这些属性的编辑。例如,移动一个文档,在由作者堆叠的视图中,从作者I到作者2,意味着改变作者。由属性记录器组件216实现这个功能。行集合分析程序218装入数据库的行集合并将所有条目属性存储到外壳ID序列结构中。行集合装入虚拟文件夹的分段定义,建立一个之衙能发给数据库的SQL行。行集合分析程序组件218将ID序列发送给枚举器组件222。如前所述,行集合分析程序组件218也接收来自关系数据库230的数据,包括每个条目一行、列为条目属性的SQL行集合。查询生成器组件220建它SQL查询。查询生成器组件220接收来自枚举器组件222的数据,包括来自导航的新的过滤器。查询生成器组件220也接收来自虚拟文件夹说明数据库232的数据,包括在文件夹中显示的类型列表、初始过滤器和显示来自(作用域)的结果的物理位置。查询生成器组件220将SQL查询发送到关系数据库230。通常,查询生成器组件220包括一组行(换句话说一个表)。这就是运行查询所产生的东西。行集合分析程序组件218装入每一个行并使用列的名称,将行变换为ID序列。ID序列是众所周知的用来在名字空间中索引条目的外壳结构。做这个使虚拟文件夹正如任何其它剩余外壳的名字空间一样。而且,高速缓存数据帮助保持,代价可以很高,对数据库的访问为最小值。枚举器组件222响应虚拟文件夹的导航来工作。如前所述,枚举器组件222接疏来自行集合分析程序组件218的ID序列,并将来自导航的新的过滤器发送到查询生成器组件220。枚举器组件222也向外壳浏览器和视图组件240发送数据,其包括返回给被插入到在一个导航之后的视图中的ID序列。属性生成组件224获取ID序列和属性标识号,并为这些属性返回其值。属性生成组件224从处理程序生成组件214接收包括属性处理程序的数据。如前所述,属性生成组件224也接收来自其它外壳文件夹组件234的数据,该数据包括来自其它文件夹的属性。在视图请求的时候,属性生成组件224也向外壳浏览器和视图组件240发送数据,包括条目的属性。外壳导航和视图组件240在视窗里显示文件夹的内容,并处理所有用户与显示的文件或条目的互动,例如单击、拖曳以及定位。因而,外壳浏览器和视图组件240接收用户的动作。外壳浏览器和视图组件240也从文件夹获取它需要的关于代码行为的数据,在这里是从文件夹处理器210。如前所述,虚拟文件夹将常规文件和文件夹(也就是通常所说的目录),基于它们的元数据,而不是在磁盘上实际的物理的底层文件系统结构,以不同的的视图呈现给用户。因此,系统能够取一个存储在数据库中的属性并把它作为一个像文件夹那样的容器来表示。由于用户们已经很熟悉用文件夹工作,通过以类似方式提供虚拟文件夹,用户们可以更快地适应新系统。图3是说明例行程序300的流程图,通过这个程序用户提供了一个取回选中的条目的查询。在方块302,文件夹处理器从用户那儿获取一个查询。在方块304,文件夹处理器将该查询传给关系数据库。在方块306,关系数据库将结果返回给给文件夹处理器。在方块308,文件夹处理器以虚拟文件夹和条目的形式将结果提供给用户。图4是说明例行程序320的流程图,通过这个程序,按照默认的查询或是来自用户的查询,虚拟文件夹被建立并显示在屏幕上。在方块322,当用户第一次打开虚拟文件夹的时候,用了默认的查询。这个默认的查询是从记录中取出的。例如,音乐库的默认查询可以是显示所有由曲集分组的歌。在方块324,文件夹处理器为这个查询构建查询对象,并把这个查询传给关系数据库。在方块326,关系数据库生成查询的结果,并将这些作为数据库的行和列传回文件夹处理器。在方块328,文件夹处理器获取这些结果并将它们从行和列的数据中转换为枚举器结构,文件夹视图用它和合成的虚拟文件夹和条目来填充屏幕以便于和用户互动。在判定方块330,用户决定是否改变视图(通过给出不同的查询或“主元素”)。例如,用户可以给出“显示所有艺术家”的主元素。如果用户不想改变视图,那么例行程序返回方块324,在这里文件夹处理器把新的查询传给关系数据库,并接收结果的新的行和列,并建立新的枚举器结构。在文件夹视图清零并更新的时候,处理就像前面说的那样继续,使用枚举器将“艺术家”对象拉到屏幕上。在一个例子中,提供的曲集对象表示用户可以进入容器中。例如,双击“Beatles”曲集可以进入看到所有Beatles的歌的视图。文件夹处理器将“显示所有Beatles的歌”的查询发给关系数据库,其中该关系数据库为这些歌返回所有行和列的数据。文件夹处理器创建后来会被拉到屏幕上的所有这些歌的枚举器。在浏览虚拟文件夹的时候,用户也能够选择任意一点上的视图。在上面的例子中,在缩减为仅显示Beatles的歌后,用户可以改变视图来仅显示作为曲集的歌。将条目的视图改变成另一种表示的过程叫做“堆叠”。这是因为条目被概念上地排列成基于那个表示的“堆”。在这种情况下,歌被重排成每一不同曲集的堆。用户然后能够进入到这些堆中的一个,只看到来自那个特定曲集的歌。此外,用户能够来将剩余的歌重新排列成基于一个属性(例如:收听率)的堆。如果选择了收所率属性,来自Beatles的曲集的歌会以一、二或三星的收听率的堆来显示。每一个查询的结果取决于在这个范围里包括的物理位置。例如,可以使范围仅仅包括用户的“我的文档”里面的文件夹。换句话说,这个范围可以包括计算机上的所有文件夹,或者甚至是若干网络连接的计算机上的所有文件夹。用户能够通过范围属性页来查看并改变范围。在一个例子中,范围属性页可以通过在虚拟文件夹上右击并选择“属性”来呈现。用户可以把新的文件夹加入到范围中,或者删除以前加入的文件夹。虚拟文件夹将为一群用户提供特别的效用,这群用户是脑力劳动者。虚拟文件夹使脑力工作者可以容易地在通过文件类型、项目、案件号、作者,等等来查看文件之间切换。由于每一个脑力工作者都趋向于有不同的组织文件的方法,虚拟文件夹可以用来适应这些不同的偏好。图5是按照硬盘上的物理文件安排的文件夹结构的树形图。这个物理文件夹安排是基于的传统文件夹工具的,而传统文件夹工具是基于NTFS或其它现有文件系统的。这样的文件夹被称为为物理文件夹是因为它们的构成是基于磁盘上实际的物理底层文件系统结构。正如下面将会更详细地说明的一样,这是与虚拟文件夹相反的,虚拟文件夹创建了与位置无关的视图,它可以让用户以与现在用于操作物理文件夹的方式类似的方式来操作文件。如图5所示,文件夹400是“我的文档”文件夹。在第一层,文件夹400包括分别对应于客户1、客户2和客户3的文件夹410、420和430。在第二层,文件夹410、420和430中的每一个分别包含一个对应选中的客户的合同的文件夹411、421、431。在第三层,文件夹411,421和431中的每一个分别包含一个与2001年对应的文件夹412、422、432。在这第三层,文件夹411、421和431中的每一个还分别包含一个与2002年对应的文件夹413、423、433。显然,这对希望导航一个象图5中所示的那样的物理文件夹结构的用户造成了许多的障碍。例如,如果用户想用他已经做过的所有合同来工作,他将首先需要导航至文件夹411,用客户I的合同来工作,然后将不得不再导航到文件夹421来得到客户2的合同,并且为了客户3的合同,将再一次不得不导航到文件夹431。这样的安排使得用户很难访问所有的合同,而且一般来说阻止了对所有合同的同时的查看和操作。相似的,如果用户希望查看所有在2001年中做过的合同,他将不得不分别导航和再导航于文件夹412、422和432。正如下面将会更详细地说明的那样,本发明的虚拟文件夹提供一种改进的文件系统结构。图6是虚拟文件夹结构的树形图。正如下面将会更详细地说明的那样,虚拟文件夹创建了与位置无关的视图,它可以让用户以更方便的方式来操作他们的文件和文件夹。如图6所示,虚拟文件夹是作为堆来表示的。虚拟文件夹500是“所有条目”的文件夹。在第一层,虚拟文件夹500包括分别对应于客户、合同和年份的虚似文件夹510、520和530。正如下面将会更详细地说明的那样,这种结构使得用户能够按照想要的参数来访问文件。图7是图6中的虚拟文件夹结构的树形图,其中,在第二层,虚拟文件夹510进一步包括分别对应合同和年份的虚拟文件夹511和512。换句话说,用合同和年份进一步过滤虚拟文件夹510的客户堆。下面将会更详细地说明决定哪些文件和条目要包含在每一个虚拟文件夹中的过程。图8是图7中的虚拟文件夹结构的树形图,其中,在第三层,虚拟文件夹511包括对应于一年的虚拟文件夹513。换句话说,用年份进一步过滤虚拟文件夹511的合同堆。在已经按照客户、合同和年份构造了虚拟文件夹510、511和513的时候,显然,正如下面将会参考图9更详细地说明的那样,虚拟文件夹允许其它的构造顺序发生。图9是图6中的虚拟文件夹结构的树形图,其中,在第二层,虚拟文件夹520被进一步过滤为了对应于客户和年份的虚拟文件夹521和522。在第三层,虚拟文件夹521被进一步过滤为了对应于一年的虚拟文件夹523。图8和图9中的组织结构之间的对照,有助于对虚拟文件夹系统的灵活性的说明。换句话说,与像图5中所示的依靠位置物理文件结构相关的视图形成对比,在虚拟文件夹系统中,用户能够根据想要的参数导航于虚拟文件夹。图10是说明一个显示文档库的堆的屏幕显示600的图。如前所述,堆可以用来表示一种类型的虚拟文件夹。正如下面将会更详细地说明的那样,屏幕显示600包括快速链接单元610-613、过滤器单元620-626、行为单元630-633、信息和控制单元640-645以及虚拟文件夹堆651-655。快速链接单元包括一个“所有分类”的快速链接610、关于“所有作者”的快速链接611、“一月的工作”的快速链接612以及显示另外的快速链接的选项613。正如下面将会更详细地说明的那样,用户可以通过选中快速链接来对虚拟文件夹执行想要的导航。快速链接可以通过系统来提供,用户也可以创建一些快速链接并保存它们。过滤器单元包括“用......来过滤”指示器620、登陆栏621、“用日期”指示器622、
“年份”选择器623,“挑选一个作者”选择器624、“选择一个分类”选择器625以及“更多过
滤器”选择器626。“用......来过滤”指示器620让用户注意到下面的条目可以用来对虚
拟文件夹或条目进行过滤。登陆栏621提供了一个用户可以输入想要的新的过滤条件的区域。“用日期”指示器622让用户注意到通过从“年份”选择器623中选择日期,虚拟文件夹或条目可由所选的年份进行过滤。“挑选一个作者”选择器624使得用户可以根据一个特定的作者来过滤。“选择一个分类”选择器625使得用户可以根据选定的分类来过滤。“更多过滤器”选择器626使得用户可以在显示屏上拉出另外的过滤器。行为选择器包括“创建一个新分类”选择器630、“行为”选择器631和632以及“更多行为”选择器633。正如下面将会更详细地说明的那样,这些提供的行为可以是用于通常想要的功能,或者可能是更具体地专用于当前正在显示的虚拟文件夹类型的行为。例如,用户可以选中“创建一个新分类”选择器630来创建一个将由新的堆来表示的新分类。如前所述,行为选择器631和632可以更具体的专用于正在显示的虚拟文件夹或条目的类型。例如,当前的显示是一个文档库,用于它的“行为”选择器631和632可以是为文档具体定制的行为,例如编辑或创建附件。如果当前的库是一个相片库,那么“行为”选择器631和632可以是具体指定用于相片的行为,例如组成相簿或是与其它用户共享相片。信息和控制单元包括信息行640和641、控制行642、后退控制643以及信息行644和645。信息行640和641提供关于当前虚拟文件夹和条目导航中的信息。在这个例子中,信息行640显示当前的导航是针对一个文档库,而信息行641则显示更完整的导航,示出这个文档库是在存储器区域内的。控制行642提供许多标准控制,以及使用户通过导航回退的后退按钮643。信息行644提供关于当前导航的内容的数字信息。在这个例子中,信息行644显示,在文档库的堆中占用100MB的有41个条目。信息行645可用来提供另外的信息,例如关于选中的文件的另外的信息。文档库的堆包括“ABC公司”堆651、“备份堆”652、“商业计划”堆653、“XYZ公司”堆654、和“市况报告”655。每个堆的上面的数字指示在每一个堆中有几个条目。例如,“ABC公司”堆651显示为包括8个条目。堆的条目的总数合计为在信息行644中指示的条目数,在这个例子中如上所述为41。选择框SB是用来让用户选择想要的条目。正如下面将要就图11来说明的那样,选择“ABC公司”堆651会得到那个堆的条目的视图。图11是说明示出图10中的“ABC公司”堆651中的条目的屏幕显示的图。应当注意,信息行640和641现在指示,当前的导航正在显示“ABC公司”堆。“ABC公司”堆651显示为包括分别对应于文档1-8的8个文档751-758。信息行644相应地指示有8个条目占用20MB存储空间。图11中的文档可以进一步安排在ABC公司堆651中的堆。也就是说,正如下面将要就图12-16来说明的那样,在ABC公司堆651所代表的虚拟文件夹中,可以组成另外的虚拟文件夹来保存文档。图12是说明一个屏幕显示的图,在这个屏幕显示中为图11中的文档选中了堆叠功能。如图12所示,用户能够拉出功能框760。功能框760包括“查看”选项761、
“按......来排列图标”选项762、“堆叠”选项763、“刷新”选项764、“打开包含的文件夹”
选项765、“剪切”选项766、“复制”选项767、“撤消”选项768、“新建”选项769以及“属性”选项770。选择框SB显示在“按作者堆叠”选项763的四周。图13是说明一个屏幕显示的图,在这个屏幕显示中为图12中的堆叠功能选择了“按作者堆叠”参数。如图13所示,显示了给出各种堆叠选项的框780。堆叠选项包括“撤消堆叠”选项781、“按分类堆叠”选项782、“按作者堆叠”选项783以及“按用户堆叠”选项784。选择框SB显示在“按作者堆叠”选项783的四周。图14是说明一个屏幕显示的图,在这个屏幕显示中图13中的文件已经按作者堆叠好了。如图14所示,对791和792分别对应于作者Bob和Lisa。正如每一个堆的上面显示的数字那样,Bob堆791包括两个条目,而Lisa堆792则包括五个条目。条目758 (相应于文档8)没有作者,因此没有被包括在一个“作者”堆中。堆791和792说明了可以以多层组成堆,像是在“ABC公司”堆651中这样。因此虚拟文件夹可以形成多个层,例如“Lisa”堆792是在文档库内的“ABC公司”堆651内。图15是说明一个屏幕显示的图,在这个屏幕显示中为重新堆叠图14中的文件进一步选择了 “按分类堆叠”选项。如图15所示,选择框SB在“按分类堆叠”选项782的四周。由于这些条目中的一些已经堆叠在堆791和792中,所以“按分类堆叠”选项782的选中将重新堆叠这些条目,正如下面将要就图16来更详细地说明的那样。图16是说明一个屏幕显示的图,在这个屏幕显示中图14中的文件已经按分类重新堆叠好了。如图16所示,堆793和794分别对应“XYZ公司”和“市况报告”分类。对应于文档I和2的条目751和752,没有被指定任何另外的分类,因此不属于任何分类的堆。图17是说明一个屏幕显示的图,在这个屏幕显示中选中了物理文件夹的快速链接。选择框SB显示在“所有文件夹”快速链接616的四周。正如下面将要就图18来更详细地说明的那样,“所有文件夹”快速链接616用于物理文件夹的视图的切换。图18是说明一个显示物理文件夹的屏幕显示的图。示出的物理文件夹包括包含图17中的虚拟文件夹堆中的文件。也就是说,图17中的堆651-655中包含的条目也同样包含在系统的某些物理件夹中。这些在图18中显示为位于当前计算机的“我的文档”文件夹851、位于当前计算机的“桌面”文件夹852、位于硬盘C:上的“Foo”文件夹853、位于服务器上的“我的文件”文件夹854、位于外部驱动器的“外部驱动器”文件夹855、位于另一台计算机上的“我的文档”文件夹856以及位于另一台电脑上的“桌面”文件夹857。如图18所示,用户能够从图17的虚拟文件表示切换到图18的物理文件表示。这使得用户能根据当前任务的需要,在虚拟文件表示和物理文件表示之间来回切换。物理文件夹851-857的不同位置也说明了虚拟文件系统的范围相对比较宽广,正如下面将要更详细地说明的那样。图19是说明例行程序880的流程图,通过它用户可以直接操作虚拟文件夹。正如下面将要更详细地说明的那样,用来操纵虚拟文件夹的机制与当前用于操作常规文件夹的(例如,单击和拖曳、复制、粘贴,等等)机制相似。如图19中所不,在方块882,系统提供一个规定的动作,用户可以执行它来直接操作表现为显示对象的虚似文件夹。在方块884,用户执行一个规定的动作。如前所述,一个例子可以是用户单击并拖曳一个虚拟文件夹来将它的内容复制到另一个虚拟文件夹。在方块886,通过用户执行的动作,按规定地操作了虚拟文件夹和/或内容。图20是说明一个屏幕显示的图,在这个屏幕显示中一个新的西海岸堆656被添加到了图10的堆中。西海岸堆656是通过用户创建新的“西海岸”分类而形成的。在它刚创建时,新的西海岸堆656会是空的,有零个条目。在图20的实施例中,已经有两个条目添加到了西海岸堆656中。一种添加条目到堆中的方法是选择一个特定的条目,或是修改这个条目的元数据,或是添加另外的分类到其元数据中,例如像图20中的实施例中做的那样将分类“西海岸”添加到两个条目中。这个过程说明,分类数据是条目的元数据属性,一种特另ij(ad-hoc)属性。换句话说,这种类型的属性没有任何隐含的意义,并可以由用户赋予任意的值。例如,分类“属性”可以具有任何值,而“作者”属性必须是一个人的名字。正如下面将要就图21来更详细地说明的那样,条目也可以被单击并拖曳来从其它堆复制到西海岸堆656中(在这种情况下,条目的类别被自动更新为包括“西海岸”)。在这点上,图20显示选择框SB在ABC公司堆651的四周,为复制它的内容做准备。图21是说明一个屏幕显示的图,在这个屏幕显示中直接操作被用来从ABC公司堆651中复制文件到西海岸堆656。也就是说,如图20所示,用户选中ABC公司堆651,然后如图21所示,用户已经单击并拖曳这个堆,将其复制到西海岸堆656。因此,在图20中具有两个条目的西海岸堆656,现在显示为总共包括十个条目,包括来自ABC公司堆651的另外的八个条目。当来自ABC公司堆651的条目被复制到西海岸堆656的之后,通过将这八个条目的分类说明修改为除了初始的“ABC公司”分类之外也包括“西海岸”分类,这就完成了。这里说明了可执行的一种直接操作。直接操作的另一个例子是,右键点击一个条目并选中删除。在一个实施例中,在用户选中删除功能之后,用户被询问这个条目是否将要彻底删除,还是仅仅从当前虚拟文件夹移除。如前所述,如果这个条目仅是要从当前虚拟文件夹分类堆移除,则可以通过从条目的元数据中移除想要的分类来完成。也就是说,如果已经从ABC公司堆651复制到了西海岸堆656的这些条目中的一个后来要从西海岸堆656中移除,这可以通过修改特定文件的分类数据不再包括“西海岸”分类来完成。图22是说明为系统动态生成新的过滤条件的例行程序900的流程图。过滤条件被用来操作虚拟文件夹。过滤条件实质上用作对一组条目进行缩减的一组工具。在一个实施例中,过滤器包括元数据分类和它们的值(在用户界面中作为可点击的链接或是下拉菜单提供给用户)。用户点击一个过滤条件来对当前在显示屏上的条目的结果集合进行过滤。图22说明了过滤器是怎样动态生成的。如图22所示,在方块902,在当前显示屏上的集合中的条目的属性(来自元数据的)被再次查看。在方块904,基于条目的共有的属性,被提议的过滤条件被动态地生成。在方块906,被提议的过滤条件被提供给了用户,用于对过滤条件的可能选择。作为这个过程的一个例子,系统可再次查看一组条目的属性,如果这些条目普遍地含有作为属性的“作者”,这个过滤器可以提供一个用作者来过滤的作者列表。然后,通过点击一个特定的作者,那些不具有那个作者的条目会被从显示屏上的组里移除。这个过滤过程提供给了用户一个机制来对在显示屏上的一组条目进行缩减。图23是说明用于基于选择的过滤条件来进行过滤的系统的例行程序920的流程图。在方块922,用户或是输入一个新的过滤条件或是选择一个系统已经提供了的过滤条件。如前所述,过滤条件可以由系统动态地生成,也可以被预先设置好。在方块924,对来自显示屏上的集合的条目就它们的选定的属性是否匹配过滤条件进行考察。例如,如果过滤条件是由“Bob”创作的条目,那么,根据条目的作者属性是否包括“Bob”进行考察。在方块926,那些选定的属性不匹配过滤条件的条目被从显示屏上的集合中移除。图24-29概括地说明了呈现在屏幕显示上的过滤过程。正如下面将要就图24_29来说明的那样,在一个实施例中,过滤一般按照下面的步骤来操作。在用户在一个过滤值上点击后,在过滤器范围之外的条目动画地离开屏幕。设计动画通常是使条目正被移除以及没有新的条目正被添加变得显而易见。后退按钮643可以由用户选择来撤消该过滤操作。在一个实施例中,创建了一个导航堆,它包含了顺序的过滤操作,可以用来在选中后退按钮643的时候撤消每一个过滤动作。每一次选中一个过滤值,信息区域640和641会更新来指示当前的过滤值。在一个实施例中,在选中一个过滤值后,为用户提供一个用于将新的快速链接存储到当前过滤器的导航的选项,正如下面将要就图30来更详细地说明的那样。在选中过滤值后,过滤器控制可以被更新来适合在视图中剩余的条目。图24是说明一个屏幕显示的图,在这个屏幕显示中,图10中的堆已经用条件“AB”过滤了。如图所示,在过滤器区域621,用户已经键入了条件“AB”。信息行640和641指示在显示屏上的条目是那些已经用条件“AB”过滤了的。如图所示,ABC公司堆651仍然包括八个条目,而备份堆652现在则包括三个条目,XYZ公司654也包括三个条目。信息行644因此指示,总计14个条目,占用总计35MB存储空间。图25是说明一个屏幕显示的图,在这个屏幕显示中,图10中的堆已经用条件“ABC”过滤了。关于图24中的过滤条件“AB”,用户仅仅键入附加的字母“C”来获得完整的过滤条件“ABC”。如图25所示,信息行640和641现在指示在显示屏上的条目是那些包含条件“ABC”的。ABC公司堆651仍然显示包括八个条目,而备份堆652现在则仅包括两个条目。XYZ公司654消失了,因为它的内容中没有匹配“ABC”过滤器的。信息行644因此指示,总计10个条目,占用总计25MB存储空间。这样,图24和25提供了一个用户可以怎样输入新的过滤条件,以及这些过滤条件后来是怎样用来过滤在显示屏上提供的条目例子。用户可以利用后退按钮643来在过滤过程中回退。正如前面就图10来说明那样,后退按钮允许用户在导航中回退。关于图24和25中的例子,在图25中用条件“ABC”过滤之后,用户可以选择后退按钮643来回退过滤过程的一个步骤,这会返回到图24的状态。换句话说,在另一个实施例中,后退按钮643可以清除全部的过滤条件,这样可以返回到过滤发生之前的状态。既然这样,通过按图25中的后退按钮643,用户能够返回到图10的状态。在一个实施例中,除了后退按钮之外,还为用户提供了一个辅助装置来在导航中回退,或修改过滤的导航。这个辅助的装置包括允许用户直接访问和修改信息行641,相应地改变过滤的导航。也就是说,通过直接访问和修改信息行641,用户可以移除一个或更多的使用了的过滤器,或者修改任何使用了的过滤器的值。这个功能部件在2003年4月17申请的美国专利申请N0.10/420, 040中有非常详细的说明,其功能被相同地指定了,因此结合全部作为参考。定时器也可以用来与在过滤条件中键入的用户相结合,正如在图24和25中示出的那些那样。定时器被用来监视用户键入的间歇。在一个选定的没有键入的时间间隔之后,应用过滤器。例如,在图24的状态中,用户已经在“A”和“B”之间没有明显时滞地键入了过滤条件“AB”。在键入“AB”之后,用户停顿,从而产生了如图24中所示的应用了过滤条件“AB”的状态。经过若干时间后,用户加上字母“C”来完成过滤条件“ABC”,然后再次停顿,在此时过滤条件“ABC”被应用,如图25说明的那样。在一个实施例中,在用户已经在过滤器区域621中键入了一个过滤条件,然后选择另一个过滤器或导航,导航的状态被更新,并又令在过滤器区域621中的过滤条件为空。另外,正如下面将要参考图26-29来更详细地说明的那样,基于某些过滤条件的选中,其它过滤器器控制可以被更新。图26是说明一个屏幕显示的图,在这个屏幕显示中系统提供的过滤条件“2002年”被选中了。如前所述,在用日期指示器622的下面,年份选择623包括年2000、2001或2002。选择框SB显示为在年2002的四周,指示用户正选中它作为想要的过滤条件。图27是说明一个屏幕显示的图,在这个屏幕显示中过滤条件“2002年”已经被应用了。也示出了“选择一个月份”的选择器623A的进一步选中。如图27中所示,在应用了过滤条件“2002”之后,堆中的条目的数目已经减少了。更具体地,ABC公司堆651现在包括六个条目,而备份堆652现在包括8个条目,商业计划堆653现在包括三个条目,XYZ公司堆654现在包括五个条目。信息行644现在指示总计22个条目,占用总计50MB存储空间。信息行640和641现在指示,在显示屏上显示的条目是已经被过滤过,包含过滤条件“2002”的那些。图28是说明一个屏幕显示的图,在这个屏幕显示中出现一个用于选择一个月份来过滤的列表。提供了包括月份的列表的框950。显示屏上已提供了框950,这是由于用户选中了“选择一个月份”选择器623A。选择框SB显示在I月份的四周。图29是说明一个屏幕显示的图,在这个屏幕显示中图28中的堆已经被一月份进一步过滤了,并且进一步显示过滤条件“天”。如图29所示,信息行640和641现在指示在显示屏上的是已经用条件“一月”过滤了的那些。而备份堆652现在显示为包括两个条目,而商业计划堆653也显示为包括两个条目。信息行644指示显示屏上有总计四个条目,占用总计IOMB存储空间。如果用户想要进一步过滤关于特定的日子的结果,提供了“选择一天”选择器623B。正如前面就图24-29说明的那样,过滤条件可以由系统提供,也可以由用户键入。一旦选中了一个过滤条件,给出的剩除的过滤条件可以被更新(例如,在图26中年份2002”被选中后,在图27中的用于选择一个年份的选项就不再给出了,替代地是提供了“选择一个月份”的选项)。如上所述,后退按钮643可以由用户选中来在过滤过程中进行回退。例如,在图29中月份“一月”已经选中后,用户可以选中后退按钮643来回退过滤过程到年份“2002”,如图27所示。过滤器菜单也可以包括和前面就图15和16来说明的堆叠功能
相似地工作的“按......来堆”功能,例如,“文件类型”过滤器可以具有关于“Excel”、
“PowerPoint”、“Word”、还有“按文件类型来堆叠”的选择。选择“按......来堆叠”功能
视图为改变显示不同文件类型的堆。通常,过滤器可以设置成应用于文件或条目的不同属性。在一个实施例中,过滤器可以根据不同的类型来分类,例如:字母索引;离散值;日期;以及数值范围。关于字母索引的典型属性可以包括名字、作者、艺术家、亲密联系人名、所有者、文档的作者、文档的标题、文档的主题以及说明。关于离散值的典型属性可以包括位置、文件类型(申请的名字)、风格、轨道、年代(关于音乐)、收听率(关于音乐),比特率、受保护的、文档分类、文档页数、文档备注、相机模型、尺寸、产品名称、产品型号、图像X、图像Y以及文档创建的时间。关于日期的典型属性可以包括上次访问、上次修改、创建、拍摄(关于图片)。关于数值范围的典型属性可以是文件大小。显而易见,上面就图24-29来说明的过滤器允许用户缩小条目的列表来查找感兴趣的特定条目。作为一个具体的例子,根据上面说明的过程,用户可以缩小文档的当前列表来仅仅显示由一个特定的人作出并且在上星期编辑过的Microsft Word文件。这个功能性使得用户能够在具有很多条目的列表中找到特定的条目,使用户不必人工地扫描列表中的每一个条目。图30是说明创建一个新的快速链接的例行程序940的流程图。正如下面将更详细地说明的那样,快速链接是预定义的链接,用户可以在上面点击来创建他选中的这组条目的视图。在一个实施例中,快速链接可以被看作是一种类型的主元素。快速链接提供了一种用于检索虚拟文件夹的机制。单击一个快速链接可以将用户带到一个想要的文件夹(以与单击“收藏夹”将用户带到一 Web站点同样的方式)。快速链接可以由系统预定义,或者可以由用户来设定。例如在“所有作者”上点击可以获得一个按作者堆叠的视图。在“所有文档”上点击可以获得一个关于所有存储区域的所有文档的平面视图。用户也可以创建他们自己的快速链接。如图30所示,在方块942,用户在显示屏上做出一个选择来指示快速链接应该从当前的过滤条件还是导航里形成。在方块944,用户提供用于新的快速链接的新名称。在方块946,新的快速链接被保存并且在显示屏上快速链接部分提供了新的快速链接的名称。图31是说明用于基于图29中的过滤创建一个叫做“一月工作”的新的快速链接的屏幕显示的图。如前所述,在图29中,堆已经用一月份进行过滤了。在图31中,用户已经指示图29中的过滤应该作为新的快速链接来存储,并且已经将新的快速链接命名为“一月工作”。从而,新的一月工作快速链接612显示在显示屏的快速链接部分。至于形成新的快速链接,通常提供给用户一个像“将这个集合作为一个快速链接来存储”这样的选项。图32是说明一个屏幕显示的图,在这个屏幕显示中快速链接“所有作者”被选中了。如图32所示,选择框SB显示在“所有作者”选择611的四周。其它可以由快速链接访问的集合的例子包括“所有作者”、“最近的文档”、“所有文档”、“我共享了的所有文档”、“所有我创作的文档”、“所有不是我创作的文档”、“桌面”以及“所有类型”。
图33是说明一个屏幕显示的图,在这个屏幕显示中给出了图32中的所有条目的作者。如图33中所示,提供了一个信息行950,它指示了用于显示条目的名称、作者、修改日期、类型、大小、条目的位置的列。分别对应于作者1-4显示了作者951-954的列表。图34是说明一个屏幕显示的图,在这个屏幕显示中已经从图33中的列表中选中了“作者I”。作者I的文档包括文档951A和951B,分别对应于文档I和文档2。文档951A显示为,由作者I创作,2001年7月11日修改,是Microsoft Excel文件,占用282Kb存储空间,是从\\服务器1\文件夹2的位置得到的。文档951B显示为,由作者I创作,2002年12月22日修改,是Microsoft Word文件,占用206千字节存储空间,物理地存储在我的文档\文件夹I的位置中。951A和951B的位置也说明了,本发明中的虚拟文件夹可以包含来自不同物理位置的条目,正如下面将更详细地说明的那样。图35是说明用于创建新的库的例行程序960的流程图。库的一个例子是前面参考了图10来说明的文档库。通常,库是由可以连接在一起的有用类型的文件的大组构成。例如,相片可以是一个库,音乐可以是另一个,而文档可以是另一个。库可以提供涉及特定类型的条目的工具和行为。例如,在相片库中,可能会有涉及操作相片的工具和过滤器,像创建幻灯片放映或是共享相片这样的。如图35中所示,在方块962,创建一个新的库,用来包括具有选定的特性的条目。在方块964,选中的条目被分组到库中。在方块966,提供涉及条目的选定的特性工具和/或行为或者其它想要的功能。图36说明一个示出了有效库的集合的屏幕显示的图。如图36中所示,这些库包括文档库971、相片和视频库972、音乐库973、消息库974、联系人库975以及一个电视和电影库976,还有所有条目库977。所有条目库977显示为包括275个条目,是结合来自所有其它库的条目的总数。信息行644指示,总计275个条目,占用总计700MB存储空间。应当注意,文档库971是前面就图10来说明的那个库。图37是说明用于定义虚拟文件夹的集合的例行程序990的流程图。正如下面将更详细地说明的那样,虚拟文件夹系统能够从若干物理位置(例如,不同的硬盘、不同的计算机、不同的网络位置)提出条目,所以,对于用户来说,所有的条目都很容易访问。例如,可以在单个显示屏,将来自若干物理位置的音乐文件提供给用户,并立刻操作所有这些文件。如图37中所示,在方块992,定义了一个用来提取条目的物理位置的范围。在方块994,响应于查询,从定义在这个范围中的物理地址中提取条目。在方块996,所有通过查询提取出来的条目都在单个显示屏上给出了。图38是说明各种来源的框图,它可以形成一个虚拟文件夹集合的范围。如图38中所示,系统1000可以包括当前计算机1010、另一计算机1020、外部可移动存储器1030以及网络上的位置1040。总的范围1001被描述为包括所有的物理地址,从这些地址中抽取用户的条目来创建集合。这个范围可以由用户设定和修改。如前所述,其它的图已经说明了条目可以来自不同的物理位置,例如图34示出了来自一个服务器和当前计算机上的“我的文档”文件夹中的不同文档,而在图18中则示出了物理地存储在若干位置上的物理文件夹。图39是说明用于在虚拟文件夹集合中加进非文件条目的例行程序1080的流程图。非文件条目和典型地位于物理文件存储器中文件条目形成对比。非文件条目的例子会是像电子邮件、联系人这样的东西。如图39中所示,在方块1082,数据库用来包含连同可以由查询来检索的文件条目一起的非文件条目。在方块1084,响应查询,非文件条目和文件条目都被提取出来匹配这个查询。在方块1086,匹配查询的非文件条目和文件条目都显示在显示屏上。图40是说明示出了各种非文件条目的屏幕显示的图。如图40中所示,条目已经被过滤为包括“John”的那些。这些条目显示为包括联系人条目1101、电子邮件条目1102以及文件条目1103和1104。联系人条目1101和电子邮件条目1102是非文件条目。当前的系统允许这样的非文件条目和常规文件一起被加入进来,以便它们可以按用户想要的那样组织和操作。正如前面就图2说明的那样,这样的非文件条目可以全部包括在还包括文件属性信息的关系数据库230中。在本发明的优选实施例已经示例性地说明了,在不偏离本发明的精神和范围的前提下做出的各种改变也是可以的。
权利要求
1.一种在具有显示器和用来存储条目的存储器的计算机系统中查看选中的条目的方法,该方法包括: 导航至想要的条目的集合的视图; 保存一个到想要的条目的集合的链接; 为链接提供一个名称;以及 在显示屏上显示所述链接,这样,通过在所述链接上点击,用户可以返回至想要的条目的集合的视图。
2.如权利要求1所述的方法,其特征在于,导航至想要的条目的集合的视图包括过滤条目组。
3.如权利要求1所述的方法,其特征在于,想要的条目的集合包括一个或多个虚拟文件夹。
4.如权利要求1所述的方法,其特征在于,在显示屏上,所述链接的名称和多个另外的链接的名称一起被显示在显示屏上,用户也可以选择所述另外的链接来返回想要的条目的集合的视图。
5.如权利要求1所述的方法,其特征在于,想要的条目的集合包括存储在不同物理位置的条目。
6.如权利要求5所述的方法,其特征在于,所述不同物理位置包括当前计算机,以及不同的计算机、网络上的位置和外部存储装置中的至少一个。
7.如权利要求1 所述的方法,其特征在于,想要的条目的集合包括文件条目和非文件条目。
8.如权利要求7所述的方法,其特征在于,非文件条目包括联系人和电子邮件中的至少一种。
9.一种用于查看条目方法,该方法包括: 导航至想要的条目的集合的视图; 保存一个到想要的条目的集合的链接; 为链接据供一个名称;以及 在显示屏上显示所述链接,这样,通过在所述链接上点击,用户可以返回想要的条目的集合的视图。
10.如权利要求9所述的方法,其特征在于,导航至想要的条目的集合的视图包括过滤条目组。
11.如权利要求9所述的方法,其特征在于,想要的条目的集合包括一个或多个虚拟文件夹。
12.如权利要求9所述的方法,其特征在于,想要的条目的集合包括存储在不同物理位置的条目。
13.如权利要求9所述的方法,其特征在于,想要的条目的集合包括文件条目和非文件条目。
14.一种用于查看选中的条目的系统,包括: 用于导航至想要的条目的集合的视图的装置; 用于保存一个到想要的条目的集合的链接的装置;以及用于在显示屏上显示所述链接的装置,这样,通过选择所述链接,用户可以返回想要的条目的集合的视图。
15.如权利要求14所述的系统,其特征在于,进一步包括用于将作为导航至想要的条目的集合的一部分的条目组进行过滤的装置。
16.如权利要求14所述的系统,其特征在于,进一步包括用于提供包括在想要的条目的集合中的虚拟文件夹的装置。
17.如权利要求14所述的系统,其特征在于,进一步包括用于从不同的物理位置中提取要包括在想要的条目的集合中的条目的装置。
18.如权利要求14所述的系统,其特征在于,进一步包括用于把要包括在想要的条目的集合中的文件条目和非文件条目提取出来的装置。
19.一种在具有显示器和用来存储条目的存储器的计算机系统中显示条目的集合的方法,该方法包括: 创建一个库以包括具有一个或多个指定的元数据属性的条目; 自动地将具有一个或多个指定的元数据属性的条目分组到库中;以及 提供一个或多个用于操作库中的条目的工具。
20.如权利要求19所述的方法,其特征在于,一个或多个指定的元数据属性中的至少一个涉及一个特定类型的条目。
21.如权利要求20所述的方法,其特征在于,至少一个指定的元数据属性是文档、相片、音乐、消息、或联系人中的一`个。
22.如权利要求19所述的方法,其特征在于,所述库包括一个或多个虚拟文件夹
23.如权利要求19所述的方法,其特征在于,多个包括在库中的条目物理地存储在不同的物理位置。
24.如权利要求23所述的方法,其特征在于,不同的物理位置包括当前计算机,以及不同的计算机、网络上的位置和外部存储装置中的至少一个。
25.如权利要求19所述的方法,其特征在于,包括在库中的条目包括文件条目和非文件条目。
26.如权利要求25所述的方法,其特征在于,非文件条目包括联系人和电子邮件中的至少一种。
27.一种用于显示条目的集合的方法,该方法包括: 创建一个库以包括具有一个或多个指定的元数据属性的条目; 自动地将具有一个或多个指定的元数据属性的条目分组到库中;以及 提供一个或多个用于操作库中的条目的工具。
28.如权利要求27所述的方法,其特征在于,一个或多个指定的元数据属性中的至少一个涉及一个特定类型的条目。
29.如权利要求27所述的方法,其特征在于,所述库包括一个或多个虚拟文件夹。
30.如权利要求27所述的方法,其特征在于,多个包括在库中的条目物理地存储在不同的物理位置。
31.如权利要求27所述的方法,其特征在于,包括在库中的条目包括文件条目和非文件条目。
32.如权利要求31所述的方法,其特征在于,非文件条目包括联系人和电子邮件中的至少一种。
33.一种用于显示条目的集合的系统,包括: 用于创建一个库以包括具有指定的元数据属性的条目的装置; 用于自动地将具有 指定的元数据属性的条目分组到库中的装置;以及 用于提供一个或多个用于操作库中的条目的工具的装置。
34.如权利要求33所述的系统,其特征在于,进一步包括用于将来自不同的物理位置的条目加入到库中的装置。
35.如权利要求33所述的系统,其特征在于,进一步包括将文件条目和非文件条目加入到库中的装置。
全文摘要
一种基于共同元素的用于过滤和组织来自计算机的存储器的条目的系统和方法。根据本发明的一个方面,提供了用于操作条目的过滤器。过滤器本质上是用来缩减一组条目的工具。在一个实施例中,基于分开的条目的属性被动态地生成过滤器。这个系统利用了虚拟文件夹。虚拟文件夹将常规文件和文件夹,基于它们的元数据而不是在磁盘上实际的物理的底层文件系统结构,以不同的视图呈现绐用户。根据发明的另一方面,提供了快速链接。在一个实施例中,快速链接提能够在上面点击来生成条目组的有用的视图的一组预定义的链接(例如,位于显示屏的左边的)。根据发明的另一方面,提供了库。库是由可以联系在一起的有用类型的条目的大量的组构成。
文档编号G06FGK103150316SQ20121034699
公开日2013年6月12日 申请日期2003年5月15日 优先权日2003年3月27日
发明者S·A·卡斯顿, J·F·莫尔, K·M·塔布斯, R·伊凡诺维奇, D·D·德沃契克, R·M·邦克斯, P·L·米纳 申请人:微软公司