`
`1
`LOCATION BEACONING METHODS AND
`SYSTEMS
`
`TECHNICAL FIELD
`
`This invention relates to generally to the area of context-
`aware computing or ubiquitous computing.
`BACKGROUND
`
`The World Wide Web (WWW) was created to make
`content available from any source in any location around the
`world. Users of the Web are able to generally access a
`seemingly infinite number of resources via the Web. The
`Web hasbeen highly successful in this regard. Yet, with the
`evolution of the Web, certain needs remain largely unmet.
`Specifically, people continue to have a need to access
`information that has a contextual aspect to it. That is, often
`times,
`individuals will
`find themselves in a computing
`environment that carries with it a certain context. Yet, the
`context of the environment cannot be easily incorporated
`into the present computing cnvironment. As an cxample,
`consider the context of location. People generally have a 4,
`need to access information, data, resources andthelike, that
`have geographic dimensions to them. For example, indi-
`viduals maydesire to take advantage of services or products
`that are close in proximity to where they currently are
`located. In this regard,
`it is desirable to understand the
`individual’s contextual location so that services, goods and
`the like can be made available to the individual. As “eCom-
`
`merce” continues to grow in importance, the necessity of
`bringing people, places, services and goods together in an
`efficient manner will becomecritically important.
`To date, many attempts have been madeto bring people,
`places, services and goods together. These various attempts
`have generally approached the problem from different direc-
`tions in an often times incompatible manner. As an example,
`consider the context of location. Some services have
`
`attempted to bring people and services together by defining
`large databases that maintain information aboutthe services.
`For example, a list of restaurants may be maintained in a
`webaccessible database where each restaurant is associated
`
`with a zip code in which the restaurant is located. When a
`user desires to locate a particular restaurant,
`they might
`simply enter the zip code where they are located to see a list
`of corresponding restaurants in that zip code. From the list
`of restaurants,
`they might be able to select one or two
`restaurants of interest. This approach is undesirable for a
`number of reasons. First, the operation of the system is
`dependent upon a central server that
`is responsible for
`receiving user queries and executing the queries to return the
`information to the user. In the event the server fails, so too
`does the service. In addition, this particular service might be
`suited to finding restaurants, but possibly not other busi-
`nesses. In addition, the granularity with which the results are
`returned to the user may foist some of the search burden on
`the user (Le. the user getsa list of restaurants in a nearby zip
`code, but has to further explore the list to select which ones
`are of interest). Further, the list of restaurants may include
`somerestaurants that are blocked by sometype of a physical
`barrier (ic. a river, mountain, etc.) that makes the distance,
`as the crow flies, unroutable.
`Providers of services and products want to be connected
`to nearby end-users. End-users want
`to consume these
`services and goods at
`the closest and most convenient
`location. Acquiring the services of a dentist or a plumberthat
`lives somewhere “out on the net” is not appropriate if you
`need themto fill a cavity or unclog a sink. Looking for the
`nearest hotdog while in a stadium requires you to stay in the
`stadium.
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`2
`There is an unsolved need to be able to create context-
`aware computing in which computing devices can partici-
`pate in their particular context. In specific circumstances,
`there are needs to provide relational position awareness
`amongphysical locations in both public and private views of
`the world. To date, however, there is no one standardized
`viewof the world that would unlock the potential of context-
`aware computing. Context-aware computing is much more
`than just position awareness—although this is a very big
`field in and ofitself.
`This invention arose out of concerns associated with
`developing a standardized, context-aware infrastructure and
`related systems to unlock the potential of context-aware
`computing.
`
`SUMMARY
`
`Context aware computing systems and methods are
`described. In the described embodiment, one or morehier-
`archical tree structures are defined that uniquely identify
`geographical divisions of the Earth and/or physical or logi-
`cal entities. Each tree has multiple nodes and at least one
`node from each tree is linked. Goods and services can be
`associated with individual nodes on the tree,
`the nodes
`providing a universal reference when attempting to locate or
`consume the goodsorservices.
`In one embodiment, a computing device (such as a
`stationary or mobile computing device) has access to one or
`more of the tree structures and can utilize the tree structures
`to ascertain its current context. The device determines its
`context by traversing one or more of the tree structures to
`ascertain information that is associated with the individual
`
`nodes of the tree structure. In a particular embodiment, the
`context is the device location and the device is capable of
`autonomously determining its location within a Master
`World and one or more Secondary worlds. Once the com-
`puting device has determined its location, it can then take
`part in location-dependent scenarios.
`In one embodiment a Master World is defined and is a
`
`tree structure that represents a universally
`hierarchical
`acceptable description of the world. One or more Secondary
`Worlds can be defined and constitute company- or
`organization- specific views of the world that link with the
`Master World. A Secondary World can describe the location
`tree of an organization.
`In one embodiment, a device architecture includes a
`commoninterface, a location service module, a plurality of
`location providers, and an application program interface
`(API)or events layer. Various location providers can call the
`common interface with location information that is pro-
`cessed by the location service module to ascertain the
`device’s current location. The location providers provide
`hints about
`the current location and the location service
`module turns the hints into a nodal location on one or more
`of the hierarchicaltree structures. The location service then
`traverses one or more of the tree structures to ascertain a
`complete device location. Various applications can call the
`APIlayer to ascertain location information fromthe location
`service module. By knowing where a device is located
`within a hierarchical structure, the applications can present
`location-dependent goods or services to the user. Thus, a
`user is able to actively participate in their current computing
`environment.
`
`In other embodiments,the location service moduleis able
`to determine,
`to a degree of certainty, the location of the
`device. It does so through the use of confidence and accu-
`racy parameters that are assigned to the information that is
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0011
`EXHIBIT 1006 - PAGE 0011
`
`
`
`US 6,327,535 B1
`
`3
`provided by the location providers. Additionally, a trust
`parameter can be assigned by the location service module to
`the location providers and provides a measure of the trust
`that is associated with a particular location provider. The
`location service module can then considerall of the param-
`eters in deciding which location information to use and how
`to use it in determining a device location.
`In another embodiment, privacy issues are addressed by a
`privacy managerthat functions to modulate the information
`that is provided to the various applications as a function of
`the applications’
`identities and security policies on the
`device.
`
`In yet another embodiment, a unique beacon provider is
`described. A beacon can be located in various places and
`transmits context information that (in the case of location
`information) can be directly used to ascertain the device’s
`location relative to a tree structure node. This provides direct
`information about the device’s location within the defined
`hierarchical infrastructure.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a diagram of an exemplary computing device
`that can be used in accordance with the described embodi-
`ments.
`
`FIG. 2 is a conceptual diagram of an exemplary Master
`World and an exemplary Secondary World in accordance
`with the described embodiment.
`
`FIG. 3 is an exemplary specific view of a Master World
`and a Secondary World andtheir relation to one another.
`FIG. 4 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`
`FIG. 5 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`
`FIG. 6 is a high level diagram of an exemplary computing
`device architecture.
`
`FIG. 7 is a somewhat more specific view of an exemplary
`computing device architecture.
`FIG. 8 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`
`FIG. 9 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`
`FIG. 10 is a flow diagram that describes steps in a method
`in accordance with the described embodiment.
`
`FIG. 11 is a side elevational view of an exemplary
`location beacon in accordance with one embodiment.
`
`DETAILED DESCRIPTION
`
`Overview
`
`To provide a standardized solution, embodiments
`described just below provide a uniform definition of the
`world. The uniform definition is defined in terms of a
`
`hierarchical tree of nodes, where each node represents some
`aspect of the world. Each node is connected to at least one
`other node by a branch. An exemplaryclassification of nodes
`takes place on a physical level (e.g. physical locations such
`as political entities, infrastructure entities and public places),
`as well as a non-physical level (e.g. military APOs). This
`hierarchical nodal structure is referred to as the Master
`World, and is a standardized view worldwide. Each node of
`the Master World has various attributes associated with it
`that assist in context-aware computing. Exemplary attributes
`toclude a unique ID, name, geographic entity class, latitude/
`longitude, relative importance, contextual parents to name
`just a few. The Master World is useful becauseit can be used
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`to determinethe relative location of a place anywhere in the
`world and at any definable granularity.
`Once an individual’s location or a place an individual is
`interested in is determined, various services that reference
`the location can be offered to the individual based on their
`location. That is, value is provided by the Master World
`model in the ability to tie services to nodal locations in the
`Master World.
`
`two additional concepts add
`Building on this concept,
`value—the concept of so-called Secondary Worlds and a
`“geozone.”
`A Secondary World is a powerful computing mechanism
`whereby individual entities (such as businesses or
`organizations) can define their own particular worlds that
`need not necessarily conform to the Master World view of
`the world. That is, while the Master World is essentially a
`physical hierarchical representation of the world, the Sec-
`ondary Worlds can be physical and/or logical representa-
`tions of each individual entities’ world view. One particu-
`larly useful aspect of the Secondary World is that it links,at
`at least one point, into the Master World. Thus, within any
`Secondary World, a user’s location not only within the
`Secondary World, but the Master World as well can be
`determined. Various services can be attached to the nodes of
`
`the Secondary World. Based upon a user’s calculated
`position,
`these various services that are associated with
`Secondary World nodes can be offered to the user.
`In
`addition, because the user’s context is determined relative to
`the Master World, other services that may not be associated
`with a particular Secondary World can be offered.
`A geozoneis essentially a spatial indexing mechanism by
`which the Master World is subdivided into individual zones.
`In the described embodiment,
`the zones are subdivided
`through the use of a quadtree algorithm that is dependent on
`a density function (although many other spatial
`index
`approaches can also be used). Once a desired density level
`is achieved (density might be defined in terms of points of
`interest per zone), each node on the Master World is
`assigned a particular geozone. Geozones enable proximity
`calculations to be computed in a fast and straight forward
`manner.
`
`A useful aspect of the Master and Secondary Worlds are
`that they are “reachable” from various computing devices
`such as stationary (i.e. desktop devices) or mobile comput-
`ing devices(i.e. cell phones,laptops etc.). Thatis, the Master
`World (orat least a portion ofit) and one or more Secondary
`Worlds can be either locally maintained on the computing
`device, or accessed, e.g. via the Web or some other
`mechanism, so that a user can derive their context. For
`example, the Secondary World can be downloaded onto the
`computing device so that a user can derive their context
`within the Secondary World. Once a user’s context
`is
`determined from the Master World and one or more Sec-
`
`ondary Worlds, a various robust collection of context-aware
`solutions becomeavailable to the user. For example, specific
`Secondary World services can be offered or Master World
`services can be offered. Additionally, services from other
`Secondary Worlds might also be offered since the user’s
`location may be known (or made known) to these other
`Secondary Worlds. In this way, the Master World can link
`two or more Secondary Worlds together.
`Anotheraspectis that the described embodiments harness
`the computing power of each computing device in deter-
`mining the device’s location. Here, by virtue of having the
`Master World and one or more Secondary Worlds reachable
`by the device (and possibly locally maintained on the
`device), the device itself determines its own context.
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0012
`EXHIBIT 1006 - PAGE 0012
`
`
`
`US 6,327,535 B1
`
`5
`One embodiment provides a client side device that is
`configured to utilize the context-aware structures that are
`discussed above,i.e. the Master and one or more Secondary
`Worlds. The Master World or a portion thereof can be locally
`available on the device or can be accessible at another
`location, e.g. via the Web. In this embodiment, the client
`device has a location service embodied thereon. The
`described location service is a software module that can
`determine the location of the device and can answer queries
`from various applications (either executing on the device or
`off the device). The location service determines the location
`of the device by using the Master World and one or more
`Secondary Worlds. The applications query the location ser-
`vice through one or more Application Program Interfaces
`(APIs) or Events to get location information that is used by
`the applications to render a service.
`The location service makes use of one or more location
`providers that convey information to the device. This infor-
`mation can be information that is specific to the location
`provider, or can be information that can be mappeddirectly
`into a node of the Master World or Secondary Worlds.
`Exemplary location providers can include Global Position-
`ing Service (GPS) providers, cell phone providers (cell
`providers), Bluetooth providers, a user interface provider
`andthelike. ‘The location providers provide informationthat
`gives some aspect of a device’s current
`location. This
`information is used by the location service to ascertain the
`location of the device.
`
`Oneparticularly advantageousfeature of the client device
`is a standard or common location provider interface. The
`location provider interface enables the various location
`providers to provide information to the location service so
`that the location service can use the information to deter-
`mineits location. Essentially, the multiple location provider
`toterface is a commoninterface that enables multiple dif-
`ferent location providers to provide location information (or
`hints) aboutlocation to a location service that is on a device.
`The location providers can provide the location information
`constantly, at intervals, or when polled by the device. The
`location information can be provided with confidence and
`accuracy estimates to enable the location service to evaluate
`the relative quality of the information before it is used. The
`various providers also have the ability to self-monitor them-
`selves which assists in the providers’ ability to intelligently
`convey information to the location service. By having a
`common interface,
`the collection of location providers is
`dynamically extensible—that is location providers can be
`added or removed from the collection of location providers
`without any interference of the functionality performed by
`the location service or device. The location providers can be
`added or removed while the device is operating. This is
`particularly useful in accommodating location providers that
`are developed in the future. In this particular embodiment,
`two levels of abstraction are provided i.c. (1) the provider
`interface that receives information from the location pro-
`viders and (2) the API/events layer that enables applications
`to get at the various information.
`Onefocus of this embodimentis a device that can collect
`context information (e.g. location information) from a vari-
`ety of different sources, determine the device’s current
`context from that
`information, and provide the current
`context at some level to one or more applications that can
`use the device’s context to render a service or enable the
`device to participate in its context environment.
`In the described embodiment, the device receives location
`information or hints aboutits location. This information is
`
`collated and mapped bythe location service into a node in
`
`6
`the Master World and/or Secondary World. The hierarchical
`trees can then be traversed to determine the device’s accu-
`rate location in both the Secondary World and the Master
`World. At this point, the device has determined its context.
`The informationthat is collected can be subject to arbitration
`to ensure that only highly trusted information is used to
`determine context. The location information can be cached
`to provide “current location information” which, for a defin-
`able period of time will be accurate to some degree. Thus,
`if for some reason other location providers are unavailable,
`the cache can be used to ascertain location.
`Once a device’s location is determined, the device can
`apply a security policy to the information. Oncethis is done,
`the device can begin to answer queries from various appli-
`cations.
`
`One aspect of the described embodiment is a “favorite
`locations” aspect in which the device can be automatically
`configured, when it determines its context, so that it can
`adjust to the different locations.
`Further, various types of location providers can convey
`different types of information. For example, a so-called “thin
`provider” provides location information thatis translated by
`the location service into the appropriate node information. A
`so-called “thick provider” includes logic that takcs location
`information and provides it in a form that can map directly
`into the Master World or Secondary World.
`In another embodiment location translation services are
`
`provided that are directed to determining, as accurately as
`possible,
`the context or location of the device.
`In this
`embodiment, information is received from the various loca-
`tion providers. This information includes location, accuracy
`and confidence (all of which are provided by the location
`provider), trust (which is assigned to a location provider by
`the device or a user) and a timestamp (which helps to age the
`location information). The location translation proccssing
`involves determining which of the location providers are
`valid and active. The location providers can be ranked in
`accordance with the confidence andtrust levels. This defines
`
`an ordered list of location providers. Provision is made for
`a situation in which all of the location providers may go
`inactive. If so, a “current location” is used as a location
`provider whose confidence decreases over time.
`In the event that information from two or more of the
`location providers conflicts, then measures can be taken to
`use information for which there is a higherlevel oftrust. The
`information that is provided byall of the location providers
`(assuming no conflict) can then be used to determine a tree
`structure and a node’s entity ID (EID). The tree might be the
`Master World and the EID is a node on the Master World.
`The tree might also be a Secondary World and the EID (or
`location unique indentifier or “LUID”) is a node on the
`Secondary World. Once this information is collected, com-
`plete location information can be determined by simply
`traversing the trec(s). Once a devicce’s location is
`determined, a cache can be updated with the current location
`(including a time stamp).
`In another embodiment, privacy issues in the context-
`aware compuling environment are addressed.
`In this
`embodiment,
`the location service has acquired location
`information that pertains to the location of a particular
`device. A privacy manager determines what level of infor-
`mation to provide to applications that might request the
`information. The privacy manager can reside on the com-
`puting device itself, or can be proxied by a trusted third
`party.
`According to this embodiment, a scale of privacy levels
`are defined. Each level is defined to include more or less
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0013
`EXHIBIT 1006 - PAGE 0013
`
`
`
`US 6,327,535 B1
`
`ze
`the location of a particular
`specific information about
`device. A useris able to assign a privacylevelto entities that
`might request location information. Additionally, each node
`of the Master World and a Secondary World can have a
`privacy level associated with it. When a query from an
`application is received, the privacy managerfirst determines
`who the queryis from and the privacy level associated with
`the application or entity. The privacy managerthen evaluates
`one or more of the Master World and the Secondary World
`to find a node that has a corresponding privacy level. When
`a corresponding nodeis found, informationat that particular
`granularity is provided to the requesting application or
`entity.
`In another embodimentsystems and methodsof providing
`a location provider in the form of a location beacon are
`described.In this embodiment, a location beaconis provided
`that can be mounted in various areas (public/private areas)
`to beacon the location to any computing devices within
`transmission range. The information that
`is transmitted
`enables a device to determine its location or context. The
`
`location beacon can transmit information that is specific to
`the location service that uses the information. Transmitted
`
`information can include an EID/URLpair, and a LUID/URL
`pair. The EID gives the node identification of a node in the
`Master World; and, the associated URL gives a protocol to
`communicate with the Master World. The URL might, for
`instance, link to a server that can provide additional context
`information that uses the EID. The indicates a node on a
`
`Secondary World that correspondsto a current location; and
`the URL gives a protocol to communicate with the Second-
`ary World. For example, the URL can link with a server that
`is hosting the Secondary World. This server can then be
`queried to discover more information about the Secondary
`World (ic. Secondary World tree structure,
`location of
`associated resources, etc.) With the EID and LUID (along
`with the URLs), a device can now traverse the Master World
`or Secondary World to determine its location. Various tech-
`nologies can be used to implementthe beacon (wireless, RF,
`IR). The beacon can be a “program once” device to deter
`tampering. Programmable beacons can, however, be pro-
`vided. Security can also be provided in the form of a
`verifiable signature that is provided with the beacon infor-
`mation to assure the veracity of the transmitted information.
`Auseful context-aware computing aspect of the beacon is
`the concept of “location-enabled access”. Thatis, in addition
`to (or separately from) receiving location information,
`a
`beacon can transmit code download pointers that enable
`smart devices to access software code that allows the device
`
`to participate in its current context.
`Excmplary Computing System
`the term “computing
`In the context of this document,
`device” is used to refer generally to any type of computing
`device. Characteristics of exemplary computing devices are
`that
`they typically include one or more processors,
`computer-readable media (such as storage devices and
`memory), and software executing on the one or more
`processors that cause the processors to implement a pro-
`grammed functionality. In particular embodiments, imple-
`mentation takes place in the context of mobile computing
`devices (e.g. laptop computers and the like), and/or hand-
`held computing devices (e.g. palm PCs, wireless telephones
`and the like).
`FIG. 1 is a schematic diagram that constitutes but one
`example of a computing device that is suitable for use in
`connection with the described embodiments. It
`is to be
`
`understood that portions of the illustrated computing device
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`can be incorporated in one or more of the computing devices
`(e.g. palm PCs, wireless telephones, etc.) with which par-
`ticular embodiments are envisioned for use.
`
`Computer 130 includes one or more processors or pro-
`cessing units 132, a system memory134,and a bus 136 that
`couples various system components including the system
`memory 134 to processors 132. The bus 136 represents one
`or more of any of several types of busstructures, including
`a memory bus or memorycontroller, a peripheral bus, an
`accelerated graphics port, and a processoror local bus using
`any of a variety of bus architectures. The system memory
`134 includes read only memory (ROM) 138 and random
`access memory (RAM) 140. A basic input/output system
`(BIOS) 142, containing the basic routines that help to
`transfer information between elements within computer 130,
`such as during start-up, is stored in ROM 138.
`Computer 130 further includes a hard disk drive 144 for
`reading from and writing to a hard disk (not shown), a
`magnetic disk drive 146 for reading from and writing to a
`removable magnetic disk 148, and an optical disk drive 150
`for reading from or writing to a removable optical disk 152
`such as a CD ROMorother optical media. The hard disk
`drive 144, magnetic disk drive 146, and optical disk drive
`150 are connected to the bus 136 by an SCSIinterface 154
`or some other appropriate interface. The drives and their
`associated computer-readable media provide nonvolatile
`storage of computer-readable instructions, data structures,
`program modules and other data for computer 130. Although
`the exemplary environment described herein employs a hard
`disk, a removable magnetic disk 148 and a removable
`optical disk 152, it should be appreciated by those skilled in
`the art that other types of computer-readable media which
`can store data that is accessible by a computer, such as
`magnetic cassettes, flash memorycards, digital video disks,
`random access memories (RAMs), read only memories
`(ROMs), and the like, may also be used in the exemplary
`operating environment.
`A numberof program modules maybe stored on the hard
`disk 144, magnetic disk 148, optical disk 152, ROM 138, or
`RAM 140,including an operating system 158, one or more
`application programs 160, other program modules 162, and
`program data 164. A user may enter commandsand infor-
`mation into computer 130 through input devices such as a
`keyboard 166 and a pointing device 168. Other input devices
`(not shown) mayinclude a microphone, joystick, game pad,
`satellite dish, scanner, or the like. These and other input
`devices are connected to the processing unit 132 through an
`interface 170 that is coupled to the bus 136. A monitor 172
`or other type of display device is also connected to the bus
`136 via an interface, such as a video adapter 174. In addition
`to the monitor, personal computers typically include other
`peripheral output devices (not shown) such as speakers and
`printers.
`Computer 130 commonly operates in a networked envi-
`ronment using, logical connections to one or more remote
`computers, such as a remote computer 176.
`‘The remote
`computer 176 may be another personal computer, a server,
`a router, a network PC, a peer device or other common
`network node, and typically includes many or all of the
`elements described aboverelative to computer 130, although
`only a memory storage device 178 has been illustrated in
`FIG. 1. The logical connections depicted in FIG. 1 include
`a local area network (LAN) 180 and a wide area network
`(WAN) 182. Such networking environments are common-
`place in offices, enterprise-wide computer networks,
`intranets, and the Internet.
`Whenused in a LAN networking environment, computer
`130 is connected to the local network 180 through a network
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0014
`EXHIBIT 1006 - PAGE 0014
`
`
`
`US 6,327,535 B1
`
`9
`interface or adapter 184. When used in a WAN networking
`environment, computer 130 typically includes a modem 186
`or other means for establishing communications over the
`wide area network 182, such as the Internet. The modem
`186, which may be internal or external, is connected to the
`bus 136 via a serial port interface 156. In a networked
`environment, program modules depicted relative to the
`personal computer 130, or portions thereof, may be stored in
`the remote memory storage device. It will be appreciated
`that the network connections shown are exemplary and other
`meansof establishing a communications link between the
`computers may be used.
`Generally, the data processors of computer 130 are pro-
`grammed by means ofinstructions stored at different times
`in the various computer-readable storage media of the com-
`puter. Programs and operating systems are typically
`distributed, for example, on floppy disks or CD-ROMs.
`From there, they are installed or loaded into the secondary
`memory of a computer. At execution, theyare loaded atleast
`partially into the computer’s primary electronic memory.
`The invention described herein includes these and other
`
`various types of computer-readable storage media when
`such media contain instructions or programs for implement-
`ing the steps described below in conjunction with a micro-
`processor or other data processor. The invention also
`includes the computer itself when programmedaccording to
`the methods and techniques described below.
`For purposes of illustration, programs and other execut-
`able program components such as the operating system are
`illustrated herein as discrete blocks, although it is recog-
`nized that such programs and componentsreside at various
`times in different storage components of the computer, and
`are executed by the data processor(s) of the computer.
`Defining the World
`One of the problems to date with attempting to solve the
`context-aware computing problem is that every proposed
`solution has its own approach,data structures, processes and
`the like. There is little if any standardization between the
`various approaches. In the described embodiment, standard-
`ization is achieved at the foundational level by defining a
`universal view of the Earth. That is, a universally acceptable
`definition of the Earth is proposed and is useable in various
`computing scenarios to enable context-dependent comput-
`ing.
`In this document, a specific example of context-
`dependent computing is given in the form of location
`dependent computing. It is to be understood that this con-
`stitutes but one example of a context in which the various
`embodiments discussed below can be employed. Other
`“contexts” can include, any information that can fit into a
`hicrarchical structure including, without limitation, role/
`personnelin an organization, device categorizations, current
`activity, current environment, active devices and the like.
`The Master World
`
`A Master World is defined as a politically correct and
`publicly accepted hierarchical tree structure that catalogs
`physical location or geographic divisions of the Earth. The
`Master World is defined in such a way that many different
`classes of political, administrative and geographic entities
`across the entire Earth are included. Areas