(57)【要約】コンテキスト認識型のコンピューティングシステムおよび方法を述べる。特定の実施形態では、位置認識型のシステムおよび方法が記載される。記載された実施形態では、階層ツリー構造を利用して、デバイスのコンテキストまたは位置を確定する。このツリー構造は、モバイルまたは固定コンピューティングデバイスに記憶する、またはモバイルまたは固定コンピューティングデバイスからアクセスすることができ、デバイスは各自の特定のコンテキストまたは位置を判定することができる。一実施形態では、ツリー構造の１つが、地球の地理的区分を表すノードを含むマスター世界のツリー構造からなる。ツリー構造のうち別の１つはいわゆる２次世界を含むことができ、これは組織または企業に固有の世界観である物理的または論理的エンティティを表すノードを含む。コンピューティングデバイスは、１つまたは複数のツリー構造上のノードを確定し、次いでそのツリー構造をトラバースして完全なコンテキストを確定することにより、そのコンテキストまたは位置を自動的に判定することができる。【特許請求の範囲】
【請求項１】
コンテキストを判定するシステムであって、
１つまたは複数のコンピュータ可読媒体と、
前記媒体に常駐し、それぞれが地球の地理的区分を表す複数のノードを含む階層ツリー構造と
を備えたことを特徴とするシステム。
【請求項２】
前記１つまたは複数のコンピュータ可読媒体は１つまたは複数のネットワークを含むことを特徴とする請求項０に記載のシステム。
【請求項３】
前記ノードは、政治的または自然のエンティティを含むことを特徴とする請求項０に記載のシステム。
【請求項４】
前記政治的または自然のエンティティは、大陸、国、海洋、州、郡、および市の１つまたは複数を含むことを特徴とする請求項３に記載のシステム。
【請求項５】
前記ノードはインフラストラクチャのエンティティを含むことを特徴とする請求項０に記載のシステム。
【請求項６】
前記インフラストラクチャのエンティティは、郵便番号、市外局番、および時間帯の１つまたは複数を含むことを特徴とする請求項５に記載のシステム。
【請求項７】
前記ノードは公共の場所を含むことを特徴とする請求項０に記載のシステム。
【請求項８】
前記ノードは非物理的エンティティを含むことを特徴とする請求項０に記載のシステム。
【請求項９】
前記ノードは複数の属性を含み、そのうちの１つは前記ノードに固有のエンティティ識別（ＥＩＤ）を含むことを特徴とする請求項０に記載のシステム。
【請求項１０】
前記属性の１つは名前属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記属性の１つは、中立的なグラウンドトゥルース名の属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記属性の１つは地理的属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１３】
前記属性の１つは緯度／経度の属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１４】
前記属性の１つは相対的な重要度の指数を含むことを特徴とする請求項９に記載のシステム。
【請求項１５】
前記属性の１つはコンテキスト上の親の属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１６】
前記属性の１つはソースの属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１７】
前記属性の１つは開始／終了日の属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１８】
前記属性の１つは修正日の属性を含むことを特徴とする請求項９に記載のシステム。
【請求項１９】
前記属性の１つはステータスの属性を含むことを特徴とする請求項９に記載のシステム。
【請求項２０】
前記ツリー構造は、ビジネスまたはサービスとのノードの関連付けを一切含まないことを特徴とする請求項０に記載のシステム。
【請求項２１】
前記コンピュータ可読媒体はモバイルコンピューティングデバイスで実施されることを特徴とする請求項０に記載のシステム。
【請求項２２】
前記コンピュータ可読媒体はハンドヘルド型のモバイルコンピューティングデバイスで実施されることを特徴とする請求項０に記載のシステム。
【請求項２３】
前記コンピュータ可読媒体にインターネットを介してモバイルコンピューティングデバイスからアクセスすることができることを特徴とする請求項０に記載のシステム。
【請求項２４】
コンテキストを判定するシステムであって、
１つまたは複数のコンピュータ可読媒体と、
第１のコンテキストと関連付けられた複数のノードを有する第１の階層ツリー構造と、
第２のコンテキストと関連付けら得た複数のノードを有する少なくとも１つの第２の階層ツリー構造と、
前記第１および第２のコンテキストから完全なコンテキストを取り出すことを可能にするように構成されたリンクによって前記第１の階層ツリー構造の１ノードにリンクされた、前記少なくとも１つの第２の階層ツリー構造の少なくとも１つのノードと
を備えたことを特徴とするシステム。
【請求項２５】
前記第１および第２のコンテキストは位置のコンテキストを含むことを特徴とする請求項２４に記載のシステム。
【請求項２６】
前記第１の階層ツリー構造の前記ノードは、地球の地理的区分を含むことを特徴とする請求項２４に記載のシステム。
【請求項２７】
前記少なくとも１つの第２のツリー構造の前記ノードは、物理的及び／または論理的エンティティを含むことを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記第１の階層ツリー構造および前記少なくとも１つの第２の階層ツリー構造は複数の属性を含み、そのうちの２つは、
ノードに固有の識別と、
前記ノードが関連付けられたツリーに関連する情報と
を備えたことを特徴とする請求項２４に記載のシステム。
【請求項２９】
前記情報はユニバーサルリソースロケータ（ＵＲＬ）を含むことを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記少なくとも１つの第２の階層ツリー構造の１つまたは複数の前記ノードと関連付けられた１つまたは複数の商品またはサービスをさらに含むことを特徴とする請求項２４に記載のシステム。
【請求項３１】
前記第１の階層ツリー構造は標準化された地球のビュー（ｖｉｅｗ）を含み、前記少なくとも１つの第２の階層ツリー構造は、地球の少なくとも一部の組織固有のビューを含み、前記組織固有のビューは、地球の特定部分にリンクする物理的／論理的エンティティを含むことを特徴とする請求項２４に記載のシステム。
【請求項３２】
前記組織固有のビューは、組織の外側のコンテキストを有さないことを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記コンピュータ可読媒体はモバイルコンピューティングデバイスで実施されることを特徴とする請求項２４に記載のシステム。
【請求項３４】
前記コンピュータ可読媒体はデスクトップデバイスで実施されることを特徴とする請求項２４に記載のシステム。
【請求項３５】
前記コンピュータ可読媒体は、ハンドヘルド型のモバイルコンピューティングデバイスで実施されることを特徴とする請求項２４に記載のシステム。
【請求項３６】
前記コンピュータ可読媒体にインターネットを介してコンピューティングデバイスからアクセスすることができることを特徴とする請求項２４に記載のシステム。
【請求項３７】
コンテキストを判定する、コンピュータによって実施される方法であって、
１つまたは複数のコンピュータ可読媒体に常駐する第１の階層ツリー構造および１つまたは複数の第２の階層ツリー構造にアクセスするステップであって、各ツリー構造は複数のノードを有し、前記第１の階層ツリー構造のノードは第１のコンテキストと関連付けられ、前記１つまたは複数の第２の階層ツリー構造のノードは第２のコンテキストと関連付けられるステップと、
コンテキストを得るために、少なくとも１つの前記ツリー構造の複数のノードをトラバースするステップと
を備えたことを特徴とする方法。
【請求項３８】
前記トラバースするステップで位置のコンテキストを得ることを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項３９】
前記第１の階層ツリーの前記ノードは、地球の地理的区分を含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４０】
前記１つまたは複数の第２の階層ツリーの前記ノードは、物理的および／または論理的エンティティを含むことを特徴とする請求項３９に記載のコンピュータによって実施される方法。
【請求項４１】
前記トラバースするステップは、各ツリーの少なくとも１つのノードをトラバースして前記コンテキストを得ることを含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４２】
前記コンテキストは位置を含むことを特徴とする請求項４１に記載のコンピュータによって実施される方法。
【請求項４３】
前記第１の階層ツリー構造および１つまたは複数の階層ツリー構造は、リンクされた少なくとも１つのノードの対を含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４４】
前記１つまたは複数の第２の階層ツリー構造の前記ノードの少なくとも１つはそれに関連付けられた商品またはサービスを有し、前記トラバースするステップは、ノードと関連付けられた商品またはサービスを見つけて、前記商品またはサービスを消費することを含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４５】
前記第１の階層ツリー構造および１つまたは複数の第２の階層ツリー構造にアクセスする前記ステップは、モバイルコンピューティングデバイス上でローカルに利用することのできるツリー構造にアクセスすることを含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４６】
前記第１の階層ツリー構造および１つまたは複数の第２の階層ツリー構造にアクセスする前記ステップは、ネットワーク媒体を介して前記ツリーの少なくとも１つにアクセスすることを含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４７】
前記第１の階層ツリー構造および１つまたは複数の第２の階層ツリー構造にアクセスする前記ステップは、インターネットを介して前記ツリーの少なくとも１つにアクセスすることを含むことを特徴とする請求項３７に記載のコンピュータによって実施される方法。
【請求項４８】
コンピュータ可読命令を有する１つまたは複数のコンピュータ可読媒体であって、前記コンピュータ可読命令はコンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
第１および第２の階層ツリー構造にアクセスさせるステップであって、各ツリー構造は複数のノードを有し、前記第１の階層ツリー構造の前記ノードは第１の位置のコンテキストと関連付けられ、前記第２の階層ツリー構造の前記ノードは第２の位置のコンテキストと関連付けられ、前記第２の階層ツリー構造の少なくとも１つのノードは、前記第１の階層ツリー構造のノードにリンクされているステップと、
各ツリー構造の少なくとも１つのノードをトラバースして位置のコンテキストを得るステップであって、前記第２の階層ツリー構造のルートノードに通じるトラバース経路中の少なくとも１つのノードは、前記第１の階層ツリー構造のノードにリンクされているステップと
を行わせることを特徴とする１つまたは複数のコンピュータ可読媒体。
【請求項４９】
前記コンピューティングデバイスは自動的にその位置のコンテキストを判定することを特徴とする請求項４８に記載の１つまたは複数のコンピュータ可読媒体。
【請求項５０】
前記コンピューティングデバイスはハンドヘルド型コンピューティングデバイスであることを特徴とする請求項４８に記載の１つまたは複数のコンピュータ可読媒体。
【請求項５１】
前記コンピューティングデバイスはモバイルコンピューティングデバイスであることを特徴とする請求項４８に記載の１つまたは複数のコンピュータ可読媒体。
【請求項５２】
前記コンピューティングデバイスはデスクトップデバイスであることを特徴とする請求項４８に記載の１つまたは複数のコンピュータ可読媒体。
【請求項５３】
前記コンピューティングデバイスは、自動的にその位置のコンテキストを判定するハンドヘルド型コンピューティングデバイスであることを特徴とする請求項４８に記載の１つまたは複数のコンピュータ可読媒体。
【請求項５４】
商品またはサービスを見つける、コンピュータによって実施される方法であって、
それぞれが物理的または論理的エンティティを定義することができる複数のノードを含む階層ツリー構造を定義するステップと、
１つまたは複数の商品またはサービスを前記ノードの１つまたは複数と関連付けるステップと、
商品またはサービスを発見するために、前記複数のノードの１つまたは複数をトラバースするステップと
を含むことを特徴とする方法。
【請求項５５】
前記複数のノードの１つまたは複数を、それぞれが地球の地理的区分を表す複数のノードを含む別の階層ツリー構造にリンクすることをさらに含むことを特徴とする請求項５４に記載のコンピュータによって実施される方法。
【請求項５６】
前記トラバースするステップは、現在の位置を判定することを可能にすることを特徴とする請求項５５に記載のコンピュータによって実施される方法。
【請求項５７】
コンピュータ可読命令を有する１つまたは複数のコンピュータ可読であって、前記コンピュータ可読命令はコンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
それぞれが物理的または論理的エンティティを定義することができる複数のノードを含む階層ツリー構造を定義するステップと、
１つまたは複数の商品またはサービスを前記ノードの１つまたは複数に関連付けるステップと、
前記複数ノードの１つまたは複数をトラバースして、商品またはサービスを発見するステップと
を行わせることを特徴とする１つまたは複数のコンピュータ可読。
【請求項５８】
コンテキスト認識型のデータ構造を構築する、コンピュータによって実施される方法であって、
物理的および／または論理的エンティティに関連する情報を指定する入力をソースから受信するステップと、
前記情報を処理してコンテキストを有する階層ツリー構造を定義するステップであって、前記ツリー構造は、それぞれが個別の物理的または論理的エンティティを表す複数のノードを含むステップと、
コンテキストと、物理的および／または論理的エンティティを表す複数のノードとを有する別のツリー構造のノードに、前記複数ノードの少なくとも１つをリンクするステップと
を備え、
前記ツリー構造は、前記ノードの１つまたは複数からコンテキストを得ることを可能にするような方式で、トラバースのために構成されることを特徴とするコンピュータによって実施される方法。
【請求項５９】
前記得られるコンテキストは位置のコンテキストからなることを特徴とする請求項５８に記載のコンピュータによって実施される方法。
【請求項６０】
コンピューティングデバイスによって実行されると前記コンピューティングデバイスに請求項５８に記載の方法を実施させるコンピュータ可読命令を有することを特徴とする１つまたは複数のコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、概して、コンテキスト認識型コンピューティングまたはユービキタスコンピューティングの領域に関する。
【０００２】
（発明の背景）
ワールドワイドウェブ（ＷＷＷ）は、世界中のどの位置にあるどのソースからでもコンテンツを入手できるようにするために作り出された。ウェブのユーザは、一般に、一見無限数の資源にウェブを介してアクセスすることができる。ウェブはこの点においては非常に成功している。しかしウェブの発展に伴い、いまだ満たされていない必要性もある。具体的には、人々は、コンテキスト的な側面を持つ情報にアクセスする必要性をなお有している。すなわち、多くの場合、個人は特定のコンテキストを伴うコンピューティング環境にある。しかし、現在のコンピューティング環境に環境のコンテキストを組み込むことは容易でない。一例として位置のコンテキストを考えてみたい。人々は一般に、地理的な特質を有する情報、データ、資源などにアクセスする必要性を有している。例えば、個人は現在自分が位置している場所に近いサービスや製品を活用したい場合がある。これについては、その者がサービス、商品などを利用できるように、その者のコンテキスト的な位置を把握することが望ましい。「ｅコマース」の重要性が高まり続けるのにつれて、人々、場所、サービス、および商品を効率的な方式で結びつける必要性が非常に重要になるものと思われる。
【０００３】
今日まで、人々と、場所、サービス、商品を結び付けようとする数多くの試みがなされてきた。こうした各種の試みは概して、多くの場合には相互に互換性のない方式でこの問題を様々な方向から扱ってきた。一例として位置のコンテキストを考えてみたい。あるサービスは、サービスに関する情報を保持する大規模なデータベースを定義することにより、人々とサービスを結びつけることを試みた。例えば、各飲食店をその店が位置する郵便番号と関連付けた、ウェブによるアクセスが可能なデータベースに飲食店のリストを保持することができる。ユーザが特定の飲食店を見つけたいときには、単に自分がいる郵便番号を入力して、その郵便番号内にある対応する飲食店のリストを見ることができる。飲食店のリストから、該当する飲食店を１つまたは２つ選択することができる。この手法はいくつかの理由により望ましくない。まず、このシステムの運用は、ユーザからの照会を受け取り、照会を実行して情報をユーザに返す役目を担う中央サーバに依存する。サーバ障害が起こった際には、サービスにも障害が発生する。さらに、この特定のサービスは飲食店を見つけるのには適しているかもしれないが、他のビジネスには適さない可能性がある。また、ユーザに結果が返される際の精度は、ユーザに検索の負担の一部を強いる場合がある（すなわち、ユーザは近隣の郵便番号にある飲食店のリストを得るが、さらにそのリストの中からどの店が該当するかを選択しなければならない）。さらに、飲食店のリストには、ある種の物理的障害（川、山など）によってさえぎられており、直線距離で行く場合の距離をたどることが不可能な飲食店が含まれている可能性もある。
【０００４】
サービスや製品のプロバイダは、近隣のエンドユーザと結び付けられることを望む。エンドユーザは、最も近く、最も利便な位置にあるこうしたサービスや商品を消費することを望む。歯の穴を埋めてもらう、あるいは詰まった流しを修理してもらう必要がある場合に、「ネット上」のどこかに住む歯科医や配管工のサービスを利用することは適切ではない。スタジアムにいるときに一番近くで買えるホットドッグを探そうとすれば、スタジアムの中にいなくてはならない。
【０００５】
コンピューティングデバイスが各自の特定のコンテキストに関与できるコンテキスト認識型のコンピューティングを作り出すことを可能にするという未解決の必要性がある。特定の状況では、公的な世界観と私的な世界観の両者における物理的位置間の関係上の位置の認識を提供することが必要とされる。しかし、これまでのところ、コンテキスト認識型のコンピューティングの可能性を開く、標準化されたただ１つの世界観は存在しない。位置の認識は本質的に非常に広い領域ではあるとは言え、コンテキスト認識型のコンピューティングは単なる位置認識以上のものである。
【０００６】
本発明は、標準化されたコンテキスト認識型のインフラストラクチャとそれに関連するシステムを開発して、コンテキスト認識型コンピューティングの可能性を開くことに関連した重要性から生まれたものである。
【０００７】
（発明の概要）
コンテキスト認識型のコンピューティングシステムおよび方法を述べる。記載する実施形態では、地球および／または物理的または論理的エンティティの地理的な区分を一意に識別する、１つまたは複数の階層的ツリー構造を定義する。各ツリーは複数のノードを有し、各ツリーの少なくとも１つのノードがリンクされる。ツリーの個々のノードには商品およびサービスを関連付けることができ、ノードは、商品やサービスを見つける、または消費しようとする際に世界規模の参照を提供する。
【０００８】
一実施形態では、コンピューティングデバイス（固定型または携帯型のコンピューティングデバイス）は、１つまたは複数のツリー構造にアクセスすることができ、ツリー構造を利用してその現在のコンテキストを確定することができる。デバイスは、１つまたは複数のツリー構造をトラバースして、そのツリー構造の個々のノードに関連付けられた情報を確定することによりそのコンテキストを判定する。特定の実施形態では、コンテキストはデバイスの位置であり、デバイスは、マスター世界と１つまたは複数の２次世界におけるその位置を自発的に判定することができる。コンピューティングデバイスは、その位置を判定すると位置に依存するシナリオに参加することができる。
【０００９】
一実施形態ではマスター世界が定義され、これは、全世界的に受け入れられる世界の記述を表す階層的ツリー構造である。１つまたは複数の２次世界を定義することができ、これは、マスター世界とつながる（ｌｉｎｋ　ｗｉｔｈ）企業または組織固有の世界観を構築する。２次世界は、ある組織の位置のツリーを記述することができる。
【００１０】
一実施形態では、デバイスのアーキテクチャは、共通インタフェース、位置サービスモジュール、複数の位置プロバイダ、アプリケーションプログラムインタフェース（ＡＰＩ）またはイベントレイヤを含む。様々な位置プロバイダは位置情報を有する共通インタフェースを呼び出すことができ、この情報を位置サービスモジュールで処理することによりデバイスの現在の位置を確定する。位置プロバイダは現在の位置に関する手がかりを提供し、位置サービスモジュールはその手がかりを１つまたは複数の階層ツリー構造上のノード位置に変える。位置サービスは次いで１つまたは複数のツリー構造をトラバースして、完全なデバイス位置を確定する。各種アプリケーションはＡＰＩレイヤを呼び出して、位置サービスモジュールからの位置情報を確認することができる。デバイスが階層構造のどこに位置するかを知ることにより、アプリケーションは位置に依存した商品やサービスをユーザに提示することができる。したがって、ユーザは、各自の現在のコンピューティング環境に活発に参加することができる。
【００１１】
他の実施形態では、位置サービスモジュールは一定度の確実性でデバイスの位置を判定することができる。位置サービスモジュールは、位置プロバイダが提供する情報に割り当てられる信頼度と正確度のパラメータを使用してこの判定を行う。さらに、位置サービスモジュールにより位置プロバイダに信用度パラメータを割り当てることができ、このパラメータは特定の位置プロバイダに関連付けられた信用性の尺度を提供する。位置サービスモジュールは、デバイス位置を判定する際にどの位置情報を使用し、それをどのように使用するかを決定する際にこれらのパラメータをすべて考慮することができる。
【００１２】
別の実施形態では、アプリケーションの識別とそのデバイスのセキュリティ方針に応じて各種のアプリケーションに提供される情報を調整する機能を果たすプライバシーマネジャによってプライバシーの問題に対処する。
【００１３】
さらに別の実施形態では、独自のビーコンプロバイダについて説明する。ビーコンは様々な場所に置くことができ、（位置情報の場合には）ツリー構造ノードに対するデバイスの位置を確定する際に直接使用することのできるコンテキスト情報を送信する。これは、定義された階層的インフラストラクチャ内におけるデバイスの位置に関する直接的な情報を提供する。
【００１４】
（好適な実施形態の詳細な説明）
概略
標準化された解決法を提供するために、以下で説明する実施形態は画一的な世界の定義を提供する。画一的な定義は階層的なノードのツリーとして定義され、各ノードが世界の何らかの側面を表す。各ノードは、分岐によって少なくとも１つの他のノードに連結される。例示的なノードの分類は、物理的レベル（例えば政治的エンティティ、インフラストラクチャのエンティティ、公共の場所などの物理的位置）で、また非物理的なレベル（例えば軍のＡＰＯ）でも行われる。この階層的なノード構造をマスター世界と呼び、これは標準化された世界規模の世界観である。マスター世界の各ノードは、コンテキスト認識型のコンピューティングを支援する、それに関連付けられた各種の属性を備える。属性の例には、一意のＩＤ、名前、地理的なエンティティクラス、緯度／経度、相対的な重要度、数個のみを指示するコンテキスト上の親が含まれる。マスター世界は、定義可能な精度で世界中のあらゆる場所の相対的な位置を判定するのに使用できるので有用である。
【００１５】
ある個人の位置、あるいはある個人が興味を持つ場所が判定されると、その位置に基づいてその位置を参照する各種サービスを個人に提供することができる。すなわち、マスター世界内のノード位置にサービスを結びつけることができるという点で、マスター世界モデルによって価値が提供される。
【００１６】
この概念に基づき、さらに２つの概念、すなわちいわゆる２次世界の概念と「ジオゾーン（ｚｅｏｚｏｎｅ）」が価値を付加する。
【００１７】
２次世界は強力なコンピューティング機構であり、これにより個々のエンティティ（ビジネスや組織など）は、マスター世界による世界観に必ずしも準拠しなくともよい各自の特定の世界を定義することができる。すなわち、マスター世界が基本的に世界の物理的な階層的表現であるのに対し、２次世界は各個々のエンティティの世界観の物理的かつ／または論理的な表現にすることができる。２次世界の特に有用な点は、それが少なくとも１点でマスター世界内にリンクしていることである。したがって、どの２次世界でも、２次世界だけでなくマスター世界におけるユーザの位置も判定することができる。２次世界のノードには各種のサービスを取り付けることができる。計算されたユーザの位置に基づき、２次世界のノードに関連付けられたこの各種サービスをユーザに提供することができる。さらに、ユーザのコンテキストはマスター世界との関連で判定されるので、特定の２次世界に関連付けられていない可能性のある他のサービスを提供することができる。
【００１８】
ジオゾーンは基本的に空間的なインデックス付けの機構であり、これによりマスター世界を個々のゾーンにさらに分割する。説明する実施形態では、ゾーンは、密度関数に依存する４分木アルゴリズムを使用して再分割される（ただし他の多くの空間インデックス手法も使用することができる）。所望の密度レベルに達すると（密度は１ゾーンごとの当該の地点によって定義することができる）、マスター世界の各ノードに特定のジオゾーンが割り当てられる。ジオゾーンは、迅速かつ単純な方式で近接度を計算することを可能にする。
【００１９】
マスター世界と２次世界の有用な点は、固定型のコンピューティングデバイス（デスクトップデバイス）または携帯型のコンピューティングデバイス（携帯電話、ラップトップなど）などの各種のコンピューティングデバイスから「到達できる（ｒｅａｃｈａｂｌｅ）」ことである。すなわち、マスター世界（あるいは少なくともその一部）と１つまたは複数の２次世界は、ユーザが各自のコンテキストを入手できるように、コンピューティングデバイス上にローカルに保持することも、あるいは、例えばウェブやその他の機構を介してアクセスすることもできる。例えば、ユーザが２次世界における各自のコンテキストを得るために、２次世界をコンピューティングデバイスにダウンロードすることができる。マスター世界、および１つまたは複数の２次世界からユーザのコンテキストが判定されると、コンテキスト認識型の解決法の各種の頑強なコレクションをユーザが利用できるようになる。例えば、特定の２次世界のサービスを提供する、あるいはマスター世界のサービスを提供することができる。さらに、ユーザの位置が他の２次世界にも知られる（あるいは知らせる）ことが可能なことから、そうした他の２次世界のサービスも提供することができる。このような方式で、マスター世界は２つあるいはそれ以上の２次世界をともに結びつけることができる。
【００２０】
別の態様は、記載する諸実施形態がデバイスの位置を判定する際に各コンピューティングデバイスの計算能力を利用する点である。ここで、マスター世界と１つまたは複数の２次世界をデバイスから到達できる（かつ可能性としてはデバイス上でローカルに保持する）ようにすることにより、デバイス自体がそれ自体のコンテキストを判定する。
【００２１】
一実施形態では、上記のコンピューティングデバイス構造、すなわちマスター世界と１つまたは複数の２次世界を利用するように構成されたクライアントサイドデバイスを提供する。マスター世界またはその一部は、デバイスでローカルに利用できるようにすることも、あるいは別の位置から例えばウェブを介してアクセスできるようにすることもできる。この実施形態では、クライアントデバイスはデバイス上で位置サービスを実施する。ここに述べる位置サービスとは、デバイスの位置を判定することができ、各種アプリケーションからの照会に答えることのできる（デバイスまたはデバイス外で実行される）ソフトウェアモジュールである。位置サービスは、マスター世界と１つまたは複数の２次世界を使用してデバイスの位置を判定する。アプリケーションは、１つまたは複数のアプリケーションプログラムインタフェース（ＡＰＩ）またはイベントを通じて位置サービスに照会を行い、アプリケーションがサービスを提供する際に使用される位置情報を入手する。
【００２２】
位置サービスは、情報をデバイスに伝達する１つまたは複数の位置プロバイダを利用する。この情報は、位置プロバイダに固有の情報であっても、あるいはマスター世界または２次世界のノードに直接マッピングすることのできる情報であってもよい。例示的な位置プロバイダには、全地球測位システム（ＧＰＳ）プロバイダ、携帯電話プロバイダ（セルプロバイダ）、ブルートゥースプロバイダ、ユーザインタフェースプロバイダなどが含まれる。位置プロバイダは、デバイスの現在の位置の一面を与える情報を提供する。この情報は、デバイスの位置を確定するために位置サービスによって使用される。
【００２３】
このクライアントデバイスの特に有利な特徴の１つは、標準あるいは共通の位置プロバイダインタフェースである。この位置プロバイダインタフェースは、位置サービスが情報を使用してその位置を判定することができるように、各種の位置プロバイダが位置サービスに情報を提供することを可能にする。基本的に、複数の位置プロバイダインタフェースは共通のインタフェースであり、これにより複数の異なる位置プロバイダが位置に関する位置情報（または手がかり）をデバイス上の位置サービスに提供することが可能になる。位置プロバイダは、間隔を置いて、またはデバイスからポーリングされた際に常に位置情報を提供することができる。位置情報は信頼度と正確度の推定値を備えることができ、位置サービスは情報を使用する前にその相対的な品質を評価することができる。各種のプロバイダは自身を自己監視する能力も有し、プロバイダが情報をインテリジェントに位置サービスに伝達する能力を支援する。共通インタフェースを備えることにより、位置プロバイダの集合を動的に拡張することができる。すなわち、位置サービスまたはデバイスによって行われる機能を妨害せずに、位置プロバイダの集合に位置プロバイダを追加または削除することができる。位置プロバイダは、デバイスの動作中に追加または削除することができる。これは、将来開発される位置プロバイダに対応する際に特に有用である。この特定実施形態では、２レベルの抽象化が提供される。すなわち、（１）位置プロバイダから情報を受け取るプロバイダインタフェースと、（２）アプリケーションが各種情報を得ることを可能にするＡＰＩ／イベントレイヤ、である。
【００２４】
この実施形態の焦点の１つは、各種の異なるソースからコンテキスト情報（例えば位置情報）を収集し、その情報からデバイスの現在の位置を判定し、あるレベルの現在のコンテキストを、デバイスのコンテキストを使用してサービスを提供する、またはデバイスがそのコンテキスト環境に参加することを可能にする１つまたは複数のアプリケーションに提供することができるデバイスである。
【００２５】
ここで説明する実施形態では、このデバイスは位置情報またはその位置に関する手がかりを受信する。この情報は位置サービスによって照合され、マスター世界および／または２次世界内のノードにマッピングされる。次いで階層ツリーをトラバースして、２次世界とマスター世界両方におけるデバイスの正確な位置を判定することができる。この時点でデバイスはそのコンテキストを判定している。集められた情報を仲裁にかけることにより、高く信頼されている情報だけを使用してコンテキストを判定することを保証することができる。位置情報はキャッシュして、定義可能な期間にわたって一定程度正確である「現在の位置情報」を提供することができる。したがって、何らかの理由により他の位置プロバイダが利用できない場合には、キャッシュを使用して位置を確定することができる。
【００２６】
デバイスの位置が判定されると、デバイスはその情報にセキュリティポリシーを適用することができる。これを行うと、デバイスは各種アプリケーションからの照会への返答を開始することができる。
【００２７】
ここに説明する実施形態の一態様は「気に入った位置」の態様であり、ここではデバイスを異なる位置に適応させることができるように、デバイスがそのコンテキストを判定するとデバイスを自動的に構成することができる。
【００２８】
さらに、各種タイプの位置プロバイダは異なるタイプの情報を伝達することができる。例えば、いわゆる「シン（ｔｈｉｎ）プロバイダ」は、位置サービスによって適切なノード情報に変換される位置情報を提供する。いわゆる「シック（ｔｈｉｃｋ）プロバイダ」は、位置情報を得て、それを直接マスター世界または２次世界にマッピングできる形態で提供するロジックを含んでいる。
【００２９】
別の実施形態では、可能な限り正確にデバイスのコンテキストまたは位置を判定することを目的とする位置変換サービスが提供される。この実施形態では、各種の位置プロバイダから情報を受信する。この情報には、位置、正確度、信頼度（これらはすべて位置プロバイダから提供される）、信用度（デバイスまたはユーザによって位置プロバイダに割り当てられる）、およびタイムスタンプ（位置情報の新しさを判定するのを助ける）が含まれる。位置の変換処理には、どの位置プロバイダが有効かつアクティブであるかを判断することが必要とされる。位置プロバイダは、信頼度と信用度のレベルに従って格付けすることができる。これにより、位置プロバイダの順位付きリストが定義される。すべての位置プロバイダが非アクティブになった状況のために対策がなされる。このような場合は、「現在の位置」を、その信頼度が時間の経過とともに低下する位置プロバイダとして使用する。
【００３０】
２つ以上の位置プロバイダからの情報が衝突した場合は、措置を行って信用レベルが高い方の情報を使用することができる。（衝突がないとすると）すべての位置プロバイダから提供される情報を使用してツリー構造とノードのエンティティＩＤ（ＥＩＤ）を判定することができる。このツリーはマスター世界でよく、ＥＩＤはマスター世界のノードになる。ツリーは２次世界であってもよく、ＥＩＤ（あるいは位置の固有識別子（ｌｏｃａｔｉｏｎ ｕｎｉｑｕｅ ｉｄｅｎｔｉｆｉｅｒ）「ＬＵＩＤ」）は２次世界のノードになる。この情報を集めると、単にツリーをトラバースすることにより完全な位置情報を判定することができる。デバイスの位置を判定すると、現在の位置（タイムスタンプを含む）によってキャッシュを更新することができる。
【００３１】
別の実施形態では、コンテキスト認識型のコンピューティング環境におけるプライバシーの問題を扱う。この実施形態では、位置サービスは、特定デバイスの位置に関する位置情報を入手している。プライバシーマネジャは、情報を要求しうるアプリケーションにどのレベルの情報を提供するかを判定する。プライバシーマネジャは、コンピューティングデバイス自体に常駐させることも、あるいは信頼される第３者が代理として実行することもできる。
【００３２】
この実施形態によると、プライバシーレベルの尺度を定義する。各レベルは、特定デバイスの位置に関する、ある程度固有の情報を含むように定義する。ユーザは、位置情報を要求しうるエンティティにプライバシーレベルを割り当てることができる。さらに、マスター世界と２次世界の各ノードは、各自に関連付けられたプライバシーレベルを有することができる。アプリケーションからの照会を受け取ると、プライバシーマネジャはまずその照会の送信元と、そのアプリケーションまたはエンティティに関連付けられたプライバシーレベルを判断する。プライバシーマネジャは次いで、マスター世界と２次世界のうち１つまたは複数を評価して、それに対応するプライバシーレベルを有するノードを見つける。対応するノードが見つかると、要求元のアプリケーションまたはエンティティにその特定の精度で情報が提供される。
【００３３】
別の実施形態では、位置ビーコンの形で位置プロバイダを提供するシステムおよび方法を述べる。この実施形態では、様々な領域（公的／私的な領域）に取り付け、送信範囲内にある任意のコンピューティングデバイスに位置を指示する（ｂｅａｃｏｎ）ことのできる位置ビーコンが提供される。送信される情報により、デバイスがその位置またはコンテキストを判断することが可能になる。位置ビーコンは、その情報を使用する位置サービスに固有の情報を送信することができる。送信される情報は、ＥＩＤ／ＵＲＬの対、およびＬＵＩＤ／ＵＲＬの対を含むことができる。ＥＩＤはマスター世界内のノードのノード識別を示し、それに関連付けられたＵＲＬはマスター世界と通信するためのプロトコルを示す。ＵＲＬは例えば、そのＥＩＤを使用する追加的なコンテキスト情報を提供することが可能なサーバにリンクすることができる。ＬＵＩＤは、現在の位置に対応する２次世界のノードを示し、ＵＲＬはその２次世界と通信するためのプロトコルを示す。例えば、ＵＲＬは、２次世界をホストしているサーバにリンクすることができる。そしてこのサーバに照会を行うことにより、その２次世界に関する情報（２次世界のツリー構造、関連する資源の位置など）をさらに発見することができる。ＥＩＤおよびＬＵＩＤを（ＵＲＬと併せて）用いて、デバイスはマスター世界または２次世界をトラバースしてその位置を判断することができる。ビーコンの実装には各種の技術を使用することができる（無線、ＲＦ、ＩＲ）。ビーコンは、改ざんを阻止するために「１回だけプログラムする（ｐｒｏｇｒａｍ　ｏｎｃｅ）」デバイスにすることができる。ただし、プログラム可能なビーコンも提供することができる。送信される情報の真正性を保証するために、ビーコン情報とともに提供される検証可能な署名の形でセキュリティも提供することができる。
【００３４】
ビーコンのコンテキスト認識型のコンピューティングの有用な態様は、「位置によって可能になるアクセス」の概念である。すなわち、位置情報を受信するのに加えて（あるいは受信するのとは別に）、ビーコンはコードダウンロードポインタを送信することができ、これによりスマートデバイスは、デバイスがその現在のコンテキストに参加することを可能にするソフトウェアコードにアクセスすることができる。
【００３５】
例示的コンピューティングシステム
当文書の文脈では、用語「コンピューティングデバイス」は一般に任意タイプのコンピューティングデバイスを指すのに使用する。例示的なコンピューティングデバイスの特徴は、それが通例１つまたは複数のプロセッサと、コンピュータ可読媒体（記憶装置やメモリなど）と、１つまたは複数のプロセッサで実行され、プログラムされた機能をプロセッサに実施させるソフトウェアとを含むことである。特定の実施形態では、実装は携帯型のコンピューティングデバイス（例えばラップトップコンピュータなど）、および／またはハンドヘルド型のコンピューティングデバイス（例えばパームＰＣ、無線電話など）のコンテキストで行われる。
【００３６】
図１は、ここに説明する実施形態と併せて使用するのに適したコンピューティングデバイスの一例を構成する概略図である。図のコンピューティングデバイスの一部は、特定の実施形態の使用を企図する、１つまたは複数のコンピューティングデバイス（例えばパームＰＣ、無線電話など）に組み込むことができることは理解されよう。
【００３７】
コンピュータ１３０は、１つまたは複数のプロセッサすなわち処理装置１３２、システムメモリ１３４、およびシステムメモリ１３４を含む各種のシステム構成要素をプロセッサ１３２に結合するバス１３６を含む。バス１３６は、数タイプのバス構造のうち１つまたは複数を表し、これには、各種のバスアーキテクチャの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、アクセラレイテッドグラフィックポート、およびプロセッサまたはローカルバスが含まれる。システムメモリ１３４は、読み取り専用メモリ（ＲＯＭ）１３８およびランダムアクセスメモリ（ＲＡＭ）１４０を含む。起動時などにコンピュータ１３０内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１４２は、ＲＯＭ１３８に記憶される。
【００３８】
コンピュータ１３０はさらに、ハードディスク（図示せず）との読み出しおよび書き込みを行うハードディスクドライブ１４４、リムーバル磁気ディスク１４８との読み出しおよび書き込みを行う磁気ディスクドライブ１４６、およびＣＤ　ＲＯＭやその他の光媒体などのリムーバル光ディスク１５２との読み出しおよび書き込みを行う光ディスクドライブ１５０を含む。ハードディスクドライブ１４４、磁気ディスクドライブ１４６、および光ディスクドライブ１５０は、ＳＣＳＩインタフェース１５４または何らかの他の適切なインタフェースによってバス１３６に接続される。ドライブとそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１３０用のその他のデータの不揮発性の記憶を提供する。ここに説明する例示的環境では、ハードディスク、リムーバル磁気ディスク１４８、およびリムーバル光ディスク１５２を使用しているが、この例示的な動作環境では、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）など、コンピュータからアクセス可能なデータを記憶することのできる他のタイプのコンピュータ可読媒体を使用してもよいことが当業者には理解されよう。
【００３９】
ハードディスク１４４、磁気ディスク１４８、光ディスク１５２、ＲＯＭ１３８、またはＲＡＭ１４０には複数のプログラムモジュールを記憶することができるが、これにはオペレーティングシステム１５８、１つまたは複数のアプリケーションプログラム１６０、他のプログラムモジュール１６２、およびプログラムデータ１６４が含まれる。ユーザは、キーボード１６６およびポインティングデバイス１６８などの入力装置を介してコンピュータ１３０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。上記の入力装置とその他の入力装置は、バス１３６に結合されたインタフェース１７０を通じて処理装置１３２に接続される。モニタ１７２またはその他のタイプの表示装置も、ビデオアダプタ１７４などのインタフェースを介してバス１３６に接続される。モニタの他に、パーソナルコンピュータは通例スピーカやプリンタなど他の周辺出力装置（図示せず）を含む。
【００４０】
コンピュータ１３０は、普通、リモートコンピュータ１７６など、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作する。リモートコンピュータ１７６は他のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の共通ネットワークノードでよく、通例はコンピュータ１３０に関して上記で挙げた要素の多くあるいはすべてを含むが、図１にはメモリ記憶装置１７８のみを示している。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１８０およびワイドエリアネットワーク（ＷＡＮ）１８２を含む。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットに一般に見られるものである。
【００４１】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１３０は、ネットワークインタフェースまたはアダプタ１８４を通じてローカルネットワーク１８０に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１３０は通例、インターネットなどのワイドエリアネットワーク１８２を通じて通信を確立するためのモデム１８６またはその他の手段を含む。モデム１８６は内蔵型でも外付け型でもよく、シリアルポートインタフェース１５６を介してバス１３６に接続される。ネットワーク環境では、パーソナルコンピュータ１３０に関して図に示すプログラムモジュール、またはその一部はリモートのメモリ記憶装置に記憶してもよい。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用してよいことは理解されよう。
【００４２】
一般に、コンピュータ１３０のデータプロセッサは、異なる時にそのコンピュータの各種のコンピュータ可読記憶媒体に記憶された命令を使用してプログラムされる。プログラムおよびオペレーティングシステムは一般に、例えばフロッピー（登録商標）ディスクやＣＤ−ＲＯＭによって配布される。そしてそこからコンピュータの補助記憶装置にインストールまたはロードされる。実行時には、少なくとも部分的にコンピュータの主要な電子メモリにロードされる。ここで述べる発明は、その媒体が下記でマイクロプロセッサまたはその他のデータプロセッサとの関連で説明するステップを実施するための命令またはプログラムを含む場合には、上記のおよびその他各種タイプのコンピュータ可読記憶媒体を含む。本発明はまた、下記の方法および技術に従ってプログラムした場合にはコンピュータ自体も含む。
【００４３】
例証のために、プログラム、およびオペレーティングシステムなど他の実行可能プログラムコンポーネントをここでは個別のブロックとして図示しているが、そのようなプログラムおよびコンポーネントは様々な時にコンピュータの異なる記憶構成要素に常駐し、コンピュータのデータプロセッサによって実行されることが認識されよう。
【００４４】
世界の定義
これまでのところコンテキスト認識型コンピューティングの問題を解決しようとするのに伴う問題の１つは、提案される解決法がいずれも独自の手法、データ構造、プロセスなどを有することである。各種の手法間には、あるにしてもほとんど標準化が存在しない。ここに説明する実施形態では、地球の全世界的な世界観を定義することにより、根本的なレベルで標準化を達成する。すなわち、全世界的に許容できる地球の定義を提案し、これを様々なコンピューティングシナリオで使用できるようにしてコンテキスト依存型のコンピューティングを可能にする。この文書では、コンテキスト依存型コンピューティングの具体的な例を位置依存型コンピューティングの形で提示する。これは、下記で述べる各種の実施形態を用いることができるコンテキストの１例のみを構成することが理解されよう。他の「コンテキスト」には、組織内の役割／人員、デバイスの分類、現在のアクティビティ、現在の環境、アクティブなデバイスなどを制限なく含む、階層構造に適応させることが可能な任意の情報を含むことができる。
【００４５】
マスター世界
マスター世界は、地球の物理的な位置や地理的な区分を分類整理した、公正で公に認められる階層的ツリー構造として定義される。マスター世界は、地球全体にわたる政治的、行政的、および地理的なエンティティの多くの異なるクラスが含まれるような方式で定義される。政治的な競合がある地域は、コンピューティングデバイスの言語／ロケール（ｌｏｃａｌｅ）に基づいた世界観を提示することによって対処する。
【００４６】
図２は、マスター世界の一部を表す例示的な階層ツリー構造２００を示す。マスター世界は複数のノード２０２を含み、それぞれのノードは何らかのタイプの地球の地理的区分（例えば政治的または自然上のエンティティ）を表す。図の例では、マスター世界のノードは次のグループに構成される。（１）政治的または自然のエンティティ（例えば大陸、国、海洋、州、群、市など）。（２）インフラストラクチャのエンティティ（例えば郵便番号、地域コード、時間帯など）。（３）公共的場所のエンティティ（例えば、公園、モール、空港、競技場など）。（４）非物理的なエンティティ（例えば、軍事郵便の番号地域、行楽地域、地理的には不連続な場合もあるテレビジョンネットワークの加入受信範囲地域など）。
【００４７】
図２の例では、ツリー構造の最上位ノードは地球を表す。最上位ノードの下にある各ノードは地球の地理的区分を表す。この例では、任意のビジネスあるいはサービスとの関連付けを有するノードはない。すなわち、マスター世界の一部であるノードエンティティと、アクティビティが行われる非地理的な場所との間が区別されている。マスター世界は公共の場所（空港、モールなど）に対応するノードを含むが、ビジネスまたはサービスの提供者の個別のリスティングは含まない。各ノードは、ＩＤ（ＥＩＤ、すなわちエンティティＩＤ）によって一意に識別される。一意のＥＩＤに加えて、ＵＲＬがツリー構造に関連付けられ、下記で明らかにするツリー構造のコンテキストを提供する。
【００４８】
一例として次の例を考察されたい。シアトルタコマ（Ｔａｃｏｍａ）国際空港（ＳｅａＴａｃ）はマスター世界に含まれるが、ＳｅａＴａｃの個々の航空会社の位置への参照は、ＳｅａＴａｃ空港のＥＩＤ（「２次世界」の項、および下の表を参照）によってタグづけされたツリー上の「葉」になる。同様に、シアトルセンターがマスター世界のノードになるのに対して、シアトルアートフェスティバルのＢｕｍｐｅｒｓｈｏｏｔや、ＮＢＡチームのシアトルソニックス、シアトルセンター内のスターバックスコーヒーショップは、シアトルセンターのＥＩＤによってタグ付けすることができる。別の例として、マスター世界は、すべての州間高速自動車道（幹線道路）の出口のノードも含む。例えば、ワシントン州のＩ−９０号線の出口１０９は、マスター世界のノードになる。ワシントン州エレンスバーグのＣａｎｙｏｎ　Ｒｏａｄ１７００にあるＢｅｓｔ　Ｗｅｓｔｅｒｎ　Ｉｎｎは、その出口のＥＩＤによってタグ付けされる。
【００４９】
このように、マスター世界は、位置を定義する画一的な方式を提供する。そしてこの画一的な位置の定義を全世界的に使用して、商品やサービスに属性を割り当てることができる。コンピューティングデバイスは特定の画一的な位置の定義に対応するその位置を判定すると、その画一的な位置定義を共用する、位置に依存する商品やサービスを利用することができる。マスター世界が有用なのは、それが標準化された世界観であるためである。その正確で標準化された地理的側面の属性（ａｔｔｒｉｂｕｔｉｏｎ）には、提供者と消費者の双方から容易にアクセスすることができる。サービスや商品の提供者（あるいは検索エンジン、ネットワーク、イエローページのデータベースディレクトリなどの第３者）は、すべての商業的な位置または当該の地点に標準化された永続的な地理的参照を割り当てることにより、マスター世界のノードを使用することができる。こうした商業的な位置または当該の地点は、ツリー構造の「葉」と見なすことができる。
【００５０】
図の例では、マスター世界のノードはその使用を容易にする１つまたは複数の属性を有する。属性の例を下の表に挙げる。
【００５１】
【表１】
2004506964.tif 000002
【００５２】
表に挙げる属性は、例示的な属性のみを構成する。表に参照としてあげる属性と異なる、かつ／または表の属性に追加する他の属性も使用することができる。上記の属性を用いるエンティティまたはノードレコードの例をいくつか次に示す。
【００５３】
【表２】
2004506964.tif 000003
【００５４】
【表３】
2004506964.tif 000004
【００５５】
マスター世界は、それ自体と様々な「２次世界」との間の公分母リンクのリポジトリとして、また２次世界を他の２次世界に結びつける導管としても機能する。コンテンツ、サービス、およびデバイスの提供者はマスター世界を使用して、公に利用できる各自の提供品と、地理的な位置とそれに対応する複数の分岐を有する階層構造とを関連付けることができる。その位置はツリー構造中の単一のエンティティと関連付けられ、それにより地理的および時間／距離の計算と、必要な親／子関係のナビゲーションを可能にする。
【００５６】
マスター世界のインデックス（ジオゾーン）
定義上、マスター世界は全世界を包含するエンティティ（ノード）の階層構造を提供する。階層中を上方にナビゲートすることはごく自然である。効率的に下方へナビゲーションするには、地理的近接度の認識が必要となる。さらに、照会の際に値をうまく返すために、あるいは元のソースノード以外のノードに付けられた近くの「葉」までの距離をより正確に計算するために、分岐から分岐へのジャンプを必要とする可能なシナリオがある。マスター世界は、地理的近接度によって対等レベルのノードを識別できるインデックス方式を利用する。このインデックス方式は、４分木アルゴリズムを利用していわゆる「ジオゾーン」を定義する。
【００５７】
４分木は基本的に、適用範囲を、サイズが規則的に縮小していく均質なセルに分割する空間インデックスである。ツリーの四分区間はそれぞれ最高で４つの子を有する。４分木の区分プロセスは、マップ全体が、四分区間ごとの項目（例えば当該の地点）数の密度など多数の異なる終了結果基準に基づいて区分されるまで継続することができる。この手法は、空間的な選択と内容の識別を促進する空間インデックスの一形態を提供する。
【００５８】
空間的なインデックス方式を完全なものにして各ノードに定義されたジオゾーンを提供するために、４分木アルゴリズムをノードに適用し、またこのアルゴリズムは、例えば任意の１ゾーンに存在しうる当該の地点の所望の密度に基づくことができる。すべてのゾーンを定義すると、各ゾーンに固有のＩＤを与える（例えば上部／左側と下部／右側の緯度と経度の対）。次いでマスター世界の各ノードにそれが位置するゾーンを割り当てる。４分木アルゴリズムは当業者には知られており、理解されよう。
【００５９】
マスター世界の位置
理解できるように、画一的で標準化された世界の表現を階層的でトラバース可能なツリー構造の形で有することにより、コンテキストに依存する、より具体的には位置に依存する商品やサービスをリンクする方式が大幅に容易になる。
【００６０】
ここに説明する実施形態では、コンピューティングデバイスは少なくともマスター世界の一部にアクセスすることができる。例えば、コンピューティングデバイスは、マスター世界を内部の記憶装置に保存することができ、そのマスター世界はコンピューティングデバイスのオペレーティングシステムの一部をなすことができる。またはデバイスは、インターネットなどのネットワーク媒体を介してマスター世界にアクセスすることもできる。マスター世界のツリー構造に各コンピューティングデバイスからアクセスできることにより、各デバイスはそれ自体のコンテキスト、またはノードを基準とした位置を判定する能力を得る。すなわち、コンピューティングデバイスは、それが実行するソフトウェアを通じてその特定の位置、すなわちノードを判定することができる。関連付けられたノードを判定すると、コンピューティングデバイスは、単にツリーをトラバースするだけでその完全な位置を確定することができる。
【００６１】
例えば、あるコンピューティングデバイスが自らがレドモンド市に対応するノードに現在位置していると判断すると、このデバイスはマスター世界のツリー構造をトラバースして、それが北アメリカ大陸の合衆国のワシントン州にあることを確定することができる。コンピューティングデバイス（あるいはそのユーザ）は、その精密な位置を確定することにより、提供が可能な位置依存性のサービスを利用できる状態になる。この特定のモデルは、中央サーバを利用して複数の異なるデバイスの位置を確定する現行モデルに対する大幅な改良である。現行モデルでは、各デバイス（またはユーザ）がその位置に関する情報を提供し（例えば、ユーザがデバイスが現在位置する郵便番号や都市を入力するなど）、例えば自分のいる郵便番号内にあるマクドナルドの店を見つけるための照会を入力することができる。するとサーバはその情報を受け取り、例えば、その郵便番号または都市内にあるすべてのマクドナルドの店の位置をユーザに通知することができる。このモデルでサーバが障害を起こした場合は、コンピューティングデバイスはいずれもそのサービスを利用することができなくなる。本発明のモデルでは、各コンピューティングデバイスは自律型である。それぞれのデバイスが各自の位置を判定することができ、したがって各デバイスが位置に依存するサービスを利用することができる。例えばコンピューティングデバイスがそれがマスター世界の特定ノードにあることを理解している場合、そのデバイスは照会を実行して、そのコンピューティングデバイスが位置する特定ノードに対応するＥＩＤを有するマクドナルドを見つけることができる。上記のジオゾーンを使用することにより、特有の頑強性が提供される。ジオゾーンは、近接する地理的区分を効率的な方式で迅速に検索することを可能にする。例えば、ある者がコピーをするために一番近くにあるＫｉｎｋｏ′ｓを探しており、そのコンピューティングデバイスが位置するノードに対応するジオゾーンに１つも店がない場合には、隣接するジオゾーンを迅速に検索することができる。
【００６２】
２次世界
ここに説明する実施形態では、２次世界の概念を使用して追加的なコンテキストに対するサポートを提供する。２次世界は第３者の組織または企業によって定義することができ、その組織に特有の物理的および／または論理的エンティティからなるノードを含む。２次世界は公的なものにしても私的なものにしてもよいので、２次世界のノードは、その２次世界を定義した特定の組織の外側にある多くのコンテキストを有しても、有さなくてもよい。２次世界はマスター世界を複製することはないが、独自の組織固有の方式でマスター世界を補完する。マスター世界が広く受け入れられる標準として定義されるのに対し、各２次世界は、様々に異なるある組織独自の世界観の表現にすることができる。ここに説明する実施形態では、各２次世界は、マスター世界のノードにリンクされたノードを少なくとも１つ有する。これにより、マスター世界におけるコンテキストまたは位置が２次世界に与えられる。また一部のコンテキストアプリケーションでは、いくつかの２次世界にアクセスすることができ、それぞれの２次世界が追加的なコンテキスト固有の位置データを提供することにも留意されたい。
【００６３】
図２は、複数のノード２０６を含む例示的な２次世界２０４を示す。各ノード２０６は、物理的または論理的なエンティティを構成する。例えば、これらのノードは、企業、その部門、地域キャンパス、建物、様々な建物のフロア、および様々なフロアにある部屋を構成することができる。ノードのうち少なくとも１つはマスター世界のノードにリンクされる。２次世界のノードは、マスター世界のノードと同じ属性を備えることができる。
【００６４】
２次世界の例として、ボーイング社が、その従業員にとって重要なエンティティのリストを含む２次世界を定義すると考える。ルートエンティティは「ボーイング社」になり、その子は会社の部局（セントルイスにある軍事部門、エベレットにある工場、企業本部など）になる。ツリー構造をさらに下に行くと、個々のノードが、個々の建物（ハンガー１２）、その建物内のオフィス（オフィス１００１）、建物のある地域（ハンガー１２の南西の四分区間）などを表すように定義されている。各エンティティまたはノードは一意の識別子（ローカルユニークＩＤ、すなわち「ＬＵＩＤ」）と、そのノードが存在するツリーと関連付けられたＵＲＬを有する。ＵＲＬは２次世界のツリー構造を一意に識別し、その世界にいるユーザは、その世界とどのように相互作用するかを決めることができる。この態様については下記でさらに詳しく述べる。ボーイング社はＬＵＩＤを使用して、設備、サービス、部門、あるいは人員さえをも物理的または論理的な位置と関連付けることができる。
【００６５】
より具体的な例として、マスター世界３００と２次世界３０２の例示的な一部を示す図３を考察されたい。マスター世界３００は次のノードを含む：世界、合衆国、ワシントン州、レドモンド、および郵便番号＝９８０５２。例示的な２次世界３０２はマイクロソフト社によって定義された階層ツリー構造であり、次のノードを含む：マイクロソフト、レドモンドキャンパス、マイクロソフト通り１番地、建物２６、３階、会議室３１７３、建物２４、２階、会議室１３４２。この例では、２次世界３０２はレドモンドノードからマスター世界中に「タッチポイント」する。この例では、図のようにビデオプロジェクタをノード「会議室１３４２」と関連付けている。ここで、ビデオプロジェクタは２次世界のノードではない。このビデオプロジェクタは、何らかの他の資源発見サービス（例えばアクティブなディレクトリ）中の項目であり、「会議室１３４２」へのポインタである位置属性を含んでいる。ただし、主要なサービスの位置を表すために世界の中にノードを作成できる場合もあるが、ノード自体はサービスを表さない。
【００６６】
マスター世界と同じように、２次世界もユーザのコンピューティングデバイスから都合良くアクセスできる。２次世界は、例えば、完全にあるいは部分的にダウンロードし、記憶装置に記憶して必要なときにアクセスすることが可能である。２次世界は、１回だけ使用するためにダウンロードすることができる。２次世界は、コンピューティングデバイスが２次世界におけるそのコンテキストを確定することを可能にする。この例では、コンピューティングデバイスは、２次世界を使用することにより２次世界におけるその位置を計算する。コンピューティングデバイスは、それが現在位置するノードからルートノードまでツリー構造をトラバースすることによりこの計算を行うことができる。これにより、例えば、コンピューティングデバイス（および、したがってユーザ）に完全な２次世界のコンテキストが与えられる。２次世界における位置が分かると、ユーザはその２次世界のノードに関連付けられた商品やサービスを利用できる状態になる。すなわち、コンピューティングデバイスはその２次世界のコンテキストを判定すると、いつでもその２次世界のアクティブな参加者になることができる。
【００６７】
２次世界の個々のノードに商品またはサービスを関連付けることにより、多大な価値を実現することができる。例えば会議室１３４２は、それと関連付けられたビデオプロジェクタを有する。すなわち、ビデオプロジェクタの位置は会議室１３４２の中である。会議室３１７３にいる者が、会議室１３４２にあるようなビデオプロジェクタの使用を必要とするプレゼンテーションを行うと想定する。通例は、恐らくは物理的にその建物に電話をかけて利用できるビデオプロジェクタがあるかどうかを確認する以外にビデオプロジェクタの位置を確かめる方法はない。この例では、ユーザのコンピューティングデバイスが２次世界におけるその位置を確定することができるので、会議室１３４２のビデオプロジェクタを見つけることができる。デバイスは、単に、２次世界のツリー構造をトラバースして当該の資源を見つけるソフトウェアを実行することによってこれを行う。
【００６８】
また、マスター世界へのリンクがあるので、コンピューティングデバイスは、両世界におけるそのコンテキスト（位置）を得られることにも留意されたい。この結果、コンピューティングデバイス、およびしたがってユーザは、２次世界に関連付けられた商品とサービスを利用することができ、またマスター世界内のユーザの位置に基づいて消費することのできる位置依存型のサービスに参加することが可能になる。
【００６９】
図４は、ここに説明する実施形態による方法のステップを説明する流れ図である。すぐ下記に説明するステップはコンピューティングデバイスによって実施され、例示する例でこのデバイスはハンドヘルド型のモバイルコンピューティングデバイスである。
【００７０】
ステップ４００で、コンピュータ可読媒体に常駐する第１および第２の階層ツリー構造にアクセスする。この例では、ツリー構造はデバイスに記憶しても、あるいはインターネットなどのネットワークを介してアクセスできるようにしてもよい。例示的な第１のツリー構造はマスター世界であり、例示的な第２のツリー構造は２次世界である。あるいは、ツリー構造は両方とも２次世界であってもよい。デバイスからツリー構造にアクセスすると、ステップ４０２で、ツリー構造の複数のノードをトラバースしてそのコンピューティングデバイスのコンテキストを得る。この例では、コンピューティングデバイスは、１つのツリーのノードにおけるその位置をデバイスに知らせる情報を受け取る。この情報は任意の適切な方式でコンピューティングデバイスまで伝達することができる。例えば、ユーザがユーザインタフェース（ＵＩ）を通じてその情報を入力することができ、または別のコンピューティングデバイスからそのコンピューティングデバイスに位置をブロードキャストしてもよい（例えばブルートゥース技術、またはユニバーサルプラグアンドプレイ（ＵｐｎＰ）を使用して）。コンピューティングデバイスへのこの情報の伝達方法の具体的な例について下記でより詳細に述べる。この情報がどのようにコンピューティングデバイスに伝達されるかに関係なく、コンピューティングデバイスはこの情報を得ると、ツリー構造の１つまたは両方をトラバースしてこの例ではデバイスの位置であるそのコンテキストを求めるソフトウェアを実行する。
【００７１】
２次世界の定義
上記のように、ここに説明する実施形態の特に有益な態様の１つは、個々の組織が独自の２次世界を定義できることである。これにより、商品およびサービスの提供に関して、またより幅広く組織の効率性の向上に関して組織に相当な柔軟性が与えられる。一実施形態では、個々の組織が各自の２次世界を定義し、維持することを可能にするソフトウェアツールが提供される。
【００７２】
一実施形態では、各２次世界をネーム空間（例えばＸＭＬネーム空間）として一意に定義することができる。これにより、２次世界とマスター世界間に名前の重複があってもそれが衝突しないことが保証される。一例として次の例を考えられたい。マスター世界が、都市を指す「シカゴ」と識別されるエンティティを含むとする。ナショナルバスケットボール協会（ＮＢＡ）によって確立された２次世界と、キャタピラー社によって確立された異なる２次世界も、マスター世界の「シカゴ」とは全く異なるエンティティを指す「シカゴ」と名づけられたエンティティを有する。例えば、ＮＢＡの「シカゴ」がＮＢＡの市場エリアを指すのに対し、キャタピラー社の「シカゴ」は販売地域を指すなどである。マスター世界と２次世界間のネーム空間を分離することにより、それぞれのネーム空間が他のあらゆるネーム空間と一意に異なることになるので、全く同じ名をつけたエンティティ間で衝突が起こらないことが保証される。
【００７３】
図５は、コンテキスト認識型のデータ構造を構築する方法のステップを説明する流れ図である。これらのステップは、コンピューティングデバイスで実行されるソフトウェアツールによって実施される。
【００７４】
ステップ５００で、物理的および／または論理的エンティティに関する情報を特定する入力をソースから受信する。この例では、システム管理者が、自分が定義したい２次世界の構造に関する情報を物理的に入力してもよい。この情報は、建物、部門、会議室などについての情報を含むことができる。次いでステップ５０２でその情報を処理して、コンテキストを有する階層ツリー構造を定義する。この例では、コンテキストは位置である。ただし、他のコンテキストを用いてもよいことは理解されよう。階層ツリー構造中の各ノードは、個別の物理的または論理的エンティティを表す。次いでステップ５０４で、階層ツリー構造のノードの少なくとも１つを、コンテキストを有する別のツリー構造にリンクする。この例では、この別のツリー構造はマスター世界を含むことができる。ツリー構造を構築しリンクすると、そのツリー構造は、１つまたは複数のノードからコンテキストを得ることを可能にするような方式でトラバースできる状態になる。
【００７５】
サービスとしての位置
上記の例では、コンピューティングデバイスはそれ自体の位置を判定することができる。これから説明する実施形態では、コンピューティングデバイスは、複数の異なる情報ソースからそれに提供される位置情報を使用することにより、その位置を判定する。デバイスは、それに提供される情報を受け取り、その情報を処理して１つまたは複数の階層ツリー上の特定ノードを判定することができる。これを完了すると、デバイスはその完全な位置を判定することができるが、この位置は、特にデバイスのユーザが消費することが可能な位置依存型のサービスがある際には、知ることが有用な事柄である。
【００７６】
図６は、諸構成要素の中でも特にコンテキストサービスモジュール６０２と、１つまたは複数のコンテキストプロバイダ６０４を含む例示的コンピューティングデバイス６００のハイレベルの図を示す。コンテキストサービスモジュール６０２は、任意の適切なハードウェア、ソフトウェア、ファームウェア、あるいはこれらの組み合わせに実装することができる。この特定の例では、コンテキストサービスモジュールは、１つまたは複数のデバイスプロセッサによって実行されるソフトウェアに実装する。コンテキストサービスモジュール６０２は、１つまたは複数のコンテキストプロバイダ６０４からコンテキスト情報を受け取り、その情報を処理して現在のデバイスのコンテキストを判定する。この特定の例では、デバイスコンテキストはデバイスの位置である。したがって、コンテキストプロバイダは、処理のためにコンテキストサービスモジュール６０２に様々な形態で位置情報を提供する位置プロバイダになる。位置プロバイダ６０４は、コンテキスト情報（位置情報）の各種ソース６０６から情報を受け取る。
【００７７】
この文書の文脈では、コンテキストプロバイダは、デバイスで、またはデバイス外で実装することのできるソフトウェアコンポーネントからなる。コンテキストプロバイダは、任意の適切なハードウェア、ファームウェア、またはこれらの組み合わせも含むことができる。コンテキストプロバイダの役割は、ソース６０６から情報を受け取り、コンテキストサービスモジュールがその情報を使用して現在のデバイスコンテキストを判定できるように、その情報をコンテキストサービスモジュール６０２に伝達することである。
【００７８】
デバイスのコンテキストがデバイスの位置である場合、ソース６０６は、デバイスの現在の位置に関する各種の情報を位置プロバイダ６０４に提供する。一例として、情報のソースには、ＧＰＳシステム、携帯電話またはセルＩＤ、位置情報を送信する無線送信器、位置ビーコン、８０２．１１規格の送信器、および各種の他の情報ソースなどの各種の情報送信器を含むことができる。情報ソースは、例えばブルートゥース技術を使用して位置情報を提供することのできる他のコンピューティングデバイスも含むことができる。さらに、情報ソース６０６は、デバイスが情報を処理してその位置を判定できるように、例えばデバイス６００に物理的に位置情報を入力する個人を含んでもよい。
【００７９】
デバイス６００は位置情報をソース６０６から受け取ると、位置プロバイダ６０４を用いてその情報を処理し、その情報を位置サービスモジュール６０２に提供する。位置サービスモジュール６０２は位置情報を処理し、それが現在の位置に対応するアクセス権を有する、１つまたは複数の階層ツリー構造上の特定ノードを判定する。次いで位置サービスモジュール６０２はツリー構造をトラバースして、デバイスの完全な位置を判定することができる。完全な位置が判定されると、デバイス６００は、その特定の位置についてデバイスに照会を行うことのできる１つまたは複数のアプリケーション６０８との対話を開始することができ、位置に依存する１つまたは複数のサービスをそのデバイスに提供することができる。この例では、アプリケーション６０８はデバイスと分離して図示している。ただし、これらのアプリケーションは例えばブラウザアプリケーションなど、デバイスで実行してもよいことは理解されたい。
【００８０】
図に示すように、アプリケーション６０８はデバイスを呼び出してデバイスがどこに位置するかを尋ねることができる。デバイスは、呼び出しを受信し、適切な方式でアプリケーションに応答するように構成される。デバイスの位置情報を得ると、アプリケーションはそのデバイスに対して位置固有のサービスを提供することができる。
【００８１】
次の例を考察されたい。自分が旅行者であり、ＳｅａＴａｃ国際空港のマスター世界のツリーと２次世界のツリーを含むハンドヘルド型のモバイルコンピューティングデバイスを持っているとする。コンコースＣから飛行機で中国に発つ予定になっている。ＳｅａＴａｃ国際空港は、その２次世界が、「到着」、「出発」、「コンコース」、「航空会社」、「航空会社に割り当てられたゲート」、および「ゲート位置」のノードを有するようにその２次世界を設計している。空港に到着し空港に入ると、コンピューティングデバイスは様々なソースから位置情報を受信し、その情報を使用して旅行者の位置が「到着」ノード内であると判断する。ＳｅａＴａｃ国際空港には、旅行者が空港内にいる間に手助けをするためのアプリケーションを実行するサーババンクがある。各種サービスを見つける、施設（例えばコーヒーショップ、レストラン）を見つける、指示を与える（例えば、自分の出発ゲートへの行き方）、旅行者の便のステータスについての最新情報を与える、あるいは自動的に旅行者の便のチェックインを行うことさえも助けることができるアプリケーションがある。さらに旅行者が空港内を歩くのに従って、その位置が変化することを考えられたい。それでも、コンピューティングデバイスは連続的な位置情報の更新を受信することができるので、旅行者が空港内を移動するのに従ってその位置を判定し続けることができる。ある地点で、旅行者がスターバックス（商標）のコーヒーショップの前を通ると、スターバックス（商標）でラッテを購入して自分のハンドヘルドデバイスを提示するとラッテが５０セント引きになることをそのハンドヘルドデバイスが知らせてくれる。この例では、実例を通じて２次世界の利用を説明している。ＳｅａＴａｃ国際空港は、その特定の顧客が施設内のどこにいるかを知ることにより、以前には不可能であった多数のサービスを提供することができる。
【００８２】
さらに、旅行者が空港内におり、その便がキャンセルされたとする。旅行者はその晩滞在する場所を見つけなければならない。このため、旅行者は、チェックイン時にサービスされる温かいチョコレートチップクッキーが非常に好きなので、一番近くにあるダブルツリー（Ｄｏｕｂｌｅ　Ｔｒｅｅ）ホテルを見つけたいと思う。旅行者は、自分のコンピューティングデバイスで検索エンジンを実行して、最も近いダブルツリーホテルを見つける。検索エンジンアプリケーションはまず、旅行者の位置に対応するマスター世界ノードのＥＩＤによって示されるマスター世界における旅行者の現在の位置を判定する。検索エンジンアプリケーションは、検索を実行して、旅行者のＥＩＤに一致するＥＩＤを含む属性を有するダブルツリーホテルを探す。アプリケーションはホテルを見つけると単にその結果を示す。対応するＥＩＤを有するホテルが見つからない場合、アプリケーションは隣接するジオゾーンを使用してダブルツリーホテルを探す。アプリケーションは、ホテルまでの運転の指示も提供する。検索エンジンアプリケーションがこれを行えたのは、マスター世界における旅行者の位置を確定することができたからである。アプリケーションは、旅行者による労力をほとんど、あるいは全く用いずにこれを迅速かつ自動的に行う。
【００８３】
さらに空港からホテルまで車で向かう間に、旅行者は、翌朝行うプレゼンテーションのコピーを１００部印刷するために、最も近くにあるＫｉｎｋｏ′ｓを見つけたいと考える。旅行者のハンドヘルド型コンピューティングデバイスが携帯電話であり、スプリント（Ｓｐｒｉｎｔ）が通信業者であるとする。スプリントは、例えばセル網の形で指定されているそれ自体の２次世界を定義している。スプリントの２次世界を自分のコンピューティングデバイスに有することにより、スプリントの２次世界における自分の位置、そしてしたがってマスター世界における自分の位置を確定することができる。Ｋｉｎｋｏ′ｓもまた、マスター世界にリンクする２次世界を有するとする。自分のデバイスで検索アプリケーションを実行することにより、最も近くにあるＫｉｎｋｏ′ｓの位置、そしてそこまでの運転の指示を確認することができる。これはすべて、デバイスがマスター世界および１つまたは複数の２次世界にアクセスできることから可能になる。この例では、マスター世界は、２つ以上の２次世界をともにデイジーチェーン化する機構を提供する。これは、２次世界がマスター世界への少なくとも１つの参照またはリンクを有することから可能になる。
【００８４】
例示的なデバイスアーキテクチャ
図７は、コンピューティングデバイス６００を幾分より詳細に示す。この特定の実施形態で、デバイス６００は次の構成要素を含むアーキテクチャを備える：位置サービスモジュール６０２、位置プロバイダインタフェース７００、アプリケーションプログラムインタフェース（ＡＰＩ）／イベントモジュール７０２、プライバシーマネジャ７０４、位置変換モジュール７０６、１つまたは複数のアプリケーション６０８、および１つまたは複数の位置プロバイダ６０６。また、このアーキテクチャには、アクティブディレクトリ７０８、ウェブサービス７１０、位置データベース７１２、および個人の場所７１４も含まれる。このアーキテクチャは、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせに実装することができる。上記のアーキテクチャは、各コンピューティングデバイスが各自のコンテキストまたは位置を判定することを可能にする点で有用である。
【００８５】
共通の位置プロバイダインタフェース
ここに説明する実施形態の特に有用な態様の１つは、位置プロバイダ６０６がそれを通じて通信する標準インタフェースを提供する共通インタフェース７００を用いる点である。共通のインタフェースを有することにより、位置プロバイダは、それらを位置プロバイダの集合に動的に追加または削除できるという点で、（将来加わるプロバイダをサポートするための）拡張が可能である。特定の位置プロバイダ６０６に必要とされるのは、共通インタフェースをサポートするようにそれを書くことだけである。
【００８６】
この例では、いくつかの位置プロバイダ６０６がある。これらの位置プロバイダは、様々な形態で位置情報を提供する。例えば、ＧＰＳの位置プロバイダは、ＧＰＳに固有の位置情報を提供する。同様に、ＩＰ／サブネットワークの位置プロバイダは、インターネットプロトコルに固有の情報を提供することができる。携帯電話の位置プロバイダは、セルＩＤの形で位置情報を提供することができる。さらに、位置ユーザインタフェース（ＵＩ）は、都市、通り、あるいは建物を指定するユーザ入力の形で位置情報を提供する。各種の位置プロバイダによって提供される位置情報はすべて位置サービスモジュール６０２によって処理され、この結果現在のデバイス位置を判定することができる。現在のデバイス位置を判定するために、位置サービスモジュール６０２は、アクティブディレクトリ７０８、ウェブサービス７１０、または位置データベース７１２を調べなくてはならないことが考えられる。図の例では、アクティブディレクトリ７０８は、例えば、２次世界と、ネットワーキングの接続性に基づいて位置を判定するのを助けることができるサブネットや「サイト」情報などの他のネットワーキングメタデータとを保持することができる。ウェブサービス７１０は、マスター世界または２次世界を保持することができ、これらの属性は位置を見つけるために使用することができる。例えば、ある携帯電話がそのセルタワー（ｃｅｌｌ　ｔｏｗｅｒ）ＩＤを知っている場合、位置プロバイダは２次世界に照会してそのセルタワーＩＤに一致するノードを確定することができる。位置データベース７１２は、基本的に、ローカルにホストまたはキャッシュされるウェブサービスの１バージョンである。
【００８７】
位置プロバイダ
上記で指摘したように、このアーキテクチャは、位置サービスモジュール６０２に位置情報を提供することのできる複数の異なる位置プロバイダを企図している。この情報は、多数の異なる形態と品質のレベルで送られてくる可能性がある。この情報を次いで位置サービスモジュール６０２によって処理して、現在のデバイス位置を判定する。これを行うために、サービスモジュール６０２は、位置情報から、特定のノードＩＤ（ＥＩＤおよび／またはＬＵＩＤ）と、そのノードが関連付けられたツリー構造に関連付けられたＵＲＬを確定する。ノードＩＤを確定すると、位置サービスモジュールは、ＵＲＬを使用してツリー構造（より正確にはそのツリー構造を管理するサーバ）に照会を行い、そのツリー構造に関するさらに多くの情報を確定することができる。例えば、位置サービスモジュール６０２が特定の２次世界のＬＵＩＤを確定した場合、モジュールは次いでアクティブディレクトリ７０８（あるいは別の位置データベースであるイントラネットサーバ）に照会して、そのノードの親と子を見つけることができる。この結果、位置サービスモジュールがその２次世界を構築することが可能になる。
【００８８】
位置プロバイダ６０６は、多くの異なる方式で位置サービスモジュール６０２に位置情報を提供することができる。例えば、一部の位置プロバイダ６０６は、連続的に情報を提供することが可能である（例えばＧＰＳプロバイダは連続的にＧＰＳ座標を提供することができる）。あるいは、位置プロバイダは、特定の時間、あるいは定義可能なイベントの発生時など、周期的に位置情報を提供することもできる。例えば、ユーザが、位置情報を更新すべき特定の時間を定義することができる。あるいは、位置情報はデバイスの位置が変化したとき（すなわち位置変化イベント）にのみ更新してもよい。さらに、位置プロバイダは、位置サービスモジュール６０２からポーリングが行われた際に位置情報を提供してもよい。例えば、位置サービスモジュール６０２は、位置プロバイダインタフェース７００を呼び出して、１つまたは複数の位置プロバイダに位置情報を要求することができる。
【００８９】
１つの特定の位置プロバイダ６０６をキャッシュとして図示している。このキャッシュプロバイダは基本的に、現在のデバイスコンテキストまたは位置を保持する。すなわち、サービスモジュール６０２はその現在の位置を確定すると、その位置をキャッシュに書き込む。これにより、他のすべての位置プロバイダが位置情報を提供することができない場合に（例えば、ＧＰＳプロバイダは、ＧＰＳプロバイダに情報を供給するＧＰＳ送信器が必要数の衛星にコンタクトできないためにＧＰＳ情報を受信できないことがある）、デバイス６００が一定程度の信頼度でその位置を確定することが可能になる。
【００９０】
信頼度および正確度のパラメータ
ここに説明する実施形態の重要かつ有用な特徴の１つは、位置プロバイダの１つまたは複数を、それらが位置サービスモジュール６０２に提供する情報に信頼度パラメータおよび／または正確度パラメータを割り当てるように構成する点である。信頼度パラメータは、プロバイダが位置サービスモジュール６０２に提供する情報におけるプロバイダの信頼度の尺度を提供する。例えば、あるＧＰＳ送信器が信頼性の高い情報を提供するために、５機以上の衛星から情報を受信しなければならないとする。その時点で利用可能な衛星は３機しかないと想定する。するとＧＰＳ送信器は、この３衛星のみに基づいてその情報を送信することになる。ＧＰＳプロバイダは、それがＧＰＳ送信器から受信する情報が、望ましい５機以上の衛星ではなく３機の衛星のみに基づくものであることを知る。この場合、ＧＰＳプロバイダは、その情報の信頼度レベルが、望ましい５機以上の衛星に基づいた場合に比べて低いことを示す信頼度パラメータを位置情報に設定することができる。この場合、位置サービスモジュール６０２は、デバイスの位置を判定する際に、すべての位置プロバイダの信頼度パラメータを考慮することができる。これについては下記でさらに詳細に述べる。
【００９１】
正確度パラメータに関しては、位置プロバイダから受け取る位置情報は様々な程度に正確であると考える。ある情報は１マイル以内の精度であり、別の情報は１００フィート以内の精度である。位置プロバイダは、それが位置サービスモジュール６０２に提供する位置情報に正確度パラメータを割り当てるように構成することが望ましい。正確度パラメータは、位置サービスモジュールに情報の正確度の指示を与える。
【００９２】
信頼度パラメータと正確度パラメータを位置サービスモジュール６０２が使用する際、モジュールはそれが各プロバイダから受け取る位置情報をどのように使用するかを決めることができる。例えば、位置サービスモジュール６０２は、信頼度パラメータが低い情報はすべて完全に無視することができる。これに対し、モジュール６０２は、情報の正確度とその信頼度の間で釣り合いをとってもよい。例えば、モジュール６０２は、その情報に高レベルの信頼度がある場合にのみ、正確度のレベルが低い情報を使用するようにプログラムすることができる。モジュール６０２は、パラメータを利用して情報に重み付けすることができ、位置は情報の信頼度と正確度の重みつきの関数として計算される。
【００９３】
信頼度パラメータの別の使用法は以下の通りである。位置サービスモジュールがデバイス位置を判定し、その位置をキャッシュに書き込んだとする。キャッシュに位置を書き込むときに、その位置には恐らくは高い信頼度レベルが割り当てられる。さらに、すべての他の位置プロバイダが位置情報を提供することができないと想定する。一定の期間、位置サービスモジュール６０２はキャッシュ位置を現在の位置として使用することができ、その情報が概して正確であることをかなりの程度確信することができる。この場合、位置サービスモジュールは線形に低下する信頼度レベルを時間の経過に合わせて情報に割り当てることができ、いずれかの時点でその情報の使用を中止するか、またはその情報は保証できないことをユーザに通知する。
【００９４】
位置、信用度、およびタイムスタンプ
位置プロバイダが各自の情報を位置サービスモジュール６０２に提供する際、情報は、信頼度と正確度のパラメータに加えて実際の位置情報を周知の形式、すなわち信用度パラメータおよびタイムスタンプの形式で含むことができる。信用度パラメータは位置サービスモジュール６０２によって１つまたは複数の位置プロバイダに割り当てられる基準であり、位置サービスモジュールが特定の位置プロバイダに対して有する信用性を定義する。タイムスタンプは、その位置情報が位置プロバイダから提供された時間を定義する基準である。これは、位置サービスモジュール６０２が、情報が古くなっているか、そして更新する必要があるかどうかを確認するのを助ける。
【００９５】
すべての位置情報を得ると、位置サービスモジュール６０２は次いでデバイス位置の判定に着手することができる。
【００９６】
図８は、この例ではデバイス位置であるデバイスのコンテキストを判定する方法のステップを説明する流れ図である。これらのステップは位置サービスモジュール６０２によって実施される。
【００９７】
ステップ８００で、現在のデバイスコンテキストを入手する。この現在のコンテキストは、キャッシュに記憶されている最後に計算されたデバイスコンテキストでよい。ステップ８０２で、複数のコンテキストプロバイダのいずれかがコンテキスト情報の提供に利用できるかどうかを判断する。位置サービスモジュールは、コンテキストプロバイダにポーリングを行ってどのプロバイダがアクティブかつ有効であるかを確定することにより、この判断を行うことができる。ステップ８０４で、すべてのプロバイダが非アクティブになっているかどうかを判断する。すべてのプロバイダが非アクティブである場合は、ステップ８０６で、時間の経過と共に現在のコンテキストの信頼度を下げ、現在のコンテキストをデバイスコンテキストとして使用する。次いでステップ８０２で、現在アクティブかつ有効なプロバイダを引き続き監視する。ステップ８０４で１つまたは複数のコンテキストプロバイダがアクティブであると判断される場合は、ステップ８０８でそのアクティブかつ有効なコンテキストプロバイダを順位付けする。コンテキストプロバイダの順位付けまたは分類を行う際、位置サービスモジュール６０２は、プロバイダの情報の信頼度および／または位置サービスモジュールがその位置プロバイダに対して有する信用度に応じてそれを行う。これにより、位置プロバイダの順位付けされたリストが提供される。ステップ８１０で、チェックを行い、そのコンテキスト情報が正確であると思われるかどうかを確認する。例えば、コンテキストがデバイスの位置である場合、位置サービスモジュール６０２は、５秒前には現在の位置がワシントン州レドモンドであったことを知っていることが可能である。したがって、現在の位置が中国の北京であることを示す位置情報は正しくないことになる。ステップ８１２で、コンテキスト情報が、デバイスの現在のコンテキスト、または他のプロバイダからのコンテキスト情報と矛盾するかどうかを判断する。例えば、位置サービスモジュール６０２は、各コンテキストプロバイダからのコンテキスト情報とキャッシュ内の情報を比較することができる。情報のいずれかがキャッシュ内の情報と矛盾する場合は、そのコンテキストプロバイダからの情報を破棄することができる。同様に、コンテキスト情報がコンテキストプロバイダごとに過度に異なる場合は、ステップ８１４で所定の信用レベルを有するコンテキストプロバイダを選択し、おそらくはそのプロバイダの情報のみを使用することができる（ステップ８１６）。矛盾がない場合は、ステップ８１６で、すべてのコンテキストプロバイダから提供される情報に基づいて現在のコンテキストを判定する。ここで説明する実施形態では、このステップは、上記の階層ツリー構造の１つまたは複数における特定ノードにマッピングする情報を使用することによって実施される。例えば、デバイスの位置は、情報を特定ノードにマッピングしてから、ルートノードに達するまでそのツリー構造を完全にトラバースすることによって確定することができる。次いでステップ８１８で、恐らくは現在のコンテキストをキャッシュに書き込むことによって現在のコンテキストを更新し、ステップ８０２に戻ってアクティブかつ有効なコンテキストプロバイダを判定する。
【００９８】
上記の方法は、位置サービスモジュールが位置情報を受け取り、現在の位置を表す可能性が最も高いと思われる位置情報だけを使用する方式を提供する。矛盾する情報は軽視、または無視することができ、それにより最も信頼され、正確で確度の高い情報のみを利用してデバイスの現在の位置を判定することが保証される。
【００９９】
自己監視
信頼度および正確度のパラメータに加えて、１つまたは複数の位置プロバイダは、発生しうる様々な変則的な事態に対する各自の動作を自己監視するようにプログラムすると有利である。変則的な事態が発生した際には、位置プロバイダは位置サービスモジュール６０２にそれを通知するように構成される。例えば、位置プロバイダがその情報を得ているソースが一定期間オフラインになった場合、位置プロバイダは追加情報を一切受信することができなくなる。この場合、位置プロバイダは「プロバイダアウト」のメッセージを生成して、それを位置サービスモジュール６０２に送信することができる。「プロバイダアウト」メッセージを受け取ると、位置サービスモジュール６０２は、それが行ういずれの位置計算からもそのプロバイダからの位置情報を除外する処置を講じることができる。位置プロバイダのソースは再びオンラインになると、それがモジュールに位置情報を送信できる状態であることを位置サービスモジュール６０２に知らせる「プロバイダオン」メッセージを生成することができる。言うまでもなく、他の作動上の変則的事態が発生した際には、位置サービスモジュールには位置プロバイダによってそれを通知することができ、上記の例はただ１つの特定の事例を構成するものである。
【０１００】
アプリケーション
位置サービスモジュール６０２はデバイスの位置を判定すると、１つまたは複数のアプリケーション６０８から照会を受けることができる。図７の例では、アプリケーションには、ウェブサイトアプリケーション、Ｏｕｔｌｏｏｋアプリケーション、およびサービス発見アプリケーションが含まれる。この例では、ウェブサイトアプリケーションは、位置に固有のサービスを提供することが可能な任意のウェブサイトアプリケーションでよい。例えば、デバイス６０２のユーザは、Ａｍａｚｏｎ．ｃｏｍのウェブサイトにアクセスして気に入った本を購入することができる。ユーザが本を購入する際、Ａｍａｚｏｎ．ｃｏｍはユーザが支払うべき税金を計算しなくてはならない。この例では、Ａｍａｚｏｎ．ｃｏｍのウェブサイトで実行されるスクリプトは、デバイス６０２に照会してユーザの位置を知ることができる。この特定の例では、デバイスは、ユーザがその購入を行っている州を返すことにより、照会に答えることができる。するとＡｍａｚｏｎ．ｃｏｍは自動的に税金を算定することができる。Ａｍａｚｏｎ．ｃｏｍはまた、最適な発送方法（ＵＰＳやＥｘｐｒｅｓｓ　Ｍａｉｌ）を選択できるように、個人がどこに位置するかを知ることを望む。個人の位置に応じて、ある方法が他の方法よりも好ましい場合がある。Ｏｕｔｌｏｏｋアプリケーションは、それ（または例えばＷｉｎｄｏｗｓ（登録商標）などのオペレーティングシステム）がコンピューティングデバイスの位置に基づいてデバイス設定を変えることができるので、位置サービスモジュールに照会して位置を確定することができる。例えば、ユーザが職場ではある特定のプリンタで印刷し、自宅では別の特定のプリンタで印刷する場合がある。Ｏｕｔｌｏｏｋアプリケーションは、ユーザが一日を終えて帰宅したと判断すると、ユーザの自宅にあるプリンタのために自動的にデバイス設定を変更することができる。Ｏｕｔｌｏｏｋアプリケーションは、個人の場所についてのデータストア７１４からプリント設定を入手することもできる。このように、ユーザの位置に応じてデバイスが使用のために自動的に設定される。サービス発見アプリケーションは、デバイスの位置に応じて特定のサービスを提供できるように、デバイスに照会してその位置を判定することができる。例えば、ユーザが最も近くにあるカラープリンタを見つけることをこのアプリケーションに要求すると、サービス発見アプリケーションは位置サービスモジュールに照会してデバイスの現在の位置を確定することができ、その情報を使用して最も近いカラープリンタを見つけることができる。また、Ｏｕｔｌｏｏｋアプリケーションが、勤務位置（個人が勤務中のとき）または自宅位置（個人が自宅にいるとき）への電子メールをそれ自体で設定できることも考えられたい。また、Ｏｕｔｌｏｏｋカレンダーは位置認識型になることもでき、例えば我々が時間帯を変えると、その予定が適切な時間スロットに表示される。
【０１０１】
想像できるように、可能性は無限であるように思われる。この機能は、マスター世界と１つまたは複数の２次世界を使用することによって可能になる。
【０１０２】
アプリケーションプログラムインタフェース／イベント
ここに説明する実施形態では、アプリケーション６０８は、１つまたは複数のアプリケーションプログラムインタフェース（ＡＰＩ）および／またはイベントを通じて位置サービスモジュール６０２と通信する。アプリケーションはＡＰＩで機能呼び出しを行って、位置サービスモジュールにその現在の位置を照会することができる。同様に、アプリケーションは、イベント登録プロセスを使用することにより、位置の通知を登録することができる。例えば、アプリケーションは、ユーザがその位置を変えた際に通知されるように登録することができる。アプリケーションがデバイスの設定（プリンタの設定など）を変更することができるように、ユーザが職場あるいは自宅に到着したときにそれが通知されるようにアプリケーションが要求する場合を考えられたい。
【０１０３】
図９は、ここに述べる実施形態による方法のステップを説明する流れ図である。記載するステップはデバイス６００によって実施される。ステップ９００で、デバイスの現在のコンテキストに関する情報を受け取る。この特定の例では、この情報の一部は、この場合は位置プロバイダである１つまたは複数のコンテキストプロバイダから受け取る。ステップ９０２で、デバイス上でデバイスを用いてこの情報を処理して、デバイスの現在のコンテキストを確定する。図の例では、デバイスは１つまたは複数のマスター世界と１つまたは複数の２次世界を保持している（またはそれらへのアクセス権を有する）。デバイスはすべての位置情報を受け取ると、それらの世界を定義する階層ツリー構造中の特定ノードにその情報をマッピングする。そしてツリー構造をトラバースして、デバイスの完全なコンテキスト（すなわち位置）を確定する。ステップ９０４で、デバイスの現在のコンテキストまたは位置に関する情報を要求する１つまたは複数のアプリケーションからの呼び出しを受信する。図の例では、アプリケーションは１つまたは複数のＡＰＩを呼び出して情報を要求するか、またはイベントの通知を登録することができる。次いでステップ９０６で、現在のデバイス位置に関する少なくともいくらかの情報をアプリケーションに提供する。下記で述べるように、アプリケーションに返す前に情報にセキュリティポリシーまたはプライバシーポリシーを適用することができる。
【０１０４】
プライバシーマネジャ
一実施形態では、プライバシーマネジャ７０４（図７）が提供される。図ではデバイスに組み込まれているが、プライバシーマネジャは、モバイルコンピューティングデバイスの一部でない信頼されるサーバなど信頼されるエンティティによって実装してもよい。プライバシーマネジャは、任意の適切なハードウェア、ソフトウェア、ファームウェア、あるいはこれらの組み合わせに実装することができる。図の例では、プライバシーマネジャは、モバイルコンピューティングデバイスに組み込まれたソフトウェアモジュールからなる。
【０１０５】
プライバシーマネジャ７０４は、コンピューティングデバイスによって収集される情報に伴うプライバシーの問題を扱う。具体的には、位置サービスモジュールは、コンピューティングデバイスの位置に関する詳細な情報を計算することができる。事例によっては、各種のアプリケーションに提供される情報をフィルタリングすることが望ましい場合もある。すなわち、ユーザが自分の具体的な位置情報が信頼しないアプリケーションに提供されることを望まない可能性はごく高い。こうした事例では、ユーザは、位置サービスモジュール６０２がそのユーザがワシントン州にいることをそのようなアプリケーションに知らせることだけを希望することが考えられる。
【０１０６】
図１０は、ここに説明する実施形態によるプライバシー保護方法のステップを説明する流れ図である。これらのステップはプライバシーマネジャ７０４によって実施することができる。
【０１０７】
ステップ１０００で、複数のプライバシーレベルを定義する。プライバシーレベルの例を下の表に挙げる。
【０１０８】
【表４】
2004506964.tif 000005
【０１０９】
この表では、１０の異なるプライバシーレベルが定義され、各レベルがそれに関連するおよその尺度を有する。例えば、０のプライバシーレベルは、位置情報が返されないことを意味する。９０のプライバシーレベルは、非常に詳細な位置情報が返されることを意味する。
【０１１０】
ステップ１００２で、１つまたは複数の階層ツリー構造中の個々のノードに様々なプライバシーレベルを割り当てる。例えば、マスター世界と２次世界の各ノードは、それぞれに関連付けられたプライバシーレベルを有することができる。マスター世界のツリー構造のルートノードは１０のプライバシーレベルを有し、一方２次世界中の現在の位置を表すノードは９０のプライバシーレベルを有することが可能である。ステップ１００４で、コンピューティングデバイスのコンテキストを判定する。この例では、コンテキストはデバイスの位置であり、これを求める方法は上記で述べた。位置サービスモジュールを呼び出す個々のアプリケーションは、それらと関連付けられたプライバシーレベルを有することができる。このプライバシーレベルは、個々のユーザによって割り当てることができる。例えば、信頼されるアプリケーションが９０のプライバシーレベルを有するのに対して、信頼されないアプリケーションは３０のプライバシーレベルを有するなどである。ステップ１００６で、１つまたは複数のアプリケーションからコンテキストの照会を受信する。ここで、アプリケーションは位置サービスモジュール６０２（図７）を呼び出してデバイスの位置を確定する。ステップ１００８で、その１つまたは複数のアプリケーションに関連付けられたプライバシーレベルを判断する。例えば、信頼されないアプリケーションが呼出しを行って位置情報を要求する場合、プライバシーマネジャ７０４は、そのアプリケーションは３０のプライバシーレベルを有すると判断する。次いでプライバシーマネジャは１つまたは複数の階層ツリー構造をトラバースして（ステップ１０１０）、対応するプライバシーレベルを有するノードを見つけ、そのノードに関連付けられた情報を選択することができる。この例では、トラバースには、２次世界からマスター世界にジャンプして、ユーザが位置する州に対応するノードを見つけることが含まれる場合もある。対応するノードが見つかると、ステップ１０１２で、そのノードに関連付けられたコンテキスト情報（例えば位置情報）を返す。この場合、位置サービスモジュールは、ユーザの位置がワシントン州であることをアプリケーションに通知する。
【０１１１】
一例として次の例を考察されたい。様々な位置の最新の天気を提供するウェブサイトがある。したがって、自分の現在の完全な郵便番号に対応する地理的範囲の天気情報を得るために、このウェブサイトに６０のプライバシーレベルを割り当てることができる。別のウェブサイトは、信頼されるウェブサイトである、ある企業のイントラネットウェブサイトとする。したがって、自分の居場所について正確な位置情報を与えることができるように、このウェブサイトに関連するアプリケーションにはいずれも９０のプライバシーレベルを割り当てることができる。
【０１１２】
したがって、この例では、コンピューティングデバイスは、その照会のソース（すなわちアプリケーション）を判定し、そのアプリケーションの識別に応じてアプリケーションに返す情報を調整することができる。コンピューティングデバイスはマスター世界および１つまたは複数の２次世界にアクセスすることができるのでこの調整を行うことができる。上記の説明は、この離れ業（ｆｅａｔ）を実現する例示的な方式の１つを構成するに過ぎない。
【０１１３】
位置プロバイダとしての位置ビーコン
一実施形態では、位置プロバイダの１つが、コンピューティングデバイスがその現在のコンテキストに活発に参加できるようにするために情報を表示（ｂｅａｃｏｎ）、または送信する位置ビーコンを含む。位置ビーコンは、電源を得るために、例えば煙探知器や壁のコンセントなど既存のインフラストラクチャに後から取り付けることのできるスタンドアロンデバイスからなることができる。
【０１１４】
図１１は、構造物１１０２に取り付けた例示的なビーコン１１００を示す。構造物１１０２は、会議室や公共の場所の壁面、煙探知器、電気ソケットなど、任意の適切な構造物でよい。ここに説明する実施形態では、位置ビーコンは、会議室、建物のロビー、空港のゲート、公共の場所など、特別な位置に永続的に取り付けることのできる小型で低価格のデバイスである。ビーコンは、ラップトップ、タブレットＰＣ、ハンドヘルドコンピュータ、携帯電話、ウェアラブルコンピュータなど、範囲内にあるすべてのモバイルデバイスにＥＩＤおよび／またはＬＵＩＤの形で物理的位置を知らせる。
【０１１５】
ここに説明する実施形態では、位置ビーコンは、モバイルコンピューティングデバイスによって理解される標準情報を示すことにより特定の位置を識別可能とする。この例では、ビーコンは、ＥＩＤ／ＵＲＬの対とＬＵＩＤ／ＵＲＬの対を含む１つまたは２つの位置識別子の対を送信することができる。ビーコンは複数のＬＵＩＤを送信することもできる。ＥＩＤとＬＵＩＤは、マスター世界と２次世界それぞれにおける現在のノード位置を示す。ＵＲＬは、マスター世界と２次世界の到達可能な位置を提供する。例えば、２次世界と関連付けられたＵＲＬは、デバイスが使用して２次世界についての情報を照会することのできるサービス位置を示すことができ、デバイスは、そのコンテキストを得て、２次世界のノードと関連づけられた資源またはサービスを利用することができる。
【０１１６】
ビーコンは、デジタル署名も送信することができ、これをデバイスが使用してそのビーコンが有効かつ正当なものであることを確かめることができる。適切な署名または検証の方法をいずれも使用することができる。さらに、コンテキスト認識型の環境における特殊な使用として、ビーコンは範囲内にあるデバイスにコードダウンロードポインタを送信するようにプログラムすることができる。コードダウンロードポインタは、コンピューティングデバイスがその環境と対話することを可能にするソフトウェアコードにコンピューティングデバイスがアクセスすることを可能にする。次の例を考えられたい。自分の携帯電話であるコンピューティングデバイスを携えて会議室に入っていくと、会議室にあるビーコンが直ちにその者の位置をＥＩＤ／ＵＲＬの対およびＬＵＩＤ／ＵＲＬの対の形で送信する。デバイスはこの情報の対を使用して上記の要領でマスター世界と２次世界におけるその位置を確定する。ビーコンは、自分のハンドヘルド型の携帯電話を使用して会議室のビデオプロジェクタを操作することを可能にするソフトウェアコードをポイントするコードダウンロードポインタも送信する。このようにビーコンは単なる位置ビーコン以上の機能を果たし、自分のコンピューティングデバイスを通じて各自の環境に活発に関与することを可能にする。
【０１１７】
ビーコンは、例えば赤外線や無線周波を含む無線方式など、任意の適切な方式で情報を送信することができる。一実施形態では、ブルートゥースの短距離無線周波通信を使用して、低コストで、低電力の代替法を提供することができる。
【０１１８】
結論
上記に述べた各種実施形態は、コンテキスト認識型のコンピューティングの世界を高める画一的で標準化された方式を提供する。これらの実施形態は、個人が、標準的な方式で世界における各自の位置を確定することにより、自分を取り巻く世界を独自に体験する方法を提供する。これらの実施形態はまた、サービス提供者が、例えば商品やサービスの様々な消費者の位置などのコンテキストに対応し、それを理解するような形で、各自の商品およびサービスを独自に位置付ける方式も提供する。独自の有用なアーキテクチャとデータ構造を用いて、ユーザのコンピューティング体験を容易なものにし、個人中心型の経験を提供する。
【０１１９】
本発明について、構造的な特徴および／または方法論的なステップに固有の用語で説明したが、頭記の特許請求の範囲で定義する本発明は必ずしもここに開示した特定の機能またはステップに制限されないことを理解されよう。特定の機能およびステップは、特許請求する発明を実装する好適な形態として開示する。
【図面の簡単な説明】
【図１】記載する実施形態に従って使用することのできる例示的コンピューティングデバイスの図である。
【図２】記載する実施形態による例示的なマスター世界および例示的な２次世界の概念図である。
【図３】マスター世界および２次世界の例示的な特定のビュー、およびそれらの相互の関係の図である。
【図４】記載する実施形態による方法におけるステップを説明する流れ図である。
【図５】記載する実施形態による方法におけるステップを説明する流れ図である。
【図６】例示的なコンピューティングデバイスアーキテクチャのハイレベルの図である。
【図７】例示的なコンピューティングデバイスアーキテクチャのややより具体的な図である。
【図８】記載する実施形態による方法におけるステップを説明する流れ図である。
【図９】記載する実施形態による方法におけるステップを説明する流れ図である。
【図１０】記載する実施形態による方法におけるステップを説明する流れ図である。
【図１１】一実施形態による例示的な位置ビーコンの断面図である。
【図１】
2004506964.tif 000006
【図２】
2004506964.tif 000007
【図３】
2004506964.tif 000008
【図４】
2004506964.tif 000009
【図５】
2004506964.tif 000010
【図６】
2004506964.tif 000011
【図７】
2004506964.tif 000012
【図８】
2004506964.tif 000013
【図９】
2004506964.tif 000014
【図１０】
2004506964.tif 000015
【図１１】
2004506964.tif 000016
【国際公開パンフレット】
2004506964.tif 000017
2004506964.tif 000018
2004506964.tif 000019
2004506964.tif 000020
2004506964.tif 000021
2004506964.tif 000022
2004506964.tif 000023
2004506964.tif 000024
2004506964.tif 000025
2004506964.tif 000026
2004506964.tif 000027
2004506964.tif 000028
2004506964.tif 000029
2004506964.tif 000030
2004506964.tif 000031
2004506964.tif 000032
2004506964.tif 000033
2004506964.tif 000034
2004506964.tif 000035
2004506964.tif 000036
2004506964.tif 000037
2004506964.tif 000038
2004506964.tif 000039
2004506964.tif 000040
2004506964.tif 000041
2004506964.tif 000042
2004506964.tif 000043
2004506964.tif 000044
2004506964.tif 000045
2004506964.tif 000046
2004506964.tif 000047
2004506964.tif 000048
2004506964.tif 000049
2004506964.tif 000050
2004506964.tif 000051
2004506964.tif 000052
2004506964.tif 000053
2004506964.tif 000054
2004506964.tif 000055
2004506964.tif 000056
2004506964.tif 000057
2004506964.tif 000058
2004506964.tif 000059
2004506964.tif 000060
2004506964.tif 000061
2004506964.tif 000062
2004506964.tif 000063
2004506964.tif 000064
2004506964.tif 000065
2004506964.tif 000066
2004506964.tif 000067
2004506964.tif 000068
2004506964.tif 000069
2004506964.tif 000070
2004506964.tif 000071
2004506964.tif 000072
2004506964.tif 000073
2004506964.tif 000074
2004506964.tif 000075
2004506964.tif 000076
2004506964.tif 000077
2004506964.tif 000078
2004506964.tif 000079
2004506964.tif 000080
2004506964.tif 000081
2004506964.tif 000082
2004506964.tif 000083
2004506964.tif 000084
2004506964.tif 000085
2004506964.tif 000086