# US 10,769,696 B2 · Ecommerce system with evaluation of Boolean expression sets

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

- Number: US 10,769,696 B2
- Document ID: US10769696B2
- Status: Granted
- Kind: B2
- Application number: 14/928,346
- Filed: 2015-10-30
- Published: 2017-05-04
- Granted: 2020-09-08
- Earliest claimed: 2015-10-30
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Ashish Surana; Charles Trowbridge; Ivan Yee-Hang Cheng; Sumesh Poduval; Thomas P. Scott
- Web page: https://patentgrep.com/patent/US10769696B2

## CPC

- G06Q 30/0625: {by formulating product or service queries, e.g. using keywords or predefined options}
- G06Q 30/0603: {Catalogue creation or management}
- 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

## Abstract

A system that evaluates Boolean expressions receives a first set of Boolean expressions that include one or more Boolean expressions, and receives a second set of Boolean expressions that includes one or more Boolean expressions. The system determines one or more overlapping Boolean expressions between the first set and the second set. Each Boolean expression has a corresponding identifier and priority, and two or more Boolean expressions overlap when the Boolean expressions have an identical identifier. Each set of Boolean expressions includes a corresponding index.

## Claims

### Claim 1

A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause the processor to evaluate Boolean expressions to determine a functionality of an ecommerce website, the evaluating comprising:
receiving a first set of Boolean expressions comprising a first plurality of unique Boolean expressions, each Boolean expression having an associated identifier and payload and comprising a first Boolean expression having an associated first identifier, wherein the payload comprises a value that is returned when a corresponding Boolean expression is satisfied;
receiving a second set of Boolean expressions, separate from the first set of Boolean expressions, comprising a second plurality of unique Boolean expressions and comprising a second Boolean expression having the associated first identifier, wherein the second Boolean expression is different from the first Boolean expression;
for a first mode of operation of the ecommerce website, evaluating only the first set of Boolean expressions to dynamically assemble pages and content on the ecommerce website in accordance to the first mode, wherein in the first mode of operation the first Boolean expression is evaluated;
for a second mode of operation of the ecommerce website, determining one or more overlapping Boolean expressions between the first set and the second set, evaluating any overlapping Boolean expression in the second set of Boolean expressions as a replacement of the corresponding Boolean expression in the first set of Boolean expressions and evaluating the Boolean expressions in the first set that do not have a corresponding overlapping Boolean expression in the second set, to dynamically assemble pages and content on the ecommerce website in accordance to the second mode, wherein in the second mode of operation the second Boolean expression is evaluated instead of the first Boolean expression;
wherein each Boolean expression has a corresponding identifier and priority, and two or more Boolean expressions overlap when the two or more Boolean expressions each have an identical identifier and the Boolean expressions are different;
wherein each set of Boolean expressions comprises a corresponding index;
wherein the evaluating each of the Boolean expressions comprises receiving values for all variables of each Boolean expression and determining whether the Boolean expression is true or false based on the values, wherein at least one of the values is based on a type of products shown on the ecommerce website, and the evaluating of each of the Boolean expressions comprises returning a payload that corresponds to the each Boolean expression when the expression is true to a user of the ecommerce website via an application program interface (API).

### Claim 2 (depends on 1)

The computer readable medium of claim 1, further comprising removing a second Boolean expression from the first set in isolation from the second set.

### Claim 3 (depends on 1)

The computer readable medium of claim 1, further comprising adding a second Boolean expression to the first set in isolation from the second set.

### Claim 4 (depends on 1)

The computer readable medium of claim 1, further comprising removing the second set.

### Claim 5 (depends on 1)

The computer readable medium of claim 1, the evaluating further comprising:
receiving key facts comprising a plurality of key and value pairs;
determining a top-N Boolean expressions of a merged set of the first set and second set that are partially or fully satisfied by the received key facts, wherein the determined top-N Boolean expressions comprise at least one partially satisfied Boolean expression.

### Claim 6 (depends on 5)

The computer readable medium of claim 5, further comprising for each of the top-N Boolean expressions, returning payload and audit information.

### Claim 7 (depends on 5)

The computer readable medium of claim 5, wherein the partially satisfied comprises determining a percentage of expression matching.

### Claim 8 (depends on 1)

The computer readable medium of claim 1, wherein the index comprises partitions based on sizes of the Boolean expressions.

### Claim 9

A method for evaluating Boolean expressions to determine a functionality of an ecommerce website, the method comprising:
receiving a first set of Boolean expressions comprising a first plurality of unique Boolean expressions, each Boolean expression having an associated identifier and payload and comprising a first Boolean expression having an associated first identifier, wherein the payload comprises a value that is returned when a corresponding Boolean expression is satisfied;
receiving a second set of Boolean expressions, separate from the first set of Boolean expressions, comprising a second plurality of unique Boolean expressions and comprising a second Boolean expression having the associated first identifier, wherein the second Boolean expression is different from the first Boolean expression;
for a first mode of operation of the ecommerce website, evaluating only the first set of Boolean expressions to dynamically assemble pages and content on the ecommerce website in accordance to the first mode, wherein in the first mode of operation the first Boolean expression is evaluated;
for a second mode of operation of the ecommerce website, determining one or more overlapping Boolean expressions between the first set and the second set, evaluating any overlapping Boolean expression in the second set of Boolean expressions as a replacement of the corresponding Boolean expression in the first set of Boolean expressions and evaluating the Boolean expressions in the first set that do not have a corresponding overlapping Boolean expression in the second set, to dynamically assemble pages and content on the ecommerce website in accordance to the second mode, wherein in the second mode of operation the second Boolean expression is evaluated instead of the first Boolean expression;
wherein each Boolean expression has a corresponding identifier and priority, and two or more Boolean expressions overlap when the two or more Boolean expressions each have an identical identifier and the Boolean expressions are different;
wherein each set of Boolean expressions comprises a corresponding index;
wherein the evaluating each of the Boolean expressions comprises receiving values for all variables of each Boolean expression and determining whether the Boolean expression is true or false based on the values, wherein at least one of the values is based on a type of products shown on the ecommerce website, and the evaluating of each of the Boolean expressions comprises returning a payload that corresponds to the each Boolean expression when the expression is true to a user of the ecommerce website via an application program interface (API).

### Claim 10 (depends on 9)

The method of claim 9, further comprising removing a second Boolean expression from the first set in isolation from the second set.

### Claim 11 (depends on 9)

The method of claim 9, further comprising adding a second Boolean expression to the first set in isolation from the second set.

### Claim 12 (depends on 9)

The method of claim 9, further comprising removing the second set.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
receiving key facts comprising a plurality of key and value pairs;
determining a top-N Boolean expressions of a merged set of the first set and second set that are partially or fully satisfied by the received key facts, wherein the determined top-N Boolean expressions comprise at least one partially satisfied Boolean expression.

### Claim 14 (depends on 13)

The method of claim 13, further comprising for each of the top-N Boolean expressions, returning payload and audit information.

### Claim 15 (depends on 13)

The method of claim 13, wherein the partially satisfied comprises determining a percentage of expression matching.

### Claim 16 (depends on 9)

The method of claim 9, wherein the index comprises partitions based on sizes of the Boolean expressions.

### Claim 17

An electronic commerce system comprising:
one or more processors;
a storage device coupled to the processor and storing a product catalog, a first set of Boolean expressions comprising a first plurality of unique Boolean expressions, a second set of Boolean expressions comprising a second plurality of unique Boolean expressions, and a Boolean expression evaluation module that comprises instructions;
the processors executing the Boolean expression module and receiving a product information comprising input facts that comprise Boolean expression keys and values and generating an ecommerce website using the product catalog comprising:
receiving thea first set of Boolean expressions comprising the first plurality of unique Boolean expressions, each Boolean expression having an associated identifier and payload and comprising a first Boolean expression having an associated first identifier, wherein the payload comprises a value that is returned when a corresponding Boolean expression is satisfied;
receiving the second set of Boolean expressions, separate from the first set of Boolean expressions, comprising thea second plurality of unique Boolean expressions and comprising a second Boolean expression having the associated first identifier, wherein the second Boolean expression is different from the first Boolean expression;
for a first mode of operation of the ecommerce website, evaluating only the first set of Boolean expressions to dynamically assemble pages and content on the ecommerce website in accordance to the first mode, wherein in the first mode of operation the first Boolean expression is evaluated;
for a second mode of operation of the ecommerce website, determining one or more overlapping Boolean expressions between the first set and the second set, evaluating any overlapping Boolean expression in the second set of Boolean expressions as a replacement of the corresponding Boolean expression in the first set of Boolean expressions and evaluating the Boolean expressions in the first set that do not have a corresponding overlapping Boolean expression in the second set, to dynamically assemble pages and content on the ecommerce website in accordance to the second mode, wherein in the second mode of operation the second Boolean expression is evaluated instead of the first Boolean expression;
wherein each Boolean expression has a corresponding identifier and priority, and two or more Boolean expressions overlap when the two or more Boolean expressions each have an identical identifier and the Boolean expressions are different;
wherein each set of Boolean expressions comprises a corresponding index;
wherein the evaluating each of the Boolean expressions comprises receiving values for all variables of each Boolean expression and determining whether the Boolean expression is true or false based on the values, wherein at least one of the values is based on a type of products shown on the ecommerce website, and the evaluating of each of the Boolean expressions comprises returning a payload that corresponds to the each Boolean expression when the expression is true to a user of the ecommerce website via an application program interface (API).

### Claim 18 (depends on 17)

The electronic commerce system of claim 17, the evaluating further comprising:
receiving key facts comprising a plurality of key and value pairs;
determining a top-N Boolean expressions of a merged set of the first set and second set that are partially or fully satisfied by the received key facts, wherein the determined top-N Boolean expressions comprise at least one partially satisfied Boolean expression.

### Claim 19 (depends on 18)

The electronic commerce system of claim 18, further comprising for each of the top-N Boolean expressions, returning payload and audit information.

### Claim 20 (depends on 17)

The electronic commerce system of claim 17, wherein the index comprises partitions based on sizes of the Boolean expressions.
