`Gong et al.
`
`USOO6915306B1
`(10) Patent No.:
`US 6,915,306 B1
`(45) Date of Patent:
`Jul. 5, 2005
`
`(54) AUTOMATIC GENERATION OF DATA
`MODELS AND ACCOMPANYING USER
`INTERFACES
`
`(75) Inventors: Wen G. Gong, Cupertino, CA (US);
`Adam Scott Grancell, Mountain View,
`CA (US)
`(73) Assignee: Siebel Systems, Inc., San Mateo, CA
`(US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 418 days.
`
`(21) Appl. No.: 10/177,517
`(22) Filed
`Jun. 21, 2002
`CC
`un. Zl,
`O
`O
`Related U.S. Application Data
`(63) Continuation of application No. 09/896.924, filed on Jun.
`29, 2001, now abandoned.
`2
`(51) Int. Cl." .................................................. GO6F 7/00
`(52) U.S. Cl. ..................... 707/102; 707/101; 707/104.1
`(58) Field of Search ................................... 707/1-104.1
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`6,356,897 B1
`3/2002 Gusack .......................... 707/4
`
`4/2004 Chau et al. .................... 707/3
`6,721,727 B2
`6,832,069 B2 - 12/2004 Stout et al. ................ 434/353
`6,839.720 B1 * 1/2005 Thibodeau .....
`... 707/104.1
`2002/0059003 A1
`5/2002 Ruth et al. .................... 700/19
`2002/0072891 A1 * 6/2002 Shimizu ....
`... 703/22
`2002/0095561 A1
`7/2002 Butler ........................... 712/1
`* cited by examiner
`Primary Examiner-Luke S Wassum
`ASSistant Examiner-Linh Black
`(74) Attorney, Agent, or Firm-James W. Soong; Perkins
`Coie LLP
`(57)
`
`ABSTRACT
`
`Techniques to generate data models for an item master
`having a number of items. Each item is associated with a
`number of attributes and each attribute is associated with a
`Set of values. In one method, the items in the item master are
`initially classified into a number of pagesets, with each
`pageset being defined by a unique combination of values for
`a first set of (classification) attributes. For each pageset,
`Second set of (Selectable) attributes is determined to
`uniquely identify the items in the pageset. The Selectable
`attributes may be selected from a list of candidate attributes,
`which may include mandatory attributes designated to be
`used as Selectable attributes and optional attributes that may
`be selected for use. Data models are generated for each
`pageset based in part on the Selectable attributes, and include
`a set of tables descriptive of the items in the pageset.
`
`21 Claims, 10 Drawing Sheets
`
`"Size" Feature able
`310
`Code desc default
`
`"Color"Feature ae
`310
`Code esc default
`
`"Style"Feature Table
`30a
`Code Desc Default
`O dress
`casual default
`twi
`
`: jean
`
`"Items"Feature Table 320
`tem
`Code Desc D Price Number image default
`125
`26
`127 127.gif default
`128
`
`Main Configuration able 330
`
`"Attribute Check" Configuration Sub-table 340
`
`Sub-tale
`Attribute Check
`
`Rule
`
`
`
`
`
`Style
`O
`
`1
`1
`
`Size
`O
`1
`1
`2
`
`Color ites Rule
`O
`1.
`O
`2
`
`Data
`Row Set
`
`Exception
`Row Set
`
`SAP Exhibit 1008
`SAP v. Express Mobile, Inc.
`IPR2021-01145
`Page 00001
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 1 of 10
`
`US 6,915,306 B1
`
`Candidate Attribute
`Columns 130
`
`Data Attribute
`Columns 140
`
`Classification
`110 Columns 120
`---- f
`y
`-
`tem
`ID Gender Type Style Size Color Desc Price Number image
`1 woman pants dress
`2
`blue blue d. 69.95
`125 125.gif
`2 woman pants dress
`4
`black blk d. 69.95
`126 126.gif
`3 woman pants casual
`4
`blue blue c. 59.95
`127 127.gif
`4 Woman pants casual
`6
`grey grey c. 59.95
`128 128.gif
`
`100
`1
`
`Pageset
`1
`
`Pageset
`2
`
`56 woman dress
`57 woman dress
`58 WOrnan dress
`59 woman dress
`
`long
`long
`Short
`short
`
`4
`8
`2
`6
`
`blue blue ... 74.95
`white white . 74.95
`red
`red s. 39.95
`white white S. 39.95
`
`181.gif
`181
`182 182.gif
`187 187gif
`188 188.gif
`
`87 Woman blouse short
`87 woman blouse short
`87 Woman blouse long
`
`8
`10
`6
`
`white white s. 39.95
`black black s. 39.95
`blue blue 1. 49.95
`
`236 236.gif
`237 237.gif Paget
`238 238.gif
`
`32 khaki khakid. 55.95
`130 man pants dress
`131 man pants dress 34
`blue blue d. 55.95
`132 man pants casual 40
`grey grey c. 39.95
`132 man pants casual 42
`blue blue c. 39.95
`
`271 271.gif
`272 (272.gif
`273 273.gif
`274 274.gif
`
`Pageset
`4
`
`shirt
`245 man
`246 man shirt
`
`long
`long
`
`34
`34
`
`white white ... 34.95
`blue blue ... 34.95
`
`311.gif
`311
`312 312.gif Paget
`
`FIG. 1
`
`IPR2021-01145 Page 00002
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 2 of 10
`
`US 6,915,306 B1
`
`002
`
`|
`
`
`
`082 ;0??
`
`|ºpOW
`
`Jºpling
`
`?InpOW
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IPR2021-01145 Page 00003
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 3 of 10
`
`US 6,915,306 B1
`
`"Style" Feature Table
`30a
`Code DeSC Default
`
`"Size" Feature Table
`31 Ob
`Code DeSC Default
`
`"Color" Feature Table
`31 Oc
`Code DeSC Default
`
`"tems" Feature Table 320
`tem
`Code Desc D Price Number image Default
`
`127.gif default
`
`Main Configuration Table 330
`
`"Attribute Check" Configuration Sub-table 340
`
`Sub-table
`Attribute Check
`
`Rule
`
`Style
`
`
`
`Size
`
`Color items Rule
`
`Data
`ROW Set
`
`Exception
`ROW Set
`
`FIG. 3
`
`IPR2021-01145 Page 00004
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 4 of 10
`
`US 6,915,306 B1
`
`400
`
`416
`
`Generate error
`messages in log file
`
`
`
`
`
`
`
`Validate item master
`
`Validate configuration data
`
`go 414
`
`NO
`
`Group items in item
`master into pagesets
`
`
`
`Determine list of attributes
`used to uniquely identify
`items in each pageset
`
`418
`
`420
`
`Generate intermediate data files 422
`
`FIG.4A
`
`IPR2021-01145 Page 00005
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 5 of 10
`
`US 6,915,306 B1
`
`Start
`
`420
`
`Determine number of unique
`items in the pageset (A)
`
`Place optional attributes in first list
`
`Place mandatory
`attributes in second list
`
`442
`
`444
`
`446
`
`Determine number of unique sets of
`values for attributes in second list (B)
`
`448
`
`454
`Generate error
`message
`
`
`
`
`
`Determine number of unique sets of
`values for attribute in second list (B)
`
`Remove latest attribute from second list
`
`Return Second list of attributes
`as the selectable attributes for
`identifying uniqueness
`
`End
`
`FIG.4B
`
`IPR2021-01145 Page 00006
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 6 of 10
`
`US 6,915,306 B1
`
`identify items for a pageset
`
`472
`
`470
`
`
`
`NO
`
`Mandatory
`attribute list empty?
`
`474
`
`YES
`
`
`
`
`
`
`
`Move all elements of
`mandatory attribute list to
`Selectable attribute list
`
`
`
`Move 1st element of
`optional attribute list to
`selectable attribute list
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Mark the items in the pageset
`that can be uniquely identified by 480
`the sets of values for attributes
`in the Selectable attribute list
`
`Any
`item in the pageset
`unmarked?
`
`482
`
`NO
`
`484
`Return selectable
`attribute list
`
`Optional attribute
`list empty?
`
`NO
`
`488
`Generate error
`message
`
`Discard 1st element
`from optional
`attribute list
`
`St
`490
`element
`in optional attribute list
`helps to uniquely identify
`unmarked
`items?
`
`Move 1st element from
`optional attribute list to
`Selectable attribute list
`
`494
`
`FIG.4C
`
`End
`
`IPR2021-01145 Page 00007
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 7 of 10
`
`US 6,915,306 B1
`
`1.
`
`Process data for each pageset
`and provide tables and
`sub-table for data models
`
`-
`
`
`
`Process data for each
`pageset and determine valid
`configurations and exceptions
`
`5
`
`10
`
`512
`
`Represent data models in XML 514
`and add pageset-Specific data
`
`Stream XML through
`optional callout process
`
`Walidate XML from
`Callout process
`
`Provide XML documents
`for the pagesets
`
`Provide data node is
`to repository (optional)
`
`516
`
`518
`
`520
`
`522
`
`Provide HTML files (optional)
`
`524
`
`End
`
`FIG.5A
`
`IPR2021-01145 Page 00008
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 8 of 10
`
`US 6,915,306 B1
`
`512
`
`Examine pageset
`data to determine each
`Selectable attribute
`with single value
`
`542
`
`Examine pageset data to
`determine pairs of selectable
`attribute values that do not OCCur
`together in valid configurations
`
`544
`
`Examine pageset data
`to determine all other
`invalid configurations
`
`546
`
`FIG5B
`
`600
`
`
`
`Contents
`List Page
`
`input Page
`
`Output Page
`
`Style casual v
`Size
`Color grey
`
`v.
`
`Price
`tem. No 128
`
`620
`
`FIG. 6
`
`IPR2021-01145 Page 00009
`
`
`
`U.S. Patent
`
`Jul. 5, 2005
`
`Sheet 9 of 10
`
`US 6,915,306 B1
`
`slasefied
`
`(TWNLH)
`
`
`
`00/
`
`09/
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IPR2021-01145 Page 00010
`
`
`
`U.S. Patent
`US. Patent
`
`Jul. 5, 2005
`Jul. 5, 2005
`
`Sheet 10 of 10
`Sheet 10 0f 10
`
`US 6,915,306 B1
`US 6,915,306 B1
`
`
`
`83352:0
`
`oomtflE
`
`025059:
`
`momtsz
`
`59:0550
`
`39:50
`
`Emmom
`
`
`@830083mm
`5%.5:592.6098993.
`
`8%gmNew
`
`m.OE
`
`co:mo_c:EEoo
`
`x5382
`
`x8352
`
`00$..ng
`
`392m650anixwfiEm:
`$0300xmfi
`
`59335
`
`3%mg
`
`098onEma
`
`IPR2021-01145 Page 00011
`
`IPR2021-01145 Page 00011
`
`
`
`US 6,915,306 B1
`
`1
`AUTOMATIC GENERATION OF DATA
`MODELS AND ACCOMPANYING USER
`INTERFACES
`
`BACKGROUND OF THE INVENTION
`The present invention relates generally to computer
`processing, and more particularly to techniques for gener
`ating data models and user interfaces for catalog-type appli
`cations.
`For Some business enterprises, a large number of products
`or items may need to be organized and categorized for
`presentation in a clear and logical manner, Such as with a
`catalog. For example, a retailer or a distributor may carry a
`large number of items in its inventory. These items may then
`be categorized into a number of groups (e.g., hundreds or
`thousands of groups) of related items. Each group may
`include one or more items and may be represented with a
`"pageset'.
`Catalog-type applications Such as the one described above
`are typically characterized by a large number of relatively
`Simple items. These items may be associated with various
`attributes used to identify and describe the items. If the items
`can be Sufficiently described and uniquely identified based
`solely on their attribute values, then the attributes may be
`used to classify the items into groupS and to further identify
`the items in each group.
`Each group of items may be represented with "data
`models” that describe the items in the group. These data
`models are typically of a particular defined format or Schema
`and include sufficient information such that they may be
`used to generate user interface (UI) elements, Such as frames
`or Screens for a catalog. Items in each group may then be
`clearly and logically present via these UI elements. For
`catalog-type applications, the data models tend to be similar
`from group to group (i.e., pageset to pageset).
`Catalog-type applications tend to be large, with many
`items, and the task of organizing and classifying the items
`becomes more challenging as the number of items increases.
`However, catalog-type applications also tend to be
`repetitive, which affords the use of similar data models for
`representing the groups of items. Techniques that can be
`used to automatically generate data models and user inter
`faces for catalog-type applications are thus highly desirable.
`
`SUMMARY OF THE INVENTION
`The invention provides techniques to automatically gen
`erate data models from an “item master” (e.g., a master
`table) that includes a number of items. A set of classification
`attributes is initially provided (e.g., by an administrator via
`a user interface Screen or automatically generated) and used
`to classify the items in the item master into pagesets. Data
`models may then be automatically generated for each pag
`eset based in part on a set of candidate attributes (which may
`also be provided by the administrator via the user interface
`Screen or in a configuration file). The data models are
`thereafter used to generate user interface (UI) elements,
`which can present the items in each pageset in a clear and
`logical manner. Various implementations of the invention
`are possible, some of which are described below.
`A Specific embodiment of the invention provides a
`method for generating data models for an item master
`having a number of items. Each item in the item master is
`asSociated with a number of attributes and each attribute is
`asSociated with a respective Set of possible values. In
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`accordance with the method, the items in the item master are
`initially classified into a number of pagesets. Each pageset
`is defined by a unique combination of values for a first Set
`of attributes (referred to as classification attributes). A Sec
`ond set of attributes (referred to as selectable attributes) is
`then determined for each pageset, with the Selectable
`attributes being used to uniquely identify the items in the
`pageset. Data models are then generated for each pageset
`based in part on the Selectable attributes. In one
`implementation, the data models include a set of tables
`descriptive of the items in the pageset.
`The classification attributes may be specified (e.g., by an
`administrator) via configuration variables. The Selectable
`attributes may be Selected from a list of candidate attributes,
`which may include mandatory and optional attributes. Man
`datory attributes are designated to be used as Selectable
`attributes. Optional attributes may be specified in an ordered
`list and may be selected for use as Selectable attributes based
`on their order in the list. Each pageset includes a Sufficient
`(e.g., minimum) number of attributes Such that the items in
`the pageset are uniquely identified by their Selectable
`attribute values.
`The data models for each pageset may include a number
`of features tables and configuration tables. One feature table
`is provided for each Selectable attribute and includes a
`mapping of codes to descriptions corresponding to all pos
`sible attribute values. The configuration tables identify valid
`and invalid configurations for the pageset. Invalid configu
`rations may be associated with a number of types of excep
`tion messages.
`Output files (e.g., UI elements) are generated for the
`pagesets based on the data models. These output files may
`include input files for Selectable attributes and results files
`for other attributes associated with items in the pageset. A
`contents list file is also provided and includes application
`Specific (as oppose to pageset-Specific) data used to provide
`a navigation mechanism for the generated pagesets. The
`output files may be provided as XML documents, HTML
`files, or in Some other format.
`Prior to generating the data models, the item master
`and/or configuration variables may be validated, and error
`messages may be generated (and provided in a log file) for
`errorS resulting from the validation process. The error mes
`Sages may be used to “clean up' the item master and/or
`configuration variables, and the validation process may be
`iterated any number of times until valid data is obtained.
`Another Specific embodiment of the invention provides a
`method for forming a list of attributes for identifying items
`in a pageset. In accordance with the method, an attribute not
`yet considered for identifying the items in the pageSet is
`initially Selected. A determination is then made whether the
`selected attribute is useful for identifying the items in the
`pageset. If the attribute is useful, then it is included in the
`list. One or more additional attributes are then evaluated in
`Similar manner, one attribute at a time, until a Sufficient
`number of attributes is included in the list Such that the items
`in the pageset are uniquely identified by their values for the
`attributes in the list. In one embodiment, only attributes that
`are common for all items in the pageset are considered for
`evaluation.
`The invention further provides other methods, computer
`program products, and Systems capable of implementing
`various aspects, embodiments, and features of the invention,
`as described in further detail below.
`The foregoing, together with other aspects of this
`invention, will become more apparent when referring to the
`following Specification, claims, and accompanying draw
`IngS.
`
`IPR2021-01145 Page 00012
`
`
`
`US 6,915,306 B1
`
`15
`
`35
`
`40
`
`25
`
`3
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 shows an example of an item master that lists the
`available items for an enterprise;
`FIG. 2 is a diagram of an embodiment of a System capable
`of automatically generating data models for an item master;
`FIG. 3 shows various tables that may be generated for
`configuration-type data models, in accordance with an
`embodiment of the invention;
`FIG. 4A is a flow diagram of an embodiment of a process
`performed by a data builder module to generate a set of
`intermediate data files from the item master;
`FIGS. 4B and 4C are flow diagrams of two embodiments
`of a process to determine a list of Selectable attributes that
`may be used to uniquely identify the items in each pageset;
`FIG. 5A is a flow diagram of an embodiment of a process
`performed by a model builder module to generate data
`models for each pageset,
`FIG. 5B is a flow diagram of an embodiment of a process
`to examine the data for each pageset to generate exception
`messages for invalid configurations,
`FIG. 6 shows an embodiment of a screen capable of
`presenting items in the item master using application files
`generated from the data models;
`FIG. 7 is a diagram of another embodiment of a system
`capable of automatically generating data models using items
`Stored in a repository; and
`FIG. 8 is a block diagram of a computer system.
`DESCRIPTION OF THE SPECIFIC
`EMBODIMENTS
`FIG. 1 shows an example of an item master 100 that
`includes a collection of items (e.g., products) for an enter
`prise. Item master 100 (which may be implemented as a
`table) includes a number of rows and columns, with the
`Specific number of rows and columns being dependent on
`the type and quantity of items being represented by the item
`master. The first row in the item master contains column
`headers, which identify the various attributes for the items in
`the table. Each Subsequent row of the item master represents
`one record for one item. Each record includes information
`for the associated item, or more specifically the values for
`the attributes identified by the column headings. Thus, each
`column may be used to represent one specific attribute of the
`items, and each row may be used to represent one item.
`In general, item master 100 may include information for
`any type of items that have attributes and which may be
`offered in a catalog context. For example, the items in the
`item master may represent products, Services, Solutions Sets,
`employee relationship management (ERM)-based entities
`Such as benefit documents, and other types of items. The
`item master may also be generated in various manners. In
`one embodiment, the item master may be generated manu
`ally (via key entry) and/or automatically (via a defined
`55
`process) and is provided in a single data file. In another
`embodiment, the item master is generated from Smaller
`tables in a relational database (i.e., a repository).
`In the specific example shown in FIG. 1, item master 100
`includes product data for a clothing enterprise. The first row
`in the item master contains column headers for the following
`attributes-ID, Gender, Type, Style, Size, Color, Price, and
`Item Number. Each subsequent row includes a record for
`one item and includes a Set of values for the attributes
`identified by the column headers. For clarity, various aspects
`and embodiments of the invention are described for the
`example item master 100 shown in FIG. 1.
`
`45
`
`50
`
`60
`
`65
`
`4
`The item master may include a large listing for many
`items (e.g., hundreds or thousands of items). Presentation of
`the item master in the form shown in FIG. 1 may be
`cumberSome and unintelligible to an end-user (i.e., a user of
`a catalog application). Forbetter presentation, the items may
`be classified into groups or “pagesets. Each pageset may be
`defined by a specific Set of attribute values and may be
`Viewed as corresponding to a particular product family. Each
`pageset may include one or more items having a first Set of
`attribute values that match those used to define the pageset.
`In fact, this first Set of attribute values is used to categorize
`the items in the item master into their proper pagesets. The
`items in each pageset are also associated with a Second Set
`of attribute values that may be used to uniquely identify the
`items in the pageset. Since all items in a given pageSet have
`the same set of values for the attributes in the first set,
`“uniqueness' for the items in the pageset is achieved if each
`item in the pageset has a unique Set of values for the Second
`set of attributes (i.e., the set of values for the attributes in the
`Second Set for each item in the pageset is different from the
`Sets of attribute values for all other items in the pageset).
`Uniqueness is described in further detail below.
`In an embodiment and as shown in FIG. 1, item master
`100 is defined to includes an identifier (ID) column 110, one
`or more Classification columns 120, one or more Candidate
`Attribute columns 130, and one or more Data Attribute
`columns 140. ID column 110 lists an item-specific identifier
`(e.g., an ID, SKU, or row ID) for each item in the item
`master. This identifier may not be unique for all items in the
`item master, but is unique for all items in any given pageset.
`The unique values for the identifier may be used to uniquely
`identify the items in each pageset. Classification columns
`120 correspond to attributes used to classify the items in the
`item master into pagesets. Each pageset is defined by a
`unique Set of classification column values and includes one
`or more items having the same Set of attribute values used
`to classify the pageset. Candidate Attribute columns 130
`correspond to attributes that may be Selected and used to
`uniquely identify items within each pageSet. The names of
`the Classification and Candidate Attribute columns gener
`ally conform to defined naming conventions for tables. Data
`Attribute columns 140 correspond to additional attributes of
`the items in the item master. These data attributes are
`generally used to provide additional descriptive information
`for the items and but are typically not used to identify the
`items in the pageset.
`In the example shown in FIG. 1, the Classification col
`umns includes the Gender and Type columns, the Candidate
`Attribute columns includes the Style, Size, and Color
`columns, and the Data Attribute columns include the
`Description (Desc), Price, Item Number, and Image col
`
`U.S.
`Various implementations may be used to classify items in
`an item master, generate data models, and further generate
`UI elements (i.e., run-time applications) based on the data
`models. In one family of implementations (referred to as
`“file-based’), preparation of the item master and specifica
`tion of the attributes are mandatory steps (requiring inter
`action with an administrator, who may be tasked with
`building the catalog application), and run-time applications
`(e.g., in HTML files) are generated based on the data models
`(e.g., using XLST). In another family of implementations
`(referred to as “repository-based’), preparation of the item
`master and Specification of the attributes are optional Steps
`and the data models are generated and Saved to a repository.
`A publisher module (described below) may then be used to
`process (and possibly modify) the data models to generate
`
`IPR2021-01145 Page 00013
`
`
`
`S
`the run-time application. A Specific design for each of these
`two families of implementations is described below in FIGS.
`2 and 7, respectively. Various other implementations can
`also be contemplated and are within the Scope of the
`invention.
`FIG. 2 is a diagram of a system 200 capable of automati
`cally generating data models for an item master, in accor
`dance with an embodiment of the invention. System 200 is
`an example of a file-based design, and is implemented as a
`Software program that takes an item master as input and can
`generate data-dependent components of a catalog-type
`application. In this embodiment, system 200 (which is also
`referred to as a “catalog builder”) includes a data builder
`module 210, a model builder module 220, and a file builder
`module 230.
`Data builder module 210 receives the item master and a
`first Set of configuration variables, validates the data in the
`item master, classifies items in the item master into pagesets,
`identifies which attributes are to used to identify the items in
`each pageset, and provides a Set of intermediate data files.
`Data builder module 210 further provides status information
`indicative of the results of the processing on the item master
`and log information indicative of “uncleanliness” (i.e.,
`errors) in the item master and/or errors in the configuration
`variables. The log information may be used to modify the
`configuration variables and/or the data in the item master
`(e.g., in an iterative manner) to provide valid data and
`variables.
`Model builder module 220 receives the intermediate data
`files and a Second Set of configuration variables and gener
`ates data models. The data models may be provided in
`various forms Such as, for example, XML documents,
`HTML files, formatted files or database tables that may be
`stored in a repository 250, and others. The XML documents
`contain pageSet-specific data including the representation of
`the data models. A callout proceSS may be inserted at a
`callout point in model builder module 220 and used to
`process and possibly modify (e.g., the XML version of) the
`data models before they are generated in final form, as
`described below.
`File builder module 230 receives the data models (which
`maybe provided in XML documents) and a third set of
`configuration variables and generates data-dependent appli
`cation files. These application files either include or may be
`used to generate UI elements Suitable for representing a
`catalog of the item master, as described below.
`Each module executes on one or more input files and
`provides a set of output files. In an embodiment, user
`preferences for the operation of each module, Such as
`directions for interpreting the item master, output format
`options, directories of the input and output files, and So on,
`are provided as configuration variables. The configuration
`variables for all three modules may be provided in various
`forms. In one implementation, the configuration variables
`are provided in a (global) configuration file. In another
`implementation, the configuration variables may be entered
`via a user interface Screen that may be provided (e.g., for
`each module) to assist an administrator in the generation of
`the data models and UI elements.
`These modules and their inputs and outputs are described
`in further details below.
`Model builder module 220 may be designed to generate
`data models of various Schemas. The Specific Schema to be
`used for the data models is dependent on various factors
`Such as the data architecture employed, the Specific design
`of a runtime engine that will process the data models to
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,915,306 B1
`
`6
`generate the required outputs, and So on. Various types if
`data models may also be generated Such as, for example,
`configuration type and list type. The particular data model
`type to be generated may be specified in the configuration
`variables. For clarity, a Specific Schema for configuration
`type data models is described below.
`FIG. 3 shows various tables that may be generated for
`configuration-type data models, in accordance with an
`embodiment of the invention. In this embodiment, the
`configuration-type data models for each pageset include one
`or more Selectable Attribute feature tables 310, an Items
`feature table 320, a main configuration table 330, and a
`configuration sub-table 340. Additional, fewer, and/or dif
`ferent tables may also be provided for the configuration-type
`data models and are within the scope of the invention. The
`following description for the tables and sub-table is for a
`Specific pageset (e.g., Woman's Pants).
`For each pageset, a set of Selectable Attribute feature
`tables 310 is provided for the set of all “selectable' attributes
`used to uniquely identify the items in the pageset, with one
`Selectable Attribute feature table being provided for each
`selectable attribute. In the example shown in FIG.3, all three
`candidate attributes are used as Selectable attributes for the
`pageset. In this case, Style feature table 310a, Size feature
`table 310b, and Color feature table 310c are generated for
`the Style, Size, and Color selectable attributes, respectively.
`In a typical implementation, each Selectable Attribute fea
`ture table is named after the Selectable attribute associated
`with and represented by the feature table.
`Each Selectable Attribute feature table 310 provides a
`mapping of codes and their corresponding descriptions. The
`codes are used to represent the possible values for the
`asSociated Selectable attribute, and the descriptions are texts
`that are more intelligible to the end-user. The codes are more
`efficient internal representations for the attribute values, and
`the description may be displayed in the UI elements for the
`end-user. Each Selectable Attribute feature table typically
`further provides an indication of which specific attribute
`value should be used as the default value for the associated
`Selectable attribute, if none is specified.
`In the embodiment shown in FIG. 3, each Selectable
`Attribute feature table 310 includes a Code column, a
`Description (Desc) column, and a Default column. In an
`embodiment, the values in the Code column are uniquely
`distinguishable text String. In an embodiment, the code
`values are numeric and Sequentially numbered (e.g., starting
`from 0). These code values correspond to all possible values
`for the associated Selectable attribute for the given pageset
`(and not for the entire item master). The Description column
`includes values drawn from the column of the item master
`corresponding to the Selectable attribute being represented
`by the feature table. As an example, for the Style feature
`table 310a, code values of 0,1,2, and 3 are used to represent
`the possible styles of Dress, Casual, Twill, and Jean,
`respectively, for the pageset for Woman's Pant. The Default
`column includes an indication of which value should be used
`as the default (e.g., Casual is the default for the Style
`Selectable attribute for this pageset).
`Items feature table 320 includes item-specific
`information, and may be used to provide additional infor
`mation not included in the Selectable Attribute feature
`tables. In an embodiment, the Items feature table includes a
`Code column, a Description (Desc) column, an ID column,
`a Price column, an Item Number column, an Image column,
`a Default column, and Zero or more additional columns. The
`Code column includes distinguishable values used to rep
`
`IPR2021-01145 Page 00014
`
`
`
`7
`resent a key referenced by an Items column of configuration
`sub-table 340. The Description, ID, Price, Item Number, and
`Image columns each includes the values drawn from the
`corresponding column in the item master, and these columns
`may also be specified in the configuration variables. The
`Default column includes an indication of which row value
`should be used as the default for the Description column.
`Additional columns may be added to Items feature table
`320, e.g., by Specifying these columns in the configuration
`variables. Each additional column (if any) is typically
`named after the corresponding Specified column in the item
`master, and includes data drawn from that specified column.
`In the example shown in FIG. 3, the Price, Item Number, and
`Image columns are added to the Items feature table and these
`columns include the values drawn from the Price, Item
`Number, and Image columns in the item master.
`Items feature table 320 includes one row for each item in
`the pageset. For each item, the values for the columns in the
`Items feature table are drawn from the corresponding col
`umns in the item master.
`Main configuration table 330 identifies valid and invalid
`configurations for the Selectable attributes in the pageset.
`Each pageSet is associated with a set of Selectable attributes,
`and each Selectable attribute is further associated with a Set
`of possible values. The permutation of all possible combi
`nations of values for these selectable attributes wou