Scholarly article on topic 'Adaptive Collaborative Detection for Opportunistic Vehicle Sensor Networks'

Adaptive Collaborative Detection for Opportunistic Vehicle Sensor Networks Academic research paper on "Mechanical engineering"

Share paper

Academic research paper on topic "Adaptive Collaborative Detection for Opportunistic Vehicle Sensor Networks"

Hindawi Publishing Corporation International Journal of Distributed Sensor Networks Volume 2014, Article ID 275609, 8 pages

Research Article

Adaptive Collaborative Detection for Opportunistic Vehicle Sensor Networks

Yuanyuan Zeng1,2

1 School of Electronic Information, Wuhan University, Wuhan 430072, China

2 Su Zhou Institute of Wuhan University, Suzhou 215123, China

Correspondence should be addressed to Yuanyuan Zeng;

Received 31 October 2013; Revised 12 April 2014; Accepted 15 April 2014; Published 5 May 2014

Academic Editor: Mohamed Tawhid

Copyright © 2014 Yuanyuan Zeng. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Transportation is a huge problem that curbs development of societies and economy in many countries nowadays. Participatory sensing technologies encourage people to be involved in environment monitoring through smart devices. Vehicle sensor networks (VSNs) are a novel solution for road event detection with advantages. In this paper, we consider runtime road event detection using VSNs to satisfy the application-specific requirements through collaboration among vehicles. A group road detection scheme (GRD) by using dynamic clustering in VSNs is presented to improve detection performance with low time complexity and message complexity The simulations with testbed of 5 remote controllable vehicles show that GRD scheme provides effectiveness under different road scenarios.

1. Introduction

Transportation problems become more and more imminent in many countries nowadays. Road detection is necessary and important for road safety and good transportation. Participatory sensing encourages people to take part in environment monitoring by smart devices that they carry. It helps to realize pervasive sensing and computing through public monitoring and information sharing.

A vehicle sensor network is a kind of special mobile wireless sensor networks for vehicle environment [1]. Sensor devices equipped on vehicles constitute a vehicle based mobile sensor network. The VSN senses data opportunistically and collects data through ad hoc communications among vehicles. Consider the mobility and coverage of vehicles among a city without extra overhead; a VSN provides a novel and convenient solution for road event detection. Considering high mobility of vehicles, however, collected sensing data in a VSN is often too sparse to use. To improve the detection performance, group detection is a feasible solution based on collaboration among vehicles.

In this paper, we consider runtime road detection in VSNs to improve application-specific detection performance. We present a group road detection scheme (GRD) by utilizing

dynamic collaborative clustering. In GRD, the nodes dynamically join and leave the cluster according to the detection requirements. Each node in a cluster collaborates together to detect a road event. The detection is required to achieve application-specific detection performance without much overhead. There is a tradeoff between detection capability and complexity.

The main contribution of this paper includes the following. (1) The novel group detection scheme in VSNs is proposed to improve detection performance. (2) Dynamical clustering algorithms are proposed to form groups and achieve group detection. (3) The proposed algorithms are distributed with low message and time complexity.

Section 2 presents the related work. Section 3 presents the network model. We present the details of GRD in Section 4. Section 5 is simulations and evaluations. Section 6 concludes this paper.

2. Related Works

Participatory sensing is a revolutionary research direction, which allows people with smart device to participate in environment detection and monitoring voluntarily. In this situation, the sensed data will be processed and shared

Vehicle sensor networks

Environment Temperature Humidity Tail gas

Events Wet/slippery Bumping Traffic jam

Vehicles with sensors Road side unit

Figure 1: A vehicle sensor network for road event detection applications.

through wireless networks and the other basic infrastructures. Vehicle sensor networks [2] are the combined outcome of vehicle ad hoc networks and WSNs. VSNs could be used in a wide range of applications [3], for example, in traffic monitoring to save communication costs and avoid network congestions. Vehicle based sensors could also be used to monitor and identify possible vehicle thefts by detecting unauthorized vehicle movements.

In recent research work of sensor networks, road surface monitoring related applications are popular. Mohan et al. [4] propose system solution to monitoring road and traffic conditions in a city, which aims to detect potholes, bumps, braking, and honking by using smart phones with the accelerometer, microphone, GSM radio, and GPS sensors. Karuppuswamy et al. [5] propose a vision based scheme for pothole avoidance in a mobile robot by the use of cameras. They detect potholes by looking for large circular objects in the field of view. Eriksson et al. [6] propose road surface pothole detection by using machine learning mechanism based on hidden Markov model. Keally et al. [7] propose a confident event detection algorithm based on hidden Markov model in terms of application-specific detection demand.

For vehicular networks, clustering is a necessary method to cluster and manage vehicles [8]. Rawashdeh and Mahmud [9] propose a speed-overlapped clustering technique on highways by using vehicular speed and relative movement direction. Gurung et al. [10] propose a moving-zone based architecture with moving object modeling and indexing techniques to facilitate message routing in VANETs according to the unique characteristics of network environments. Ucar et al. [11] propose a clustering mechanism to choose the node with the least mobility calculated by speed difference among neighbor nodes as the cluster head to maintain the stable clustering in VANETs. Most of the above work is for vehicular ad hoc networks and the clustering scheme aims

to communications among vehicles. None of them is for effective road event detection. Communications focus on the effective connections and information exchange, while detection focuses on the retrieve of useful data among vehicles.

In this context, the paper focuses on dynamically-clustered collaboration based group road detection scheme in vehicle sensor networks with low overhead.

3. System Models

Vehicle sensor networks are widely used in the area of intelligent transportation systems related applications, and here the paper focuses on road event detection applications. Vehicles collect road event data by opportunistic communications as shown in Figure 1.

We use a dynamic graph G(V, E; T) to model the VSNs. Each vehicle v eV is a graph node. Here each vehicle (graph node) can include more than one sensor to detect the road events. The graph edge e e E represents the opportunistic wireless communication link between vehicles. Because of the time-dependent opportunistic communication, the connecting time t is used to record the vehicle communication trajectory.

In road detection process, each vehicle can be in one of the states: initialized, clustering, and clustered as in Figure 2.

"Initialized" is the initial state for vehicle when it is not in any of the groups. An invoker broadcasts out a cluster-request message to begin the dynamic clustering process.

"Clustering" is the state when a node is in the decision of whether to be in the current cluster or not. Either an invoker or the other vehicles can be in this state. If an invoker receives responses from the other nodes that are willing to cooperate, the clustering process is successful and then the invoker enters into "clustered." Otherwise, the vehicle will

Invoker or receive ,

. / Clustering

cluster request message

Clustering succeeds

Initialized Clustered

~ Cluster based detection is over or timeout

Figure 2: State transition machine for a vehicle.

enter back to "initialized." If it is a noninvoker vehicle that is in "clustering," it will calculate to make decision on whether to join or to reject the clustering request. A noninvoker node which decides to join the current cluster will enter into "clustered." Otherwise, it enters into "initialized."

Obviously, "clustered" is the state that a node is in the cluster and cooperates with the other cluster members. When the cluster based group detection is over or larger than a predetermined timeout, the node in "clustered" enters back to "initialized" state and leaves the cooperation. The timeout is used to be released from long time utilization or lost connection from the clustering. If a vehicle joins the group detection, it will keep staying in the group and work as a group member for a while. The maximal working time is timeout.

4. GRD Design

GRD design aims to construct dynamic groups (clusters) to guarantee efficient road detection. The dynamic cluster is constructed through the following function modules: local invoker, cluster generation, and runtime decision modules.

"Local invoker" is the module to determine the local invoker for GRD. The local invoker is the vehicle with sparse data that needs to utilize GRD to improve the detection. The invoker sends out a group detection request (i.e., cluster-request message) to request for clustering.

"Cluster generation" is the module to choose event-related vehicles to join into groups and try to satisfy the detection requirement.

"Runtime decision" module makes decisions for the vehicle on whether to join/form the group or not.

Figure 3 illustrates the above modules on both invoker and noninvoker vehicles, respectively. The noninvoker vehicles join the cluster or reject the request through the modules. It can also terminate current cluster based group detection according to application requirements or local detection efficiency.

4.1. The Local Invoker. For the convenience of illustration, some of the notations used in the paper are explained in Notation Section.

Let the road detection zone Z, which can be modeled by an approximate rectangle area and divided into subzone as grids 0\y 02y 0m in the whole surveillance area, that is, Z =

02' ■■■, 0m}. For detection grid 0i, the centroid location is

denoted by zi. Let dk i be the distance between a vehicle nk and event related grid 0i. In (1), n^x, y) is the coordinates of vehicle nk and zi(x, y) is the coordinates of grid centroid

dk,¡ = d {nk, 0t) = \\nk (x, y) - Zi (x,:

c(nk,0j) denotes the static detection capability of vehicle nk on a specific static position toward the road grid 0i. The vehicle can be equipped with sensors to detect road events. The maximal sensing range of the vehicle nk is denoted as Rk. A probabilistic model is utilized to calculate the detection capability of the vehicle toward a specific event grid by considering the distance between the vehicle and the grid centroid. It is obvious that a vehicle has better detection capability when it is near the grid. c(nk, 0t) can be illustrated as follows:

c(nk'0¡) =

-^ dk,¡ <Rk

1 + ydk,¡ (2)

0 dK, > Rk.

The vehicle detection capability can be calculated according to (2) as a value between 0 and 1. So, it is convenient for upper-layer applications to give a predefined capability parameter or threshold according to application requirements and longtime observation data.

Considering the vehicle mobility, the mobile detection capability (to abbreviate it as detection capability in the remaining) for vehicles should include the summation of all the static detection capability over time and space. c'(nk,0i) is used to denote the detection capability of vehicle nk toward the road event grid 0i, when it moves in grid 0i. In (3), (Xmin'ymin) and (xmaX'ymax) are the coordinate range of the vehicle movement and (t 1 ,t2) is the time durations of movement

I f*max f^max

c(nk'0i)=\ \ \ c(nk'0i)dt dxdy^ (3)

Jt, Jxm,„ Jv,

If a vehicle moves across the grids, the detection capability for a specific road event is calculated only through the event-related grids during the movement. Figure 4 shows an example. In the example, the vehicle moves across the upper-right side two grids 04 and 05. But if only 05 is event-related grid, the detection capability of the vehicle will be calculated according to the movement within the grid 05. The event-related grid is decided by the event detection precision that is usually defined by the upper-layer application with a detection precision range (which can be modeled as a circle with a predefined radius). The grids that fall into the precision range are the event-related grids.

If a vehicle finds the local detection capability not suitable for the application-specific detection performance, it will invoke the group detection process and becomes an invoker.

According to the state transition machine, the local invoker broadcasts out a cluster request with the request of clustering process and enters into "clustering." The cluster-request message broadcast is based on CSMA/CA mechanism to avoid contentions. The node in "initialized" state

Figure 3: Dynamic cluster related function modules.

r gl g2 g3

g5 g6 g7

g9 gl0 gll

Moving trajectory

IS Vehicle

Moving area in event grid

Figure 4: An example of detection scenario when vehicles move across the grids.

that receives a cluster request message enters into "clustering" state, which is the state to make decision on cooperation.

Algorithm 1 describes Pseudocode of the invoker selection. The message is broadcasted among the neighborhood. Each node executes the algorithm in sequence in a distributive way. It is obvious that Algorithm 1 is with 0(|A|) message complexity and O(n) time complexity, where A is the maximal degree of the network graph.

4.2. Cluster Generation. After the invoker broadcasts out a cluster request, the neighbors in "initialized," state which receives the message will decide whether to join the requested group detection or not by runtime decision module. If nodes in other states receive the message, they just ignore it. The clusterrequest messagewillbeforwarded in thenetwork until the group achieves satisfied detection capability.

Define the group detection capability of vehicle group set S invoked by nk for a specific road event which occurs in grid gi as c'(Sk,gi). In (4), 1 - c'(nj,gi) is the detection disability degree of vehicle nj toward grid gi. Then the disability of the set S is achieved by the multiplier of each vehicle's disability. Based on it, the group detection capability is shown as in

c' (Sk,g,) = l- ^ n (1-c' (nj,g1)).

Algorithm 2 describes cluster generation process. To curb the number and scale of forwarding messages, a maximal forward

number MAX_FW is defined to avoid excessive broadcast messages in the network. It is easy to see that Algorithm 2 is the same as Algorithm 1 with low time/message complexity and suitable for VSNs.

4.3. Dynamically Clustered Cooperation and Decision. In runtime decision process, for an invoker, vehicles that can contribute to current event detection are invited to join in to improve detection capabilities. For a noninvoker, it will make decision according to the detection relevance with the inviter. So it needs a negotiation process between runtime dynamic-clustered cooperation between the invoker and the noninvoker. Through the negations among vehicles, nonrelevant vehicles are filtered from the cluster and relevant vehicles are involved in the cluster to make group detection with the application-specific detection capability.

The detection relevance metric is defined to determine what kind of degree the vehicle can contribute to the current event detection. Assume invoker nk and "clustering" vehicle nj get observed dataduring time duration T from start time t1 to end time t2. The detection relevance of nj with cluster Ck toward event grid gi is denoted as ri(Ck, nj), which is defined as shownin (5), in which, c'(Ck, gi) is the detection capability of cluster Ck toward event grid gi during time duration T, and c'(nj,gi) is the detection capability of vehicle nj toward gi during T

r¡ (ck,nj) =

c' (Ck U {nj},gi) c' (Ck,g.)

when c' (Ck, g) > 0. (5)

Especially, before the cluster is constructed, the detection relevance of nj with nk toward event grid gi is denoted as ri(nk,nj) as in

( ) ç' ({nk}u{nj},g,) , i(nk>nj) = —„n.. — whenc H-go >0-

- ' (nk'g¡)

If ri(Ck,nj) > 1 or ri(nk,nj) > 1, it implies that nj will contribute to the event detection for current cluster or possible cluster. In this way, the detection relevance can be calculated. The relevant vehicles join into the cluster or leave the cluster to achieve efficient detection. Algorithm 3 is the pseudocode of runtime decision. It is obvious to see that the algorithm is with linear message complexity and time complexity.

Algorithm 1: Invoker algorithm.

Input: a VSN G(V, E; T), application-specific detection capability cth, initial state "initialized." Output: nodes for clustering process for each node in G

If (c (gt, nk) > 0)(c (gt, nk) < cth) && (state = "initialized") Ignore received messages broadcast a Cluster-Req message state ^ "clustering" elseif receives a Cluster-Req && (state = "initialized")

state ^ "clustering" endif endfor

Input: a VSN G(V, E; T), application-specific detection capability cth, nodes for clustering by Algorithm 1 Output: Set of clusters C for each node in G

If (state = "clustering") && (non-invoker) && (receive "join" msgs) // Runtime_Decision() is the Runtime Decision algorithm state ^ "clustered" become a cluster member elseif (!Runtime_Decision()) // reject the clustering or terminate from the cluster state ^ "initialized" If (msg_seq <= MAX_FW)

forward the Cluster_Req msg

endif endif

If (state = "clustering") && (invoker)

If (wait(T_MAX1)) && (receive "join" responses) // wait(TMAXl) is the delay function for clustering // T_MAX1 is the maximal waiting time for clustering state ^ "clustered" become a cluster If c'(Ck,gi) < Cth // Ck is the group set of current cluster invoked by nk Broadcast a Cluster_Req msg endif

elseif (!wait(T_MAX1)) || (receive "reject") state ^ "initialized" // no "join' received during waiting time implies failure endif

If (state = "clustered") && (invoker) && (receive "join"/"terminate" msgs)

Update the cluster endif endfor

Algorithm 2: Cluster generation.

5. Simulations

The overall goal of this part is to make simulations in the remote-control vehicle based transportation situations and then make evaluations to testify the effectiveness and accuracy of GRD. Actually, the detection performance is related to the detection methods. The simulations are implemented based on the same basic detection method with the situation

of only local vehicle detection involved and with GRD, respectively. The comparisons are made that try to show the difference between the two schemes based on the same basic detection method. To simplify the tests and show the obvious differences from the results, a threshold based event detection method is taken in the simulations. In the simulations, local vehicle detection scheme is to make basic threshold based event detection without the group collaboration among

Input: a VSN G(V, E; T), application-specific detection capability cth, Set of Growing clusters C (the Step output of Algorithm 2) Output: node responses for clusters for each node in G

If (state = "clustering") &.&((ri(Ck,n^) > 1) || (rt(nk,«,) > 1))

Response to invoker with msg(join) else

Response to invoker with msg(reject) endif

If (state = "clustered") && application needs // cluster members can leave the group for application needs Response to invoker with msg(terminate) endif endfor

Algorithm 3: Runtime decision algorithm.

Figure 5: A remote controllable vehicle.

~1 fi 5

i i Vehicle ---Grid lane

Direction vector

Figure 6: An Illustration of driving scenario in testbed.

vehicles; that is, the sensing data of each vehicle is compared with the application-specific threshold and then to decide the event based on it. The GRD scheme proposed in the paper is to make threshold based event detection with the group collaboration scheme; that is, the average sensing data of the group achieved is compared with the application-specific threshold and then to decide the event.

A simulated testbed consists of 5 remote controllable vehicles. The vehicle can work over 30 minutes continuously. The vehicle for testbed is shown in Figure 5.

An illustration of testbed is shown in Figure 6. The vehicle is based on Arduino control board with 4 wheel drive. It is equipped with accelerometers during the simulations. The vehicle could move flexibly as in real transportation. The sensors on the vehicles are connected to one another wirelessly through the low-power radio. Two vehicles in the testbed are also equipped with a WiFi card. The test area is covered by WiFi. Then the sensing data collected by each vehicle is forwarded and then gathered to central gateway through WiFi connection. The driving area is divided into virtual grids and vehicles drive according to the grid lane. Each vehicle can drive toward the vertical and horizontal directions as shown in the figure. The vehicle can be controlled to change

the direction when it approaches the area border or to avoid collisions.

Each vehicle is placed randomly on different locations and lanes and then controlled to drive in different directions around the test area. There are several artificial upward/downward slopes built by boards and slippery road area made by spilling jelly as well as uneven areas with broken stones in the test place to simulate complex road driving. The artificial experiment scenarios are used to simulate uneven, wet, and slippery road conditions. The location of simulated road events is randomly chosen. Vehicles are controlled to move around in the test place. The sensors are mounted on each vehicle with the same orientation and place. The ultrasonic wave sensor is used for measuring the distance and location. In the simulations, the vehicles are controlled to travel within 5 different road condition scenarios as shown in Table 1.

Figure 7 shows the detection accuracy rate within different scenarios. The results show we achieve 25.3%-40.2% more accuracy ratio when using group detection. In GRD, more relevant vehicles are involved into detection and improve

Table 1: Simulated road scenarios.

Scenarios Number of uneven areas Number of slippery areas Number of slopes

Scenario 15 2 1

Scenario 2 2 5 1

Scenario 3 8 1 2

Scenario 4 1 8 2

Scenario 5 5 5 3

1 2 3 4 5

Road condition scenario number

- ■ - Local vehicle detection -•- GRD

Figure 7: Detection accuracy ratio within different scenarios.

1 2 3 4 5

Road condition scenario number

- ■ - Local vehicle detection -•- GRD

Figure 9: False negative rate within different scenarios.

3.0 -,

■-P 2.6 -

, O 2.4

Road condition scenario number

- ■ - Local vehicle detection -•- GRD

45 40 -

I 35-tti

¡y 30 -ö

- 25 A

■s 20 -

is 15 H

Road condition scenario number

- ■ - Local vehicle detection -•- GRD

Figure 8: False positive ratio within different scenarios.

Figure 10: Average residual energy ratio within different scenarios.

the accuracy by more useful observation data. GRD helps to improve the accuracy of detection.

Figure 8 shows false positive rate within different scenarios. GRD helps to improve the false positive rate.

Figure 9 shows the false negative rate within different scenarios. GRD decreases around 52% false negative. Obviously,

group detection has better performance than only using local vehicle detection.

Figure 10 shows the average residual energy ratio of network nodes within different scenarios. The residual energy ratio is calculated by residual energy versus initial energy. We compare GRD with local vehicle detection. GRD results in no

more than 17% average residual energy ratio when compared with local vehicle detection cases in the network. So, GRD will not incur too much energy consumption. Especially, for real vehicles, the sustainable energy supply is not a big problem.

6. Conclusion

Vehicle sensor networks will be widely utilized in intelligent transportation systems in a very near future, which can be used to inform the drivers about kinds of road condition events. In this paper, we propose a group detection scheme based on dynamically clustered cooperation scheme called GRD in VSNs. GRD scheme includes algorithms of cluster invoked process, cluster generation, and runtime decision through vehicle collaborations. The simulations are carried out on 5 controllable vehicles with different scenarios. The results show that GRD can help to improve detection performance effectively without much overhead.

The further work will also be carried out on the testbed consisting of voluntary cars equipped with sensors on campus road areas. The test results will also be compared with other related work to testify the effectiveness.


Z: The approximated rectangle road

detection zone

gt: The divided subgrid in Z

Zf: The centroid location of gt

nk: The vehicle with its ID as k

Rk: The sensing range of nk

dk i: The distance between nk and gt

c(nk, g ) The static detection capability of nk toward / 0i

c (nk, gt): The mobile detection capability of nk

toward gt S: The vehicle group set

Ck: The cluster invoked by nk

c'(Sk, g): The detection capability of S invoked by nk toward gt

ri(Ck, n): The detection relevance of nj with Ck toward gt.

Conflict of Interests

The author declares that there is no conflict of interests regarding the publication of this paper.


[1] M. Gerla and L. Kleinrock, "Vehicular networks and the future of the mobile internet," Computer Networks, vol. 55, no. 2, pp. 457-469, 2011.

[2] K. Lan, C. Chou, and H. Wang, "Using vehicular sensor networks for mobile surveillance," in Proceedings of the 76th IEEE Vehicular Technology Conference (VTC Fall), pp. 1-5, Quebec City, Canada, September 2012.

[3] H. Hartenstein and K. Laberteaux, VANET Vehicular Applications and Inter-Networking Technologies, John Wiley & Sons, 2010.

[4] P. Mohan, V. N. Padmanabhan, and R. Ramjee, "Traffic-sense: rich monitoring of road and traffic conditions using mobile smartphones," Tech. Rep. MSR-TR-2008-59, Microsoft Research, 2008.

[5] J. Karuppuswamy, V. Selvaraj, M. M. Ganesh, and E. L. Hall, "Detection and avoidance of simulated potholes in autonomous vehicle navigation in an unstructured environment," in Intelligent Robots and Computer Vision XXI: Algorithms, Techniques, and Active Vision, vol. 4197 of Proceedings of SPIE, pp. 70-80, November 2000.

[6] J. Eriksson, L. Girod, B. Hull, R. Newton, S. Madden, and H. Balakrishnan, "The Pothole Patrol: using a mobile sensor network for road surface monitoring," in Proceedings of the 6th International Conference on Mobile Systems, Applications, and Services, pp. 29-39, June 2008.

[7] M. Keally, G. Zhou, and G. Xing, "Watchdog: confident event detection in heterogeneous sensor networks," in Proceedings of the 16th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS '10), pp. 279-288, April 2010.

[8] S. Vodopivec, J. Bester, and A. Kos, "A survey on clustering algorithms for vehicular Ad-Hoc networks," in Proceedings of the 35th International Conference on Telecommunications and Signal Processing (TSP '12), pp. 52-56, July 2012.

[9] Z. Rawashdeh and S. Mahmud, "A novel algorithm to form stable clusters in vehicular ad hoc networks on highways," EURASIP Journal on Wireless Communications and Networking, vol. 2012, article 15, pp. 1-13, 2012.

[10] S. Gurung, D. Lin, A. Squicciarini, and O. K. Tonguz, "A moving zone based architecture for message dissemination in VANETs," in Proceedings of the 8th International Conference on Network and Service Management, Workshop on System Virtualization Management, pp. 184-188, October 2012.

[11] S. Ucar, S. C. Ergen, and O. Ozkasap, "VMaSC: vehicular multi-hop algorithm for stable clustering in vehicular Ad Hoc networks," in Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC '13), pp. 2381-2386, April 2013.


Thanks are due to the anonymous reviewers and the academic editor. This work was supported by Chinese National Science Foundation Project (no. 61103218), The Natural Science Foundation of Jiangsu Province Youth Project (no. BK2012200), Hubei Province National Science Foundation Project (no. 2011CDB446), and Scientific Research Foundation for the Returned Overseas Chinese Scholars, State Education Ministry.

Copyright of International Journal of Distributed Sensor Networks is the property of Hindawi Publishing Corporation and its content may not be copied or emailed to multiple sites or posted to a listserv without the copyright holder's express written permission. However, users may print, download, or email articles for individual use.