在线索化应用中高效存储缩进式线索的制作方法

文档序号:6404374阅读:198来源:国知局
专利名称:在线索化应用中高效存储缩进式线索的制作方法
技术领域
本发明一般地涉及数据管理,更具体地说涉及管理层次存储的数据。
背景技术
层次数据集合非常有用也很普遍。这种数据集一般由多个记录组成。在层次记录集合中,一个记录可具有多个“孩子”,这些孩子与该记录有关,并存在于所述层次的较低级别上。这一记录称为所述孩子记录的“双亲”记录。记录的孩子可具有孩子,如此等等,只受限于数据库的大小。在单个记录的孩子集合中,对孩子进行排序,使得存在第一孩子、第二孩子等等,这经常是很有用的。
迄今为止,这些层次数据集的应用受限于可用来管理所述数据的工具的效率。在数据库中存储层次数据的传统方法包括多次代价昂贵的调用以更新和/或查询数据库。例如,为了选择记录的第二孙子,需要三次查询。第一次查询选择该记录的孩子。第二次查询选择该孩子的第一个孩子。第三次查询选择该孩子的第二个孩子。

发明内容
一般地说,在一个方面,本发明描述了一种方法、装置和计算机可读介质,用于在层次记录集合中检索记录,该层次记录集合具有多个层级和多个层深,每个记录都具有一个在所述层次记录集合中唯一的标签。它包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合;以及获取所选择的记录。
具体的实现可包括下述特征中的一项或多项。“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。“标识出一个记录”包括从用户接收对一个记录的选择;以及从用户接收命令;并且其中,基于来自用户的命令来修改所述标签。每个记录都具有一个或多个字段,并且多种实现可包括在显示器上显示每个所获取的记录的一个字段,其中每个字段在显示器上的位置表示相应的所获取的记录的层深和层级。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;并且,修改所述标签包括根据来自用户的命令在至少一个数位处进行选择;以及根据来自用户的命令改变所选择的数位的值。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所述来自用户的命令请求检索所标识的记录的孩子;并且修改所述标签包括选择与所标识的记录的层深相对应的数位;以及将对应于与所选择的数位相对应的层深之下的层深的每个数位的值设置成通配值。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所述来自用户的命令请求检索所标识的记录的双亲;并且修改所述标签包括选择与所标识的记录的层深相对应的数位;以及将所选择的数位的值设置为空值。每个记录表示一个消息或一个文件夹中之一。
一般地说,在一个方面,本发明描述了一种方法、装置和计算机可读介质,用于将新记录添加到具有多个层级和多个层深的层次记录集合中,所述层次记录集合中的每个记录都具有一个在所述层次记录集合中唯一的标签。它包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;将所述键值添加到所述新记录中;以及对所述层次记录集合只进行一次索引,从而将所述新记录添加到所述层次记录集合中,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合。
具体的实现可包括下述特征中的一项或多项。“标识出一个记录”包括从用户接收对一个记录的选择。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所标识的记录表示一个消息;标识一个记录还包括接收来自用户的命令,该命令请求回复所述消息;并且,修改所述标签包括选择一个数位,该数位对应于一个层深,该层深紧邻在所标识的记录的层深之下;以及增加所选择的数位的值。“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。每个标签包括多个数位;每个数位的位置表示一个层深;每个数位的值表示一个层级。
一般地说,在一个方面,本发明描述了一种方法、装置和计算机可读介质,用于在具有多个层级和多个层深的层次记录集合中选择记录,每个记录都具有一个在所述层次记录集合中唯一的标签。它包括在所述层次记录集合中标识出一个记录;修改所述标签;以及对所述层次记录集合只进行一次索引,从而在所述层次记录集合选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将修改后的标签应用到所述层次记录集合。
具体的实现可包括下述特征中的一项或多项。每个标签包括多个数位;每个数位的位置表示一个层深;每个数位的值表示一个层级。“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
本发明的实现具有多种优点,包括下述优点中的一项或多项。本发明的实现允许只利用对数据库的单次访问就可以操纵该数据库,其中该数据库表示了一种缩进式线索(thread)化讨论(discussion)。例如,通过单次数据库访问例如查询或调用就可以添加、删除以及检索消息。
在下面的附图和描述中给出了一个或多个实现的细节。其他特征从下面的具体实施方式
、附图和权利要求看来也是很清楚的。


图1示出了缩进式线索化讨论的显示。
图2的流程图示出了根据一种实现,在缩进式线索化讨论中检索消息的双亲的过程。
图3的流程图示出了根据一种实现,在缩进式线索化讨论中检索消息的孩子的过程。
图4的流程图示出了根据一种实现,向缩进式线索化讨论添加消息的过程。
本说明书中使用的每个标号中前面的(多个)数位表示该标号首次出现的附图的号码。
具体实施例方式
层次数据的一种常见类型是缩进式线索化讨论。缩进式线索化讨论最初只出现在因特网新闻组中,作为一种管理并显示在多个参与者之间进行的讨论的方法,已经越来越普遍。缩进式线索化讨论管理工具现在已出现在消费品例如电子邮件软件程序中。
图1示出了缩进式线索化讨论的显示。缩进式线索化讨论开始于一个用户在对多个用户可用的论坛中张贴消息102,其中所张贴的消息不是对另一个消息的回复。这一消息在此称为讨论的“源”消息。任何源消息都构成了一个线索的“头”。因此,消息102既是讨论的源消息,也是线索头。对消息的所有回复都是线索的一部分。当然,论坛可以具有多个讨论。
当用户张贴对消息的回复时,所述回复一般显示在该消息之下,并且缩进一次。任何具有回复的消息都是某个线索的头。因此,一个讨论可具有许多线索。线索头相对于其回复的消息缩进一次。
消息104是对消息102的回复。因此,回复104显示在消息102之下,并缩进一次,如图1所示。对回复104的回复106再缩进一次。对回复104的回复106的回复108进一步缩进一次。
当某个用户张贴出对源消息102的另一个回复110时,回复110示出为仅缩进一次,并示出在消息104及其孩子106和108之下。对源消息102的后续回复112也示出为缩进一次,并示出在消息110之下。对消息112的回复114示出为缩进两次并在消息112之下。
诸如图1之类的显示使得用户可迅速理解讨论层次结构以及每个消息在层次中的位置。消息在层次中的位置可以按照层次的两个维度来描述级别与深度。消息的深度是包含该消息的线索的数量。例如,参考图1,消息108的深度是3,因为它被以消息106、104和102开头的线索所包含。源消息例如消息102的深度是零。
特定深度处的消息的级别表示该特定深度处在该消息之前的消息的数量。例如,参考图1,消息112的级别是3,因为它的深度是1,并且其前面有消息110和104,后二者的深度也都是1。每个层深内的先后顺序可通过任何数量的因素或其结合来确定。在线索化讨论组中,最经常使用的是消息的时间顺序,其由张贴每个消息的时间和日期所确定。当层次数据集中的记录表示容器(container)例如文件夹时,可以使用文件夹的名称的字母顺序。另外,所述显示的用户可以选择记录中的任何字段,因此使得该字段的内容来确定先后顺序。源消息例如消息102的级别是零。
再次参考图1,单个层级处的消息例如消息104、110和112按照时间顺序示出,而消息的孩子(即对该消息的回复、对这些回复的回复等等)示出在该消息之下,相同层级处的下一个消息之上。向用户显示的消息一般存储在某种数据库中,例如一张表中。该表的每一行(row)表示一个消息。每个消息具有多个字段,例如主题、作者、正文、张贴日期等等。每一列(column)表示一个字段。
管理这种缩进式线索化讨论的传统方法是非常低效的。一般地,或者在创建新消息时必须更新该表的多个行,或者需要进行多次查询来显示一个缩进式线索。需要更新的行数可能大到线索中的消息数量。
本发明的实现将一个标签与层次记录集合中的每个记录相关联,该标签在层次记录集合中是唯一的。所述标签一般是记录的一个字段。表1示出了根据一种实现,表示图1的讨论的数据库表的一部分。
表1

每个标签都是具有多个数位的数字,每个数位表示层次中的一个深度。表1的层次具有4个深度,因此每个标签具有4个数位。在一种实现中,所述数位被安排成最高有效位表示层次的第一深度(即源消息的深度),下一个最高有效位表示层次的第二深度,如此等等。其他实现采用其他数位安排方式。
每个数位的值表示层次中的级别。假设表1的层次具有4个级别。那么,每个数位可具有范围在从0到3的值。值0表示层次中的该深度处没有消息。当然,也可支持其他深度和级别范围,本领域内的技术人员在阅读本说明书后很清楚这一点。一种实现支持16个级别和16个深度。在该实现中,标签是“大整数”表示的16个数位(16-digit)的十六进制数,它是所具有的值从-263到263的有符号64位数。
每个标签唯一地标识出其记录在层次中的位置。例如,标签“3100”示出了该记录是源消息的第三个孩子的第一个孩子。
所公开的标签的一个优点在于记录的标签可通过修改相关记录的标签而迅速且容易地确定,无需对数据库进行索引。
图2的流程图示出了根据一种实现,在缩进式线索化讨论中检索消息的双亲的过程200。过程200接收来自用户的命令(步骤202)。该命令标识出消息108,并请求检索消息108的双亲。过程200修改消息108的标签以产生一个键值。为此,过程200首先选择与消息108的层深对应的数位(步骤204)。参考表1,消息108的深度为3。因此,过程200选择消息108的标签的第3最高有效位。每个消息的深度不必存储在该表中,而是可以利用每个数位所表示的层深来实时确定。当标签具有的数位是按照层深升序排列时,例如表1的标签,则可以通过简单地选择最低非零有效位来选择与消息的层深对应的数位。
过程200然后将所选择的数位的值设为空值(步骤206)。在表1的标签中,空值是零。当然,也可选择其他值作为空值。所获得的键值是“1100”,这是消息106(消息108的双亲)的标签。过程200然后通过将该键值应用到数据库来对数据库仅进行一次索引(步骤208),从而选择了消息106的记录。过程200然后获取消息106(步骤210),并将消息106显示给用户(步骤212)。
图3的流程图示出了根据一种实施例,在缩进式线索化讨论中检索消息的孩子的过程300。过程300接收来自用户的命令(步骤302)。该命令标识出消息104,并请求检索以消息104开头的线索中的所有消息。这些消息包括消息104的孩子、消息104的孩子的孩子等等。
过程300修改消息104的标签以产生一个键值。为此,过程300首先选择对应于消息104的层深的数位(步骤304)。参考表1,消息104的深度为1。因此,过程300选择消息104的标签的最高有效位。过程300然后将与在所选择的数位的层深之下的层深相对应的每个数位的值都设为通配值(步骤308)。所获得的键值是“1XXX”,其中“X”表示可匹配任何值的通配值。
在一种实现中,将键值应用到数据库,在数据库中选择具有与该键值相匹配的标签的所有记录。过程300通过将该键值应用到数据库,对数据库仅进行一次索引(步骤310),从而选择以消息104开头的线索中的消息的记录。参考图1,键值“1XXX”与对应于消息106和108的记录的标签相匹配。过程300然后获取消息106和108(步骤312),并将消息106和108显示给用户(步骤314)。
过程300也可用于删除消息。当删除消息时,也删除其所有孩子。过程300选择一个消息及其所有孩子。然后删除与所选择的消息对应的记录。
图4的流程图示出了根据一种实现,将消息添加到缩进式线索化讨论的过程400。过程400接收来自用户的命令(步骤402)。该命令标识出消息114,并请求回复消息114。过程400修改消息114的标签以产生一个键值。为此,过程400首先选择与某个层深对应的数位,所述某个层深紧邻在消息114的层深之下(步骤404)。参考表1,消息114的深度为2。因此,过程400选择消息114的标签的第三最高有效位。过程400然后增加所选择的数位的值(步骤406)。所获得的键值是“3110”。过程400然后通过将一个以所述键值作为标签的记录添加到数据库,对数据库仅进行一次索引(步骤408)。该记录对应于新消息。
本发明可以实现为数字电子电路,或计算机硬件、固件、软件或其结合。本发明的装置可以实现在计算机程序产品中,该产品可感知地包含在机器可读存储设备中,以由可编程处理器执行;并且,本发明的方法步骤可由可编程处理器执行程序指令来执行,以通过对输入数据进行操作并生成输出来执行本发明的功能。本发明可优选地实现在一个或多个计算机程序中,所述程序可在可编程系统上执行,该系统包括至少一个可编程处理器,其耦合来从数据存储系统接收数据和指令,并将数据和指令发送到所述数据存储系统,还包括至少一个输入设备和至少一个输出设备。每个计算机程序都可以高级过程性或面向对象编程语言来实现,或根据需要以汇编或机器语言来实现;在任何情形下,所述语言都可以是编译型或解释型语言。适当的处理器例如包括通用或专用微处理器。一般地,处理器从只读存储器和/或随机访问存储器接收指令和数据。一般地,计算机将包括一个或多个大容量存储设备以存储数据文件;这种设备包括磁盘,例如内部硬盘或可拆卸盘;磁光盘;以及光盘。适于可感知地包含计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器件,例如EPROM、EEPROM以及闪存器件;磁盘,例如内部硬盘和可拆卸盘;磁光盘;以及CD-ROM盘。任何前述设备都可为ASIC(专用集成电路)所补充或包含于ASIC中。
在此已经描述了本发明的多种实现。然而,将可理解到,可做出各种修改而不偏离本发明的精神和范围。因此,其他实现也在所附权利要求的范围之内。
权利要求
1.一种在层次记录集合中检索记录的方法,该层次记录集合具有多个层级和多个层深,每个记录都具有一个在所述层次记录集合中唯一的标签,所述方法包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合;以及获取所选择的记录。
2.如权利要求1所述的方法,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
3.如权利要求2所述的方法,其中“标识出一个记录”包括从用户接收对所述一个记录的选择;以及从所述用户接收命令;并且其中基于所述来自用户的命令来修改所述标签。
4.如权利要求3所述的方法,其中,每个所述记录都具有一个或多个字段,所述方法还包括在显示器上显示所获取的记录中每个记录的一个字段,其中每个所述字段在所述显示器上的位置表示所获取的记录中相应记录的层深和层级。
5.如权利要求2所述的方法,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;并且“修改所述标签”包括根据来自用户的命令来选择至少一个数位;以及根据所述来自用户的命令改变所选择的数位的值。
6.如权利要求2所述的方法,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的孩子;并且“修改所述标签”包括选择与所标识的记录的层深相对应的数位;以及将对应于与所选择的数位相对应的层深之下的层深的每个数位的值设置成通配值。
7.如权利要求2所述的方法,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的双亲;并且“修改所述标签”包括选择与所标识的记录的层深相对应的数位;以及将所选择的数位的值设置为空值。
8.如权利要求2所述的方法,其中每个所述记录表示一个消息和一个文件夹中之一。
9.一种用于将新记录添加到具有多个层级和多个层深的层次记录集合中的方法,所述层次记录集合中的每个记录都具有一个在所述层次记录集合中唯一的标签,所述方法包括在所述层次记录集合中标识出一个记录,作为所述新记录的双亲;修改所述标签,从而产生一个键值;将所述键值添加到所述新记录中;以及对所述层次记录集合只进行一次索引,从而将所述新记录添加到所述层次记录集合中,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合。
10.如权利要求9所述的方法,其中“标识出一个记录”包括从用户接收对所述一个记录的选择。
11.如权利要求10所述的方法,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所标识的记录表示一个消息;“标识出一个记录”还包括接收来自所述用户的命令,该命令请求回复所述消息;并且“修改所述标签”包括选择一个数位,该数位对应于一个层深,该层深紧邻在所标识的记录的层深之下;以及增加所选择的数位的值。
12.如权利要求9所述的方法,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
13.如权利要求9所述的方法,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
14.一种用于在具有多个层级和多个层深的层次记录集合中选择记录的方法,每个所述记录都具有一个在所述层次记录集合中唯一的标签,所述方法包括在所述层次记录集合中标识出一个记录;修改所述标签;以及对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将修改后的标签应用到所述层次记录集合。
15.如权利要求14所述的方法,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
16.如权利要求14所述的方法,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
17.一种计算机,至少一个所述计算机被编程来执行一个过程,用于在层次记录集合中检索记录,该层次记录集合具有多个层级和多个层深,每个记录都具有一个在所述层次记录集合中唯一的标签,所述过程包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合;以及获取所选择的记录。
18.如权利要求17所述的计算机,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
19.如权利要求18所述的计算机,其中“标识出一个记录”包括从用户接收对所述一个记录的选择;以及从所述用户接收命令;并且其中基于所述来自用户的命令来修改所述标签。
20.如权利要求19所述的计算机,其中,每个所述记录都具有一个或多个字段,并且所述过程还包括在显示器上显示所获取的记录中每个记录的一个字段,其中每个所述字段在所述显示器上的位置表示所获取的记录中相应记录的层深和层级。
21.如权利要求18所述的计算机,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;并且“修改所述标签”包括根据来自用户的命令来选择至少一个数位;以及根据所述来自用户的命令改变所选择的数位的值。
22.如权利要求18所述的计算机,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的孩子;并且“修改所述标签”包括选择与所标识的记录的层深相对应的数位;以及将对应于与所选择的数位相对应的层深之下的层深的每个数位的值设置成通配值。
23.如权利要求18所述的计算机,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的双亲;并且“修改所述标签”包括选择与所标识的记录的层深相对应的数位;以及将所选择的数位的值设置为空值。
24.如权利要求18所述的计算机,其中每个所述记录表示一个消息和一个文件夹中之一。
25.一种计算机,至少一个所述计算机被编程来执行一个过程,用于将新记录添加到具有多个层级和多个层深的层次记录集合中,所述层次记录集合中的每个记录都具有一个在所述层次记录集合中唯一的标签,所述过程包括在所述层次记录集合中标识出一个记录,作为所述新记录的双亲;修改所述标签,从而产生一个键值;将所述键值添加到所述新记录中;以及对所述层次记录集合只进行一次索引,从而将所述新记录添加到所述层次记录集合中,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合。
26.如权利要求25所述的计算机,其中“标识出一个记录”包括从用户接收对所述一个记录的选择。
27.如权利要求26所述的计算机,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所标识的记录表示一个消息;“标识出一个记录”还包括接收来自所述用户的命令,该命令请求回复所述消息;并且“修改所述标签”包括选择一个数位,该数位对应于一个层深,该层深紧邻在所标识的记录的层深之下;以及增加所选择的数位的值。
28.如权利要求25所述的计算机,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
29.如权利要求25所述的计算机,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
30.一种计算机,至少一个所述计算机被编程来执行一个过程,以在具有多个层级和多个层深的层次记录集合中选择记录,每个所述记录都具有一个在所述层次记录集合中唯一的标签,所述过程包括在所述层次记录集合中标识出一个记录;修改所述标签;以及对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将修改后的标签应用到所述层次记录集合。
31.如权利要求30所述的计算机,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
32.如权利要求30所述的计算机,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
33.一种在层次记录集合中检索记录的装置,该层次记录集合具有多个层级和多个层深,每个记录都具有一个在所述层次记录集合中唯一的标签,所述装置包括在所述层次记录集合中标识出一个记录的装置;修改所述标签,从而产生一个键值的装置;对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录的装置,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合;以及获取所选择的记录的装置。
34.如权利要求33所述的装置,其中用于“应用”的装置包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录的装置。
35.如权利要求34所述的装置,其中用于“标识出一个记录”的装置包括从用户接收对所述一个记录的选择的装置;以及从所述用户接收命令的装置;并且其中基于所述来自用户的命令来修改所述标签的装置。
36.如权利要求35所述的装置,其中,每个所述记录都具有一个或多个字段,所述装置还包括在显示器上显示所获取的记录中每个记录的一个字段的装置,其中每个所述字段在所述显示器上的位置表示所获取的记录中相应记录的层深和层级。
37.如权利要求34所述的装置,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;并且“修改所述标签”的装置包括根据来自用户的命令来选择至少一个数位的装置;以及根据所述来自用户的命令改变所选择的数位的值的装置。
38.如权利要求34所述的装置,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的孩子;并且“修改所述标签”的装置包括选择与所标识的记录的层深相对应的数位的装置;以及将对应于与所选择的数位相对应的层深之下的层深的每个数位的值设置成通配值的装置。
39.如权利要求34所述的装置,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的双亲;并且“修改所述标签”的装置包括选择与所标识的记录的层深相对应的数位的装置;以及将所选择的数位的值设置为空值的装置。
40.如权利要求34所述的装置,其中每个所述记录表示一个消息和一个文件夹中之一。
41.一种用于将新记录添加到具有多个层级和多个层深的层次记录集合中的装置,所述层次记录集合中的每个记录都具有一个在所述层次记录集合中唯一的标签,所述装置包括在所述层次记录集合中标识出一个记录,作为所述新记录的双亲的装置;修改所述标签,从而产生一个键值的装置;将所述键值添加到所述新记录中的装置;以及对所述层次记录集合只进行一次索引,从而将所述新记录添加到所述层次记录集合中的装置,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合。
42.如权利要求41所述的装置,其中用于“标识出一个记录”的装置包括从用户接收对所述一个记录的选择的装置。
43.如权利要求42所述的装置,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所标识的记录表示一个消息;用于“标识一个记录”的装置还包括用于接收来自所述用户的命令的装置,该命令请求回复所述消息;并且“修改所述标签”的装置包括选择一个数位的装置,该数位对应于一个层深,该层深紧邻在所标识的记录的层深之下;以及增加所选择的数位的值的装置。
44.如权利要求41所述的装置,其中用于“应用”的装置包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录的装置。
45.如权利要求41所述的装置,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
46.一种用于在具有多个层级和多个层深的层次记录集合中选择记录的装置,每个所述记录都具有一个在所述层次记录集合中唯一的标签,所述装置包括在所述层次记录集合中标识出一个记录的装置;修改所述标签的装置;以及对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录的装置,其中“对所述层次记录集合只进行一次索引”包括将修改后的标签应用到所述层次记录集合。
47.如权利要求46所述的装置,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
48.如权利要求46所述的装置,其中用于“应用”的装置包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录的装置。
49.一种计算机可读介质,其包含可由计算机执行的指令,以执行一种在层次记录集合中检索记录的方法,该层次记录集合具有多个层级和多个层深,每个记录都具有一个在所述层次记录集合中唯一的标签,所述方法包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合;以及获取所选择的记录。
50.如权利要求49所述的介质,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
51.如权利要求50所述的介质,其中“标识出一个记录”包括从用户接收对所述一个记录的选择;以及从所述用户接收命令;并且其中基于所述来自用户的命令来修改所述标签。
52.如权利要求51所述的介质,其中,每个所述记录都具有一个或多个字段,所述方法还包括在显示器上显示所获取的记录中每个记录的一个字段,其中每个所述字段在所述显示器上的位置表示所获取的记录中相应记录的层深和层级。
53.如权利要求50所述的介质,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;并且“修改所述标签”包括根据来自用户的命令来选择至少一个数位;以及根据所述来自用户的命令改变所选择的数位的值。
54.如权利要求50所述的介质,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的孩子;并且“修改所述标签”包括选择与所标识的记录的层深相对应的数位;以及将对应于与所选择的数位相对应的层深之下的层深的每个数位的值设置成通配值。
55.如权利要求50所述的介质,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;来自用户的命令请求检索所标识的记录的双亲;并且“修改所述标签”包括选择与所标识的记录的层深相对应的数位;以及将所选择的数位的值设置为空值。
56.如权利要求50所述的介质,其中每个所述记录表示一个消息和一个文件夹中之一。
57.一种计算机可读介质,其包含可由计算机执行的指令,以执行一种将新记录添加到具有多个层级和多个层深的层次记录集合中的方法,所述层次记录集合中的每个记录都具有一个在所述层次记录集合中唯一的标签,所述方法包括在所述层次记录集合中标识出一个记录,作为所述新记录的双亲;修改所述标签,从而产生一个键值;将所述键值添加到所述新记录中;以及对所述层次记录集合只进行一次索引,从而将所述新记录添加到所述层次记录集合中,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合。
58.如权利要求57所述的介质,其中“标识出一个记录”包括从用户接收对所述一个记录的选择。
59.如权利要求58所述的介质,其中每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所标识的记录表示一个消息;“标识出一个记录”还包括接收来自所述用户的命令,该命令请求回复所述消息;并且“修改所述标签”包括选择一个数位,该数位对应于一个层深,该层深紧邻在所标识的记录的层深之下;以及增加所选择的数位的值。
60.如权利要求57所述的介质,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
61.如权利要求57所述的介质,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
62.一种计算机可读介质,其包含可由计算机执行的指令,以执行一种在具有多个层级和多个层深的层次记录集合中选择记录的方法,每个所述记录都具有一个在所述层次记录集合中唯一的标签,所述方法包括在所述层次记录集合中标识出一个记录;修改所述标签;以及对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将修改后的标签应用到所述层次记录集合。
63.如权利要求62所述的介质,其中每个标签包括多个数位;每个数位的位置表示一个层深;并且每个数位的值表示一个层级。
64.如权利要求62所述的介质,其中“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
65.一种在具有多个层级和多个层深的层次数据集中对数据贴标签的方法,包括确定该数据的层级;确定该数据的层深;以及将标签分配给该数据,包括确定所述数据的直接双亲;选择所述数据的直接双亲的标签,其中所述标签是一个具有多个数位的数,每个所述数位表示所述层次数据集的一个层深;选择所选择的标签的一个数位,该数位表示所述数据的层深;将一个值分配给所选择的数位,该值表示所述数据的层级。
66.如权利要求65所述的方法,其中“将一个值分配给所选择的数位”包括确定所述数据的直接双亲的已有标签的孩子的数量;增加所述孩子数量以获得一个增数;以及将所选择的数位的值设置成等于所述增数的值。
67.如权利要求65所述的方法,其中每项数据表示一个消息;数据的孩子表示对由该数据表示的消息的回复;并且数据的双亲表示一个消息,该数据表示对该消息的回复。
68.如权利要求65所述的方法,其中每项数据表示一个容器;数据的孩子表示一个容器,该容器位于该数据所表示的容器之内;并且数据的双亲表示一个容器,其包含由该数据表示的容器。
69.一种计算机,至少一个所述计算机被编程来执行一个过程,以在具有多个层级和多个层深的层次数据集中对数据贴标签,所述过程包括确定该数据的层级;确定该数据的层深;以及将一个标签分配给该数据,包括确定所述数据的直接双亲;选择所述数据的直接双亲的标签,其中所述标签是一个具有多个数位的数,每个所述数位表示所述层次数据集的一个层深;选择所选择的标签的一个数位,该数位表示所述数据的层深;将一个值分配给所选择的数位,该值表示所述数据的层级。
70.如权利要求69所述的计算机,其中“将一个值分配给所选择的数位”包括确定所述数据的直接双亲的已有标签的孩子的数量;增加所述孩子数量以获得一个增数;以及将所选择的数位的值设置成等于所述增数的值。
71.如权利要求69所述的计算机,其中每项数据表示一个消息;数据的孩子表示对由该数据表示的消息的回复;并且数据的双亲表示一个消息,该数据表示对该消息的回复。
72.如权利要求69所述的计算机,其中每项数据表示一个容器;数据的孩子表示一个容器,该容器位于该数据所表示的容器之内;并且数据的双亲表示一个容器,其包含由该数据表示的容器。
73.一种在具有多个层级和多个层深的层次数据集中对数据贴标签的装置,包括确定该数据的层级的装置;确定该数据的层深的装置;以及将标签分配给该数据的装置,包括确定所述数据的直接双亲的装置;选择所述数据的直接双亲的标签的装置,其中所述标签是一个具有多个数位的数,每个所述数位表示所述层次数据集的一个层深;选择所选择的标签的一个数位的装置,该数位表示所述数据的层深;将一个值分配给所选择的数位的装置,该值表示所述数据的层级。
74.如权利要求73所述的装置,其中“将一个值分配给所选择的数位”的装置包括确定所述数据的直接双亲的已有标签的孩子的数量的装置;增加所述孩子数量以获得一个增数的装置;以及将所选择的数位的值设置成等于所述增数的值的装置。
75.如权利要求73所述的装置,其中每项数据表示一个消息;数据的孩子表示对由该数据表示的消息的回复;并且数据的双亲表示一个消息,该数据表示对该消息的回复。
76.如权利要求73所述的装置,其中每项数据表示一个容器;数据的孩子表示一个容器,该容器位于该数据所表示的容器之内;并且数据的双亲表示一个容器,其包含由该数据表示的容器。
77.一种计算机可读介质,其包含可由计算机执行的指令,以执行一种在具有多个层级和多个层深的层次数据集中对数据贴标签的方法,该方法包括确定该数据的层级;确定该数据的层深;以及将标签分配给该数据,包括确定所述数据的直接双亲;选择所述数据的直接双亲的标签,其中所述标签是一个具有多个数位的数,每个所述数位表示所述层次数据集的一个层深;选择所选择的标签的一个数位,该数位表示所述数据的层深;将一个值分配给所选择的数位,该值表示所述数据的层级。
78.如权利要求77所述的介质,其中“将一个值分配给所选择的数位”包括确定所述数据的直接双亲的已有标签的孩子的数量;增加所述孩子数量以获得一个增数;以及将所选择的数位的值设置成等于所述增数的值。
79.如权利要求77所述的介质,其中每项数据表示一个消息;数据的孩子表示对由该数据表示的消息的回复;并且数据的双亲表示一个消息,该数据表示对该消息的回复。
80.如权利要求77所述的介质,其中每项数据表示一个容器;数据的孩子表示一个容器,该容器位于该数据所表示的容器之内;并且数据的双亲表示一个容器,其包含由该数据表示的容器。
81.一种用于层次数据集中的数据的唯一标签,该层次数据集具有多个层级和多个层深,所述标签包括具有多个数位的数,每个数位表示所述层次数据集的一个层深;并且其中非零最低有效数位的位置表示所述数据的层深;非零最低有效数位的值表示所述数据的层级;并且有效性比所述非零最低有效数位高的数位表示所述数据的双亲。
82.一种存储器,用于存储数据以供正在数据处理系统上运行的应用程序访问,该存储器包括存储在该存储器中的数据结构,该数据结构包括一种具有多个层级和多个层深的层次数据集,所述层次数据集包括用于数据的唯一标签,该标签包括具有多个数位的数,每个数位表示所述层次数据集的一个层深;并且其中非零最低有效数位的位置表示所述数据的层深;非零最低有效数位的值表示所述数据的层级;并且有效性比所述非零最低有效数位高的数位表示所述数据的双亲。
全文摘要
本发明描述了一种方法、装置和计算机可读介质,用于在层次记录集合中检索记录(202),该层次记录集合具有多个层级和多个层深(204),每个记录都具有一个在所述层次记录集合中唯一的标签,包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引(208),从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合(208);以及获取所选择的记录(210)。
文档编号G06F17/30GK1639682SQ03804880
公开日2005年7月13日 申请日期2003年2月28日 优先权日2002年2月28日
发明者库尔特·弗里登, 普拉桑纳·斯里克哈塔 申请人:普拉姆特易软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1