person using MF measurements fused with inertial sensor measurements. Our novelty ... The remainder of this paper is organised as follows: Section II reviews ...
A Fast Path Matching Algorithm for Indoor Positioning Systems Using Magnetic Field Measurements Zixiang Ma, Stefan Poslad, Shaoxiong Hu, and Xiaoshuai Zhang School of Electronic Engineering and Computer Science, Queen Mary University of London (QMUL), UK Email: {zixiang.ma, stefan.poslad, shaoxiong.hu, xiaoshuai.zhang}@qmul.ac.uk Abstract—The use of magnetic field (MF) measurements, unlike typical Wi-Fi or Bluetooth positioning measurements, are unaffected by moving humans, providing more time-invariant location information. We present a novel Fast Path Matching algorithm for MF and Inertial sensor measurements, FPM-MI, to localise a person using MF measurements fused with inertial sensor measurements. Our novelty is twofold: it has a reduced computational cost compared to a particle filter algorithm; it has a fast convergence performance, i.e., a person can walk a much shorter distance, about 3 m, to have an arm-span location accuracy. We validated our system in a library, a retail-like building, with multiple metal shelves and pillars, and determined the positioning error to be 1.8 m (90% confidence). Keywords—Magnetic Field; Indoor Positioning System; Indoor Navigation; Location-based Services;
I.
INTRODUCTION
People spend more time indoors than previously, in more complex, unfamiliar, indoor spaces that become difficult to navigate. This creates a need for accurate Indoor Positioning Systems (IPS). A useful measure of the IPS accuracy needed is an average human arm span of about 1.8 m [1], enabling us to locate something within reach. The most widely used IPSs are WLAN or WPAN (Wireless Local or Personal Area Network) in scope, using Radio Frequency (RF) based transceivers found in smart-phones. They typically use Wi-Fi or Bluetooth [2], rather than using more dedicated RF transceiver devices such as ZigBee, RFID (Radiofrequency identification), and UWB (Ultra-Wide Band), as the latter types of transceiver devices are less accessible, inclusive and have a higher cost. Techniques that use Bluetooth or Wi-Fi tend not to use just a radio model of path-loss or time of flight to derive accurate locations, as these are strongly affected by RF interference at these frequencies. Instead, the use of such a predictive model tends to be supplemented by a so-called radio-map or fingerprint method of actual measurements at known locations, to correlate current unknown locations to gain an increased accuracy. However, even this supplemented method for an IPS is problematic as RF transmissions at low GHz 978-1-5386-3531-5/17/$31.00 ©2017 IEEE
frequencies are severely affected by the attenuation due to the changing orientation, and number of moving humans, and other static solid objects such as metal furniture between RF receivers and transmitters. Further, such RF methods depend on a deployed infrastructure of a fixed topology of RF transmitters, whose RF coverage may be variable, creating black spots where there are only weak or no RF signals, thus limiting the location accuracy. Hence, these methods still have an average accuracy beyond an arm span. Accordingly, a more RF invariant technique is needed to achieve a more accurate IPS. One promising solution to this is to use MF, combined with inertial sensor measurements, which are barely influenced by humans and furniture [1]. Its other benefits are that no infrastructure needs to be pre-deployed and position measurements can be determined using a smartphone. Previous work [3], [4], [5] has explored using MF measurements combined with inertial sensor measurements as observations for Particle Filters (PF), algorithms [6] to improve the estimation of the user movement, providing a 1.1-2.0 m positioning accuracy. However, existing PF algorithms have several disadvantages: they are computationally expensive; are less suitable for use in non-networked, low resource devices and for near real-time location-based decisionmaking; measurements need to be linked to the actual ground truth location, and this needs to be trained, increasing the computational complexity; the location determination accuracy of the first several human steps is not accurate as PF algorithms need time to converge, typically about 16 steps or about 9 m [4]. The remainder of this paper is organised as follows: Section II reviews related work. Section III and IV introduce FPM-MI algorithm and describe the design and implementation of our field experiments. Section V concludes with a summary of results and future work. II.
RELATED WORK
Research and development of an easy-to-deploy, high-accurate, and low-cost IPS is challenging. Wi-Fi is the most common smartphone-based indoor positioning methods, as Wi-Fi routers are already deployed in most places such as education campuses, businesses,
communities, and public facilities [2]. However, the accuracy of general Wi-Fi-based positioning methods is not high enough to offer high-quality Location-based Services (LBS) [7]. This can be compounded by coverage from insufficient Wireless Access Points (WAPs) [8]. iBeacon devices have been used as another type of WAP for IPS, which could solve the insufficient Wi-Fi WAP issue [9]. However, this requires multiple beacons, which need to be deployed and maintained. This is also susceptible to RF interference just like WiFi, which reduces its position determination accuracy. Time of Arrival (TOA), or Angle of Arrival (AOA) based IPS [10], could also be used. However, these systems are not supported by smartphones. Instead, dedicated radio receivers are needed. Moreover, such systems are also susceptible to multipath effects, especially in complex indoor spaces. Unlike RF-based methods, MF based methods are not influenced by multipath effects and use sensors integrated into a typical smartphone. Chung [3] used Nearest Neighbour (NN) for localisation by matching data collected from a wearable badge which consists of four magnetometers. This method does not need to use Pedestrian Dead Reckoning (PDR) to estimate the walking distance and direction. However, significant MF measurements need to be collected, and it uses four MF sensors. Song et al. [4] proposed an IPS using PF algorithm, which demonstrates that this is a feasible scheme for indoor positioning. Kim et al. [5] proposed an improved PF algorithm to reduce the computational cost by using fewer particles with similar intensities of terrestrial magnetism rather than multiple particles. However, the location determination accuracy of the first several steps is not accurate. Barsocchi et al. [11] presented a multisource and multi-variate data set consisting of multiplesensor data. e.g. signal strength from Wi-Fi, PDR, and MF data, which can be fused to enable a more accurate positioning information. III.
METHODOLOGY
We first describe a baseline system for comparison that we implemented then we describe our system. Our IPS consists of two phases: an offline training phase and an online positioning phase. When the smartphone collects the MF signatures and measurements from its inertial sensors, it compares these against a stored MF fingerprint map. A. Implemented system based on Particle Filters PF also called Monte Carlo Localization (MCL) can be applied to indoor navigation using MF measurements. This technique was first introduced by [6] and then utilised in target-tracking [12]. The central idea of MCL is to use Bayesian rules by sampling methods to represent the posterior distribution of moving targets [13]. When a target moves, importance re-sampling is used to approximate the posterior distribution [12]. Since MCL is based on sample representation, MCL can thus be applied to a multi-distribution model.
Therefore, it can help us to better determine the track of a moving target. Many algorithms for sensing steps have been developed, e.g., [14], which need to be implemented in smartphones, but more recently this is supported by the phone OS itself as a virtual sensor. Hence, we use this1. PF algorithm (Baseline) Algorithm 1: Initialization: Particles 𝑥0𝑖 with uniform 𝜔0𝑖 = 1𝑡 for each step 𝑛 = 1, 2, 3 … ∶ for 𝑖 = 0 𝑡𝑜 𝑙𝑒𝑛𝑔𝑡ℎ(𝑝𝑎𝑟𝑡𝑖𝑐𝑙𝑒𝑠) − 1: Measurement: Measure magnetic signature 𝑆𝑛 = ‖𝑀𝑛 ‖ //Data collected from 3-axis magnetometer Prediction: 𝑖 𝑥𝑛𝑖 ~ 𝑃(𝑥𝑛 |𝑥𝑛−1 )) Weight Updating: 𝜔𝑛𝑖 = 𝑃(𝑆𝑛 | 𝑥𝑛𝑖 ): Resampling: Make Cumulative Distribution Function Obtain new particles 𝑥𝑛𝑖∗ 𝑖 𝑖∗ Return: ∑𝑡−1 𝑛=0 𝑥𝑛 ×𝜔𝑛0
In algorithm 1, we use the data from PDR (steps and orientation) to predict the relation between each particle 𝑖 𝑥𝑛−1 and 𝑥𝑛𝑖 in the same track. This is the same as in algorithm 2. After detecting each step, the weight of each particle needs to be updated, and the weight 𝜔𝑛 is calculated using the Gaussian density function as below. 𝜔𝑛 = 𝑃(𝑆𝑛 |𝑥𝑛 ) =
1 𝜎𝑟 √2𝜋
2 ⁄2𝜎 2 𝑟
𝑒 −(𝑆𝑛 −‖𝑓(𝑥𝑛 )‖)
(1)
where 𝑓(𝑥𝑛 ) is the measurement model of location 𝑥𝑛 and MF strength 𝑆𝑛 , the particle number and the standard deviation 𝜎𝑟 are set to 5,000 and 2, respectively. They are set the same as in [5]. However, even though MCL is effective at tracking moving targets, there are still limitations that can be improved. First, the computational cost of Monte Carlo localization can be enhanced. Second, most current existing resampling algorithms are inherently inefficient. This occurs when the samples and posterior distribution do not fit each other [13]. Moreover, an accurate model of MF 𝑆𝑛 and location 𝑥𝑛 also needs to be built, which means PF based systems require expensive arithmetic operations and a long processing time. Hence, it’s unsuitable for low ICT resource devices and for near real-time deployment [4]. B. Implemented system based on FPM-MI Algorithm K-Nearest Neighbours algorithm is a widely used positioning algorithm. However, as we found in the MF heat map for an area, e.g., the QMUL Library, there are several locations with similar MF intensities, which means using NN (K=1) or KNN alone to estimate location will cause significant positioning errors. 1
https://developer.android.com/guide/topics/sensors/sen sors_motion.html, retrieved 2017-01.
FPM-MI algorithm Algorithm 2: Requires: 1. Signatures 𝑃 = {𝑀1 … 𝑀𝑡 … 𝑀𝑛 } 2. Fingerprints Map 𝑀 = {𝑀1,1 … 𝑀1,4 … 𝑀𝑖,4 } //𝑗 𝑟𝑒𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑠 𝑡ℎ𝑒 𝑜𝑟𝑖𝑒𝑛𝑡𝑎𝑡𝑖𝑜𝑛 in 𝑀𝑖,𝑗 3. Steps n and Orientations 𝑂 = {𝑜1 … 𝑜𝑛 } Set 𝑘𝑛𝑛𝑆𝑒𝑡, 𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛𝑆𝑒𝑡, 𝑝𝑎𝑡ℎ𝑆𝑒𝑡 = 𝑛𝑒𝑤 Set Set k matched𝑃𝑎𝑡ℎ = 𝑘𝑛𝑛𝑆𝑒𝑡[0][𝑖] for each step n=1,2,3…∶ Procedure 1 - Prediction: 𝑖 𝑋𝑛𝑖 = 𝑋𝑛−1 + H𝑜𝑛 ×steplength 𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛𝑆𝑒𝑡 add 𝑋𝑛𝑒𝑤 Procedure 2 - Find k-nearest neighbours: 𝑘𝑛𝑛𝑆𝑒𝑡 add 𝑘 − 𝑛𝑒𝑎𝑟𝑒𝑠𝑡 𝑛𝑒𝑖𝑔ℎ𝑏𝑜𝑟𝑠 𝑓𝑜𝑟 𝑀𝑛 Procedure 3 - Match the paths: for 𝑗 𝒊𝒏 𝑙𝑒𝑛(𝑘𝑛𝑛𝑆𝑒𝑡[𝑖 + 1]): 𝑝𝑜𝑖𝑛𝑡 = 𝑘𝑛𝑛𝑆𝑒𝑡[𝑖 + 1][𝑗] //loc means the location coordinates (x, y) 𝑑𝑖𝑠𝑡 = ‖𝑚𝑎𝑡𝑐ℎ𝑒𝑑𝑝𝑎𝑡ℎ[𝑖]. 𝑙𝑜𝑐 − 𝑝𝑜𝑖𝑛𝑡. 𝑙𝑜𝑐‖ //differences of distance and direction 𝑖 if 𝑑𝑖𝑠𝑡 ≤ 𝑡𝐹𝑎𝑐𝑡𝑜𝑟 ∗ ‖𝑋𝑛𝑖 − 𝑋𝑛−1 ‖: if 𝑜𝑟𝑖𝑒𝑛𝑡𝑎𝑡𝑖𝑜𝑛(𝑜𝑛 ): //judge the direction 𝑚𝑎𝑡𝑐ℎ𝑒𝑑𝑃𝑎𝑡ℎ add 𝑘𝑛𝑛𝑆𝑒𝑡[𝑖 + 1][𝑗] break 𝑝𝑎𝑡ℎ𝑆𝑒𝑡 add matchedPath Procedure 4 - Return location: Find the maxLength 𝑚𝑎𝑡𝑐ℎ𝑒𝑑𝑃𝑎𝑡ℎ[𝑖] if 𝑚𝑎𝑥𝐿𝑒𝑛𝑔𝑡ℎ ≥ 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑: //𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 = 𝑛 − (𝑖𝑛𝑡)(𝑛⁄5) return the first maxLength 𝑚𝑎𝑡𝑐ℎ𝑃𝑎𝑡ℎ[𝑖] else update 𝑡𝐹𝑎𝑐𝑡𝑜𝑟 || repeat Procedure 3, 4
𝑥𝑛 cos 𝑜𝑛 Where 𝑋𝑛𝑖 = { 𝑦 } and H𝑜𝑛 = { sin 𝑜 }. 𝑛 𝑛 In our algorithm, the k-nearest neighbours for each MF signature 𝑀𝑡 in the fingerprint map is selected using the Euclidean distance. k is assigned to be 12 in our scenario, as this enables most (95%) MF measurements, which we collect by continuously walking around all book shelves, to match their real nearest fingerprint in the map, as in some areas, they have a smooth MF environment with less anomalies. Next, we estimate k paths (see Figure 1) by adding points which meet the constraints of the distance and orientation between the new points, and the previously predicted one, using data from accelerometer and gyroscope. In this process, the first neighbour point which meets the conditions (required distance and direction) is selected, as the points in the front part of the 𝑘𝑛𝑛𝑆𝑒𝑡 have a higher weight. The orientation is measured using a gyroscope. At the start point, the user can give the user (phone) start orientation, or the algorithm will traverse all four orientations to calculate the start point after collecting several (n ≥5) MF measurements. We estimate the location by comparing the number of satisfied points in the paths (lengths of each path). The longest path means the minimal error between the two observations. Thus it has the highest possibility of
being the nearest path. So the longest path is considered as the estimated path. The location of the last point in the path will be regarded as the estimated location. Finally, if the number of satisfied points in the path is less than the threshold, the algorithm will expand the 𝑡𝐹𝑎𝑐𝑡𝑜𝑟 , which makes the condition become less restrictive. Then it will repeat Procedures 3 and 4. Steps:
n
n+1
n+2
n+3
n+4
M1_1
M2_1
M3_1
M4_1
M5_1
M1_2
M2_2
M3_2
M4_2
Path4
KnnSet: (K = 6)
M1_3
M2_3
Path1
M5_2 Path2
M3_3
M4_3
M5_3
M4_4
M5_4
M4_5
M5_5
M4_6
M5_6
Path3
M1_4
M2_4
M3_4
M1_5
M2_5
M3_5
M1_6
M2_6
M3_6
Path6
Path5
The lengths of each Path are 2, 4, 1, 3, 3, and the longest path is Path2, so we consider the position of M5_2 in the fingerprints map as the location of the user.
Fig. 1. Procedures of FPM-MI Algorithm Our algorithm uses relatively low computation data processing such as the use of KNN with comparisons, which requires far fewer arithmetic operations than using particle filters e.g. the rough number of operations of particle filters to have an accurate estimated location is 500000 ( 20 (number of steps)∗ 5000 (number of particles ∗ 5 (prediction + weights-updating + 2 ∗ resampling+return)). To get fitted posterior distribution, the number of particles is usually huge (n = 5000 in the experiment). The rough number of operations of FPM-MI is 248898 (5 (number of steps) ∗ (1 (prediction) +12 (knnset))+124 (match the path) ∗12 (number of path)+ 1 (return)). This is also the worst case of our algorithm, the number of path can be further reduced, and by using Dynamic Programming. IV.
EVALUATION
A. Experimental Setup
Fig. 2. Heatmap of MF and the floor plan
A field experiment was conducted in Teaching Collection Area Room of QMUL Main Library, whose size is 18 m ×30 m. B. Pre-experiment 1) Stability of the magnetic field For creating the MF fingerprints map and linking it to the ground truth actual locations, we used a laser tape to measure the geographic coordinates and a data collection application, installed on an LG Nexus 5 smartphone, to collect the MF fingerprints in four orientations, namely, North, South, East, and West for each point, 0.5 m apart at a 1 m height
We also examined the influence caused by electronic devices typically carried by humans such as a watch. The influence is negligible if the distance between the magnetometer and other electronic devices is more than 10 cm. This is confirmed by [3] which came to a similar conclusion. Furthermore, magnetometers are not easily influenced by furniture which contained a small amount of metal. Hence, for some user scenarios, moved furniture will not affect the system. 2) The differences in magnetic field strength
Fig. 3. Comparison of fingerprints after two months Before testing the performance of our IPS, preexperiments were carried inside of the Library to verify the stability of the MF over time. To ascertain this, we collected all MF fingerprints in the fingerprints map again by using the same collector two months after collecting the original fingerprint map. We collected measurements of the MF in μT in the X, Y, and Z axes of the magnetometer on an Android-based LG Nexus 5, smartphone. To visualise the results, we randomly picked 20 fingerprints (Figure 3). The green arrows represent the original fingerprints, and the blue ones represent the test data collected in the same position two months later. The red dash lines represent the Euclidean distance between the two fingerprints, which acts as a similarity function to find the k-nearest neighbours of each signature in our algorithm. The similarity of MF fingerprints was computed using the Cosine Similarity and Magnitude Difference equations from [3] as follows: 1
𝐴 ∙𝐵
𝑛
𝑖
𝑖 𝑖 Cos 𝜃 = ∑𝑛𝑖=1 ‖𝐴 ‖‖𝐵 ‖
Magnitude =
𝑖
∑𝑛 𝑖=1‖𝐴𝑖 ‖
∑𝑛 𝑖=1‖𝐵𝑖 ‖
(2) (3)
where, A and B represent the fingerprints and test data sets, and n = 1800. The result shows that the Cosine Similarity = 0.99381, and the Magnitude = 0.96678, which confirms that the MF did not change over the two month period. Further, [3], also noted that the time-invariance of the MF was even longer, at least six-months. Hence, the use of MF measurements, tend to be time-invariant.
Fig. 4. Comparisons between North as a reference with the remaining three orientations, the bottom right graph shows the range in MF intensity differences between N and the other 3 orientations Based on the fingerprints we collected in four orientations of the same place, the MF strength of four orientations are similar in most places, but in some spots, the MF strength from different orientations may vary drastically. MF data collected from the west, east and south were compared with data north as a reference direction as shown in Figure 4. We found that the drastically changed spots were close to pillars in the room, so we believe that the variations are caused by the embedded metal in the pillars as they have a high impact within a small radius. This in turn means an accurate measurements model and geolocation is hard to build as it needs to consider the orientation. The bottom right figure shows the intensity of the variations between them. This is also the reason why we collected data from four orientations, which would increase the data quality in the KnnSet in procedure 2 of our algorithm. C. Performance Test data was collected by continuously walking around all the shelves in the physical space shown in Figure 2. The performance of our FPM-MI, PF and NN
algorithm (1-NN, to find the first matching fingerprint in the fingerprint map) are shown in Figure 5. [2]
[3]
[4]
[5]
Fig. 5. Accuracy performances of three algorithms This indicates that the accuracy of our proposed algorithm increases faster when n < 5 - the change tends to be stable, which also means our proposed algorithm has a good positioning accuracy (Error Mean is 1.7 m, Error Standard Deviation is 0.5 m, Error within 1.8 m with a 90% confidence, when n = 5 ) when walking a fewer steps, in contrast to using a PF. Our system, unlike Wi-Fi and BLE, requires no extra WAP infrastructure setup. However, we also found that after 20 (human) steps, the PF algorithm performs slightly better than ours. However, as a trade-off between computational cost and positional accuracy, the performance of FPM-MI algorithm is acceptable. V.
CONCLUSIONS AND FURTHER WORK
MF-based methods are more time-invariant than RF-based IPS methods. We proposed a novel MF algorithm, FPM-MI, which has a much lower computation and convergence time, compared to using PF as an MF baseline algorithm. Our validation shows that our system can achieve an average error of 1.7 meters estimated in the QMUL Library. It can also track the path of moving users for behavioural analysis or health care. Further experiments should be conducted in other spaces to verify the robustness of the algorithm, i.e., when MF anomalies may not be enough to support accurate positioning. Finally, combining our previous research: deploying BLE beacons for data fusion, and protecting the privacy of users [2], [15], [16] to maximise the availability of indoor location-based services also requires further investigation.
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
ACKNOWLEDGMENT This research was funded in part by a PhD scholarship funded jointly by the China Scholarship Council and the Queen Mary University of London. REFERENCES [1]
J. K. Brown, J.-Y. Feng, and T. R. Knapp, “Is selfreported height or arm span a more accurate alternative
[15]
[16]
measure of height?” Clinical nursing research, vol. 11, no. 4, 2002, pp. 417–432. Ma, S. Poslad, J. Bigham, X. Zhang, and L. Men, “A BLE RSSI ranking based indoor positioning system for generic smartphones,” in Wireless Telecommunications Symposium (WTS), 2017. IEEE, 2017, pp. 1–8. J. Chung, M. Donahoe, C. Schmandt, et al., “Indoor location sensing using geo-magnetism,” in Proc. 9th Int. conf. on Mobile systems, applications, and services, 2011, pp. 141–154. J. Song, H. Jeong, S. Hur, et al., “Improved indoor position estimation algorithm based on geo-magnetism intensity,” Int. Conf. on. Indoor Positioning and Indoor Navigation (IPIN), 2014, pp. 741–744. S.-E. Kim, Y. Kim, J. Yoon, et al., “Indoor positioning system using geomagnetic anomalies for smartphones,” in Int. conf. on Indoor Positioning and Indoor Navigation (IPIN), 2012, pp. 1–5. J. Handschin, “Monte carlo techniques for prediction and filtering of non-linear stochastic processes,” Automatica, vol. 6, no. 4, 1970, pp. 555–563. G. Jekabsons, V. Kairish, and V. Zuravlyov, “An analysis of wi-fi based indoor positioning accuracy,” Scientific Journal of Riga Technical University. Computer Sciences, vol. 44, no. 1, 2011, pp. 131–137. R. Faragher and R. Harle, “An analysis of the accuracy of bluetooth low energy for indoor positioning applications,” Proc. 27th Int. Tech. Meeting of Satellite Division of Institute of Navigation, USA, vol. 812, 2014. P. Martin, B.-J. Ho, N. Grupen, et al., “An ibeacon primer for indoor localization: demo abstract,” Proc. of 1st ACM Conf. on Embedded Systems for EnergyEfficient Buildings, 2014, pp. 190–191. D. Vasisht, S. Kumar, and D. Katabi, “Decimeter-level localization with a single wifi access point,” in 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI), 2016, pp. 165–178. P. Barsocchi, A. Crivello, D. La Rosa, et al., “A multisource and multivariate dataset for indoor localization methods based on WLAN and geo-magnetic field fingerprinting,” Int. conf. Indoor Positioning and Indoor Navigation (IPIN), 2016, pp. 1–8. A. Doucet, N. De Freitas, and N. Gordon, “An introduction to sequential monte carlo methods,” in Sequential Monte Carlo methods in practice. Springer, 2001, pp. 3–14. D. Fox, W. Burgard, F. Dellaert, et al., “Monte carlo localization: Efficient position estimation for mobile robots,” AAAI/IAAI, 1999, no. 343-349, pp. 2. T. Oshin, S. Poslad, “ERSP: An Energy-efficient Realtime Smartphone Pedometer,” Int. Conf. on Systems, Man, and Cybernetics (SMC), 2013, pp. 2067 – 2072 L. Titkov and S. Poslad, “Privacy conscious brokering in personalised location-aware applications,” in Proc. 2nd Int. Joint Conf. on Autonomous agents and Multiagent systems. ACM, 2003, pp. 1138–1139. L. Titkov, S. Poslad, and J. J. Tan, “An integrated approach to user-centered privacy for mobile information services,” Applied Artificial Intelligence, vol. 20, no. 2-4, 2006, pp. 159–178.