PRODUCT CATALOGUE PRODUCTION SYSTEM

Abstract: A product catalogue production system comprising a data storage means for storing product data in the form of product codes and associated product attribute data items, said data storage means having a data structure allowing a plurality of product attribute data items to be associated with a product code, said data structure structuring the product data, when a plurality of product attribute data items are associated with a given product code, in the form of a plurality of product data records each including the given product code and an associated product attribute data item.

Description: PRODUCT CATALOGUE PRODUCTION SYSTEM The present invention relates to a product catalogue production system, in particular one in which product catalogue data is stored in a database, the database storing a plurality of attributes for a product and product data may be organised into a hierarchical category structure. A typical prior art data structure for a database used in a product catalogue production system is schematically illustrated in Figures 6 and 7. The products are classified into sections, sub-sections, groups within sub- sections and categories within groups. A product may fall into a plurality of categories, and a category may include a plurality of products. Figure 6 shows the data storage tables used in the database to store the product data, and the interrelationships between the data storage tables. Each of a section storage table 50, a sub-section storage table 52, a group storage table 54 and a category storage table 56 store data records for each respective classification at the hierarchical level for which the storage table is responsible. The sub¬ section table 52 includes, in each sub-section record, a pointer to the section record pertaining to the section which each sub-section falls under. This is thus a one-to-many relationship, as indicated by the arrows fanning out from section storage table 50 to sub-section storage table 52. Similar one-to-many relationships occur between the sub-section storage table 52 and the group storage table 54, and the group storage table 54 and the category storage table 56, respectively. A category-product storage table 58 stores relationships between the categories for which data is stored in category storage table 56 and the products for which product data is stored in product storage table 60. Each of the category storage table 56 and the product storage table 60 bearing one-to-many relationship to the category-product storage table 58. Figure 7 illustrates the product storage table 60, and its associated attribute control file 70, in greater detail. The product storage table 60 is organised into a predetermined number of columns 62 and a row 64 for each product for which attribute data is to be stored. Each row 64 provides one product record, storing an attribute data item in each field. The attribute name for each field is stored in the corresponding field 72 of the attribute control file. The following problems apply to the above-described typical data structures. Firstly, the number of hierarchical classifications of the products is limited, and identical for each product. In the example shown in Figure 6, there are four such classification levels. Fixed data structures associated with each hierarchical level limit the number and structure of classification attributes which may be associated with each classification level. Furthermore, where a product catalogue requires the existence of large numbers of product attributes, and where there are large numbers of products in the catalogue, the number of cells which are empty within the product table 60 becomes very large, since many attributes will not be associated with the majority of the products. For example, if a product catalogue includes one million products, one thousand different attributes are defined for those products, and the average number of attributes defined for each product individually is 20, 98% of the cells would be empty. This leads to inefficiencies in the data storage structure. It would be desirable to provide a data storage structure for a product catalogue production system which is well adapted to handle complex product structures and data relating to very large numbers of products. Furthermore, it would be desirable to provide an architecture for a product catalogue production system which is relatively simple to use for an operator of the system whilst allowing flexibility, and in particular, multi- configurability, in the product structures and product data to be stored, so that the system may be used in a variety of product catalogue production contexts. In accordance with the present invention there is provided a product catalogue production system comprising a data storage means for storing product data in the form of product codes and associated product attribute data items, said data storage means having a data structure allowing a plurality of product attribute data items to be associated with a product code, said data structure structuring the product data, when a plurality of product attribute data items are associated with a given product code, in the form of a plurality of product data records each including the given product code and an associated product attribute data item. Accordingly, the number of product attribute data items which may be associated with the given product data reference is not determined by the number of product attribute data items associated with a different product data reference, nor by the data structure itself. An embodiment of the invention will now be described, by way of example only, with reference to the accompanying drawings, wherein: Figure 1 schematically illustrates a product catalogue production system in accordance with an embodiment of the invention; Figure 2 illustrates a set of product storage tables, and relationships therebetween, used in a database in accordance with this embodiment of the invention; Figure 3 illustrates in further detail fields present in a product storage table, an attributes control storage table and an attributes values table, in accordance with this embodiment of the invention; Figure 4 illustrates fields present in a classification control storage table, a product structure control storage table and a product structure detail storage table, in accordance with this embodiment of the invention; Figure 5 illustrates fields present in a classification detail storage table and the attributes control storage table and the attributes value storage table of this embodiment of the invention; Figure 6 illustrates a set of data storage tables used in prior art product catalogue production systems; and Figure 7 illustrates a product storage table and an attributes control file, used in prior art product catalogue production system. Figure 1 schematically illustrates a product catalogue production system in accordance with an embodiment of the invention. The system includes a software platform 2 including a relational database 8 and several interworking catalogue production software applications 10-18. The relational database 8 may be run on any SQL 92-compliant data server, such as an Oracle (TM) or Sybase (TM) data server. The catalogue production software applications 10-18 may be run on an appropriate server facility such as a Microsoft NT (TM) server. The system also includes a plurality of plug- in media-specific catalogue publishing software applications 4, which may also be run on an appropriate server facility, such as a Microsoft NT (TM) server, and a number of catalogue output devices 6, which may include a Web server. The catalogue production software applications include a core data manager 10, which enables product details to be stored in attributes defined using structured meta data which allows for inheritance of the product characteristics. The storage architecture of the relational database is handled by the functionality of the core data manager. The core data manager 10 provides the infrastructure used by an operator of the system, working on a client workstation, for capturing and retrieving both key product information and further product information including multimedia data files, text data files containing technical specifications, etc. A catalogue compiler software application 12 constructs a data set used for a catalogue. Query criteria are entered by an operator of the system, working on a client workstation, using selection screens on a data input device which generates Structured Query Language (SQL) interactions to select the sub-set of the core data to be used in the catalogue to be produced. A catalogue layout designer software application 14 includes media- neutral routines for laying out catalogue data and media-specific routing for providing templates for defining the navigational and look and feel rules for generating data to be used in the production of paper-format catalogues and electronic-format catalogues, respectively. A catalogue production manager software application 16 creates laid- out catalogues by presenting core data as selected by the catalogue compiler 12. A catalogue update manager software application 18 ensures that any changes made to core data are reflected automatically in the catalogues produced in the system. Four exemplary plug-in software applications are illustrated in Figure A first plug-in module 19 is an Internet catalogue publishing module. The module takes data from the catalogue layout designer 14, the catalogue production manager 16 and the catalogue update manager 18 and formats same as an on-line Internet catalogue held on a Web server. The Internet catalogue is accessed by users via an Internet interface device 26. A second catalogue publishing module 20 produces a master CD- ROM catalogue. The CD-ROM module 20 takes data from the catalogue layout designer 14 and the catalogue production manager 16 and provides a catalogue in the form of a binary database which is loaded onto a master CD- ROM via a CD-ROM output device 28. The master CD-ROM may subsequently be copied for mass-production of CD-ROM product catalogues. A third catalogue publishing module 22 provides a paper catalogue. The paper module 22 interfaces with Quark Xpress (trade mark) and provides for the automatic creation of paper catalogues using data provided by the catalogue layout designer 14, the catalogue production manager 16 and the catalogue update manager 18. The output data is loaded onto a storage medium, such as magnetic tape, on a data output device 30. The output data may subsequently be used at a printing facility for the mass-production of paper product catalogues. A fourth catalogue publishing module 24 which may be implemented on the system is a user-specific catalogue production module, allowing users to design suitable catalogues and output those catalogues onto any desired media, via a desired media output device 32. Figure 2 illustrates the data storage tables implemented by the core data manager 10 for data stored in the relational database 8. The data storage tables include an attribute control table 100 which stores control data about all product and classification attributes. A product detail table 200 stores product detail data in records consisting of a reference to product attributes and attribute values. There can be many product detail records for each product. An attribute value table 300 stores the actual values of attributes related to each product and classification. A product control table 400 stores control data about all products, a single record being provided per product. A classification-product-link table 500 stores relationships between classifications and products. The table consists of records including a single product code, being a unique product identifier, and a single classification code, being a unique classification identifier. A plurality of such records may include the same product code, and a plurality of the records may contain the same classification code. Thus, the classification-product-link table may store more than one classification for each product, and more than one product for each classification. A classification control table 600 stores control data about all classifications, including all classifications at different hierarchical levels. The classification control table 600 also defines the vertical relationships between different classifications, in the form of child-parent interlinking. A classification detail table 700 stores classification detail data in the form of records consisting of a reference to a classification attribute and the corresponding attribute values stored in the attribute control table 100 and the attribute value table 300, respectively. Thus, the attribute control data and attribute value data stored in attribute control table 100 and the attribute value table may be related to both product records and classification records. Each classification may be related to many classification detail records. A product structure control table 800 stores control data about product structures. One product structure can be used by any of a number of different classifications at any of the hierarchical levels within the database. A product structure detail table 900 stores product structure detail data in the form of records consisting of a reference to product attributes and sort order. The product attribute references are references to records stored in the attribute control table 100. Each product structure may be related to many product structure detail records. The product structures defined in the product structure tables 800, 900 are intended to be inherited by products classified within the classifications to which the relevant product structures are related. This allows all product records within a classification to inherit a defined list of attribute types, defined in the attribute control table 100, without yet defining the actual values which those attributes are to take. Rules may be defined in the system by a user as to the way in which product structures are inherited when two or more levels of classification exist for a product. For example, the product may inherit only the product structure of the lowest level of classification in which the product is grouped. Alternatively, the product structures of all levels of classification may be merged to produce a combined product structure list to be inherited by all products within a low-level product classification. Reference is now made to Figure 3, in which the fields of each of the product detail table, the attribute control table 100 and the attribute value table 300 is shown in greater detail. The product detail table 200 is capable of storing and manipulating an unlimited (other than by way of the total amount of storage available in the table) number of attributes for a given product. Therefore, for a given product control record there can be one or many product detail records stored depending on the number of product attributes to be associated with a respective product. Each product detail record includes five fields. A product code field 202 stores the product code (P-Code), which is a unique identifier for each product. An attribute code field 204 stores a unique identifier, the attribute code (A-Code), which is a pointer to an attribute control record stored in the attribute control table 100. A data type field 206 stores a type identifier (D- Type) for the attribute value data identified in the product detail record. The attribute value data may consist of one of four types, namely either a memo field (consisting of a large amount of text data), a text field (consisting of a relatively small amount of text data), an object field (consisting of multimedia-type data, such as a picture file or a Power Point (trademark) file), or a number field, which stores for example price data. A value code field 208 stores the value code (N-Code), which is a unique pointer to an attribute value record stored in the attribute value table 300, which contains the actual value data for the attribute. A sequence code field 210 stores a numerical sort code (S-Code) allowing the product attributes to be sorted in order. The attribute control table 100 includes a data field 102 for storing a unique identifier for an attribute, the attribute code (A-Code). An attribute description field 104 stores a name (A-Desc) for each attribute. The attribute value table 300 includes a value code field 302, whereby an attribute data item (N-Nalue), stored in field 304 of the attribute value table, is related to a product detail record by means of the value code (N- Code). An attribute value data item may be related to one, or a plurality of, product detail records. The relationship is set by including the appropriate value code in the appropriate product detail record(s). Referring to Figure 4, a classification control table includes five fields for storing classification control data. The classification control table is capable of storing multiple and various configurations of classification hierarchies, which are configurable both vertically and horizontally in the ways they are interrelated. A child classification is defined in the hierarchy to which it belongs by storing a unique identifier, the parent code (PA-Code), of the immediate upper level classification being a parent classification. Only the highest level of classification is an exception to this rule. A classification code field 602 stores the classification code (C-Code), which is a unique identifier for each classification record. It is the classification code of the parent classification related to the entry stored in the parent code field 606, of a child classification. The attributes defined for a parent classification may thus be inherited by its one or more child classification(s), via the parent code/classification code relationship. A sequence code field 610 stores a numerical sort code (S-Code) used to sort the order of the child classifications for a given parent classification. A classification description field 604 stores a name (C-Desc) for the classification. A product structure code field 608 stores a product structure code (PS-Code), which is a unique identifier for a product structure record stored in the product structure control table 800. The product structure control table 800 includes a product structure code field 802, which stores the product structure code (PS-Code) whereby the product structure record is related to a classification control record. Each classification control record is related to a limit of one product structure record. Conversely, a product structure record may be related to one or many different classification control records, since the same product structure code may be stored in many classification control records. A product structure description field 804 contains a name of the product structure (PS-Desc), for maintenance purposes. The product structure detail table 900 includes a product structure code field 902, which stores the product structure code (PS-Code) whereby a product structure detail record is related to the product structure control record. A plurality of product structure detail records may contain the same product structure code in field 902, thereby relating a plurality of product structure detail records to a single product structure control record. Each product structure detail record includes a single attribute code field 904, referring to an attribute control record stored in the attribute control table 100. A sequence code field 906 stores a numerical sort code (S-Code) allowing a plurality of attributes to be sorted for a given product structure. The product structure detail table 900 thus stores one or many attribute codes for a product structure without any limitation on the number of attributes which may be associated with a particular product structure. Referring to Figure 5, the classification detail table 700 is capable of storing references to an unlimited (other than by way of the total amount of storage available in the table) number of attributes for a given classification. For a given classification control record there may be one or many related classification detail records, depending on the number of classification attributes associated with the classification in records. Each classification detail record contains fields identical with the product detail records stored in product detail table 200, and having the same fimctionality, except that a classification code (C-Code), uniquely identifying the classification, is stored in field 702 rather than a product code. Field 704 stores an attribute code (A- Code) for a related attribute control record, field 706 stores a data type (D- Type), field 708 stores a value code (N-Code) pointing to an attribute value record stored in attribute value table 300, and field 710 stores a numerical sort code (S-Code) for sorting the classification attributes, where a number of classification detail records include the same classification code in field 702, that is to say where a classification is provided with a plurality of attributes. The attribute control table fields and attribute value table fields illustrated in Figure 5 are the same as those illustrated in Figure 3. Notably, attribute control data and attribute value data may be associated only with one or more products, only with one or more classifications, or with both one or more products and one or more classifications. Whether the attribute control data or attribute value data is associated with a product or a classification, the relevant data is stored in the same table, namely either the attribute control table 100 or the attribute value table 300. It will be appreciated, that using the data structure described above with reference to Figures 2 to 5 allows considerable flexibility in the product structures defined for the relational database 8 of the product catalogue product system of the present invention. In particular, any number of attribute values may be associated with a product. That is to say, the data structure itself does not limit the number of attributes which may be associated with a particular product. In order to add one or more attributes for a particular product, all that is required, where the attribute control data and attribute value data already exists in the attribute control table 100 and the attribute value table 300, respectively, is an additional product detail record stored in current detail table 200. Where the attribute value and/or the attribute control data is as yet undefined, additional records are produced in the attribute control table 100 and/or the attribute value table 300. The number of attributes which may be defined for a particular product are therefore only limited by any rules implemented in the core data manager 10, and/or the storage capacity of the product catalogue production system. It is to be appreciated that the term "attribute" as referred to herein is not in any way limiting as to the type of data referred to. Indeed, the term "attribute" as used herein is intended to include any types of data which may be associated with a product for catalogue production purposes. It is to be appreciated that the above description is not intended to be in any way limiting. It is envisaged that various modifications and variations may be employed by the person skilled in the art, without departing from the scope of the present invention, which is defined in the appended claims.

Claims: CLAIMS 1. A product catalogue production system comprising a data storage means for storing product data in the form of product codes and associated product attribute data items, said data storage means having a data structure allowing a plurality of product attribute data items to be associated with a product code, said data structure structuring the product data, when a plurality of product attribute data items are associated with a given product code, in the form of a plurality of product data records each including the given product code and an associated product attribute data item. 2. A product catalogue production system according to claim 1, wherein the attribute data item is an attribute code associated with an attribute value, and the attribute value is associated with the attribute code in a separate data record. 3. A product catalogue production system according to claim 1 or 2, wherein said plurality of product data records are stored in one storage table of a relational database. 4. A product catalogue production system according to any preceding claim, wherein said data storage means is further for storing product classification data in the form of classification data records associated with said product codes. 5. A product catalogue production system according to claim 4, wherein said product code/classification data association is a many-to-many association. 6. A product catalogue production system according to claim 4 or 5, wherein said storage means is further for storing product structure data, whereby a set of possible attributes is defined for a product falling within a product classification, and product structure control data, whereby a product structure is associated with a product classification. 7. A product catalogue production system according to claim 6, wherein said product structure data is in the form of a plurality of product structure data records each including a product structure code and an associated product attribute control data item. 8. A product catalogue production system according to claim 7, wherein said product data records include a field for storing an attribute control data item stored in an associated product structure record. 9. A product catalogue production system according to any of claims 4 to 8, wherein a classification data record is for storing a pointer to a further classification data record, to define a relationship in a classification hierarchy. 10. A product catalogue production system according to claim 9, wherein said pointer is a pointer to a parent classification data record. 11. A product catalogue production system according to any of claims 4 to 10, wherein said classification data records are for storing classification data in the form of classification codes and associated classification attribute data items, said data storage means having a data structure allowing a plurality of classification attribute data items to be associated with a classification code, said data structure structuring the classification data, when a plurality of classification attribute data items are associated with a given classification code, in the form of a plurality of classification data records each including the given classification code and an associated classification attribute data item. 12. A product catalogue production system according to claim 11, wherein said plurality of classification data records are stored in one storage table of a relational database. 13. A product catalogue production system according to claim 11 or 12, wherein the classification attribute data item is an attribute code associated with an attribute value, and the attribute value is associated with the attribute code in a separate data record. 14. A product catalogue production system according to claim 13, wherein the attribute values associated with a classification record in the data storage means may also be associated with an otherwise unrelated product record, by means of said attribute code. 15. A product catalogue production system substantially as hereinbefore described. 16. A data store for a product catalogue production system, said data store having a data storage structure substantially as hereinbefore described, in particular with reference to any of Figures 2 to 5 of the accompanying drawings.

Inventors: LANDALE PETER DAVID ROPER, SHANTHARUBAN WIJEYARATNAM, LANDALE, PETER, DAVID, ROPER, SHANTHARUBAN, WIJEYARATNAM
Applicants: LANDALE PETER DAVID ROPER, SHANTHARUBAN WIJEYARATNAM, ZYGON SYSTEMS LTD, LANDALE, PETER, DAVID, ROPER, SHANTHARUBAN, WIJEYARATNAM, ZYGON SYSTEMS LTD.
Application year: 2000
Main classification: G06F17
IPC codes: G06F17