# US 10,121,177 B2 · Techniques for configurable part generation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,121,177 B2
- Document ID: US10121177B2
- Status: Granted
- Kind: B2
- Application number: 14/704,636
- Filed: 2015-05-05
- Published: 2016-11-10
- Granted: 2018-11-06
- Earliest claimed: 2015-05-05
- Assignees: Partfiniti Inc.
- Applicants: Partfiniti Inc.
- Inventors: Lukasz Marcin Reszczynski; Geoffrey Peter Laycock
- Web page: https://patentgrep.com/patent/US10121177B2

## CPC

- G06Q 30/0621: {by configuring or customising goods or services}
- G06F 16/248: Presentation of query results
- G06F 16/287: {Visualization; Browsing}
- G06F 16/90344: {by using string matching techniques}
- G06F 16/951: Indexing; Web crawling techniques
- G06Q 30/0625: {by formulating product or service queries, e.g. using keywords or predefined options}
- G06Q 30/0641: {utilising user interfaces specially adapted for shopping}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Certain example embodiments relate to techniques generating a database of virtual families for real-time generation of part numbers for configurable products. For instance, certain example embodiments may include receiving a search request for part numbers and determining virtual families including entities matching the search request. The number of matching products matching the search request and the part numbers may be determined based on the virtual families and the independent groups stored in the virtual families that match the search request. The part numbers may be determined based on allowed characters, number and/or symbols for the part number positions defined in the independent groups of the virtual families including the entities matching the one or more configurable properties of the user input search request. Facet counts for the configurable product may also be determined based on the results of the user input search request.

## Claims

### Claim 1

A computer implemented method for processing a search request for part numbers of a configurable product, the method comprising:
displaying a user interface configured to receive a user input search request for the part numbers of the configurable product;
receiving, via the user interface, the user input search request defining one or more configurable properties of the configurable product;
analyzing the user input search request to determine entities present in a database matching the one or more configurable properties of the user input search request,
the database storing a plurality of virtual families, each virtual family of the plurality of virtual families including a plurality of independent groups, each independent group defining (1) at least one configurable property of the configurable product and (2) part number positions of the part number corresponding to the configurable properties in the independent group, each independent group of the plurality of independent groups including part number positions of the part number for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups of the plurality of independent groups, and at least one configurable property of the configurable product is included in independent groups of at least two virtual families;
determining virtual families stored in the database including the entities matching the one or more configurable properties of the user input search request, wherein at least two of the determined virtual families include independent groups with a common configurable property;
based on the determined virtual families including the entities, calculating total number of matching products;
determining the part numbers of the configurable product matching the user input search request, wherein the part numbers are determined based on allowed characters, number and/or symbols for the part number positions defined in the independent groups of the virtual families determined to include the entities matching the one or more configurable properties of the user input search request; and
displaying, in the user interface, a list of part numbers determined to match the user input search request.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, wherein the independent groups are generated by:
receiving specification information for the configurable product, the specification information including a plurality of symbol groups for the configurable product and at least one constraint involving at least one symbol group, wherein the symbol groups define a format of the part number of the configurable product and each symbol group includes one or more part number positions of the part number for the characters, number and/or symbols corresponding to the configurable properties of the configurable product;
generating an independent group for each symbol group;
merging independent groups having the same configurable properties to form a new independent group; and
merging independent groups that, based on the at least one constraint, dependent on each other, wherein the dependent independent groups are merged to form a new independent group.

### Claim 3 (depends on 1)

The computer implemented method of claim 1, wherein the possible part number positions formed based on the independent groups of one virtual family have a same length.

### Claim 4 (depends on 1)

The computer implemented method of claim 1, further comprising generating new virtual groups and independent groups in the database, wherein generating the additional independent groups includes:
receiving specification information for a new configurable product, the specification information including a plurality of symbol groups for the new configurable product, at least one constraint involving at least one symbol group, and at least one conditional particular for at least one symbol group, wherein the symbol groups define a format of a part number of the new configurable product and each symbol group includes one or more part number positions of the part number for characters, number and/or symbols corresponding to configurable properties of the new configurable product;
based on the specification information, generating a plurality of independent groups, each generated independent group including part number positions for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups in the database, wherein generating the plurality of independent groups includes:
generating an independent group for each symbol group;
merging independent groups having the same configurable properties to form a new independent group; and
merging independent groups that, based on the at least one constraint, dependent on each other, wherein the dependent independent groups are merged to form a new independent group; and
when multiple lengths of the part number positions can be generated from the generated independent groups, generating a plurality of new virtual families such that each respective new virtual family, based on the independent groups in the virtual family, provides characters, number and/or symbols for part number positions that are of a same length; and
storing the new virtual families in the database.

### Claim 5 (depends on 1)

The computer implemented method of claim 1, further comprising determining specifications for each part number determined to match the user input search request.

### Claim 6 (depends on 5)

The computer implemented method of claim 5, wherein the specification for the part number is retrieved from a relational database based on fields stored in the independent groups used to generate the part number.

### Claim 7 (depends on 1)

The computer implemented method of claim 1, further comprising:
determining facet counts providing, independent of the list of part numbers determined to match the user input search request, a breakdown of results based on multiple configurable properties of the configurable product; and
displaying the determined facet counts in the user interface.

### Claim 8 (depends on 7)

The computer implemented method of claim 7, wherein the breakdown of the results displays a list of possible values of the configurable properties that have not been determined to match the user input search request, and the list of possible values of the configurable properties is displayed with a number of part numbers that will be returned if the listed configurable property is added to the user input search request.

### Claim 9 (depends on 7)

The computer implemented method of claim 7, wherein the breakdown of the results displays a list of all possible values of the configurable properties that have not been determined to match the user input search request.

### Claim 10 (depends on 1)

The computer implemented method of claim 1, wherein the user input search request is a search string and analyzing the user input search request includes parsing the search string.

### Claim 11 (depends on 10)

The computer implemented method of claim 10, wherein the search string includes characters, number and/or symbols defining a portion of the part number.

### Claim 12 (depends on 1)

The computer implemented method of claim 1, wherein the user input search request is received by the user selecting displayed values for a plurality of configurable options of the configurable product on the user interface.

### Claim 13

A part number generation system, comprising:
a user device configured to receive a search request for part numbers of a configurable product;
a non-transitory computer readable storage medium storing a database including virtual families corresponding to the configurable product, each virtual family of the plurality of virtual families including a plurality of independent groups, each independent group defining (1) at least one configurable property of the configurable product and (2) part number positions of the part number corresponding to the configurable properties in the independent group, each independent group of the plurality of independent groups including part number positions of the part number for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups of the plurality of independent groups, and at least one configurable property of the configurable product is included in independent groups of at least two virtual families; and
processing resources including at least one processor and a memory, the processing resources being configured to control the system to at least:
receive, via a user interface displayed on a display associated with the user device, the search request defining one or more configurable properties of the configurable product;
determine virtual families stored in the database including entities related to content of the search request, wherein at least two of the determined virtual families include independent groups with a common configurable property;
based on the determined virtual families including the entities, calculate total number of matching products;
determine the part numbers of the configurable product matching the search request, wherein the part numbers are determined based on allowed characters, number and/or symbols for the part number positions defined in the independent groups of the virtual families determined to include the entities matching the one or more configurable properties of the search request; and
display, in the user interface, a list of part numbers determined to match the search request.

### Claim 14 (depends on 13)

The part number generation system of claim 13 wherein each respective virtual family provides part number positions that are of a same length, and at least one virtual family provides part number positions having a length that is different from lengths provided by other virtual families.

### Claim 15 (depends on 13)

The part number generation system of claim 13 further comprising a relational database configured to store specification information for the configurable product, and wherein the processing resources are further configured to control the system to retrieve, from the relational database, specifications for each part number determined to match the search request, wherein the specifications are retrieved from the relational database based on fields stored in the independent groups used to generate the part number.

### Claim 16

A non-transitory computer readable storage medium having a program for generating part numbers for configured products stored thereon, the program comprising instructions that, when executed, cause a computing system including at least one processor and a memory to at least:
display a user interface configured to receive a user input search request for the part numbers of the configurable product;
receive, via the user interface, the user input search request defining one or more configurable properties of the configurable product;
analyze the user input search request to determine entities present in a database matching the one or more configurable properties of the user input search request,
the database storing a plurality of virtual families, each virtual family of the plurality of virtual families including a plurality of independent groups, each independent group defining (1) at least one configurable property of the configurable product and (2) part number positions of the part number corresponding to the configurable properties in the independent group, each independent group of the plurality of independent groups including part number positions of the part number for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups of the plurality of independent groups, and at least one configurable property of the configurable product is included in independent groups of at least two virtual families;
determine virtual families stored in the database including the entities matching the one or more configurable properties of the user input search request, wherein at least two of the determined virtual families include independent groups with a common configurable property;
based on the determined virtual families including the entities, calculate total number of matching products;
determine the part numbers of the configurable product matching the user input search request, wherein the part numbers are determined based on allowed characters, number and/or symbols for the part number positions defined in the independent groups of the virtual families determined to include the entities matching the one or more configurable properties of the user input search request; and
display, in the user interface, a list of part numbers determined to match the user input search request.

### Claim 17 (depends on 13)

The part number generation system of claim 13, wherein the processing resources are further configured to control the system to generate new virtual groups and independent groups in the database, wherein generating the additional independent groups includes:
receiving specification information for a new configurable product, the specification information including a plurality of symbol groups for the new configurable product, at least one constraint involving at least one symbol group, and at least one conditional particular for at least one symbol group, wherein the symbol groups define a format of a part number of the new configurable product and each symbol group includes one or more part number positions of the part number for characters, number and/or symbols corresponding to configurable properties of the new configurable product;
based on the specification information, generating a plurality of independent groups, each generated independent group including part number positions for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups in the database, wherein generating the plurality of independent groups includes:
generating an independent group for each symbol group;
merging independent groups having the same configurable properties to form a new independent group; and
merging independent groups that, based on the at least one constraint, dependent on each other, wherein the dependent independent groups are merged to form a new independent group; and
when multiple lengths of the part number positions can be generated from the generated independent groups, generating a plurality of new virtual families such that each respective new virtual family, based on the independent groups in the virtual family, provides characters, number and/or symbols for part number positions that are of a same length; and
storing the new virtual families in the database.

### Claim 18 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the program further comprises instructions that, when executed, further cause the computing system to generate new virtual groups and independent groups in the database, wherein generating the additional independent groups includes:
receiving specification information for a new configurable product, the specification information including a plurality of symbol groups for the new configurable product, at least one constraint involving at least one symbol group, and at least one conditional particular for at least one symbol group, wherein the symbol groups define a format of a part number of the new configurable product and each symbol group includes one or more part number positions of the part number for characters, number and/or symbols corresponding to configurable properties of the new configurable product;
based on the specification information, generating a plurality of independent groups, each generated independent group including part number positions for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups in the database, wherein generating the plurality of independent groups includes:
generating an independent group for each symbol group;
merging independent groups having the same configurable properties to form a new independent group; and
merging independent groups that, based on the at least one constraint, dependent on each other, wherein the dependent independent groups are merged to form a new independent group; and
when multiple lengths of the part number positions can be generated from the generated independent groups, generating a plurality of new virtual families such that each respective new virtual family, based on the independent groups in the virtual family, provides characters, number and/or symbols for part number positions that are of a same length; and
storing the new virtual families in the database.

### Claim 19 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein each respective virtual family provides part number positions that are of a same length, and at least one virtual family provides part number positions having a length that is different from lengths provided by other virtual families.
