A method is disclosed that includes identifying an inventory item corresponding to a product configuration. The product configuration is defined using a feature map. The inventory item is also defined using the feature map. Each entry of the feature map corresponds to one of a number of features of a product.
|
33. An non-transitory, computer readable medium comprising code stored in the medium for automating inventory-database-representation searching and comparison, the code is executable by a processor to configure a computer system into an inventory-database-representation searching and comparison machine for:
receiving an inventory search request provided from a client computing device;
compiling and translating raw data in one or more inventory databases into a representation of configurations of products that is used by an inventory search engine of the computer system to perform searches of inventory items in the one or more databases and comparisons of multiple product feature selection data;
comparing first product feature selection data with second product feature selection data to generate comparison data, wherein:
(i) the second product feature selection data is associated with at least one of a plurality of products:
(ii) the second product feature selection data includes positions corresponding to feature options of features in a product line associated with the product, wherein a plurality of the features include multiple feature options so that the second product feature selection data includes multiple positions for each of the plurality of features that include multiple feature options, and
(iii) values for the positions in the second product feature selection data define the configuration of the product by indicating availability of the feature options in the product associated with the second product feature selection data,
(iv) a feature map maps feature options of products in a product line to positions in the second product feature selection data,
(v) the first product feature selection data includes positions corresponding to the feature options in the product line, wherein a plurality of the features include multiple feature options,
(vi) the positions in the first product feature selection data map to positions in the second product feature selection data in accordance with the feature map, and
(vii) values for the positions in the first product feature selection data indicate a preference for the feature option corresponding to the position;
providing the comparison data resulting from comparing the first product feature selection data with the second product feature selection data comparison to activate a client device application to display the comparison data.
17. An apparatus comprising:
a processor;
a memory, coupled to the processor, that includes code stored in the memory for automating inventory-database-representation searching and comparison, the code is executable by the processor to configure the apparatus into an inventory-database-representation searching and comparison machine for:
receiving an inventory search request provided from a client computing device;
compiling and translating raw data in one or more inventory databases into a representation of configurations of products that is used by an inventory search engine of the computer system to perform searches of inventory items in the one or more databases and comparisons of multiple product feature selection data;
comparing first product feature selection data with second product feature selection data to generate comparison data, wherein:
(i) the second product feature selection data is associated with at least one of a plurality of products:
(ii) the second product feature selection data includes positions corresponding to feature options of features in a product line associated with the product, wherein a plurality of the features include multiple feature options so that the second product feature selection data includes multiple positions for each of the plurality of features that include multiple feature options, and
(iii) values for the positions in the second product feature selection data define the configuration of the product by indicating availability of the feature options in the product associated with the second product feature selection data,
(iv) a feature map maps feature options of products in a product line to positions in the second product feature selection data,
(v) the first product feature selection data includes positions corresponding to the feature options in the product line, wherein a plurality of the features include multiple feature options,
(vi) the positions in the first product feature selection data map to positions in the second product feature selection data in accordance with the feature map, and
(vii) values for the positions in the first product feature selection data indicate a preference for the feature option corresponding to the position;
providing the comparison data resulting from comparing the first product feature selection data with the second product feature selection data comparison to activate a client device application to display the comparison data.
1. A method of automating inventory-database-representation searching and comparison, the method comprising:
performing by a computer system programmed with code stored in a memory and executing by a processor of the computer system to configure the computer system into an inventory-database-representation searching and comparison machine:
receiving an inventory search request provided from a client computing device;
compiling and translating raw data in one or more inventory databases into a representation of configurations of products that is used by an inventory search engine of the computer system to perform searches of inventory items in the one or more databases and comparisons of multiple product feature selection data;
comparing first product feature selection data with second product feature selection data to generate comparison data, wherein:
(i) the second product feature selection data is associated with at least one of a plurality of products:
(ii) the second product feature selection data includes positions corresponding to feature options of features in a product line associated with the product, wherein a plurality of the features include multiple feature options so that the second product feature selection data includes multiple positions for each of the plurality of features that include multiple feature options, and
(iii) values for the positions in the second product feature selection data define the configuration of the product by indicating availability of the feature options in the product associated with the second product feature selection data,
(iv) a feature map maps feature options of products in a product line to positions in the second product feature selection data,
(v) the first product feature selection data includes positions corresponding to the feature options in the product line, wherein a plurality of the features include multiple feature options,
(vi) the positions in the first product feature selection data map to positions in the second product feature selection data in accordance with the feature map, and
(vii) values for the positions in the first product feature selection data indicate a preference for the feature option corresponding to the position; and
providing the comparison data resulting from comparing the first product feature selection data with the second product feature selection data comparison to activate a client device application to display the comparison data.
2. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
constructing the second product feature selection data using said feature map.
3. The method of
4. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
constructing the second product feature selection data corresponding to said products using said feature map, and a value indicating availability of each feature option in the second product feature selection data indicates one of a presence and an absence of one of said feature options in the second product feature selection data.
5. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
determining if the comparison data indicates one or more matches between values that indicate a presence of features in both the first product feature selection data and in the second product feature selection data for corresponding feature options in the first product feature selection data and the second product feature selection data.
6. The method of
determining if the comparison data indicates whether one of the values that indicates the presence for one of the feature options in one of the first product feature selection data positions matches a value in a corresponding position of the second product feature selection data.
7. The method of
determining if the comparison data indicates complete matches between values that indicate the presence in the first product feature selection data and in the second product feature selection data for corresponding feature options in the first product feature selection data and the second product feature selection data.
8. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
constructing the feature map, wherein constructing the feature map comprises:
assigning a position in the feature map for each feature option of each configurable feature in a product line.
9. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
translating data from a database into the second product feature selection data using the feature map so that feature option positions in the second product feature selection data align with feature option positions in the feature map.
10. The method of
performing a bitwise comparison between the first product feature selection data and the second product feature selection data to generate a bit string of data representing the comparison data.
11. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
filtering the second product feature selection data prior to comparing the first product feature selection data directly with the second product feature selection data of a plurality of the products to remove second product feature selection data that fail to meet one or more predetermined criteria.
12. The method of
13. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
assigning a weight to each feature of the products, wherein at least one weight is not equal to one; and
determining a relative importance of any products identified as corresponding to a product configuration for which the comparison data indicates a match between the second product feature selection data of a product and the first product feature selection data.
14. The method of
performing by the computer system programmed with code stored in the memory and executing by the processor of the computer system to configure the computer system into the machine:
assigning numerical values to each match between the second product feature selection data of a product and the first product feature selection data, wherein the numerical values indicate a closeness of the match between the second product feature selection data of a product and the first product feature selection data.
18. The apparatus of
constructing the second product feature selection data using said feature map.
19. The apparatus of
20. The apparatus of
constructing the second product feature selection data corresponding to said products using said feature map, and a value indicating availability of each feature option in the second product feature selection data indicates one of a presence and an absence of one of said feature options in the second product feature selection data.
21. The apparatus of
determining if the comparison data indicates one or more matches between values that indicate a presence of features in both the first product feature selection data and in the second product feature selection data for corresponding feature options in the first product feature selection data and the second product feature selection data.
22. The apparatus of
determining if the comparison data indicates whether one of the values that indicates the presence for one of the feature options in one of the first product feature selection data positions matches a value in a corresponding position of the second product feature selection data.
23. The apparatus of
determining if the comparison data indicates complete matches between values that indicate the presence in the first product feature selection data and in the second product feature selection data for corresponding feature options in the first product feature selection data and the second product feature selection data.
24. The apparatus of
constructing the feature map, wherein constructing the feature map comprises:
assigning a position in the feature map for each feature option of each configurable feature in a product line.
25. The apparatus of
translating data from a database into the second product feature selection data using the feature map so that feature option positions in the second product feature selection data align with feature option positions in the feature map.
26. The apparatus of
performing a bitwise comparison between the first product feature selection data and the second product feature selection data to generate a bit string of data representing the comparison data.
27. The apparatus of
wherein the memory further includes code that is executable by the processor to further configure the machine for:
filtering the second product feature selection data prior to comparing the first product feature selection data directly with the second product feature selection data of a plurality of the products to remove second product feature selection data that fail to meet one or more predetermined criteria.
28. The apparatus of
29. The apparatus of
wherein the memory further includes code that is executable by the processor to further configure the machine for:
assigning a weight to each feature of the products, wherein at least one weight is not equal to one; and
determining a relative importance of any products identified as corresponding to a product configuration for which the comparison data indicates a match between the second product feature selection data of a product and the first product feature selection data.
30. The apparatus of
assigning numerical values to each match between the second product feature selection data of a product and the first product feature selection data, wherein the numerical values indicate a closeness of the match between the second product feature selection data of a product and the first product feature selection data.
34. The non-transitory, computer readable medium of
35. The non-transitory, computer readable medium of
36. The non-transitory, computer readable medium of
37. The non-transitory, computer readable medium of
38. The non-transitory, computer readable medium of
determining if the comparison data indicates whether one of the values that indicates the presence for one of the feature options in one of the first product feature selection data positions matches a value in a corresponding position of the second product feature selection data.
39. The non-transitory, computer readable medium of
40. The non-transitory, computer readable medium of
41. The non-transitory, computer readable medium of
42. The non-transitory, computer readable medium of
43. The non-transitory, computer readable medium of
44. The non-transitory, computer readable medium of
45. The non-transitory, computer readable medium of
46. The non-transitory, computer readable medium of
47. The non-transitory, computer readable medium of
|
This application is a continuation of co-pending application Ser. No. 13/571,602, filed Aug. 10, 2012, which is a continuation of application Ser. No. 12/749,803, filed Mar. 30, 2010, now U.S. Pat. No. 8,244,604, which is a continuation of application Ser. No. 10/146,178, filed May 15, 2002, now U.S. Pat. No. 7,756,759. All of these applications are incorporated herein by reference in their entirety.
The present invention relates to searching inventory databases, and more specifically, relates to a method and apparatus for inventory searching that employs a novel inventory representation and manipulation system.
It is a common problem in many retail software applications (such as websites) to locate an item in a vendor's available stock that is as similar as possible to an item a customer wants. Currently, in most cases, this problem is solved by having all the information on the item in stock stored in a database. To search for items, the software queries the database to get a list of in-stock items that possess the desired characteristics. Generally, the software then post-processes the result set in some way, generally resorting and filtering the results based on various criteria.
While this solution is very general, it does not scale well over large data sets. This is because the typical database is so general that it is difficult to easily exploit much of the information that is implicitly available in such a database. For example, such implicit information can be the result of the information being inventory information. As a general rule, it is difficult to perform real-time inventory searches using only a database system because such systems are typically too slow to provide the information in a timely manner.
What is therefore needed is a system and method for performing rapid searches of inventory databases. Preferably, such a system and method would employ, at least in part, information implicit in the database information.
In one embodiment, a method is disclosed. The method includes identifying an inventory item corresponding to a product configuration. The product configuration is defined using a feature map. The inventory item is also defined using the feature map. Each entry of the feature map corresponds to one of a number of features of a product.
In another embodiment, method for manipulating inventory information is disclosed. The method includes constructing a user-preference list using a feature map. Each entry of the feature map corresponds to one of a number of features of a product. The value of each entry in the user-preference list indicates a desired presence of a corresponding one of the features.
In still another embodiment, method for manipulating inventory information is disclosed. The method includes constructing an inventory item list using a feature map. Each entry of the feature map corresponds to one of a number of features of the product. The inventory item list corresponds to an inventory item. The inventory item is a configuration of a product. The value of each entry in the inventory item list corresponds to a presence of one of the features in the product.
In yet another embodiment, method for manipulating inventory information is disclosed. The method includes translating data from a database into an inventory item list using a feature map. Each entry of the feature map corresponds to one of a number of features of a product. The value of each entry in the user-preference list indicates a desired presence of a corresponding one of the features.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. As will also be apparent to one of skill in the art, the operations disclosed herein may be implemented in a number of ways, and such changes and modifications may be made without departing from this invention and its broader aspects. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference number throughout the several figures designates a like or similar element.
The following sets forth a detailed description of a mode for carrying out the invention. The description is intended to be illustrative of the invention and should not be taken to be limiting.
Introduction
An inventory representation and searching system according to embodiments of the present invention is described herein that provides fast, efficient searching of an inventory database, while also providing efficient use of resources (e.g., system throughput and memory). Moreover, such an inventory representation and searching system allows for single features to have multiple values. Traditionally, database inventory systems have suffered from the restriction that each feature being searched on can have only a single value, because that value is represented in the database as a datatype known as a “string” datatype (consisting of a number of characters), typically corresponding to a certain part number. An embodiment of the present invention provides a choice of having each feature (e.g., a database column) associated with a set of a values. This allows for a flexible inventory representation and searching system. Moreover, implementations according to embodiments of the present invention that employ bit vectors afford additional advantages, such as improved performance and memory compactness.
Many embodiments of the present invention have application to a wide range of industries including the following: computer hardware and software manufacturing and sales, professional services, financial services, automotive sales and manufacturing, telecommunications sales and manufacturing, medical and pharmaceutical sales and manufacturing, and construction industries. For example, in the automotive industry, embodiments of the inventory search engine can be used to provide automobile dealer and/or manufacturer inventory information to a user. The inventory information can be especially useful when used in conjunction with the configuration of a product where inventory data is available. One example of an industry that generally maintains real-time or near real-time inventory data is the automotive industry. For example, after a user has completely or partially configured an automobile, embodiments of the inventory search engine can locate automobiles in inventory, using inventory data, that corresponds to (i.e., matches or matches within certain guidelines) the user's configured automobile. With this information, the user can locate a dealer having a desired automobile in inventory and the dealer's potential customer base increases, thereby increasing the likelihood of a quicker sale and reducing costs associated with maintaining inventory.
An Inventory Search Architecture According to the Present Invention
In the embodiment depicted, inventory engine 130 is operably coupled to product retail website 140. Product website 140 is a website maintained for the purpose of giving customers and potential customers electronic access to the products of one or more businesses. Each of these products has certain features. Each inventory item is a configuration of one of these products (i.e., each inventory item is in a product line, and possesses some or all of the given product's features). Product website 140 is operably connected to user configuration input application (herein also “user application”) 150. User application 150 provides users, including customers and potential customers, a tool with which to consider preferences among product configurations, to choose among those preferences, and to communicate those preferences to product website 140 and inventory engine 130.
In the embodiment depicted in
Taking an automobile as an example, features could include each of the available paint colors (e.g., red, green and blue); each of the available radio options (e.g., deluxe, standard, and none); and each of the available air conditioning options (installed and none). The CID does not need to represent options for which the user cannot directly express preferences, such as standard automobile parts, because the presence of these options must necessarily be completely determined by the list of parts that the user has selected directly by selecting a product for which to begin the feature preference process.
In this embodiment, a CID is used to store individual feature information by assigning a single bit to each entry representing the a preference for the presence or absence of a feature option. Continuing the automobile example begun above, the exterior color features, comprising the colors of red, green, and blue, are assigned three bit positions, one for each entry for red, green, and blue. The radio features are assigned three bit positions, one for deluxe, one for standard, and one for no radio. The air conditioning features are assigned two bit positions, one for air conditioning being installed, and one for air conditioning not installed.
In one embodiment, a feature map is a construct that is one logical level removed from the CID. A feature map contains the entire context necessary to determine the product configuration that a given CID represents. Only one feature map is required for a given product line, and that one feature map can be used with all CIDs for that product line. The information represented by a feature map is stored independently from the individual CIDs for a product line to conserve memory when storing large amounts of inventory information.
Referring again to
In one embodiment, once a feature map has been created for a product line, data about the individual items on the assembly line and in inventory can be imported from any source, generally a database such as inventory database 110 of
This embodiment allows a CID the flexibility to represent an automobile that is still on the assembly line, while the presence of some or all of the features have not yet been determined. One use of this flexibility is that a user may specify preferences and those preferences may be built in to a specific auto on the assembly line. Herein, the term “inventory item” and like terms includes but is not limited to items in assembly or production (e.g., automobiles on an assembly line) and finished items.
Referring further to
Referring now to
Referring further to
Referring further to
In an embodiment such as the one discussed above in reference to
Referring further to
It is sometimes desirable to produce a list of alternate choices available in inventory that are similar to the user-preferred configuration as expressed in a user-preference list. In one embodiment, for a given inventory item list, the number of features that match the user-preference list is counted by counting the number of “1” bits in the result of the bitwise AND operation on the user-preference list and the inventory item list. The number of matching “1” bits for each inventory item list is used as a distance metric to express the “distance” between the user-preference list and each inventory item list. Alternatively, given that a higher numerical value for the number is matching “1” bits indicates a better match, this distance metric can also be referred to as a score, which is more intuitively logical. This distance-determination algorithm can be used to evaluate an entire inventory very quickly using a bit-counting algorithm, which, in pseudocode (where the “AND” operation is a bitwise AND), can be written as:
Function countbits(Integer n)
Integer count=0
while n!=0 do
end
return count
It should be noted that the fast bit-counting distance and equality-test-for-matching techniques described in the preceding passages are optimizations that are appropriate for cases where either the inventory (the inventory list) contains no partial configurations, or the user is not allowed to search with a preference CID that allows for more than one option for each characteristic. This is because, in order for there to be a match for a single characteristic, there need only be overlap in the user-preference list and the inventory item for that characteristic. Thus, for example, the situation in which a user-preference list is “110” and the inventory item is “101” should be considered a match, because there is a potential non-partial configuration for that inventory item which matches the user preference (namely, “100”). The entire configuration matches if and only if every characteristic matches. Thus, the previous techniques will operate properly if it is known that the user-preference list will only contain a single “1” bit in each characteristic, either because that is the only possible result (the inventory list contains no partial configurations) or the user is not allowed to perform such a query (the user is not allowed to search with a preference CID that allows for more than one option for each characteristic).
Alternatively, a full-weighting or full-matching technique can be used to generate an accurate distance or match, respectively, if partial configurations are possible or the user is allowed to search with a preference CID that allows for more than one option for each characteristic. This can be accomplished by crafting the analysis to take into account that there may be more than one match possible for any given characteristic. However, because such full-weighting or full matching techniques take this possibility into account, such techniques tend to be relatively slower in producing results than the fast bit-counting distance and equality-test-for-matching techniques presented previously.
The flexibility of such techniques is thus evident from the preceding figures. With regard to
In one embodiment, a list of alternate choices is produced by assigning a weight to each feature, and then the closeness of the match is determined by the sum of the weights of all features whose values in both the user-preference list and a given inventory item list are the same. The result of each bitwise AND operation on the user-preference list and an inventory item list is examined using the feature map: each “1” bit in the result, denoting a match between a specific feature in the user-preference list and an inventory item list, is interpreted according to a characteristic of the feature map and the weight of that feature is added to a running total for that inventory item list.
In comparing the bit-counting algorithm and the weighting algorithm, it will be apparent to one of skill in the art that each of these algorithms provides its own advantages. In making such a comparison, it can be seen that the bit-counting algorithm is capable of providing results more quickly than the weighting algorithm. However, the weighting algorithm provides more flexibility than the bit-counting algorithm, allowing for the consideration of each feature's importance to a user.
In one embodiment, the inventory engine can be used to filter out inventory item lists in which the user has no interest or which a vendor wants to exclude from availability. In one embodiment, this filtering operation is performed using a filter list. The filter list contains entries that fulfil the requirements of the particular filtering operation for which it is required.
In one embodiment using the bit entries as described in connection with
In an embodiment in which partial configurations are allowed, as has been noted, a bitwise AND operation can be performed on the filter list and every inventory item list, and then each characteristic being analyzed for a non-zero result in one of the bit positions for that characteristic. An inventory item list satisfies the filter in a given characteristic if there is any overlap between the filter and the inventory item with regard to that characteristic. This allows for the case where there are multiple matches (here, ones) in the result for a given characteristic. With regard to the user-preference filter, satisfaction of the filter by a given inventory item list indicates that the user would be interested in the corresponding inventory item. With regard to the vendor availability filter, satisfaction of the filter by a given inventory item list indicates that the corresponding inventory item will be made available.
In another embodiment in which partial configurations are not allowed, the operation of such a system can be made more efficient by simply performing a bitwise AND operation on the filter list and every inventory item list. In this case, for each inventory item list, if the result equals the inventory item list, that inventory item list satisfies the filter. With regard to the user-preference filter, satisfaction of the filter by a given inventory item list indicates that the user would be interested in the corresponding inventory item. With regard to the vendor availability filter, satisfaction of the filter by a given inventory item list indicates that the corresponding inventory item will be made available. Because bitwise AND operations can be performed very rapidly, filtering using bitwise AND operations incurs little speed penalty for the additional utility provided. However, such a filter (i.e., a filter that filters with only a single “1” in each characteristic) effectively limits the system to only returning a single configuration (and partial configurations that could eventually result in that single configuration).
An Example Computing and Network Environment
Computer programs and data are generally stored as instructions and data in mass storage unit 1050 until loaded into main memory 1040 for execution. Computer programs may also be in the form of electronic signals modulated in accordance with the computer program and data communication technology when transferred via a network. The method and functions relating to the present invention may be implemented in a computer program alone or in conjunction with combinations of hardware and software. Furthermore, context subsystem data structures can be implemented in and utilized by general-purpose computer 1000, or by other data processing systems that have access to the data structures.
In an embodiment of this invention, processor 1030 is a 32-bit microprocessor manufactured by Motorola (e.g., an 680X0 microprocessor) or by Intel (e.g., an 80X86 or Pentium microprocessor). However, any other suitable microprocessor or microcontroller may be utilized. Main memory 1040 is preferably comprised of dynamic random access memory (DRAM). Video memory 1035 is preferably a dual-ported video random access memory. One port of the video memory 1035 is coupled to video amplifier 1055. The video amplifier 1055 is used to drive the display 1060. Video amplifier 1055 is well known in the art and may be implemented by any suitable means. This circuitry converts pixel data stored in video memory 1035 to a raster signal suitable for use by display 1060. Display 1060 is a type of monitor suitable for displaying graphical images.
The computer system described above is depicted for purposes of example only. The present invention may be implemented in any type of computer system or programming or processing environment. It is contemplated that the present invention might be run on a stand-alone computer system, such as the one described above. The present invention might also be run from a server system that can be accessed by a plurality of client computer systems interconnected over an intranet network. Finally, the present invention may be run 26 from a server that is accessible to clients over a wide-area network (WAN) such as the Internet, as is described with regard to
Many other devices or subsystems (not shown) may be connected in a similar manner (e.g., bar code readers, document scanners, digital cameras and so on). Conversely, it is not necessary for all of the devices shown in
Referring to
Referring again to
One advantage of employing JSP is that the use of JSP facilitates organization of a website as a state machine. In this manner, the logical organization of a website can be arranged in categories, for example: Controls, States and Transitions. Controls include a Java class of elements that manage the active elements of a page such as render control text or interpret user's action with respect to a page. Examples of controls would be the management of a virtual button on a web page or login management that could include providing a number of dialog boxes containing text and a virtual button. States define a user's current location on the website (e.g., in a state machine), such as the web page that a user is presently viewing. States also define the relationship of a user with respect to a web page being viewed. Transitions define the new state of a user and are a function of a users interaction with a page. Specifically, a transition is defined by the user's current state and the actions taken by the user while in that state (e.g., the result of user operation on a control alters the user's state). Simply put, the user's new state is simply defined as the user's current state, as modified by the transition selected. The transitions are located in a transition module that is responsible for all transitions.
Advantages of the state machine model of the website are that it is has maintainability to facilitate update flow or pages very easily and per user state machine, service different users with maximum code reuse. It is also consistent in that most or all server logic is handled under the same paradigm. Login control, record and display controls cause transitions which update state. Typically, XML/XSL defines the state machine, page content and layout. Such a methodology can also be compatible with the Wireless Application SProtocol (WAP). This can extend an existing web site to provide alternative state machines for WAP users.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teaching herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4811199, | May 08 1987 | System for storing and manipulating information in an information base | |
5515524, | Mar 29 1993 | VERSATA DEVELOPMENT GROUP, INC | Method and apparatus for configuring systems |
5778362, | Jun 21 1996 | KDL TECHNOLOGIES LIMITED | Method and system for revealing information structures in collections of data items |
5825651, | Sep 03 1996 | VERSATA DEVELOPMENT GROUP, INC | Method and apparatus for maintaining and configuring systems |
6002854, | Jun 07 1995 | VERSATA DEVELOPMENT GROUP, INC | Method and apparatus for configuring systems |
6167383, | Sep 22 1998 | Dell USA, LP; DELL USA, L P | Method and apparatus for providing customer configured machines at an internet site |
6341282, | Apr 19 1999 | MICRO FOCUS LLC | Information retrieval system and method |
6377937, | May 28 1998 | INTERNET COMMERCE CITY CORPORATION | Method and system for more effective communication of characteristics data for products and services |
6397212, | Mar 04 1999 | HANGER SOLUTIONS, LLC | Self-learning and self-personalizing knowledge search engine that delivers holistic results |
6519588, | Apr 03 2000 | International Business Machines Corporation | System and method for representing related concepts |
6604107, | Apr 24 2000 | Ebay Inc. | Generic attribute database system for storing items of different categories having shared attributes |
6708161, | Sep 26 2000 | BLUE YONDER GROUP, INC | System and method for selective database indexing |
6789252, | Apr 15 1999 | BLUE YONDER GROUP, INC | Building business objects and business software applications using dynamic object definitions of ingrediential objects |
6873967, | Jul 17 2000 | PayPal, Inc | Electronic shopping assistant and method of use |
6901430, | Nov 05 1999 | Ford Motor Company | Online system and method of locating consumer product having specific configurations in the enterprise production pipeline and inventory |
6917941, | Dec 28 2001 | MYLIST CORPORATION | Method and apparatus for creation and maintenance of database structure |
6961731, | Nov 15 2000 | CALLAHAN CELLULAR L L C | Apparatus and method for organizing and/or presenting data |
7043407, | Mar 10 1997 | VERSATA DEVELOPMENT GROUP, INC | Method and apparatus for configuring systems |
7103605, | Dec 10 1999 | SAP SE | Timeshared electronic catalog system and method |
7127414, | Oct 14 1999 | ENERGETIC POWER INVESTMENT LIMITED | Methods and computer-readable media for processing web-based new and used good comparison shopping |
7216092, | Apr 14 2000 | Deluxe Corporation | Intelligent personalization system and method |
7627503, | Nov 05 1999 | Ford Motor Company | Online system of ordering and specifying consumer product having specific configurations |
7756759, | May 15 2002 | VERSATA DEVELOPMENT GROUP, INC | Method and apparatus for inventory searching |
8812375, | Oct 07 2011 | Ford Global Technologies, LLC | Method and system for product configuration validation |
9098854, | Mar 15 2013 | Ford Global Technologies, LLC | Method and system for generating a global representation of a product definition |
20010034625, | |||
20010050678, | |||
20020004757, | |||
20020087408, | |||
20020099583, | |||
20020161671, | |||
20030046179, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 07 2014 | Versata Development Group, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jun 12 2023 | REM: Maintenance Fee Reminder Mailed. |
Nov 27 2023 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 22 2022 | 4 years fee payment window open |
Apr 22 2023 | 6 months grace period start (w surcharge) |
Oct 22 2023 | patent expiry (for year 4) |
Oct 22 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 22 2026 | 8 years fee payment window open |
Apr 22 2027 | 6 months grace period start (w surcharge) |
Oct 22 2027 | patent expiry (for year 8) |
Oct 22 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 22 2030 | 12 years fee payment window open |
Apr 22 2031 | 6 months grace period start (w surcharge) |
Oct 22 2031 | patent expiry (for year 12) |
Oct 22 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |