CN1639682A - 在线索化应用中高效存储缩进式线索 - Google Patents
在线索化应用中高效存储缩进式线索 Download PDFInfo
- Publication number
- CN1639682A CN1639682A CNA038048809A CN03804880A CN1639682A CN 1639682 A CN1639682 A CN 1639682A CN A038048809 A CNA038048809 A CN A038048809A CN 03804880 A CN03804880 A CN 03804880A CN 1639682 A CN1639682 A CN 1639682A
- Authority
- CN
- China
- Prior art keywords
- record
- records
- label
- hierarchical set
- numerical digit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 85
- 230000008569 process Effects 0.000 claims description 44
- 230000000295 complement effect Effects 0.000 claims description 17
- 238000013480 data collection Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 239000012141 concentrate Substances 0.000 claims 1
- 238000007373 indentation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/81—Indexing, e.g. XML tags; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明描述了一种方法、装置和计算机可读介质,用于在层次记录集合中检索记录(202),该层次记录集合具有多个层级和多个层深(204),每个记录都具有一个在所述层次记录集合中唯一的标签,包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引(208),从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合(208);以及获取所选择的记录(210)。
Description
技术领域
本发明一般地涉及数据管理,更具体地说涉及管理层次存储的数据。
背景技术
层次数据集合非常有用也很普遍。这种数据集一般由多个记录组成。在层次记录集合中,一个记录可具有多个“孩子”,这些孩子与该记录有关,并存在于所述层次的较低级别上。这一记录称为所述孩子记录的“双亲”记录。记录的孩子可具有孩子,如此等等,只受限于数据库的大小。在单个记录的孩子集合中,对孩子进行排序,使得存在第一孩子、第二孩子等等,这经常是很有用的。
迄今为止,这些层次数据集的应用受限于可用来管理所述数据的工具的效率。在数据库中存储层次数据的传统方法包括多次代价昂贵的调用以更新和/或查询数据库。例如,为了选择记录的第二孙子,需要三次查询。第一次查询选择该记录的孩子。第二次查询选择该孩子的第一个孩子。第三次查询选择该孩子的第二个孩子。
发明内容
一般地说,在一个方面,本发明描述了一种方法、装置和计算机可读介质,用于在层次记录集合中检索记录,该层次记录集合具有多个层级和多个层深,每个记录都具有一个在所述层次记录集合中唯一的标签。它包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;对所述层次记录集合只进行一次索引,从而在所述层次记录集合中选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合;以及获取所选择的记录。
具体的实现可包括下述特征中的一项或多项。“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。“标识出一个记录”包括从用户接收对一个记录的选择;以及从用户接收命令;并且其中,基于来自用户的命令来修改所述标签。每个记录都具有一个或多个字段,并且多种实现可包括在显示器上显示每个所获取的记录的一个字段,其中每个字段在显示器上的位置表示相应的所获取的记录的层深和层级。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;并且,修改所述标签包括根据来自用户的命令在至少一个数位处进行选择;以及根据来自用户的命令改变所选择的数位的值。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所述来自用户的命令请求检索所标识的记录的孩子;并且修改所述标签包括选择与所标识的记录的层深相对应的数位;以及将对应于与所选择的数位相对应的层深之下的层深的每个数位的值设置成通配值。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所述来自用户的命令请求检索所标识的记录的双亲;并且修改所述标签包括选择与所标识的记录的层深相对应的数位;以及将所选择的数位的值设置为空值。每个记录表示一个消息或一个文件夹中之一。
一般地说,在一个方面,本发明描述了一种方法、装置和计算机可读介质,用于将新记录添加到具有多个层级和多个层深的层次记录集合中,所述层次记录集合中的每个记录都具有一个在所述层次记录集合中唯一的标签。它包括在所述层次记录集合中标识出一个记录;修改所述标签,从而产生一个键值;将所述键值添加到所述新记录中;以及对所述层次记录集合只进行一次索引,从而将所述新记录添加到所述层次记录集合中,其中“对所述层次记录集合只进行一次索引”包括将所述键值应用到所述层次记录集合。
具体的实现可包括下述特征中的一项或多项。“标识出一个记录”包括从用户接收对一个记录的选择。每个标签是具有多个数位的数字;每个数位的位置表示一个层深;每个数位的值表示一个层级;所标识的记录表示一个消息;标识一个记录还包括接收来自用户的命令,该命令请求回复所述消息;并且,修改所述标签包括选择一个数位,该数位对应于一个层深,该层深紧邻在所标识的记录的层深之下;以及增加所选择的数位的值。“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。每个标签包括多个数位;每个数位的位置表示一个层深;每个数位的值表示一个层级。
一般地说,在一个方面,本发明描述了一种方法、装置和计算机可读介质,用于在具有多个层级和多个层深的层次记录集合中选择记录,每个记录都具有一个在所述层次记录集合中唯一的标签。它包括在所述层次记录集合中标识出一个记录;修改所述标签;以及对所述层次记录集合只进行一次索引,从而在所述层次记录集合选择一个或多个记录,其中“对所述层次记录集合只进行一次索引”包括将修改后的标签应用到所述层次记录集合。
具体的实现可包括下述特征中的一项或多项。每个标签包括多个数位;每个数位的位置表示一个层深;每个数位的值表示一个层级。“应用”包括在所述层次记录集合中选择具有与所述键值相匹配的标签的记录。
本发明的实现具有多种优点,包括下述优点中的一项或多项。本发明的实现允许只利用对数据库的单次访问就可以操纵该数据库,其中该数据库表示了一种缩进式线索(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
标签 | 深度 | 级别 | 主题 |
0000 | 0 | 0 | Bike Rides in the Bay Area |
1000 | 1 | 1 | Old La Honda |
1100 | 2 | 1 | re:Old La Honda |
1110 | 3 | 1 | re:re:Old La Honda |
2000 | 1 | 2 | Page Mill Road |
3000 | 1 | 3 | The Bears Loop |
3100 | 2 | 1 | re:The Bears Loop |
每个标签都是具有多个数位的数字,每个数位表示层次中的一个深度。表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中。
在此已经描述了本发明的多种实现。然而,将可理解到,可做出各种修改而不偏离本发明的精神和范围。因此,其他实现也在所附权利要求的范围之内。
Claims (82)
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.一种存储器,用于存储数据以供正在数据处理系统上运行的应用程序访问,该存储器包括:
存储在该存储器中的数据结构,该数据结构包括一种具有多个层级和多个层深的层次数据集,所述层次数据集包括用于数据的唯一标签,该标签包括:
具有多个数位的数,每个数位表示所述层次数据集的一个层深;并且其中
非零最低有效数位的位置表示所述数据的层深;
非零最低有效数位的值表示所述数据的层级;并且
有效性比所述非零最低有效数位高的数位表示所述数据的双亲。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/085,780 | 2002-02-28 | ||
US10/085,780 US7031977B2 (en) | 2002-02-28 | 2002-02-28 | Efficiently storing indented threads in a threaded discussion application |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1639682A true CN1639682A (zh) | 2005-07-13 |
CN100416491C CN100416491C (zh) | 2008-09-03 |
Family
ID=27753712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038048809A Expired - Fee Related CN100416491C (zh) | 2002-02-28 | 2003-02-28 | 在线索化讨论应用中高效存储缩进式线索 |
Country Status (8)
Country | Link |
---|---|
US (8) | US7031977B2 (zh) |
EP (1) | EP1485791A4 (zh) |
JP (1) | JP2005519370A (zh) |
KR (1) | KR20040104465A (zh) |
CN (1) | CN100416491C (zh) |
AU (1) | AU2003213723A1 (zh) |
CA (1) | CA2477733A1 (zh) |
WO (1) | WO2003073263A1 (zh) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031977B2 (en) * | 2002-02-28 | 2006-04-18 | Plumtree Software, Inc. | Efficiently storing indented threads in a threaded discussion application |
GB0315156D0 (en) * | 2003-06-28 | 2003-08-06 | Ibm | Identification system and method |
US7269621B2 (en) | 2004-03-31 | 2007-09-11 | Google Inc. | Method system and graphical user interface for dynamically updating transmission characteristics in a web mail reply |
US7912904B2 (en) * | 2004-03-31 | 2011-03-22 | Google Inc. | Email system with conversation-centric user interface |
US9819624B2 (en) | 2004-03-31 | 2017-11-14 | Google Inc. | Displaying conversations in a conversation-based email system |
US7814155B2 (en) * | 2004-03-31 | 2010-10-12 | Google Inc. | Email conversation management system |
KR100457325B1 (ko) * | 2004-07-09 | 2004-11-17 | 엔에이치엔(주) | 메세지 송수신 및 게시 시스템 및 송수신 및 게시 방법 |
US7979501B1 (en) | 2004-08-06 | 2011-07-12 | Google Inc. | Enhanced message display |
US8042037B1 (en) * | 2004-10-29 | 2011-10-18 | Glovia International, Inc. | Sequencing of markup language documents |
US8055715B2 (en) * | 2005-02-01 | 2011-11-08 | i365 MetaLINCS | Thread identification and classification |
US9002725B1 (en) | 2005-04-20 | 2015-04-07 | Google Inc. | System and method for targeting information based on message content |
US8745485B2 (en) * | 2005-08-18 | 2014-06-03 | Oracle International Corporation | Extensible remote tag markup system and method |
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
US7949714B1 (en) * | 2005-12-05 | 2011-05-24 | Google Inc. | System and method for targeting advertisements or other information using user geographical information |
US8601004B1 (en) | 2005-12-06 | 2013-12-03 | Google Inc. | System and method for targeting information items based on popularities of the information items |
US20070226295A1 (en) * | 2006-03-23 | 2007-09-27 | Nokia Corporation | Method and apparatuses for retrieving messages |
US20080281863A1 (en) * | 2007-05-10 | 2008-11-13 | Hewlett-Packard Development Company, L.P. | Repository system and method |
US20090083338A1 (en) * | 2007-09-21 | 2009-03-26 | Microsoft Corporation | Synchronization of electronic postings |
US20100087173A1 (en) * | 2008-10-02 | 2010-04-08 | Microsoft Corporation | Inter-threading Indications of Different Types of Communication |
US8411046B2 (en) | 2008-10-23 | 2013-04-02 | Microsoft Corporation | Column organization of content |
US8086275B2 (en) | 2008-10-23 | 2011-12-27 | Microsoft Corporation | Alternative inputs of a mobile communications device |
US8385952B2 (en) | 2008-10-23 | 2013-02-26 | Microsoft Corporation | Mobile communications device user interface |
US8238876B2 (en) | 2009-03-30 | 2012-08-07 | Microsoft Corporation | Notifications |
US8175653B2 (en) | 2009-03-30 | 2012-05-08 | Microsoft Corporation | Chromeless user interface |
US8355698B2 (en) | 2009-03-30 | 2013-01-15 | Microsoft Corporation | Unlock screen |
US8836648B2 (en) | 2009-05-27 | 2014-09-16 | Microsoft Corporation | Touch pull-in gesture |
US9361604B2 (en) | 2010-09-23 | 2016-06-07 | Avaya Inc. | System and method for a context-based rich communication log |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US20120159383A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Customization of an immersive environment |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9026591B2 (en) | 2011-02-28 | 2015-05-05 | Avaya Inc. | System and method for advanced communication thread analysis |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US20120284648A1 (en) * | 2011-04-21 | 2012-11-08 | Michael John Marshall | Cascading Data Displays and Methods |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US8972409B2 (en) | 2011-07-27 | 2015-03-03 | Google Inc. | Enabling search for conversations with two messages each having a query team |
KR101801359B1 (ko) * | 2011-07-28 | 2017-11-24 | 엘지전자 주식회사 | 이동 단말기 |
US8687023B2 (en) | 2011-08-02 | 2014-04-01 | Microsoft Corporation | Cross-slide gesture to select and rearrange |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US8933952B2 (en) | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US9223472B2 (en) | 2011-12-22 | 2015-12-29 | Microsoft Technology Licensing, Llc | Closing applications |
US9128605B2 (en) | 2012-02-16 | 2015-09-08 | Microsoft Technology Licensing, Llc | Thumbnail-image selection of applications |
US9600132B2 (en) * | 2012-11-27 | 2017-03-21 | Microsoft Technology Licensing, Llc | Using custom RTF commands to extend chat functionality |
US9450952B2 (en) | 2013-05-29 | 2016-09-20 | Microsoft Technology Licensing, Llc | Live tiles without application-code execution |
WO2015149347A1 (en) | 2014-04-04 | 2015-10-08 | Microsoft Technology Licensing, Llc | Expandable application representation |
CN105378582B (zh) | 2014-04-10 | 2019-07-23 | 微软技术许可有限责任公司 | 计算设备的可折叠壳盖 |
KR20160143784A (ko) | 2014-04-10 | 2016-12-14 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 컴퓨팅 디바이스용 슬라이더 커버 |
US9396354B1 (en) | 2014-05-28 | 2016-07-19 | Snapchat, Inc. | Apparatus and method for automated privacy protection in distributed images |
US9537811B2 (en) | 2014-10-02 | 2017-01-03 | Snap Inc. | Ephemeral gallery of ephemeral messages |
US9113301B1 (en) | 2014-06-13 | 2015-08-18 | Snapchat, Inc. | Geo-location based event gallery |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
US10824654B2 (en) | 2014-09-18 | 2020-11-03 | Snap Inc. | Geolocation-based pictographs |
US10284508B1 (en) | 2014-10-02 | 2019-05-07 | Snap Inc. | Ephemeral gallery of ephemeral messages with opt-in permanence |
US9674335B2 (en) | 2014-10-30 | 2017-06-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
US9385983B1 (en) | 2014-12-19 | 2016-07-05 | Snapchat, Inc. | Gallery of messages from individuals with a shared interest |
US10311916B2 (en) | 2014-12-19 | 2019-06-04 | Snap Inc. | Gallery of videos set to an audio time line |
US10133705B1 (en) | 2015-01-19 | 2018-11-20 | Snap Inc. | Multichannel system |
KR102035405B1 (ko) | 2015-03-18 | 2019-10-22 | 스냅 인코포레이티드 | 지오-펜스 인가 프로비저닝 |
US10135949B1 (en) | 2015-05-05 | 2018-11-20 | Snap Inc. | Systems and methods for story and sub-story navigation |
US10354425B2 (en) | 2015-12-18 | 2019-07-16 | Snap Inc. | Method and system for providing context relevant media augmentation |
US10582277B2 (en) | 2017-03-27 | 2020-03-03 | Snap Inc. | Generating a stitched data stream |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02272645A (ja) * | 1989-04-14 | 1990-11-07 | Hitachi Ltd | プログラム・デバツグ支援方法 |
US5428529A (en) * | 1990-06-29 | 1995-06-27 | International Business Machines Corporation | Structured document tags invoking specialized functions |
GB2273179A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache indexing in interative processes. |
US6339767B1 (en) * | 1997-06-02 | 2002-01-15 | Aurigin Systems, Inc. | Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing |
US5557786A (en) * | 1994-01-24 | 1996-09-17 | Advanced Computer Applications, Inc. | Threaded, height-balanced binary tree data structure |
US5724577A (en) * | 1995-06-07 | 1998-03-03 | Lockheed Martin Corporation | Method for operating a computer which searches a relational database organizer using a hierarchical database outline |
US5907837A (en) * | 1995-07-17 | 1999-05-25 | Microsoft Corporation | Information retrieval system in an on-line network including separate content and layout of published titles |
US6427147B1 (en) * | 1995-12-01 | 2002-07-30 | Sand Technology Systems International | Deletion of ordered sets of keys in a compact O-complete tree |
US6161126A (en) * | 1995-12-13 | 2000-12-12 | Immersion Corporation | Implementing force feedback over the World Wide Web and other computer networks |
US6014137A (en) * | 1996-02-27 | 2000-01-11 | Multimedia Adventures | Electronic kiosk authoring system |
US5894554A (en) * | 1996-04-23 | 1999-04-13 | Infospinner, Inc. | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests |
US5881379A (en) * | 1996-05-20 | 1999-03-09 | International Business Machines Corporation | System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging |
US6014638A (en) * | 1996-05-29 | 2000-01-11 | America Online, Inc. | System for customizing computer displays in accordance with user preferences |
US5819271A (en) * | 1996-06-04 | 1998-10-06 | Multex Systems, Inc. | Corporate information communication and delivery system and method including entitlable hypertext links |
IL118959A (en) * | 1996-07-26 | 1999-07-14 | Ori Software Dev Ltd | Database apparatus |
US5754755A (en) * | 1996-10-10 | 1998-05-19 | Microsoft Corporation | Method and system for generating test scripts |
US6128663A (en) * | 1997-02-11 | 2000-10-03 | Invention Depot, Inc. | Method and apparatus for customization of information content provided to a requestor over a network using demographic information yet the user remains anonymous to the server |
US6026433A (en) | 1997-03-17 | 2000-02-15 | Silicon Graphics, Inc. | Method of creating and editing a web site in a client-server environment using customizable web site templates |
US6131744A (en) * | 1997-05-02 | 2000-10-17 | Micro Beef Technologies, Inc. | System and method for recycling identification tags |
US6112192A (en) * | 1997-05-09 | 2000-08-29 | International Business Machines Corp. | Method for providing individually customized content in a network |
US6865715B2 (en) * | 1997-09-08 | 2005-03-08 | Fujitsu Limited | Statistical method for extracting, and displaying keywords in forum/message board documents |
US5974445A (en) * | 1997-10-28 | 1999-10-26 | International Business Machines Corporation | Web browser which checks availability of hot links |
JP3189886B2 (ja) * | 1997-10-30 | 2001-07-16 | 日本電気株式会社 | 半導体記憶装置 |
US6353824B1 (en) * | 1997-11-18 | 2002-03-05 | Apple Computer, Inc. | Method for dynamic presentation of the contents topically rich capsule overviews corresponding to the plurality of documents, resolving co-referentiality in document segments |
US5953724A (en) * | 1997-11-24 | 1999-09-14 | Lowry Software, Incorporated | Global database library data structure for hierarchical graphical listing computer software |
US6065120A (en) * | 1997-12-09 | 2000-05-16 | Phone.Com, Inc. | Method and system for self-provisioning a rendezvous to ensure secure access to information in a database from multiple devices |
US6675173B1 (en) * | 1998-01-22 | 2004-01-06 | Ori Software Development Ltd. | Database apparatus |
US6185614B1 (en) * | 1998-05-26 | 2001-02-06 | International Business Machines Corp. | Method and system for collecting user profile information over the world-wide web in the presence of dynamic content using document comparators |
US6112209A (en) * | 1998-06-17 | 2000-08-29 | Gusack; Mark David | Associative database model for electronic-based informational assemblies |
US6415283B1 (en) * | 1998-10-13 | 2002-07-02 | Orack Corporation | Methods and apparatus for determining focal points of clusters in a tree structure |
US6134548A (en) * | 1998-11-19 | 2000-10-17 | Ac Properties B.V. | System, method and article of manufacture for advanced mobile bargain shopping |
DE19853278A1 (de) * | 1998-11-19 | 2000-05-25 | Aventis Pharma Gmbh | Substituierte 4-Amino-2-aryl-cyclopenta[d]pyrimidine, ihre Herstellung, ihre Verwendung und sie enthaltende pharmazeutische Präparate |
US6279007B1 (en) * | 1998-11-30 | 2001-08-21 | Microsoft Corporation | Architecture for managing query friendly hierarchical values |
JP3256518B2 (ja) * | 1999-04-28 | 2002-02-12 | シャープ株式会社 | 光ディスク及び光ディスク装置 |
US6421072B1 (en) * | 1999-06-03 | 2002-07-16 | International Business Machines Corporation | Displaying a complex tree structure among multiple windows |
US6496853B1 (en) * | 1999-07-12 | 2002-12-17 | Micron Technology, Inc. | Method and system for managing related electronic messages |
JP3941292B2 (ja) * | 1999-07-26 | 2007-07-04 | 日本電気株式会社 | ページ情報表示方法及び装置並びにページ情報表示用のプログラム又はデータを記憶した記憶媒体 |
US6327628B1 (en) * | 2000-05-19 | 2001-12-04 | Epicentric, Inc. | Portal server that provides a customizable user Interface for access to computer networks |
JP2001357051A (ja) | 2000-06-15 | 2001-12-26 | Ricoh Co Ltd | 文書管理装置 |
US6683632B2 (en) * | 2000-12-08 | 2004-01-27 | Xerox Corporation | Method and system for presenting semilinear hierarchy |
JP4213360B2 (ja) * | 2001-05-15 | 2009-01-21 | 株式会社東芝 | 知識蓄積支援システムおよび同システムにおける返信メッセージ処理方法 |
US6480857B1 (en) * | 2001-06-07 | 2002-11-12 | David Chandler | Method of organizing hierarchical data in a relational database |
US7305402B2 (en) * | 2001-10-10 | 2007-12-04 | International Business Machines Corporation | Adaptive indexing technique for use with electronic objects |
US7031977B2 (en) | 2002-02-28 | 2006-04-18 | Plumtree Software, Inc. | Efficiently storing indented threads in a threaded discussion application |
-
2002
- 2002-02-28 US US10/085,780 patent/US7031977B2/en not_active Expired - Lifetime
-
2003
- 2003-02-28 EP EP03711411A patent/EP1485791A4/en not_active Withdrawn
- 2003-02-28 KR KR10-2004-7013494A patent/KR20040104465A/ko active IP Right Grant
- 2003-02-28 CN CNB038048809A patent/CN100416491C/zh not_active Expired - Fee Related
- 2003-02-28 AU AU2003213723A patent/AU2003213723A1/en not_active Abandoned
- 2003-02-28 JP JP2003571890A patent/JP2005519370A/ja active Pending
- 2003-02-28 WO PCT/US2003/006694 patent/WO2003073263A1/en active Application Filing
- 2003-02-28 CA CA002477733A patent/CA2477733A1/en not_active Abandoned
-
2004
- 2004-05-07 US US10/841,022 patent/US7171429B2/en not_active Expired - Lifetime
- 2004-05-07 US US10/840,853 patent/US7174330B2/en not_active Expired - Lifetime
- 2004-05-07 US US10/840,979 patent/US7254585B2/en not_active Expired - Lifetime
-
2005
- 2005-12-01 US US11/291,578 patent/US8341126B2/en active Active
-
2006
- 2006-12-29 US US11/617,724 patent/US7660827B2/en not_active Expired - Lifetime
- 2006-12-29 US US11/617,727 patent/US7653660B2/en not_active Expired - Lifetime
-
2007
- 2007-06-27 US US11/769,572 patent/US20080010314A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
KR20040104465A (ko) | 2004-12-10 |
US8341126B2 (en) | 2012-12-25 |
US20030163446A1 (en) | 2003-08-28 |
US7031977B2 (en) | 2006-04-18 |
AU2003213723A1 (en) | 2003-09-09 |
EP1485791A1 (en) | 2004-12-15 |
CA2477733A1 (en) | 2003-09-04 |
US7254585B2 (en) | 2007-08-07 |
US7660827B2 (en) | 2010-02-09 |
US20060085458A1 (en) | 2006-04-20 |
WO2003073263A1 (en) | 2003-09-04 |
EP1485791A4 (en) | 2007-10-24 |
US20070106634A1 (en) | 2007-05-10 |
US20040267817A1 (en) | 2004-12-30 |
US7171429B2 (en) | 2007-01-30 |
US20040210576A1 (en) | 2004-10-21 |
US7653660B2 (en) | 2010-01-26 |
US20080010314A1 (en) | 2008-01-10 |
US7174330B2 (en) | 2007-02-06 |
US20070106635A1 (en) | 2007-05-10 |
JP2005519370A (ja) | 2005-06-30 |
US20040210569A1 (en) | 2004-10-21 |
CN100416491C (zh) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100416491C (zh) | 在线索化讨论应用中高效存储缩进式线索 | |
US6725223B2 (en) | Storage format for encoded vector indexes | |
Subramanian et al. | Performance challenges in object-relational DBMSs | |
EP1643384B1 (en) | Query forced indexing | |
US7788287B2 (en) | System and method for storing and accessing data in an interlocking trees datastore | |
US7685136B2 (en) | Method, system and program product for managing document summary information | |
US7734657B2 (en) | Containment hierarchy in a database system | |
US20100198881A1 (en) | Method of data storage and management | |
US7613715B2 (en) | Map and data location provider | |
US6356888B1 (en) | Utilize encoded vector indexes for distinct processing | |
US20040078355A1 (en) | Information management system | |
US7020647B1 (en) | Utilize encoded vector indexing for database grouping | |
US6978272B1 (en) | Method and apparatus for displaying instrumentation parameters in a database system | |
KR20030065860A (ko) | 엑스엠엘 계층구조를 이용한 비디오 검색 시스템 및 그 방법 | |
CN113297207A (zh) | 数据处理方法、装置及设备 | |
CN117539872A (zh) | 一种数据二级索引的方法与终端 | |
US7676477B1 (en) | Utilities for deriving values and information from within an interlocking trees data store | |
Philip et al. | Efficient storage organization for the execution of visual queries in large object databases | |
JPH07105063A (ja) | 時系列データのファイル格納方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080903 |