A computer implemented method executed by a semantic reasoner to provide parallel reasoning over heterogeneous streaming data by a plurality of semantic reasoning instances, with each reasoning instance corresponding to one knowledge base instance of a plurality of knowledge base instances, the semantic reasoner comprising a semantic mapper, a knowledge base, KB, and a reasoning engine, the method comprising: forming a stream window comprising a plurality of window panes, where each stream window comprises all of a plurality of individuals referenced by a plurality of related rules, wherein each individual refers to an instance of an Ontology Web Language, OWL, class defined in the ontology that specifies the semantic model of the knowledge base in question; identifying, from the plurality of rules, one or more pairs of chained rules; from the one or more pairs of chained rules, assigning rules chained together to a respective rule-set of P rule-sets; from the plurality of individuals referenced by the plurality of rules, assigning individuals referenced by each rule-set of the P rule-sets to an individual-set associated with the each rule-set, where the individual set is a window pane of the stream window and such that all individuals referenced by rules that belong to the same rule-set are part of the same window pane; mapping the rules from the each rule-set and the individuals from the individual-set associated with the each rule-set into a respective knowledge base instance associated with the each rule-set; identifying data corresponding to each rule-set; automatically mapping the data corresponding to the each rule-set to a KB instance associated with the each rule-set; feeding contents of each KB instance to a respective reasoning engine instance associated with the each KB instance; and performing machine reasoning over the data in each KB instance using the reasoning engine instance associated with the each KB instance; wherein performing machine reasoning comprises at least two reasoning engine instances performing machine reasoning in parallel; wherein the machine reasoning is performed by each reasoning engine instance according to the rule-set associated with the reasoning engine instance; wherein any pair of two reasoning instances does not correspond to a same KB instance. forming a stream window comprising a plurality of window panes, where each stream window comprises all of a plurality of individuals referenced by a plurality of related rules, wherein each individual refers to an instance of an Ontology Web Language, OWL, class defined in the ontology that specifies the semantic model of the knowledge base in question; identifying, from the plurality of rules, one or more pairs of chained rules; from the one or more pairs of chained rules, assigning rules chained together to a respective rule-set of P rule-sets; from the plurality of individuals referenced by the plurality of rules, assigning individuals referenced by each rule-set of the P rule-sets to an individual-set associated with the each rule-set, where the individual set is a window pane of the stream window and such that all individuals referenced by rules that belong to the same rule-set are part of the same window pane; mapping the rules from the each rule-set and the individuals from the individual-set associated with the each rule-set into a respective knowledge base instance associated with the each rule-set; identifying data corresponding to each rule-set; automatically mapping the data corresponding to the each rule-set to a KB instance associated with the each rule-set; feeding contents of each KB instance to a respective reasoning engine instance associated with the each KB instance; and performing machine reasoning over the data in each KB instance using the reasoning engine instance associated with the each KB instance; wherein performing machine reasoning comprises at least two reasoning engine instances performing machine reasoning in parallel; wherein the machine reasoning is performed by each reasoning engine instance according to the rule-set associated with the reasoning engine instance; wherein any pair of two reasoning instances does not correspond to a same KB instance.