DETAILED ACTION
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 .
Response to Amendment
This communication is responsive to the amendment filed 3/2/2026.
Claims 1, 10, and 15 have been amended, claims 2, 9, 20, and 22 have been canceled, and claim 23 has been added.
Claims 1, 3-8, 10-19, 21, and 23 are pending with claims 1, 10, and 15 as independent claims.
Claim Rejections - 35 USC § 103
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, 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, 3-8, 10-19, and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Shridhar et al. (US 2017/0169076, published 06/15/2017, hereinafter as Shridhar) in view of Subramanian et al. (US 10,445,170, published 10/15/2019, hereinafter as Subramanian).
Claim 1. A method comprising:
receiving a first input identifying a content object present in a landscape;
in response to the first input, referencing a hierarchical structure including the content object and a dependent content object, to create a first visualization including the content object and the dependent content object; Shridhar teaches in [0018-0019] “Query 426 is formulated to select object names from BI table ‘table D’ where the dependent values in the list 422 are specified in the query… the selected object ‘object B’ 502 is in the center of the radar chart A 504. The impacted objects are plotted on spokes of the radar chart A 504. In the radar chart A 504, the impacted objects such as report A 506, report B 508, report C 510, report D 512, chart A 514, chart X 516, report E 518 and chart Y 520 are indicated in the spokes of the radar chart A 504. The selected object ‘object B’ 502 is in the center of the radar chart A 504.” (emphasis added) Examiner Note: query 426 may be an input identifying “object B” or (content object) and the created visualization RADAR chart A 504 (first visualization) displays the identified “Object B” in the center and dependent content object “REPORT B508” the dependency indicated in the chart by “Spoke” in the chart, the term “landscape may be enterprise system as indicated in [0020]”,
receiving second input to the first visualization identifying the dependent content object; Shridhar teaches in [0018-0019] “The user may select one of the impacted objects displayed, for example, report B 508, and right clicks on a context menu to select ‘Perform impact analyze’ (not shown). The algorithm as explained in FIG. 4A and FIG. 4B is re-executed, and impacted objects are identified corresponding to the selected object report B 508.” (emphasis added) Examiner Note: the user may select (input) dependent report B508 in the chart A504 to perform impact analysis, and
in response to the second input, referencing the hierarchical structure to create a second visualization including the dependent content object and another dependent content object that is dependent from the dependent content object in the landscape; Shridhar teaches in [0018-0019] “The selected object report B 508 is displayed in the center of radar chart B 522, and the impacted objects are displayed in the spokes of the new radar chart B 522. In the radar chart B 522, the impacted objects such as report W 524, report F 526, object C 528, report D 530, chart S 532, chart X 534, report G 536 and chart P 538 are displayed in the spokes of the radar chart B 522.” (emphasis added) Examiner Note: the response of selecting dependent object “report B508” may be creating RADAR chart B522 as a second visualization that includes dependent object “report B508” in the center and another dependent object “report W524” as shown in fig. 5.
Shridhar does not explicitly disclose
wherein the method further comprises, prior to receiving the first input:
receiving a dependency response from the landscape; storing the dependency response as a dependencies result in a nontransitory computer readable storage medium; and constructing the hierarchical structure from the dependencies result, wherein the dependent content object is one of a plurality of dependent content objects. However, Subramanian teaches in [col. 8, ln 6 to col. 11, ln 41] “These modules help build data lineage (direct, indirect) as well as predict & rank impact based on incident and change tickets… As shown in FIG. 2A, an input data source 202a is connected to an intermediate data source 202b via a data flow connection that comprises data object 204a. For example, input data source 202a receives as input one or more data elements that comprise data object 204a and as part of, e.g., an application workflow, input data source 202a transmits data object 204a to the intermediate data source 202b. Then, intermediate data source 202b further transmits data object 204a to target data sources 202c via a data flow connection—so that the overall data lineage comprises (i) a direct connection between input data source 202a and intermediate data source 202b, (ii) a direct connection between intermediate data source 202b and target data source 202c, and (iii) an indirect connection between input data source 202a and target data source 202c…. FIG. 2B is a diagram of an exemplary data lineage showing direct relationships and indirect relationships between data sources. As shown in FIG. 2B, a plurality of database servers D1, D2, D3 have data objects (i.e., Tables T1, T2, T4, T6, T10) that share direct and indirect relationships with each other… The direct lineage translator 136 programmatically parses metadata about data objects as received from data sources 102a-102n and stores the parsed information in the metadata information 142, parent data 144 and child data 146. As shown in the table in FIG. 2B, the type flag indicates the type of relationship (i.e., D=Direct; I=Indirect)… The network model module can use a Bayesian, long short-term memory (LS™), or other type of artificial intelligence network model to build the indirect relationships… The network model module 140 identifies both obvious and hidden dependencies between the data elements based upon the above inputs, logs the hidden dependencies and rebuilds the data lineage for the indirect relationships based upon its identification of the dependencies and stores the data lineage information in the parent data 144 and child data 144 repositories.” (emphasis added) Examiner Note: in response to receiving one or more data elements, direct and indirect lineage translators and network model module identify both obvious and hidden dependences between data elements and objects (tables) and store data lineage information in repositories. The network module rebuilds (construct) data lineage for the direct and indirect relationships based on its identification of the dependencies and stores in repositories.
Further, Subramanian teaches
wherein the method further comprises: receiving a third input identifying one of the plurality of dependent content objects as an existing object; including the content object in a package that excludes the existing object; and transporting the package to a target landscape. in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the third request may be change request that identifies error in existing element, wherein the error is changing data type from CHAR to VARCHAR. The data object change impact module response to the request is that the impact is below threshold indicating minimum impact and transmits SQL UPDATE command to update the data type of the data object in data source 102a, as the target landscape, without updating the data type for the data object in other data sources. The dependent content object as an existing object may be the object “CHAR” and the content object in the package (update) may be the object “VAR”, which does not include or excludes the dependent object “CHAR”. The update may be similar to adding strike-through to a word, a phrase, a sentence, or a paragraph in a database text content, for example. Here, the strike-through object may be the transmitted package, which excludes the object word, phrase, sentence, or paragraph, to the database as an environment, wherein the word, phrase, sentence, or paragraph as an existing object in the environment database. Thus, the update instruction may add the strike-through object to the existing word, phrase, sentence, or paragraph to indicate that the existing object is deleted and/or removed without actually deleting and/or removing the existing object.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Shridhar does not explicitly disclose provisioning the target landscape using the package that excludes the existing object. However, Subramanian teaches in [col. 5, ln 33 to col. 6, ln 6] “Data objects can include data structures (i.e., tables, fields), variables, functions, methods, and other types of values used to embody data in an enterprise system. Typically, data objects are referenced and/or used across multiple data sources in an enterprise environment—for example, data may be captured by a first data source and stored in a data object there, then the first data source may transmit the data object (or portions of it) to one or more downstream data sources as part of an enterprise transaction or software application functionality. This data flow can happen a number of times for a particular data object, such that a data lineage for the data object can be determined—that is, an entry point data source for one or more data fields that comprise the data object, one or more intermediate data sources through which the data object passes, and a target data source that consumes the data object from upstream data source(s). It should be appreciated that a data object can be consumed by more than one data source as part of the overall data lineage, and that portions of a data object (e.g., a field of a database table) can be distributed to multiple different data sources as part of the overall data lineage.” And in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the data source 102a may be configured (provisioned) to execute the SQL UPDATE (package) to modify, by updating, the existing data object “CHAR” to “VANCHAR”, wherein the data object “VAN” may the update data object implemented by the SQL UPDATE command to modify the data object “CHAR” to “VARCHAR”. Thus, the data source 102 uses the package (SQL UPDATE) that includes instructions (command) to modify content or data object “CHAR”, an existing data object in data source 102a, to be content or data object “VARCHAR” such that the data object “CHAR” may be excluded from SQL UPDATE (package).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Claims 3 and 11. The rejection of a method as in claim 1 is incorporated, wherein the dependencies result comprises a table in a database of the non-transitory computer readable storage medium; Shridhar teaches in [0021 and 0025] “object can be selected for impact analysis in a user interface of the BI application. The request is processed at a database layer such as in-memory database layer, and the results of the analysis are returned to the user interface of the BI application… A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like.” (emphasis added).
Claim 4. The rejection of a method as in claim 3 is incorporated, wherein: the database comprises an in-memory database including an in-memory database engine; and the in-memory database engine constructs the hierarchical structure from the dependencies result; Shridhar teaches in [0020-0021] “Process 600 of impact analysis of objects may be executed in an enterprise system, where the enterprise system may be a specialized enterprise hardware system with hardware components such as high speed processors, physical memory, hard drives, network connections, etc., capable of hosting and executing specialized enterprise software applications such as impact analysis application… object can be selected for impact analysis in a user interface of the BI application. The request is processed at a database layer such as in-memory database layer, and the results of the analysis are returned to the user interface of the BI application.” (emphasis added) Examiner Note: the result of the request to perform impact analysis may be processed utilizing in-memory database.
Claims 5 and 16. The rejection of a method as in claim 1 is incorporated and further comprising,
prior to receiving the dependency response: receiving a selected object in the landscape; Shridhar teaches in [0020] “Process 600 of impact analysis of objects may be executed in an enterprise system, where the enterprise system may be a specialized enterprise hardware system with hardware components such as high speed processors, physical memory, hard drives, network connections, etc., capable of hosting and executing specialized enterprise software applications such as impact analysis application. At 602, an object is selected to determine impacted objects corresponding to the selected object.” And in [0021] “object can be selected for impact analysis in a user interface of the BI application. The request is processed at a database layer such as in-memory database layer, and the results of the analysis are returned to the user interface of the BI application. In one embodiment, algorithm and the functionalities associated with the impact analysis feature can be packaged as add-on application and shipped with enterprise application such as BI applications. Users may choose to deploy or install impact analysis add-on application along with the BI application, and perform impact analysis from a user interface associated with the add-on application.” (emphasis added) Examiner Note: the term “landscape” may be an enterprise system capable of executing impact analysis application. Object selected in the enterprise system for impact analysis, and
communicating to the landscape, a dependency request including the selected object; Shridhar teaches in [0020] “query is formulated to retrieve relationship objects from a relationship table matching the type of the selected object.” (emphasis added) Examiner Note: the formulated query may be request including the selected object.
Claims 6, 12, and 17. The rejection of a method as in claim 1 is incorporated, wherein the hierarchical structure comprises a tree including a root node and a leaf node; Shridhar teaches in [0020 and 0025] “Process 600 of impact analysis of objects may be executed in an enterprise system, where the enterprise system may be a specialized enterprise hardware system with hardware components such as high speed processors, physical memory, hard drives, network connections, etc., capable of hosting and executing specialized enterprise software applications such as impact analysis application… A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like. Further data sources include tabular data (e.g., spreadsheets, delimited text files), data tagged with a markup language (e.g., XML data), transactional data, unstructured data (e.g., text files, screen scrapings), hierarchical data (e.g., data in a file system, XML data), files, a plurality of reports, and any other data source accessible through an established protocol, such as, Open Data Base Connectivity (ODBC), produced by an underlying software system (e.g., ERP system), and the like.” (emphasis added) Examiner Note: the term “relational database”, “hierarchical” or “object oriented” databases may indicate data with a tree like structure.
Claims 7, 13, and 18. The rejection of a method as in claim 1 is incorporated,
wherein:
the first visualization comprises a first spider chart having the content object at a center, and the dependent content object at a periphery; Shridhar teaches in [0018-0019] “the selected object ‘object B’ 502 is in the center of the radar chart A 504. The impacted objects are plotted on spokes of the radar chart A 504. In the radar chart A 504, the impacted objects such as report A 506, report B 508, report C 510, report D 512, chart A 514, chart X 516, report E 518 and chart Y 520 are indicated in the spokes of the radar chart A 504.” (emphasis added) Examiner Note: radar chart A504 may be the first spider chart and the selected object B502 at the center and dependent object report B508 at a periphery (edge), and
the second visualization comprises a second spider chart having the dependent object at a center, and the another dependent content object at a periphery; Shridhar teaches in [0018-0019] “The selected object report B 508 is displayed in the center of radar chart B 522, and the impacted objects are displayed in the spokes of the new radar chart B 522. In the radar chart B 522, the impacted objects such as report W 524, report F 526, object C 528, report D 530, chart S 532, chart X 534, report G 536 and chart P 538 are displayed in the spokes of the radar chart B 522.” (emphasis added) Examiner Note: radar chart B522 may be the second spider chart having selected object report B508 at the center and another dependent content object “report W524” at a periphery (edge).
Claims 8, 14, and 19. The rejection of a method as in claim 1 is incorporated, wherein the content object comprises a model, a story, or a dimension; Shridhar teaches in [0025] “A data source is an information resource. Data sources include sources of data that enable data storage and retrieval. Data sources may include databases, such as, relational, transactional, hierarchical, multi-dimensional (e.g., OLAP), object oriented databases, and the like.” (emphasis added) Examiner Note: the term “multi-dimensional OLAP” multi-dimensional database.
Claim 10. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:
receiving a first input identifying a content object present in a landscape; in response to the first input, referencing a hierarchical structure including the content object and a dependent content object, to create a first visualization including the content object and the dependent content object; Shridhar teaches in [0018-0019] “Query 426 is formulated to select object names from BI table ‘table D’ where the dependent values in the list 422 are specified in the query… the selected object ‘object B’ 502 is in the center of the radar chart A 504. The impacted objects are plotted on spokes of the radar chart A 504. In the radar chart A 504, the impacted objects such as report A 506, report B 508, report C 510, report D 512, chart A 514, chart X 516, report E 518 and chart Y 520 are indicated in the spokes of the radar chart A 504. The selected object ‘object B’ 502 is in the center of the radar chart A 504.” (emphasis added) Examiner Note: query 426 may be an input identifying “object B” or (content object) and the created visualization RADAR chart A 504 (first visualization) displays the identified “Object B” in the center and dependent content object “REPORT B508” the dependency indicated in the chart by “Spoke” in the chart, the term “landscape may be enterprise system as indicated in [0020]”,
receiving a second input to the first visualization identifying the dependent content object; Shridhar teaches in [0018-0019] “The user may select one of the impacted objects displayed, for example, report B 508, and right clicks on a context menu to select ‘Perform impact analyze’ (not shown). The algorithm as explained in FIG. 4A and FIG. 4B is re-executed, and impacted objects are identified corresponding to the selected object report B 508.” (emphasis added) Examiner Note: the user may select (input) dependent report B508 in the chart A504 to perform impact analysis, and
in response to the second input, referencing the hierarchical structure to create a second visualization including the dependent content object and another dependent content object that is dependent from the dependent content object in the landscape, Shridhar teaches in [0018-0019] “The selected object report B 508 is displayed in the center of radar chart B 522, and the impacted objects are displayed in the spokes of the new radar chart B 522. In the radar chart B 522, the impacted objects such as report W 524, report F 526, object C 528, report D 530, chart S 532, chart X 534, report G 536 and chart P 538 are displayed in the spokes of the radar chart B 522.” (emphasis added) Examiner Note: the response of selecting dependent object “report B508” may be creating RADAR chart B522 as a second visualization that includes dependent object “report B508” in the center and another dependent object “report W524” as shown in fig. 5.
Shridhar does not explicitly disclose
wherein the method further comprises, prior to receiving the first input, receiving a dependency response from the landscape; storing the dependency response as a dependencies result in a non-transitory computer readable storage medium; and constructing the hierarchical structure from the dependencies result, wherein the dependent content object is one of a plurality of dependent content objects. However, Subramanian teaches in [col. 8, ln 6 to col. 11, ln 41] “These modules help build data lineage (direct, indirect) as well as predict & rank impact based on incident and change tickets… As shown in FIG. 2A, an input data source 202a is connected to an intermediate data source 202b via a data flow connection that comprises data object 204a. For example, input data source 202a receives as input one or more data elements that comprise data object 204a and as part of, e.g., an application workflow, input data source 202a transmits data object 204a to the intermediate data source 202b. Then, intermediate data source 202b further transmits data object 204a to target data sources 202c via a data flow connection—so that the overall data lineage comprises (i) a direct connection between input data source 202a and intermediate data source 202b, (ii) a direct connection between intermediate data source 202b and target data source 202c, and (iii) an indirect connection between input data source 202a and target data source 202c…. FIG. 2B is a diagram of an exemplary data lineage showing direct relationships and indirect relationships between data sources. As shown in FIG. 2B, a plurality of database servers D1, D2, D3 have data objects (i.e., Tables T1, T2, T4, T6, T10) that share direct and indirect relationships with each other… The direct lineage translator 136 programmatically parses metadata about data objects as received from data sources 102a-102n and stores the parsed information in the metadata information 142, parent data 144 and child data 146. As shown in the table in FIG. 2B, the type flag indicates the type of relationship (i.e., D=Direct; I=Indirect)… The network model module can use a Bayesian, long short-term memory (LS™), or other type of artificial intelligence network model to build the indirect relationships… The network model module 140 identifies both obvious and hidden dependencies between the data elements based upon the above inputs, logs the hidden dependencies and rebuilds the data lineage for the indirect relationships based upon its identification of the dependencies and stores the data lineage information in the parent data 144 and child data 144 repositories.” (emphasis added) Examiner Note: in response to receiving one or more data elements, direct and indirect lineage translators and network model module identify both obvious and hidden dependences between data elements and objects (tables) and store data lineage information in repositories. The network module rebuilds (construct) data lineage for the direct and indirect relationships based on its identification of the dependencies and stores in repositories.
Further, Subramanian teaches
wherein the method further comprises: receiving a third input identifying one of the plurality of dependent content objects as an existing object; including the content object in a package that excludes the existing object; and transporting the package to a target landscape. in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the third request may be change request that identifies error in existing element, wherein the error is changing data type from CHAR to VARCHAR. The data object change impact module response to the request is that the impact is below threshold indicating minimum impact and transmits SQL UPDATE command to update the data type of the data object in data source 102a, as the target landscape, without updating the data type for the data object in other data sources. The dependent content object as an existing object may be the object “CHAR” and the content object in the package (update) may be the object “VAR”, which does not include or excludes the dependent object “CHAR”. The update may be similar to adding strike-through to a word, a phrase, a sentence, or a paragraph in a database text content, for example. Here, the strike-through object may be the transmitted package, which excludes the object word, phrase, sentence, or paragraph, to the database as an environment, wherein the word, phrase, sentence, or paragraph as an existing object in the environment database. Thus, the update instruction may add the strike-through object to the existing word, phrase, sentence, or paragraph to indicate that the existing object is deleted and/or removed without actually deleting and/or removing the existing object.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Shridhar does not explicitly disclose provisioning the target landscape using the package that excludes the existing object. However, Subramanian teaches in [col. 5, ln 33 to col. 6, ln 6] “Data objects can include data structures (i.e., tables, fields), variables, functions, methods, and other types of values used to embody data in an enterprise system. Typically, data objects are referenced and/or used across multiple data sources in an enterprise environment—for example, data may be captured by a first data source and stored in a data object there, then the first data source may transmit the data object (or portions of it) to one or more downstream data sources as part of an enterprise transaction or software application functionality. This data flow can happen a number of times for a particular data object, such that a data lineage for the data object can be determined—that is, an entry point data source for one or more data fields that comprise the data object, one or more intermediate data sources through which the data object passes, and a target data source that consumes the data object from upstream data source(s). It should be appreciated that a data object can be consumed by more than one data source as part of the overall data lineage, and that portions of a data object (e.g., a field of a database table) can be distributed to multiple different data sources as part of the overall data lineage.” And in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the data source 102a may be configured (provisioned) to execute the SQL UPDATE (package) to modify, by updating, the existing data object “CHAR” to “VANCHAR”, wherein the data object “VAN” may the update data object implemented by the SQL UPDATE command to modify the data object “CHAR” to “VARCHAR”. Thus, the data source 102 uses the package (SQL UPDATE) that includes instructions (command) to modify content or data object “CHAR”, an existing data object in data source 102a, to be content or data object “VARCHAR” such that the data object “CHAR” may be excluded from SQL UPDATE (package).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Claim 15. A computer system comprising:
one or more processors; a software program, executable on said computer system, Shridhar teaches in [0024] “The computer system 700 includes a processor 705 that executes software instructions or code stored on a computer readable storage medium 755 to perform the above-illustrated methods.” (emphasis added).
the software program configured to cause an in-memory database engine of an in-memory database to:
receive a first input identifying a content object present in a landscape;
in response to the first input, reference a hierarchical structure including the content object and a dependent content object, to create a first visualization including the content object and the dependent content object; Shridhar teaches in [0018-0019] “Query 426 is formulated to select object names from BI table ‘table D’ where the dependent values in the list 422 are specified in the query… the selected object ‘object B’ 502 is in the center of the radar chart A 504. The impacted objects are plotted on spokes of the radar chart A 504. In the radar chart A 504, the impacted objects such as report A 506, report B 508, report C 510, report D 512, chart A 514, chart X 516, report E 518 and chart Y 520 are indicated in the spokes of the radar chart A 504. The selected object ‘object B’ 502 is in the center of the radar chart A 504.” (emphasis added) Examiner Note: query 426 may be an input identifying “object B” or (content object) and the created visualization RADAR chart A 504 (first visualization) displays the identified “Object B” in the center and dependent content object “REPORT B508” the dependency indicated in the chart by “Spoke” in the chart, the term “landscape may be enterprise system as indicated in [0020]”,
receive a second input to the first visualization identifying the dependent content object; Shridhar teaches in [0018-0019] “The user may select one of the impacted objects displayed, for example, report B 508, and right clicks on a context menu to select ‘Perform impact analyze’ (not shown). The algorithm as explained in FIG. 4A and FIG. 4B is re-executed, and impacted objects are identified corresponding to the selected object report B 508.” (emphasis added) Examiner Note: the user may select (input) dependent report B508 in the chart A504 to perform impact analysis, and
in response to the second input, reference the hierarchical structure to create a second visualization including the dependent content object and another dependent content object that is dependent from the dependent content object in the landscape, Shridhar teaches in [0018-0019] “The selected object report B 508 is displayed in the center of radar chart B 522, and the impacted objects are displayed in the spokes of the new radar chart B 522. In the radar chart B 522, the impacted objects such as report W 524, report F 526, object C 528, report D 530, chart S 532, chart X 534, report G 536 and chart P 538 are displayed in the spokes of the radar chart B 522.” (emphasis added) Examiner Note: the response of selecting dependent object “report B508” may be creating RADAR chart B522 as a second visualization that includes dependent object “report B508” in the center and another dependent object “report W524” as shown in fig. 5.
Shridhar does not explicitly disclose
wherein prior to receiving the input, the in-memory database engine is further configured to, receive a dependency response from the landscape; store the dependency response as a dependencies result in the in-memory database; and construct the hierarchical structure from the dependencies result, wherein the dependent content object is one of a plurality of dependent content objects. However, Subramanian teaches in [col. 8, ln 6 to col. 11, ln 41] “These modules help build data lineage (direct, indirect) as well as predict & rank impact based on incident and change tickets… As shown in FIG. 2A, an input data source 202a is connected to an intermediate data source 202b via a data flow connection that comprises data object 204a. For example, input data source 202a receives as input one or more data elements that comprise data object 204a and as part of, e.g., an application workflow, input data source 202a transmits data object 204a to the intermediate data source 202b. Then, intermediate data source 202b further transmits data object 204a to target data sources 202c via a data flow connection—so that the overall data lineage comprises (i) a direct connection between input data source 202a and intermediate data source 202b, (ii) a direct connection between intermediate data source 202b and target data source 202c, and (iii) an indirect connection between input data source 202a and target data source 202c…. FIG. 2B is a diagram of an exemplary data lineage showing direct relationships and indirect relationships between data sources. As shown in FIG. 2B, a plurality of database servers D1, D2, D3 have data objects (i.e., Tables T1, T2, T4, T6, T10) that share direct and indirect relationships with each other… The direct lineage translator 136 programmatically parses metadata about data objects as received from data sources 102a-102n and stores the parsed information in the metadata information 142, parent data 144 and child data 146. As shown in the table in FIG. 2B, the type flag indicates the type of relationship (i.e., D=Direct; I=Indirect)… The network model module can use a Bayesian, long short-term memory (LS™), or other type of artificial intelligence network model to build the indirect relationships… The network model module 140 identifies both obvious and hidden dependencies between the data elements based upon the above inputs, logs the hidden dependencies and rebuilds the data lineage for the indirect relationships based upon its identification of the dependencies and stores the data lineage information in the parent data 144 and child data 144 repositories.” (emphasis added) Examiner Note: in response to receiving one or more data elements, direct and indirect lineage translators and network model module identify both obvious and hidden dependences between data elements and objects (tables) and store data lineage information in repositories. The network module rebuilds (construct) data lineage for the direct and indirect relationships based on its identification of the dependencies and stores in repositories.
Further, Subramanian teaches
wherein the in-memory database engine is further configured to: receive a third input identifying one of the plurality of dependent content objects as an existing object; include the content object in a package that excludes the existing object; and transport the package to a target landscape. in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the third request may be change request that identifies error in existing element, wherein the error is changing data type from CHAR to VARCHAR. The data object change impact module response to the request is that the impact is below threshold indicating minimum impact and transmits SQL UPDATE command to update the data type of the data object in data source 102a, as the target landscape, without updating the data type for the data object in other data sources. The dependent content object as an existing object may be the object “CHAR” and the content object in the package (update) may be the object “VAR”, which does not include or excludes the dependent object “CHAR”. The update may be similar to adding strike-through to a word, a phrase, a sentence, or a paragraph in a database text content, for example. Here, the strike-through object may be the transmitted package, which excludes the object word, phrase, sentence, or paragraph, to the database as an environment, wherein the word, phrase, sentence, or paragraph as an existing object in the environment database. Thus, the update instruction may add the strike-through object to the existing word, phrase, sentence, or paragraph to indicate that the existing object is deleted and/or removed without actually deleting and/or removing the existing object.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Shridhar does not explicitly disclose provisioning the target landscape using the package that excludes the existing object. However, Subramanian teaches in [col. 5, ln 33 to col. 6, ln 6] “Data objects can include data structures (i.e., tables, fields), variables, functions, methods, and other types of values used to embody data in an enterprise system. Typically, data objects are referenced and/or used across multiple data sources in an enterprise environment—for example, data may be captured by a first data source and stored in a data object there, then the first data source may transmit the data object (or portions of it) to one or more downstream data sources as part of an enterprise transaction or software application functionality. This data flow can happen a number of times for a particular data object, such that a data lineage for the data object can be determined—that is, an entry point data source for one or more data fields that comprise the data object, one or more intermediate data sources through which the data object passes, and a target data source that consumes the data object from upstream data source(s). It should be appreciated that a data object can be consumed by more than one data source as part of the overall data lineage, and that portions of a data object (e.g., a field of a database table) can be distributed to multiple different data sources as part of the overall data lineage.” And in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the data source 102a may be configured (provisioned) to execute the SQL UPDATE (package) to modify, by updating, the existing data object “CHAR” to “VANCHAR”, wherein the data object “VAN” may the update data object implemented by the SQL UPDATE command to modify the data object “CHAR” to “VARCHAR”. Thus, the data source 102 uses the package (SQL UPDATE) that includes instructions (command) to modify content or data object “CHAR”, an existing data object in data source 102a, to be content or data object “VARCHAR” such that the data object “CHAR” may be excluded from SQL UPDATE (package).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Claim 21. The rejection of the method of claim 1 is incorporated, Shridhar does not explicitly disclose wherein the package includes one or more of a story, a model, a visualization, and an analytics application. However, Subramanian teaches in [col. 15, ln 4 to col. 16, ln 44] “The data object change impact module 114 receives (416) the change request from the client computing device 103 and determines (418) a change impact score for the one or more data objects referenced in the change request… The data object change impact module 114 then executes (420) the requested data object change when the change impact score is below a predetermined threshold. For example, if the change impact score is low—indicating minimal impact to the production system—the data object change impact module 114 executes the requested change by generating programmatic instructions that are transmitted to the data source (e.g., data source 102a) that stores the affected data object as identified in the request. An example might be changing a database table column from a CHAR type to a VARCHAR type. The module 114 generates programmatic instructions (e.g., a SQL UPDATE command to a SQL database at data source 102a) and transmits the instructions to the data source 102a. The data source 102a then executes the programmatic instructions to change one or more of a data structure or a data type of the data object—in the above example, the data source 102a runs the SQL UPDATE command to change the data type of the database table column from CHAR to VARCHAR. Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” (emphasis added) Examiner Note: the third request may be change request that identifies error in existing element, wherein the error is changing data type from CHAR to VARCHAR. The data object change impact module response to the request is that the impact is below threshold indicating minimum impact and transmits SQL UPDATE command to update the data type of the data object in data source 102a, as the target landscape, without updating the data type for the data object in other data sources. The dependent content object as an existing object may be the object “CHAR” and the content object in the package (update) may be the object “VAR”, which does not include or excludes the dependent object “CHAR”. Let’s assume that the object “CHAR” may be an existing story record in a database such as data source 102, the package may be the update (a story update or additional information) to the existing story in the database. The term “update” may indicate addition information to an existing object because the update object depends on an existing object/record.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Subramanian because “Although other data sources in the data lineage may still have the data object stored as a CHAR, this data type mismatch typically would not cause failures in production applications or business domains—as most (if not all) data can still be stored in the data objects that have not been changed across the data sources.” Subramanian [col. 16, ln 20-44].
Claim 23 is rejected under 35 U.S.C. 103 as being unpatentable over Shridhar and Subramanian in view of Sureshan et al. (US 2013/0031566, published 01/31/2013, hereinafter as Sureshan) in view of Sullivan et al. (US 2015/0347542, pub. 12/3/2015, hereinafter as Sullivan).
Claim 23. The rejection of the method as in claim 1 is incorporated,
Shridhar does not explicitly disclose
wherein the content object is one of a plurality of content objects present in the landscape. However, Sureshan, in an analogous art, teaches in [0075 and 0136-0137] “the stored data (or pointers thereto) may be stored in one or more tables in a relational database described in terms of SQL statements or scripts… Packages may group elements together based on different factors, such as elements that occur together as a rule with regard to a business-related aspect. For example, as depicted in FIG. 7, in a Purchase Order, different information regarding the purchase order, such as the type of payment 702, and payment card 704, are grouped together via the PaymentInformation package 700… Packages also may combine different components that result in a new object. For example, as depicted in FIG. 8, the components wheels 804, motor 806, and doors 808 are combined to form a composition "Car" 802. The "Car" package 800 includes the wheels, motor and doors as well as the composition "Car."” (emphasis added) Examiner Note: content objects such as payment 702 and wheels 804 may be present in relational database described in terms of SQL statement or scripts,
wherein the plurality of content objects includes a plurality of public objects and a plurality of private objects. Further, Sureshan teaches in [0089] “the modeling environment 516 may provide a shared set of services for finding, organizing, and accessing unstructured content stored in third-party repositories and content management systems across various networks 312… a Catalogue entity is used in a Catalogue Publication Request and a Purchase Order is used in a Purchase Order Request. These entities are created using the data types defined above to ensure the consistent representation of data throughout the entities.” (emphasis added) Examiner Note: unstructured content stored in third-party repositories and content management system may be private objects, whereas catalogue entity may be published content object and, accordingly, it is a public object,
wherein the package includes at least one of the plurality of public objects and at least one of the plurality of private objects; Sureshan, also, teaches in [0075 and 0136-0140] “the stored data (or pointers thereto) may be stored in one or more tables in a relational database described in terms of SQL statements or scripts… Packages may group elements together based on different factors, such as elements that occur together as a rule with regard to a business-related aspect. For example, as depicted in FIG. 7, in a Purchase Order, different information regarding the purchase order, such as the type of payment 702, and payment card 704, are grouped together via the PaymentInformation package 700… Packages also may combine different components that result in a new object. For example, as depicted in FIG. 8, the components wheels 804, motor 806, and doors 808 are combined to form a composition "Car" 802. The "Car" package 800 includes the wheels, motor and doors as well as the composition "Car."… Party package 1100 is enclosed by <PartyPackage> 1102 and </PartyPackage> 1104. Party package 1100 illustratively includes a Buyer Party 1106, identified by <BuyerParty> 1108 and </BuyerParty> 1110, and a Seller Party 1112, identified by <SellerParty> 1114 and </SellerParty>, etc.” (emphasis added) Examiner Note: the party package may include buyer party content objects as private content objects and seller content objects as public content objects as shown in fig. 11.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Sureshan because “A simple difference in formatting, e.g., the use of upper-case lettering rather than lower-case or title-case, makes the exchange of information between businesses a difficult task. Unless the individual businesses agree upon particular semantics, human interaction typically is required to facilitate transactions between these businesses. Because these "heterogeneous" programs are used by different companies or by different business areas within a given company, a need exists for a consistent way to exchange information and perform a business transaction between the different business entities.” Sureshan [Background].
Shridhar does not explicitly disclose
wherein provisioning the target landscape includes provisioning the target landscape using the at least one of the plurality of public objects and the at least one of the plurality of private objects. However, Sullivan, in an analogous art, teaches in [0015-0017] “A “public cloud” is a cloud in which resources are dynamically provisioned over the Internet using web applications and services from a third-party provider… A “hybrid cloud” is one that recognizes the need of companies to deliver services in a traditional way to some in-house operating methods and provide technology to manage the complexity in managing the performance, security and privacy concerns that result from the fixed delivery methods of the company. A hybrid cloud uses a combination of public and private storage clouds.” And in [0028 and 0043] “While the embodiments described herein are described in connection to a private cloud, the data warehouse structure and embodiments of the present invention is not limited to a private cloud and can also be used in a public cloud… The data warehouse system of the present invention also provides full data lineage tracking from source to system user use, as well as, a self-service capability to define meta-data and meta-logic by system users without IT assistance.” And in [0246-0251] DEV—After the developer has done development and testing of the cloud application, he/she can export the cloud application's .war file to the private cloud… The developer will provide the appropriate information for completing the cloud application profile and select a cloud application for association with it. The developer will then change the status to PUBLISHED as shown at 2102 in FIG. 21.” And in [0494] “For each item identified in the search, display area 4206 will include the name in Name column 4210, the status at Status column 4212, the time when created at Created At column 4214, and who created it in Created By column 4216. If the system user desires to show only published items associated with the searched name, the system user would place a check in Show Published field at 4218.” (emphasis added) Examiner Note: the target landscape may be hybrid cloud such that resources (cloud applications) may be provisioned over the internet for private and public utilization, wherein the system supports data lineage tracking and SQL command.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teaching of Shridhar with the teaching of Sullivan because “there is a need in computer-based private cloud systems for implementation of better systems and methods for cloud computing and cloud application development and deployment on an enterprise-wide basis… there also is a need to overcome the limitations of conventional data warehouse implementations and provide a self-service capability for end-users/consumers to access, load, discover, select, filter, merge, aggregate analyze and visualize data in a permissioned, governance framework that supports multiple tenants concurrently in a data cloud.” Sullivan [Background].
Response to Arguments
Applicant’s arguments with respect to claims 1, 10, and 15 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Argument: Applicant argues, per claim 1, “content is only removed, and no new content is provided. It is respectfully submitted that changing an existing object and removing content are not "provisioning" as recited in claim 1 (as amended).”
Response: Subramanian teaches in [col. 6, ln 7-20] “The data flow connection can be a physical connection (e.g., network path connecting two computing devices that host data sources) and/or a logical connection (e.g., two computing devices in the same address space that route data to each other). And in [col. 10, ln 26-51] “input data source 202a receives as input one or more data elements that comprise data object 204a and as part of, e.g., an application workflow, input data source 202a transmits data object 204a to the intermediate data source 202b. Then, intermediate data source 202b further transmits data object 204a to target data sources 202c via a data flow connection—so that the overall data lineage comprises (i) a direct connection between input data source 202a and intermediate data source 202b, (ii) a direct connection between intermediate data source 202b and target data source 202c, and (iii) an indirect connection between input data source 202a and target data source 202c. If data object 204a is changed (e.g., due to code changes or data modification), then each of the data sources 202a, 202b, and 202c are impacted and must be updated or reconfigured accordingly. Therefore, it is important to understand the overall data lineage for the data object 204a to assess potential impact on the overall system if changes to data object 204a are contemplated, and to ensure that planned changes will not cause unexpected or unintended system performance issues.”
The term “provisioning” may be interpreted as “sharing” as indicated by Applicant in page 9 of the Remarks.
Accordingly, the data source 202a may be configured to transmit (share) received content with target data source 202c utilizing data flow connection (network path connection the two computing devices.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. See PTO-892.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 nonprovisional extension fee (37 CFR 1.17(a)) 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 AHAMED I NAZAR whose telephone number is (571)270-3174. The examiner can normally be reached 10 am to 7 pm Mon-Fri.
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, Stephen Hong can be reached at 571-272-4124. 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.
/AHAMED I NAZAR/Examiner, Art Unit 2178 3/30/2026
/STEPHEN S HONG/Supervisory Patent Examiner, Art Unit 2178