An aspect of the present disclosure aims to reduce or eliminate the problems associated with processing quickly changing large sets of data. To that end, systems and methods are disclosed, enabling a semantic reasoner to identify and process incremental changes to a rules base rather than re-processing the entire rules base. Such incremental stream reasoning (i.e., only reasoning upon pushed object changes) provides an efficient and fast manner for reacting to quickly changing data.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method executed by a semantic reasoner in a system comprising, the method comprising steps of: constructing a dependency chain for a plurality of rules, the dependency chain identifying whether and how each rule of the plurality of rules depends on other rules of the plurality of rules; following machine reasoning over a first set of data objects over at least some rules of the plurality of rules, identifying a set of changed data objects as one or more data objects of a second set of data objects that include one or more changes with respect to the first set of data objects; using the dependency chain, identifying one or more rules of the plurality of rules that are affected by at least one data object of the set of changed objects; and using a reasoning engine to perform machine reasoning by re-processing the identified one or more rules. 2. The method according to claim 1, further comprising generating an output of machine reasoning over the second set of data objects by combining an output of the re-processing with at least a part of an output of the machine reasoning over the first set of data objects. 3. The method according to claim 1, wherein using the dependency chain to identify the one or more rules comprises: identifying a first set of rules comprising one or more rules of the plurality of rules having as an input at least one data object of the set of changed data objects, and based on the dependency chain, for each rule of the plurality of rules that is not identified in the first set of rules, determining whether an input of the rule depends on an output of at least one rule of the first set of rules, and, upon positive determination, adding the rule to a second set of rules, the second set of rules further comprising the one or more rules of the first set of rules. 4. The method according to claim 3, wherein using the reasoning engine to perform machine reasoning comprises using the reasoning engine to perform machine reasoning by re-processing one or more rules of the second set of rules with respect to an input that either comprises the at least one data object of the set of changed data objects or depends on the output of at least one rule of the first set of rules. 5. The method according to claim 4, further comprising generating an output of machine reasoning over the second set of data objects by combining an output of the re-processing with at least a part of an output of the machine reasoning over the first set of data objects. 6. The method according to claim 4, further comprising: based on the dependency chain, assigning each rule of the second set of rules to one epoch Ei of a sequence of N epochs E1-EN, N being an integer equal to or greater than 2, where each rule of one or more rules assigned to a first epoch E1 of the sequence does not depend on any rules of the second set of rules, and where each rule of one or more rules assigned to an epoch subsequent to the first epoch E1 depends on at least one rule of an epoch immediately preceding the epoch in the sequence of N epochs; wherein using the reasoning engine to perform machine reasoning comprises performing machine reasoning over the N epochs sequentially, and wherein, following performing machine reasoning over each epoch Ei of the sequence, the method further comprises determining whether there are one or more rules assigned to one or more epochs subsequent to the epoch Ei that no longer have an input that depends on an output of at least one rule of the first set of rules, and, upon positive determination, removing such rules from the N epochs. 7. The method according to claim 4, further comprising: based on the dependency chain, assigning each rule of the second set of rules that does not depend on any rules of the second set of rules to a first epoch (E1) of a sequence of N epochs E1-EN, N being an integer equal to or greater than 2, wherein using the reasoning engine to perform machine reasoning comprises: a) performing machine reasoning over the first epoch, b) following step a), determining whether there are one or more rules within the second set of rules that no longer have an input that depends on an output of at least one rule of the first set of rules, and, upon positive determination, removing such rules from the second set of rules; and c) following step b), assigning each rule of the second set of rules that depends on at least one rule of the first epoch to a second epoch of the sequence of N epochs. 8. The method according to claim 4, wherein using the reasoning engine to perform machine reasoning comprises: a) based on the dependency chain, assigning each rule of the second set of rules that does not depend on any rules of the second set of rules to a current epoch, b) performing machine reasoning over the current epoch, c) following step b), determining whether there are one or more rules within the second set of rules that no longer have an input that depends on an output of at least one rule of the first set of rules, and, upon positive determination, removing such rules from the second set of rules, d) following step b), removing one or more rules assigned to the current epoch from the second set of rules, and e) following steps c) and d), if there are any rules left to be processed, returning to step a) to begin processing upon a new epoch. 9. The method according to claim 4, further comprising: based on the dependency chain, assigning each rule of the second set of rules to one epoch Ei of a sequence of N epochs E1-EN, N being an integer equal to or greater than 2, where each rule of one or more rules assigned to a first epoch E1 of the sequence does not depend on any rules of the second set of rules, and where each rule of one or more rules assigned to an epoch subsequent to the first epoch E1 depends on at least one rule of an epoch immediately preceding the epoch in the sequence of N epochs; wherein using the reasoning engine to perform machine reasoning comprises performing machine reasoning over the N epochs sequentially, wherein performing machine reasoning over each epoch Ei, i being an integer equal to or greater than 1 and equal to or smaller than N, comprises steps of: (a) identifying one or more data objects referenced by all rules of the one or more rules assigned to the epoch Ei that have not reached a conclusion, (b) using one or more criteria to establish an order for acquiring one or more data objects of the data objects identified in step (a) that have not yet been acquired in the epoch Ei, wherein establishing the order comprises assigning each data object of the one or more data objects of the data objects identified in step (a) that have not yet been acquired in the epoch Ei to one group of an ordered set of one or more groups, (c) acquiring one or more data objects assigned to a group that is first in the ordered set of the one or more groups, (d) using a reasoning engine to perform machine reasoning over one or more data objects acquired in step (c), (e) following the machine reasoning of step (d), identifying which zero or more rules of the one or more rules assigned to the epoch Ei have not reached a conclusion, and (f) iterating steps (a)-(e) until all rules of the one or more rules assigned to the epoch Ei have reached a conclusion. 10. The method according to claim 4, further comprising: based on the dependency chain, assigning each rule of the second set of rules that does not depend on any rules of the second set of rules to a first epoch (E1) of a sequence of N epochs E1-EN, N being an integer equal to or greater than 2, wherein using the reasoning engine to perform machine reasoning comprises performing machine reasoning over the N epochs sequentially, wherein performing machine reasoning over each epoch Ei, i being an integer equal to or greater than 1 and equal to or smaller than N, comprises steps of: (a) identifying one or more data objects referenced by all rules of the one or more rules assigned to the epoch Ei that have not reached a conclusion, (b) using one or more criteria to establish an order for acquiring one or more data objects of the data objects identified in step (a) that have not yet been acquired, wherein establishing the order comprises assigning each data object of the one or more data objects of the data objects identified in step (a) that have not yet been acquired to one group of an ordered set of one or more groups, (c) acquiring one or more data objects assigned to a group that is first in the ordered set of the one or more groups, (d) using a reasoning engine to perform machine reasoning over one or more data objects acquired in step (c), (e) following the machine reasoning of step (d), identifying which zero or more rules of the one or more rules assigned to the epoch Ei have not reached a conclusion, (f) iterating steps (a)-(e) until all rules of the one or more rules assigned to the epoch Ei have reached a conclusion, and (g) once all rules of the one or more rules assigned to the epoch Ei have reached a conclusion and as long as there is at least one rule in the second set of rules that depends on at least one rule assigned to the epoch Ei, assigning each rule of the second set of rules that depends on at least one rule assigned to the epoch Ei to an epoch Ei+1 of the sequence of N epochs. 11. The method according to claim 4, wherein each rule of the second set rules comprises a rule for which at least one individual referencable by the rule has been modified, added, or removed, at least one individual referenced by the rule has been added or removed from zero or more classes included in the rule, or at least one property of at least one individual referenced by the rule has been changed. 12. One or more computer readable storage media encoded with software comprising computer executable instructions for a semantic reasoner in a system and, when the software is executed, operable to: construct a dependency chain for a plurality of rules, the dependency chain identifying whether and how each rule of the plurality of rules depends on other rules of the plurality of rules; following machine reasoning over a first set of data objects over at least some rules of the plurality of rules, identify a set of changed data objects as one or more data objects of a second set of data objects that include one or more changes with respect to the first set of data objects; using the dependency chain, identify one or more rules of the plurality of rules that are affected by at least one data object of the set of changed objects; and use a reasoning engine to perform machine reasoning by re-processing the identified one or more rules. 13. The one or more computer readable storage media according to claim 12, further operable to: generate an output of machine reasoning over the second set of data objects by combining an output of the re-processing with at least a part of an output of the machine reasoning over the first set of data objects. 14. The one or more computer readable storage media according to claim 12, wherein using the dependency chain to identify the one or more rules comprises: identifying a first set of rules comprising one or more rules of the plurality of rules having as an input at least one data object of the set of changed data objects, and based on the dependency chain, for each rule of the plurality of rules that is not identified in the first set of rules, determining whether an input of the rule depends on an output of at least one rule of the first set of rules, and, upon positive determination, adding the rule to a second set of rules, the second set of rules further comprising the one or more rules of the first set of rules. 15. The one or more computer readable storage media according to claim 14, wherein using the reasoning engine to perform machine reasoning comprises using the reasoning engine to perform machine reasoning by re-processing one or more rules of the second set of rules with respect to an input that either comprises the at least one data object of the set of changed data objects or depends on the output of at least one rule of the first set of rules. 16. A system for enabling semantic reasoning, the system comprising: at least one memory configured to store computer executable instructions, and at least one processor coupled to the at least one memory and configured, when executing the instructions, to: construct a dependency chain for a plurality of rules, the dependency chain identifying whether and how each rule of the plurality of rules depends on other rules of the plurality of rules; following machine reasoning over a first set of data objects over at least some rules of the plurality of rules, identify a set of changed data objects as one or more data objects of a second set of data objects that include one or more changes with respect to the first set of data objects; using the dependency chain, identify one or more rules of the plurality of rules that are affected by at least one data object of the set of changed objects; and use a reasoning engine to perform machine reasoning by re-processing the identified one or more rules. 17. The system according to claim 16, wherein the at least one processor is further configured to generate an output of machine reasoning over the second set of data objects by combining an output of the re-processing with at least a part of an output of the machine reasoning over the first set of data objects. 18. The system according to claim 16, wherein using the dependency chain to identify the one or more rules comprises: identifying a first set of rules comprising one or more rules of the plurality of rules having as an input at least one data object of the set of changed data objects, and based on the dependency chain, for each rule of the plurality of rules that is not identified in the first set of rules, determining whether an input of the rule depends on an output of at least one rule of the first set of rules, and, upon positive determination, adding the rule to a second set of rules, the second set of rules further comprising the one or more rules of the first set of rules. 19. The system according to claim 18, wherein using the reasoning engine to perform machine reasoning comprises using the reasoning engine to perform machine reasoning by re-processing one or more rules of the second set of rules with respect to an input that either comprises the at least one data object of the set of changed data objects or depends on the output of at least one rule of the first set of rules. 20. The system according to claim 18, wherein: the at least one processor is further configured to, based on the dependency chain, assign each rule of the second set of rules to one epoch Ei of a sequence of N epochs E1-EN, N being an integer equal to or greater than 2, where each rule of one or more rules assigned to a first epoch E1 of the sequence does not depend on any rules of the second set of rules and where each rule of one or more rules assigned to an epoch subsequent to the first epoch E1 depends on at least one rule of an epoch immediately preceding the epoch in the sequence of N epochs, using the reasoning engine to perform machine reasoning comprises performing machine reasoning over the N epochs sequentially, and the at least one processor is further configured to, following performing machine reasoning over each epoch Ei of the sequence, determine whether there are one or more rules assigned to one or more epochs subsequent to the epoch Ei that no longer have an input that depends on an output of at least one rule of the first set of rules, and, upon positive determination, remove such rules from the N epochs.