throbber
Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 1 of 11
`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 1 of 11
`
`EXHIBIT B
`EXHIBIT B
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 2 of 11
`I 1111111111111111 11111 111111111111111 11111 1111111111 lllll 111111111111111111
`US005940822A
`[11] Patent Number:
`[45] Date of Patent:
`
`United States Patent [19J
`Haderle et al.
`
`5,940,822
`Aug. 17, 1999
`
`[54] ENCODING METHOD OF MEMBERS
`RELATED BY MULTIPLE CONCEPT OR
`GROUP HIERARCHIES AND
`IDENTIFICATION OF MEMBERS IN A
`CORPUS OR A DATABASE THAT ARE
`DESCENDANTS OF ONE OR MORE
`SELECTED CONCEPTS OR GROUPS FROM
`THE ENCODING
`
`[75]
`
`Inventors: Donald J. Haderle, Los Gatos;
`Balakrishna Raghavendra Iyer, San
`Jose, both of Calif.
`
`[73] Assignee: International Business Machines
`Corporation, Armonk, N.Y.
`
`[21] Appl. No.: 08/921,197
`
`[22] Filed:
`
`Aug. 29, 1997
`
`Int. Cl.6
`...................................................... G06F 17/30
`[51]
`[52] U.S. Cl. ....................... 707/3; 707/2; 707/4; 707/101
`[58] Field of Search ................................. 707/2, 3, 4, 101
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,289,567
`5,495,605
`5,619,615
`5,659,725
`5,694,591
`5,701,454
`5,706,495
`5,761,654
`
`2/1994 Roth ...................................... 3295/133
`2/1996 Cadot .......................................... 707/3
`4/1997 Pitchaikani et al. . ... ... .... ... ... ... .. 395 /11
`8/1997 Levy et al. .................................. 707/2
`12/1997 Du et al. ..................................... 707/2
`12/1997 Bhargava et al.
`... ... ... .... ... ... ... ... . 707 /2
`1/1998 Chadha et al. . ... ... ... ... .... ... ... ... ... . 707 /2
`6/1998 Tow ............................................ 707/2
`
`OIBER PUBLICATIONS
`
`IBM Technical Disclosure Bulletin, "Evaluation of Column
`Functions on Grouped Data Ordering", vol. 32, No. lOB,
`Mar. 1990, pp. 385-386.
`
`Merchandise 15
`
`Iyer, Balakrishna R., et al., "Data Compression Support in
`Databases", Technology Institute, International Business
`Machines Corporation, Software Solutions Division, Santa
`Teresa Laboratory, Apr. 1994, pp. 1-26.
`Kerin, Roger A., et al., "Product Hierarchy and Brand
`Strategy Influences on the Order of Entry Effect for Con(cid:173)
`sumer Packaged Goods", J. Prod. Innov. Manag., vol. 13,
`1996, Elsevier Science Inc., pp. 21-34.
`Klug, Anthony, "Access Paths in the 'Abe' Statistical Query
`Facility", Proceedings of the International Conference on
`Management of Data, Jun. 2-4, 1982, Orlando, Florida,
`ACM SIGMOD Association for Computing Machinery, pp.
`161-173.
`http://fas.sfu.ca/cs/conf/dmkd97.html,
`article,
`Internet
`"Workshop on Research Issues on Data Mining and Knowl(cid:173)
`edge Discovery (DMKD'97) in cooperation with ACM(cid:173)
`-SIGMOD'97, Tuscon,Arizona, May 11, 1997", DMKD'97
`Pre-Conf. Data Mining Workshop: Call For Participation
`and Registration (entire document).
`
`Primary Examiner-Paul V. Kulik
`Assistant Examiner-Jean R. Homere
`Attorney, Agent, or Firm-Merchant, Gould, Smith, Edell,
`Welter, & Schmidt
`
`[57]
`
`ABSTRACT
`
`A method, apparatus, and article of manufacture for an
`encoder for encoding members in a concept hierarchy. A
`query is executed in a computer. The query is performed by
`the computer to retrieve data from a database stored on a
`data storage device connected to the computer. Members in
`the database that are related by one or more concept hier(cid:173)
`archies are encoded. Then, members in one of the concept
`hierarchies that are descendants of one or more selected
`concepts are identified based on the encoding.
`
`18 Claims, 4 Drawing Sheets
`
`300
`
`<PRODUCTS>
`
`i
`
`Men 0
`
`John 2
`
`I_
`
`Kids 5
`
`Women 14
`
`Misses 6
`
`Ladies 12
`
`Petites 13
`
`@) 13
`
`@),15
`
`Hosiery 11
`
`1@16
`
`Cathy 17
`
`Harry10 +
`
`~ I - - -~ -
`
`I
`
`Marys
`
`Jane 14
`
`Jacob6
`
`Phil 18
`
`Deb 19
`
`302
`
`/
`
`<BUYERS>
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 3 of 11
`
`U.S. Patent
`
`Aug. 17, 1999
`
`Sheet 1 of 4
`
`5,940,822
`
`FIG. 1
`
`100
`
`~
`
`Data Communications Device 108
`
`Data Storage Device 106
`
`Processor 102
`
`I Operating System 116 I Memory 104
`
`Computer Programs 118
`
`RDBMS 120
`
`Encoder122
`
`Monitor 110
`
`Keyboard 114
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 4 of 11
`
`FIG. 2
`
`200
`
`/
`
`Super Department Store 28
`
`d •
`r:JJ.
`•
`~
`~ ......
`~ = ......
`
`~----
`
`Apparel 14
`
`Leisure 23
`
`----------------
`Supermarket 27
`
`~~
`~
`
`Auto 15 Sports 16 Luggage 17 Electronics 18 Music 19 Garden 22
`
`Meat 24
`
`Produce 25 Vegetables 26
`
`Men 0
`
`Shoes 1
`
`Kids 6
`~
`Infants 2 Toddlers 3 Boys 4 Girls 5
`
`Women 13
`
`Indoor 20
`
`Outdoor 21
`
`Petites 7
`
`Ladies 8
`
`Misses 9
`
`Jewelry 1 O Accessories 11
`
`Hosiery 12
`
`~
`~
`'"""'
`~-..J
`'"""'
`\0
`\0
`\0
`
`rF.J. =(cid:173)~
`~ ....
`N
`0 ....,
`
`,i;;..
`
`Ul
`....
`\0
`
`"'-' =
`
`....
`00
`N
`N
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 5 of 11
`
`FIG. 3
`
`Merchandise 15
`
`Men 0
`
`Kids 5
`
`0 0 1·1
`I ~ ~:) I 7 ~ 3V I 8 (
`
`Toddlers 1
`
`Infants 2
`
`Boys 3 Girls 4
`
`) I 1 8 I 9
`
`19
`
`300
`
`/
`<PRODUCTS>
`
`Petites 13
`
`§113
`
`I
`Hosiery 11
`
`Women 14
`
`Ladies 12
`
`Misses 6
`
`§13
`
`Accessories 7
`
`Jewelry 8 Apparel 9
`
`I 8111 @14 @112
`
`I
`Fashion 10
`Q
`v
`
`115 @16
`I
`Cathy 17
`
`Harry 10
`I __________ _J_ __ ~
`
`Jane 14
`
`John 2
`
`Mary 5
`
`Jacob 6
`
`Phil 18
`
`Deb 19
`
`302
`
`/
`
`<BUYERS>
`
`d •
`r:JJ.
`•
`~
`~ ......
`~ = ......
`
`~
`~
`'"""'
`~-..J
`'"""'
`\0
`\0
`\0
`
`'JJ. =(cid:173)~
`~ ....
`0 ....,
`
`~
`
`,i;;..
`
`Ul
`....
`\0
`
`"'-' =
`
`....
`00
`N
`N
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 6 of 11
`
`U.S. Patent
`
`Aug. 17, 1999
`
`Sheet 4 of 4
`
`5,940,822
`
`FIG.4
`
`400
`
`402
`
`Select Next Hierarchy,
`Starting With First
`
`Traverse the Selected
`Hierarchy in Postorder,
`Assigning Non-negative
`Integers to Each Member
`
`404
`
`No
`
`_,.,.,,,.--(cid:173)
`AreAII
`Hierarchies
`Selected?
`
`Yes
`
`406
`
`Assign a Combined Code
`to Each Member
`
`Using the Combined Code,
`Identify the Descendants
`of Each Member
`
`408
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 7 of 11
`
`5,940,822
`
`15
`
`2
`The following example is from the Business Intelligence
`domain. One skilled in the art would recognize that there are
`equivalent examples in the domain of Internet text mining.
`Example concepts or groups are (sales by) STATE(s), (sales
`5 by) CITY(s), etc. Concepts and groups have members, and,
`typically, members are related by a hierarchy. For example,
`for the group STATE(s), one natural hierarchy is based on
`geography (e.g., East Coast states, Southwest states, Mid(cid:173)
`west states, Western states, etc.).
`10 Members can be related by more than one hierarchy. For
`example, in a department store, individual products are
`related hierarchically by product categories (e.g.,
`housewares, hardware, etc.), as described in R. A. Kevin, D.
`Kalyanaraman, and D. J. Howard, Product Hierarchy and
`Brand Strategy Influence on the Order of Entry Effect for
`Consumer Packaged Goods, Journal of Product Innovation
`Management, Vol. 13, No. 1. Jan. 1996, which is incorpo(cid:173)
`rated by reference herein. In addition, they are also related
`by employees of the department store, commonly referred to
`as buyers, who are responsible for buying the products, and
`related by the management structure of these employees.
`If members of the hierarchy were represented just by their
`names, e.g., "12 oz. Tide" in a table (e.g., a DETAIL table)
`of transaction records, conventional systems employ one of
`two methods to compute the aggregations.
`In the first method, a sequence of joins are performed
`between the DETAIL table and other tables that carry a map
`of the hierarchy. The number of joins is determined by the
`maximum depth of the hierarchy. After the sequence of
`joins, this method performs aggregations. This method is
`described in more detail in M. Wang and B. Iyer, Efficient
`Roll-Up and Drill-Down Analysis in Relational Databases,
`SIGMOD Data Mining Workshop, 1997, which is incorpo(cid:173)
`rated by reference herein. The first method does not clearly
`address the issue of input/output ("1/0") efficiency and is
`also subject to the known "quirkiness" of commercial
`RDBMS optimizers that sometimes cause the RDBMS to
`execute a query sub-optimally.
`The second technique stores the names of ancestors of
`members along with the members in the DETAIL table. This
`40 second technique requires a large amount of memory for
`storing the names of the ancestors. Therefore, the second
`method is wasteful of space.
`There is a need in the art for an improved method of
`computing aggregations.
`
`1
`ENCODING METHOD OF MEMBERS
`RELATED BY MULTIPLE CONCEPT OR
`GROUP HIERARCHIES AND
`IDENTIFICATION OF MEMBERS IN A
`CORPUS OR A DATABASE THAT ARE
`DESCENDANTS OF ONE OR MORE
`SELECTED CONCEPTS OR GROUPS FROM
`THE ENCODING
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`This invention relates in general to a computer(cid:173)
`implemented encoding system, and more particularly, to an
`encoding system for concept or group hierarchies.
`2. Description of Related Art
`Databases are computerized information storage and
`retrieval systems. A Relational Database Management Sys(cid:173)
`tem (RDBMS) is a database management system (DBMS)
`which uses relational techniques for storing and retrieving
`data. Relational databases are organized into tables which
`consist of rows and columns of data. The rows are formally
`called tuples. A database will typically have many tables and
`each table will typically have multiple tuples and multiple
`columns. The tables are typically stored on random access
`storage devices (RASD) such as magnetic or optical disk 25
`drives for semi-permanent storage.
`RDBMS software using a Structured Query Language
`(SQL) interface is well known in the art. The SQL interface
`has evolved into a standard language for RDBMS software
`and has been adopted as such by both the American National 30
`Standards Institute (ANSI) and the International Standards
`Organization (ISO). The SQL interface allows users to
`formulate relational operations on the tables either
`interactively, in batch files, or embedded in host languages,
`such as C and COBOL. SQL allows the user to manipulate 35
`the data.
`The definitions for SQL provide that a RDBMS should
`respond to a particular query with a particular set of data
`given a specified database content, but the method that the
`RDBMS uses to actually find the required information in the
`tables on the disk drives is left up to the RDBMS. Typically,
`there will be more than one method that can be used by the
`RDBMS to access the required data. The RDBMS will
`optimize the method used to find the data requested in a
`query in order to minimize the computer time used and, 45
`therefore, the cost of doing the query.
`It is common in Internet text mining and Business Intel(cid:173)
`ligence applications for atomic data in a relational database
`to be related by one or more hierarchies of concepts or
`groups. A "concept" or "group" is a generalization of one or
`more keywords or parts of parsed text. A text search query
`against a large corpus (i.e., collection of data) may be
`modeled as a search for various concepts or groups.
`For both Internet text mining and Business Intelligence
`applications, the computation of aggregate functions for 55
`each individual concept or group is a basic, often repeated,
`operation. The aggregate grouping operator is used to rank
`one collection versus another. A. Klug, Access Path in the
`"Abe" Statistical Query Facility, Proc. ACM SIGMOD,
`1982, pp. 161-172, which is incorporated by reference 60
`herein, teaches that special treatment should be given to
`aggregation of groups. Efficiency for the aggregate grouping
`operator was addressed in D. J. Haderle, and E. J. Lynch,
`Evaluation of Column Function on Grouped Data During
`Data Ordering, IBM Technical Disclosure Bulletin, Mar. 10, 65
`1990, pp. 385-386, which is incorporated by reference
`herein.
`
`20
`
`SUMMARY OF IBE INVENTION
`To overcome the limitations in the prior art described
`above, and to overcome other limitations that will become
`apparent upon reading and understanding the present
`50 specification, the present invention discloses a method,
`apparatus, and article of manufacture for a computer imple(cid:173)
`mented encoder for encoding members in a concept hierar(cid:173)
`chy.
`In accordance with the present invention, a query is
`executed in a computer. The query is performed by the
`computer to retrieve data from a database stored on a data
`storage device connected to the computer. Members in the
`database that are related by one or more concept hierarchies
`are encoded. Then, members in one of the concept hierar-
`chies that are descendants of one or more selected concepts
`are identified based on the encoding.
`An object of the invention is to provide an improved
`system for encoding members of hierarchies. Another object
`of the present invention is to encode members of multiple,
`related concept hierarchies. Yet another object of the present
`invention is to identify descendants of a member based on
`the encoding.
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 8 of 11
`
`5,940,822
`
`3
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Referring now to the drawings in which like reference
`numbers represent corresponding parts throughout:
`FIG. 1 is an exemplary hardware environment used to
`implement the preferred embodiment of the invention;
`FIG. 2 illustrates a tree structure stored on a data storage
`device that represents a hierarchy of products sold at a Super
`Department Store;
`FIG. 3 illustrates a tree structure stored on a data storage
`device that represents two hierarchies by which items at a
`Super Department Store may be related; and
`FIG. 4 is a flow diagram illustrating the steps performed
`by the encoder.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`In the following description of the preferred embodiment,
`reference is made to the accompanying drawings which
`form a part hereof, and which is shown by way of illustration
`a specific embodiment in which the invention may be
`practiced. It is to be understood that other embodiments may
`be utilized as structural changes may be made without
`departing from the scope of the present invention.
`Hardware Environment
`FIG. 1 is an exemplary hardware environment used to
`implement the preferred embodiment of the invention. The
`present invention is typically implemented using a computer
`100, which generally includes, inter alia, a processor 102,
`random access memory (RAM) 104, data storage devices 30
`106 (e.g., hard, floppy, and/or CD-ROM disk drives, etc.),
`data communications devices 108 (e.g., modems, network
`interfaces, etc.), monitor 110 (e.g., CRT, LCD display, etc.),
`mouse pointing device 112, and keyboard 114. It is envi(cid:173)
`sioned that attached to the computer 100 may be other 35
`devices such as read only memory (ROM), a video card, bus
`interface, printers, etc. Those skilled in the art will recognize
`that any combination of the above components, or any
`number of different components, peripherals, and other
`devices, may be used with the computer 100.
`The computer 100 operates under the control of an
`operating system (OS) 116, such as MYS™, AIX™,
`OS/2™, WINDOWS NT™, WINDOWS™, UNIX™, etc.
`The operating system 116 is booted into the memory 102 of
`the computer 100 for execution when the computer 100 is 45
`powered-on or reset. In turn, the operating system 116 then
`controls the execution of one or more computer programs
`118 by the computer 100. The present invention is generally
`implemented in these computer programs 118, which
`execute under the control of the operating system 116 and 50
`cause the computer 100 to perform the desired functions as
`described herein. Alternatively, the present invention may be
`implemented in the operating system 116 itself. In particular,
`the present invention is typically implemented using rela(cid:173)
`tional database management system (RDBMS) software 55
`120, such as the DB2 product sold by IBM Corporation,
`although it may be implemented with any database man(cid:173)
`agement system (DBMS) software.
`The RDBMS software 120 receives commands from users
`for performing various search and retrieval functions,
`termed queries, against one or more databases stored in the
`data storage devices 106. In the preferred embodiment, these
`queries conform to the Structured Query Language (SQL)
`standard, although other types of queries could also be used
`without departing from the scope of the invention. The 65
`queries invoke functions performed by the RDBMS soft(cid:173)
`ware 120, such as definition, access control, interpretation,
`
`10
`
`4
`compilation, database retrieval, and update of user and
`system data. The RDBMS software 120 invokes the encoder
`122 to perform encoding.
`The operating system 116 and computer programs 118 are
`5 comprised of instructions which, when read and executed by
`the computer 100, causes the computer 100 to perform the
`steps necessary to implement and/or use the present inven(cid:173)
`tion. Generally, the operating system 116 and/or computer
`programs 118 are tangibly embodied in and/or readable from
`a device, carrier, or media, such as memory 102, data storage
`devices 106, and/or data communications devices 108.
`Under control of the operating system 116, the computer
`programs 118 may be loaded from the memory 102, data
`storage devices 106, and/or data communications devices
`108 into the memory 102 of the computer 100 for use during
`15 actual operations.
`Thus, the present invention may be implemented as a
`method, apparatus, or article of manufacture using standard
`programming and/or engineering techniques to produce
`software, firmware, hardware, or any combination thereof.
`20 The term "article of manufacture" (or alternatively, "com(cid:173)
`puter program product") as used herein is intended to
`encompass a computer program accessible from any
`computer-readable device, carrier, or media. Of course,
`those skilled in the art will recognize many modifications
`25 may be made to this configuration without departing from
`the scope of the present invention.
`Those skilled in the art will recognize that the exemplary
`environment illustrated in FIG. 1 is not intended to limit the
`present invention. Indeed, those skilled in the art will
`recognize that other alternative hardware environments may
`be used without departing from the scope of the present
`invention.
`The Encoder
`The present invention provides an encoder 122 that pro(cid:173)
`vides encoding of members related by multiple concept or
`group hierarchies. After encoding, the encoder 122 can
`identify members in a corpus or a database that are descen(cid:173)
`dants of one or more selected concepts or groups in one or
`more hierarchies based on the encoding. The concepts or
`40 groups are known as ancestors. In one pass through the
`corpus or database, the number of occurrences of selected
`concepts or groups are identified, regardless of the number
`of concepts or groups in a hierarchy and regardless of the
`number of hierarchies.
`The encoder 122 provides a simple but elegant system to
`encode members belonging simultaneously to multiple hier(cid:173)
`archies and solves the problems of the two conventional
`systems mentioned earlier that compute aggregations. In one
`embodiment, it is recommended that the present invention
`be combined with a method to compress codes using a
`compression system which exhibits decoding efficiency both
`in central processing unit ("CPU") cycles and memory
`usage. One skilled in the art, however, would recognize that
`the present invention may be used without a compression
`system.
`In AV. Aho, J.E. Hopcroft, and J. D. Ullman, The Design
`and Analysis of Algorithms, Addisson-Wesley, 1974, an
`observation was made that, if a binary tree is labeled by
`increasing natural numbers, during a postorder traversal of
`60 the tree, whether one node is a child of another can be
`determined in an amount of time that does not depend on the
`number of nodes in the tree. The encoder 122 uses this
`concept to take a partial order induced by a hierarchy and
`convert it into a total order, so that all children of an ancestor
`fall into one range (i.e., of values) of this labeling. The
`encoder 122 extends this idea to encode multiple hierarchies
`by yet another elegant form of code construction.
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 9 of 11
`
`5,940,822
`
`10
`
`5
`Data captured by point-of-sale ("POS") systems, is the
`primary driver of the market for Business Intelligence
`applications providing data analysis. Consumer Packaged
`Goods ("CPG") manufacturers, retailers, and supermarkets
`are traditional users of these applications. More recently 5
`pharmaceutical drug manufacturers and pharmacies have
`also begun using these applications.
`The following example will focus on a Super Department
`Store. Each item in the store is labeled with a stackable unit
`number ("SKU"). The SKU is based on a natural hierarchy
`and is used to located that item in the store.
`FIG. 2 illustrates a tree structure stored on a data storage
`device 106 that represents a hierarchy of products sold at a
`Super Department Store 200. A tree structure has a root node
`from which all other nodes in the tree depend. A node from
`which other nodes depend is called a parent node. Nodes that 15
`depend from another node are called child nodes. A child
`node is said to be a descendent of a parent node, and a parent
`node is said to be an ancestor of a child node. For example,
`the root node "Super Department Store 28" is an ancestor
`node of each other node in the tree, but it does not have an 20
`ancestor itself. The node "Apparel 14" has an ancestor node
`"Super Department Store 28" and child nodes "Men 0",
`"Shoes l", "Kids 6", and "Women 13". Nodes that have
`ancestor nodes and no child nodes are termed leaf nodes. For
`instance, node "Petites 7" is a leaf node that has an ancestor 25
`node "Women 13" and no child nodes.
`The nodes in FIG. 2 represent members of a domain. Each
`of the members has an associated label (e.g., number) for
`identifying the node in the tree. One skilled in the art would
`recognize that the illustration provided in FIG. 2 is an
`example only and that other hierarchies could be used with
`the present invention.
`The plunging cost of disk and processors are responsible
`for lO0's of millions, perhaps even billions, of transactions
`being recorded on magnetic media reachable by a database
`manager. Roll-up, i.e., accumulating total sales for all
`descendent SKUs of selected members of the hierarchy, is a
`generic operation for Business Intelligence analysis. For
`example, with reference to the Super Department Store
`hierarchy 200, an analyst at the Super Department Store
`headquarters, may wish to roll-up sales on "Apparel 14" for
`"Women 13" and "Supermarket 27" for analyzing relative
`performance of the store in the two categories.
`On-line analytical processing ("OLAP") tools such as
`Arbor's ESSBASE, Informix's METACUSE, etc., store 45
`frequently computed aggregations in essentially the main
`memory database on a client personal computer ("PC"). If a
`pre-computed aggregate is not available in the main memory
`database of the client PC, an SQL query is issued against the
`database manager hosting the Detail table data.
`One efficient execution method for the query is a single
`pass over the data in the Detail table. The encoder 122
`demonstrates that if members of the hierarchy are labeled by
`a postorder traversal of the tree representing one hierarchy,
`all children of an ancestor are bounded by the labels of the 55
`ancestor and the lowest numbered child. Next, if the mem(cid:173)
`bers appearing in the database were encoded by such labels,
`multiple aggregates of members and all their descendants
`are computable in one pass of the data, as described further
`in M. Wang and B. Iyer, Efficient Roll-Up and Drill-Down 60
`Analysis in Relational Databases, SIGMOD Data Mining
`Workshop, 1997, which is incorporated by reference herein.
`For example, in the Super Department Store hierarchy 200
`of FIG. 2, labels for all SKU's in the "Apparel 14" for
`"Women 13" member are in the range of (7, 14) and labels 65
`for SKU's in the "Supermarket" member are in the range
`(24, 27).
`
`6
`FIG. 3 illustrates a tree structure stored on a data storage
`device 106 that represents two hierarchies by which items at
`a Super Department Store may be related. One of the
`hierarchies is a products hierarchy 300, which includes some
`of the members of the Super Department Store hierarchy
`200, and the other hierarchy is a buyers hierarchy 302
`representing buyers who purchase products for the Super
`Department Store. FIG. 3 illustrates that members are
`related by more than one hierarchy, i.e., products 300 and
`buyers 302. For example, John 2 is the buyer for "Men 0",
`"Toddlers l", "Infants 2", "Boys 3", and "Girls 4" products.
`For a single hierarchy, the encoder 122 demonstrates that
`predicates that capture a range of consecutive values identify
`a member of the hierarchy and all its descendants. For the
`example hierarchies illustrated in FIG. 3, users may want a
`report of the aggregate sales of all "Kids l" products
`purchased by buyers managed by "Phil 18". The encoder
`122 encodes members with labels from which the encoder
`122 can determine whether the member is a descendant of a
`specified ancestor in any hierarchy. In the worst case, the
`time taken to perform encoding is proportional to the
`number of hierarchies. The label is used for multiple hier(cid:173)
`archies in a similar manner as the label for a single hierarchy.
`Consider the hierarchy on members illustrated in FIG. 3.
`The encoder 122 first traverses the products hierarchy 300 in
`postorder fashion and assigns non-negative integers to each
`member, in natural order. For example, the encoder 122
`assigns the label 1 to the member "Toddler" for the products
`hierarchy 300. As there are 16 members of the products
`30 hierarchy 300, the encoder 122 uses 16 integers (0 through
`15 inclusive) for labeling.
`Next, the encoder 122 traverses the buyers hierarchy 302
`in postorder fashion and assigns non-negative integers to
`each member, in natural order. For example, the encoder 122
`35 assigns the label 7 to the member "Toddler" for the buyers
`hierarchy 302.
`The encoder 122 encodes each member of the products
`hierarchy 300 with a combined code derived from multi(cid:173)
`plying the label assigned to the member for the buyers
`40 hierarchy 302 with the maximum number of labels assigned
`(e.g., 16) in the products hierarchy 300 and adding the label
`assigned to the member for the products hierarchy 300. For
`example, the encoder 122 computes a combined code for the
`member "Toddler" as 7x16+1=113.
`When the encoder 122 finds this combined code with the
`member, the encoder 122 can determine the labels for the
`member from each hierarchy of which it is a member ( e.g.,
`the products and buyers hierarchies 300, 302). The encoder
`122 determines the label for the member "Toddler" in the
`50 products hierarchy 300 by computing the combined code
`mod the maximum number of labels assigned and subtract(cid:173)
`ing the label assigned to the member for the products
`hierarchy 300 (e.g., ((113 mod 16)-1)=1). The encoder 122
`determines the label for the member "Toddler" in the buyers
`hierarchy 302 by subtracting the label assigned to the
`member for the products hierarchy 300 from the combined
`code and dividing this result by the maximum number of
`labels ( e.g., ((113-1)/16)= 7)).
`Referring back to the products and buyers hierarchies 300
`and 302 illustrated in FIG. 3, once the combined code 113,
`is unraveled into code 1 for the products hierarchy 300, the
`encoder 122 can determine that the member is a descendant
`of concept "Kids", which has a range (1, 5), in the products
`hierarchy 300. Once the combined code 113, is unraveled
`into code 7 for the buyers hierarchy 302, the encoder 122 can
`determine that the member is a descendant of "Phil", which
`has a range (7, 18) in the buyers hierarchy 302.
`
`

`

`Case 1:19-cv-00859-RTH Document 82-2 Filed 04/29/22 Page 10 of 11
`
`5,940,822
`
`7
`The following discussion provides a more formal descrip(cid:173)
`tion of the present invention. First, let h<i> denote the
`number of nodes in the tree representing hierarchy <i> ( e.g.,
`for hierarchy 1, the number of nodes is represented by hl).
`Then, assume that there are four hierarchies, and each
`member defined in a Detail table belongs to every hierarchy.
`For the hierarchies, hl is not larger (in terms of number of
`members, i.e., nodes in the tree) than h2 which, in turn, is not
`larger than h3, and that, in turn, is not larger than h4.
`Independent traversals of the four hierarchies produce four
`labels (i.e., codes cl, c2, c3, c4) for each leaf, for hierarchies
`1, 2, 3 and 4, respectively.
`The encoder 122 computes the combined code for a leaf
`appearing in these four hierarchies with the following for(cid:173)
`mula:
`
`combined code-cl +c2xhlxh2+c4xhlxh2xh3
`
`Upon obtaining the combined code of a member, the
`encoder 122 computes the labels for the member in its
`various hierarchies with the following formulas:
`
`(since hl <- h2)
`cl - combined code % hl
`(since h2 <- h3)
`c2 - ((combined code - c1)/h1)%h2
`(since h3 <- h4)
`c3 - ((combined code - cl - c2 x hl)/(hl x h2))%h3
`c4 - ((combined code - cl - c2 x hl - c3 x hl x h2)/(h1 x h2 x h3))
`
`15
`
`8
`native embodiments for accomplishing the present inven(cid:173)
`tion. For example, any type of computer, such as a
`mainframe, minicomputer, or personal computer, or com(cid:173)
`puter configuration, such as a timesharing mainframe, local
`5 area network, or standalone personal computer, could be
`used with the present invention.
`In summary, the present invention discloses a method,
`apparatus, and article of manufacture for an encoder for
`encoding members in a concept hierarchy. The present
`10 invention provides an improved system for encoding mem(cid:173)
`bers of hierarchies. The present invention also encodes
`members of multiple, related concept hierarchies.
`Additionally, the present invention identifies descendants of
`a member based on the encoding.
`The foregoing description of the preferred embodiment of
`the invention has been presented for the purposes of illus(cid:173)
`tration and description. It is not intended to be exhaustive or
`to limit the invention to the precise form disclosed. Many
`modifications and variations arc possible in light of the
`20 above teaching. It is intended that the scope of the invention
`be limited not by this detailed description, but rather by the
`claims appended hereto.
`What is claimed is:
`1. A method of executing a query in a computer, the query
`25 being performed by the computer to retrieve data from a
`database stored on a data storage device connected to the
`computer, the method comprising the steps of:
`encoding members in the database related by one or more
`concept hierarchies, wherein the encoding represents
`one or more concepts; and
`identifying members in one of the concept hierarchies that
`are descendants of one or more selected concepts based
`on the encoding by traversing each of the members
`related by the concept hierarchies only once.
`2. The method of claim 1 above, wherein the step of
`encoding further comprises the steps of:
`traversing each of the members in each of the concept
`hierarchies in postorder; and
`assigning a label to each of the traversed members.
`3. A method of executing a query in a computer, the query
`being performed by the computer to retrieve data from a
`database stored on a data storage device connected to the
`computer, the method comprising the steps of:
`encoding members in the database related by one or more
`concept hierarchies by traversing each of the members
`in each of the concept hierarchies in postorder and
`assigning a label comprised of a non-negative integer to
`each of the traversed members; and
`identifying members in one of the concept hierarchies that
`are descendants of one or more selected concepts based
`on the encoding.
`4. A method of executing a query in a computer, the query
`being performed by the computer to retrieve data from a
`55 database stored on a data storage device connected to the
`computer, the method comprising the s

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket