Moving Object Spatial Queries and Indexing Techniques 1 Moving Object Spatial Queries and Indexing Techniques Wei Hu, Lei Sha, Marci Sperber Catalog: Section 1: Introduction 3 Section 2: Questions and queries for moving objects. 5 2.1 Coordinate-based and Trajectory-based 5 2.2 Time slice and interval 7 2.3 Historical and Predictive 7 2.4 Nearest Neighbor 8 2.5 OLAP/aggregation 10 Section 3 Indexing approaches 10 3.1. R-tree, R*-tree, grid, quad-tree, CR-tree 11 3.2 Q+R-tree 14 3.3 LUR-tree 17 3.4. BBx-tree, MV3R-tree, Bx-tree, HR-tree, STR-tree, TB-tree. 19 Section 4 Summary and Discussion 23 4.1 Hierarchical View 23 4.2 Query Categorized View 24 4.3 Future Research Possibilities 25 References 26 Figures: 2.1.1 Trajectories of moving point objects in spatiotemporal workspace 6 2.3.1 Historical vs. Predictive Query 7 2.4.1 A kNN query example 9 3.1.1 R-tree Example 11 3.1.2 Grid Index Example 13 3.1.3 Quad-tree Example 13 3.1.4 CR-tree example and QRMBR technique 14 Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 2 3.1.5 Performance comparison among R-tree, R*-tree, CR-tree, Quad-tree and Grid against uniform, skewed and hyper-skewed data distribution cases with different combinations of moving object numbers and queries 15 3.2.1 Example of R*tree over the Quasi-Static Objects 16 3.2.2 Q+R-tree example 17 3.2.3 Update performance of R-tree(modify), R*tree, quadtree and Q+R-tree 17 3.2.4 Search performance of R-tree(modify), R*tree, quadtree and Q+R-tree 18 3.2.5 Overall performance of R-tree(modify), R*tree, quadtree and Q+R-tree 18 3.3.1 Example of Lazy Update vs. the Traditional Update 19 3.3.2 Structure of LUR-tree plus DirectLink and LU algorithm 19 3.3.3 Total # disk accesses to process 100 update queries for each object 20 3.3.4 Average number of disk accesses for one update query 20 3.4.1 Different split scenarios of STR-tree. (a) disconnect (b) bi-connect (c) backward/forward 21 3.4.2 TB-tree structure 21 3.4.3 Historical synopsis 22 3.4.4 structure of Bx-tree 22 3.4.5 BBx-index structure 23 3.4.6 Historical Range Query Performance 23 3.4.7 Predictive Range Query Performance 24 4.1.1 Hierarchical View of Indexing Techniques 25 Tables: 2.1.1 Types of spatiotemporal queries 8 2.4.1 NN queries for different query and data characteristics 9 4.1.1 Indexes that benefits specific queries 26 Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 3 Section 1: Introduction The continues advances in the affordability, functionality, and technologies such as wireless communications, personal locator software and hardware, and global positioning systems, enable a range of new personal information services to be available. Most of those are related to the user’s geo-location. Example services include finder applications that allow mobile phone users to locate friends or family, businesses, or landmarks. Services may also deliver maps, directions, or traffic reports. [1] These new features of wireless communication are supported by location-aware applications such like intelligent traffic control and management systems, mobile communication systems, sensor-based surveillance systems, etc. As a matter of fact, the location-based services and needs are expending rapidly. It could be briefly categorized into 4 major types: informational, tracking, emergency and employee services. [2] Behind the scene, databases that manage moving objects, which support and enable those services to function, have received considerable attentions in recent years and become very hot in research fields. Tracking moving objects requires updates to the mobile database. And extract information from the database usually involving some interesting major types of queries: coordinate-based and trajectory-based, time-slice and interval, OLAP and aggregation, historical and prediction, K-th nearest-neighbor finding and similarity search, spatial join, etc. In Section 2 we are going to discuss some characteristics of those queries. Accompanying the improvements of moving object database query, techniques to facilitate the efficiency of both updates and selections of the spatial queries for processing are developed by many research groups. There are problems with traditional disk-based indexes, when applied to scalable, real-time execution of continuous queries on moving objects. As the objects move, it needs frequent update on the index and reevaluation for all queries. Also it requires very short execution times for large numbers of moving objects and queries. [3] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques R-tree is the very first access methods created by Guttman in 1984. 4 [4] Then some well- known index structures extended from this are R*-Tree, packed R-Tree, CR-Tree, and R+-tree, etc. in 1984. [7] [5,6] Grid file is another earlier indexing technique developed by Nievergelt Also Quad-tree has been developed into multiple new approaches such as Point quad-tree, pyramid, octree, PR-tree, MX-CIF quad-tree, PMR quad-tree, etc. [8] With deeper research carried out and more needs emerged from spatial database usage, more an more new indexes are designed for different specific type of queries. LUR-tree tries to benefit performance of updates. [9] Q+R-tree tempted to combine advantages from quad-tree and R-tree so updating and searching performance are more balanced. [10] Some effort is put on the querying demand of historical, present and future positions of moving objects to better support the tracking services, where BBx-tree, Bx-tree, HR-tree, STRtree and TB-tree are concerned and studied. [11, 12, 13] One important variant is 3D trees. One example is trying to introduce 3D in order to benefit interval queries with paying some storage penalty, implemented by extending MVR-tree to MV3R-trees. [14] We shall discuss the performance and storage attributes of some recent improvements in detail in Section 3. Associate with each indexing techniques, many computational algorithms along with spatial data modeling and representation, especially here for moving objects, are generated and improved. For example, in a recent paper for reducing the updates in moving object database, one aspect of the improvement includes 3 algorithms to modify the representation of road-network: General segment connection algorithm, Street codebased algorithm, Tall disconnection algorithm, and Direction-based algorithm. Using routes and using acceleration profile are the other 2 approaches in order to reduce the updates. [15] We will not discuss much on this topic and just want to remind that for each new index techniques or improvements of existing ones, most of the time they are associated with advances in related algorithms. And the improvements in algorithms along might greatly help an existing indexing approach too. It is very interesting to see how those known indexing techniques are connected to each other from a hierarchical view. Also another view on characteristics of queries that are Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 5 affected in performance perspective, either improving or degrading, caused by applying different indexing techniques could be very useful too. In section 4 we will present these 2 views including the type of indexes we discussed in this paper. Section 2: Questions and queries for moving objects. According to the specific interests in spatial data on moving objects, the questions asked and later transferred into spatial queries are mostly unlike the traditional relational database queries. Not only it deals with topological, network, directional or Euclidean operations and spatial abstract data types, the query also somehow extended to a higherdimension axis, the temporal aspect, viewable as past, current and future of an moving object. We will compare and contrast a few typical characteristics of spatial queries in this section. 2.1 Coordinate-based and Trajectory-based [13] This part of discuss is referring to spatiotemporal data, which tracks a moving object’s past, current locations and might predict its future location as well. One good example of the actual usage in reality is to support the optimization of transportation, fleet management as a core application. With communication between GPS devices on vehicles and the central computer, a continuous location information sampling is made available. Then the querying the dataset becomes a challenge. The term trajectory means the object movement. The data of a moving object (point representation) forms a polyline with 2D for location and 3rd dimension for time attribute. Figure 2.1.1 shows a layout of the trajectory data. Thus, different from classic spatial datasets, now it contains more information such as speed, acceleration, etc to be derived from. And also this results in considering larger objects like trajectories rather than the spatial objects only. This leads to additional kind of queries. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 6 Figure 2.1.1 Trajectories of moving point objects in spatiotemporal workspace [13] The coordinate-based queries are more traditional spatial queries, including point, range, and nearest-neighbor queries in the resulting 3D space here. A query in this category could be like “find all vehicles in Washington D.C. between 9-12am yesterday”. Operations involved in coordinate-based queries are like overlap, inside, etc. The trajectory-based queries contain 2 categories, topological queries and navigational queries. Topological queries interest in the data stored in whole or part of a trajectory object such like “when did vehicle X enters Washington D.C. most recently”. It is sometimes quite expensive to find the matching data. Operations involved in topological queries are like enters, leaves, bypasses, and crosses. The navigational queries will need derived information to answer questions like “what is the current speed of vehicle X”. Because the information asked is not stored directly, overhead of computing the answers are paid. Interested data in these queries are like speed, heading, travel distance, etc. Table 2.1.1 summarizes the above categorization. The combined type queries require both location and trajectory information to answer. These might be very complex and expensive to process. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 7 Table 2.1.1 Types of spatiotemporal queries [13] 2.2 Time slice and interval This is a simple concept, where time slice queries are about a time point while the interval is about a window of the time between 2 time points. Associate with other attributes of the query, such as predictive, nearest neighbor, etc, the second type of queries is usually harder to answer during the processing. And an efficient indexing technique to support the second type of query is also much more complex to design. 2.3 Historical and Predictive [11, 12] Historical queries refer to the time interval between the start time of the whole life span and the current time data. It retrieved appropriate data from existing data and could be briefly further categorized into interval range queries and time-location constrained queries. On the other hand, predictive queries refer to the time after the current time and up to the maximum update interval since the current time. Or in a word, given the current moving object’s current characteristics of the movements (reference position, velocity vector, etc.), predict the future position of the object for given time interval. A good example Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 8 could be “where will vehicle X be in 10 min”. Obviously this type of query focus on the time and location constrained set operation. Figure 2.3.1 demos these 2 query types. Figure 2.3.1 Historical vs. Predictive Query [12] The interval range query is quite traditional spatial queries, and as discussed before likely coordinated-based queries. The time and location constrained queries are more interesting with relation to temporal patterns. Concerning the performance of set query, 3 variables are the most important: the number of time intervals, the length of time intervals and the query frequency. 2.4 Nearest Neighbor [17] Related to our topic, the nearest neighbor (NN) queries are looking for k number of nearest moving objects to a referred object or location. Figure 2.4.1 shows one example database with 4 moving objects a, b, c and d. A NN query could ask which 2 objects are the nearest to the given position (in the middle) during certain time interval. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 9 Figure 2.4.1 A kNN query example [17] The most challenging aspect of this type of query is its complex cases. Both the data and the queries could be either static or dynamic, which results into combination of 4 cases. Also when the query temporal range changes from time slice to a time interval, the difficulty to efficiently find the answer greatly increases. Cause the time-interval NN query requires the knowledge of special time points when changes of result set are indicated. Table 2.4.1 shows a brief summary of studies related to the 4 cases of NN queries. Table 2.4.1 NN queries for different query and data characteristics. [17] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 10 In section 3 we will also discuss and compare some of the indexing techniques researched for those NN queries in a little more detail. 2.5 OLAP/aggregation [16] Aggregation queries in spatial database are a bit differently processed as in traditional relational database. Queries like “find number of vehicles entered Washington D.C. in the past 2 hours” are sometimes called window aggregate queries. This type of queries usually asks for aggregate data over regions that satisfy some spatiotemporal predicates. The big difference or problem compare to traditional relational database is that it is hard to detect the pre-defined hierarchies from positions and the ranges of spatiotemporal query window. Also they are not known in advance. That leads to some difficulties to use OLAP operations. Cause these hierarchies have to be taken into account during the design of the system such that aggregation queries are executed efficiently. Complexity of the hierarchy changes can be resulted from dynamic or volatile aspects of the spatial dimensions. For example, the area covered by a cell in wireless communication may change according to weather conditions, extra capacity allocated etc. Section 3 Indexing approaches Indexing techniques help to improve the efficiency of queries to processing data. It is a very important aspect of relational databases, as well as in the extended query syntax and data here for spatial databases. During the past 22 years indexing approaches for spatial and spatiotemporal queries have been one attractive and unique field for research groups. Since 1984 the very first spatial specific index presented by Guttman,[4] the R-tree, more and more indexes are developed to add efficiency to spatial queries including those involving moving objects. Based on some basic index structures such as R-tree, quadtree, B-tree, and grid, along with attributes such as dimensional (3D), temporal (history and prediction), etc, indexes with variant structures are experimented for different goals to seek performance boost. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 11 In this section we will refer to the performance testing and analysis on a few index groups. And we will try to identify the advantages and disadvantages of those indexes associated with certain types of queries. 3.1. R-tree, R*-tree, grid, quad-tree, CR-tree [25] Kalashnikov et al. [25] researched the performance of 5 indexing approaches, R-tree, R*- tree, grid, quad-tree, and CR-tree. R-tree and R*-tree index structures are designed to be disk-based structures. An optimal access is achieved by choosing the node size to be a multiple of disk page size. R*-tree is the variant of R-tree where definition of overlap of rectangles and splitting algorithm is different. [26] Figure 3.1.1 shows example of R-tree (R*-tree). Figure 3.1.1 R-tree Example [4] The grid index and the quad-tree are very closely related. They are both space partitioning indexing techniques and handling the overfull region by split operation. There are some differences between them: the grid index as 2D cells is a height-balanced structure while not in a quad-tree. Thus the grid index is more efficient in searching with shorter average path, especially for skewed data. Figure 3.1.2 shows example of grid index. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 12 Figure 3.1.2 Grid Index Example [25] Figure 3.1.3 Quad-tree Example [27] The main idea of CR-Tree is to make R-Tree cache-conscious by compressing MBRs. This is achieved by using so-called Quantized Relative Minimum Bounding Rectangles (QRMBR). Figure 3.1.4 shows the basic data structures of a CR-tree and the QRMBR technique that used for CR-tree. It compress the size of the MBR to about one forth of original but increases false hits and fanout as tradeoff. [28] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 13 Figure 3.1.4 CR-tree example and QRMBR technique [28] The performance comparison of the five in-memory indexes and shows the grid index is the best of all with uniform, skewed and hyper-skewed data. In the test some criteria of choosing proper grid size and a Z-sort optimization technique are presented to improve the grid index performance. The results are shown in Figure 3.1.5. Each cycle consists of two steps: moving objects (i.e., determining current object locations) and evaluation/processing. The winning in uniform data for grid index is quite expected but it is surprising to see it wins in skewed and hyper-skewed case too. Also it is interesting that quad-tree gains better performance generally comparing to R-tree like structures but lost to the grid index especially with hyper-skewed data. The problem with quad-tree dealing with skewed data is the super unbalanced tree and the extremely tree depth, which is expected as the basic characteristics difference between quad-tree and the grid index. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 14 Figure 3.1.5 Performance comparison among R-tree, R*-tree, CR-tree, Quad-tree and Grid against uniform, skewed and hyper-skewed data distribution cases with different combinations of moving object numbers and queries. 3.2 Q+R-tree [10] Seeing the advantages and disadvantages of quad-tree and R-tree, a typical way of seeking new techniques are applied in Xia’s paper [10] to try a new solution, combining multiple existing techniques. Here the hybrid of quad-tree and R-tree is studied and experimented to efficiently index moving objects. The main idea is to separate but yet associate the fast moving objects with slow moving regions to sufficiently use their different characteristics to benefit the querying process. There are three steps to build a Q+R-tree. The first step is to build a Topography-Based R*tree over topographical regions and quasi-static objects. These regions can be Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 15 determined by analyzing either the available maps or the past behavior of users. This R*tree has some special features: The level above the leaves store topographical regions to avoid overlap between the nodes; The leaves of the tree store moving objects has no Maximum/Minimum Entries per node restriction, and a dynamic array is used to increase the space utilization. Figure 3.2.1 shows an example of the special R*tree. Figure 3.2.1 Example of R*tree over the Quasi-Static Objects [10] The second step is to build a quad-tree over the entire space by inserting all objects that are not in the slow-moving cells. And the third step is to combine the quad-tree and R*tree structures by building a list with each quadrant pointing to each of the R*tree nodes contained by or intersecting the quadrant. Figure 3.2.2 shows the example of a hybrid Q+R-tree. For the update performance of the new hybrid index, the author compared the new index with quad-tree, R*tree, and R*tree (modify) on the scale of processing time of location updates for objects in each cycle. Figure 3.2.3 shows that in performance order the best index for updates is quad-tree, then Q+R-tree, R*tree and R*tree (modify). R-trees are much worst in insertions and deletions while Q+R-tree is pretty close to what quad-tree can do. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 16 Figure 3.2.2 Q+R-tree example [10] Figure 3.2.3 Update performance of R-tree(modify), R*tree, quad-tree and Q+R-tree [10] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 17 Then the searching performance comparison of the 4 indexes shows the R*tree is the best. Then the order is the Q+R-tree, the R*tree (modify) and quad-tree. The search performance of Q+R-tree is just a little bit worse than the pure R*tree. Figure 3.2.4 shows the results. Figure 3.2.4 Search performance of R-tree(modify), R*tree, quad-tree and Q+R-tree [10] The overall performance is the most interesting. As pure R*tree suffers from large update overhead, and the quad-tree suffers from worst searching efficiency, the Q+R-tree outperforms both pure R*tree and pure quad-tree. This is shown in figure 3.2.5. Thus the hybrid idea of quad-tree and R-tree is very successful here in improving overall performance of querying moving objects. Figure 3.2.5 Overall performance of R-tree(modify), R*tree, quad-tree and Q+R-tree [10] 3.3 LUR-tree [9] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 18 As we see in section 3.3, the update of moving objects contributes greatly to the overall performance. So many other research groups are focusing on how to reduce the number of updates thus to improve the overall runtime. One approach presented by Kwon [9] is using a lazy update algorithm. Figure 3.3.1 shows the difference between traditional update and the lazy update. We can see that the steps of handling MBR are saved. Figure 3.3.1 Example of Lazy Update vs. the Traditional Update [9] Figure 3.3.2 shows the lazy update algorithm and the data structure of the LUR-tree. First a leaf node containing the moving object is found using DirectLink. Then the possibility of applying the lazy update algorithm is checked. If the new position is still in the MBR, only the change to the new object location is updated. Otherwise some traditional ways are applied to handle the update, such as delete and insert, MBR extension, or reinsertion into the parent node. Figure 3.3.2 Structure of LUR-tree plus DirectLink and LU algorithm [9] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 19 The update performance of the LUR-tree comparing to R*tree is greatly improved. Shown in figure 3.3.3 and 3.3.4, the number of disk accesses of update queries are reduced obviously compared to R*tree. Where U and G designate uniform and Gaussian dataset attributes and R and D designate random and directed attributes. Figure 3.3.3 Total # disk accesses to process 100 update queries for each object [9] Figure 3.3.4 Average number of disk accesses for one update query [9] 3.4. BBx-tree, MV3R-tree, Bx-tree, HR-tree, STR-tree, TB-tree. [11, 12, 13, 14] The support to queries about the past, the present and the future of moving objects are demanded with historical and predictive queries. Again recently there were many researching on indexes specifically benefit this area as well. Christian et al. [13] provided two novel approaches to help trajectory queries with temporal attributes involved, STR-tree and TB-tree. STR-tree is an extension of the R*tree. The goal is to preserve trajectories in the index. The major differences are in the insertion/split criteria. STR-tree considers not only spatial closeness in the insertion process, but also partial trajectory preservation. The split of the node now has to know additional information on the segment relationship, which could be of four types: disconnected, forward, backward, or bi-connected. By preserving the most trajectory information with reasonable cost, STR-tree will facilitate the spatiotemporal queries. Figure 3.4.1 shows different split scenarios of STR-tree. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 20 Figure 3.4.1 Different split scenarios of STR-tree. (a) disconnect (b) bi-connect (c) backward/forward [13] TB-tree structure is designed for strictly preserves trajectories such that a leaf node only contains segments belonging to the same trajectory. Concessions are made to the most important R-tree property, overlap or spatial discrimination to implement this index. Figure 3.4.3 shows a structure of TB-tree. We can see that the whole trajectory is reserved properly in order to benefit pure spatiotemporal queries. Christian identified some performance improvements with STR-tree comparing to R*tree, but not TB-tree. Figure 3.4.2 TB-tree structure. [13] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques Sun et al. [14] 21 tried a 3D R-tree and PB-tree for historical indexes. Main idea is separate the past nodes and current nodes to utilize the main memory efficiently. Figure 3.4.3 shows the basic idea of historical synopsis. The packed B-tree implementation stores the active leaf nodes on the rightmost and other lifespan leaf nodes. The 3D R-tree used more storage of an index in trade of the runtime performance. Figure 3.4.3 Historical synopsis [14] Lin et al. [12] tried another approach extending Bx-tree [29] from Jensen’s work. Bx-index applies a novel linearization technique to time-stamped locations, which keeps spatial proximity and is also time-wisely partitioned. Bx-index is based on the B+-tree. Figure 3.4.4 shows the structure of Bx-tree. Figure 3.4.4 structure of Bx-tree [29] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 22 The BBx-index is actually a forest of trees, formed by a B-tree on top of many Bx-trees, with each tree having an associated timestamp signature and a lifespan. Figure 3.4.5 shows the structure of this new index. The lifespan corresponds to the range of lifespan related to the objects indexed in the tree. Figure 3.4.5 BBx-index structure [12] Performance tests comparing some of the previously described index techniques are done in Lin’s paper. BBx-index shows better performance in historical range queries than the MV3R-tree (Figure 3.4.6). It also runs a bit better than Bx-index in predictive range queries (Figure 3.4.7). Overall these approaches bring some improvements on different aspects for the spatiotemporal queries. Figure 3.4.6 Historical Range Query Performance [12] Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 23 Figure 3.4.7 Predictive Range Query Performance [12] There are many other indexing techniques provided and in process of researching for better performances of querying moving objects. They aim at different aspects of improvement. We expect to see better solutions will be presented in this field. Section 4 Summary and Discussion Most of the time, we cannot absolutely tell that a new technique is the best from all perspectives. Every improvement has a tradeoff. Although by towards the goal of improving moving object queries, each idea of improvement has a general term sitting behind that for certain attributes of the processing it does benefit. So an overview of those attributes associated with the techniques might help future research foresights. Considering the indexes we looked previously, we are tempted to create a few views from a higher point. Here we try to provide 2 views, the hierarchical view and the query categorized view. 4.1 Hierarchical View Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 24 Figure 4.1.1 shows the hierarchical view. We derived this view from the association among indexes we discussed previously. Figure 4.1.1 Hierarchical View of Indexing Techniques Based on 3 major basic techniques: B-tree, partitioning and R-tree, multiple extensions are made either on the algorithms associated with the index or the structure of the index such that performance improvements are achieved. We went through R*tree, CR-tree, Bxtree, etc. Hybrids of different branches and higher dimensional expansions are also tried. Among those are Q+R-tree, 3D R-tree that we discussed in previous sections. Each basic technique has its advantage and disadvantage. For example, quad-tree from the partitioning root has advantage of updating but suffers from the searching process. So the innovative way of preserving the advantage and making up for the disadvantage is the key of successful new solutions. 4.2 Query Categorized View. According to the results from multiple resources, we can relate the type of queries improved to the indexing techniques as shown in Table 4.1.1. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques Queries for … Indexes that relatively good on performance Trajectory TB-tree Normal range Grid Updates LUR-tree, R*tree, Searching Quad-tree Historical MV3R-tree, BBx-tree Predictive Bx-tree, BBx-tree Time-slice STR-tree, HR-tree Interval MV3R-tree 25 Table 4.1.1 Indexes that benefits specific queries We can see here that by modifying different aspects of the existing techniques, different results are rewarded. For example, as quad-tree is good at searching and R-tree is good at updating, Q+R-tree become a good attempt to gain overall performance with both side. If we can construct a complete version of this table with most of the current indexing approach benefits listed, then a good foresight should be provided for future researches. 4.3 Future Research Possibilities Continue from previous discussion, based on the incomplete table listing index advantages, we present a few possibilities of new indexes. Algorithm and implementation wise issues will always need to be sorted and experiments should be carried out to support new ideas. But to see the direction is also important. The first one is to combine LUR-tree with quad-tree to get a Q+LUR-tree, where even better update performance is provided. Another thing is about the superior searching performance of the modified grid index comparing to quad-tree and R-tree variants [25] . An extended G+R-tree might outperform the Q+R-tree too. Thinking this way we could get a bunch of new ideas where one of them proved to be working as expected. As always, the other data structures can be considered to when certain advantages are seen needed for improving indexes for moving objects. Thus new hybrid techniques and Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 26 more innovative ways of moving objects query processing or even data representation could be studied to bring search in this field forward. References: 1 Speicys L, Jensen C S, Kligys A. (2003) Computational data modeling for networkconstrained moving objects, Proc. of GIS'03, Louisiana, USA, 2003 2. Graham Chen. (2003) A tutourial on location based services. http://www.cs.umn.edu/Research/shashi-group/CS8715/MO2_Tutorial-GrahamChen.pdf 3. S. Prabhakar, Y. Xia, D. Kalashnikov, W. Aref, and S. Hambrusch. (2002) Query indexing and velocity constrained indexing: scalable techniques for continuous queries on moving objects. IEEE Transaction on Computers, 51(10):1124--1140, Oct, 2002. 4. Guttman, A. (1984) R-tree: A dynamic index structure for spatial searching. In SIGMOD ’84, Proceedings of the ACM SIGMOD Conference. ACM Press. 5. S. Shekhar and S. Chawla, (2003) Spatial Databases: A Tour, Prentice Hall, 2003. 6. K. Kim, S. K. Cha, and K. Kwon. (2000) Optimizing multidimensional index trees for main memory access. In Proc. of SIGMOD 2000. 7. Nievergelt, J., Hinterberger, H., and Sevcik, K. (1984). The grid file: And adaptable, symmetric multikey file structure. ACM Transactions on Databse Systems, 9(1):38-71. 8. Snehal Thakkar, Hanan Samet. Spatial Data Structures. (2001) http://infolab.usc.edu/csci599/Fall2001/note/SpatialDataStructures.ppt Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 27 9. D. Kwon, S. Lee, S. Lee. (2002) Indexing the Current Positions of Moving objects Using the Lazy Update R-tree. Third International Conference on Mobile Data Management, January, Singapore, p. 113, 2002. 10. Yuni Xia, Sunil Prabhakar: (2003) Q+Rtree: Efficient Indexing for Moving Object Database. DASFAA 2003: 175-182 11. S. Saltenis, C. S. Jensen, S. T. Leutenegger, and M. A. Lopez.(2000) Indexing the positions of continuously moving objects. In SIGMOD Conference, 2000. 12. D. Lin, C. S. Jensen, B. C. Ooi, S. Saltenis, (2005) "Efficient Indexing of the Historical, Present, and Future Positions of Moving Objects," in Proceedings of MDM 2005 13. Dieter Pfoser Christian S. Jensen Yannis Theodoridis(2000): Novel Approaches to the Indexing of Moving Object Trajectories. Proceedings of the 26th International Conference on Very Large Databases, Cairo, Egypt, 2000 14. J. Sun, D. Papadias, Y. Tao, and B. Liu. (2004) Querying about the Past, the Present, and the Future in Spatio-Temporal Databases. ICDE, pp. 202–213, 2004. 15. Alminas Civilis, Christian S. Jensen, Stardas Pakalnis(2005): Techniques for Efficient Road-Network-Based Tracking of Moving Objects. IEEE Trans. Knowl. Data Eng. 17(5): 698-712 (2005) 16. Dimitris Papadias, Yufei Tao, Jun Zhang, Nikos Mamoulis, Qiongmao Shen, Jimeng Sun(2002): Indexing and Retrieval of Historical Aggregate Information about Moving Objects. IEEE Data Eng. Bull. 25(2): 10-17 (2002) 17. Katerina Raptopoulou, Apostolos Papadopoulos, Yannis Manolopoulos(2003): Fast Nearest-Neighbor Query Processing in Moving-Object Databases. GeoInformatica Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 28 7(2): 113-137 (2003) 18. N. Roussopoulos, S. Kelley, and F. Vincent,(1995) "Nearest neighbor queries," Proceedings of ACM Sigmod , May 1995 19. Zhexuan Song, Nick Roussopoulos (2001) K-Nearest Neighbor Search for Moving Query Point. Processings 7th SSTD Symposium, 79-96, 2001 20. B. Zheng and D. lee. (2001) Semantic caching in location-dependent query processing. Proceedings 7th SSTD symposium, 97-116, 2001 21. Y. Tao and D. Papadias. (2002) Time-parameterized queries in spatiotemporal databases. Proceedings ACM SIGMOD conference, 334-345, 2002b 22. Y. Tao and D. Papadias, and Q. Shen. (2002) Continues nearest neighbor search. Proceedings 28th VLDB conference, 287-298, 2002a 23. G. Kollios, d. Gounopoulos, and V.J. Tsotras. (1999) Nearest neighbor queries in a mobile environment. Proceedings workshop on Spatiotemporal Database Management, 119-134, 1999 24. R. Benetics, C.S. Jensen, G. karciauskas, and S. Saltenis. (2002) Nearest neighbor and reverse nearest neighbor queries for moving objects. Prodeedings IDEAS conference, 44-53, 2002 25. Dmitri V. Kalashnikov, Sunil Prabhakar, Susanne Hambrusch, and Walid Aref.(2002) Efficient evaluation of continuous range queries on moving objects. In DEXA, 2002. 26. N. Beckmann, H.-P. Kriegel, R. Schneider, and B. Seeger,(1990) "The R*-tree: An efficient and robust access method for points and rectangles," Proceedings of ACM SIGMOD Int'l. Conf. on Management of Data, pp. 322-331, 1990. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 29 27. C. Shahabi (2006) Spatial Index Structures. infolab.usc.edu/csci585/ Spring2006/Lectures/Session11-BW.pdf 28. K. Kim, S. K. Cha, and K. Kwon (2001), Optimizing multidimensional index trees for main memory access, Proc. of the ACM SIGMOD Conference, pp. 139--150. 29. C. S. Jensen, D. Lin, and B. C. Ooi.(2004) Query and Update Efficient B+-Tree Based Indexing of Moving Objects. Proc. VLDB, pp. 768–779, 2004. Wei Hu, Lei Sha, Marci Sperber 2006 Moving Object Spatial Queries and Indexing Techniques 30 Wei Hu, Lei Sha, Marci Sperber 2006