Detailed Action
Applicant amended claim 17 and presented claims 1-20 for reconsideration on 04/07/2026.
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 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 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103(a) as being unpatentable over Shih et al., Patent No.: US 8,812,752 B1 (Shih) in view of GOEL et al., Pub. No.: US 2022/0101161 A1 (Goel).
Claim 1. Shih teaches:
A computer-implemented method comprising:
establishing configuration settings for a data warehouse connector through a user interface, the configuration settings comprising: (Shih, a user interface is provided for receiving configuration information for extracting data from a defined source, defined data manipulation and storing data in a defined destination, e.g., a data warehouse: 28: 34-65: “the routine continues to…to receive configuration information to define the workflow for the client…such configuration information may be received via programmatic interactions with an API of the configurable workflow service, while in other embodiments and situations, the information received…may be provided via a user representative of the client via a user interface of the configurable workflow service”; 3:50-64, “a defined workflow may include multiple workflow components…including one or more data source workflow components that correspond to input data for the defined workflow, one or more data manipulation workflow components that correspond to defined data transformations or other manipulations to be performed on data, and one or more data destination workflow components that correspond to providing output data from the defined workflow”)
connection parameters for a cloud-based data warehouse; (components of a workflow include source and destination information: 3:50-64, 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
synchronization schedule settings; and (components of a workflow include synchronization/update schedule settings: 7:13-22, “use of the configurable workflow service in the data pipeline may provide various benefits in various embodiments, including enabling a client to schedule gathering data from multiple sources at particular times or otherwise when particular criteria are satisfied, performing defined types of data manipulation operations on the source data, and providing output data produced by the defined workflow in various manners”, 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
data source configurations; (see above, data sources are defined)
processing received customer interaction data to generate:
event data tagged with system-generated identifiers; (21:8-37, 22:52-23:16, wherein “the client desires to perform periodic (e.g., every three hours) analysis of the Web blog data in order to identify clickstream data of particular users of the Web site, and to aggregate that clickstream data in one or more manners (e.g., to determine aggregate information for particular defined age groups of the users of the Web sites)” suggests assigning identifiers/tags to event data, e.g. clickstream data and further grouping identified event data associated with a user)
external identifier mappings; and (21:8-37, 22:52-23:16, identified events are mapped to a particular user: “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user”)
profile merge information; (21:8-37, 22:52-23:16, mapping identified events to a particular user is merging information for the user: “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user”)
storing the processed data in a cloud-based staging bucket; (Shih, any processed data is stored in a defined storage e.g., a staging storage/bucket: 4: 63-5:26, “the output from a data manipulation workflow component may be provided to a data destination workflow component…by storing the intermediate data in a storage location accessible to the next data manipulation workflow component (e.g., using one or more storage locations provided by the configurable workflow service)”, 18:43-67, “intermediate data results that are generated during execution of a workflow may similarly be stored in such online storage services 1145, such as to be produced by a first part of the defined workflow and to be later accessed and used by a second defined part of the workflow, whether in addition to or instead of one or more optional storage nodes 1150”; 4: 6-62, “A nonexclusive list of examples of online storage services that may be used include the following: Amazon Simple Storage Service (S3) that stores object data of various types, Amazon Relational Database Service (RDS) that provides relational database functionality, Amazon SimpleDB that provides database functionality to store key-value pairs, Amazon DynamoDB service that provides NoSQL database functionality, Amazon Elastic Block Store (EBS) that provides access to raw block storage devices (e.g., mounting a virtual local block storage device on a target computer system), etc.”)
monitoring the staging bucket for new data according to the synchronization schedule settings; (Shih, components of a workflow include synchronization/update schedule settings: 7:13-22, “use of the configurable workflow service in the data pipeline may provide various benefits in various embodiments, including enabling a client to schedule gathering data from multiple sources at particular times or otherwise when particular criteria are satisfied, performing defined types of data manipulation operations on the source data, and providing output data produced by the defined workflow in various manners”, 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
when new data is detected: (this is a conditional statement and it is not implementable when the condition is not met)
analyzing event schemas and attribute relationships; (event schema, e.g., a data field of the received event and their associations with a particular user is determined as defined by a connector for data manipulation and mapping; 8:24-65, 10:33-65, “By implementing the connector interface, the connector 110 may enable a data source node 130 of the pipeline 120A to provide data from a particular data source 114…the connector interface 112 may require a set of methods including, but not limited to, any of the following: open connection, validate connection, read record, add new record, overwrite existing record, get list of all fields for a record, get list of all values for a record, add fields for a record, and remove fields for a record. The connector 110 may implement these methods as methods 113…By implementing the connector interface, the connector 110 may enable a data destination node 131 of the pipeline 120C to provide data to a particular data destination…the connector interface 112 may require a set of methods including, but not limited to, any of the following: open connection, validate connection, read record, add new record, overwrite existing record, get list of all fields for a record, get list of all values for a record, add fields for a record, and remove fields for a record…the data from the activity node 140C and providing it to the data destination 117, the connector 111 may map the data from an arbitrary data structure, used by the pipeline 120C to a data structure used by the data destination 117”
updating data warehouse table configurations; (see above, each destination table configuration is updated as defined)
performing data validation; (data validation is performed because a specified type of input is processed otherwise the process is not executed: 3:21-4:5, “Such a defined workflow may, for example, include multiple interconnected workflow components that are each configured to perform one or more specified types of data manipulation operations on a specified type of input data”; 7: 40-47, “a Pre-Condition or a Post-Condition is an action associated with a Data Source that evaluates to true when the Data Source is considered available and/or well formed. Pre-conditions that complete successfully enable a following Activity that consumes a Data Source as an input to be run”; 21: 38-22-14, “the Customer C has defined two data source nodes 1220 to represent two types of sources of data for the defined workflow. The first data source 1220a corresponds to the We blog data that becomes available periodically…The node 1220a may include various criteria to use to identify particular data groups 1207, such as a file name or other metadata associated with a particular data group, one or more specified criteria with respect to content of the data groups 1207 (e.g., a time frame corresponding to Weblog data to be used to extract records from a database that correspond to a time period of interest), etc.…the Customer C has defined one or more preconditions as part of node 1225a that are associated with the data source node 1220a, such as to indicate that the execution of node 1220a and then the rest of the workflow is to begin when the data groups 1207 that satisfy the specified criteria for the node 1220a are available”)
writing the validated data to corresponding warehouse tables; and (see above, extracted data is stored in a defined destination: 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
generating status notifications about synchronization operations. (a report is generated: 21:8-24, “After the clickstream data is aggregated in the defined manners, it may further be used in various manners, including to be stored in a database of the client for later use, as well as to be used to generate one or more reports that are provided to the client via one or more electronic communications”)
The claim uses the terms “an identity resolution system” without actually performing an identity resolution operation. Shih did not use the term “an identity resolution system” specifically but Goel specifically uses “an identity resolution system” for resolving a customer identity using received customer interaction: (Goel, ¶ 7, “an identity resolution system for probabilistically resolving user identities is disclosed”, ¶¶ 61- 62, wherein user interaction data comprises event data, e.g., “view 10-12 pages on a web interface” and customer identifier data, e.g., “user information…IP address…device identifiers”, ¶¶ 48, 53, 66, 109, 150, wherein a user identifier is assigned to a user profile generated from two user profiles associated with the same user; ¶¶ 93, 110-111, 123, 150, wherein an updated graph is a directed graph indicating when a new user identifier is generated from two user identifiers associated with the same user)
Shih 22: 64-66 discloses that “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user…The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”. It would have been obvious before the effective filling date of the claimed invention to a person having ordinary skill in the art to combine the applied references for including an identity resolution system as taught by Goel in Shih for identifying and assigning a unique identifier to a particular user because doing so would further increase usability of Shih for assigning a unique identifier to a user who is known with different identifiers.
Claim 9. Shih teaches:
A system comprising: at least one processor; and at least one memory storage device storing instructions thereon, which, when executed by the at least one processor, cause the system to perform operations comprising:
establishing configuration settings for a data warehouse connector through a user interface, the configuration settings comprising: (Shih, a user interface is provided for receiving configuration information for extracting data from a defined source, defined data manipulation and storing data in a defined destination, e.g., a data warehouse: 28: 34-65: “the routine continues to…to receive configuration information to define the workflow for the client…such configuration information may be received via programmatic interactions with an API of the configurable workflow service, while in other embodiments and situations, the information received…may be provided via a user representative of the client via a user interface of the configurable workflow service”; 3:50-64, “a defined workflow may include multiple workflow components…including one or more data source workflow components that correspond to input data for the defined workflow, one or more data manipulation workflow components that correspond to defined data transformations or other manipulations to be performed on data, and one or more data destination workflow components that correspond to providing output data from the defined workflow”)
connection parameters for a cloud-based data warehouse; (components of a workflow include source and destination information: 3:50-64, 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
synchronization schedule settings; and (components of a workflow include synchronization/update schedule settings: 7:13-22, “use of the configurable workflow service in the data pipeline may provide various benefits in various embodiments, including enabling a client to schedule gathering data from multiple sources at particular times or otherwise when particular criteria are satisfied, performing defined types of data manipulation operations on the source data, and providing output data produced by the defined workflow in various manners”, 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
data source configurations; (see above, data sources are defined)
processing received customer interaction data to generate:
event data tagged with system-generated identifiers; (21:8-37, 22:52-23:16, wherein “the client desires to perform periodic (e.g., every three hours) analysis of the Web blog data in order to identify clickstream data of particular users of the Web site, and to aggregate that clickstream data in one or more manners (e.g., to determine aggregate information for particular defined age groups of the users of the Web sites)” suggests assigning identifiers/tags to event data, e.g. clickstream data and further grouping identified event data associated with a user)
external identifier mappings; and (21:8-37, 22:52-23:16, identified events are mapped to a particular user: “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user”)
profile merge information; (21:8-37, 22:52-23:16, mapping identified events to a particular user is merging information for the user: “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user”)
storing the processed data in a cloud-based staging bucket; (Shih, any processed data is stored in a defined storage e.g., a staging storage/bucket: 4: 63-5:26, “the output from a data manipulation workflow component may be provided to a data destination workflow component…by storing the intermediate data in a storage location accessible to the next data manipulation workflow component (e.g., using one or more storage locations provided by the configurable workflow service)”, 18:43-67, “intermediate data results that are generated during execution of a workflow may similarly be stored in such online storage services 1145, such as to be produced by a first part of the defined workflow and to be later accessed and used by a second defined part of the workflow, whether in addition to or instead of one or more optional storage nodes 1150”; 4: 6-62, “A nonexclusive list of examples of online storage services that may be used include the following: Amazon Simple Storage Service (S3) that stores object data of various types, Amazon Relational Database Service (RDS) that provides relational database functionality, Amazon SimpleDB that provides database functionality to store key-value pairs, Amazon DynamoDB service that provides NoSQL database functionality, Amazon Elastic Block Store (EBS) that provides access to raw block storage devices (e.g., mounting a virtual local block storage device on a target computer system), etc.”)
monitoring the staging bucket for new data according to the synchronization schedule settings; (Shih, components of a workflow include synchronization/update schedule settings: 7:13-22, “use of the configurable workflow service in the data pipeline may provide various benefits in various embodiments, including enabling a client to schedule gathering data from multiple sources at particular times or otherwise when particular criteria are satisfied, performing defined types of data manipulation operations on the source data, and providing output data produced by the defined workflow in various manners”, 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
when new data is detected: (this is a conditional statement and it is not implementable when the condition is not met)
analyzing event schemas and attribute relationships; (event schema, e.g., a data field of the received event and their associations with a particular user is determined as defined by a connector for data manipulation and mapping; 8:24-65, 10:33-65, “By implementing the connector interface, the connector 110 may enable a data source node 130 of the pipeline 120A to provide data from a particular data source 114…the connector interface 112 may require a set of methods including, but not limited to, any of the following: open connection, validate connection, read record, add new record, overwrite existing record, get list of all fields for a record, get list of all values for a record, add fields for a record, and remove fields for a record. The connector 110 may implement these methods as methods 113…By implementing the connector interface, the connector 110 may enable a data destination node 131 of the pipeline 120C to provide data to a particular data destination…the connector interface 112 may require a set of methods including, but not limited to, any of the following: open connection, validate connection, read record, add new record, overwrite existing record, get list of all fields for a record, get list of all values for a record, add fields for a record, and remove fields for a record…the data from the activity node 140C and providing it to the data destination 117, the connector 111 may map the data from an arbitrary data structure, used by the pipeline 120C to a data structure used by the data destination 117”
updating data warehouse table configurations; (see above, each destination table configuration is updated as defined)
performing data validation; (data validation is performed because a specified type of input is processed otherwise the process is not executed: 3:21-4:5, “Such a defined workflow may, for example, include multiple interconnected workflow components that are each configured to perform one or more specified types of data manipulation operations on a specified type of input data”; 7: 40-47, “a Pre-Condition or a Post-Condition is an action associated with a Data Source that evaluates to true when the Data Source is considered available and/or well formed. Pre-conditions that complete successfully enable a following Activity that consumes a Data Source as an input to be run”; 21: 38-22-14, “the Customer C has defined two data source nodes 1220 to represent two types of sources of data for the defined workflow. The first data source 1220a corresponds to the We blog data that becomes available periodically…The node 1220a may include various criteria to use to identify particular data groups 1207, such as a file name or other metadata associated with a particular data group, one or more specified criteria with respect to content of the data groups 1207 (e.g., a time frame corresponding to Weblog data to be used to extract records from a database that correspond to a time period of interest), etc.…the Customer C has defined one or more preconditions as part of node 1225a that are associated with the data source node 1220a, such as to indicate that the execution of node 1220a and then the rest of the workflow is to begin when the data groups 1207 that satisfy the specified criteria for the node 1220a are available”)
writing the validated data to corresponding warehouse tables; and (see above, extracted data is stored in a defined destination: 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
generating status notifications about synchronization operations. (a report is generated: 21:8-24, “After the clickstream data is aggregated in the defined manners, it may further be used in various manners, including to be stored in a database of the client for later use, as well as to be used to generate one or more reports that are provided to the client via one or more electronic communications”)
The claim uses the terms “an identity resolution system” without actually performing an identity resolution operation. Shih did not use the term “an identity resolution system” specifically but Goel specifically uses “an identity resolution system” for resolving a customer identity using received customer interaction: (Goel, ¶ 7, “an identity resolution system for probabilistically resolving user identities is disclosed”, ¶¶ 61- 62, wherein user interaction data comprises event data, e.g., “view 10-12 pages on a web interface” and customer identifier data, e.g., “user information…IP address…device identifiers”, ¶¶ 48, 53, 66, 109, 150, wherein a user identifier is assigned to a user profile generated from two user profiles associated with the same user; ¶¶ 93, 110-111, 123, 150, wherein an updated graph is a directed graph indicating when a new user identifier is generated from two user identifiers associated with the same user)
Shih 22: 64-66 discloses that “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user…The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”. It would have been obvious before the effective filling date of the claimed invention to a person having ordinary skill in the art to combine the applied references for including an identity resolution system as taught by Goel in Shih for identifying and assigning a unique identifier to a particular user because doing so would further increase usability of Shih for assigning a unique identifier to a user who is known with different identifiers.
Claim 17. Shih teaches:
A computer-readable medium storing instructions thereon, which, when executed by at least one processor of a computing system, cause the computing system to perform operations comprising:
establishing configuration settings for a data warehouse connector through a user interface, the configuration settings comprising: (Shih, a user interface is provided for receiving configuration information for extracting data from a defined source, defined data manipulation and storing data in a defined destination, e.g., a data warehouse: 28: 34-65: “the routine continues to…to receive configuration information to define the workflow for the client…such configuration information may be received via programmatic interactions with an API of the configurable workflow service, while in other embodiments and situations, the information received…may be provided via a user representative of the client via a user interface of the configurable workflow service”; 3:50-64, “a defined workflow may include multiple workflow components…including one or more data source workflow components that correspond to input data for the defined workflow, one or more data manipulation workflow components that correspond to defined data transformations or other manipulations to be performed on data, and one or more data destination workflow components that correspond to providing output data from the defined workflow”)
connection parameters for a cloud-based data warehouse; (components of a workflow include source and destination information: 3:50-64, 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
synchronization schedule settings; and (components of a workflow include synchronization/update schedule settings: 7:13-22, “use of the configurable workflow service in the data pipeline may provide various benefits in various embodiments, including enabling a client to schedule gathering data from multiple sources at particular times or otherwise when particular criteria are satisfied, performing defined types of data manipulation operations on the source data, and providing output data produced by the defined workflow in various manners”, 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
data source configurations; (see above, data sources are defined)
processing received customer interaction data to generate:
event data tagged with system-generated identifiers; (21:8-37, 22:52-23:16, wherein “the client desires to perform periodic (e.g., every three hours) analysis of the Web blog data in order to identify clickstream data of particular users of the Web site, and to aggregate that clickstream data in one or more manners (e.g., to determine aggregate information for particular defined age groups of the users of the Web sites)” suggests assigning identifiers/tags to event data, e.g. clickstream data and further grouping identified event data associated with a user)
external identifier mappings; and (21:8-37, 22:52-23:16, identified events are mapped to a particular user: “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user”)
profile merge information; (21:8-37, 22:52-23:16, mapping identified events to a particular user is merging information for the user: “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user”)
storing the processed data in a cloud-based staging bucket; (Shih, any processed data is stored in a defined storage e.g., a staging storage/bucket: 4: 63-5:26, “the output from a data manipulation workflow component may be provided to a data destination workflow component…by storing the intermediate data in a storage location accessible to the next data manipulation workflow component (e.g., using one or more storage locations provided by the configurable workflow service)”, 18:43-67, “intermediate data results that are generated during execution of a workflow may similarly be stored in such online storage services 1145, such as to be produced by a first part of the defined workflow and to be later accessed and used by a second defined part of the workflow, whether in addition to or instead of one or more optional storage nodes 1150”; 4: 6-62, “A nonexclusive list of examples of online storage services that may be used include the following: Amazon Simple Storage Service (S3) that stores object data of various types, Amazon Relational Database Service (RDS) that provides relational database functionality, Amazon SimpleDB that provides database functionality to store key-value pairs, Amazon DynamoDB service that provides NoSQL database functionality, Amazon Elastic Block Store (EBS) that provides access to raw block storage devices (e.g., mounting a virtual local block storage device on a target computer system), etc.”)
monitoring the staging bucket for new data according to the synchronization schedule settings; (Shih, components of a workflow include synchronization/update schedule settings: 7:13-22, “use of the configurable workflow service in the data pipeline may provide various benefits in various embodiments, including enabling a client to schedule gathering data from multiple sources at particular times or otherwise when particular criteria are satisfied, performing defined types of data manipulation operations on the source data, and providing output data produced by the defined workflow in various manners”, 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
when new data is detected: (this is a conditional statement and it is not implementable when the condition is not met)
analyzing event schemas and attribute relationships; (event schema, e.g., a data field of the received event and their associations with a particular user is determined as defined by a connector for data manipulation and mapping; 8:24-65, 10:33-65, “By implementing the connector interface, the connector 110 may enable a data source node 130 of the pipeline 120A to provide data from a particular data source 114…the connector interface 112 may require a set of methods including, but not limited to, any of the following: open connection, validate connection, read record, add new record, overwrite existing record, get list of all fields for a record, get list of all values for a record, add fields for a record, and remove fields for a record. The connector 110 may implement these methods as methods 113…By implementing the connector interface, the connector 110 may enable a data destination node 131 of the pipeline 120C to provide data to a particular data destination…the connector interface 112 may require a set of methods including, but not limited to, any of the following: open connection, validate connection, read record, add new record, overwrite existing record, get list of all fields for a record, get list of all values for a record, add fields for a record, and remove fields for a record…the data from the activity node 140C and providing it to the data destination 117, the connector 111 may map the data from an arbitrary data structure, used by the pipeline 120C to a data structure used by the data destination 117”
updating data warehouse table configurations; (see above, each destination table configuration is updated as defined)
performing data validation; (data validation is performed because a specified type of input is processed otherwise the process is not executed: 3:21-4:5, “Such a defined workflow may, for example, include multiple interconnected workflow components that are each configured to perform one or more specified types of data manipulation operations on a specified type of input data”; 7: 40-47, “a Pre-Condition or a Post-Condition is an action associated with a Data Source that evaluates to true when the Data Source is considered available and/or well formed. Pre-conditions that complete successfully enable a following Activity that consumes a Data Source as an input to be run”; 21: 38-22-14, “the Customer C has defined two data source nodes 1220 to represent two types of sources of data for the defined workflow. The first data source 1220a corresponds to the We blog data that becomes available periodically…The node 1220a may include various criteria to use to identify particular data groups 1207, such as a file name or other metadata associated with a particular data group, one or more specified criteria with respect to content of the data groups 1207 (e.g., a time frame corresponding to Weblog data to be used to extract records from a database that correspond to a time period of interest), etc.…the Customer C has defined one or more preconditions as part of node 1225a that are associated with the data source node 1220a, such as to indicate that the execution of node 1220a and then the rest of the workflow is to begin when the data groups 1207 that satisfy the specified criteria for the node 1220a are available”)
writing the validated data to corresponding warehouse tables; and (see above, extracted data is stored in a defined destination: 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
generating status notifications about synchronization operations. (a report is generated: 21:8-24, “After the clickstream data is aggregated in the defined manners, it may further be used in various manners, including to be stored in a database of the client for later use, as well as to be used to generate one or more reports that are provided to the client via one or more electronic communications”)
The claim uses the terms “an identity resolution system” without actually performing an identity resolution operation. Shih did not use the term “an identity resolution system” specifically but Goel specifically uses “an identity resolution system” for resolving a customer identity using received customer interaction: (Goel, ¶ 7, “an identity resolution system for probabilistically resolving user identities is disclosed”, ¶¶ 61- 62, wherein user interaction data comprises event data, e.g., “view 10-12 pages on a web interface” and customer identifier data, e.g., “user information…IP address…device identifiers”, ¶¶ 48, 53, 66, 109, 150, wherein a user identifier is assigned to a user profile generated from two user profiles associated with the same user; ¶¶ 93, 110-111, 123, 150, wherein an updated graph is a directed graph indicating when a new user identifier is generated from two user identifiers associated with the same user)
Shih 22: 64-66 discloses that “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user…The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”. It would have been obvious before the effective filling date of the claimed invention to a person having ordinary skill in the art to combine the applied references for including an identity resolution system as taught by Goel in Shih for identifying and assigning a unique identifier to a particular user because doing so would further increase usability of Shih for assigning a unique identifier to a user who is known with different identifiers.
Claim 2. The computer-implemented method of claim 1, wherein writing the validated data to corresponding warehouse tables comprises:
writing event data to one of a plurality of event tables, wherein each event table corresponds to a specific event type; and (Shih, event type from a data source is written into a record/table type as destination node as defined based on workflow configuration and an event type such as clickstream data has to be written to a record/table to be aggregated: 24: 1-31, “the Customer C has in this example previously generated data groups 1212 on the database 1210 that correspond to previously existing clickstream data for the client. Such clickstream data may, for example, include some or all of the types of clickstream data that is aggregated with respect to node 1245a…In addition, the data source node 1220b was previously defined to extract those data groups 1212 that correspond to the clickstream data of interest for this defined workflow… The data manipulation operations of node 1270a may include, for example, extracting particular data records from the database 20 1210, or may include additional types of operations (e.g., performing one or more database join operations to combine data from multiple database tables of the database, performing one or more database select operations to select a subset of data from a database table, etc.). Thus, the intermediate data 25 results provided by the data manipulation of node 1270a include the same types of clickstream data and the same types of defined age groups as were previously noted with respect to node 1245a.”)
writing external identifier mappings to an identity table. (Shih, external identifier is, for example, a particular user identifier that has to be written to a record/table for mapping: 22:58-23:16, “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user… The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”)
Claims 10 and 18 are rejected under the same rationale as above.
Claim 3. The computer-implemented method of claim 1, wherein writing the validated data to corresponding warehouse tables comprises:
writing the profile merge information to a profile graph table that reflects when multiple system-generated identifiers represent the same customer. (Goel, (¶¶ 32, 93-94, 110-111, 123, 150, an updated graph indicating when a new user identifier is generated from two user identifiers associated with the same user: “the updated identity graph is stored in one or more databases 114…the updated identity graph is stored in the graph database 122 with the unified user identifier…the identity resolution system 112 stores the user profile (i.e., the merged user profile) along with the user identifier in one or more databases 114 (e.g., the user profile database 116)”)
Claims 11 and 19 are rejected under the same rationale as above.
Claim 4. The computer-implemented method of claim 1, wherein the received customer interaction data comprises messages communicated over a network from the configured data sources. (Goel, ¶ 30, user interaction data comprises messages communicated over a network from the configured data sources: “The user interaction data include information aggregated from streaming data, batch data and Application Programming Interface (API) supported systems”)
Claims 12 and 20 are rejected under the same rationale as above.
Claim 5. The computer-implemented method of claim 1, wherein the configuration settings further comprise:
selection of one data warehouse from among a plurality of supported cloud-based data warehouses; and warehouse-specific connection parameters for the selected data warehouse. (Shih, a specific destination/data warehouse is selected as defined in a connector interface: 3:50-64, 8:24-65, 10:33-61: “By implementing the connector interface, the connector…may enable a data source node…of the pipeline… to provide data from a particular data source… the connector…may enable a data destination node….of the pipeline…to provide data to a particular data destination”)
Claim 13 is rejected under the same rationale as above.
Claim 6. The computer-implemented method of claim 1, wherein generating status notifications comprises:
providing information indicating a current state of a synchronization operation; indicating a number of data rows written to each warehouse table; and tracking a duration of time for completing the synchronization operation. (Shih, a report includes information as required, e.g., a number of processed records and when the process started/ended: 25: 1-8, “The intermediate data results generated by the node 1280a, which in this example are configured to include one or more defined reports that present information in a structured manner, are provided to the data destination node 1230b”; 31: 8-18, “such activities in providing the results data may include storing some or all of the results data in a specified storage location, sending one or more electronic communications that include some or all of the specified results data, generating a particular report or other format that includes some or all of the results data for presentation, etc.”; 33: 47-34:11, “In this example Pipeline, an activity may be defined that reads an hour's worth of five-minute clicks and concatenates them into an hourly output file. Accordingly, three objects may define a Schedule ("HourPeriod"), a CopyTransform activity ("Concatenate") that is associated with "HourPeriod", and an Alarm ("CopyFailedAlarm") that will be invoked in the event of failure”)
Claim 14 is rejected under the same rationale as above.
Claim 7. The computer-implemented method of claim 1, wherein performing data validation comprises:
verifying that data types in the staging bucket match schema constraints of corresponding warehouse tables; and (data type is verified because a specified type of input is processed otherwise the process is not executed: 3:21-4:5, “Such a defined workflow may, for example, include multiple interconnected workflow components that are each configured to perform one or more specified types of data manipulation operations on a specified type of input data”; 7: 40-47, “a Pre-Condition or a Post-Condition is an action associated with a Data Source that evaluates to true when the Data Source is considered available and/or well formed. Pre-conditions that complete successfully enable a following Activity that consumes a Data Source as an input to be run”; 21: 38-22-14, “the Customer C has defined two data source nodes 1220 to represent two types of sources of data for the defined workflow. The first data source 1220a corresponds to the We blog data that becomes available periodically…The node 1220a may include various criteria to use to identify particular data groups 1207, such as a file name or other metadata associated with a particular data group, one or more specified criteria with respect to content of the data groups 1207 (e.g., a time frame corresponding to Weblog data to be used to extract records from a database that correspond to a time period of interest), etc.…the Customer C has defined one or more preconditions as part of node 1225a that are associated with the data source node 1220a, such as to indicate that the execution of node 1220a and then the rest of the workflow is to begin when the data groups 1207 that satisfy the specified criteria for the node 1220a are available”)
validating relational links between data elements before writing to the warehouse. (Shih, relational links between data elements are validated because a unique identifier is assigned to a particular user and click streams associated with the particular user is aggregated: 22:58-23:16, “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user… The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”; Goal, ¶ 80)
Claim 15 is rejected under the same rationale as above.
Claim 8. The computer-implemented method of claim 1, wherein the synchronization schedule settings specify:
a frequency for checking the staging bucket for new data; (Shih, a frequency for checking depends on the scheduled time for executing a component of a workflow for extracting required data from a source and updating data in a defined destination: 7:48-53, “a Schedule is an attribute of a Data Source that describes the periodicity of the data or an attribute of an Activity that defines the periodicity of when it runs. The periodicity can be at a granularity of one or more minutes, one or more hours, one or more days, one or more weeks, one or more months, etc.”; 15:26-48, “assume that a pipeline user creates a daily pipeline including the following…a daily schedule that begins at 3 PM every day and runs for the next year”; 24: 32-56, “when the intermediate data results of node 1275a are produced and made available to the data destination node 1230a, those data results are configured to be sent to the database 1210 as final output of the defined workflow, and to be stored as part of the data groups 1212, such as by adding additional data records to the database to supplement the previously existing data that was retrieved by node 1220b, or to instead replace some or all of the previously retrieved data with new updated data that further includes the information from the most recent set of Weblog data”)
specific times during each day for performing synchronization operations; and (see above, “15:26-48, “assume that a pipeline user creates a daily pipeline including the following…a daily schedule that begins at 3 PM every day and runs for the next year”)
a duration of historical data to include in an initial synchronization operation. (see above, “15:26-48, “assume that a pipeline user creates a daily pipeline including the following…a daily schedule that begins at 3 PM every day and runs for the next year”)
Claim 16 is rejected under the same rationale as above.
Response to Amendment and Arguments
In light of amendments, 101 rejections are withdrawn.
Applicant’s arguments with respect to rejected claims have been considered but are not persuasive because the combination of the applied references teach all limitations as claimed.
Applicant argues “Shih has no concept of identity resolution as a processing stage, no staging bucket as intermediate storage, and no synchronization-schedule-based monitoring of accumulated data”. In response, Shi is not relied on teaching “identity resolution”
Applicant argues, “Shih's scheduling is push-based…the scheduler triggers pipeline runs at defined times-not poll-based, i.e., monitoring a staging area for accumulated data and processing what it finds”. In response, claim does not recite “poll-based”, claim recites “monitoring the staging bucket for new data according to the synchronization schedule settings”. Shih’s discloses synchronization/update schedule settings and based on the setting obtains new data for synchronization.
Applicant argues, “Goel does not produce "event data tagged with system-generated identifiers," "external identifier mappings," or "profile merge information"”. In response, Goel is not relied on producing "event data tagged with system-generated identifiers," "external identifier mappings," or "profile merge information”.
Applicant argues, “The combination as proposed by the Examiner would yield a generic data pipeline (Shih) with a standalone identity resolver (Goel) operating independently alongside it-not the integrated architecture the claims describe”. In response, as noted above with respect to claim1, the claim uses the terms “an identity resolution system” without actually performing any identity resolution operation. Shih did not use the term “an identity resolution system” specifically but discloses that “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user…The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”. Therefore, it would have been obvious before the effective filling date of the claimed invention to a person having ordinary skill in the art to include operation of assigning a unique id to users as taught by Goel, in Shih because doing so would further increase usability of Shih by simply extending the data manipulation operations of node 1240a for identifying a particular user and determining multiple ids associated with the particular user.
Applicant argues, “Shih mentions cloud storage services (Amazon S3, DynamoDB) as potential data sources and destinations for pipeline operations. But a data source or destination in a generic pipeline is not a "staging bucket"------i.e., an intermediate storage layer that decouples data production (identity resolution running continuously on incoming customer interactions) from data consumption (warehouse writing on a defined sync schedule). Shih's pipeline moves data from sources through transformations to destinations in a single execution flow; it does not accumulate processed data in intermediate storage for later scheduled retrieval”. In response, claim simply recites “storing the processed data in a cloud-based staging bucket”. As shown with respect to claim 1 above, Shih expressly discloses the same by storing data in intermediate storage for manipulation.
Applicant argues, “Goel stores data in its own internal databases. It has no concept of a staging bucket or any form of intermediate cloud storage for downstream consumers”. In response, Goel is not relied on disclosing staging bucket.
Applicant argues, “Claims 8 and 16 specify that the synchronization schedule settings include "a frequency for checking the staging bucket for new data," "specific times during each day for performing synchronization operations," and "a duration of historical data to include in an initial synchronization operation." This level of scheduling specificity for monitoring a staging area is entirely absent from both references”. In response, Shih discloses the features as shown above with respect to claim 8.
Applicant argues, “The Examiner’s Reason to Combine ls Conclusory and Unsupported” because “lt does not explain why a person of ordinary skill designing a generic configurable workflow service (Shih's problem domain) would look to a probabilistic ML-based identity resolution system (Goel's problem domain) to improve their pipeline. It does not explain how Goel's standalone identity platform, with its own multi-database architecture, ML training pipeline, and deterministic/probabilistic matching workflow, would be integrated into Shih's connector-based pipeline to produce the specific claimed data flow. And it does not address the significant technical gap between having two independent systems (a generic pipeline and a standalone identity resolver) and having the integrated identity-resolution-to-staging-to-warehouse architecture the claims require”. In response, as noted above with respect to claim1, the claim uses the terms “an identity resolution system” without actually performing any identity resolution operation. Shih did not use the term “an identity resolution system” specifically but discloses that “the clickstream data provided by node 1235a may be grouped and associated with a unique identifier for each user…The data manipulation operations of node 1240a may include identifying particular users, and determining corresponding information for those users”. Therefore, it would have been obvious before the effective filling date of the claimed invention to a person having ordinary skill in the art to include operation of assigning a unique id to users as taught by Goel, in Shih because doing so would further increase usability of Shih by simply extending the data manipulation operations of node 1240a for identifying a particular user and determining multiple ids associated with the particular user.
Furthermore, "When a work is available in one field of endeavor, design incentives and other market forces can prompt variations of it, either in the same field or a different one. If a person of ordinary skill can implement a predictable variation,§ 103 likely bars its patentability. For the same reason, if a technique has been used to improve one device, and a person of ordinary skill in the art would recognize that it would improve similar devices in the same way, using the technique is obvious unless its actual application is beyond his or her skill" (KSR lnt'I Co. v. Teleflex Inc., 550 U.S. 538,417, 82 USPQ2d 1385, 1396 (2007).
Applicant argues that the applied references did not teach the dependent claims 2, 10, 18; 3, 11,19; 5, 13; 6, 14; 7 and 15. In response, the combination of Shih and Goel discloses the features as recited in the dependent claims as shown above.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any extension fee pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Mohsen Almani whose telephone number is (571)270-7722. The examiner can normally be reached on M-F, 9 AM-5 PM, ET.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Ann J. Lo can be reached on 571-272-9767. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see https://ppair-my.uspto.gov/pair/PrivatePair. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/MOHSEN ALMANI/Primary Examiner, Art Unit 2159