US7299126B2 - System and method for evaluating moving queries over moving objects - Google Patents

System and method for evaluating moving queries over moving objects Download PDF

Info

Publication number
US7299126B2
US7299126B2 US10/700,168 US70016803A US7299126B2 US 7299126 B2 US7299126 B2 US 7299126B2 US 70016803 A US70016803 A US 70016803A US 7299126 B2 US7299126 B2 US 7299126B2
Authority
US
United States
Prior art keywords
moving
query
queries
objects
bounding box
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US10/700,168
Other versions
US20050096841A1 (en
Inventor
Bugra Gedik
Kun-Lung Wu
Philip Shi-lung Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NNG LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US10/700,168 priority Critical patent/US7299126B2/en
Assigned to IBM CORPORATION reassignment IBM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GEDIK, BUGRA, WU, KUN-LUNG, YU, PHILIP SHI-LUNG
Publication of US20050096841A1 publication Critical patent/US20050096841A1/en
Application granted granted Critical
Publication of US7299126B2 publication Critical patent/US7299126B2/en
Assigned to NNG LLC reassignment NNG LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTERNATIONAL BUSINESS MACHINES CORPORATION
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Definitions

  • This invention relates to location and management of many objects. More specifically, present invention relates to the evaluation of moving continual queries over moving objects.
  • GPS global positioning systems
  • RFID radio frequency identification
  • Bluetooth Bluetooth technologies
  • wireless networking technologies have facilitated the emergence of numerous applications for the continuous location and management of moving objects.
  • These emerging applications include, for example, environmental awareness applications, object tracking and monitoring services, inventory control systems, wireless communication systems, and computer games. These applications need to track many moving objects simultaneously, including physical objects that move in two-dimensional or three-dimensional space, for example people, cars, airplanes and cargo ships. Moving objects can also be stock prices, distributed sensor readings for environmental surveillance including temperature and pressure, and public health data such as a number of sick people and a type of illness.
  • the moving objects are equipped with location-awareness or remote identification equipment and are treated as points in multidimensional space whose positions change with time. The locations of these points can be tracked and queried. Tracking of points in space can be accomplished by technologies available in the art such as GPS, triangulation, and RFID systems. These tracking systems are used to locate objects or points that satisfy a given set of criteria called queries. These queries over moving objects tend to be continual, i.e., repeated periodically over time. In addition, queries can be stationary or can be associated with moving objects and hence moving. Moving queries can be general range queries, for example finding all the objects currently located inside the boundaries of a range, or k-nearest neighbors (kNN) queries, for example finding the k-nearest objects that are closest to a given point.
  • kNN k-nearest neighbors
  • a continual stationary range query specifies a spatial range together with a time interval and identifies the set of objects located within the spatial range during the specified time interval. The result of the query changes as time progresses due to the moving nature of the objects that are being queried.
  • a moving range query has a fundamental difference when compared with a stationary query.
  • a moving range query is associated with a moving object, called the focal object of the query, and the spatial range of the query moves together with the movement of the query's focal object. With a moving query, the identification of objects that satisfy the query over a given time period becomes more complex.
  • index moving objects Because of the continuously changing positions of moving objects, it is very time consuming to process queries over moving objects. This problem becomes even more challenging when the queries are also moving.
  • various approaches have been proposed to index moving objects alone (e.g., “Indexing moving objects,” by P. K. Agarwal et al., Proceedings of ACM Symposium on Principles of Database Systems, 2000; “On indexing mobile objects,” by G. Kollios et al., Proceedings of Symposium on Principles of Database Systems, 1999), or to index queries alone (e.g., “Query indexing and velocity constrained indexing: scalable techniques for continuous queries on moving objects,” by S. Prabhakar et al., IEEE Transactions on Computers, 51:1124-1140, October 2002).
  • the present invention is directed to a system and a method for evaluating a plurality of moving queries over moving objects.
  • the method for evaluating the moving queries involves constructing a bounding box to contain and to correspond with each one of the moving objects and moving queries. Using the corresponding bounding box, an object index is created for each one of the moving objects, and a query index is created for each one of the moving queries.
  • the objects and queries are indexed based upon the associated bounding boxes as opposed to the location of the objects and queries themselves.
  • the moving queries are then evaluated periodically using the query and object indexes.
  • the bounding boxes are motion-adaptive bounding boxes that vary in size and shape depending on the speed and direction of the moving objects and queries. Although the objects and queries move, the bounding boxes are constructed so that the objects and queries remain within a given box for a period of time so that multiple evaluations can be conducted before new bounding boxes need to be created.
  • the present invention also uses predictive query results in combination with the bounding boxes to identify when the motion functions associated with the objects and queries need to be updated and to narrow the number of objects to be considered in query evaluations.
  • the objects to be considered in query evaluations are determined based upon whether or not the bounding boxes associated with the moving objects intersect the bounding boxes associated with a given query. Only moving objects having bounding boxes that intersect the bounding box of the query are considered.
  • the necessary information about the moving objects and moving queries are contained in tables that are periodically scanned and updated. The tabulated information is used in the query evaluations.
  • the present invention also includes a computer readable medium that contains a computer executable code that when read by a computer causes the computer to perform a method for evaluating a plurality of moving queries over a plurality of moving objects.
  • the present invention is also directed to a system for evaluating a plurality of moving queries over a plurality of moving objects.
  • the system includes a plurality of moving objects and a plurality of moving queries associated with a spatial range.
  • a plurality of motion-adaptive bounding boxes are associated with one of the moving objects or moving queries.
  • the system also includes at least one monitoring system capable of monitoring the location and motion of the moving objects and moving queries and of evaluating the moving queries.
  • the monitoring system includes a motion-adaptive query index and a motion-adaptive object index for use in evaluating the plurality of moving queries.
  • FIG. 1 is a schematic representation of an embodiment of a system for evaluating moving queries over moving objects in accordance with the present invention
  • FIG. 2 a is a schematic representation of a moving query at a first time
  • FIG. 2 b is a schematic representation of the moving query at a second time
  • FIG. 2 c is a schematic representation of the moving query at a third time
  • FIG. 3 is a representation of an embodiment of bounding boxes for the moving objects and moving queries in accordance with the present invention
  • FIG. 4 is a schematic representation of an actual vs. predicted path of a moving object
  • FIG. 5 is a schematic representation of three different arrangements of objects and queries
  • FIG. 6 is a schematic representation of intersecting bounding boxes for a moving query and moving objects at two separate time periods
  • FIG. 7 is a flow chart illustrating an embodiment of a moving object table scan
  • FIG. 8 is a flow chart illustrating an embodiment of a moving query table scan.
  • FIG. 1 an embodiment of a system 10 for evaluating moving queries over moving objects in accordance with the present invention is illustrated.
  • the system 10 includes a plurality of moving objects 12 and a plurality of moving queries 14 .
  • Each of the moving objects 12 is associated with a motion vector 16 , indicating present direction and speed.
  • the present invention can accommodate any number of moving objects 12 .
  • the moving objects 12 can represent physical objects that move in a two-dimensional or three-dimensional space, for example people, cars, airplanes, cargo ships, delivery vans, cellular phones, taxi cabs, police vehicles, fire department equipment, laptop or portable computers, packages and inventory items.
  • Moving objects may also include things not traditionally associated with the conventional meaning of “object”.
  • moving objects may also include stock prices and distributed sensor readings for environmental surveillance, such as temperature and barometric pressure.
  • each moving query 14 is associated with at least one focal object 18 and a spatial range 20 surrounding that focal object 18 .
  • the moving query can be associated with a spatial range that does not have a focal object 18 .
  • the focal object 18 is stationary, and for moving queries 14 , the focal object 18 is in motion.
  • the current speed and direction of each focal object 18 is indicated by the motion vector 16 . Since the moving queries 14 move in association with the focal objects 18 , the motion vectors 16 also indicate the moving directions of the queries 14 .
  • the focal object 18 can be located throughout the area or volume of the spatial range 20 .
  • the focal object 18 can be disposed at the center of the circle for a circular spatial range 20 .
  • Suitable spatial ranges 20 include, but are not limited to, two-dimensional shapes such as circles, ovals, triangles, rectangles and squares and three-dimensional shapes such as spheres, cylinders, cones and cubes.
  • a moving query is an analysis or evaluation of the moving objects based upon parameters that spatially or temporally change.
  • An example of a moving query 14 is “Locate all the moving taxicabs that at any given time are located within a square mile of a moving car.” In this example, the taxicabs are the moving objects, and the spatial range of the moving query encompasses the one square mile spatial region surrounding the moving focal object, which is the moving car.
  • FIGS. 2 a , 2 b , and 2 c the moving objects 12 and moving queries 14 move over time relative to each other, affecting both the locations of the moving objects 12 , focal objects 18 and moving queries 14 and the results of the moving queries 14 .
  • FIG. 2 a shows, at time t 0 , the moving query 14 and four moving objects 12 , labeled 01 - 04 .
  • the moving objects 12 and focal object 18 are represented as single points.
  • the query result at time t 0 is O 2 because moving object O 2 is inside the range of spatial range 20 of the moving query 14 at that time.
  • FIG. 2 b shows that at time t 1 moving object O 2 has moved outside the spatial range 20 of the moving query 14 and that no moving object 12 is currently within the spatial range 20 .
  • the query result at time t 1 is the empty or null set.
  • FIG. 2 c shows that at time t 2 moving objects O 3 and O 4 have moved inside the spatial range 20 of the moving query 14 .
  • the query results now contain moving objects O 3 and O 4 .
  • the system 10 also includes one or more monitoring systems 22 .
  • Each monitoring system 22 is arranged to monitor and evaluate at least one of the plurality of moving queries 14 and moving objects 12 disposed within a monitoring region 24 .
  • the monitoring systems 22 can be arranged to passively receive signals that are broadcast from one of the moving objects 12 or moving focal objects 18 or to actively scan or obtain information from the moving objects 12 and focal objects 18 .
  • the moving object 12 and moving focal objects 18 include systems to report their location, for example location awareness signals systems such as a global positioning system (GPS).
  • GPS global positioning system
  • each moving object 12 and moving focal object 18 includes an excitation coil to be utilized in a radio frequency identification system (RFID).
  • RFID radio frequency identification
  • the monitor systems include signal receivers 26 .
  • Suitable receivers 26 include wireless receivers such as satellite communication dishes 28 and radio communication towers 30 or other antennas or WIFI systems.
  • the receivers 26 monitor signals broadcast from the moving objects 12 and the focal objects 18 around which the moving queries 14 are based.
  • the moving objects 12 and focal objects 18 broadcast signals containing information, for example information about their position and motion.
  • the moving objects could simply provide a unique identification signal, and the location and movement of the objects would be determined using methods such as triangulation.
  • the moving objects 12 and focal objects 18 broadcast information regarding their motion when there is a change in the function describing that motion.
  • Each monitoring system 22 includes a central processing unit (CPU) 32 or other logic control unit.
  • Suitable logic control units 32 include programmable logic controllers, computer servers, mainframe type computers, desktop computers, portable or laptop computers and personal digital assistants.
  • the logic control units 32 are capable of receiving, reading, interpreting and recording the information broadcast by the moving objects 12 and moving focal objects 18 and of analyzing and indexing solutions to the moving queries 14 .
  • the logic control units 32 are in communication with the receivers 26 . Although the logic control units 32 can operate independently as stand-alone processors, preferably the logic control units are in communication with one another across a communication network 34 .
  • Suitable communication networks 34 include local area networks (LAN), personal area networks, wide area networks (WAN), for example the Internet or World Wide Web, wired or wireless telephone networks and combinations thereof.
  • Each logic control unit 32 is in communication with one or more storage systems 37 to store the information received from the moving objects 12 , moving focal objects 18 and moving queries 14 , the evaluation results associated with the moving queries 14 , motion equations, indexes of object information and query results and other necessary information.
  • An evaluation of a moving query involves finding a set of moving objects that currently meet the moving queries criteria.
  • This solution set is the information that the person or system that created the moving query wants. For example, a dispatcher could want to locate all taxicabs within six blocks of a cellular phone carried by a person that is walking. In another example, the U.S. Coast Guard could wish to track the locations of patrolling rescue vessels in relationship to moving cargo ships to provide for the quickest response time should an incident occur. In this example, the moving queries could be associated with either the patrol vessels or the cargo ships. As the number of moving queries and moving objects grow, the amount of computational resources involved in periodically evaluating each query grows. Queries that have solution sets that change rapidly increase the demand on resources even more. This increased demand increases costs and the amount of time necessary to conduct the periodic query evaluations.
  • the system of the present invention can reduce the demands on computational resources by minimizing the number of moving objects that have to be considered in periodic query evaluations.
  • the use of a motion-adaptive query index and a motion-adaptive object index by the monitoring systems 22 provides for efficient evaluations and reduced costs.
  • each monitoring system 22 can utilize either the motion-adaptive query index or the motion-adaptive object index, preferably each monitoring system 22 maintains both of these indexes, increasing the overall performance and efficiency of the evaluation process.
  • the motion-adaptive indexes use motion-sensitive bounding boxes 36 as shown in FIG. 3 .
  • a separate motion-sensitive bounding box 36 is constructed for each moving object 12 and each moving query 14 .
  • the motion-sensitive bounding boxes 36 are then used in place of the spatial ranges 20 of the moving queries 14 in the query index and in place of the actual location of the moving objects 12 in the moving object index.
  • a spatial index method is used as the underlying index structure for the query and object indexes.
  • Any suitable spatial indexing system can be used.
  • R-tree or R+-tree indexing can be used.
  • R-tree indexing uses approximation of spatial objects with bounding objects, for example rectangles.
  • R-trees may use approximation of spatial objects with bounding rectangles with the sides of the rectangle parallel to the axes of the data space.
  • the spatial indexing system is R*-tree.
  • R*-tree indexing uses overlap enlargement criterion on the level preceding to the leaf level, reducing the number of disk accesses.
  • each bounding box 36 can be varied based upon the speed and direction of the moving object 12 or moving query 14 with which it is associated. In one embodiment, the size of a bounding box 36 can be adaptive to both the speed and the frequency of changes in direction of the object 12 or query 14 to which it is associated. If the bounding box 36 is too large, then the cost of search operations will be too high, because larger bounding boxes 36 produce increased overlapping among bounding boxes 36 . Increased bounding box 36 overlapping results in decreased indexing performance due to the increased amount of data necessitated by the increased overlapping. Conversely, if the bounding boxes 36 are too small, the moving objects 12 will quickly move out of the boxes 36 . Once the moving objects 12 are out of the bounding boxes 36 , the index is updated to reflect the new bounding boxes 36 , increasing the update cost of the index.
  • the bounding box 36 occupies a larger spatial area than the object 12 or query 14 contained within it. Hence, the moving object 12 or moving query 14 can move within the bounding box 36 .
  • the length of time that a moving object 12 or moving query 14 spends within a given bounding box 36 depends on the speed and direction of the moving object 12 or moving query 14 , the size and shape of the bounding box 36 and the initial position of the moving object 12 or query 14 within the bounding box 36 .
  • the initial position of the moving object 12 or query 14 is selected to maximize the duration of the object 12 or query 14 within the bounding box 36 given current speed and direction.
  • the moving object 12 or moving query 14 would be initially disposed at one of the corners with its motion vector 16 aligned generally along a diagonal of the rectangle. Therefore, although a given object 12 or query 14 may have changed its position from one evaluation period to the next, the object 12 or the query's spatial region 20 is still contained within the same bounding box 36 . Therefore, the position of the bounding box 36 does not have to change and the associated indexes do not have to be updated. Because the bounding boxes 36 change less often than the positions of the moving objects 12 and queries 14 , the costs associated with updating and searching the query index and the object index are significantly reduced. In addition, the time needed for each query evaluation is reduced, facilitating more frequent evaluations of query results.
  • FIG. 3 An embodiment of motion-sensitive bounding boxes for a moving object and a moving query is illustrated in FIG. 3 .
  • a motion-sensitive bounding box 36 for the query 14 or object 12 is calculated and constructed by extending the minimum bounding box of the query 14 or object 12 along the x-dimension 38 and the y-dimension 40 , or the x-, y- and z-dimensions for a three-dimensional bounding box, by a factor equal to a multiple of the component of the velocity 16 of the query 14 or object 12 in each component dimension.
  • the minimum bounding box is the smallest shape that will completely enclose the moving object 12 or the spatial region 20 of the moving query 14 .
  • the a first bounding box 36 for a moving object 12 is calculated as a rectangle with width 42 equal to the component of its velocity in the x-direction 44 multiplied by a factor ⁇ (o.vel.x* ⁇ ) and a height 46 equal to the component its velocity in the y-direction 48 multiplied by a factor ⁇ (o.vel.y* ⁇ ).
  • the bounding box 36 for a moving query 14 having a circular spatial range 20 is calculated as a rectangle with a width 42 equal to the sum of the diameter 50 of the circular spatial range 20 and the product of the x-component of its velocity 44 multiplied by a factor ⁇ ((q.vel.x)+d) and a length 46 equal to the sum of the diameter 50 of the circular spatial range 20 and the product of the y-component of its velocity 48 multiplied by a factor ⁇ ((q.vel.y)+d).
  • ((q.vel.x)+d)
  • a length 46 equal to the sum of the diameter 50 of the circular spatial range 20 and the product of the y-component of its velocity 48 multiplied by a factor ⁇ ((q.vel.y)+d).
  • the values for ⁇ and ⁇ may be selected depending on the speed of a moving object 12 or moving focal object 18 and how often the object changes its moving direction. For example, at relatively high speeds ⁇ and ⁇ are relatively small to prevent excessively large bounding boxes 36 .
  • the values for ⁇ and ⁇ can be calculated based on an analytical model or on simulations. A table of suitable values for ⁇ and ⁇ can be computed in advance for various speeds and mean times between changes in direction. Any suitable analytical method or simulation known and available to one of skill in the art can be used to determine ⁇ and ⁇ .
  • the configuration of the motion-sensitive bounding box 36 varies with or adapts to the moving object's behavior, and the indexing approach is called motion-adaptive indexing. With bounding boxes 36 in the index, computations are needed to check whether or not the moving objects 12 are inside the moving queries 14 . Motion functions are needed in such computations.
  • predictive query results are used to increase the speed and efficiency of each query evaluation.
  • predictive query results can be used separately, preferably these results are used in conjunction with motion-adaptive query and object indexes.
  • Predictive query results also use bounding boxes 36 associated with each moving object 12 and moving query 14 . Suitable types of bounding boxes 36 are the same as for the motion-adaptive query and object indexes.
  • the motion of each individual moving object 12 including the focal objects 18 of each individual moving query 14 , is modeled as a motion function of its location at a particular instant in time, a velocity vector and time.
  • This modeling creates a motion function that, in combination with the bounding box 36 , is used to determine the location of moving objects 12 and moving queries 14 in the future and to compute or predict future query results. Since the motion functions of the moving objects can change over time, the predictive results are valid only for a defined period of time.
  • FIG. 4 An example of the actual path traversed by a moving object 12 and the path predicted by the motion function is illustrated in FIG. 4 .
  • a plurality of discrete predicted positions 52 - 56 are illustrated along an initial predicted path 58 .
  • a corresponding plurality of discrete actual positions 60 - 65 are shown along the actual path 66 .
  • a motion or velocity vector 16 is associated with each position 60 - 65 on the actual path 66 .
  • the motion vector 16 represents the actual velocity of the moving object 12 at that position.
  • the first predictive position 52 is set to coincide with the first actual position 60 of the moving object 12 .
  • the initial velocity vector 68 for the predicted path 58 is equivalent to the actual velocity vector 68 associated with the moving object 12 at the first actual position 60 .
  • the actual path 66 and predicted path 58 can diverge. Divergence between these paths is acceptable and tolerated when the distance between the actual and the predicted position is within a pre-determined threshold ( ⁇ ) 70 . For a given evaluation, if the distance between the actual position and the predicted position is less than or equal to the threshold, the velocity vector used for the predicted path is maintained. When this distance is greater than the threshold, the moving object 12 reports an updated actual position and a current velocity vector to the monitoring system 22 . The motion function for the moving object 12 is updated accordingly and used for subsequent predicted path locations.
  • a moving object 12 does not report its position, velocity function and time until its predicted position varies from its actual position by more than the threshold value ⁇ .
  • the threshold value ⁇ represents an application specific tolerance. Typically, this figure is as small as possible. In one embodiment, the threshold value ⁇ is set to a tolerance of less than about 2%.
  • the temporal interval used to calculate the query results is set to a time interval in which the moving object 12 is expected to be valid. As long as moving objects do not change their velocity vectors, this information will remain valid. When they do, additional processing and updates to the query results are needed.
  • predicted positions 53 , 54 , 55 have a distance from actual positions 61 , 62 , 63 of less than the pre-determined threshold ⁇ 70 .
  • the predicted positions 53 , 54 , 55 are within the threshold even though the velocity vectors 16 for the actual positions 62 , 63 differ from the initial velocity vector 68 used to calculate the predicted path 58 . Therefore, the predictive motion function used to calculate the predictive path 58 is not changed.
  • the fifth predicted position 56 has a distance from the fifth actual position 64 that exceeds the pre-determined threshold ⁇ . Therefore, the fifth predicted position 56 is moved to an adjusted fifth predicted position 72 that corresponds to the fifth actual position 64 .
  • a new motion function is established using the velocity vector 74 associated with the fifth actual position 64 .
  • the updated motion information is used to calculate a new predicted path 76 and the sixth predicted position 78 of the moving object. Using predicted query results decreases the amount of information sent to and recorded by the monitoring systems 22 , saving time, computational resources, and costs.
  • FIG. 5 illustrates three different cases that arise when computing predicted query results.
  • Case I 80 is the case of a static query 82 and a moving object 12 .
  • the query result for the interval between time t 0 +a and time t 0 +b can be predicted.
  • An example of a system having moving objects and static queries is illustrated in co-pending U.S. patent application Ser. No. 10/671,932, filed on Sept. 29, 2003, by Chen et al., and titled “Method and Structure for Monitoring Moving Objects”. The entire disclosure of that application is incorporated herein by reference.
  • Case II 84 involves a static object 86 and a moving query 14 .
  • Case III 88 involves a moving object 12 and a moving query 14 .
  • the motion functions of both the moving object 12 and the moving query 14 are used to find out the time interval when the moving object 12 will be inside the spatial range 20 of the moving query 14 .
  • the moving objects 12 that are most likely to be in the query results are chosen for analysis. Objects 12 that are too far away from the moving query 14 are not selected, because the predicted query results are less likely to remain valid. In other words, the farther away a moving object 12 is from the moving query 14 , the longer the period of time before the moving object 12 enters the spatial range 20 of the query 14 . The longer the time period is before the moving object 12 enters the spatial range 20 of the query 14 , the greater the likelihood that the moving functions associated with either the moving object 12 or the focal object 18 of the query 14 will have changed, invalidating the predicted query results.
  • the bounding boxes 36 associated with the moving objects 12 and the moving queries 14 are used to decide which objects 12 should be considered in performing predictive query results. For a given moving query 14 and bounding box 36 , those objects 12 having bounding boxes intersecting the query's bounding box 36 are considered as potential candidates for predictive query results.
  • FIG. 6 An example of a predictive query result for a given moving query 14 over a plurality of moving objects 12 is illustrated in FIG. 6 .
  • the moving query 14 is disposed within an associated moving query bounding box 90 .
  • first, second and third moving objects 94 - 96 are disposed within respective bounding boxes 98 - 100 .
  • the moving query bounding box 90 intersects with the bounding boxes 98 , 99 of the first and second moving objects 94 , 95 . Therefore, the first and third moving objects 94 , 95 are considered in the predictive query analysis, and the motion functions associated with these two moving objects 12 are used to calculate the time intervals when the objects 12 will be inside the spatial range 20 of the moving query 14 .
  • the predictive query result contains only the first moving object 94 and its interval.
  • the bounding box 100 associated with the third moving object 96 also intersects with the moving query bounding box 90 .
  • the predictive query result also contains both the first and third objects 94 , 96 and the intervals associated with these moving objects.
  • each monitoring system 22 periodically determines the results, for example a set of moving objects 12 , of all moving queries 14 within its respective monitoring regions 24 .
  • the monitoring systems 22 use a motion-adaptive indexing process in accordance with the present invention to evaluate the moving queries 14 .
  • the results of these processes are maintained in a motion-adaptive object index and a motion-adaptive query index.
  • each monitoring system 22 maintains a moving object table (MOT) and a moving query table (MQT) for the moving objects 12 and moving queries 14 within its monitoring range 24 .
  • MOT moving object table
  • MQT moving query table
  • the MOT maintains information regarding the moving objects 12 , including the object ID, the query ID (if the object is the focal object of a moving query), the position, the velocity vector, the timestamp of the last change in motion function, the bounding box, the estimated time before the object changes its motion function and a flag indicating whether or not the motion function has been changed since the last evaluation.
  • the MQT maintains information regarding the moving queries 14 , including the query ID, the position, the velocity vector, the timestamp of the last change in motion function, the radius of the spatial query range, the bounding box, the estimated time before the query will change its motion function, and the flag indicating whether or not the motion function has been changed since the last re-evaluation. All of this information can be supplied to the monitoring systems by the moving objects.
  • these tables could be maintained in a centralized database that is accessible by the each monitoring system, preferably these tables are maintained in the storage systems 37 disposed in each monitoring system 22 .
  • Periodic evaluations of moving queries 14 are performed by scanning these two tables and performing updates searches on the motion-adaptive indexes as needed in order to maintain up-to-date query results. Since changes in query results due to object movements only occur during an evaluation, the period of time between subsequent evaluations is made as short as possible to ensure that the query results are as up-to-date as possible. Making each evaluation itself as efficient as possible contributes to shorter cycle times between subsequent evaluations. In addition, there are costs associated with updating the indexes every time a new position is received.
  • the entries in the MOT and MQT are updated whenever new motion updates are received from the moving objects. However, these motion updates are not reflected in the query results until the next periodic query evaluation is performed.
  • two scans are performed.
  • the first scan covers the MOT
  • the second scan covers the MQT.
  • the MOT scan is used to update the motion-adaptive object index and to differentially update some of the query results by searching the motion-adaptive query index.
  • the MQT scan is used to update the motion-adaptive query index and to re-calculate some of the query results by performing searches on the motion-adaptive object index.
  • the two scans can be performed in any order. For example, the MQT scan can be performed first followed by the MOT scan.
  • FIG. 7 illustrates an embodiment of a single MOT scan 102 for a given monitoring system 22 .
  • the monitoring system 22 checks to see if every entry in the MOT has been examined 104 . If every entry has been examined during the present scan, then the MOT scan stops. If entries remain to be scanned, the monitoring system 22 obtains a new entry from the MOT 106 . The monitoring system then evaluates whether or not the selected entry has been invalidated, or exceeded the limits of its bounding box 108 . If the bounding box is still valid, then the monitoring system 22 returns to see if every entry in the MOT has been examined 104 . If the bounding box is no longer valid, the monitoring system 22 calculates a new bounding box and updates the motion-adaptive object index accordingly 110 .
  • the multiplying factor ⁇ used for calculating this new bounding box is selected adaptively based on the selected object's speed and the mean time before the selected object is expected to change its motion function.
  • the monitoring system then checks if the motion function associated with the selected entry has changed 112 . If the motion function has not changed, then the monitoring system returns to see if every entry in the MOT has been examined 104 . If the motion function has changed, the data associated with the object's bounding box in the motion-adaptive object index including the motion function are updated 114 . Once the bounding box data are updated, the monitoring system 22 performs two searches on the motion-adaptive query index.
  • the monitoring system 22 searches the motion-adaptive query index to locate all the queries 14 whose bounding boxes 36 intersect with the old bounding box of the selected object 116 . The monitoring system 22 then removes the selected object 12 from the results of these moving queries 14 .
  • the monitoring system 22 searches the motion-adaptive query index again to identify all the queries 14 whose bounding boxes 36 intersect with the new bounding box of the selected object 118 . For these queries 14 , the monitoring system 22 uses the selected object to perform result prediction and to calculate the intervals when the predicted query results will be valid. The monitoring system 22 then adds the selected object and the predicted interval to the proper query results and returns to see if every entry in the MOT has been examined 104 .
  • FIG. 8 illustrates an embodiment of a single MQT scan 120 for a given monitoring system 22 .
  • the single MQT scan is very similar to the MOT scan described with respect to FIG. 7 .
  • the monitoring system 22 checks to see if every entry in the MQT has been examined 122 . If yes, then the monitoring system 22 stops the scan. If not, then the monitoring system 22 obtains a new entry from the MQT 124 . The monitoring system 22 then determines whether or not the selected moving query 14 has invalidated its bounding box 125 . If not, then the monitoring system 22 checks to see if every entry in the MQT has been examined 122 .
  • the monitoring system 22 calculates the new bounding box 36 and updates the motion-adaptive query index 126 .
  • the monitoring system 22 determines if the motion function has changed 128 . If not, then the monitoring system 22 checks to see if every entry in the MQT has been examined 122 . If the motion function has changed, then the monitoring system 22 updates the motion functions associated with the selected query in the motion-adaptive index 130 . Once the motion-adaptive query index is updated 130 , the monitoring system 22 retrieves all of the moving objects 12 whose bounding boxes 36 intersect with the new bounding box of the selected query 132 . Unlike the MOT scan, however, only one search operation against the motion-adaptive object index is performed after the query index is updated 132 . For the retrieved objects, the monitoring system 22 performs result prediction against the query. The monitoring system then returns to see if every entry in the MQT has been examined 122 .
  • the system and method of the present invention for processing continually moving range queries 14 can be used to evaluate continually moving k-nearest neighbors (k-NN) queries.
  • k-NN queries three modifications are made. Instead of storing time intervals in query results, the distance of the objects 12 from the focal object 18 of the query 14 as a function of time is stored.
  • the monitoring system 22 determines a safe radius that is guaranteed to contain at least k moving objects until the next time such safe radius is calculated.
  • the kNN query is installed as a standard moving query with its range equal to the safe radius.
  • the results are sorted based on their distances to their associated focal objects 18 by using the distance functions stored within the query results. The top k results are then marked as the current results.
  • the safe radius ensures that there will be at least k objects contained in the radius during the next t time units.
  • the safe radius is calculated by retrieving the current k-nearest neighbors and calculating the maximum possible distance of the each one of the current k-nearest neighbors from the focal object 18 of the query 14 at the end of the t time units.
  • the maximum distance can be calculated using the focal object's motion function and the upper limits on the maximum speeds of the current k-nearest neighbors.
  • the method of the present invention is also suitable for use in other query and object systems.
  • the target objects can be stationary, and the queries can be moving.
  • An example of such a moving query is: “Give me the locations of the wireless towers within 1 mile of my car during the next half an hour,” posted by a driver of a moving car, where the focal object of the query is the car on the move.
  • the queries can be associated with stationary focal objects, and the objects can be moving.
  • An example of such a query is: “Give me the list of AAA vehicles that are currently on service call in the downtown area of Atlanta during the next hour.”

Abstract

The present invention is directed to a system and a method for evaluating a plurality of moving queries over moving objects. The method, which can be embodied in a computer readable medium containing computer readable code, constructs motion-adaptive bounding boxes around the objects and queries and indexes the objects and queries based upon the bounding boxes. Predictive query results are used to optimize the evaluation of the moving queries. The bounding boxes vary in size and shape depending on the speed and motion direction of the objects and queries. The system of the present invention includes the moving objects and queries, each having an associated motion-adaptive bounding box. The system also provides for a monitoring system capable of monitoring the location and motion of the moving objects and moving queries and of evaluating the moving queries. The monitoring system includes a motion-adaptive query index and a motion-adaptive object index.

Description

FIELD OF THE INVENTION
This invention relates to location and management of many objects. More specifically, present invention relates to the evaluation of moving continual queries over moving objects.
BACKGROUND OF THE INVENTION
Advances in mobile computing and object or position sensing technologies, for example global positioning systems (GPS), radio frequency identification (RFID), Bluetooth technologies and wireless networking technologies, have facilitated the emergence of numerous applications for the continuous location and management of moving objects. These emerging applications include, for example, environmental awareness applications, object tracking and monitoring services, inventory control systems, wireless communication systems, and computer games. These applications need to track many moving objects simultaneously, including physical objects that move in two-dimensional or three-dimensional space, for example people, cars, airplanes and cargo ships. Moving objects can also be stock prices, distributed sensor readings for environmental surveillance including temperature and pressure, and public health data such as a number of sick people and a type of illness.
In order to provide tracking capabilities, the moving objects are equipped with location-awareness or remote identification equipment and are treated as points in multidimensional space whose positions change with time. The locations of these points can be tracked and queried. Tracking of points in space can be accomplished by technologies available in the art such as GPS, triangulation, and RFID systems. These tracking systems are used to locate objects or points that satisfy a given set of criteria called queries. These queries over moving objects tend to be continual, i.e., repeated periodically over time. In addition, queries can be stationary or can be associated with moving objects and hence moving. Moving queries can be general range queries, for example finding all the objects currently located inside the boundaries of a range, or k-nearest neighbors (kNN) queries, for example finding the k-nearest objects that are closest to a given point.
Previous approaches, however, assumed that the queries were stationary. A continual stationary range query specifies a spatial range together with a time interval and identifies the set of objects located within the spatial range during the specified time interval. The result of the query changes as time progresses due to the moving nature of the objects that are being queried. A moving range query has a fundamental difference when compared with a stationary query. A moving range query is associated with a moving object, called the focal object of the query, and the spatial range of the query moves together with the movement of the query's focal object. With a moving query, the identification of objects that satisfy the query over a given time period becomes more complex.
Because of the continuously changing positions of moving objects, it is very time consuming to process queries over moving objects. This problem becomes even more challenging when the queries are also moving. To speed up the query processing, various approaches have been proposed to index moving objects alone (e.g., “Indexing moving objects,” by P. K. Agarwal et al., Proceedings of ACM Symposium on Principles of Database Systems, 2000; “On indexing mobile objects,” by G. Kollios et al., Proceedings of Symposium on Principles of Database Systems, 1999), or to index queries alone (e.g., “Query indexing and velocity constrained indexing: scalable techniques for continuous queries on moving objects,” by S. Prabhakar et al., IEEE Transactions on Computers, 51:1124-1140, October 2002).
With both moving queries and moving objects, searching and maintaining the object index or the query index becomes exceedingly costly, because updates to the indexes are required once either the objects or the queries have moved. As an alternative to indexing, a brute force linear search, where each moving query is evaluated against every moving object, can be used to process moving queries over moving objects. This brute force approach, however, is not scalable to a large number of moving queries and moving objects. The need exists, therefore, for an efficient system and method for evaluating moving queries over moving objects. In addition, it is desired to provide the fastest access possible to large volumes of data and to preserve the spatial relationships among indexed objects such as nesting and neighborhood.
SUMMARY OF THE INVENTION
The present invention is directed to a system and a method for evaluating a plurality of moving queries over moving objects. The method for evaluating the moving queries involves constructing a bounding box to contain and to correspond with each one of the moving objects and moving queries. Using the corresponding bounding box, an object index is created for each one of the moving objects, and a query index is created for each one of the moving queries. The objects and queries are indexed based upon the associated bounding boxes as opposed to the location of the objects and queries themselves. The moving queries are then evaluated periodically using the query and object indexes.
The bounding boxes are motion-adaptive bounding boxes that vary in size and shape depending on the speed and direction of the moving objects and queries. Although the objects and queries move, the bounding boxes are constructed so that the objects and queries remain within a given box for a period of time so that multiple evaluations can be conducted before new bounding boxes need to be created.
The present invention also uses predictive query results in combination with the bounding boxes to identify when the motion functions associated with the objects and queries need to be updated and to narrow the number of objects to be considered in query evaluations. The objects to be considered in query evaluations are determined based upon whether or not the bounding boxes associated with the moving objects intersect the bounding boxes associated with a given query. Only moving objects having bounding boxes that intersect the bounding box of the query are considered. The necessary information about the moving objects and moving queries are contained in tables that are periodically scanned and updated. The tabulated information is used in the query evaluations. The present invention also includes a computer readable medium that contains a computer executable code that when read by a computer causes the computer to perform a method for evaluating a plurality of moving queries over a plurality of moving objects.
The present invention is also directed to a system for evaluating a plurality of moving queries over a plurality of moving objects. The system includes a plurality of moving objects and a plurality of moving queries associated with a spatial range. A plurality of motion-adaptive bounding boxes are associated with one of the moving objects or moving queries. The system also includes at least one monitoring system capable of monitoring the location and motion of the moving objects and moving queries and of evaluating the moving queries. The monitoring system includes a motion-adaptive query index and a motion-adaptive object index for use in evaluating the plurality of moving queries.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic representation of an embodiment of a system for evaluating moving queries over moving objects in accordance with the present invention;
FIG. 2 a is a schematic representation of a moving query at a first time;
FIG. 2 b is a schematic representation of the moving query at a second time;
FIG. 2 c is a schematic representation of the moving query at a third time;
FIG. 3 is a representation of an embodiment of bounding boxes for the moving objects and moving queries in accordance with the present invention;
FIG. 4 is a schematic representation of an actual vs. predicted path of a moving object;
FIG. 5 is a schematic representation of three different arrangements of objects and queries;
FIG. 6 is a schematic representation of intersecting bounding boxes for a moving query and moving objects at two separate time periods;
FIG. 7 is a flow chart illustrating an embodiment of a moving object table scan; and
FIG. 8 is a flow chart illustrating an embodiment of a moving query table scan.
DETAILED DESCRIPTION
The system and method in accordance with the present invention can be applied to moving continual range queries in multidimensional space. Referring initially to FIG. 1, an embodiment of a system 10 for evaluating moving queries over moving objects in accordance with the present invention is illustrated. As shown, the system 10 includes a plurality of moving objects 12 and a plurality of moving queries 14. Each of the moving objects 12 is associated with a motion vector 16, indicating present direction and speed. The present invention can accommodate any number of moving objects 12. The moving objects 12 can represent physical objects that move in a two-dimensional or three-dimensional space, for example people, cars, airplanes, cargo ships, delivery vans, cellular phones, taxi cabs, police vehicles, fire department equipment, laptop or portable computers, packages and inventory items. Moving objects may also include things not traditionally associated with the conventional meaning of “object”. For example, moving objects may also include stock prices and distributed sensor readings for environmental surveillance, such as temperature and barometric pressure.
Any suitable method of defining temporal and spatial ranges can be used to define the moving queries 14. In one embodiment, each moving query 14 is associated with at least one focal object 18 and a spatial range 20 surrounding that focal object 18. Alternatively, the moving query can be associated with a spatial range that does not have a focal object 18. For stationary queries, the focal object 18 is stationary, and for moving queries 14, the focal object 18 is in motion. The current speed and direction of each focal object 18 is indicated by the motion vector 16. Since the moving queries 14 move in association with the focal objects 18, the motion vectors 16 also indicate the moving directions of the queries 14. The focal object 18 can be located throughout the area or volume of the spatial range 20. For example, the focal object 18 can be disposed at the center of the circle for a circular spatial range 20.
Suitable spatial ranges 20 include, but are not limited to, two-dimensional shapes such as circles, ovals, triangles, rectangles and squares and three-dimensional shapes such as spheres, cylinders, cones and cubes. For example, in FIG. 1 the moving queries 14 are illustrated with circular spatial query ranges 20. In general, a moving query is an analysis or evaluation of the moving objects based upon parameters that spatially or temporally change. An example of a moving query 14 is “Locate all the moving taxicabs that at any given time are located within a square mile of a moving car.” In this example, the taxicabs are the moving objects, and the spatial range of the moving query encompasses the one square mile spatial region surrounding the moving focal object, which is the moving car.
As shown in FIGS. 2 a, 2 b, and 2 c, the moving objects 12 and moving queries 14 move over time relative to each other, affecting both the locations of the moving objects 12, focal objects 18 and moving queries 14 and the results of the moving queries 14. FIG. 2 a shows, at time t0, the moving query 14 and four moving objects 12, labeled 01-04. The moving objects 12 and focal object 18 are represented as single points. The query result at time t0 is O2 because moving object O2 is inside the range of spatial range 20 of the moving query 14 at that time. FIG. 2 b shows that at time t1 moving object O2 has moved outside the spatial range 20 of the moving query 14 and that no moving object 12 is currently within the spatial range 20. Hence, the query result at time t1 is the empty or null set. FIG. 2 c shows that at time t2 moving objects O3 and O4 have moved inside the spatial range 20 of the moving query 14. As a result, the query results now contain moving objects O3 and O4.
The system 10 also includes one or more monitoring systems 22. Each monitoring system 22 is arranged to monitor and evaluate at least one of the plurality of moving queries 14 and moving objects 12 disposed within a monitoring region 24. The monitoring systems 22 can be arranged to passively receive signals that are broadcast from one of the moving objects 12 or moving focal objects 18 or to actively scan or obtain information from the moving objects 12 and focal objects 18. In one embodiment, the moving object 12 and moving focal objects 18 include systems to report their location, for example location awareness signals systems such as a global positioning system (GPS). Alternatively, each moving object 12 and moving focal object 18 includes an excitation coil to be utilized in a radio frequency identification system (RFID).
There is a separate monitoring region 24 for each monitoring system 22, and these monitoring regions 24 can be completely separate or can overlap. The monitor systems include signal receivers 26. Suitable receivers 26 include wireless receivers such as satellite communication dishes 28 and radio communication towers 30 or other antennas or WIFI systems. The receivers 26 monitor signals broadcast from the moving objects 12 and the focal objects 18 around which the moving queries 14 are based.
The moving objects 12 and focal objects 18 broadcast signals containing information, for example information about their position and motion. Alternatively, the moving objects could simply provide a unique identification signal, and the location and movement of the objects would be determined using methods such as triangulation. Preferably, the moving objects 12 and focal objects 18 broadcast information regarding their motion when there is a change in the function describing that motion.
Each monitoring system 22 includes a central processing unit (CPU) 32 or other logic control unit. Suitable logic control units 32 include programmable logic controllers, computer servers, mainframe type computers, desktop computers, portable or laptop computers and personal digital assistants. The logic control units 32 are capable of receiving, reading, interpreting and recording the information broadcast by the moving objects 12 and moving focal objects 18 and of analyzing and indexing solutions to the moving queries 14. The logic control units 32 are in communication with the receivers 26. Although the logic control units 32 can operate independently as stand-alone processors, preferably the logic control units are in communication with one another across a communication network 34. Suitable communication networks 34 include local area networks (LAN), personal area networks, wide area networks (WAN), for example the Internet or World Wide Web, wired or wireless telephone networks and combinations thereof. Each logic control unit 32 is in communication with one or more storage systems 37 to store the information received from the moving objects 12, moving focal objects 18 and moving queries 14, the evaluation results associated with the moving queries 14, motion equations, indexes of object information and query results and other necessary information.
An evaluation of a moving query involves finding a set of moving objects that currently meet the moving queries criteria. This solution set is the information that the person or system that created the moving query wants. For example, a dispatcher could want to locate all taxicabs within six blocks of a cellular phone carried by a person that is walking. In another example, the U.S. Coast Guard could wish to track the locations of patrolling rescue vessels in relationship to moving cargo ships to provide for the quickest response time should an incident occur. In this example, the moving queries could be associated with either the patrol vessels or the cargo ships. As the number of moving queries and moving objects grow, the amount of computational resources involved in periodically evaluating each query grows. Queries that have solution sets that change rapidly increase the demand on resources even more. This increased demand increases costs and the amount of time necessary to conduct the periodic query evaluations.
The system of the present invention, can reduce the demands on computational resources by minimizing the number of moving objects that have to be considered in periodic query evaluations. In one embodiment, the use of a motion-adaptive query index and a motion-adaptive object index by the monitoring systems 22 provides for efficient evaluations and reduced costs. Although each monitoring system 22 can utilize either the motion-adaptive query index or the motion-adaptive object index, preferably each monitoring system 22 maintains both of these indexes, increasing the overall performance and efficiency of the evaluation process. Instead of indexing directly on the positions of moving objects 12, focal objects 18 and moving queries 14, the motion-adaptive indexes use motion-sensitive bounding boxes 36 as shown in FIG. 3. A separate motion-sensitive bounding box 36 is constructed for each moving object 12 and each moving query 14. The motion-sensitive bounding boxes 36 are then used in place of the spatial ranges 20 of the moving queries 14 in the query index and in place of the actual location of the moving objects 12 in the moving object index.
A spatial index method is used as the underlying index structure for the query and object indexes. Any suitable spatial indexing system can be used. For example R-tree or R+-tree indexing can be used. R-tree indexing uses approximation of spatial objects with bounding objects, for example rectangles. R-trees may use approximation of spatial objects with bounding rectangles with the sides of the rectangle parallel to the axes of the data space. In one embodiment, the spatial indexing system is R*-tree. R*-tree indexing uses overlap enlargement criterion on the level preceding to the leaf level, reducing the number of disk accesses.
The size and shape of each bounding box 36 can be varied based upon the speed and direction of the moving object 12 or moving query 14 with which it is associated. In one embodiment, the size of a bounding box 36 can be adaptive to both the speed and the frequency of changes in direction of the object 12 or query 14 to which it is associated. If the bounding box 36 is too large, then the cost of search operations will be too high, because larger bounding boxes 36 produce increased overlapping among bounding boxes 36. Increased bounding box 36 overlapping results in decreased indexing performance due to the increased amount of data necessitated by the increased overlapping. Conversely, if the bounding boxes 36 are too small, the moving objects 12 will quickly move out of the boxes 36. Once the moving objects 12 are out of the bounding boxes 36, the index is updated to reflect the new bounding boxes 36, increasing the update cost of the index.
In general, the bounding box 36 occupies a larger spatial area than the object 12 or query 14 contained within it. Hence, the moving object 12 or moving query 14 can move within the bounding box 36. The length of time that a moving object 12 or moving query 14 spends within a given bounding box 36 depends on the speed and direction of the moving object 12 or moving query 14, the size and shape of the bounding box 36 and the initial position of the moving object 12 or query 14 within the bounding box 36.
The initial position of the moving object 12 or query 14 is selected to maximize the duration of the object 12 or query 14 within the bounding box 36 given current speed and direction. For a rectangular bounding box 36, the moving object 12 or moving query 14 would be initially disposed at one of the corners with its motion vector 16 aligned generally along a diagonal of the rectangle. Therefore, although a given object 12 or query 14 may have changed its position from one evaluation period to the next, the object 12 or the query's spatial region 20 is still contained within the same bounding box 36. Therefore, the position of the bounding box 36 does not have to change and the associated indexes do not have to be updated. Because the bounding boxes 36 change less often than the positions of the moving objects 12 and queries 14, the costs associated with updating and searching the query index and the object index are significantly reduced. In addition, the time needed for each query evaluation is reduced, facilitating more frequent evaluations of query results.
An embodiment of motion-sensitive bounding boxes for a moving object and a moving query is illustrated in FIG. 3. Given a moving query 14 or a moving object 12 and its associated velocity vector 16, which can be received or calculated, a motion-sensitive bounding box 36 for the query 14 or object 12 is calculated and constructed by extending the minimum bounding box of the query 14 or object 12 along the x-dimension 38 and the y-dimension 40, or the x-, y- and z-dimensions for a three-dimensional bounding box, by a factor equal to a multiple of the component of the velocity 16 of the query 14 or object 12 in each component dimension. The minimum bounding box is the smallest shape that will completely enclose the moving object 12 or the spatial region 20 of the moving query 14.
For example, the a first bounding box 36 for a moving object 12 is calculated as a rectangle with width 42 equal to the component of its velocity in the x-direction 44 multiplied by a factor α (o.vel.x*α) and a height 46 equal to the component its velocity in the y-direction 48 multiplied by a factor α (o.vel.y*α). The bounding box 36 for a moving query 14 having a circular spatial range 20 is calculated as a rectangle with a width 42 equal to the sum of the diameter 50 of the circular spatial range 20 and the product of the x-component of its velocity 44 multiplied by a factor β ((q.vel.x)+d) and a length 46 equal to the sum of the diameter 50 of the circular spatial range 20 and the product of the y-component of its velocity 48 multiplied by a factor β ((q.vel.y)+d). The use of rectangular bounding boxes 36 provides a more efficient indexing method during data updates. Other approaches can also be used to construct suitable motion-sensitive bounding boxes 36.
The values for α and β may be selected depending on the speed of a moving object 12 or moving focal object 18 and how often the object changes its moving direction. For example, at relatively high speeds α and β are relatively small to prevent excessively large bounding boxes 36. The values for α and β can be calculated based on an analytical model or on simulations. A table of suitable values for α and β can be computed in advance for various speeds and mean times between changes in direction. Any suitable analytical method or simulation known and available to one of skill in the art can be used to determine α and β. As a result, the configuration of the motion-sensitive bounding box 36 varies with or adapts to the moving object's behavior, and the indexing approach is called motion-adaptive indexing. With bounding boxes 36 in the index, computations are needed to check whether or not the moving objects 12 are inside the moving queries 14. Motion functions are needed in such computations.
In another embodiment, predictive query results are used to increase the speed and efficiency of each query evaluation. Although predictive query results can be used separately, preferably these results are used in conjunction with motion-adaptive query and object indexes. Predictive query results also use bounding boxes 36 associated with each moving object 12 and moving query 14. Suitable types of bounding boxes 36 are the same as for the motion-adaptive query and object indexes. In order to generate predictive query results, the motion of each individual moving object 12, including the focal objects 18 of each individual moving query 14, is modeled as a motion function of its location at a particular instant in time, a velocity vector and time. This modeling creates a motion function that, in combination with the bounding box 36, is used to determine the location of moving objects 12 and moving queries 14 in the future and to compute or predict future query results. Since the motion functions of the moving objects can change over time, the predictive results are valid only for a defined period of time.
An example of the actual path traversed by a moving object 12 and the path predicted by the motion function is illustrated in FIG. 4. A plurality of discrete predicted positions 52-56 are illustrated along an initial predicted path 58. In addition, a corresponding plurality of discrete actual positions 60-65 are shown along the actual path 66. A motion or velocity vector 16, represented by an arrow, is associated with each position 60-65 on the actual path 66. The motion vector 16 represents the actual velocity of the moving object 12 at that position. Initially, the first predictive position 52 is set to coincide with the first actual position 60 of the moving object 12. The initial velocity vector 68 for the predicted path 58 is equivalent to the actual velocity vector 68 associated with the moving object 12 at the first actual position 60.
Because the velocity vector 16 of the moving object 12 may change over time due to changes in speed or direction, the actual path 66 and predicted path 58 can diverge. Divergence between these paths is acceptable and tolerated when the distance between the actual and the predicted position is within a pre-determined threshold (Δ) 70. For a given evaluation, if the distance between the actual position and the predicted position is less than or equal to the threshold, the velocity vector used for the predicted path is maintained. When this distance is greater than the threshold, the moving object 12 reports an updated actual position and a current velocity vector to the monitoring system 22. The motion function for the moving object 12 is updated accordingly and used for subsequent predicted path locations. Preferably, a moving object 12 does not report its position, velocity function and time until its predicted position varies from its actual position by more than the threshold value Δ. The threshold value Δ represents an application specific tolerance. Typically, this figure is as small as possible. In one embodiment, the threshold value Δ is set to a tolerance of less than about 2%.
The temporal interval used to calculate the query results is set to a time interval in which the moving object 12 is expected to be valid. As long as moving objects do not change their velocity vectors, this information will remain valid. When they do, additional processing and updates to the query results are needed.
As illustrated, for example, predicted positions 53,54,55 have a distance from actual positions 61,62,63 of less than the pre-determined threshold Δ 70. The predicted positions 53,54,55 are within the threshold even though the velocity vectors 16 for the actual positions 62,63 differ from the initial velocity vector 68 used to calculate the predicted path 58. Therefore, the predictive motion function used to calculate the predictive path 58 is not changed. The fifth predicted position 56, however, has a distance from the fifth actual position 64 that exceeds the pre-determined threshold Δ. Therefore, the fifth predicted position 56 is moved to an adjusted fifth predicted position 72 that corresponds to the fifth actual position 64. In addition, a new motion function is established using the velocity vector 74 associated with the fifth actual position 64. The updated motion information is used to calculate a new predicted path 76 and the sixth predicted position 78 of the moving object. Using predicted query results decreases the amount of information sent to and recorded by the monitoring systems 22, saving time, computational resources, and costs.
FIG. 5 illustrates three different cases that arise when computing predicted query results. Case I 80 is the case of a static query 82 and a moving object 12. Using the motion function of moving object at time t0, the query result for the interval between time t0+a and time t0+b can be predicted. An example of a system having moving objects and static queries is illustrated in co-pending U.S. patent application Ser. No. 10/671,932, filed on Sept. 29, 2003, by Chen et al., and titled “Method and Structure for Monitoring Moving Objects”. The entire disclosure of that application is incorporated herein by reference. Case II 84 involves a static object 86 and a moving query 14. The motion function of the moving query 14 can be used to predict the query result and the interval over which this result will remain valid. Case III 88 involves a moving object 12 and a moving query 14. The motion functions of both the moving object 12 and the moving query 14 are used to find out the time interval when the moving object 12 will be inside the spatial range 20 of the moving query 14.
In order to create the most accurate and comprehensive prediction for a given moving query 14, the moving objects 12 that are most likely to be in the query results are chosen for analysis. Objects 12 that are too far away from the moving query 14 are not selected, because the predicted query results are less likely to remain valid. In other words, the farther away a moving object 12 is from the moving query 14, the longer the period of time before the moving object 12 enters the spatial range 20 of the query 14. The longer the time period is before the moving object 12 enters the spatial range 20 of the query 14, the greater the likelihood that the moving functions associated with either the moving object 12 or the focal object 18 of the query 14 will have changed, invalidating the predicted query results.
In one embodiment, the bounding boxes 36 associated with the moving objects 12 and the moving queries 14 are used to decide which objects 12 should be considered in performing predictive query results. For a given moving query 14 and bounding box 36, those objects 12 having bounding boxes intersecting the query's bounding box 36 are considered as potential candidates for predictive query results.
An example of a predictive query result for a given moving query 14 over a plurality of moving objects 12 is illustrated in FIG. 6. The moving query 14 is disposed within an associated moving query bounding box 90. In addition, first, second and third moving objects 94-96 are disposed within respective bounding boxes 98-100. At time t a 92, the moving query bounding box 90 intersects with the bounding boxes 98,99 of the first and second moving objects 94,95. Therefore, the first and third moving objects 94,95 are considered in the predictive query analysis, and the motion functions associated with these two moving objects 12 are used to calculate the time intervals when the objects 12 will be inside the spatial range 20 of the moving query 14. However, since the second moving object 95, as indicated by its motion vector 16, is moving away from the spatial range 20 of the moving query 14, the predictive query result contains only the first moving object 94 and its interval. At the next time interval t b 102, the bounding box 100 associated with the third moving object 96 also intersects with the moving query bounding box 90. As a result, the predictive query result also contains both the first and third objects 94,96 and the intervals associated with these moving objects.
In order to use the system 10 of the present invention to evaluate moving queries 14 over moving objects 12, each monitoring system 22 periodically determines the results, for example a set of moving objects 12, of all moving queries 14 within its respective monitoring regions 24. In one embodiment, the monitoring systems 22 use a motion-adaptive indexing process in accordance with the present invention to evaluate the moving queries 14. The results of these processes are maintained in a motion-adaptive object index and a motion-adaptive query index. In addition to maintaining a motion-adaptive object index and a motion-adaptive query index for each moving object 12 and moving query 14, each monitoring system 22 maintains a moving object table (MOT) and a moving query table (MQT) for the moving objects 12 and moving queries 14 within its monitoring range 24. The MOT maintains information regarding the moving objects 12, including the object ID, the query ID (if the object is the focal object of a moving query), the position, the velocity vector, the timestamp of the last change in motion function, the bounding box, the estimated time before the object changes its motion function and a flag indicating whether or not the motion function has been changed since the last evaluation. Similarly, the MQT maintains information regarding the moving queries 14, including the query ID, the position, the velocity vector, the timestamp of the last change in motion function, the radius of the spatial query range, the bounding box, the estimated time before the query will change its motion function, and the flag indicating whether or not the motion function has been changed since the last re-evaluation. All of this information can be supplied to the monitoring systems by the moving objects.
Although these tables could be maintained in a centralized database that is accessible by the each monitoring system, preferably these tables are maintained in the storage systems 37 disposed in each monitoring system 22. Periodic evaluations of moving queries 14 are performed by scanning these two tables and performing updates searches on the motion-adaptive indexes as needed in order to maintain up-to-date query results. Since changes in query results due to object movements only occur during an evaluation, the period of time between subsequent evaluations is made as short as possible to ensure that the query results are as up-to-date as possible. Making each evaluation itself as efficient as possible contributes to shorter cycle times between subsequent evaluations. In addition, there are costs associated with updating the indexes every time a new position is received.
The entries in the MOT and MQT are updated whenever new motion updates are received from the moving objects. However, these motion updates are not reflected in the query results until the next periodic query evaluation is performed. At every query evaluation, two scans are performed. The first scan covers the MOT, and the second scan covers the MQT. The MOT scan is used to update the motion-adaptive object index and to differentially update some of the query results by searching the motion-adaptive query index. The MQT scan is used to update the motion-adaptive query index and to re-calculate some of the query results by performing searches on the motion-adaptive object index. The two scans can be performed in any order. For example, the MQT scan can be performed first followed by the MOT scan.
FIG. 7 illustrates an embodiment of a single MOT scan 102 for a given monitoring system 22. First the monitoring system 22 checks to see if every entry in the MOT has been examined 104. If every entry has been examined during the present scan, then the MOT scan stops. If entries remain to be scanned, the monitoring system 22 obtains a new entry from the MOT 106. The monitoring system then evaluates whether or not the selected entry has been invalidated, or exceeded the limits of its bounding box 108. If the bounding box is still valid, then the monitoring system 22 returns to see if every entry in the MOT has been examined 104. If the bounding box is no longer valid, the monitoring system 22 calculates a new bounding box and updates the motion-adaptive object index accordingly 110. The multiplying factor α used for calculating this new bounding box is selected adaptively based on the selected object's speed and the mean time before the selected object is expected to change its motion function. The monitoring system then checks if the motion function associated with the selected entry has changed 112. If the motion function has not changed, then the monitoring system returns to see if every entry in the MOT has been examined 104. If the motion function has changed, the data associated with the object's bounding box in the motion-adaptive object index including the motion function are updated 114. Once the bounding box data are updated, the monitoring system 22 performs two searches on the motion-adaptive query index. In the first search, the monitoring system 22 searches the motion-adaptive query index to locate all the queries 14 whose bounding boxes 36 intersect with the old bounding box of the selected object 116. The monitoring system 22 then removes the selected object 12 from the results of these moving queries 14. In the second search, the monitoring system 22 searches the motion-adaptive query index again to identify all the queries 14 whose bounding boxes 36 intersect with the new bounding box of the selected object 118. For these queries 14, the monitoring system 22 uses the selected object to perform result prediction and to calculate the intervals when the predicted query results will be valid. The monitoring system 22 then adds the selected object and the predicted interval to the proper query results and returns to see if every entry in the MOT has been examined 104.
FIG. 8 illustrates an embodiment of a single MQT scan 120 for a given monitoring system 22. The single MQT scan is very similar to the MOT scan described with respect to FIG. 7. First, the monitoring system 22 checks to see if every entry in the MQT has been examined 122. If yes, then the monitoring system 22 stops the scan. If not, then the monitoring system 22 obtains a new entry from the MQT 124. The monitoring system 22 then determines whether or not the selected moving query 14 has invalidated its bounding box 125. If not, then the monitoring system 22 checks to see if every entry in the MQT has been examined 122. If the bounding box 36 has been invalidated, the monitoring system 22 calculates the new bounding box 36 and updates the motion-adaptive query index 126. Next, the monitoring system 22 determines if the motion function has changed 128. If not, then the monitoring system 22 checks to see if every entry in the MQT has been examined 122. If the motion function has changed, then the monitoring system 22 updates the motion functions associated with the selected query in the motion-adaptive index 130. Once the motion-adaptive query index is updated 130, the monitoring system 22 retrieves all of the moving objects 12 whose bounding boxes 36 intersect with the new bounding box of the selected query 132. Unlike the MOT scan, however, only one search operation against the motion-adaptive object index is performed after the query index is updated 132. For the retrieved objects, the monitoring system 22 performs result prediction against the query. The monitoring system then returns to see if every entry in the MQT has been examined 122.
Following the MOT scan, all the existing results are correct for the queries that have not invalidated their bounding boxes 36 or changed their motion functions. For queries that have invalidated their bounding boxes 36 or whose focal objects 18 have changed their motion functions, the query results are re-calculated during the MQT scan. As a result, all the query results are up to date after the MQT scan.
In another embodiment of the present invention, the system and method of the present invention for processing continually moving range queries 14 can be used to evaluate continually moving k-nearest neighbors (k-NN) queries. In order to support kNN queries, three modifications are made. Instead of storing time intervals in query results, the distance of the objects 12 from the focal object 18 of the query 14 as a function of time is stored. During the MQT scan, when a query 14 has invalidated its bounding box 36 or changed its motion function, the monitoring system 22 determines a safe radius that is guaranteed to contain at least k moving objects until the next time such safe radius is calculated. The kNN query is installed as a standard moving query with its range equal to the safe radius. At the end of each query evaluation, the results are sorted based on their distances to their associated focal objects 18 by using the distance functions stored within the query results. The top k results are then marked as the current results.
The safe radius ensures that there will be at least k objects contained in the radius during the next t time units. In one embodiment, the safe radius is calculated by retrieving the current k-nearest neighbors and calculating the maximum possible distance of the each one of the current k-nearest neighbors from the focal object 18 of the query 14 at the end of the t time units. The maximum distance can be calculated using the focal object's motion function and the upper limits on the maximum speeds of the current k-nearest neighbors.
In addition to being suitable for use in evaluating moving queries over moving objects, the method of the present invention is also suitable for use in other query and object systems. For example, the target objects can be stationary, and the queries can be moving. An example of such a moving query is: “Give me the locations of the wireless towers within 1 mile of my car during the next half an hour,” posted by a driver of a moving car, where the focal object of the query is the car on the move. Alternatively, the queries can be associated with stationary focal objects, and the objects can be moving. An example of such a query is: “Give me the list of AAA vehicles that are currently on service call in the downtown area of Atlanta during the next hour.”
While it is apparent that the illustrative embodiments of the invention disclosed herein fulfill the objectives of the present invention, it is appreciated that numerous modifications and other embodiments may be devised by those skilled in the art. Additionally, feature(s) and/or element(s) from any embodiment may be used singly or in combination with other embodiment(s). Therefore, it will be understood that the appended claims are intended to cover all such modifications and embodiments, which would come within the spirit and scope of the present invention.

Claims (13)

1. A method for evaluating a plurality of moving queries over moving objects, the queries and objects moving with respect to each other, the method comprising:
identifying a plurality of moving objects, each moving object comprising a position, a speed and a direction;
identifying a plurality of moving queries capable of evaluating the moving objects using criteria that change over time;
constructing a moving object bounding box associated with each moving object, each moving object bounding box comprising dimensions corresponding to at least one of the position, the speed and the direction of the associated moving object;
constructing a moving query bounding box associated with each moving query, each moving query bounding box comprising dimensions corresponding to one or more of the criteria, each bounding box sized to minimize overlapping among all bounding boxes and to maximize a length of time that the criteria of each moving query and the position, speed or direction of each moving object remain within the associated bounding box;
creating an object index for each one of the plurality of moving objects and a query index for each one of the moving queries using the corresponding bounding boxes; and
evaluating the plurality of queries periodically using the query index to determine which moving objects to include in the moving query evaluation.
2. The method of claim 1, wherein each bounding box comprises a motion-sensitive bounding box wherein the size and shape of each bounding box varies based upon a behavior of the associated moving object or moving query.
3. The method of claim 1, wherein the step of constructing the bounding box comprises placing each moving object or each moving query within the associated bounding box in an initial position arranged to maximize the length of time that the criteria of each moving query and the position, speed or direction of each moving object remain within the associated bounding box.
4. The method of claim 3, wherein each bounding box comprises a rectangle and the initial position comprises a corner of the rectangle.
5. The method of claim 1, further comprising receiving at least one of location information and motion information for each one of the moving objects and each moving query, determining if moving objects or moving queries have invalidated the associated bounding box based upon the received information, and replacing invalidated bounding boxes with new bounding boxes.
6. The method of claim 1, wherein the step of evaluating the moving queries periodically comprises generating predictive query results.
7. The method of claim 6, wherein the step of generating predictive query results comprises creating a motion function for each moving query and each moving object based upon a present location and a velocity vector associated with each moving object and moving query, computing a predicted path for each moving object and moving query based upon the associated motion function, comparing the predicted paths to actual paths for the moving objects and queries and computing new motion functions only when the predicted paths vary from the actual paths by a pre-determined threshold value.
8. The method of claim 6, wherein the step of generating predictive query results comprises using the bounding boxes associated with the moving queries and the moving objects to determine which moving objects to consider when generating the predictive query results.
9. The method of claim 8, further comprising selecting moving objects for the predictive query that have associated moving object bounding boxes intersecting with one of the moving query bounding boxes.
10. The method of claim 1, wherein the step of periodically evaluating the moving queries comprises maintaining a moving object table containing information about the moving objects.
11. The method of claim 10, wherein the step of evaluating the moving queries further comprises scanning the moving object table and updating the object index and the query index.
12. The method of claim 1, wherein the step of periodically evaluating the moving queries comprises maintaining a moving query table containing information about the moving queries.
13. The method of claim 12, wherein the step of evaluating the moving queries further comprises scanning the moving query table and updating the object index and the query index.
US10/700,168 2003-11-03 2003-11-03 System and method for evaluating moving queries over moving objects Active 2025-08-16 US7299126B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/700,168 US7299126B2 (en) 2003-11-03 2003-11-03 System and method for evaluating moving queries over moving objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/700,168 US7299126B2 (en) 2003-11-03 2003-11-03 System and method for evaluating moving queries over moving objects

Publications (2)

Publication Number Publication Date
US20050096841A1 US20050096841A1 (en) 2005-05-05
US7299126B2 true US7299126B2 (en) 2007-11-20

Family

ID=34551140

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/700,168 Active 2025-08-16 US7299126B2 (en) 2003-11-03 2003-11-03 System and method for evaluating moving queries over moving objects

Country Status (1)

Country Link
US (1) US7299126B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179052A1 (en) * 2003-03-03 2006-08-10 Pauws Steffen C Method and arrangement for searching for strings
US20070271270A1 (en) * 2006-05-19 2007-11-22 Yahoo! Inc. System and method for selecting object metadata evolving over time
US20080051989A1 (en) * 2006-08-25 2008-02-28 Microsoft Corporation Filtering of data layered on mapping applications
US8209121B1 (en) * 2007-10-10 2012-06-26 Google Inc. Registration of location data to street maps using hidden markov models, and application thereof
US8929588B2 (en) 2011-07-22 2015-01-06 Honeywell International Inc. Object tracking
CN105512317A (en) * 2015-12-17 2016-04-20 南京航空航天大学 Method for indexing uncertain moving objects on basis of group division
US9530222B2 (en) 2015-03-30 2016-12-27 Ca, Inc. Detecting divergence or convergence of related objects in motion and applying asymmetric rules
US9602617B1 (en) * 2015-12-16 2017-03-21 International Business Machines Corporation High performance and scalable telematics message dispatching
US9747805B2 (en) 2013-07-31 2017-08-29 International Business Machines Corporation Computing a similarity measure over moving object trajectories
US10200814B1 (en) * 2018-04-24 2019-02-05 The Florida International University Board Of Trustees Voronoi diagram-based algorithm for efficient progressive continuous k-nearest neighbor query for moving objects

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076445B1 (en) 2000-06-20 2006-07-11 Cartwright Shawn D System and methods for obtaining advantages and transacting the same in a computer gaming environment
US7299126B2 (en) * 2003-11-03 2007-11-20 International Business Machines Corporation System and method for evaluating moving queries over moving objects
US7042391B2 (en) * 2003-12-12 2006-05-09 Xerox Corporation Mobile device and method for determining location of mobile device
US20070233658A1 (en) * 2006-03-31 2007-10-04 Aol Llc Identifying a result responsive to location data for multiple users
US7941753B2 (en) * 2006-03-31 2011-05-10 Aol Inc. Communicating appointment and/or mapping information among a calendar application and a navigation application
US7743056B2 (en) * 2006-03-31 2010-06-22 Aol Inc. Identifying a result responsive to a current location of a client device
US7869941B2 (en) 2006-12-29 2011-01-11 Aol Inc. Meeting notification and modification service
US8712810B2 (en) 2006-12-29 2014-04-29 Facebook, Inc. Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US7933919B2 (en) * 2007-11-30 2011-04-26 Microsoft Corporation One-pass sampling of hierarchically organized sensors
WO2009106861A1 (en) * 2008-02-29 2009-09-03 Gavin Robertson Scheduling apparatus and method
US8812475B2 (en) * 2009-04-20 2014-08-19 International Business Machines Corporation Facilitating object searches in virtual worlds
US20120166472A1 (en) * 2010-12-22 2012-06-28 Xerox Corporation System and method for collaborative graphical searching with tangible query objects on a multi-touch table
US8930374B2 (en) * 2012-06-29 2015-01-06 Nokia Corporation Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure
DE102016103673A1 (en) * 2016-03-01 2017-09-07 Valeo Schalter Und Sensoren Gmbh Method for maneuvering a motor vehicle with determination of a residual path for brake control, control device, driver assistance system and motor vehicle
CN106844409A (en) * 2016-06-16 2017-06-13 南京航空航天大学 Quick continuous historical track Distance query technology
US10001543B1 (en) * 2017-02-01 2018-06-19 International Business Machines Corporation Methods and systems for noise removal in indoor positioning
US10331753B1 (en) * 2018-04-04 2019-06-25 The Florida International University Board Of Trustees Efficient progressive continuous k-nearest neighbor query algorithm for moving objects with a tree-like index
CN113377782B (en) * 2021-08-12 2021-11-16 深圳市数字城市工程研究中心 City space moving object query method, device and storage medium

Citations (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572634A (en) * 1994-10-26 1996-11-05 Silicon Engines, Inc. Method and apparatus for spatial simulation acceleration
US5729471A (en) * 1995-03-31 1998-03-17 The Regents Of The University Of California Machine dynamic selection of one video camera/image of a scene from multiple video cameras/images of the scene in accordance with a particular perspective on the scene, an object in the scene, or an event in the scene
US5850352A (en) * 1995-03-31 1998-12-15 The Regents Of The University Of California Immersive video, including video hypermosaicing to generate from multiple video views of a scene a three-dimensional video mosaic from which diverse virtual video scene images are synthesized, including panoramic, scene interactive and stereoscopic images
US5915251A (en) * 1996-08-09 1999-06-22 Digital Equipment Corporation Method and apparatus for generating and searching range-based index of word locations
US5969755A (en) * 1996-02-05 1999-10-19 Texas Instruments Incorporated Motion based event detection system and method
US6054991A (en) * 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
US6058397A (en) * 1997-04-08 2000-05-02 Mitsubishi Electric Information Technology Center America, Inc. 3D virtual environment creation management and delivery system
US6185314B1 (en) * 1997-06-19 2001-02-06 Ncr Corporation System and method for matching image information to object model information
US6236736B1 (en) * 1997-02-07 2001-05-22 Ncr Corporation Method and apparatus for detecting movement patterns at a self-service checkout terminal
EP1104151A2 (en) * 1999-11-24 2001-05-30 Nokia Mobile Phones Ltd. Mobile station having improved user interface providing application management and other functions
US6263088B1 (en) * 1997-06-19 2001-07-17 Ncr Corporation System and method for tracking movement of objects in a scene
US6289334B1 (en) * 1994-01-31 2001-09-11 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US6295367B1 (en) * 1997-06-19 2001-09-25 Emtera Corporation System and method for tracking movement of objects in a scene using correspondence graphs
US20010032268A1 (en) * 1995-05-30 2001-10-18 Brown David W. Distribution of motion control commands over a network
US20020032697A1 (en) * 1998-04-03 2002-03-14 Synapix, Inc. Time inheritance scene graph for representation of media content
US20020057283A1 (en) * 2000-09-25 2002-05-16 Prabuddha Biswas Region modeling of mobile services
US20020087570A1 (en) * 2000-11-02 2002-07-04 Jacquez Geoffrey M. Space and time information system and method
US6424370B1 (en) * 1999-10-08 2002-07-23 Texas Instruments Incorporated Motion based event detection system and method
US20020097893A1 (en) * 2001-01-20 2002-07-25 Lee Seong-Deok Apparatus and method for generating object-labeled image in video sequence
US20030113009A1 (en) * 2001-12-14 2003-06-19 Horst Mueller System and method for confirming electrical connection defects
US20030122657A1 (en) * 2002-01-03 2003-07-03 Hodsdon Kelly P. Officiating system
US6711563B1 (en) * 2000-11-29 2004-03-23 Lafayette Software Inc. Methods of organizing data and processing queries in a database system, and database system and software product for implementing such methods
US6742037B1 (en) * 1998-12-01 2004-05-25 Nortel Networks Limited Method and apparatus for dynamic information transfer from a mobile target to a fixed target that tracks their relative movement and synchronizes data between them
US20040117358A1 (en) * 2002-03-16 2004-06-17 Von Kaenel Tim A. Method, system, and program for an improved enterprise spatial system
US6791549B2 (en) * 2001-12-21 2004-09-14 Vrcontext S.A. Systems and methods for simulating frames of complex virtual environments
US6801850B1 (en) * 2000-10-30 2004-10-05 University Of Illionis - Chicago Method and system for tracking moving objects
US20040198398A1 (en) * 2003-04-01 2004-10-07 International Business Machines Corporation System and method for detecting proximity between mobile device users
US20040203852A1 (en) * 2002-03-07 2004-10-14 Pradeep Janakiraman System for delivering location-based notifications and method thereof
US6809738B2 (en) * 2001-12-21 2004-10-26 Vrcontext S.A. Performing memory management operations to provide displays of complex virtual environments
US20050054290A1 (en) * 2000-08-29 2005-03-10 Logan James D. Rules based methods and apparatus for generating notification messages based on the proximity of electronic devices to one another
US20050071083A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation Method and structure for monitoring moving objects
US20050071321A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation System and method for monitoring events against continual range queries
US20050096841A1 (en) * 2003-11-03 2005-05-05 Bugra Gedik System and method for evaluating moving queries over moving objects
US6925473B2 (en) * 2001-08-27 2005-08-02 Autodesk, Inc. Staged stylization in multiple tiers
US6941543B1 (en) * 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US6970871B1 (en) * 2002-04-11 2005-11-29 Sprint Spectrum L.P. System and method of sorting information based on a location of a mobile station
KR100546799B1 (en) * 2003-11-24 2006-01-26 한국전자통신연구원 Moving object management apparatus and method through spatiotemporal data intergration and information control
US7010522B1 (en) * 2002-06-17 2006-03-07 At&T Corp. Method of performing approximate substring indexing
US20060085370A1 (en) * 2001-12-14 2006-04-20 Robert Groat System for identifying data relationships
US7045787B1 (en) * 1995-10-23 2006-05-16 Science Applications International Corporation Density detection using real time discrete photon counting for fast moving targets
US7068288B1 (en) * 2002-02-21 2006-06-27 Xerox Corporation System and method for moving graphical objects on a computer controlled system
US7117199B2 (en) * 2000-02-22 2006-10-03 Metacarta, Inc. Spatially coding and displaying information
US20060287984A1 (en) * 2005-06-17 2006-12-21 International Business Machines Corporation Range query methods and apparatus

Patent Citations (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6054991A (en) * 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
US6289334B1 (en) * 1994-01-31 2001-09-11 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US5572634A (en) * 1994-10-26 1996-11-05 Silicon Engines, Inc. Method and apparatus for spatial simulation acceleration
US5729471A (en) * 1995-03-31 1998-03-17 The Regents Of The University Of California Machine dynamic selection of one video camera/image of a scene from multiple video cameras/images of the scene in accordance with a particular perspective on the scene, an object in the scene, or an event in the scene
US5745126A (en) * 1995-03-31 1998-04-28 The Regents Of The University Of California Machine synthesis of a virtual video camera/image of a scene from multiple video cameras/images of the scene in accordance with a particular perspective on the scene, an object in the scene, or an event in the scene
US5850352A (en) * 1995-03-31 1998-12-15 The Regents Of The University Of California Immersive video, including video hypermosaicing to generate from multiple video views of a scene a three-dimensional video mosaic from which diverse virtual video scene images are synthesized, including panoramic, scene interactive and stereoscopic images
US6941543B1 (en) * 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US20010032268A1 (en) * 1995-05-30 2001-10-18 Brown David W. Distribution of motion control commands over a network
US7045787B1 (en) * 1995-10-23 2006-05-16 Science Applications International Corporation Density detection using real time discrete photon counting for fast moving targets
US5969755A (en) * 1996-02-05 1999-10-19 Texas Instruments Incorporated Motion based event detection system and method
US5915251A (en) * 1996-08-09 1999-06-22 Digital Equipment Corporation Method and apparatus for generating and searching range-based index of word locations
US6236736B1 (en) * 1997-02-07 2001-05-22 Ncr Corporation Method and apparatus for detecting movement patterns at a self-service checkout terminal
US6058397A (en) * 1997-04-08 2000-05-02 Mitsubishi Electric Information Technology Center America, Inc. 3D virtual environment creation management and delivery system
US6263088B1 (en) * 1997-06-19 2001-07-17 Ncr Corporation System and method for tracking movement of objects in a scene
US6185314B1 (en) * 1997-06-19 2001-02-06 Ncr Corporation System and method for matching image information to object model information
US6295367B1 (en) * 1997-06-19 2001-09-25 Emtera Corporation System and method for tracking movement of objects in a scene using correspondence graphs
US20020032697A1 (en) * 1998-04-03 2002-03-14 Synapix, Inc. Time inheritance scene graph for representation of media content
US6742037B1 (en) * 1998-12-01 2004-05-25 Nortel Networks Limited Method and apparatus for dynamic information transfer from a mobile target to a fixed target that tracks their relative movement and synchronizes data between them
US6424370B1 (en) * 1999-10-08 2002-07-23 Texas Instruments Incorporated Motion based event detection system and method
JP2001216065A (en) * 1999-11-24 2001-08-10 Nokia Mobile Phones Ltd Method for operating mobile station and mobile station
EP1104151A2 (en) * 1999-11-24 2001-05-30 Nokia Mobile Phones Ltd. Mobile station having improved user interface providing application management and other functions
US7117199B2 (en) * 2000-02-22 2006-10-03 Metacarta, Inc. Spatially coding and displaying information
US6996402B2 (en) * 2000-08-29 2006-02-07 Logan James D Rules based methods and apparatus for generating notification messages based on the proximity of electronic devices to one another
US20050054290A1 (en) * 2000-08-29 2005-03-10 Logan James D. Rules based methods and apparatus for generating notification messages based on the proximity of electronic devices to one another
US6954764B2 (en) * 2000-09-25 2005-10-11 Oracle International Corp. Region modeling of mobile services
US20020057283A1 (en) * 2000-09-25 2002-05-16 Prabuddha Biswas Region modeling of mobile services
US6895329B1 (en) * 2000-10-30 2005-05-17 Board Of Trustees Of The University Of Illinois Method and system for querying in a moving object database
US6801850B1 (en) * 2000-10-30 2004-10-05 University Of Illionis - Chicago Method and system for tracking moving objects
US7016781B1 (en) * 2000-10-30 2006-03-21 Board Of Trustees Of The University Of Illinois Method and system for querying in a moving object database
US6968271B1 (en) * 2000-10-30 2005-11-22 Board Of Trustees Of The University Of Illinois Method and system for querying in a moving object database
US6965827B1 (en) * 2000-10-30 2005-11-15 Board Of Trustees Of The University Of Illinois Method and system for tracking moving objects
US20020087570A1 (en) * 2000-11-02 2002-07-04 Jacquez Geoffrey M. Space and time information system and method
US6711563B1 (en) * 2000-11-29 2004-03-23 Lafayette Software Inc. Methods of organizing data and processing queries in a database system, and database system and software product for implementing such methods
US7024020B2 (en) * 2001-01-20 2006-04-04 Samsung Electronics Co., Ltd. Apparatus and method for generating object-labeled image in video sequence
US20020097893A1 (en) * 2001-01-20 2002-07-25 Lee Seong-Deok Apparatus and method for generating object-labeled image in video sequence
US6925473B2 (en) * 2001-08-27 2005-08-02 Autodesk, Inc. Staged stylization in multiple tiers
US20030113009A1 (en) * 2001-12-14 2003-06-19 Horst Mueller System and method for confirming electrical connection defects
US20060085370A1 (en) * 2001-12-14 2006-04-20 Robert Groat System for identifying data relationships
US6791549B2 (en) * 2001-12-21 2004-09-14 Vrcontext S.A. Systems and methods for simulating frames of complex virtual environments
US6809738B2 (en) * 2001-12-21 2004-10-26 Vrcontext S.A. Performing memory management operations to provide displays of complex virtual environments
US20030122657A1 (en) * 2002-01-03 2003-07-03 Hodsdon Kelly P. Officiating system
US7068288B1 (en) * 2002-02-21 2006-06-27 Xerox Corporation System and method for moving graphical objects on a computer controlled system
US20040203852A1 (en) * 2002-03-07 2004-10-14 Pradeep Janakiraman System for delivering location-based notifications and method thereof
US20040117358A1 (en) * 2002-03-16 2004-06-17 Von Kaenel Tim A. Method, system, and program for an improved enterprise spatial system
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
US6970871B1 (en) * 2002-04-11 2005-11-29 Sprint Spectrum L.P. System and method of sorting information based on a location of a mobile station
US7010522B1 (en) * 2002-06-17 2006-03-07 At&T Corp. Method of performing approximate substring indexing
US20040198398A1 (en) * 2003-04-01 2004-10-07 International Business Machines Corporation System and method for detecting proximity between mobile device users
US20050071083A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation Method and structure for monitoring moving objects
US20050071321A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation System and method for monitoring events against continual range queries
CN1603749A (en) * 2003-09-29 2005-04-06 国际商业机器公司 Method and structure for monitoring moving objects
US20050096841A1 (en) * 2003-11-03 2005-05-05 Bugra Gedik System and method for evaluating moving queries over moving objects
KR100546799B1 (en) * 2003-11-24 2006-01-26 한국전자통신연구원 Moving object management apparatus and method through spatiotemporal data intergration and information control
US20060287984A1 (en) * 2005-06-17 2006-12-21 International Business Machines Corporation Range query methods and apparatus
CN1892656A (en) * 2005-06-17 2007-01-10 国际商业机器公司 Range query and data stream processing methods and apparatus

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
B. Gedik et al., MobiEyes: A Distributed Location Monitoring Service Using Moving Location Queries, Mobile Computing, IEEE Transactions on, vol. 5, Issue 10, Oct. 2006 pp. 1384-1402, Digital Object Identifier 10.1109/TMC.2006.153. *
B. Gedik et al., Processing moving queries over moving objects using motion-adaptive indexes, Knowledge and Data Engineering, IEEE Transactions on, vol. 18, Issue 5, May 2006 pp. 651-668, Digital Object Identifier 10.1109/TKDE.2006.81. *
G. Kollios et al., "On Indexing Mobile Objects", Proceedings of Symposium on Principles of Database Systems, 1999.
H. M. O. Mokhtar et al., Universal trajectory queries for moving object databases, Mobile Data Management, 2004. Proceedings. 2004 IEEE International Conference on, 2004 pp. 133-144, Digital Object Identifier 10.1109/MDM.2004.1263051. *
Haibo Hu et al., Range nearest-neighbor query, Knowledge and Data Engineering, IEEE Transactions on, vol. 18, Issue 1, Jan. 2006 pp. 78-79, Digital Object Identifier 10.1109/TKDE.2006.15. *
K. C. K. Lee et al., Tracking Nearest Surrounders in Moving Object Environments, 2006 ACS/IEEE International Conference on Pervasive Services, Jun. 26-29, 2006 pp. 3-12. *
P.K. Agarwal et. al., "Indexing Moving Points", Proceedings of ACM Symposium on Principles of Database Systems, 2000.
S. Prabhakar et al., "Query Indexing and Velocity Constrained Indexing", IEEE Transactions on Computers, 51:1124-1140 Oct. 2002.
Y. Ishikawa et al., Continual neighborhood tracking for moving objects using adaptive distances, Database Engineering and Applications Symposium, 2002. Proceedings. International, Jul. 17-19, 2002 pp. 54-63, Digital Object Identifier 10.1109/IDEAS.2002.1029656. *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179052A1 (en) * 2003-03-03 2006-08-10 Pauws Steffen C Method and arrangement for searching for strings
US7756847B2 (en) * 2003-03-03 2010-07-13 Koninklijke Philips Electronics N.V. Method and arrangement for searching for strings
US20070271270A1 (en) * 2006-05-19 2007-11-22 Yahoo! Inc. System and method for selecting object metadata evolving over time
US7739275B2 (en) * 2006-05-19 2010-06-15 Yahoo! Inc. System and method for selecting object metadata evolving over time
US20080051989A1 (en) * 2006-08-25 2008-02-28 Microsoft Corporation Filtering of data layered on mapping applications
US8209121B1 (en) * 2007-10-10 2012-06-26 Google Inc. Registration of location data to street maps using hidden markov models, and application thereof
US8929588B2 (en) 2011-07-22 2015-01-06 Honeywell International Inc. Object tracking
US9747805B2 (en) 2013-07-31 2017-08-29 International Business Machines Corporation Computing a similarity measure over moving object trajectories
US9530222B2 (en) 2015-03-30 2016-12-27 Ca, Inc. Detecting divergence or convergence of related objects in motion and applying asymmetric rules
US9602617B1 (en) * 2015-12-16 2017-03-21 International Business Machines Corporation High performance and scalable telematics message dispatching
CN105512317A (en) * 2015-12-17 2016-04-20 南京航空航天大学 Method for indexing uncertain moving objects on basis of group division
CN105512317B (en) * 2015-12-17 2019-04-16 南京航空航天大学 A kind of uncertain Indexing for Moving Object based on group division
US10200814B1 (en) * 2018-04-24 2019-02-05 The Florida International University Board Of Trustees Voronoi diagram-based algorithm for efficient progressive continuous k-nearest neighbor query for moving objects

Also Published As

Publication number Publication date
US20050096841A1 (en) 2005-05-05

Similar Documents

Publication Publication Date Title
US7299126B2 (en) System and method for evaluating moving queries over moving objects
Sattarian et al. Indoor navigation systems based on data mining techniques in internet of things: a survey
Wang et al. Moving destination prediction using sparse dataset: A mobility gradient descent approach
Michaelis et al. Heterogeneous multi-sensor fusion for extended objects in automotive scenarios using Gaussian processes and a GMPHD-filter
Shang et al. PNN query processing on compressed trajectories
Alsahfi et al. A survey on trajectory data warehouse
Zhang et al. A distributed weighted possibilistic c-means algorithm for clustering incomplete big sensor data
Cui et al. Hidden Markov map matching based on trajectory segmentation with heading homogeneity
Yim et al. A Kalman filter updating method for the indoor moving object database
Seong et al. Wi-Fi fingerprint using radio map model based on MDLP and euclidean distance based on the Chi squared test
Wen et al. Indoor localization algorithm based on artificial neural network and radio-frequency identification reference tags
Ye et al. An improved RFID-based localization algorithm for wireless sensor networks
Hendawi et al. Panda∗: A generic and scalable framework for predictive spatio-temporal queries
Zhang et al. Towards fusing uncertain location data from heterogeneous sources
Ang et al. Indoor next location prediction with Wi-Fi
CN114117260B (en) Spatiotemporal trajectory indexing and query processing method, device, equipment and medium
Lu A new indoor location algorithm based on radio frequency fingerprint matching
Zhang et al. Spatial–temporal grid clustering method based on frequent stay point recognition
Ishikawa et al. Continual neighborhood tracking for moving objects using adaptive distances
Cai et al. A location prediction method for work-in-process based on frequent trajectory patterns
Bareche et al. Selective velocity distributed indexing for continuously moving objects model
Liu et al. RILS: RFID indoor localization system using mobile readers
Wu et al. Indexing continual range queries for location-aware mobile services
Elsayed et al. Prediction-Based Cooperative Cache Discovery in VANETs for Social Networking
Lee Efficient evaluation of location-dependent skyline queries using non-dominance scopes

Legal Events

Date Code Title Description
AS Assignment

Owner name: IBM CORPORATION, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GEDIK, BUGRA;WU, KUN-LUNG;YU, PHILIP SHI-LUNG;REEL/FRAME:014663/0955;SIGNING DATES FROM 20031031 TO 20031101

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: NNG LLC, HUNGARY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:032255/0359

Effective date: 20131230

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12