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 Amendments
The action is responsive to the Applicant’s Amendment filed on 11/04/2025. Claims 1-15 are pending in the application.
Response to Arguments
Applicant’s arguments with respect to the rejections of claims 1-15 have been fully considered. In view of the claim amendment filed, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made.
Furthermore, it is also submitted that all limitations in pending claims, including those not specifically argued, are properly addressed. The reason is set forth in the rejections. See claim analysis below for detail.
Claim Rejections - 35 USC§ 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
With respect to claim 14, the claim is directed to a program product claim. However, applicant does not describe or provide any substantial evidence in the specification that cited term “program product” are “non-transitory machine-readable storage medium.” Thus it can be interpreted as carrier wave signals, transitory, propagating signals which do not fall with any category of statutory subject matter. Thus the claims are considered directed to non-statutory subject matter. See MPEP § 2106.
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, 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-15 are rejected under 35 U.S.C. 103 as being unpatentable over Naryzhnyy et al. (US 20170139979 A1) in view of Madl et al. (US 20130019224 A1) and Bonde (EP 1172735 A1).
Regarding Claim 1, Naryzhnyy discloses a computer-implemented method for checking conversion of an input database having an input format to an output database having an output format ([0070]: The components can include a validation step (e.g., check data against a set of validation rules, verify that data matches a particular criteria, etc.), a transformation step (e.g., convert information from a first database structure to a second database structure, convert data into an intermediate database format, etc.),
the input database comprising a plurality of input data ([0076]: The source extraction module 212 extracts input data (also referred to as source database (SDB)) from one or more source databases (e.g., plain text file, organized data, file of data, marked-up data, commercially available database system, enterprise database, relational database, non-relational database), the method comprising:
accessing to:
an input data model determined on the basis of the input format ([0075]: The source extraction rule engine 211 generates one or more extraction rules based on the one or more predicates. The source extraction rule engine 211 can generate (e.g., determine, modify, create, define, etc.) the one or more extraction rules based on the one or more predicates, the unified configuration, and/or other stored information (e.g., data from another unified configuration, data from another knowledge domain, etc.). The one or more extraction rules can include information that identifies tables, columns, rows, lines, identifiers, and/or roles where the input data is stored [The extraction rules of the source extraction rule engine 211 corresponds to the input data model that is based on the input format, i.e. the tables, columns, rows etc. of the source database]),
an output data model determined on the basis of the output format ([0077]: The unified configuration module 213 determines an unified configuration for knowledge domain. The unified configuration includes one or more predicates for one or more system objects (e.g., doctor identification includes licensed states, patient identification includes mailing address, etc.) and/or one or more relationships between the one or more system objects [The unified configuration of the configuration module 213 corresponds to the output data model that is based on the output format, i.e. predicates of the objects and the relationships between the objects]), and
a formal conversion model determined on the basis of the input data model and of a plurality of conversion rules ([0070]: a transformation step (e.g., convert information from a first database structure to a second database structure); Fig. 2; [0080]: The transformation rules engine 216 generates one or more transformation rules based on the one or more predicates. The transformation rule engine 216 can generate (e.g., determine, modify, create, define, etc.) the one or more transformation rules based on the on the one or more predicates, the unified configuration, and/or other stored information [The transformation rules correspond to the formal conversion model that is based on the input data model, the extraction rules, and
conversion rules),
providing the plurality of input data from the input database into the input data model in order to obtain modelized input data (Fig. 2; [0080]-[0081]: The one or more transformations can enable the transformation of input data into transformed data (also referred to as intermediate database (IDB)… The transformation module 217 transforms input data based on the one or more transformation rules, transform second input data based on the one or more transformation rules, and/or transform any number of input data based on the one or more transformation rules);
executing the plurality of conversion rules to convert the modelized input data of the input data model into modelized converted data of the formal conversion model based on a second data validation tool ([0080]-[0081]: The one or more transformations can enable the transformation of input data into transformed data (also referred to as intermediate database (IDB))… The transformation module 217 transforms input data based on the one or more transformation rules...The transformation module 217 can join...merge...modify at least one part of the input data based on the one or more transformation rules; [0105]: The transformation rules engine 216 can define one 'transformation' session from SDB to IDB [The intermediate database corresponds to the modelized converted data]),
wherein executing the plurality of conversion rules comprises implementing, by the second data validation tool, certified computer routines executing said conversion rules on the modelized input data (Fig. 2; [0081]: The transformation module 217 transforms input data based on the one or more transformation rules; [0104]-[0105]: FIG. 6E is exemplary transformation rules 600e; [0149]-[0150]: The above-described systems and methods can be implemented in digital electronic circuitry, in computer hardware, firmware, and/or software… the computer program can be deployed in any form, including as a stand-alone program or as a subroutine, element, and/or other unit suitable for use in a computing environment);
providing the plurality of output data from the output database into the output data model in order to obtain modelized output data (Fig. 2; Figs. 7A-7B; [0082]: The reconciliation rules engine 218 generates one or more reconciliation rules based on the one or more predicates. The one or more reconciliation rules can be associated with a destination database...The one or more reconciliation rules...can enable reconciliation of the transformed data with the destination database; [0094]: The knowledge domains can be stored in a configuration in an unified independent manner (e.g., for XML, each knowledge domain is in a different XML namespace));
using a third data validation tool to check validity of a plurality of equivalence properties between the modelized converted data and the modelized output data ([0079]: The validation module 215...validates the transformed data based on the one or more post- transformation validation rules; [0083]: The reconciliation module 219 reconciles the transformed data with the destination database based on the one or more reconciliation rules),
wherein using a third data validation tool to check validity of a plurality of equivalence properties comprises implementing, by the third data validation tool, certified computer routines checking the validity of the plurality of equivalence properties (Fig.2; [0079]: The validation module 215; [0149]-[0150]: The… computer program can be deployed in any form, including as a stand-alone program or as a subroutine, element, and/or other unit suitable for use in a computing environment).
However, Naryzhnyy does not explicitly teach “wherein the second and third data validation tools correspond to a certified software being able to implement the certified computer routines, said method thereby: verifying, based on a result of the checked validity of the plurality of equivalence properties between the modelized converted data and the modelized output data, a corresponding result of whether the output data model and the formal conversion model share both same modelized data during implementation of the method, and confirming whether applying transformation functions of the conversion rules to the plurality of input data results in corruption of the plurality of input data, based on the result of verifying whether the output data model and the formal conversion model share the same modelized data”.
On the other hand, in the same field of endeavor, Madl teaches
wherein the second and third data validation tools correspond to a certified software being able to implement the certified computer routines (Figs. 1A-1B; [0022]: For certain platforms, the generated code is verified against the RM to show that the source code complies with the RM. For example, software designed for flight-critical systems in aircraft is certified according to guidelines defined by RTCA DO-178B, and its successor RTCA DO-178C),
Additionally, Bonde teaches said method thereby:
verifying, based on a result of the checked validity of the plurality of equivalence properties between the modelized converted data and the modelized output data, a corresponding result of whether the output data model and the formal conversion model share both same modelized data during implementation of the method (Fig. 3; [0001]-[0006]; [0030]-[0031]: The control logic ensures that data actually written into the database operated by the database program match the requirements of the database program and/or the current database program application... facilitates a high degree of reliability due to the fact that data stored in the database will naturally always match the database control logic; [0113]-[0121]: According to the above-mentioned embodiment of the invention, this conversion will imply the conversion of the syntax of the fields contained in the groups into the output syntax OS matching the syntax or substantially matching the syntax of the output database program operating the output database ODB), and
confirming whether applying transformation functions of the conversion rules to the plurality of input data results in corruption of the plurality of input data, based on the result of verifying whether the output data model and the formal conversion model share the same modelized data (Figs. 3 [0044]-[0058]: Therefore, pre-error checks performed when converting into the intermediate database or error checks performed subsequent to conversion into the intermediate database but before writing into the output database should typically deal with quite simple (obvious) errors; [0119]-[0121]: Automatic establishment of the conversion status may e.g. be established on the basis of error signals or reports fed back to the database program control logic subsequent to a failed conversion attempt. Such a flag would reveal or at least indicate the origin and error type to the programmer operating the editor).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the teaching of Naryzhnyy to incorporate the teachings of Madl to include certified software, and verifying a corresponding result of whether the output data model and the formal conversion model share the same modelized data during implementation of the method, and confirming whether applying transformation functions of the conversion rules to the input data results in corruption of the plurality of input data.
The motivation for doing so would be to comprehend low-level requirements as safety-critical software complexity increases, as recognized by Madl ([0001] of Madl: Complexity in modern safety-critical systems is growing at a rapid pace, doubling in size within the span of a decade. Model-based design is increasingly applied to manage this complexity by lifting the level of abstraction from low-level code to the analysis of algorithm designs… [0023]: Further, unlike syntax based checkers, the exemplary systems described herein are able to comprehend low-level requirements, as described in RTCA DO-178B, even as complexity increases) and to detect violations of predefined conversion rules, as recognized by Bonde ([0047]: When, as stated in claim 12, the editor comprises error detecting and error reporting means adapted to detect violations of predefined conversion rules incorporated in the editor, a further advantageous embodiment of the invention has been obtained).
Regarding Claim 2, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein the method further comprises verifying a conformity of the modelized input data to a plurality of first conformity rules based on a first data validation tool ([0070]: The components can include a validation step (e.g., check data against a set of validation rules, verify that data matches a particular criteria, etc.); [0079]: the validation module 215 can report any validation errors).
Regarding Claim 3, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein when the modelized input data are not inconformity with at least one first conformity rules, the method is stopped or the method further comprises returning the at least one first conformity rules and/or the modelized input data for which the at least one first conformity rules is not satisfied (Fig. 2; [0078]-[0079]: The validation rules engine 214 generates one or more validation rules… The validation module 215 can automatically modify the input data based on the validation of the input data to remove at least one validation error associated with the input data (e.g., convert a written number to a numerically number, convert a real number to an integer, determine input for NULL data, delete the row/column/data, etc.). In other examples, the validation module 215 can report any validation errors).
Regarding Claim 4, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein the method further comprises verifying a conformity of the modelized output data to a plurality of second conformity rules based on a fourth data validation tool, the method thereby providing that the modelized output data are in conformity with said second conformity rules (Fig. 2; [0078]-[0079]: The validation rules engine 214 generates one or more validation rules… The validation module 215 can automatically modify the input data based on the validation of the input data to remove at least one validation error associated with the input data (e.g., convert a written number to a numerically number, convert a real number to an integer, determine input for NULL data, delete the row/column/data, etc.). In other examples, the validation module 215 can report any validation errors).
Regarding Claim 5, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein when the modelized output data are not in conformity with at least one second conformity rules, the method further comprises returning the at least one second conformity rules and/or the modelized output data for which the at least one second conformity rules is not satisfied (Fig. 2; [0078]-[0079]: The validation rules engine 214 generates one or more validation rules… The validation module 215 can automatically modify the input data based on the validation of the input data to remove at least one validation error associated with the input data (e.g., convert a written number to a numerically number, convert a real number to an integer, determine input for NULL data, delete the row/column/data, etc.). In other examples, the validation module 215 can report any validation errors).
Regarding Claim 6, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein a data validation tool is a Satisfiability Modulo Theories (SMT) solver or a model-checker ([0070]: The components can include a validation step (e.g., check data against a set of validation rules, verify that data matches a particular criteria, etc.); [0078]: The one or more validation rules can include number checks (e.g., integer check, minimum number, maximum number, etc.), null checks, key multiplicity, primary key validation, row-level validation, length validation, and/or any other type of input validation; [0102]: The attribute-level validation rules 610c, 620c, and 630c check values of concrete attribute on a given entity; [0136]: In some examples, the validation rules can include one or more entities definition checking).
Regarding Claim 7, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 2.
Naryzhnyy further teaches wherein the input data model is defined in the first data validation tool ([0101]-[0102]: FIG. 2 can generate (e.g., determine, find, modify, etc.) the three validation rules… (e.g., rules defined by an administrator, rules utilized in a previous validation of the same knowledge domain, rules defined in the knowledge domain, etc.)… In some examples, the validation rules can be defined on every level of the KD (e.g., attribute, entity, entity-set, etc.)) and
providing the plurality of input data comprises loading the input data from the input database into the input data model of the first data validation tool (Fig. 4; [0092]-[0093]: FIG. 4 is a flow diagram 400 of an exemplary process for data transition. An external extraction module 420 extracts input data 428 from source data 410 (e.g., from external storage such as a text file, from a database… A validation module 430 validates the input data 428).
Regarding Claim 8, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein the output data model is defined in the third data validation tool ([0101]-[0102]: FIG. 2 can generate (e.g., determine, find, modify, etc.) the three validation rules… (e.g., rules defined by an administrator, rules utilized in a previous validation of the same knowledge domain, rules defined in the knowledge domain, etc.)… In some examples, the validation rules can be defined on every level of the KD (e.g., attribute, entity, entity-set, etc.)) and
providing the plurality of output data comprises loading the output data from the output database into the output data model of the third data validation tool (Fig. 4; [0093]-[0094]: A transformation module 440 transforms the validated data 438 to transformed data 448 based on the transformation rules 444… the predicates includes information about how to obtain data for an entity, information about how to check consistency, and information about how to load data into a destination database).
Regarding Claim 9, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein the conversion rules are implemented by execution of computer routines defined by mathematical descriptions corresponding to theoretical results of transformation functions ([0070]: The components can include a validation step (e.g., check data against a set of validation rules, verify that data matches a particular criteria, etc.), a transformation step (e.g., convert information from a first database structure to a second database structure, convert data into an intermediate database format, etc.); Fig. 2; [0085]: The processor 225 executes the operating system and/or any other computer executable instructions for the mediation transition system 210 (e.g., executes applications, transforms data, reconciles data, security functions, etc.)).
Regarding Claim 10, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 4.
Naryzhnyy further teaches wherein the plurality of second conformity rules comprises the plurality of first conformity rules and a plurality of output conformity rules linked to the output format ([Abstract]: The one or more reconciliation rules can be associated with a destination database and can enable reconciliation of the transformed data with the destination database; [0070]: The components can include a validation step (e.g., check data against a set of validation rules, verify that data matches a particular criteria, etc.); [0079]: the validation module 215 can report any validation errors).
Regarding Claim 11, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein the input data model, output data model and formal conversion model are declarative mathematical structures linking modelized data using relational algebra ([0116]-[0117]: FIG. 8A illustrates an exemplary structure 800a of rules for data transition; [0126]: The one or more combined transformation rules are associated with the combined first and second input data (e.g., logically combined, linked together, associated together, etc.). The transformation module 217 transforms (1260) the combined first and second input data based on the one or more combined transformation rules).
Regarding Claim 12, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein the plurality of equivalence properties comprises equality properties and/or inclusions properties between a sub-set of modelized converted data and a sub-set of modelized output data ([0022]-[0030]: In some examples, the method further includes merging the reconciled data with data stored on the destination database; [0105]: In some examples, a join condition is the equal condition of two source entities for joining into result; [0112]: the data definition 600b and/or one or more of the rules can utilize any type of protocol, language, and/or standard).
Regarding Claim 13, the combined teachings of Naryzhnyy, Madl, and Bonde disclose the method according to claim 1.
Naryzhnyy further teaches wherein when an equivalence property is not satisfied, the method further comprises returning a counter-example corresponding to a modelized data of at least one of the formal conversion model and output data model for which the equivalent property is not satisfied ([0070]: The components can include a validation step (e.g., check data against a set of validation rules, verify that data matches a particular criteria, etc.), a transformation step (e.g., convert information from a first database structure to a second database structure, convert data into an intermediate database format, etc.), and a reconciliation step (e.g., merge data to an existing destination database, merge data to a plurality of existing destination databases, overwrite data to an existing destination database, ignore data during the reconciliation to an existing destination database, append data to an existing destination database, etc.; [0112]: the data definition 600b and/or one or more of the rules can utilize any type of protocol, language, and/or standard).
Regarding Claim 14, the combined teachings of Naryzhnyy, Madl, and Bonde disclose a computer program product comprising instructions.
Naryzhnyy further teaches which, when the program is executed by a computer, cause the computer to carry out the method of claim 1 ([0151]: Method steps can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output).
Regarding Claim 15, the combined teachings of Naryzhnyy, Madl, and Bonde disclose a computer device.
Naryzhnyy further teaches, comprising a processing circuit to execute a program; and a non-transitory computer-readable storage medium to store the program which when executed by the processing circuit, enables the processing circuit to have access to (Fig. 3; [0087]: an input device 331; [0151]: Modules, subroutines, and software agents can refer to portions of the computer program, the processor, the special circuitry, software, and/or hardware that implements that functionality):
an input database ([0015]: In other examples, the method further includes extracting the input data from one or more source databases based on one or more extraction rules; Fig. 2; [0076]: The source extraction module 212 extracts input data (also referred to as source database (SDB)) from one or more source databases),
an output database ([0017]: In other examples, the extracting the input data from the one or more source databases and the reconciling the transformed data with the destination database occur relative to each other; Fig. 3; [0088]: The database interface module 322 communicates with the storage device 335),
an input data model ([0075]: The source extraction rule engine 211 generates one or more extraction rules based on the one or more predicates. The source extraction rule engine 211 can generate (e.g., determine, modify, create, define, etc.) the one or more extraction rules based on the one or more predicates, the unified configuration, and/or other stored information (e.g., data from another unified configuration, data from another knowledge domain, etc.). The one or more extraction rules can include information that identifies tables, columns, rows, lines, identifiers, and/or roles where the input data is stored [The extraction rules of the source extraction rule engine 211 corresponds to the input data model that is based on the input format, i.e. the tables, columns, rows etc. of the source database]),
a formal conversion model ([0070]: a transformation step (e.g., convert information from a first database structure to a second database structure); Fig. 2; [0080]: The transformation rules engine 216 generates one or more transformation rules based on the one or more predicates. The transformation rule engine 216 can generate (e.g., determine, modify, create, define, etc.) the one or more transformation rules based on the on the one or more predicates, the unified configuration, and/or other stored information [The transformation rules correspond to the formal conversion model that is based on the input data model, the extraction rules, and conversion rules), and
an output data model, wherein the processing circuit is adapted to implement the method according to claim 1 ([0077]: The unified configuration module 213 determines an unified configuration for knowledge domain. The unified configuration includes one or more predicates for one or more system objects (e.g., doctor identification includes licensed states, patient identification includes mailing address, etc.) and/or one or more relationships between the one or more system objects [The unified configuration of the configuration module 213 corresponds to the output data model that is based on the output format, i.e. predicates of the objects and the relationships between the objects]).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHIRLEY D. HICKS whose telephone number is (571)272-3304. The examiner can normally be reached Mon - Fri 7:30 - 4:00.
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, Charles Rones can be reached on (571) 272-4085. 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.
/S.D.H./Examiner, Art Unit 2168
/CHARLES RONES/Supervisory Patent Examiner, Art Unit 2168