Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Detailed Action
This is a first Office Action in response to application 18/744,859 filed on 6/17/2024. Claims 1-20 are pending and examined below.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claim(s) 1-13, 15-16, and 19-20 is/are rejected under 35 U.S.C. 102(a)(1)&(a)(2) as being anticipated by Dettinger et al. (US Pub. 2007/0112827).
Regarding claim 1, Dettinger teaches
A method of filtering entities within a database based on rules of a user-defined segment definition, comprising: identifying, by a server, a user-defined query, wherein the user-defined query comprises multiple user-defined segment definitions, wherein an original format of each of the user-defined segment definitions include one or more condition groups, wherein each conditional group includes one or more conditions, wherein each condition includes a logical filter, a field indicating which condition group includes the condition, and fields denoting which user-defined segment definitions include the logical filter; (Figs. 11-12; Par. [0049, 91, 94-96] conditions defined in a GUI (i.e. user-defined) for a query received (i.e. identified) by the query execution unit (#236) include a condition (i.e. logical filter; #1110), a checkbox indication (i.e. field denoting which user defined segment definitions include the logical filter; #1120), and a condition summary (i.e. field indicating which condition group includes the condition; #904) that shows the set of conditions for the associated statement )
mapping, by the server, each logical filter to one or more of the user-defined segment definitions based on the fields of each condition, and parsing a sub-component of a logical date-filter a single time and storing the sub-component of the logical date-filter in the database when at least one of the logical filters is the logical date-based filter; (Par. [0064] dates are considered as potential file format conditions for a statement)
executing, by the server, each of the logical filters on a plurality of entities of the database, wherein each of the logical filters is executed a single time; (Fig. 2; Par [0007-8, 50] the executable query (#234) is executed against the database to get the initial result set (i.e. identified entities; #282), including rule actions (i.e. including logical filters) executed against )
storing, by the server, filtered results in a mapped format based on the executing of the logical filters according to the mapping in the database; (Par. [0007-8] the data is stored in the database and used for analysis)
converting, by the server, from the mapped format into the original format of the user-defined segment definitions that represents the set of entities that qualify for user-defined segments; (Par. [0064] conversions can be made between different formats)
identifying, by the server, which entities qualify to be included within the user-defined segment definitions comprising logically combining the conditions and the condition groups; and (Fig. 2; Par [0050] the executable query (#234) is executed against the database to get the initial result set (i.e. identified entities; #282) )
electronically performing, by the server, an action directed to users of the entities qualified to be within the user-defined segment definitions. (Par. [0007-8] rule actions are executed (i.e. performed) against query results)
Regarding claim 2, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein logically combining the conditions and the condition groups comprises combining the results by "OR" ing each condition and "AND"ing each condition group. (Fig. 12; Par [0096] conditions can be combined with OR and AND (e.g. #1250) operations)
Regarding claim 3, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein executing each of the logical filters on the plurality of entities of the database comprises: reading entities from the database; (Fig. 2; Par [0050] the executable query (#234) is executed (i.e. read) against the database to get the initial result set (#282) )
SQL joining the entities to the mapped logical filters; and (Fig. 12; Par [0096] conditions can be combined with OR, AND (e.g. #1250). GROUPBY and other SQL operations)
evaluating each of the logical filters on each of the entities. (Par. [0007-8] rule actions are executed (i.e. performed) against query results)
Regarding claim 4, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein the sub-component of each logical date-filter includes a date string, wherein the date string includes a start date, an end date, and a unit. (Par [0060] timeline metadata (i.e. start, end dates, and units) is contemplated as part of the field specifications)
Regarding claim 5, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein parsing a date string of the logical date-filter a single time and storing the parsed date string of the logical date-filter in the database further comprises: storing a field of each logical date-filter in a dedicated column. (Par [0060] timeline metadata is contemplated as part of the field specifications (i.e. stored))
Regarding claim 6, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein identifying the user-defined query comprises: creating data tables for storing user-defined segment definitions in the database, the data tables including the user-defined segment definitions and criteria, wherein the criteria include rules (logical filters) that are evaluated against entity data of the database to determine whether an entity should or should not qualify for a segment based on entity data associated with the entity; (Par. [0052-4] the rules engine (#280) uses translated abstract rules (#298) and rules derived from user via data request form (#270) for execution against the query results set (#282) and generating the rule output (i.e. whether an entity should or should not qualify for a segment based on entity data; #284))
receiving, by a segmentation system, new user-defined segment definitions; (Par. [0052-4] the rules engine (#280) uses translated abstract rules (#298) and rules derived from user via data request form (i.e. user-defined segmentation definitions; #270) for execution against the query results set (#282) and generating the rule output ( #284))
identifying the multiple user-defined segment definitions comprising transforming, by the segmentation system, the new user-defined segment definitions, wherein transforming includes representing the new user-defined segment definitions as sets of filter definition tuples, wherein the sets of filter definition tuples are based on the user-defined segment definitions and the criteria in the created data tables; and (Figs. 11-12; Par. [0049, 91, 94-96] conditions are defined and stored in a GUI (i.e. user-defined) for a query received (i.e. identified) by the query execution unit (#236) include a condition (i.e. logical filter; #1110), a checkbox indication (i.e. field denoting which user defined segment definitions include the logical filter; #1120), and a condition summary (i.e. field indicating which condition group includes the condition; #904) that shows the set of conditions (i.e. filter definition tuples) for the associated statement)
storing, by the segmentation system, the multiple user-defined segment definitions in the database, wherein each of the multiple user-defined segment definitions include one or more condition groups, each of which includes one or more conditions, wherein each condition includes a logical filter, a field indicating which condition group includes the condition, and fields denoting which user-defined segment definitions include the logical filter; (Figs. 11-12; Par. [0049, 91, 94-96] conditions are defined and stored in a GUI (i.e. user-defined) for a query received (i.e. identified) by the query execution unit (#236) include a condition (i.e. logical filter; #1110), a checkbox indication (i.e. field denoting which user defined segment definitions include the logical filter; #1120), and a condition summary (i.e. field indicating which condition group includes the condition; #904) that shows the set of conditions for the associated statement)
wherein the user-defined query comprises the multiple user-defined segment definitions. (Par. [0052-4] the rules engine (#280) uses translated abstract rules (#298) and rules derived from user via data request form (i.e. multiple user-defined segmentation definitions; #270) for execution against the query results set (#282) and generating the rule output ( #284))
Regarding claim 7, Dettinger teaches claim 6 as shown above, and further teaches
The method of claim 6, further comprising: composing a user-defined query based on the multiple user-defined segment definitions as stored in the database, wherein the user-defined query contains logic that interprets the sets of filter definition tuples as native operations wherein identifying which entities qualify to be included within the user-defined segment definitions comprises running the composed user-defined query against the data tables to determine which of the entities qualify for membership in new segments based on each of the new user-defined segment definitions as determined by the logic contained in the composed user-defined query. (Par. [0052-4] the rules engine (#280) uses translated abstract rules (#298) and rules derived from user via data request form(s) (i.e. multiple user-defined segmentation definitions; #270) for execution (i.e. user-defined query) against the query results set (#282) and generating the rule output ( #284))
Regarding claim 8, Dettinger teaches claim 7 as shown above, and further teaches
The method of claim 7, wherein running the composed user-defined query against the data tables provides a filtered set of entities per the new user-defined segment definitions. (Par. [0052-4] the rules engine (#280) uses translated abstract rules (#298) and rules derived from user via data request form(s) (i.e. multiple user-defined segmentation definitions; #270) for execution (i.e. user-defined query) against the query results set (#282) and generating the rule output ( i.e. filtered set of entities per the new user-defined segment definitions; #284))
Regarding claim 9, Dettinger teaches claim 7 as shown above, and further teaches
The method of claim 7, further comprising electronically performing an action directed to users identified by membership in the new segments. (Par. [0056] in the event that a patient's medical condition qualifies them, a specific recommendation for treatment (i.e. performing an action directed to members of the segment) is made)
Regarding claim 10, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein each of the entities comprises a profile, wherein each profile comprises information of sub-users, wherein the sub-users are customers of the user. (Par. [0056] in the event that patients' medical conditions (i.e. profile containing information of information of sub users) qualify them, specific recommendations for treatment is made)
Regarding claim 11, Dettinger teaches claim 6 as shown above, and further teaches
The method of claim 6, wherein each segment includes a list of entities, wherein membership of each of the entities is determined by the composed user-defined query based on the new user-defined segment definitions. (Figs. 11-12; Par. [0049, 91, 94-96] conditions are defined and stored in a GUI (i.e. user-defined) for a query received (i.e. identified) by the query execution unit (#236) include a condition (i.e. logical filter; #1110), a checkbox indication (i.e. field denoting which user defined segment definitions include the logical filter; #1120), and a condition summary (i.e. field indicating which condition group includes the condition; #904) that shows the set of conditions for the associated statement )
Regarding claim 12, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein identifying which entities qualify to be included within the user-defined segment definitions includes filtering for multiple segments simultaneously. (Par. [0056] in the event that patients' medical conditions qualify them (i.e. identifying which entities qualify), specific recommendations (i.e. including filtering for multiple segments simultaneously) for treatment is made)
Regarding claim 13, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, further comprising creating and storing a trait and event table in the database as a part of the entity data of the data tables. (Par. [0119] the query result can be stored)
Regarding claim 15, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein the entity data includes time-series data. (Par [0060] timeline (i.e. time series) metadata is contemplated as part of the field specifications)
Regarding claim 16, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 14, wherein the time-series data includes an electronic history. (Par [0060] timeline (i.e. time series) metadata is contemplated as part of the field specifications)
Regarding claim 19, while worded slightly different than claim 1, is rejected under the same rationale.
Regarding claim 20, Dettinger teaches claim 1 as shown above, and further teaches
The method of claim 1, wherein identifying the user-defined query comprises the server operating to: create data tables for storing user-defined segment definitions in the database, the data tables including the user-defined segment definitions and criteria, wherein the criteria include rules (logical filters) that are evaluated against entity data of the database to determine whether an entity should or should not qualify for a segment based on entity data associated with the entity; (Par. [0052, 113] abstract rule (#260) and abstract query (#265) are created and stored based on user input)
receive new user-defined segment definitions; (Par. [0052, 113] abstract rule (#260) and abstract query (#265) are created and stored based on user input (i.e. received))
identify the multiple user-defined segment definitions comprising transforming, by the segmentation system, the new user-defined segment definitions, wherein transforming includes representing the new user-defined segment definitions as sets of filter definition tuples, wherein the sets of filter definition tuples are based on the user-defined segment definitions and the criteria in the created data tables; and (Par. [0052, 113] abstract rule (#260) and abstract query (#265) are created (e.g. after identification) and stored based on user input)
store the multiple user-defined segment definitions in the database, wherein each of the multiple user-defined segment definitions include one or more condition groups, each of which includes one or more conditions, wherein each condition includes a logical filter, a field indicating which condition group includes the condition, and fields denoting which user-defined segment definitions include the logical filter; (Par. [0052, 113] abstract rule (#260) and abstract query (#265) are created and stored based on user input)
wherein the user-defined query comprises the multiple user-defined segment definitions. (Par. [0052, 113] abstract rule (#260) and abstract query (#265) are created and stored based on user input)
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Claim(s) 14, 17 and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Dettinger et al. (US Pub. 2007/0112827) in view of Ristock (US Pat. 9,350,867).
Regarding claim(s) 14, Dettinger teach claim 1 as shown above, but does not explicitly teach The method of claim 13, wherein the entity data includes an email address of a sub-user.
However, from the same field Ristock teaches
The method of claim 13, wherein the entity data includes an email address of a sub-user. (Col. 7 [Lines 4-20] contact information for user can include email information who want contact from enterprise services)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine the customer email information of Ristock into the abstract query system of Dettinger. The motivation for this combination would have been to improve the customer experience as explained in Ristock (Col. 1 [Lines 17-24]).
Regarding claim(s) 17, Dettinger teach claim 6 as shown above, but does not explicitly teach The method of claim 6, further comprising updating the multiple user-defined segment definitions as entity data changes, comprising: sensing changes in the entity data; and
However, from the same field Ristock teaches
The method of claim 6, further comprising updating the multiple user-defined segment definitions as entity data changes, comprising: sensing changes in the entity data; and (Col. 16 [Lines 24-39], Col. 17 [Line 54] - Col. 18 [Line 3] a dynamic process runs to determine (i.e. sense) customer re-segmentation)
automatically re-running the composed user-defined query against the data tables to determine which of the entities qualify for membership in new segments based on each of the new user-defined segment definitions as determined by the logic contained in the composed user-defined query. (Col. 16 [Lines 24-39], Col. 17 [Line 54] - Col. 18 [Line 3] a dynamic process runs to determine customer re-segmentation (i.e. query against the data tables))
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine the dynamic segmentation of Ristock into the abstract query system of Dettinger. The motivation for this combination would have been to improve the customer experience as explained in Ristock (Col. 1 [Lines 17-24]).
Regarding claim(s) 18, Dettinger teaches claim 6 as shown above, but does not explicitly teach
The method of claim 6, further comprising: electronically sending messages to sub-users identified by membership in the new segments.
However, from the same field Ristock teaches
The method of claim 6, further comprising: electronically sending messages to sub-users identified by membership in the new segments. (Col. 7 [Lines 4-20] contact information for user can include email information who want contact from enterprise services)
It would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to combine the customer email information of Ristock into the abstract query system of Dettinger. The motivation for this combination would have been to improve the customer experience as explained in Ristock (Col. 1 [Lines 17-24]).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Batanov III (US Pub. 2024/0220513) teaches a customer segmentation system.
Demuth (US Pub. 2013/0132326) teaches a rules engine ecosystem.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to J MITCHELL CURRAN whose telephone number is (469)295-9081. The examiner can normally be reached M-F 8:00am - 5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sherief Badawi can be reached at (571) 272-9782. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/J MITCHELL CURRAN/Examiner, Art Unit 2169
/SHERIEF BADAWI/Supervisory Patent Examiner, Art Unit 2169