IP Library Granted Patent US 11,068,468
Granted Patent B2
US 11,068,468 · App. 16/369,624 · Granted Jul 20, 2021

Extensible validation framework

Inventors: Bruno Macedo Pasini (New York, NY); Adam Balchunas (New York, NY); Jude Murphy (New York, NY)
Assignee: ADP, LLC
G06F16/2365G06F16/2379
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,068,468
App. No.
16/369,624
Filed
Mar 29, 2019
Granted
Jul 20, 2021
Kind
B2
Examiner
YEN, SYLING
Art Unit
2166
USPC
707/690
Abstract

A method, apparatus, and computer program product for validating a structured data object. A computer system identifies rules for validating interrelationships among data nodes. The data nodes are composable into structured data objects according to a domain specific language. The validation rules are topologically sorted according to dependency relationships declared therein. The computer system receives the structured data object, which consists of interrelated data nodes. The structured data object is traversed according to a traversal algorithm that tracks dependency relationships. Each data node is inserted into a queue according to the traversal algorithm. For each data node in the queue, a subset of the validation rules is identified. The subset is run within a context of the structured data object. Rule failure for the data node are recorded, and a failure report is generated that indicates failure results for each data node.

Claims (159)

1. A method for validating a structured data object, the method comprising:

identifying a set of validation rules for validating interrelationships among data nodes, wherein the data nodes are composable into structured data objects according to a domain specific language;

topologically sorting the set of validation rules according to dependency relationships declared in the set of validation rules;

receiving the structured data object, wherein the structured data object comprises a set of data nodes that are interrelated within the structured data object;

traversing the structured data object according to a traversal algorithm, wherein the traversal algorithm tracks dependency relationships among the set of data nodes;

inserting each data node of the set of data nodes into a queue according to the traversal algorithm;

for each data node in the queue:

identifying a subset of validation rules that should be run on the data node;

running the subset of validation rules within a context of the structured data object; and

responsive to identifying a rule failure by the data node, recording the rule failure for the data node; and

generating a failure report, wherein the failure report indicates failure results for each data node of the set of data nodes of the structured data object,

wherein identifying the subset of validation rules, running the subset of validation rules, and recording the rule failure are iteratively performed for each data node in the queue.

2. The method of claim 1 , wherein the structured data object comprises:

a base data object comprising a first set of data nodes; and

an override data object comprising a second set data nodes that override properties of the first set of data nodes, a context for the structured data object defined by the validation rules.

3. The method of claim 1 , wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object.

4. The method of claim 3 , wherein the set of structural rules comprises:

a first rule that validates an override indication for the structured data object;

a second rule that validates a unique identifier for the structured data object;

a third rule that validates schema generation for the structured data object; and

a fourth rule that validates a type definition indication for the structured data object.

5. The method for validating a structured data object of claim 1 , wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object.

6. The method of claim 2 , wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object.

7. A method for validating a structured data object, the method comprising:

identifying a set of validation rules for validating interrelationships among data nodes, wherein the data nodes are composable into structured data objects according to a domain specific language;

topologically sorting the set of validation rules according to dependency relationships declared in the set of validation rules;

receiving the structured data object, wherein the structured data object comprises a set of data nodes that are interrelated within the structured data object;

traversing the structured data object according to a traversal algorithm, wherein the traversal algorithm tracks dependency relationships among the set of data nodes;

inserting each data node of the set of data nodes into a queue according to the traversal algorithm;

for each data node in the queue:

identifying a subset of validation rules that should be run on the data node;

running the subset of validation rules within a context of the structured data object; and

responsive to identifying a rule failure by the data node, recording the rule failure for the data node; and

generating a failure report, wherein the failure report indicates failure results for each data node of the set of data nodes of the structured data object,

wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object,

wherein the set of behavioral rules comprises:

a first rule that validates contextual properties for the structured data object;

a second rule that validates a name of the structured data object;

a third rule that validates internal contents of the structured data object;

a fourth rule that validates object references within the structured data object;

a fifth rule that validates ownership of a particular metadata object by the structured data object;

a sixth rule that validates object types of nested metadata objects within the structured data object;

a seventh rule that validates picklist references within the structured data object;

an eighth rule that validates schema conformance of the structured data object;

a ninth rule that validates a scope expansion for the structured data object and an override data object;

a tenth rule that validates the scope narrowing for the structured data object; and

an eleventh rule that validates text properties for the structured data object.

8. A computer system for validating a structured data object, the computer system comprising:

a hardware processor; and

a validation engine in communication with the hardware processor, wherein the validation engine:

identifies a set of validation rules for validating interrelationships among data nodes, wherein the data nodes are composable into structured data objects according to a domain specific language;

topologically sorts the set of validation rules according to dependency relationships declared in the set of validation rules;

receives the structured data object, wherein the structured data object comprises a set of data nodes that are interrelated within the structured data object;

traverses the structured data object according to a traversal algorithm, wherein the traversal algorithm tracks dependency relationships among the set of data nodes;

inserts each data node of the set of data nodes into a queue according to the traversal algorithm;

for each data node in the queue:

identifies a subset of validation rules that should be run on the data node;

runs the subset of validation rules within a context of the structured data object; and

responsive to identifying a rule failure by the data node, records the rule failure for the data node; and

generates a failure report, wherein the failure report indicates failure results for each data node of the set of data nodes of the structured data object,

wherein identifies the subset of validation rules, runs the subset of validation rules, and records the rule failure are iteratively performed for each data node in the queue.

9. The computer system of claim 8 , wherein the structured data object comprises:

a base data object comprising a first set of data nodes; and

an override data object comprising a second set data nodes that override properties of the first set of data nodes, a context for the structured data object defined by the validation rules.

10. The computer system of claim 8 , wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object.

11. The computer system of claim 10 , wherein the set of structural rules comprises:

a first rule that validates an override indication for the structured data object;

a second rule that validates a unique identifier for the structured data object;

a third rule that validates schema generation for the structured data object; and

a fourth rule that validates a type definition indication for the structured data object.

12. The computer system for validating a structured data object of claim 8 , wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object.

13. The computer system of claim 7 , wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object.

14. A computer system for validating a structured data object, the computer system comprising:

a hardware processor; and

a validation engine in communication with the hardware processor, wherein the validation engine:

identifies a set of validation rules for validating interrelationships among data nodes, wherein the data nodes are composable into structured data objects according to a domain specific language;

topologically sorts the set of validation rules according to dependency relationships declared in the set of validation rules;

receives the structured data object, wherein the structured data object comprises a set of data nodes that are interrelated within the structured data object;

traverses the structured data object according to a traversal algorithm, wherein the traversal algorithm tracks dependency relationships among the set of data nodes;

inserts each data node of the set of data nodes into a queue according to the traversal algorithm;

for each data node in the queue:

identifies a subset of validation rules that should be run on the data node;

runs the subset of validation rules within a context of the structured data object; and

responsive to identifying a rule failure by the data node, records the rule failure for the data node; and

generates a failure report, wherein the failure report indicates failure results for each data node of the set of data nodes of the structured data object,

wherein identifying the subset of validation rules further comprises:

identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object and a set of behavioral rules for the structured data object,

wherein the set of behavioral rules comprises:

a first rule that validates contextual properties for the structured data object;

a second rule that validates a name of the structured data object;

a third rule that validates internal contents of the structured data object;

a fourth rule that validates object references within the structured data object;

a fifth rule that validates ownership of a particular metadata object by the structured data object;

a sixth rule that validates object types of nested metadata objects within the structured data object;

a seventh rule that validates picklist references within the structured data object;

an eighth rule that validates schema conformance of the structured data object;

a ninth rule that validates a scope expansion for the structured data object and an override data object;

a tenth rule that validates the scope narrowing for the structured data object; and

an eleventh rule that validates text properties for the structured data object.

15. A computer program product for validating a structured data object, the computer program product comprising:

a non-transitory computer readable storage media;

program code, stored on the computer readable storage media, for identifying a set of validation rules for validating interrelationships among data nodes, wherein the data nodes are composable into structured data objects according to a domain specific language;

program code, stored on the computer readable storage media, for topologically sorting the set of validation rules according to dependency relationships declared in the set of validation rules;

program code, stored on the computer readable storage media, for receiving the structured data object, wherein the structured data object comprises a set of data nodes that are interrelated within the structured data object;

program code, stored on the computer readable storage media, for traversing the structured data object according to a traversal algorithm, wherein the traversal algorithm tracks dependency relationships among the set of data nodes;

program code, stored on the computer readable storage media, for inserting each data node of the set of data nodes into a queue according to the traversal algorithm;

for each data node in the queue:

program code, stored on the computer readable storage media, for identifying a subset of validation rules that should be run on the data node;

program code, stored on the computer readable storage media, for running the subset of validation rules within a context of the structured data object; and

program code, stored on the computer readable storage media, for responsive to identifying a rule failure by the data node, recording the rule failure for the data node; and

program code, stored on the computer readable storage media, for generating a failure report, wherein the failure report indicates failure results for each data node of the set of data nodes of the structured data object,

wherein the program code for identifying the subset of validation rules, the program code for running the subset of validation rules, and the program code for recording the rule failure are iteratively performed for each data node in the queue.

16. The computer program product of claim 15 , wherein the structured data object comprises:

a base data object comprising a first set of data nodes; and

an override data object comprising a second set data nodes that override properties of the first set of data nodes, a context for the structured data object defined by the validation rules.

17. The computer program product of claim 15 , wherein the program code for identifying the subset of validation rules further comprises:

program code for identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object, and a set of behavioral rules for the structured data object.

18. The computer program product of claim 17 , wherein the set of structural rules comprises:

a first rule that validates an override indication for the structured data object;

a second rule that validates a unique identifier for the structured data object;

a third rule that validates schema generation for the structured data object; and

a fourth rule that validates a type definition indication for the structured data object.

19. The computer program product of claim 15 , wherein the program code for identifying the subset of validation rules further comprises:

program code for identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object, and a set of behavioral rules for the structured data object.

20. The computer program product of claim 16 , wherein the program code for identifying the subset of validation rules further comprises:

program code for identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object, and a set of behavioral rules for the structured data object.

21. A computer program product for validating a structured data object, the computer program product comprising:

a non-transitory computer readable storage media;

program code, stored on the computer readable storage media, for identifying a set of validation rules for validating interrelationships among data nodes, wherein the data nodes are composable into structured data objects according to a domain specific language;

program code, stored on the computer readable storage media, for topologically sorting the set of validation rules according to dependency relationships declared in the set of validation rules;

program code, stored on the computer readable storage media, for receiving the structured data object, wherein the structured data object comprises a set of data nodes that are interrelated within the structured data object;

program code, stored on the computer readable storage media, for traversing the structured data object according to a traversal algorithm, wherein the traversal algorithm tracks dependency relationships among the set of data nodes;

program code, stored on the computer readable storage media, for inserting each data node of the set of data nodes into a queue according to the traversal algorithm;

for each data node in the queue:

program code, stored on the computer readable storage media, for identifying a subset of validation rules that should be run on the data node;

program code, stored on the computer readable storage media, for running the subset of validation rules within a context of the structured data object; and

program code, stored on the computer readable storage media, for responsive to identifying a rule failure by the data node, recording the rule failure for the data node; and

program code, stored on the computer readable storage media, for generating a failure report, wherein the failure report indicates failure results for each data node of the set of data nodes of the structured data object,

wherein the program code for identifying the subset of validation rules further comprises:

program code for identifying the subset of validation rules from a set of validation rules, the set of validation rules comprising a set of structural rules for the structured data object, and a set of behavioral rules for the structured data object,

wherein the set of behavioral rules comprises:

a first rule that validates contextual properties for the structured data object;

a second rule that validates a name of the structured data object;

a third rule that validates internal contents of the structured data object;

a fourth rule that validates object references within the structured data object;

a fifth rule that validates ownership of a particular metadata object by the structured data object;

a sixth rule that validates object types of nested metadata objects within the structured data object;

a seventh rule that validates picklist references within the structured data object;

an eighth rule that validates schema conformance of the structured data object;

a ninth rule that validates a scope expansion for the structured data object and an override data object;

a tenth rule that validates the scope narrowing for the structured data object; and

an eleventh rule that validates text properties for the structured data object.

Assignments (2)
CHANGE OF NAME Recorded Feb 4, 2022
From: ADP, LLC
To: ADP, INC.
Reel/Frame 058959/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2019
From: PASINI, BRUNO MACEDO; BALCHUNAS, ADAM; MURPHY, JUDE
To: ADP, LLC
Reel/Frame 048740/0789 →
Cited By (2)
US 12,487,836 US 12,531,575