If there are any contradictions or inconsistencies in language between this application and the cases that have been incorporated by reference that might affect the interpretation of the claims in this case, the claims in this case should be interpreted to be consistent with the language in this case.
The present invention relates to telecommunications in general, and, more particularly, to location-based services.
Location-based services are services provided based on the location of objects. The most prevalent location-based service is Enhanced 911 (or E911) services. The Enhanced 911 service provides 911 operators and emergency responders with information such as the identification of the person calling and the location of the caller. All mobile telephones sold in the United States today have this feature.
Location-based services include, for example and without limitation, satellite navigation devices that let a user know the location of the closest hospital or gas station to a user. Location-based services may also alert enterprises, such as gas stations, as to when a potential customer is within a certain distance. The enterprise may then send targeted advertisements to a traveler, such as discounts, etc.
Still other location-based services are targeted to the tracking of objects, such as, for example and without limitation, tracking of packages, tracking a fleet of vehicles, or determining the number of people who are in a given area for allotting government services where they may be most needed.
Keeping track of these moving objects is difficult enough, but there is a problem when providing location-based services relating to a multitude of moving objects. Namely, how to keep track of the objects around the objects. Or, in other words: How do we track the context around moving objects?
Keeping track of stationary objects is performed by the use of geographic information systems. Stationary objects are objects such as, for example and without limitation, roads, buildings, etc. These systems are databases which keep track of the space around a given location. Common geographic information systems include Google Maps and the points of interest database on a satellite navigation device. These are limited devices in that they are limited by memory access times relative to the movement of a vehicle, especially as the object tracked moves through multiple areas.
The present invention provides a method of tracking the context around moving objects without some of the disadvantages of the prior art. This is done by correlating the spatial information of what is around an object with the temporal (or time) information of an object's movements.
The present invention does this in two ways. First, it takes advantage of an “event processor.” Event processors are systems of hardware and software that are used to deal with large amounts of time-sensitive data. Examples of the uses of event processors are in financial institutions that track queries such as: “How many transactions involving stock X have transpired in the last 20 minutes?” or “How many stocks are down right now?” These are time-sensitive, contextual queries. Event processors are also used in the management of telecommunications networks.
Event processors are designed to be able to handle the large amounts of data produced by the myriad of financial transactions in various markets across the world. In the illustrative embodiment of the present invention, an event processor is used to track the movements of a myriad of objects traveling across a given space.
By combining these time-sensitive event-handling abilities of an event processor with the location context provided by a database, the present invention provides a method for providing context to location- and time-sensitive events.
Secondly, the illustrative embodiment of the present invention does this by employing a second database to handle the geographic features of the geographic information system database without some of the disadvantages of the prior art. Sometimes, these geographic information systems are “black boxes,” that cannot be interfaced directly and only through an intermediary. This means that interfacing with the databases may have inefficiencies. These systems are also large systems, comprising a lot of data that is not specifically targeted. For example, and without limitation, the geographic information may comprise information such as the price of gasoline at the closest gas station, or the reviews of the closest pizza parlors. This information is often useful, but may slow down a contextual search.
The illustrative embodiment of the present invention is able to handle queries such as, for example, and without limitation, “Inform me when 200 objects are inside of area 101-2 at the same time,” or “Inform me when object 201-1 and 202-2 are in space 101-5.” Some more concrete examples of spatial-temporal event correlation are presented, without limitation, in table 1:
The ability to correlate across both time and space can be important for applications. For example and without limitation, “Target has left and returned to space of interest n times in time window W” could mean that a customer is close to a purchase decision, and “2 targets have similar movement trajectory in space in time window W” could be used to automatically detect a stalker.
Map 100 is a rectangular area in which we are interested for the purposes of the illustrative embodiment of the present invention. Map 100 comprises areas 101-1 through 101-6.
Although, in accordance with the illustrative embodiment of the present invention, map 100 represents some physical space, it will be clear to one skilled in the art after reading this disclosure, how to make and use alternative embodiments of the present invention in the space is not a physical space, for example and without limitation, the space is instead a virtual space.
Although, in accordance with the illustrative embodiment of the present invention, map 100 represents space in two dimensions (2-D), it will be clear to one skilled in the art after reading this disclosure, how to make and use alternative embodiments of the present invention in the space is not a two dimensional (2-D) space but instead the space is any number of dimensions, for example and without limitation, three dimensions (3-D), four dimensions (4-D), etc.
Although map 100 is a rectangular area, it will be clear to one skilled in the art after reading this disclosure, how to make and use alternative embodiments of the present invention in which map 100 is any shape or any size.
Although areas 101-1 through 101-6 are a rectangular areas, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which areas 101-1 through 101-6 are any shape or any size.
Although areas 101-1 and 101-4 overlap, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which areas 101-1 and 101-4 do not overlap, overlap completely, or overlap with other areas.
Although areas 101-2 and 101-4 overlap, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which areas 101-2 and 101-4 do not overlap, overlap completely, or overlap with other areas. It will also be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention
Although
Although
Although object 201-1 is depicted as a person, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which object 201-1 can be any object, for example, and without limitation: a person, a sensor, a vehicle, an animal, a telecommunications terminal, a stationary object, etc.
Although path 202-1 is depicted as going through areas 101-4, 101-5, and 101-3 of the map, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which path 202-1 can travel through any area of map 100.
Although object 201-1 is depicted as traveling along path 202-1, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which object 201-1 can travel along any path and through any area of map 100.
In accordance with the illustrative embodiment of the present invention, object 201-1 travels along path 202-1 through areas 101-4, 101-5, and 101-3 of map 100 As it travels along this path, the location object 201-1 is noted and tracked. In accordance with the illustrative embodiment of the present invention, the location is noted by satellite trilateralization, such as, for example, and without limitation, global positioning system (GPS). Other techniques for determining location include, for example and without limitation, triangulation of endpoints in cellular or wireless networks, proximal device broadcast, purchasing transactions (such as those by credit card or debit card), vehicle-to-vehicle networks, radio signals, etc. In accordance with the illustrative embodiment of the present invention, the location is then tracked by sending periodic updates through a wireless network, such as, for example and without limitation, a mobile telephone or data network, a packet radio network, a IEEE 802.11 (Wi-Fi) network, etc.
Although path 202-2 is depicted as going through areas 101-6, 101-5, 101-2 and 101-1 of the map, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which path 202-2 can travel through any area of map 100.
Although object 201-2 is depicted as traveling along path 202-2, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which object 201-2 can travel along any path and through any area of map 100.
In accordance of the illustrative embodiment of the present invention, the object 201-1 and object 201-2 are both traveling within map 100 and go about their independent paths.
In accordance of the illustrative embodiment of the present invention, the object 201-1 and object 201-2 may (or may not) cross paths or may be (or may not be) in the same area at the same time.
Although
Although
Although first database 401 and second database 403 can communicate directly with one another, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which the first database 401 and second database 403 communicate with one another by another means, for example and without limitation, through event processor 402, through a separate application interface, etc.
In accordance with the illustrative embodiment of the present invention, an event is a tuple with fields, for example and without limitation, unique identifier, time of occurrence (either interval or point), and one or more properties. These properties may include information, for example and without limitation, the source of the event, the event type, priority, and attributes of the event or the source. An event stream is a sequence of events from the same source. It will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which events have different properties and fields.
In accordance with the illustrative embodiment of the present invention, event processor 402 is hardware and software that performs event processing, event filtering, and event correlation.
In accordance with the illustrative embodiment of the present invention, event processing refers to operations performed by an information system, for example and without limitation, operations to receive, distribute, store, modify, generate, or discard events. In accordance with the illustrative embodiment of the present invention, event filtering is a type of event processing in which an event is forwarded or blocked to a recipient based on a property of the event or some other computational context.
In accordance with the illustrative embodiment of the present invention, event correlation is a type of event processing in which an event is evaluated primarily with respect to other events but also system state or context, in order to produce related events. These related events ideally have the characteristics that there is a reduction in the volume of events and/or the information content of the new events is transformed to a more relevant value.
It will be clear to one skilled in the art, after reading this disclosure, how to make and use event processor 402.
In accordance with the illustrative embodiment of the present invention, first database 401 is a geographic information system (GIS) and can be interfaced with event processor 402 and with second database 403. In accordance with the illustrative embodiment of the present invention, the geographic information system can be a closed system which is interfaced by means of an application programming interface (API) or other interface that allows queries to first database 401. It will be clear to one skilled in the art, after reading this disclosure, how to make and use first database 401.
In accordance with the illustrative embodiment of the present invention, event processor 402 is software that is suited for handling queries related to ongoing events. These events, or streams of events, come in one after another and the data from these events are compared with the queries handled by event processor 402.
In accordance with the illustrative embodiment of the present invention, this would be accomplished by maintaining operations such as, for example and without limitation, “Alert me when object 201-1 and object 201-2 are in area 101-5 of map 100.” Each time object 201-1 or object 201-2 relays information to event processor 402, the operation is performed on the relayed data. It will be clear to one skilled in the art, after reading this disclosure how to make and use event processor 402.
In accordance with the illustrative embodiment of the present invention, Second Database 403 is used to store geographic information relevant to the queries of event processor 402. In accordance with the illustrative embodiment of the present invention, second database 403 comprises a subset of the information contained in first database 401.
In accordance with the illustrative embodiment of the present invention, link 404 and link 405 are links between geographic system 400 and any users of geographic information system 400. In accordance with the illustrative embodiment of the present invention, link 404 is used for event processor 402 to receive requests, for example and without limitation, subscription requests, specific triggers, correlation requests, etc. In accordance with the illustrative embodiment of the present invention, link 404 is used for event processor 402 to transmit responses, for example and without limitation, transmitting a response when a condition is met, transmitting information regarding a particular space, etc.
It will be clear to one skilled in the art, after reading this disclosure, how to make and use spatial-temporal event correlation system 400.
In accordance with the illustrative embodiment of the present invention, first database 401 and second database 403 are each implemented by means of an R-Tree. In accordance with the illustrative embodiment of the present invention, an R-Tree is a data structure that is suited for indexing geographic coordinates. It will be clear to one skilled in the art, after reading this disclosure, how to make and use R-Trees.
Although first database 401 and second database 403 are implemented by means of an R-Tree, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which either first database 401 and second database 403 are implemented by another means, for example, and without limitation, an R*-Tree, an R+-Tree, a B-Tree, a quad-tree, a hash table, a moving object index, or any data storage structure or method.
Although the R-Tree in first database 401 and the R-tree in second database 402 comprise three entries for each node, it will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention in which there are any number of entries for each node.
Although the R-Tree in first database 401 and the R-tree in second database 402 comprise three child nodes for each parent node, it will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention in which there are any number of child nodes for each parent node.
Although accordance with the alternative embodiment of the present invention, application server 601 interfaces with first database 401 and with event processor 402, it will be clear to one skilled in the art, after reading this disclosure, how to make and use spatial-temporal event correlation system 400 in which the components communicate with one another by another means, for example and without limitation, through event processor 402, etc.
In accordance with the illustrative embodiment of the present invention, tasks 701, 702, 704, 706, 707, 708, 709, 711 are performed at event processor 402. However, it will be clear to one skilled in the art, after reading this disclosure how to make and use other implementations of the present invention in which the some or all of the steps are performed by another device, for example, and without limitation, a separate application interface, first database 401, second database 403, etc.
In accordance with the illustrative embodiment of the present invention, task 703 is performed at first database 401. However, it will be clear to one skilled in the art, after reading this disclosure how to make and use other implementations of the present invention in which the step is performed by another device, for example, and without limitation, a separate application interface, etc.
In accordance with the illustrative embodiment of the present invention, tasks 705 and 610 are performed at second database 402. However, it will be clear to one skilled in the art, after reading this disclosure how to make and use other implementations of the present invention in which the steps are performed by another device, for example, and without limitation, first database 401, at event processor 402, a separate application interface, etc.
At task 701, a first request is made to a first space at event processor 402. In accordance with the illustrative embodiment of the present invention, the first space is a geographic space defined by X and Y coordinates and is referred to by a name, such as, for example and without limitation, space 101-5 in map 100.
Although, in accordance with the illustrative embodiment of the present invention, the space is defined in two dimensions (2-D) using Cartesian X and Y coordinates, it will be clear to one skilled in the art after reading this disclosure, how to make and use alternative embodiments of the present invention in the space is defined in more than two dimensional (2-D) space, for example and without limitation, three dimensions (3-D), four dimensions (4-D), etc.
Although, in accordance with the illustrative embodiment of the present invention, the space is referred to by a name (space 101-5), it will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention in which the space is referred to directly using its X and Y coordinates, by giving a center point and a radius of the space around that point, by referring to the space using some other coordinate system, by referring to the space using some other naming system, etc.
It will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention that perform task 701.
At task 702, event processor 402 receives a first indicium of the location of a first object.
In accordance with the illustrative embodiment of the present invention, an indicium of the location of the first object is some indication of where the first object may be located. These are, for example, and without limitation, the name of the object to be located, the X and Y coordinates at which the object is located, a name for the place where the object is located (such as “home,” “work,” “school,” etc.), a store where a purchase may have occurred, or any signal that may tell where the object is located.
In accordance with the illustrative embodiment of the present invention, the location is in geographic space defined by X and Y coordinates and is referred to by a name, such as, for example and without limitation, object 201-1 in map 100.
In accordance with the illustrative embodiment of the present invention, the first indicium of the first object is received at an initial time i. It will be clear to one skilled in the art, after reading this disclosure how to make alternative embodiments of the present invention in which the indicium of the location of the first object is received at any time.
At task 703, first database 401 receives a query about the first space.
In accordance with the illustrative embodiment of the present invention, the first space is a geographic space defined by X and Y coordinates and is referred to by a name, such as, for example and without limitation, space 101-5 in map 100. In accordance with the illustrative embodiment of the present invention, the first database responds with X and Y boundaries of the requested space. These boundaries would be the Xmin, Xmax, Ymin, and Ymax of space 101-5 in map 100. Further in accordance with the illustrative embodiment of the present invention, the response to the query may comprise additional information, for example, and without limitation, information of other objects inside of space 101-5, etc.
Although, in accordance with the illustrative embodiment of the present invention, the space is defined in two dimensions (2-D) using Cartesian X and Y coordinates, it will be clear to one skilled in the art after reading this disclosure, how to make and use alternative embodiments of the present invention in the space is defined in more than two dimensional (2-D) space, for example and without limitation, three dimensions (3-D), four dimensions (4-D), etc.
At task 704, the response to the query is received by event processor 402.
At task 705, second database 403 is populated with the geographic information received in response to the query. In accordance with the illustrative embodiment of the present invention, the information placed into second database 403 is a subset of the information received from first database 401.
At task 706, event processor 402 receives a second indicium of the location of the first object. In accordance with the illustrative embodiment of the present invention, the first indicium of the first object is received at an initial time j. It will be clear to one skilled in the art, after reading this disclosure how to make alternative embodiments of the present invention in which the indicium of the location of the first object is received at any time. In accordance with the illustrative embodiment of the present invention, j>i, but it will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention, in which j=i, j<i, etc.
At task 707, a response is transmitted in response to the first request from event processor 402. This task is further detailed in
At task 708, a second request is received to the first space at event processor 402.
At task 709, an indicium of the location of a second object is received at event processor 402.
At task 710, second database 402 is queried for the geographic information about the first space. In accordance with the illustrative embodiment of the present invention, the information retrieved in response to the query is subset of the information retrieved from first database 401 at task 703. It will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention in which the information is retrieved from another location, for example and without limitation, first database 401, event processor 402, etc.
At task 711, a response is transmitted in response to the first request from event processor 402. This task is further detailed in
It will be clear to one skilled in the art, after reading this disclosure, how to make and use other implementations of the present invention in which one or more of the steps are omitted or are performed in a different order than the one presented or simultaneously.
At task 801, it is determined whether or not the condition defined in task 701 to the first space is satisfied. If the condition is satisfied, it will proceed to task 802.
Although, in accordance with the illustrative embodiment of the present invention, task 801 is performed continuously until a single condition is satisfied, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which task 801 is performed any number of times, for example and without limitation, only once, a set number of times, each time an event occurs during a defined time period, etc. It will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which task 801 runs even after the condition is satisfied.
At task 802, a response is transmitted to the first request indicating the condition has been satisfied. Although, in accordance with the illustrative embodiment of the present invention, this entails sending a notification to a user which may be a person or an application, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention, in which the response is transmitted some other way, for example and without limitation, by e-mail, instant message, short-message-service message (SMS), etc.
It will be clear to one skilled in the art, after reading this disclosure how to make and use other implementations of the present invention in which one or more of the steps are omitted or are performed in a different order than the one presented or simultaneously.
At task 901, it is determined whether the location of the first object is in the space defined by the coordinates of the first space.
In accordance with the illustrative embodiment of the present invention, this condition is defined as: [((X1,t=j≧Xmin)(X1,t=j≦Xmax))((Y1,t=j≧Ymin)(Y1,t=j≦Ymax))] and wherein j is any positive real number and wherein the test is performed at any time j. In accordance with the illustrative embodiment of the present invention, this test is performed continuously for any time j, where j increases as time passes.
Although the condition at task 901 is that the first object is within the X and Y coordinates of the first space, it will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention in which task 801 is performed with different conditions, for example, and without limitation, that the object is NOT in the first space, that the object has entered and then exited the space, that the object is a second space, etc.
Although the condition is defined as above, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which the conditions of task 901 are defined in a different manner, for example, and without limitation, by a different coordinate system, etc.
Although in accordance with the illustrative embodiment of the present invention, the above condition is used, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which any condition is used.
At task 1001, it is determined whether or not the condition defined in task 607 to the first space is satisfied. If the condition is satisfied, it will proceed to task 1002.
At task 1002, a response is transmitted to the first request indicating the condition has been satisfied.
It will be clear to one skilled in the art, after reading this disclosure how to make and use other implementations of the present invention in which one or more of the steps are omitted or are performed in a different order than the one presented or simultaneously.
At task 1101, it is determined whether the location of the first object is in the space defined by the coordinates of the first space.
In accordance with the illustrative embodiment of the present invention, this condition is defined as:
[[((X1,t=j≧Xmin)(X1,t=j≦Xmax))((Y1,t=j≧Ymin)(Y1,t=j≦Ymax))]
[((X2,t=k≧Xmin)(X2,t=k≦Xmax))((Y2,t=k≧Ymin)(Y2,t=k≦Ymax))]
wherein j is any positive real number and wherein the test is performed at any time j, and wherein k is any positive real number and wherein the test is performed at any time k. In accordance with the illustrative embodiment of the present invention, this test is performed continuously for any time j and time k, where j and k increase as time passes. Although, in accordance with the illustrative embodiment of the present invention, j=k, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which j≠k.
Although, in accordance with the illustrative embodiment of the present invention, j and k, are defined as being positive real numbers, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which j and k are defined as being in a given window of time, such as, for example and without limitation, Wmin<j, k<Wmax.
Although in accordance with the illustrative embodiment of the present invention, the above condition is used, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which any condition is used.
Although the condition is that the first object and the second object are both within the X and Y coordinates of the first space, it will be clear to one skilled in the art, after reading this disclosure how to make and use alternative embodiments of the present invention in which task 1101 is performed with different conditions, for example, and without limitation, that one or both objects are NOT in the first space, that one or both objects have entered and then exited the first space, that one or both objects are in a second space, etc.
Although the condition is defined as above, it will be clear to one skilled in the art, after reading this disclosure, how to make and use alternative embodiments of the present invention in which the conditions of task 1101 are defined in a different manner, for example, and without limitation, by a different coordinate system, etc.
It is to be understood that the disclosure teaches just one example of the illustrative embodiment and that many variations of the invention can easily be devised by those skilled in the art after reading this disclosure and that the scope of the present invention is to be determined by the following claims.
This application is related to U.S. patent application Ser. No. ______, entitled “Location Privacy Enforcement in a Location-Based Services Platform,” (Attorney Docket “630-409us”) filed on the same date as this application, which is incorporated by reference.