MULTIPLE SOURCE LOCATION METHOD FIELD OF THE INVENTION
The present invention relates generally to providing location services in e.g. cellular telecommunications systems, and more particularly to locating a particular user when 5 multiple sources of information are available providing information of different kinds on the locations of users. BACKGROUND
Future telecommunications systems will greatly benefit from the knowledge of the places at which the users of the system are located, i.e. at which physical locations the o users currently can be found. For example, a telephone switchboard service could use location information to determine the telephone set to which a person is closest and then open a line to it. By this mechanism anyone would always be reachable, as long as there is a telephone somewhere near. In the future, these systems will require a high level of location knowledge. s Location services are today becoming more and more popular. For example, cellular network operators can pinpoint the cell in which a mobile telephone connected to the network is located. Such location information will, in the near future, be used in order to determine the place from which an emergency call originates. In that way, car accidents can be pinpointed quite accurately. In a cellular network, hence, the operator o has an approximate knowledge of the place where a cellular telephone is located together with information on the current power level which can give an even better estimate of the location of the telephone.
In a computer network, the system administration can deteirnine the teπriinal/computer at which a user is currently located, simply by the fact that he/she has 5 logged on or in to the computer. A bank has knowledge on the places where their customers have been by tracing their ATM and credit card usage.
It can be generally seen that knowledge of the locations of the users is useful in many different systems.
There are today a number of technologies used to determine the physical location of 0 a person. A technology does not need to be explicitly made for positioning to be usable since many times the location can be extracted from other facts or circumstances. On one level, these technologies can be divided into "ID-based" and "location-based" technologies. ID-based methods tag each object in the environment of the user with identities or identifications (IDs) that a computer of the user can read, thus providing a 5 context for the programs in the computer. Location-based methods use sensors, in e.g. an ID-badge, to determine the real position of the user and then use this position to infer the context.
One example of a technology useful for providing location information is GPS (the
Global Positioning System); this is a system for personal positioning consisting of a o global network of satellites and mobile receivers. By using a GPS receiver, it is possible
to get a very accurate position reading. The receiver reads the signals from several satellite? and uses triangulation to calculate its position. It measures the distance to each satellite and places itself at the calculated intersection. GPS was developed by the U.S. Department of Defence (DoD) but is now in civil use throughout the world. By using GPS an accuracy of ± 100 meters can be achieved. By using an improved technique, called Differential GPS (DGPS), an accuracy of better than one meter can be achieved.
Another location technology can be found in most cellular telephone systems. Many cellular telephone systems use GSM (Global System/Standard for Mobile Telecommunications) to communicate. The GSM network consists of many small cells, and each cell is centred around a GSM antenna connected to a base station. All cells have unique IDs, and by examining them in the telephones, the cell IDs can be used to locate users of mobile telephones. In the future GPS will probably be integrated with GSM into cellular phones to provide even better location possibilities.
Yet another technology applicable for location is the employee identification badge used by many companies. Such badges are used for identification and for access to restricted areas. Since these badges often are worn visibly, it is possible to use the badge to locate people. When a person having a badge comes close to a stationary receiver having a known location the receiver can ask the badge for its ID and by matching it to a user, the location of the wearer becomes known. Such receivers typically use infrared signals, for receiving information from IR-badges worn by persons, and can be arranged at highly frequented places like coffee machines and office desks.
Another source of useful location is a calendar server. This is a form of electronic calendar containing information regarding the whereabouts of the users. It will provide e.g. information regarding meetings of a particular user, the scheduled times for the meetings, and their locations. It will typically not indicate whether a given user is physically present at a meeting or whether a given meeting is delayed or prolonged, but this can be taken into consideration when evaluating the usefulness of this information in locating a user.
A recent addition to the technologies useful for location information has been provided by Dallas Semiconductor, a U.S. electronic chip manufacturing company. Dallas Semiconductor has developed the Java Ring, a small Java-powered computer. It is not actually a ring, but a small computer chip encased in a 16 mm steel can. This chip can be mounted on anything of appropriate size, e.g. a key fob or a wallet. When the Java Ring is pressed against its reader, the so called Blue Dot Receptor, it starts executing and communicating with the host at the other end of the reader. This feature is used among other things to transfer money to and from the Java ring. Each Java ring has a unique ID, e.g. 1690F80300000D4. Every time when a Java Ring is used can be registered and its ID used together with the known location of the reader of the Java Ring to pinpoint the location of the ring user. As can be seen above, there are potentially many sources of location information
available to a given system, such as a cellular telephone system or a computer network. When a number of different sources provides information of a similar type there is a problem of how to best use these sources of information. There are several types of computer architecture applicable to this problem. The client/server model is one of the 5 most popular architectures, but in some areas the agent model is to prefer. The main idea of the agent model is that each user of the system has one or more semi-independent programs, agents, which perform functions for the user. Their tasks are often specified and distinct. They can function as e.g. booking agents, finding the best ticket price and booking the ticket, or as mail agents, combining electronic mail from various sources into 0 a single source of mail that the user can configure, etc. The are many definitions of an agent. One useful definition is that an agent is an independent and semi-intelligent program performing some tasks of the user, especially tasks that can be performed automatically.
A disadvantage of the current solutions and implementations that provide user s location information is that they only deal with a single source of information. Whenever there are multiple sources providing information of different kinds and resolution about locations, efficient solutions are unavailable. Another problem is found in the case where a system can pinpoint the place where a person is located, but where the user may not want to disclose where she/he is located. Most current systems that provide user location o information, especially in cellular systems, do not provide the user with any control over the information to be provided and to whom and over whom can access such information. SUMMARY OF THE INVENTION
The present invention relates generally to a method and network for providing location services in e.g. cellular telecommunication systems, and more particularly for 5 locating a particular user when multiple sources of location information are available. Each source of location can provide location information about the particular user that is a participant to the system. The different location information for each of the users can be of different kinds and resolution.
As mentioned above, there still exists a problem in current cellular systems and 0 computer networks that need to make use of information about the location of its users. Current systems typically make use of only one source of location information without considering other sources.
Accordingly, it is an object of the present invention to provide a method for allowing e.g. a cellular telephone system to use multiple sources of location information 5 about its users, and especially in the case where these different information sources are of different kinds and have different levels of resolution.
The present invention achieves this by taking advantage of the different attributes of location information obtained from different sources: the actual location, the time when the information starts to be valid, the time when it will expire or starts to be invalid, and o whether it signals an arrival or a departure. The choice of the source of location which
provides the best indication of a true location of a user is dependent upon the resolution of the information, i.e. how accurately the information locates the user. e.g. within a country, within a city, or within a certain building.
The basic idea of the present invention is to evaluate a list of all currently available 5 and valid location information. The most recent location information in the list is chosen as a first choice. Then the list is evaluated to see whether there is location information that is of a higher resolution than the first choice and which does not conflict with or is compatible with the first choice on any level of resolution. For example, the most recent location information might comprise that the user is in e.g. Sweden. If there is location 0 information in the list which indicates that the user is in Stockholm, Sweden, that location of the user will be chosen, since it is of a higher resolution, since it does not come in conflict with the first choice on any level of resolution and though it is not the most recent information.
After the choice of location information has been made it can be sent to some 5 service or program or perhaps an own software agent of the user, that requested it. Sometimes the method is not run by the request of a service or agent, but rather whenever new location information is received or previous location information is updated or has become invalid. In that case, the location information can be sent to various "receiving services" . Various developments of the basic method are also possible. 0 Although the invention has been summarised above, the method according to the present scope of the invention is defined according to appended claim 1. Various embodiments are further defined in remaining dependent claims.
The present invention is not discussed in terms of any particular system. It is particularly applicable to cellular networks, but can also be used in the public switched 5 telephone network (PSTN), local area networks (LANs), and computer networks including the Internet. However, it is not limited to these systems and may, in general, be used in any system that needs location information about its users, particularly where location information is available from many sources. BRIEF DESCRIPTION OF THE DRAWINGS 0 The present invention will now be described in more detail with reference to non- limiting embodiments of the present invention, given only by way of example, and illustrated in the accompanying drawings, in which:
- Fig. 1 is a block diagram of the architecture of a system for providing location information, 5 - Fig. 2 is a flow diagram of a procedure executed by a location agent in the system of Fig. 1,
- Fig. 3 is a flow diagram illustrating optional additional steps which can executed in the procedure illustrated by the flow diagram of Fig. 2, and
- Fig. 4 is a picture showing some details of the internal organization of a location agent o used in the system of Fig. 1.
DETAILED DESCRIPTION
In Fig. 1 a schematic picture of a system or network 100 is shown, the network e.g. being part of or used as a supplement in a cellular telecommunication system and providing location information of users. The users of the network all have devices 105 5 which can be located by plural kinds of location sources 110. The location sources 110 thus produce location information of the devices and they forward it through location services 120 to each of a plurality of location agents 130, each location agent being associated with or assigned to a single, individual user of the network. Thus, for each user only one location agent is provided managing all location information for the user. A o location agent 130 can share its data with other location agents, either directly or through the location services 120. The location agents 130 compile location information received from the location sources 110 and determine the data to be forwarded to the outside, as will be described hereinafter.
Each location source 110 is connected to only one location service 120, so that a set s of location sources is connected to each location service. All location services 120 deliver location information to the location agents 130 which in turn can forward it to any of a number of Common Location Interest Coordination Services (CLICSs) 140. A location source 110 is a small program that through the electronic circuits of some electronic apparatus or software service monitors the apparatus or the software, which can comprise 0 e.g. a badge receiver or a Java Ring reader, i.e. the Blue Dot Receptor described above. Each location source 110 has a location identification tag which can e.g. be assigned when starting the network. For each type of devices 105 one type of location sources 110 is provided. A monitored device 105 can signal that something have happened or changed to one of the location sources 110, which are specialised for the device. The location 5 source interprets the event and sends a message with the identification tag of the location source and identity information of the device 105 from which it has received information of the event to the location service 120. The identity information of the device 105 identifies the device and thereby a user and depends on the actual kind of device. For example, identity information of a Java Ring is a unique key of 64 bits that is stored in 0 the Java Ring.
Each location service 120 collects location information from several location sources 110 of the same type. The location service 120 acts as a one-point interface between one or more location sources 110 and the location agents 130 and can perform a conversion of received location information to a standard representation or logical location informa- 5 tion used by the location agents. A device 105 can change the location source 110 to which it is connected when the user moves together with the device 105. If a building would have a number of Java Ring readers, each reader would have or include a location source 110 of type Java Ring. Then there would be a location service 120 also of type Java Ring which collected all the data from the Blue Dot Receptors, i.e. the location o sources 110 of the Blue Dot Receptor type, and forwarded them to the location agents
130.
For some types of location information, there is no signalling of events, such as GPS data. GPS data are continuously determined by a GPS receiver worn by user from satellite signals and can be sent to a location service special to this kind of location 5 information. In this case the information directly provides the physical position of a user and the location service arranged for the GPS system maps the physical position to logical location information. Such a conversion from a native data format to logical location information format is generally a task executed by each location service 120, as has already by indicated. o Each user has exactly one location agent 130 that handles all data pertaining to the various kinds of location information obtained for the user. The location agent 130 receives logical location information from all available location services 120. The location information is always associated with an ID of the user or of the device 105 carried by the user. This ID can be the same kind of ID as the device dependent identity mentioned s above. If a user wears a Java Ring having the identity number " 1690F802000000D4" , she/he can order his/her location agent 130 to listen for this identity. The location agent 130 can then contact all location services for sources of type Java Ring requesting them to also listen for this identity. When a person carrying a Java Ring passes in the vicinity of a Java Ring reader connected to the network, the reader will then send a message to o the location service 120 to which it is connected and which will find that the identity associated the message is one of those which are to be monitored and will then forward the message to the location agents 130, in particular also to the location agent of the person carrying the Java Ring. All received location information is processed by the location agents 130 and some of it is forwarded to all CLICSs 140 that have been 5 selected by the user.
In order to use the location information provided by the location agents it must be accessed. Every location agent 130 in the system could be asked for relevant information, but that would be inefficient and would require a global listing to all location agents. Instead the CLICSs (Common Location Interest Coordination Services) 140 mentioned 0 above can be used. Such a CLICS 140 represents an area of common interest. It only receives location information from users who have explicitly instructed their location agents 130 to send data to the considered CLICS 140 and who are allowed to send data to this CLICS 140. Furthermore, it only delivers the received data to a group of allowed receivers or receiver services 150, e.g. as determined by the user, the receiver services 5 e.g. monitoring one or more objects 160. The location agents 130 and the allowed receivers form a common interest group for which the CLICS coordinates location information. In a practical example a user can be employed at a workplace having locked doors and the user tells her/his location agent 130 to pass location information to the CLICS 140 handling the doors of the workplace. This CLICS 140 can then monitor a o door-opening program 150 and send current location information thereto. The door-
opening program evaluates the location information and compares it to the location of the doors. It can thereby determine when the user is close to one of the doors and then send a signal thereto opening the door which is the monitored object 160 in this example.
For achieving it, each CLICS 140 can comprise two lists, an access control list (ACL) of allowed logins, i.e. of those users for which the location information provided by their associated location agents are handled by the considered CLIC, and an access control list of allowed receivers, i.e. of those devices which are to receive the location information. This is to ensure that
* unauthorised users can not log in to a CLICS 140 and use the services which it implicitly offers, and
* unauthorised devices or persons can not listen to location information that should be secret.
In other location systems, the retrieving programs wanting to locate a person, directly contact the various location sources, such as a badge server, a GPS server, etc. , and ask them for information. Thus, the retrieving programs can talk to the location sources 110 directly and then they can also access location information of all users. Using CLICSs as described above and the method executed thereby, the location information is only forwarded to retrievers or receivers which are valid or selected for that information. Furthermore, in other location systems, if someone, such as some program or service, needs to know the location of a special user, thus all location sources have to be asked whether they have current location information of the user. Using location agents 130 as described above is more efficient since then only the appropriate location agent has to be asked. Moreover, in other location systems there may be a difficulty in adding new location sources 110 to the systems. Thus, in other location systems using the direct method of retrieving location information not using location agents as described above, when adding a new location source, all applications of the system must be instructed to include this new location source in their lists of location sources. Furthermore, the applications must be capable of communicating information therewith. Using location agents as described above makes such additions to the system easy. In the communication between the location services and the location agents and also the CLICs the location information has a special representation and is then called logical location information, i.e. it is represented in a special format. Location information is in the most general sense a piece of information describing the place where something is located. The representation of the location should be unambiguous and complete, i.e. if two instances of location information represent the same physical location they must contain the same data. In addition, all location information must be representable. Also, in the representation of the location information preferably should be included an indication of the time when it is valid and/or during which time period it is valid. Further, in the representation some indication can be provided whether the location information specifies presence or absence of the user.
Thus, a data record made according to such a logical representation for carrying location information between the locating service, location agents and the CLICS advantageously includes four attributes: the very location information, preferably in a logical representation, the time when the location information starts to be valid, the 5 expiry time of the location information, i.e. the time when the location information starts to be invalid, and an indication of presence/absence or equivalently of arrival/departure.
In a representation suitable to be used in the network of Fig. 1 , the first attribute, the actual location information, is represented by an ordered set of area keys together with associated values. The location information range from "country" down to "desk" . o The order is determined by the resolution of the area. The level "city" has a higher resolution than "country" since a city is located in a country. All levels from the lowest resolution, i.e. country, to the highest available must be defined. Thus, the attribute [country: USA, state: Texas] is correct or complete whereas [state: Texas] is not correct since theoretically there might be another country having a state named Texas. However, s all location information might not have values for all levels of resolution. This case is handled by specifying "Not Available" as the value for each level of resolution that is not applicable. A complete example is [country: Sweden, state: NotAvailable, island: Gotland, region: Gotland, city: Visby].
The second and third attributes define the duration of the location information and o facilitate the removal or cancelling of location information. The fourth attribute, presence/absence or arrival/departure, differentiates the location sources 110.
Table 1. Typical location sources.
5
A GPS receiver as listed in the first line of Table 1 is a device which through a
satellite of the GPS system produces location information. In contrast, a scheduled meeting in a calendar server, see the last line of the table, is not created until the meeting actually is scheduled to start. The location information from a Java Ring, also listed in the table, is created when the Java Ring is inserted in a Blue Dot Receptor. For a mobile 5 telephone connected to a cellular network, location information is created when the telephone is turned on or when a call is begun, the location information comprising the cell containing the base station to which the telephone is connected. The creation time for an IR identification badge is when the identification information of the badge is transmitted to a receiver. Location information obtained both from the GPS and from 0 mobile cellular telephones expires after the connection to a satellite or base station has finished. The location information for a badge expires after a set "polling time" . The badge monitoring system polls regularly to see if still in contact with the badge. If not in contact, the location information will expire. A Java Ring expires when it is retracted whereas a calendar server expires when e.g. a scheduled meeting is scheduled to end, no s matter whether the meeting has, in fact, actually ended. The start and expiration times determine the duration of the location information.
When assigning a logical location to a place, it is given the text representation that has been discussed above. In many applications it is necessary to map the logical location to a physical location, i.e. coordinates in two or maybe three dimensions. It is e.g. much o more convenient to plot specific coordinates in a map instead of finding the area on the map that matches a logical location. On the other hand, it is not necessary or even possible to know the physical location of every logical location. If a calendar server reports a user to be located in a meeting room, the system might be ignorant of the coordinates of this room. In any case, there has to be some kind of mapping between 5 logical locations and application specific locations.
In addition to this problem, there is a question where the knowledge of the location mapping should be placed. A central location mapping service, not shown, could be provided, that receives logical location information from other services and/or agents, and answers with location information in another representation. There are several 0 drawbacks to this. Every time a new location source is set up, the mapping database must be updated. Furthermore, the mapping service must be general enough to be used by a variety of applications. Another approach would be to let the applications do the mapping. Many applications would not need to do any mapping since they only use the logical representations. The main problem would of course be that there would be a lot of 5 redundant information in the system. The second of these two approaches is the one preferred herein. However, a mapping server could be readily entered in the system as described. Any application could then be modified to use it.
There is also the reverse problem: some low level location sources like a GPS receiver provide the physical coordinates of themselves and the system needs to convert 0 these to logical locations. One solution is to give the responsibility of the conversion to
the specialised location sen/ice 120 for each location source type, as indicated above. The GPS location service would then receive physical position data from the GPS location source and convert it using some ldnd of table or by other means. The important feature is that from the location agent layer and beyond, there should be no notion of the "physical" origins of the location information.
When a location agent 130 has received location information from more than one location service 120, it has to determine the location information which is more correct and thus is preferable. Since location information can come from many different kinds of location sources, it is not possible to use some simple heuristic like comparing the timestamps of the location information. For example, a calendar location information can say that a person A will be in a meeting from 10.00 a.m. until 11 :00 a.m. , but the latest location from the badge of the person obtained at 10.05 a.m. indicates that person A is in his/her office. Then at 10.30 a.m. the location agent 130 belonging to person A should trust the calendar location information more even though it is older since location information from a badge is not supposed to be valid for more than some minutes. The person A was probably only late for the meeting.
The location information can have the following characteristics affecting the selection process:
1. Resolution. It is important since it is better to choose location information having a higher resolution. In addition to the high-resolution information, such location information probably contains low-resolution information as well. Hence, location information having a higher resolution generally includes more information than location information with a lower resolution.
2. Arrival of a person at a location or departure of person from a location. Specifying whether the location information is an arrival or a departure enables a location choosing algorithm to remove and ignore location information that suddenly has become invalid.
3. Time for the validity of the information. The timestamp and expiring of location information facilitate the removal of location information at a known invalidation time.
The location information is said to be valid if it has not been cancelled by the departure or absence attribute of the location information or by expiration signalled by the expiration attribute. However, also the first of these cases can in some cases comprise valuable location information. Having this definition in mind, an algorithm will be described for choosing the best location information among several possibly conflicting location information. This algorithm is run by a location agent 130 every time when location information for the user associated with the location agent has been updated. That includes every time when new location information is received or when location information is invalidated, either by the departure attribute or by the end of duration. It can also be executed at the request of a receiving service or of some agent.
In Fig. 2 is shown a flow diagram of an algorithm or method, a Location Choosing Algorithm, that can be executed in a location agent 130 every time when location
information has been updated or requested by some service or client. Each location agent comprises a control program or procedure 405 and a list 410 of all currently available and valid location information for the user associated with the location agent, see Fig. 4, and this list is evaluated by the algorithm. The list 410 has records LI , L2, L3, ... of location information comprising the four attributes defined above, the records being e.g. ordered according to their valid times, i.e. to their times when they start to be valid. In each location agent there are also a register 420 for the currently chosen or probable location holding the location information record L which is provided to other services and a register 430 for a default location holding a location information record LD used when no valid location information from the location sources or services is available.
The algorithm or procedure illustrated in Fig. 2 starts in a block 205, whereafter in the next block 210 the records in the list 410 of currently available location information are checked for validity and it is determined whether there is at least one valid record. If no valid record is found in block 210, in block 220 the default location of the user taken from the register 430 is chosen as the probable location information "L" to be provided to CLICSs and other services. If there is a valid location as determined in the block 210, the most recent record of location information among the currently available and valid records is chosen in block 230 as the location information "L" . The most recent location information means the location information having the most recent start time as specified in the corresponding attribute.
Then the remaining records of location information in the list 410 are evaluated by comparing them to the most recent location information and to themselves. Thus in a block 240 it is determined whether there are any more records in the list 410 beside that having the most recent time of start of validity. If it is true, a first or next record from the list is taken to be a record of evaluation in a block 250, excluding that or those already taken. Then in a block 260 the record of evaluation is tested whether it comprises location information that (a) is of higher resolution than the currently selected location information "L" and (b) does not conflict or is compatible with the location information "L" on any level of resolution, i.e. whether it comprises location information specifying a location within the location specified by the currently selected location information "L" and being more restricted or accurate than that. If the record of evaluation comprises such location information, in a block 270 the currently selected location information "L" is set to be that of the record of evaluation. Then, in a block 280 it is tested whether there is another record in the list 410 which has not been used or evaluated. If there is such a record, the block 250 is executed again in which a next record is set to be the record of evaluation. Then the block 260 is executed again. The block 280 is also executed in the case where in the block 280 it was determined that the record of evaluation did not fulfil the requirements used in this block. Finally, in those cases where it was determined in the blocks 240 and 280 that there were no more records to evaluate, the now selected, probable location information "L" is in a block 290 forwarded or
provided as the current value for the location information of the user. It might be only provided to a receiving service if the algorithm was executed on request. Executed on request means that another user or client who is authorised to access such information requested the location information for this particular user. The block 290 is also executed after the block 220. After the block 290 the procedure is ended in a block 295. By the repeated evaluation the resolution of the location information is given priority over how recently the location information was created.
The procedure described above can be slightly modified. Then in the block 260 it can also be determined whether the record of evaluation is in conflict with an invalidation location which has a lower or the same resolution with no conflicting levels of resolution and which has a higher precedence.
Two further optional steps can also be executed, as illustrated by the blocks 282 and 285 of Fig. 2. Thus, directly before performing the block 290, it can be determined in a block 282 whether the user has specified, e.g. in a list, not shown, also stored in the location agent 120, that in the case where the chosen, probable location information "L" is found in this list, i.e. equals a specially chosen record of location information, it should always be substituted by other location information. If the user has specified such a replacement, this replacement location information is set to be the chosen, probable location information "L" in the block 285. If the user has made no such specification the block 290 is executed as described above.
Although the algorithm as described above would work, it fails to take into account that some receiving services or their clients may be interested in the departure and invalidation information. An example would be that a terminal is interested in the information that someone leaves the location of the terminal in order to log out that person if she/he is currently logged in at the terminal.
In Fig. 3 is shown a flow diagram of some steps which can be performed before the steps of the procedure illustrated in Fig. 2 and they are performed only in those cases where the procedure is not run on request, thus between the blocks 205 and 210 of Fig. 2. The procedure is started in a block 305 and in the next block 310 it is thus asked whether the start of the procedure is on request. If it has been started on request the remaining steps of Fig. 3 are not executed and the execution flow proceeds to the block 210 of Fig. 2. In the case where the algorithm is not executed on request, it has been triggered by new location information entering the location agent 130 or by expiring location information or by information becoming invalid, and then a block 320 is executed, in which this location information starting the execution of the procedure is taken as the initially probable location information "L". The result is that the location information "L" will now indicate the location from which a user has departed or for which the location is no longer valid, e.g. location information for a meeting that is finished. This information can be valuable to some listening services and thus, in the next
block 340 the now selected location information "L" is presented to all such services. Also in the flow of the additional steps of Fig. 3 substitute location information can be used, as illustrated by the optional steps 350 - 370. Thus, directly before performing the block 340, it can be determined in a block 350 whether the user has specified that the chosen, probable location information "L" when it equals a predefined record of location information should be substituted by other location information. If the user has specified such a replacement, this replacement location information is set to be the chosen location information "L" in the block 360. In the next block the invalidation and departure information of the location information starting the procedure is in a block 380 copied or added to the substitute location information, thus before presenting it to the receiving services in the block 340 as described above. If the user has made no such specification of the location information starting the procedure, as determined in the block 350, also the block 340 is next executed.
The result of the additional steps illustrated by the diagrams of Fig. 3 is that recent information regarding departures and invalidations of particular location information will be provided to all the receiving services before selecting the most probable location information according to the basic procedure illustrated by Fig. 2. This will result in most recent location information and/or location information having the best resolution being then sent to all the receiving services. The procedure of Fig. 2 as described above supplemented with the additional steps of Fig. 3 but without the optional condition in block 260 of Fig. 2 deals with invalidation from the forwarding aspect but it does not invalidate a piece of location information because of the invalidation of related location information. This is a problem when one source of location information indicates the departure from an area and there is a valid location information from another source, which indicates presence in the same area. The question is then if the latter location information still is valid. Since there is little way for the location agent to independently and intelligently judge if the invalidation information, which may e.g. come from a calendar service, is more accurate than the valid presence information, which e.g. may stem from a Java Ring inserted into its reader, the system gives a precedence order for the location sources. By allowing the individual user to set this order by using substitute location information, the system becomes flexible and expandable. The location agent determines the location information which is to present as the probable location of the user. However, also the additional condition of block 260 can be used to alleviate some of these disadvantages. To summarise the procedure of Fig. 2 including the extra condition in block 260, among the currently available and valid records of location information, the most recent one is chosen and set to be the location information record "L" . If no valid location information exists in the table 410, the default location information of the user is chosen as location information "L". If valid location information which a) is of higher resolution than location information "L" ;
b) does not conflict with location information "L" in any level of resolution; and c) does not conflict with an invalidation location of lower or the same resolution with no conflicting levels of resolution and which has higher precedence, then choose it instead, as the new location information "L" . Repeat this step until no such location information can be found.
Then it is determined, as determined previously by the user, if the user has specified a replacement for this special location information and in that case let location information "L" be that location information instead. If the algorithm was run on request, return location information "L" to the requesting service, and if new information or invalidation triggered it, present the probable location information "L" to all the receiving services .
As would be obvious to a person of skill in the art, the methods and procedures and the various substeps thereof, the network and services as described in the various embodiments may be implemented as computer programs written for performing the steps of the method, whether the programs are loadable into the internal memory of a computer or stored on some computer-readable medium, e.g. a floppy disk or a CD-ROM.
The embodiments described above serve merely as illustration and not as limitation. It will be apparent to one of ordinary skill in the art that departures may be made from the embodiments described above without departing form the spirit and scope of the invention. The invention should not be regarded as being limited to the examples described, but should be regarded instead as being equal in scope to the following claims.