Abstract
Wireless sensor networks are application specific and necessitate the development of specific network and information processing architectures that can meet the requirements of the applications involved. A common type of application for wireless sensor networks is the event-driven reactive application, which requires reactive actions to be taken in response to events. In such applications, the interest is in the higher-level information described by complex event patterns, not in the raw sensory data of individual nodes. Although the central processing of information produces the most accurate results, it is not an energy-efficient method because it requires a continuous flow of raw sensor readings over the network. As communication operations are the most expensive in terms of energy usage, the distributed processing of information is indispensable for viable deployments of applications in wireless sensor networks. This method not only helps in reducing the total amount of packets transmitted in the network and the total energy consumed by the sensor nodes, but also produces scalable and fault-tolerant networks. For this purpose, we present two schemes that distribute information processing to appropriate nodes in the network. These schemes use reactive rules, which express relations between event patterns and actions, in order to capture reactive behavior. We also share the results of the performance of our algorithms and the simulations based on our approach that show the success of our methods in decreasing network traffic while still realizing the desired functionality.
Similar content being viewed by others
References
Ahn S, Kim D (2006) Proactive context-aware sensor networks. Lect Notes Comput Sci 3868/2006:38–53
Akyildiz IF, Weilian S, Sankarasubramaniam Y, Cayirci E (2002) A survey on sensor networks. IEEE Commun Mag 40(8):102–114
Apiletti D, Baralis E, Cerquitelli T (2011) Energy-saving models for wireless sensor networks. Knowl Inf Syst 28(3):615–644
Bonato P (2010) Advances in wearable technology and its medical applications. In: Proceedings of 32nd annual international conference of the IEEE engineering in medicine and biology society (EMBC), Buenos Aires, Argentina, September 2010
Braginsky D, Estrin D (2002) Rumor routing algorithm for sensor networks. In: Proceedings of the 1st ACM international workshop on wireless sensor networks and applications, Atlanta Georgia, USA, September 2002, pp 22–31
Carrano RC, Passos D, Magalhaes LCS, Albuquerque CVN (2014) Survey and taxonomy of duty cycling mechanisms in wireless sensor networks. IEEE Commun Surv Tutor 16(1):181–194
Castalia: a simulator for WSNs. http://castalia.forge.nicta.com.au/. Last Accessed on Feb 2016
Chong SK, Gaber MM, Krishnaswamy S, Loke SW (2011) Energy conservation in wireless sensor networks: a rule-based approach. Knowl Inf Syst 28(3):579–614
Eckert M (2008) Complex event processing with XChange\(^{EQ}\): language design, formal semantics, and incremental evaluation for querying events, Ph.D. Dissertation, October 2008
Fei X, Magill E (2012) REED: flexible rule based programming of wireless sensor networks at runtime. Comput Netw 56(14):3287–3299
Fragouli C, Widmer J, Boudec J-Y L (2006) A network coding approach to energy efficient broadcasting: from theory to practice. In: Proceedings of IEEE INFOCOM 2006, Barcelona, Spain, April 2006, pp 1–11
Gatziu S, Dittrich KR (1994) Detecting composite events in active databases using petri nets. In: Proceedings of the 4th international workshop on research issues in data engineering: active database systems, pp 2–9, February 1994
Hande A, Polk T, Walker W, Bhatia D (2006) Self-powered wireless sensor networks for remote patient monitoring in hospitals. Sensors 6 9:1102–1117
Hanson MA, Powell HC, Barth AT, Ringgenberg K, Calhoun BH, Aylor JH, Lach J (2009) Body area sensor networks: challenges and opportunities. Computer 42(1):58–65
Hung C-C, Peng W-C (2011) Optimizing in-network aggregate queries in wireless sensor networks for energy saving. Data Knowl Eng 70(7):617–641
Intanagonwiwat C, Govindan R, Estrin D (2000) Directed diffusion: a scalable and robust communication paradigm. In: Proceedings of the 6th annual international conference on mobile computing and networking, Boston MA, USA, August 2000, pp 56–67
Jiao B, Son S, Stankovic J (2005) GEM: generic event service middleware for wireless sensor networks. In: Proceedings of the 2nd international workshop on networked sensing systems (INSS), San Diego, CA, USA, June 2005
Khan AM, Lee Y-K, Lee SY, Kim T-S (2010) A triaxial accelerometer-based physical-activity recognition via augmented-signal features and a hierarchical recognizer. IEEE Trans Inf Technol Biomed 14(5):1166–1172
Kotidis Y (2005) Snapshot queries: towards data-centric sensor networks. In: Proceedings of the 21st international conference on data engineering, Tokyo, Japan, April 2005, pp 131–142
Lai Y, Zeng W, Lin Z, Li G (2010) LAMF: framework for complex event processing in wireless sensor network. In: Proceedings of the 2nd international conference on information science and engineering, Hangzhou, China, December 2010, pp 2155–2158
Lara R, Benitez D, Caamano A, Zennar M, Rojo-Alvarez JL (2015) On real-time performance evaluation of volcano-monitoring systems with wireless sensor networks. IEEE Sens J 15(6):3514–3523
Li M, Liu Y (2009) Underground coal mine monitoring with wireless sensor networks. ACM Trans Sens Netw 5(2):1–29
Liu X, Cao J, Tang S, Guo P (2015) Fault tolerant complex event detection in WSNs: a case study in structural health monitoring. IEEE Trans Mob Comput 14(12):2502–2515
Lloret J, Garcia M, Bri D, Sendra S (2009) A wireless sensor network deployment for rural and forest fire detection and verification. Sens 9 9(11):8722–8747
Lu G, Sadagopan N, Krishnamachari B, Goel A (2005) Delay efficient sleep scheduling in wireless sensor networks. In: Proceedings of IEEE INFOCOM 2005. 24th annual joint conference of the IEEE computer and communications societies, vol 4, Miami, FL, USA, March 2005, pp 2470–2481
Luo H, Ye F, Cheng J, Lu S, Zhang L (2005) TTDD: two-tier data dissemination in large-scale wireless sensor networks. Wirel Netw J 11(1–2):161–175
Ma J, Lou W, Wu Y, Li X-Y, Chen G (2009) Energy efficient TDMA sleep scheduling in wireless sensor networks. In: Proceedings of IEEE INFOCOM 2009, Rio de Jenairo, Brazil, April 2009, pp 630–638
Madden SR, Franklin MJ, Hellerstein JM, Hong W (2005) TinyDB: an acquisitional query processing system for sensor networks. ACM Trans Database Syst 30(1):122–173
Manjeshwar A, Agrawal DP (2000) TEEN: a routing protocol for enhanced efficiency in wireless sensor networks. In: Proceedings of 15th international parallel and distributed processing symposium, San Francisco, CA, USA, April 2000, pp 2009–2015
Marcelloni F, Vecchio M (2008) A simple algorithm for data compression in wireless sensor networks. IEEE Commun Lett 12(6):411–413
Perianu MM, Havinga P (2007) D-FLER: distributed fuzzy logic engine for rule-based wireless sensor networks. Ubiquitous Comput Syst 4836(2007):86–101
Pietzuch PR, Shand B, Bacon J (2004) Composite event detection as a generic middleware extension. In: IEEE network magazine, special issue on middleware technologies for future communication networks, Jan/Feb 2004
Pottie GJ, Kaiser WJ (2000) Wireless integrated network sensors. Commun ACM 43(5):51–58
Shnayder V, Hempstead M, Chen BR, Allen GW, Welsh M (2004) Simulating the power consumption of large-scale sensor network applications. In: Proceedings of the 2nd international conference on embedded networked sensor systems, Baltimore, MD, USA, November 2004, pp 188–200
Szewczyk R, Mainwaring A, Polastre J, Anderson J, Culler D (2004) An analysis of a large scale habitat monitoring application. In: Proceedings of the 2nd international conference on embedded networked sensor systems, Baltimore, MD, USA, November 2004, pp 214–226
Villas LA, Boukerche A, Ramos HS, de Oliveira HABF, de Araujo RB, Loureiro AAF (2013) DRINA: a lightweight and reliable routing approach for in-network aggregation in wireless sensor networks. IEEE Trans Comput 62(4):676–689
Xu Y, Heidemann J, Estrin D (2001) Geography-informed energy conservation for Ad Hoc routing. In: Proceedings of the 7th annual international conference on mobile computing and networking, Rome, Italy, July 2001, pp 70–84
Yao Y, Gehrke J (2002) The cougar approach to in-network query processing in sensor networks. ACM SIGMOD 31(3):9–18
Zoumboulakis M, Roussos G, Poulovassilis A (2004) Active rules for sensor databases. In: Proceedings of the first workshop on data management for sensor networks (DMSN’04), Toronto, Canada, September 2004
Acknowledgments
This work is supported in part by a research Grant from TUBITAK with Grant No. 114R082.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: Proof of RBDA
Before we proceed with the proof of the algorithm, let’s give the common facts, terms and notations used in this subsection.
By a single operation of the algorithm, a rule is decomposed into sub-rules, which are then to be processed by two different types of nodes. The node whose input set is used to determine P, Q, \(Q^\prime \) and R is referred to as the first node and the other as the second node. The antecedent of the original rule might contain P, \((Q_i\;|\;Q_i^\prime )\), R or any combination of them. There are three cases that this could possibly fit:
-
There is no \((Q\;|\;Q^\prime )\) in the rule.
-
Case 1 There is either P or R. If there is P, r : P is placed in the first node’s rule-base, and if R, r : R is placed the second node’s rule-base.
-
Case 2 There are both P and R. A single pair of rules is generated: \(r_1: P\), which is placed in the first node’s rule-base, and \( r_2: r_1 \; \& \; R\), which is placed in the second node’s rule-base.
-
-
Case 3 There are \((Q\;|\;Q^\prime )\) and possibly P and/or R. If there are n conjuncts in the form of \((Q\;|\;Q^\prime )\), there can be \(n+1\) cases that we need to consider: 0 to n Qs being detected by the first node. For each of n + 1 cases, there are C(n, i) different combinations of Qs where \(0 \le i \le n\). Therefore, there can be a total of \(\sum _{i=0}^n C(n,i)\) = \(2^n\) different cases that can be encountered during run-time processing. The rule-decomposition algorithm exhaustively generates a distinct pair of rules for every possible case. Let q be the set \(\{Q_1, Q_2, \ldots , Q_n\}\), \(q^\prime \) be the set \(\{Q_1^\prime , Q_2^\prime , \ldots , Q_n^\prime \}\), s be any subset of q and \(s^\prime \) be the subset of \(q^\prime \) such that \((Q_i^\prime \in s^\prime ) \Leftrightarrow (Q_i \notin s)\). The antecedents of a pair of rules \(r_1\) and \(r_2\) generated by the rule-decomposition algorithm are as follows (coe(x) means conjunction of elements of x):
-
\( r_1: \; \left( P \; \& \; {<} coe(s) {>} \right) \), which is placed in the first node’s rule-base and
-
\( r_2:\; \left( {<}output\;of\;r_1{>} \; \& \; {<} coe(s^\prime ) {>} \; \& \; R \right) \), which is placed in the second node’s rule-base.
If, however, there is no R and the case considered is for n Qs, only a single rule is added into the first node’s rule-base: \( r: \; \left( P \; \& \; {<} conjunction\; of \;elements\; of\; q {>} \right) \). For any pair of \(r_1\) and \(r_2\), the union of the conjuncts of \(r_1\) and \(r_2\) covers all the conjuncts of the original rule, since s together with \(s^\prime \) cover all conjuncts that are in the form \((Q\;|\;Q^\prime )\) of the original rule.
-
Lemma 1
An event pattern captured by a rule is also captured by the sub-rules, which are decomposed from that rule.
Proof
We need to prove that if original rule satisfies, r or \(r_2\) also satisfies. Consider the three cases one by one:
-
1.
P or R As the original rule and the rule placed in the sub-rule-base are the same, the same events are detected.
-
2.
P and R Satisfaction of the original rule means that P and R evaluate to true. If P satisfies, \(r_1\) also satisfies. Similarly, the satisfaction of \(r_1\) and R results in the satisfaction of \(r_2\). Therefore, if the original rule satisfies, sub-rules \(r_1\) and \(r_2\) also satisfy.
-
3.
Existence of \((Q \;|\;Q^\prime )\) Satisfaction of the original rule implies that P, R and each \((Q\;|\;Q^\prime )\) evaluate to true. Since an exhaustive list of possible cases enumerated by sub-rules, at least one rule pair out of \(2^n\) pairs will catch the event pattern detected by the original rule. \(\square \)
Lemma 2
An event pattern that cannot be captured by a rule cannot be captured by the sub-rules generated as a result of the decomposition of that rule.
Proof
We need to prove that if the original rule does not satisfy, neither does r or \(r_2\). Consider the three cases one by one:
-
1.
P or R As the original rule and the rule placed in the sub-rule-base are the same, the same event pattern should yield the same result.
-
2.
P and R If the original rule does not satisfy, either P or R should yield a false evaluation. If P were false, \(r_1\) and, as a result, \(r_2\) would not satisfy. If R were false, \(r_2\) would not satisfy. Therefore, if the original rule does not satisfy, neither does sub-rule \(r_2\).
-
3.
Existence of \((Q \;|\;Q^\prime )\) If the original rule does not satisfy, there must be at least one conjunct that evaluates to false. Since the conjuncts of the original rule are covered by all pairs of sub-rules, each pair of sub-rules should have at least one conjunct that does not satisfy, which means that if the original rule does not satisfy, sub-rules do not satisfy either. The same reasoning applies to the case in which there is only r, which covers all conjuncts of the original rule.
Theorem 1
For a two-layer hierarchy, sub-rules that are decomposed from a rule capture exactly the same events as the original rule.
Proof
In order for this to be true, the following conditions should hold:
-
an event pattern should be captured by sub-rules if and only if it could be captured by the original rule,
-
an event pattern should not be captured by sub-rules if and only if it could not be captured by the original rule.
Let A(e) be a proposition expressing an event pattern e detected by the original rule, B(e) be a proposition expressing e detected by the sub-rules of that rule, \(A^\prime (e)\) be the proposition expressing e not detected by the original rule, and \(B^\prime (e)\) be the proposition expressing e not detected by the sub-rules. We need to prove that \((A(e) \Leftrightarrow B(e))\) and \((A^\prime (e) \Leftrightarrow B^\prime (e))\). In order to prove \((A(e) \Leftrightarrow B(e))\), we need to show \((A(e) \Rightarrow B(e))\) and \((B(e) \Rightarrow A(e))\). Similarly, in order to prove \((A^\prime (e) \Leftrightarrow B^\prime (e))\), we need to show \((A^\prime (e) \Rightarrow B^\prime (e))\) and \((B^\prime (e) \Rightarrow A^\prime (e))\). However, we know from propositional logic that \((A(e) \Rightarrow B(e)) \vdash (B^\prime (e) \Rightarrow A^\prime (e))\) and \((A^\prime (e) \Rightarrow B^\prime (e)) \vdash (B(e) \Rightarrow A(e))\). Therefore, it is enough to show that \((A(e) \Rightarrow B(e))\) and \((A^\prime (e) \Rightarrow B^\prime (e))\). The proofs for these are given in Lemmas 1 and 2. \(\square \)
Theorem 2
For a k-layer hierarchy, sub-rules that are decomposed from a rule capture exactly the same events as the original rule.
Proof
(Proof by Induction) A single operation of the decomposition algorithm generates two sub-rule-bases: a new rule-base for the node whose input set is used by the algorithm, and a modified original rule-base (MORB).
-
Initial Step For two-layer hierarchy, a single running of the algorithm generates two sub-rule-bases. The sub-rules of a decomposed rule capture exactly the same events as the original rule, as proved by Theorem 1.
-
Inductive Step For a k-layer hierarchy, the decomposition algorithm should be run \((k-1)\) times. We have to prove that for an arbitrary \(k \ge 3\), if the theorem holds for \((k-1)\) sub-rule-bases, it also holds for k sub-rule-bases. Let’s assume that the algorithm is run \((k-2)\) times, which generates \((k-1)\) rule-bases, and the events detected by the original rule are exactly the same as the events detected by sub-rules distributed into \((k-1)\) rule-bases. In order to generate the final rule-bases for \((k-1)\)th and kth layers, the decomposition algorithm should be run once more, taking the following inputs: the input set of the \((k-1)\)th layer and the MORB, generated from the \((k-2)\)th iteration of the algorithm. Theorem 1 proves that sub-rules that are decomposed from a rule in MORB and placed in the newly generated rule-bases capture exactly the same event patterns as the event patterns detected by that decomposed rule. Based on this, we can conclude that sub-rules of an initial rule placed in k rule-bases capture exactly the same events as that rule does, since the event patterns captured by the rules of first \((k-2)\) together with the patterns captured by MORB constitute the event pattern of the initial rule. \(\square \)
Appendix 2: Proof of v-RBDA
By a single operation of the algorithm, a rule is decomposed into sub-rules to be processed by two different types of nodes. Let’s refer to the rule-base of the node where the input set is used to determine P, Q, \(Q^\prime \) and R as the first rule-base and the other one as the second rule-base.
The antecedent of the original rule might contain P, a KTV/PMV pair, \((Q_i\;|\;Q_i^\prime )\), R or any combination of these. It might contain no or two variables in its antecedent: a KTV (corresponding to the elements of q) and a PMV (corresponding to the elements of \(q^\prime \)). They are related such that if the consequent of a rule does not contain a variable (i.e., it is a decision rule) and the non-variable conjuncts have been satisfied, the following condition must hold in order for the rule to fire: \(\forall i, (\mathrm{KTV}[i] \;|\; \mathrm{PMV}[i]) \rightarrow \mathrm{true}\).
There are four cases that the original rule could possibly be in:
-
There are neither variables nor \((Q\;|\;Q^\prime )\) in the rule.
-
Case 1 There is either P or R. If there is P, r : P is placed in the first rule-base and if R, r : R is placed the second rule-base.
-
Case 2 There are both P and R. A single pair of rules is generated: \(r_1: P\), which is placed in the first rule-base, and \( r_2: r_1 \; \& \; R\), which is placed in the second rule-base.
-
-
Case 3 There are \((Q\;|\;Q^\prime )\) and possibly P and/or R in the rule, but no variables. Let \(\vartheta \) and \(\mu \) correspond to the elements of q, and \(\omega \) corresponds to the elements of \(q^\prime \). A pair of rules, \(r_1\), for the first rule-base, and \(r_2\), for the second rule-base, are as follows: \( r_1: \left( [P \; \& ]\; \vartheta \right) \rightarrow \mu \), \( r_2: \left( \mu \; \& \; \omega \;[ \& \; R] \right) \rightarrow O\). If there is no R, an additional rule is added into the first rule-base: \( r: \left( [P \; \& ] {<} conj\_of\_elements\_of\_q {>}\right) \rightarrow O\). Actually, \(r_1\) and \(r_2\) could detect the same event patterns as r, but its sole purpose is to enable the first node to react to events.
-
Case 4 There is a KTV/PMV pair and possibly \((Q\;|\;Q^\prime )\) and/or P and/or R in the rule. Let KTV be \(\mu \) and PMV be \(\theta \) for the original rule, \(\vartheta \) and \(\tau \) correspond to the elements of q and processable entries of \(\theta \), and \(\omega \) correspond to the elements of \(q^\prime \) and the non-processable elements of \(\theta \). The antecedents of a pair of rules \(r_1\) and \(r_2\) generated by the rule-decomposition algorithm are as follows: \( r_1: \left( [P \; \& ]\; \mu \; \& \; \vartheta \right) \rightarrow \tau \), \( r_2: \left( \tau \; \& \; \omega \;[ \& \; R] \right) \rightarrow O\). If there is no R, an additional rule is added into the first rule-base: \( r: \left( [P \; \& ]\; \mu \; \& \; \vartheta \;[ \& {<} conj\_of\_elements\_of\_q {>}] \right) \rightarrow O\). It is used for enabling the first node to react to events.
An event pattern detected by the original rule is also detected by sub-rules if \(r_2\) or r fires. Because an event pattern that is detected by r is also detected by \(r_1\), we will omit discussing it in the rest of the proof. Furthermore, as the proofs for cases 1 and 2 are similar to the ones given in Sect. 3, here we discuss only cases 3 and 4.
Lemma 3
An event pattern captured by the original rule is also captured by sub-rules, which are decomposed from that rule.
Proof
Let E(Pr) represent the result of the evaluation of Pr. The firing of the original rule means that all conjuncts satisfy; in other words, E(P), E(R), \(\forall i\; E(Q_i\;|\;Q_i^\prime )\) and \(\forall i\; E(\mu [i]\;|\;\theta [i])\) (only for case 4) are true.
Case 3 As E(P) is true, \(r_1\) fires with \(\mu [i]\) set to true if \(E(Q_i)\) is true, or else it is set to false. Since all \((Q_i\;|\;Q_i^\prime )\) evaluate to true, if \(\mu [i]\) \(( {=}E(Q_i))\) is not true, \(\omega [i]\; ({=}E(Q^\prime _i))\) needs to satisfy. As a result, the condition that “\(\forall i, \; (\mathrm{KTV}[i] \;|\; \mathrm{PMV}[i]) \rightarrow \mathrm{true}\)” holds and because E(R) is true, \(r_2\) satisfies.
Case 4 Let there be x conjuncts in the form of \((Q\;|\;Q^\prime )\) and the number of entries of \(\mu \) be y. The first y elements of \(\vartheta \) contain the disjunctions of the processable predicates of \(\theta \) and the remaining x elements correspond to \(Q_i\). Similarly, the first y elements of \(\omega \) contain the disjunctions of the non-processable predicates of \(\theta \) and the remaining x elements correspond to \(Q_i^\prime \). \(\tau \) contain the results of the evaluations of the elements of \(\vartheta \). As E(P) is true, \(r_1\) fires, with \(\tau [i]\) is set to true if \(\mu [i]\) is true or \(\vartheta [i]\) satisfies, or else it is set to false. As all \((Q_i\;|\;Q_i^\prime )\) evaluate to true, the disjunction of \(\tau [i]\) and \(\omega [i]\), where \((y+1) \le i \le (y+x)\), needs to produce true as well. Since \(\theta [i] = \vartheta [i] \;|\; \omega [i]\) for \(1 \le i \le x\), what is captured by \(\theta \) in the original rule will also be captured by the \(\tau \) and \(\omega \) variable pair. As a result, the condition that “\(\forall i, \; (\mathrm{KTV}[i] \;|\; \mathrm{PMV}[i]) \rightarrow true\)” holds and because E(R) is true, \(r_2\) satisfies. \(\square \)
Lemma 4
An event pattern not captured by the original rule is not captured by the sub-rules, which are decomposed from that rule, either.
Proof
If the original rule does not satisfy, at least one of P, R, \((Q_i\;|\;Q_i^\prime )\) or \(\theta [i]\) (only for case 4) should fail to satisfy. If E(P) is false, \(r_1\) and in turn, \(r_2\) do not fire for cases 3 and 4. Similarly, if E(R) is false, \(r_2\) fails to satisfy. If E(P) and E(R) are true:
-
Case 3 As the original rule fails to fire, the following condition should hold: \(\exists i, \; E(Q_i \;|\; Q_i^\prime ) \rightarrow \mathrm{false}\). In such a case, although \(r_1\) fires, \(r_2\) fails to fire since the condition that “\(\forall i \; (\mathrm{KTV}[i] \;|\; \mathrm{PMV}[i])\) is true” does not satisfy.
-
Case 4 If there exists at least one i for which \(E(Q_i\;|\;Q_i^\prime )\) is false, \(r_2\) does not fire for the reason explained for case 3. Otherwise, the following condition must be true: \(\exists i, (\mu [i] \;|\; \theta [i]) \rightarrow false\). Since \(\theta [i] = \vartheta [i] \;|\; \omega [i]\), what is captured by \(\theta \) in the original rule will also be captured by the \(\tau \) and \(\omega \) variable pair in \(r_2\). As a result, the condition that ”\(\forall i, \; (\mathrm{KTV}[i] \;|\; \mathrm{PMV}[i]) \rightarrow \mathrm{true}\)” would fail and therefore \(r_2\) fails to satisfy.
As we can see, it is not possible to fire \(r_2\) if the original rule fails to fire. \(\square \)
Theorem 3
For a two-layer hierarchy, sub-rules that are decomposed from a rule capture exactly the same events as the original rule.
Proof
In order for this to be true, the following conditions should hold:
-
an event pattern should be captured by sub-rules if and only if it could be captured by the original rule,
-
an event pattern should not be captured by sub-rules if and only if it could not be captured by the original rule.
The proofs given for Lemmas 3 and 4 demonstrate that these conditions hold true.
Theorem 4
For a k-layer hierarchy, sub-rules that are decomposed from a rule capture exactly the same events as the original rule.
Proof
The proof is similar to the proof of Theorem 2. \(\square \)
Rights and permissions
About this article
Cite this article
Sanli, O., Korpeoglu, I. & Yazici, A. Rule-based inference and decomposition for distributed in-network processing in wireless sensor networks. Knowl Inf Syst 50, 231–264 (2017). https://doi.org/10.1007/s10115-016-0942-z
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10115-016-0942-z