throbber
(12) United States Patent
`Goldman et al.
`
`US006321229B1
`US 6,321,229 B1
`*Nov. 20, 2001
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`(54) METHOD AND APPARATUS FOR USING AN
`INFORMATION MODEL TO ORGANIZE AN
`INFORMATION REPOSITORY INTO A
`HIERARCHY OF INFORMATION
`
`(75)
`
`Inventors: Jason David Goldman; Brian John
`O’Keefe, both of Fort Collins, CO (US)
`
`(73)
`
`Assignee:
`
`Hewlett-Packard Company, Palo Alto,
`CA (US)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`This patent is subject to a terminal dis
`claimer.
`
`(21)
`Appl. N0.: 09/258,576
`(22) Filed:
`Feb. 26, 1999
`
`(51)
`
`(52)
`(58)
`
`Int. Cl.7
`
`.................................................... .. G06F 17/30
`
`US. Cl. .............................. .. 707/100; 707/103; 707/1
`
`Field of Search ................................... .. 707/100, 102,
`707/103, 1
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,815,703 * 9/1998 Copeland et al. ................. .. 707/102
`6,023,703 * 2/2000 Hill ........... ..
`.. 707/100
`6,098,072 * 8/2000 Sluiman et al. ................... .. 707/103
`
`* cited by examiner
`
`Primary Examiner—Jean R. Homere
`Assistant Examiner—Greta L. Robinson
`(57)
`ABSTRACT
`
`The invention described herein is an apparatus for accessing
`an information repository, including computer readable pro
`gram code stored on computer readable media, Where the
`computer readable program code includes code for organiz
`ing information stored in the information repository into a
`hierarchy. The hierarchy is a hierarchy of a number of
`derived containers that are generated in conformance With
`an information model Which is a hierarchy of container
`de?nition nodes. Each of the derived containers corresponds
`to a different one of the container de?nition nodes, repre
`sents a category of information in the information repository,
`and has contents Which can be other derived containers
`and/or information extracted from the information reposi
`tory.
`
`20 Claims, 17 Drawing Sheets
`
`13-118
`
`j120
`
`INFORMATION
`REPOSITORY
`
`INFORMATION
`REPOSITORY
`
`INFORMATION MODEL
`
`---112-
`
`5 I02
`
`HIERARCHY
`
`INFORMATION HIERARCHY
`
`DERIVED HIERARCHY
`
`100 L
`
`INFORMATION HIERARCHY
`
`DERIVED HIERARCHY
`
`5 108
`
`; 110
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`001
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 1 0f 17
`
`US 6,321,229 B1
`
`we?“
`
`NE W
`
`:87:
`
`‘ ||||| E37:
`
`L lllll E97:
`
`v .QE
`
`X: “
`
`lllnll.
`
`we?“
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`002
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 2 0f 17
`
`US 6,321,229 B1
`
`_
`
`1 ......................... L .........................
`
`_ l l l l | I l l I l l l | l l l I | l l l l l l I l l | I | l | I l l l | I l l l I | l l | | | | l l I I I l
`ma
`+|
`
`N .UE
`
`1 I I I I I I l I I I I I l I I I I I l I I I I l l l I I I I I I l l I I ' ‘ ' ' I ‘ ' l I I I l | I ' ' ‘ | I l _ _
`
`" M502 zoEzEmQ wooz zoEzrmQ " _ 3N lml mwzgzoo g ml $25200 “
`
`1 ......................... L ......................... n _
`
`
`
`" 2N h mwzzpzoo 8N ml $22500 “
`
`ma
`
`
`
`
`
`
`
`. wooz zoEzEmQ M502 zoEzEmQ "
`
`_
`
`
`
`
`
`
`
`_ .......................... . Ii ......................... l .n
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`003
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 3 0f 17
`
`US 6,321,229 B1
`
`2%
`
`aw
`
`oom IwI
`
`wow lml
`
`mom lml
`
`m. .QE
`
`mom Ml
`
`mom MI
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`004
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 4 0f 17
`
`US 6,321,229 B1
`
`Q3 ml $25200
`
`wooz zoEzrmE
`
`vow Ml
`
`Nah H
`
`m2 .m| mwzgzoo
`
`wooz zoEzEwQ
`
`v 6E
`
`wow!q a
`N;
`
`iii mwzgzoo
`
`
`
`wooz zoEzEwQ
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`005
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 5 0f 17
`
`US 6,321,229 B1
`
`_
`
`.........................
`
`“ 2m wow u
`_ | | l | l I l I l I I I l l I I I l | l l | l l l | l l l | l l l l l l I I l | | | | | l l | | | | l l | II.
`m5
`+.
`
`
`
`
`
`lml mmz_<._.zOO cm>_mm_c W. MEZZPZOO amzmmo "
`
`, ......................... L ......................... . _ _ _
`
`% 6t
`
`m6
`
`
`
`|||||||||||||||||||||||||| ||+||||||||||:|||||||||||||||||
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`006
`
`

`

`US. Patent
`
`Nov. 20, 2001
`
`Sheet 6 0f 17
`
`US 6,321,229 B1
`
`2mIIIIIIIIIIIIII_hi.mmz_<._.ZOOommeo
`9mIIIIIIIIIIIIII
`
`
`
`Now
`
`
`
`mmz_<._.ZOOmmz_<._.ZOO
`
`com
`
`mmz_<._.200
`
`
`
`MDOZZO_._._Z_u_m_n_
`
`com
`
`
`
`
`
`m_n_OZZO_.:Z_..._m_DMDOZZOrEZEMD
`
`.9.Qt
`
`N5mom
`NEIIIIIIIIIIIIII
`
`“1...mmz_<l_.ZOODm>_mm0Lml|_
`IIIIIIIIIIIIIImom
`
`mug/.2200
`
`
`
`moOzZO_._._Z_u_m_n_
`
`mmz_<._.ZOo
`
`
`
`MDOZZO_._._Z_n_m_Q
`
`m5
`
`007
`
`ServiceNow, |nc.'s
`
`Exhibit No. 1001
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`007
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 7 0f 17
`
`US 6,321,229 B1
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`008
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 8 0f 17
`
`US 6,321,229 B1
`
`\
`
`> 800
`
`I
`
`826
`
`806
`
`816
`
`820
`
`802
`AVAILABLE
`804
`TECH/PROF
`COMPUTERS
`808
`REPAIRER
`PROGRAMMER 81o
`ELECTRONICS
`812
`OFFICE
`814
`SECRETARY
`TRADE
`818
`PLUMBER
`GRADE I
`GRADE 11
`
`822
`824
`
`FIG. 8A
`
`828
`TECH/PROF
`COMPUTERS
`832
`REPAIRER
`PROGRAMMER 834
`ELECTRONICS
`836
`
`830
`
`OFFICE
`SECRETARY
`
`TRADE
`PLUMBER
`GRADEI
`GRADE ll
`
`FIG. 83
`
`FIG. 8C
`
`FIG. 8D
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`009
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 9 0f 17
`
`US 6,321,229 B1
`
`; 900
`
`Label A
`
`902
`
`“P218121?! lni9rmati<2n__i\r- 906
`
`List of one or more child container definition nodes
`
`5910
`
`FIG. 9
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`010
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 10 0f 17
`
`US 6,321,229 B1
`
`; 1000
`
`APEX
`
`l
`
`£1004
`
`List of first-level container definition nodes
`
`FIG. 10
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`011
`
`

`

`US. Patent
`
`mm
`
`S
`
`U
`
`US 6,321,229 B1
`
`Numbmgw
`
`mam...
`
`__390
`
`rumbmcw_$980
`
`mnmk
`
`5FGE
`
`8:ampoz
`
`MDmHnmEmums<fl
`
`
`
`82.m_nm_:w.><
`
`
`m,ON:ESNEES2:23
`
`mamEenEoflME8063;29:0;8E0_m:o_wmm.6._n_\_mo_:coo._.
`
`v.mumtumsfimoEoumEm
`
`
`
`
`
`
`mmN:NE0N:N33Ngm;NN:NEM.wnEsiuQQBEEooquQoomumfixmanOumExmm95:55Ermfimbmwmothomm.EmSano
`
`
`
`
`
`mm:mnmk
`
`8995qu
`
`oEEEEmEm
`
`
`
`om:mnmk
`
`:mawmneos
`
`:39;
`
`012
`
`ServiceNow, |nc.'s
`
`Exhibit No. 1001
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`012
`
`

`

`US. Patent
`
`V.0N
`
`hS
`
`71f0n
`
`US 6,321,229 B1
`
`wmar
`
`
`
`2,onoonmmLquEoom.oFNF
`
`SEF23.NONFF38.WomEHmemQEoOnmsEm
`
`_mco_mwm.§m\_mo_ccomk
`
`mamhngoglEomk
`
`SS
`
`92.oz
`
`N“mum
`
`«5mEEESan.
`
`mom?Nnah
`
`€935an
`
`:mawmuQQ
`
`N23.
`
`:83.
`
`31O
`
`.mmmES
`9%
`
`,0.NMN...“
`
`.SmC.mm
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`013
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 13 0f 17
`
`US 6,321,229 B1
`
`j 900
`
`List of one or more child container definition nodes
`
`5910
`
`FIG. 13
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`014
`
`

`

`U.S. Patent
`
`Nov. 20, 2001
`
`Sheet 14 0f 17
`
`US 6,321,229 B1
`
`— — — — — — — — - — - - - - -|
`
`1400
`
`I- _ _ _ _ _ _ _ _ _ _ _ _ _ |
`
`Derived Container is J
`Selected
`:
`l
`1402 Selected
`Derived Container
`+
`
`method
`
`Generate
`
`1404
`
`;
`
`I
`1406
`Container Definition Node
`+
`1408
`method generateContents j
`1410
`
`1416
`j
`method ?lllnLeafNode
`1418
`5
`Perform Query on Combined
`—Yes——> Selection Criteria of Selected
`Derived Container
`
`Is Container
`DefinitionNode a Leaf
`Node?
`
`N0
`1412
`+ J
`Create Child Derived
`Containers
`
`1414
`:
`I
`l
`Display Contents (Child Derived J
`|
`I
`: Containers) of Selected Derived
`Container
`I
`I
`I
`
`:
`:
`Display Contents (Extracted
`Records) of Selected Derived I
`l
`Container
`|
`I
`I
`
`FIG. 14
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`015
`
`

`

`US. Patent
`
`Nov. 20, 2001
`
`Sheet 15 0f 17
`
`US 6,321,229 B1
`
`8m;
`
`Xmm<
`
`Ix.._.m.8._wwm»,.&m_.\mw._ofiww.m
`
`8.8:26Ea: N8
`
`88:230Ba: N8:28%232.25
`
`ms.63.
`
`61O
`
`.mmmES
`9%
`
`,0.NMN...“
`
`.SmC.mm
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`016
`
`

`

`US. Patent
`
`Nov. 20, 2001
`
`Sheet 16 0f 17
`
`US 6,321,229 B1
`
`com?
`
`8:.
`
`
`
` "@0217“83.02mn32L/..----mmmflmmm.m\fim:m"No?17............wmmmmamamwfi
`
`
`
`88:230Ba:
`
`m“.63.
`
`
`$8:220Ba:
`
`71O
`
`.muwmmES
`9%
`
`,0.NMN...“
`
`.SmC.mm
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`017
`
`
`
`

`

`U
`
`t
`
`S
`
`71
`
`US 6,321,229 B1
`
`.4Qmsmioififl"S.32__mco_wm£9n=_mo_ccom._._
`m"HHHLHHHH._w._.2.PE02_
`
`
`88
`
`
`
`.uluhlnhhlululuhhhluuufi
`
`1"I254.CE_m_homdumsfi__
`,_ozimnEukenEom:__azimnmEenEomb_0__oomF_.2._moEobomE_am._.02_wESquo.m...............Lmzmioififlr..............LN.mcofimflenSmoEcomHWwotGot
`
`MasU8:asFgm»Fa;aomdumim
`
`
`mgooumimmmo_co.;om_m_wLmSQEoo
`
`k5Gt
`
`mom?
`
`Nam...
`
`zéoommuaa
`
`mEEESmoE
`
`mom_‘
`
`m_<n_mmu8.\
`
`N32.
`
`:mgmm.
`
`81O
`
`.muwmmES
`9%
`
`,0.NMN...“
`
`.SmC.mm
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`018
`
`
`
`
`
`

`

`US 6,321,229 B1
`
`1
`METHOD AND APPARATUS FOR USING AN
`INFORMATION MODEL TO ORGANIZE AN
`INFORMATION REPOSITORY INTO A
`HIERARCHY OF INFORMATION
`
`FIELD OF THE INVENTION
`
`This invention pertains to the ?eld of computer imple
`mented organizational systems, and more particularly to a
`method and apparatus for using an information model to
`organize an information repository into a hierarchy of infor
`mation.
`
`10
`
`2
`change, and delete database records, it can be overkill for a
`user Who needs minimal access, such as When the user only
`needs to vieW database records.
`For minimal use, a database can also be accessed by
`“querying” the database, Which at the very least does not
`require the expertise, time, and expense of a custom pro
`gram. Aquery is a speci?c set of instructions for the purpose
`of extracting data from a database based on one or more
`selection criterion. For example, if a user Wants to see all
`jobs in a job database that pay more than $20,000, a query
`might read “(Salary>=$20,000)”. The query, Which is Writ
`ten in commands comprehensible by the particular database
`being queried (eg., SQL), instructs a program to search the
`database for any and all records that satisfy the one or more
`selection criterion of the query. In the previous example,
`therefore, a program reads the Salary ?eld of each record to
`determine if the value in that ?eld is greater than or equal to
`$20,000. If the test fails, the program proceeds to test the
`next record. If the test passes, the program Will extract that
`record from the database for processing, such as vieWing or
`displaying. The result is a cost effective method of extracting
`information from a database tailored to a user’s speci?c
`needs.
`While creating queries is cost effective, it is not alWays
`ef?cient. Oftentimes, a user needs access to a speci?c set of
`records that requires a more complex query, such as When a
`user Wants to see all of the available professional jobs that
`do not require computer programming skills. A query to
`obtain this information from a database might read
`“((isAvailable=TRUE) AND (Tech/Prof=TRUE) AND
`(skills<>computer) AND (job<>programmer))”. In a com
`plex query, such as this one, the results can sometimes be
`uncertain, requiring the user to make several attempts at
`creating the query to produce the correct results. Another
`disadvantage of queries, simple or complex, is that they can
`result in Wasted time and space in obtaining commonly used
`data, and in creating a litany of queries Which produce the
`same results and/or erroneous results.
`A need exists, therefore, for meaningful and easy access
`to information in an information repository that provides the
`detail of information available from a custom program
`Without the time and expense of creating one, as Well as the
`cost-effectiveness of querying an information repository
`Without the uncertainties of results and the inefficiencies in
`obtaining them. In a more general sense, a need also exists
`for a means of meaningful and easy access to information an
`information repository that presents a user With a conceptual
`vieW of the information repository.
`
`SUMMARY OF THE INVENTION
`
`The present invention solves this problem by providing a
`method and apparatus of creating a hierarchy of information
`that alloWs information in an information repository to be
`meaningfully and easily accessed. The invention described
`herein is an apparatus for accessing an information
`repository, comprising computer readable program code
`stored on computer readable media, Where the computer
`readable program code comprises code for organiZing infor
`mation stored in the information repository into a hierarchy.
`The hierarchy comprises a number of derived containers that
`are generated in conformance With an information model
`comprising a hierarchy of container de?nition nodes. Each
`of the derived containers can correspond to a different one
`of the container de?nition nodes, represents a category of
`information in the information repository, and comprises
`contents. Furthermore, the invention described herein is a
`
`BACKGROUND OF THE INVENTION
`This application is related to the copending US. Appli
`cation of Jason Goldman and Brian O’Keefe entitled
`“METHOD AND APPARATUS FOR USING AN INFOR
`MATION MODEL TO ORGANIZE AN INFORMATION
`REPOSITORY INTO AN EXTENSIBLE HIERARCHY OF
`INFORMATION” the copending US. Application of Jason
`Goldman and D. Jon Lachelt entitled “METHOD AND
`APPARATUS FOR USING AN INFORMATION MODEL
`TO ORGANIZE AN INFORMATION REPOSITORY
`INTO AN EXTENSIBLE HIERARCHY OF ORGANIZA
`TIONAL INFORMATION” and the copending US. Appli
`cation of Jason Goldman entitled “METHOD AND APPA
`RATUS FOR USING AN INFORMATION MODEL TO
`CREATE A LOCATION TREE IN A HIERARCHY OF
`INFORMATION” and incorporates by reference all that is
`disclosed therein.
`Generally, information repositories hold a Wealth and
`variety of information that can be accessed. Examples of
`information repositories include program ?les comprising a
`list of subroutines and/or variables used in the program, and
`databases comprising records. Information repositories can
`also be in non-automated form, such as library index cards
`comprising information like call numbers, publishers, and
`authors. In a small information repository, information can
`be relatively easy to decipher and organiZe. As is often the
`case, hoWever, any useful information repository Will con
`tain and accumulate an in?nite amount of information so
`that organiZing the information in any useful manner
`becomes a dif?cult task. This problem can be demonstrated
`in an information repository such as a database.
`Databases are a large and poWerful resource of informa
`tion in a society automated by computers and computer
`processes. A database is a repository of ?les containing
`records, Where each record contains ?elds that are attributes
`of the record, and every record in the same ?le comprises the
`same ?elds. For example, records in a job database can
`comprise ?elds such as Position, Level, Company, Salary,
`Years of Experience, and Skills, each of Which is an attribute
`of a job in the job database. In a more general sense, a
`database is also a collection of ?les containing records that
`are subject to the same set of operations for searching,
`sorting, recombining, and other functions.
`Information in a database can be accessed by a custom
`program Written for a particular application. For example, a
`program in a job placement application might display a list
`of all available jobs from a job database. This method of
`access to database information is limited, hoWever, because
`it requires that such a program be customiZed for a particular
`use, language, and/or database, amongst other factors, Which
`can involve a great deal of expertise, time, and expense.
`While this is oftentimes necessary, particularly Where a
`database is highly integrated into an application and a user
`needs sophisticated functionality such as the ability to add,
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`019
`
`

`

`US 6,321,229 B1
`
`3
`computer based method of accessing an information
`repository, comprising a computer creating a hierarchy of
`derived containers. The hierarchy comprises a hierarchy of
`a number of derived containers that correspond to container
`de?nition nodes of an information model comprising a
`hierarchy of container de?nition nodes, and that correspond
`to categories of information stored in the information reposi
`tory. The computer determines if a given one of the derived
`containers has been selected by a computer user, and upon
`selection of a given derived container, displays contents of
`the given derived container.
`These and other important advantages and objectives of
`the present invention Will be further eXplained in, or Will
`become apparent from, the accompanying description,
`draWings and claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`An illustrative and presently preferred embodiment of the
`invention is illustrated in the draWings in Which:
`FIG. 1 illustrates the relationship betWeen an information
`model and a hierarchy.
`FIG. 2 illustrates container de?nition nodes and levels of
`information that comprise an information hierarchy in an
`information model, and the relationships betWeen them.
`FIG. 3 illustrates a ?rst eXample implementation of a
`parent/child relationship betWeen container de?nition nodes
`in an information hierarchy, Which is implemented in a
`preferred embodiment.
`FIG. 4 illustrates a second eXample implementation of a
`parent/child relationship betWeen container de?nition nodes
`in an information hierarchy.
`FIG. 5 illustrates derived containers and levels that com
`prise a derived hierarchy, and the relationships betWeen
`them.
`FIG. 6 illustrates the relationship betWeen container de?
`nition nodes in an information hierarchy and corresponding
`derived containers in a hierarchy.
`FIG. 7 illustrates a database With sample records and
`values.
`FIGS. 8A, 8B, 8C, and 8D are sample hierarchy structures
`for the database of FIG. 7.
`FIG. 9 illustrates a container de?nition node structure.
`FIG. 10 illustrates an apeX of an information model.
`FIG. 11 is a sample information hierarchy for the derived
`hierarchy of FIG. 8A.
`FIG. 12 is a sample information hierarchy for the derived
`hierarchy of FIG. 8B.
`FIG. 13 illustrates a derived container structure and its
`relationship to a corresponding container de?nition node.
`FIG. 14 illustrates a method of using an information
`model.
`FIG. 15 illustrates an apeX and ?rst-level container de?
`nition nodes for the hierarchy represented by FIGS. 8A and
`8B.
`FIG. 16 illustrates ?rst-level derived containers and their
`corresponding container de?nition nodes for the hierarchy
`represented by FIGS. 8A and 8B.
`FIG. 17 illustrates derived containers and their corre
`sponding container de?nition nodes for the information
`hierarchy of FIG. 12.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`The invention described herein is an apparatus for access
`ing an information repository, comprising computer read
`
`65
`
`4
`able program code stored on computer readable media,
`Where the computer readable program code comprises code
`for organiZing information stored in the information reposi
`tory into a hierarchy. The hierarchy comprises a hierarchy of
`a number of derived containers that are generated in con
`formance With an information model comprising a hierarchy
`of container de?nition nodes. Each of the derived containers
`corresponds to a different one of the container de?nition
`nodes, represents a category of information in the informa
`tion repository; and comprises contents. Furthermore, the
`invention described herein is a computer based method of
`accessing an information repository, comprising a computer
`creating a hierarchy of derived containers. The hierarchy
`comprises a hierarchy of a number of derived containers that
`correspond to container de?nition nodes of an information
`model comprising a hierarchy of container de?nition nodes,
`and that correspond to categories of information stored in
`the information repository. The computer determines if a
`given one of the derived containers has been selected by a
`computer user, and upon selection of a given derived
`container, displays contents of the given derived container.
`Introduction and De?nitions
`An information model can be created to de?ne a hierarchy
`of information (also referred to as a hierarchy) for one or
`more information repositories to provide meaningful and
`easy access to information in the information repositories.
`An information model corresponds to a hierarchy, Wherein
`the hierarchy represents a hierarchical and logical grouping
`of information in the information repositories. The present
`invention contemplates de?ning a single information model
`for multiple information repositories, multiple information
`models for a single information repository, as Well as a
`single information model for a single information repository.
`As illustrated in FIG. 1, an information model 100 cor
`responds 112 to a hierarchy 102 for one or more information
`repositories 118, 120 in a preferred embodiment, Wherein a
`hierarchy is a logical and hierarchical grouping of informa
`tion in the information repository. An information model 100
`comprises one or more information hierarchies 104, 106 ,
`and a hierarchy 102 comprises one or more derived hierar
`chies 108, 110, such that each information hierarchy 104,
`106 corresponds 114, 116 to a derived hierarchy 108, 110 for
`an information repository 118.
`As illustrated in FIG. 2, an information hierarchy 104
`comprises one or more levels of information 200, 202, 204,
`and one or more container de?nition nodes 206, 208, 210,
`212, 214 at each level of information, Wherein a hierarchical
`relationship 216, 218 eXists betWeen a container de?nition
`node at one level of information and a container de?nition
`node at a second level of information, such that a container
`de?nition node at a higher level of information that points to
`a container de?nition node at a loWer level of information is
`a parent container de?nition node (also referred to as parent
`node), and a container de?nition node at a loWer level of
`information that is pointed to by a container de?nition node
`at a higher level of information is a child container de?nition
`node (also referred to as child node). Within a level of
`information, one or more container de?nition nodes refer
`encing the same parent container de?nition node are referred
`to as a container group. In a preferred embodiment, a
`container de?nition node at a loWer level of information
`provides more detail about a hierarchy than a container
`de?nition node at a higher level of information. All nodes in
`a loWer level of information referenced by a given container
`de?nition node, directly or indirectly, are descendants of the
`given container de?nition node, and all nodes in a higher
`level of information than a given container de?nition node
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`020
`
`

`

`US 6,321,229 B1
`
`5
`of which the given container definition node is a descendant,
`are ancestors of the given container definition node. A node
`in the first level of information of an information hierarchy
`is referred to simply as a first-level container definition node,
`and a node that does not reference any child nodes in an
`information hierarchy is referred to as a leaf node. Through-
`out the description, an information hierarchy will refer to
`one which starts at a first level of information, and includes
`a first-level container definition node, all child nodes of the
`first-level container definition node, and all descendants
`thereof, including leaf nodes.
`There are various ways of implementing a hierarchical
`relationship between container definition nodes. In a pre-
`ferred embodiment, as illustrated in FIG. 3, a hierarchical
`relationship is implemented by a container definition node
`that comprises a pointer to a list of all of its child nodes.
`Therefore, container definition node 300 is a parent node
`that comprises a pointer 314 to a list 310 of child nodes 302,
`304, and container definition node 302 is a parent node that
`comprises a pointer 316 to a list 312 of child nodes 306, 308.
`In another implementation, as illustrated in FIG. 4, a con-
`tainer definition node comprises a pointer to a child node
`and/or a pointer to a peer node, rather than a pointer to a list
`of one or more child nodes. A peer node is a container
`definition node at the same level as that of the container
`
`definition node that comprises a pointer to the peer node. A
`peer node is also a child node of the parent node which
`comprises a pointer to a child node that is in the same level
`as the peer node, and in the same container group as the peer
`node. Therefore, container definition node 400 is a parent
`node that comprises a pointer 410 to a child node 402, which
`comprises a pointer 414 to peer node 404, and container
`definition node 402 is a parent node that comprises a pointer
`412 to a child node 406, which comprises a pointer 416 to
`peer node 408. Also, container definition node 400 is a
`parent node of peer node 404, and container definition node
`402 is a parent node of peer node 408. In both example
`implementations, nodes 300, 302, 400, 402 are parent nodes
`because they reference one or more child nodes; nodes 302,
`304, 306, 308, 402, 404, 406, 408 are all child nodes and/or
`descendants because they are referenced by a parent node,
`directly or indirectly; nodes 300, 400 are first-level nodes;
`and nodes 304, 306, 308, 404, 406, 408 are leaf nodes since
`they do not reference any child nodes. Additionally, nodes
`302, 402 are both parent nodes and child nodes, since they
`are both referenced by a parent node, and they both refer-
`ence a child node.
`
`As illustrated in FIG. 5, a derived hierarchy 108 in a
`hierarchy comprises one or more levels 500, 502, 504 and
`one or more derived containers 506, 508, 510, 512, 514,
`wherein each level 500, 502, 504 corresponds to a level of
`information 200, 202, 204 in an information hierarchy 104,
`and each derived container 506, 508, 510, 512, 514 corre-
`sponds to a container definition node 206, 208, 210, 212, 214
`in an information hierarchy 104. Furthermore, a hierarchical
`relationship 516, 518 exists between a derived container in
`one level and a derived container in a second level, such that
`a derived container at a higher level is a parent derived
`container (also referred to as a parent node) of a derived
`container at a lower level, and a derived container at a lower
`level is a child derived container (also referred to as a child
`node) of a derived container at a higher level. Within a level,
`one or more derived containers having the same parent
`derived container (as determined by hierarchical relation-
`ships of corresponding container definition nodes) are
`referred to as a container group. In a preferred embodiment,
`a derived container at a lower level provides more detail
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`about a hierarchy than a derived container at a higher level.
`All nodes in a lower level of information referenced by a
`given derived container, directly or indirectly, are descen-
`dants of the given derived container, and all nodes in a
`higher level of information than a given derived container of
`which the given derived container is a descendant, are
`ancestors of the given derived container. A node in the first
`level of a derived hierarchy is referred to simply as a
`first-level derived container, and a node that does not ref-
`erence any child nodes in a derived hierarchy is referred to
`as a leaf node. Throughout the description, a derived hier-
`archy will refer to one which starts at a first level, and
`includes a first-level derived container, all child nodes of the
`first-level derived container, and all descendants thereof,
`including leaf nodes.
`A hierarchical relationship between derived containers is
`implemented by each derived container referencing, or
`pointing to, a corresponding container definition node,
`thereby inheriting the hierarchical characteristics of its cor-
`responding container definition node. FIG. 6, which shows
`a derived hierarchy generated in response to a preferred
`embodiment of a hierarchical relationship between container
`definition nodes (FIG. 3), illustrates this point. One of the
`events that transpires when a derived container is created
`from its corresponding container definition node is that a
`pointer for that derived container is created which points
`back to the container definition node it was derived from
`
`(hence the term “derived containers”). Therefore, when
`derived container 506 is created, pointer 600 is created to
`reference corresponding container definition node 300;
`derived container 508 references 602 corresponding con-
`tainer definition node 302; derived container 510 references
`604 container definition node 304; derived container 512
`references 606 corresponding container definition node 306;
`and derived container 514 references 608 corresponding
`container definition node 308. This creates a chain of
`
`pointers to determine one derived container’s relationship to
`one or more other derived containers, such that a hierarchy
`comprising derived containers (FIG. 5) resembles a corre-
`sponding information hierarchy comprising container defi-
`nition nodes (FIG. 2). Thus, derived container 506 is a parent
`node of derived containers 508 and 510 (by virtue of its
`reference to a corresponding container definition node and
`the child container definition nodes of the corresponding
`container definition node), and derived container 508 is a
`parent node of derived containers 512 and 514.
`Using an information model to create a hierarchy allows
`the user to see two things. First, a hierarchy gives a user the
`ability to see how information in an information repository
`is organized and the relationship between information in the
`information repository via derived containers that represent
`user-defined categories of the information. Secondly,
`derived containers in a derived hierarchy allow a user to
`view logical subsets of information in the information
`repository. For example, an information model can be used
`to create a database hierarchy that hierarchically and logi-
`cally presents information in a database to a user.
`In presenting a hierarchical and logical view of informa-
`tion in a database, an information model allows a user to see
`two things. First, a hierarchy gives a user the ability to see
`how data in a database is organized and the relationship
`between data, i.e. fields, in the database. When a derived
`hierarchy is created in a preferred embodiment, derived
`containers are displayed such that hierarchical organization
`is conveyed to the user. In other words, a derived container
`can convey a category of information in the database as
`defined by its corresponding container definition node. A
`
`021
`
`ServiceNow, |nc.'s
`
`Exhibit No. 1001
`
`ServiceNow, Inc.'s
`Exhibit No. 1001
`
`021
`
`

`

`US 6,321,229 B1
`
`7
`category of information corresponds to a field from the
`database from which its selection criteria is based, and the
`field can be used to create a label of the derived container.
`
`In a first embodiment, then, each derived container repre-
`sents a category of information. Furthermore, if a derived
`container corresponds to a container definition node in the
`second level of information in the information model, a user
`interface can convey this sense of hierarchy by indenting the
`label of the derived container in a list user interface, or
`presenting a secondary window in a graphical window
`interface, for example.
`Secondly, derived containers in a hierarchy allow a user
`to view logical subsets of database records, which are
`determined by a combined selection criteria attribute of a
`derived container. Records that are actually extracted from
`a database using a derived container’s combined selection
`criteria attribute, as will be discussed, are referred to as
`extracted records. In a preferred embodiment, records are
`only extracted at a leaf derived container (or a derived
`container corresponding to a leaf container definition node),
`although it is also within the scope of this invention that
`records may be extracted at any derived container.
`In summary, an information model defines how a hierar-
`chy is presented to a user as determined by the contents of
`one or more derived containers, wherein the contents of a
`given derived container can comprise child derived contain-
`ers (showing how information in an information repository
`is organized), extracted records (showing logical subsets of
`information), or both. In a preferred embodiment, the con-
`tents of a leaf derived container will comprise extracted
`records, and the contents of all other derived containers will
`comprise child derived containers, although it is also within
`the scope of this invention that the other derived containers
`may comprise both child derived containers and extracted
`records. Derived containers can

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