[0020] 以下の詳細な説明は、データを消費型コンテンツに変換するときにバリエーションを生じさせるためのコンセプトおよび技術を対象としている。本明細書で説明されているコンセプトおよび技術によれば、コンピューティングデバイスは、データを消費型コンテンツに変換し、バリエーションを消費型コンテンツに導入するために変換エンジンを実行することができる。いくつかの実施形態において、コンピューティングデバイスは、メモリまたはサーバー、インターネット、または同様のものなどのローカルもしくはリモートの記憶装置デバイスからデータを取得する。他のいくつかの実施形態では、データは、コンピューティングデバイス側で実行するアプリケーションプログラムを使用してコンピューティングデバイス側で生成される。コンピューティングデバイスは、データを分析するために変換エンジンを実行するように構成され得る。データの分析を介して、コンピューティングデバイスは、データのデータ要素または他の部分内の関係を識別することができる。また、コンピューティングデバイスは、変換エンジンを実行して、データに適用するバリエーションを決定し、データに適用する可視化モデルおよび/またはワールドを選択することができる。ワールドを選択する際に、コンピューティングデバイスは、データに対する可能なワールドを決定し、可能なワールドを順位付けし、可能なワールドの順位付けに基づき単一のワードを選択することができる。コンピューティングデバイスは、変換エンジンを実行して、選択された、または選ばれたワールドに関連付けられているルールを取得し、それらのルールをデータに適用して出力を生成することができる。
[0021] コンピューティングデバイスは、ユーザーまたは他のエンティティから入力またはフィードバックを取得し、適用するように構成され得る。出力に関するユーザーまたは他のエンティティの選好を理解するために、フィードバックがコンピューティングデバイスによって解釈され得る。入力またはフィードバックは、ユーザーまたは他のエンティティから直接取得され、および/またはコンピューティングデバイスによって生成され得る1つまたは複数のプロンプトに応答して取得され得る。入力またはフィードバックに基づき、コンピューティングデバイスは、データを変換するために使用されるワールドを修正し、出力を修正し、および/またはワールドもしくは出力が修正されるべきでないと判定するように構成することができる。コンピューティングデバイスは、後で使用するために、および/または他のデータに適用するためにそれらの選好を記憶しておくように構成することもできる。
[0022] コンピューティングデバイスによって記憶されている選好は、特定のユーザーに対する選好だけでなく、それに加えて、または代替的に、複数のもしくはすべてのユーザーに対する選好も含むことができる。それに加えて、または代替的に、選好は、特定のコンテンツまたは出力、さらには1人または複数のユーザーに関係するものとしてよい。したがって、選好は、例えば、特定のデータ要素、データ要素のクラスタ、プレゼンテーションの態様、プレゼンテーションもしくはデザインスキーム、ルール、または同様のものが、他のデータ要素、データ要素のクラスタ、プレゼンテーションの態様、プレゼンテーションもしくはデザインスキーム、ルール、または同様のものに比べて重要であるか、またはあまり重要でないかも示し得る。
[0023] 本明細書で説明されている発明対象は、コンピュータシステム上のオペレーティングシステムおよびアプリケーションプログラムの実行と併せて実行されるプログラムモジュールの一般コンテキストにおいて提示されているが、当業者であれば、他の実装を他のタイプのプログラムモジュールと組み合わせて実行することも可能であることを理解するであろう。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含む。さらに、当業者であれば、本明細書で説明されている発明対象は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータ、および同様のものを含む、他のコンピュータシステム構成を使用して実施できることを理解するであろう。
[0024] 以下の詳細な説明では、説明の一部をなす、特定の実施形態または例が図解を用いて示されている、添付図面を参照する。次に、複数の図全体にわたって類似の番号は類似の要素を表している図面を参照すると、コンピューティングシステム、コンピュータ可読記憶媒体、およびデータを消費型コンテンツに変換するときにバリエーションを生じさせるためのコンピュータによって実装される方法が示されていることがわかる。
[0025] そこで図1を参照しつつ、本明細書で提示されているさまざまな実施形態に対する1つの動作環境100の態様について説明する。図1に示されている動作環境100は、コンピューティングデバイス102を含む。さまざまな実施形態により、コンピューティングデバイス102の機能性が、デスクトップ、タブレット、またはラップトップコンピュータシステムなどのパーソナルコンピュータ(「PC」)によって実現され得る。コンピューティングデバイス102の機能性は、限定はしないが、サーバーコンピュータ、ハンドヘルドコンピュータ、ネットブックコンピュータ、埋込式コンピュータシステム、携帯情報端末、携帯電話、タブレットもしくはスレートコンピュータ、スマートフォン、または本明細書において詳しく説明されているさまざまなソフトウェア要素を実行する能力を有する他のデバイスもしくはシステムを含む他のタイプのコンピューティングシステムによって実現することもできる。本明細書で開示されているコンセプトおよび技術を説明することを目的として、本明細書では、コンピューティングデバイス102は、PC、またはタブレットコンピュータなどのモバイルコンピューティングデバイスを含むものとして説明されている。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0026] いくつかの実施形態によれば、コンピューティングデバイス102は、通信ネットワーク(「ネットワーク」)104と通信しながら、またはその一部として動作するように構成される。他のいくつかの実施形態では、コンピューティングデバイス102は、ネットワーク104と通信して動作しない。コンピューティングデバイス102は、オペレーティングシステム106および1つまたは複数のアプリケーションプログラム、モジュール、ソフトウェア要素、または例えば変換エンジン108などの他のコンピュータ実行可能もしくはコンピュータ可読命令を実行するように構成され得る。
[0027] オペレーティングシステム106は、コンピューティングデバイス102の動作を制御するためのコンピュータプログラムである。変換エンジン108は、オペレーティングシステム106の上で実行され情報を消費型コンテンツに変換するときにバリエーションを生じさせるための本明細書で説明されている機能性を実現するように構成された実行可能プログラムを備えることができる。変換エンジン108は、コンピューティングデバイス102の一コンポーネントとして例示されているが、変換エンジン108は、ネットワーク104および/またはコンピューティングデバイス102の一部として、またはネットワーク104および/またはコンピューティングデバイス102と通信して動作するスタンドアロン型デバイスまたはそのコンポーネントとして、またはそのようなスタンドアロン型デバイスまたはそのコンポーネントにおいて具現化され得る。変換エンジン108は、コンピューティングデバイス102上で、および/または他の実もしくは仮想デバイス上で実行する仮想化サービスもしくは技術層であってもよい。したがって、例示されている実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでない。
[0028] 以下でさらに詳しく説明されるように、図2〜5を特に参照すると、変換エンジン108は、データ110を取得し、データ110を分析してデータ110がロードされるべき「ワールド」を決定し、ワールド内のコンテンツにバリエーションを生じさせ、および/またはデータ110を、コンピューティングデバイス102によって生成された出力112を含み得る、または出力112内に含まれ得る消費型コンテンツに変換するように構成することができる。本明細書で使用されているような「ワールド」という用語は、データ要素を表示するためのアプローチ、データ110内の要素を出力112中の要素に変換するためのルール、および/または特定のワールド内にバリエーションを導入するか、バリエーションにアクセントを付けるためのさまざまなパラメータを指すために使用され得る。同様に、本明細書で使用されているような「消費型(消費可能な)」という用語は、ユーザーまたは閲覧者によってすぐに、もしくは容易に閲覧されるか、解釈されるか、またはアクセスされ得る出力112などの出力を指すために使用することができる。より具体的には、以下でさらに詳しく説明されるように、出力112は、本明細書で開示されているさまざまなコンセプトおよび技術により変換エンジン108によって配置構成されるデータ110のさまざまなデータ要素または一部分を含み得る。そのようなものとして、データ110は、データのデータ要素または他の部分を多数含み得ることは理解できる。
[0029] いくつかの実施形態では、変換エンジン108は、データ110を分析してデータ110内のさまざまなデータ要素同士の関係を識別し、決定されたワールドに基づきデータ110を関係ベースのデザインに翻訳するか、または配置構成するように構成される。この関係ベースのデザインは、必ずというわけではないが、論理および/または階層方式で配置構成され、および/またはデータを配置構成および/またはレイアウトするためのさまざまなデザイナーベースのプレゼンテーションルールに従って配置構成され得る。したがって、「消費型コンテンツ」という言い回しは、必ずというわけではないが、視覚に訴える、および/または論理的に配置構成されたデータを指すものとしてよい。しかし、本明細書で説明されているような出力112は、視覚に訴える必要はなく、また視覚的訴求は、主観的であってもよいことは理解されるであろう。例えば、出力112の目的は、可読性および/または理解に関して最適化する出力112を提示するなど、実用に関するものであってよい。そのようなものとして、出力112は、本明細書で説明されているように出力112に翻訳されるデータ110のさまざまなデータ要素または他の部分を含み得る。
[0030] さまざまな実施形態により、コンピューティングデバイス102は、データ110を受信するか、または格納するように構成される。例えば、データ110は、コンピューティングデバイス102のメモリ、ディスクドライブ、または他のデータ記憶装置要素内に格納することができる。図1に例示されている実施形態などのいくつかの他の実施形態において、データ110は、ネットワーク104の一部として、またはネットワーク104と通信して動作するように構成され得るデータソース114から取得され得る。データソース114の機能性は、ネットワークドライブ、ネットワーク104上で、またはネットワーク104と通信して動作するサーバーコンピュータ、データベースもしくは別の実もしくは仮想データ記憶装置要素、および/または他のデータ記憶装置デバイスによって実現することができる。いくつかの実施形態において、変換エンジン108が、コンピューティングデバイス102内の技術層を操作する場合、データ110は、アプリケーションまたは記憶装置デバイスから取得され、変換エンジン108内にロードされるか、または他の何らかの方法で供給されるものとしてよい。そのようなものとして、動作環境100の例示され説明されている実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0031] 本明細書で開示されているコンセプトおよび技術のさまざまな態様により、変換エンジン108は、1つまたは複数のアプリケーション、プログラム、ソフトウェア、コンピュータ実行可能命令、および/または他のデータを備えることができる。変換エンジン108の一部として含まれ得るデータのいくつかの例は、図2を参照しつつ以下に例示されさらに詳しく説明される。簡単に言うと、コンピュータ実行可能命令は、限定はしないが、データ110とともに含まれるコンテンツを分解し、理解するための命令、データ110を出力112の一部として提示するときに使用されるバリエーションを生成し、および/または提案するための命令、出力112を生成する際に使用されるワールドのテーマ、雰囲気、配色、アニメーション、レイアウト、論理的アプローチ、および/または他の態様を選ぶための命令、選択された、または選ばれたワールドを手直しするためのルール、および/またはユーザーもしくは他のエンティティからの入力に基づき出力を修正するための命令を含み得る。
[0032] 変換エンジン108のこれらおよび他の態様は、単一のまたは複数のアプリケーションもしくはモジュールによって実現され得る。したがって、コンピューティングデバイス102は、変換エンジン108を実行することによって、データ110を受信し、データ110のさまざまな要素または他の部分の間の関係を識別し、これらの関係に基づき、データ110をロードするワールドを識別し、ワールドに関連付けられているパラメータおよび/またはルールを修正することによってデータ110をどのように提示するかを決定し、決定されたフォーマット、スキーム、テーマ、または同様のものでデータを提示するための出力112を生成し、出力112を提示することができる。出力112を提示する前、提示しているとき、または提示した後に、コンピューティングデバイス102は、ユーザーもしくは他のエンティティからの出力112に関して入力またはフィードバック(「フィードバック」)を取得するようにも構成され得る。いくつかの実施形態において、コンピューティングデバイス102は、フィードバックを返すことをユーザーに促すように構成することができる。他のいくつかの実施形態では、コンピューティングデバイス102は、フィードバックを返すことを促すことなく、さまざまなユーザーもしくは他のエンティティからフィードバックを受信するように構成され得る。
[0033] コンピューティングデバイス102によって受信されたフィードバックに基づき、コンピューティングデバイス102は、新規ワールドを選択し、そのワールドに関連付けられているパラメータを修正し、データ110に追加されるバリエーションを導入または修正し、および/またはユーザーもしくは他のエンティティに関連付けられている選好、好き、嫌い、または同様のものを反映する出力112を修正することができる。いくつかの実施形態において、コンピューティングデバイス102は、出力112の特定の態様をユーザー側で調節することができる「エキスパートモード」をサポートするように構成することもできる。他のいくつかの実施形態では、ユーザーは、出力112の一部の、または全部の態様をオーバーライドすることを制限されるものとしてよい。そのようなものとして、コンピューティングデバイス102は、コンピューティングデバイス102によって決定されるフォーマットでデータ110を提示するだけでなく、さらにフィードバックを供給することを介してユーザーもしくは他のエンティティによって手直しされ、および/または修正されたフォーマットでデータ110を提示するように構成され得る。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0034] いくつかの実施形態では、コンピューティングデバイス102は、データ110を取り出すか、受信するか、または他の何らかの方法で取得する。データ110は、ローカルのデータ記憶装置デバイスから、またはデータソース114などのリモートのデータ記憶装置デバイスもしくはエンティティから取得することができる。データ110は、限定はしないが、ドキュメント、テキスト、画像、プレゼンテーション、スプレッドシート、ウェブページ、ビデオ、メディア、または他の情報を含む、ほとんどのタイプの情報を含むことができる。データ110は、他のタイプの情報またはコンテンツを含むことができるので、これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0035] コンピューティングデバイス102は、データ110を分析してデータ110内の階層および/または関係を識別するように構成され得る。特に、コンピューティングデバイス102は、データ110内に含まれるデータの1つまたは複数のデータ要素または一部分の間の関係を識別するように構成され得る。例えば、データ110が、プレゼンテーションドキュメントを含む場合、データ要素は、プレゼンテーションのスライド、プレゼンテーションのスライド内のオブジェクト、および/または個別のテキスト文字、画像、文、単語、黒丸付きリスト、番号付きリスト、テキストブロック、背景、タイトルブロック、メディアオブジェクト、または同様のものなどのプレゼンテーションに含まれるデータの他の部分を含むことができる。コンピューティングデバイス102は、データ110のさまざまな要素または部分(「データ要素」)を分析してさまざまなデータ要素間の関係を識別し、および/またはデータ110内の階層を識別するように構成され得る。同様に、コンピューティングデバイス102は、データ110の1つまたは複数のインスタンスの間の関係を認識し、および/またはデータ110が変化したことを示す通知を受信するように構成され得る。例えば、FLICKRまたは他の写真アルバムソフトウェアからの画像は、画像同士の関係を識別するためにFACEBOOKまたはTWITTER更新および/またはタイムスタンプ情報などのステータス更新またはメッセージに関連付けることができる。そのようなものとして、出力112を生成した後であっても、コンピューティングデバイス102は、データ110の更新バージョンおよび/またはデータ110が更新されたことを示す指示を受信するように構成され、その変化を反映するように出力112を更新することができる。他のタイプのデータおよび/またはデータソースは、データ110の要素の間の関係を識別するために使用することができるので、これらの例は、例示的であるものとして理解されるべきであって、いかなる形でも制限するものとして解釈されるべきでない。
[0036] コンピューティングデバイス102は、出力112を生成するために使用される可視化モデルを決定するように構成することもできる。特に、コンピューティングデバイス102は、差別化された出力112を供給するために出力112を生成するときに含めることができるバリエーションを決定することができる。例えば、コンピューティングデバイス102は、アニメーション、画像サイズ、テキスト効果、レイアウト、配色、テーマ、または他の可視化におけるバリエーションを、高度に差別化された出力を得るために出力112として含まれるデータに適用することができる。さらに、強調、逆強調、順序付きリスト、コレクション、親子関係、または同様のものなどの、データにおける関係は、多くの可視化を作成するために使用することができ、これらのそれぞれが基礎となる関係を表す。例えば、テキスト内の強調は、テキストを太字にすること、テキストのフォントサイズを大きくすること、テキストの色を赤色に変更すること、繊細なアニメーションを加えること、および/または他の方法により可視化され得る。こうして、コンピューティングデバイス102のユーザーは、他のユーザーが実質的に類似しているか、またが同一の入力を供給するとしても、コンピューティングデバイス102を使用してユニークなプロダクトを生成することができる。いくつかの実施形態において、これらのバリエーションは、選択されたワールドに関連付けられているさまざまなパラメータを調節することによって出力112に加えることができる。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0037] コンピューティングデバイス102は、出力112を生成するために使用されるワールドを選ぶように構成することもできる。上で述べたように、本明細書で使用されているような「ワールド」という用語は、データ110に適用され、出力112を生成するために使用され得る可視化および/またはテーマのタイプまたはカテゴリを指すために使用することができる。これらのワールドは、二次元(「2D」)または三次元(「3D」)可視化でデータ110を可視化するための命令、フォントおよびフォントフォーマットを指定するための命令、画像および画像フォーマット、アニメーション、背景、オーディオ効果、テキストブロックサイズおよびレイアウト、ドキュメントレイアウト、または出力112の他の態様を備えることができる。しかし、「ワールド」は、必ずしもテンプレートに限定されないことは理解されるであろう。むしろ、本明細書で説明されている実施形態では、ワールドは、テンプレートではなく、その代わりに、本明細書で説明されているように出力112を取得するためにデータ110に適用され得る可視化の様相または態様を定義する。例えば、いくつかの実施形態では、「ワールド」は、可視化、スタイル、およびデータ110の取り扱い方および表示方法をガイドするチューニングされたルールの複合体を含む。本明細書で開示されているワールドの追加の態様は、図2を参照しつつ以下でさらに詳しく説明される。
[0038] ワールドの一部または全部も、ルールのセットに関連付けることができる。ルールの追加の態様は、図2を参照しつつ以下で詳しく説明される。簡単に言うと、ルールは、ワールドのさまざまな態様をデータ110などのデータにどのように適用するかを定義することができる。ルールの追加の態様およびルールをどのように使用できるかを示すいくつかの例について、図2を参照しつつ以下でさらに詳しく述べる。コンピューティングデバイス102は、選ばれたワールドがもし利用可能であればこのワールドに関連付けられているルールを取得し、それらのルールをデータ110に適用して出力112を取得するように構成され得る。したがって、コンピューティングデバイス102は、出力112を生成して、出力112をユーザーまたは他のエンティティに提示することができる。出力112は、望ましい場合にはデータ記憶装置デバイスに保存することもできる。
[0039] 以下でさらに詳しく説明されるように、特に図5を参照すると、コンピューティングデバイス102および/またはその上で実行されている変換エンジン108は、データ110が変化した場合に出力112を更新するように構成され得ることがわかる。例えば、コンピューティングデバイス102は、データ110の以前のバージョンを表すために選ばれたワールドを評価し、新規のワールドを、適切であれば、更新に基づき採用するか、またはデータ110の修正されたバージョンを反映するように出力112をただ単に更新することができる。出力112を更新することは、限定はしないが、データ110への更新を受け入れるようにワールド内にデータの一部または全部を再度レイアウトすることを含み得る。望ましい場合には、新規データを追加するためにアニメーションを生成することができる。例えば、出力112内の要素を移動して、新規データ要素を受け入れる場所を作ることができる。コンピューティングデバイス102は、異なるワールドを明示的に採用する、複数のワールドで生成される出力112を提示して好ましいワールドのユーザー選択を可能にする、または同様のことを行うユーザー要求をサポートするように構成することもできる。
[0040] 本明細書で開示されているコンセプトおよび技術のいくつかの実施形態により、コンピューティングデバイス102は、ユーザーフィードバックを取得し出力112に適用するようにも構成される。いくつかの実施形態において、ユーザーフィードバックは、さまざまなプロンプトまたは質問へのユーザー応答を含む。例えば、コンピューティングデバイス102は、出力112のさまざまな態様を評価するために、ユーザーまたは他のエンティティに質問を提示することができる。いくつかの実施形態において、コンピューティングデバイス102は、出力112の色、配色、フォント、レイアウト、要素配置、画像サイズ、重要度、強調、データの配置構成、または他の態様に関するフィードバックを、その特定の態様が好きか嫌いかを表明することによって返すようにユーザーまたは他のエンティティに求めるか、または促す。
[0041] コンピューティングデバイス102は、フィードバックを返すことを促すことに加えて、またはその代わりに、出力112のさまざまな態様に関するユーザー向けの質問を生成するように構成することもできる。例えば、コンピューティングデバイスは、特定の態様が好きか嫌いか、良いか悪いか、または同様のことを尋ねることができる。フィードバック、質問、プロンプト、または同様のものは、はい/いいえ、好き/嫌い、または真/偽の二択回答の質問としてフォーマットされ得ることは理解されるであろう。質問またはプロンプトでは、例えば、1から10までなどの数値の目盛り、「A」から「F」までなどの文字による等級、星の数、または同様のものなどのさまざまな範囲にわたる順位を要求することもできる。ユーザーは、出力112全体に関するこのタイプおよび/または他のタイプのフィードバックを返すことができ、および/またはコンピューティングデバイス102は、出力112の個別の部分またはコンポーネントに関してこのフィードバックを表現することをユーザーに尋ねるように構成され得る。例えば、コンピューティングデバイス102は、出力112が好きか嫌いかを尋ねるか、または出力112の特定のフォント、配色、および/または他の態様もしくはコンポーネントが好きか嫌いかを尋ねるように構成され得る。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0042] コンピューティングデバイス102は、ユーザーからのフィードバックを評価し、フィードバックに基づき出力112が修正されるべきかどうかを判定するように構成することができる。例えば、ユーザーまたは別のエンティティから受信されたフィードバックが、配色が「嫌い」であることを示している場合、コンピューティングデバイス102は、配色を変更し得る。同様に、「好き」は、出力112を修正するのに使用することができ、したがって、ユーザーまたは他のエンティティが好きである出力112の態様は、出力112内に繰り返され、および/または今後、他の出力112を生成するために使用され得る。そのようなものとして、出力112のさまざまな態様は、フィードバックに基づき修正され得ることは理解できる。選好を、ルールシステムにフィードバックすることができるので、出力112の特定のインスタンスに関して表明される選好は、現在の出力112および/またはその閲覧された要素をただ単に更新する代わりに、またはそれに加えて、ワールド全体に対して一貫した効果を有し得る。
[0043] いくつかの実施形態では、フィードバックは、データ110を表すように選ばれたワールドを修正し、および/またはワールドに関連付けられているさまざまなパラメータもしくは特性を調節するために使用することができる。したがって、フィードバックは、データ110が選択されたワールド内でどのように表されるか、および/またはさまざまなバリエーションが選択されたワールド内でどのように適用されるかを決定するために使用され得る。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0044] 図1は、1つのコンピューティングデバイス102、1つのネットワーク104、および1つのデータソース114を例示している。しかし、動作環境100のいくつかの実装は、複数のコンピューティングデバイス102、複数のネットワーク104、ゼロもしくは複数のデータソース114、および/または追加のもしくは代替的なハードウェア要素を備えることは理解されるであろう。したがって、例示されている実施形態は、例示的なものであると理解されるべきであり、またいかなる形でも制限するものとして解釈されるべきでない。
[0045] 次に図2を参照し、変換エンジン108の追加の態様について、例示的な実施形態に従って詳細に説明することにする。図1を参照して上で説明されているように、変換エンジン108は、データ110を出力112に変換するように構成することができる。図2に例示されている実施形態などのいくつかの実施形態において、変換エンジン108は、変換エンジン108および/またはコンピューティングデバイス102に関して本明細書で説明されている機能性を実現するために多数のモジュール、アプリケーション、プログラム、ソフトウェア、または他のコンピュータ実行可能命令を備える。それに加えて、または代替的に、変換エンジン108は他のデータも備えることができ、これについて本明細書でさらに詳しく説明する。
[0046] 例示されている実施形態において、変換エンジン108は、分解および理解モジュール200、バリエーションモジュール202、ワールド選択モジュール204、ルール206、オーサリングモジュール208、ワールド210、および他のデータもしくは命令(図示せず)を備える。図2には示されていないが、変換エンジン108は、ルール206のオーサリング、作成、および/または保存を行うためのデザインルールモジュールを備えることもできる。そのようなものとして、変換エンジン108は、コンピュータ実行可能コードもしくは命令の1つまたは複数の部分の実行により、データ110を出力112に変換するように構成され得る。図2に示されているさまざまなモジュールおよび他のデータに関して本明細書で説明されているさまざまな機能性は、単一のアプリケーション、モジュール、プログラム、または他のソフトウェアもしくはデータによって実現されること、またそのようなものとして、図示されている実施形態は例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0047] 分解および理解モジュール200は、データ110を分析するように構成され得る。上で説明されているように、データ110の分析は、データ110のさまざまなデータ要素または他の部分の間の関係を理解できるように達成され得る。より具体的には、いくつかの実施形態において、データ110は、フローベースのフォーマットで配置構成され、および/または特定のフォーマットでは配置構成されない。分解および理解モジュール200は、データ110を解釈するためにさまざまなルールを適用し、それによりさまざまなデータ同士の関係を識別することができる。例えば、プレゼンテーションまたは他のドキュメントの複数のページに、類似の、または同一のタイトルが含まれている場合、分解および理解モジュール200は複数のページが互いに関係していると判定するように構成され得る。同様に、1つのページ上のタイトルが第2のページ上のタイトルに類似しているが、「continued」という語または「cont’d」などの略語も含んでいる場合、分解および理解モジュール200は、これらのページが関係していると判定することができる。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0048] いくつかの実施形態において、分解および理解モジュール200は、黒丸付きリストまたは番号付きリスト内の要素は互いに、および/またはリストの見出しに関係していると判定するように構成することができる。他のいくつかの実施形態では、分解および理解モジュール200は、同じ、または類似の画像を囲むテキストは関係している、類似の、または同一の参照もしくは脚注を含むテキストは関係している、および/またはデータ110の他の要素もしくは部分は互いに関係している、と判定するように構成され得る。他のいくつかの実施形態では、分解および理解は、画像分析を含むものとしてよい。例えば、画像を分析して、画像の顔、突出領域、不変領域(テキストをその上に置くことができる)、組成分析、または他の態様を検出することができる。データ110を解釈するためのさまざまなルールが、分解および理解モジュール200によって適用され得る。関係を識別するための他のプロセスまたはルールが企図されているので、これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0049] バリエーションモジュール202は、ユーザーまたは他のエンティティのために差別化された出力112を生成するように構成することができる。特に、バリエーションモジュール202は、アニメーション、視覚効果、デザイン、テーマ、または他のバリエーションにおいてバリエーションを適用することができる。バリエーションをデータ110に適用することで、コンピューティングデバイス102のそれぞれの出力112をユニークなものに思わせるために使用され得る差別化を生じさせることができる。これらのバリエーションは、図3を参照しつつ以下でさらに詳しく説明されているように、データ110に適用され得る。いくつかの実施形態において、バリエーションは、データ110を表すために選ばれたワールド210に関連付けられている1つまたは複数の特性もしくはパラメータの修正もしくは調節を行うことで出力112に導入され得る。
[0050] ワールド選択モジュール204は、データ110に適用するワールド210を評価して選ぶように構成することができる。上で説明されているように、「ワールド」は、出力112を取得するために格納され、選択され、および/またはデータ110に適用することができるデータを表すためのテーマ、モデル、スキーム、または他のアプローチを含むものとしてよい。いくつかの実施形態では、ワールドは、拡張可能である。特に、サードパーティまたは他のエンティティが、新規の、または追加のワールド210を作成し、データ110がワールド210にデータ110がどのように適用できるかを定義することができる。
[0051] ワールド選択モジュール204は、データ110のさまざまな態様を考慮し、データ110に最も適合する決定されたワールド210に基づきデータ110にどのような可視化モデルおよび/または差別化を適用すべきかを決定するように構成され得る。いくつかの実施形態では、ワールド選択モジュール204は、データ110を表すために使用することができるワールド210を決定するように構成される。したがって、データ110を表す上でまずい選択であると判定されるワールド210は、可能なワールド210のグループから除外され得る。ワールド選択モジュール204は、図4を参照しつつ以下でさらに詳しく説明されているように、さまざまな考察結果に基づき可能なワールドの順位付けを行うことができる。順位付けに基づき、ワールド選択モジュール204は、データ110を適用するワールド210を選択することができる。いくつかの実施形態では、ワールド210は、図2に示されているように、変換エンジン108によって格納される。ワールド選択モジュール204は、例えば、データ110の形状、データ110内で識別される階層、およびデータ110の他の態様を考慮することができる。
[0052] 上で述べたように、データ110は、さまざまなデータ要素212を含み得る。したがって、本明細書ではさまざまなオペレーションおよび/または分析がデータ110に関して説明されているが、これらの、および/または他のオペレーションは、データ要素212に関して実行され得ることは理解されるであろう。そこで、ワールド選択モジュール204は、例えば、データ要素212同士の関係、および/またはデータ要素212の間の階層を考慮して、ワールド210を順位付けし、選択することができる。ワールド210を選択するこれらの、および他の態様について、図3を参照しつつ以下でさらに詳しく述べる。
[0053] それに加えて、ワールド選択モジュール204は、さまざまな時点において、データ110を表すために選ばれたワールド210が修正または変更されるべきかどうかを判定するように構成することができる。そこで、例えば、データ110が更新された場合にワールド選択モジュール204が呼び出され、選ばれたワールド210が変更されるべきかどうか、または出力112がデータ110の修正バージョンを同じワールド210に適用することによって変更されるべきかどうかを判定することができる。ワールド210を更新する追加の態様は、図5を参照しつつ以下で例示され説明される。
[0054] ルール206は、バリエーションおよび選ばれたワールド210に基づき、任意のコンテンツを含み得る、データ110を出力112に変換するように構成された適応型ルールを備えるものとしてよい。言い換えると、ルール206は、出力112を取得するためにデータ110に適用することができる翻訳のカテゴリを含むものとしてよい。したがって、いくつかの実施形態では、ルール206は、それぞれのワールド210に対するルールの1つまたは複数のセットを含み、ルール206はコンピューティングデバイス102によって選択され、これに基づきワールド210が選ばれる。そのようなものとして、ルール206は、データ110を出力112に変換または翻訳するための手直しされたオペレーション、ステップ、またはルールであり得る。データ110は、常に出力112への直接的翻訳であるとは限らないことは理解されるであろう。特に、データ110のコンテンツまたはレイアウトは、データ110を出力112に翻訳するときに操作され得る。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0055] ルール206は、出力112のレイアウトまたは他の形態に含まれるべき、データ110の部分、例えば、以下でさらに詳しく説明されているデータ要素212を選択するために使用され得る。特に、ルール206は、出力112のそれぞれのビューについて情報またはデータ要素212を選択し、選ばれたワールドに関連付けられているレイアウト、ビュー、または他の出力112内の所定の配置にどのようなタイプの情報および/またはどのようなデータ要素212が必要であるか、望ましいか、または適切であるかを定義するために使用することができる。開発者または他のエンティティは、ルール206を用いて、それぞれのビューまたはレイアウトにどのような情報が提示されるべきかを指定することができる。
[0056] ルール206は、出力112について選択されたデータ要素212または他の情報のフロー、進行、および/またはレイアウトを決定するためにも使用され得る。特に、コンピューティングデバイス102は、ルール206を適用して、変換エンジン108が出力112に関連付けられているレイアウトを生成するときに意志決定機能を実行することができる。レイアウトは、どのようなタイプの情報またはデータ要素212が画面上のどのようなグリッドセル内で使用されるかを定義することができるが(またはデータ要素212を画面上に配置するために他のアプローチを使用してデータ要素212の配置を定義する)、ルール206は、情報がレイアウトに配置された後、情報フローをどのように修正するか(スタイルに関して、または他の何らかの特性、例えば、情報のサイズ、形状、または他の態様に関して)を定義することができる。いくつかの場合において、ルール206は、定義済みの既定のレイアウトを超えて情報が流れる場合のレイアウトの調節の仕方も取り扱うことができる。
[0057] ルール206をデータ110に適用して、出力112に含まれるデータ要素212または他の情報の1つまたは複数をアップグレードするか、または他の何らかの形で修正することもできる。したがって、どのようなタイプのデータ110についても、ワールドのフロー処理動作は、ワールドに関連付けられているルール206を修正することによって変更することができることは理解され得る。特に、ルール206は、データ110のデータ要素212または他の部分を改善するか、アップグレードするか、または他の何らかの形で修正するために使用することができる。例えば、データ要素212が、低解像度画像を含む場合、データ要素212をアップグレードすることは、低解像度画像をより高い解像度の画像で置き換えること、ぼやかしまたは同様の効果などの画像処理を画像に適用して芸術的な表現を生み出すこと、または同様の操作を含み得る。
[0058] 同様に、データ要素212が、データテーブルを含む場合、データ要素212をアップグレードすること、または改善することは、データテーブルをグラフで置き換えることを含み得る。これらの、および/または他のタイプのアップグレード、改善、および/または他の修正は、ルール206によって制御されるものとしてよい。したがって、デザイナーには、画像のアップグレード、グラフへの変換などの利用可能なツールセットを使用して特定のタイプの情報がどのようにアップグレードされるか、または他の何らかの形で修正されるかを明確にすることができるようになる。いくつかの実施形態では、デザイナーは、本明細書で説明されているようにルール206を適用する前にさまざまなルール206を明確に述べることができる。そのようなものとして、ルール206の明確化はほとんどいつでも行うことができ、またルール206の利用もほとんどいつでも行うことができ、これはルール206が明確に述べられたずっと後も含む。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0059] ルール206をデータ110に適用して、出力112の1つまたは複数のレイアウトもしくは他のフォームにスコアを付けることもできる。特に、ルール206を使用することで、所定のレイアウトに対して情報をどのように取り扱うか、また品質制約(quality bar)を満たしているかどうかに関するフィードバックを返すことによってレイアウトの選択を円滑にすることができる。ワールド内のそれぞれのレイアウトに対する正確なスコアが取得され、スコアはコードベースの再コンパイルなしでルール206のセットを用いて調節され得る。
[0060] ルール206は、変換エンジン108によって考慮されるさまざまなワールド210にスコアを付けるためにも使用され、スコアは、注目しているワールド210にスコアを付けるためにワールド選択モジュール204に受け渡されるものとしてよい。特に、ルール206は、ワールド210内に入れられる情報の適合の質に関するフィードバックを生成することによってワールド210のうちから1つ選択する作業を円滑にするために使用され得る。ルール206は、ワールドの順位付けに関する最終決定を下すことはできないが、決定を支援する情報を提供するコンポーネントとすることができる。情報セットに対するワールド210の適合度を記述するそれぞれのワールド210に対する正確なスコアが取得され、スコアはコードベースの再コンパイルなしでルール206のセットを用いて調節され得る。ワールド210を順位付けし、選択する追加の態様は、図4〜5を参照しつつ以下で例示され説明されている。
[0061] 変換エンジン108のさまざまな実装に従って、デザイナー、ユーザー、または他のエンティティによってルール206が作成され、修正され、および/または削除され得る。そのようなものとして、ルール206は、デザイナーのワークフローに合う仕方でルール206を明確に表現するためにデザイナーからアクセス可能であるものとしてよい。いくつかの実施形態では、デザイナーが必要な情報すべてを、理想的には視覚的に、明確に表現できるようにするツールで、このリスト中の前の目標に対処する。ツール206の追加の態様が本明細書において説明されており、そのようなものとして、ツール206の上記の使用は、例示的なものであると理解されるべきであり、またいかなる形でも制限するものとして解釈されるべきでない。
[0062] そこで、ルール206は、特定のワールドの適用によってデータ110がどのように表されるかを調節するために適用され得る。例えば、ルール206をデータ110に適用してテキストの可読性を調節することができる。これらの調節は、例えば、文字が単語、文、および段落でレイアウトされているときの書体の相対的な読み取りやすさ、読者を捉えて放さず、および/または高いレベルで理解してもらうためにテキストの長いブロックが読みやすい必要があるという仮定、テキストを段組にして1行の長さを短くすると、可読性が改善され得るという仮定、「右ラグ」揃えにされたテキストは、「強制揃え」されるか、または左右の余白上に一列に並ぶように操作されたテキストに比べて読みやすいと仮定するルール、空白類、小見出し、および/または他の要素を導入してテキストを分割し、読者の目の休み所を作って疲労を防ぐのを補助するためのルールに基づくものとしてよく、そうするために、テキストの行数に基づきレディングを調節し、コンテンツおよびレイアウトの量に基づき1行の長さを調節し、コンテンツを閲覧するために使用されるデバイスの能力(例えば、画面サイズ、解像度、入力デバイス、または同様のもの)に基づきコンテンツを調節し、コンテンツの量に基づきフォントサイズを調節し、および/または他の調節もしくは修正をデータに適用する。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0063] ルール206は、出力112の判読性を改善するためにも使用することができる。例えば、ルール206は、特定の一続きのテキストが背景画像に対してどれだけ読みやすいかを評価するために使用され得る。またルール206を使用することで、テキストが判読できるように背景画像とテキストとの間に透明なフィールドを挿入すること、半透明の背景をテキストの背後に重ね合わせて、テキストが半透明の背景なしの場合に比べて判読性が高まるようにすること、画像全体および/またはその一部を暗くし、および/または明るくするためのルールを適用すること、優れた判読性を有するフォントサイズ、色、およびタイプスタイルを選択すること、テキスト用のスペースがテキストの優れた判読性とともに残されるようにレイアウトの領域内に置くべき画像の再配置、選択、および/または拡大縮小を行うことによって、ドロップシャドウを加えてテキストの判読性を高めること、テキストの背後に微妙な透明性を加えること、フォトダークニング(photo darkening)、露光、または他の画像変換を適用して画像を修正すること、他の調節を適用すること、または同様のことを行うこともできる。
[0064] ルール206は、出力112の品質を改善するためにも使用することができる。例えば、ルール206を使用することで、テキストをグリッドライン上に揃えるか、または制約し、および/またはテキストが視覚的にグリッド上に一列に並ぶようにテキストの配置またはフローを調節し、テキストが画像上に重ね合わされたボディコピーおよびタイトルコピーに対して最適化されるようにテキストサイズの関係を定義することができるが、そうするために、テキストの行数に基づきレディングを調節し、テキストのカーニング、テキストのレディング、さまざまなサイズのテキストのベースラインの位置揃え、および同様の操作を適用する。ルール206は、コンテンツに重なる写真が写真内の基底構造に関係するように写真内の構造を識別するためにも使用され得る。同様に、ルール206を使用することで、テキストブロックが互いに、および/または他のテキストと位置を揃えることを確実にし、それにより、テキストブロックが一緒に流れて、可変文字列に応じて適切な配置、位置揃えが確実になされるようにすることができる。さらに、画像それ自体の中に存在する構造は、レイアウト内のテキストに関して位置決めされ得るか、またはそれ自体、所定のレイアウトでのテキストの配置を案内することができる。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0065] ルール206は、画像を調節するためにも使用され得る。例えば、ルール206を使用することで、1つまたは複数の目立つ領域に基づき画像のクロッピングを行うこと、画像をアップグレードすること、1つまたは複数の方向での画像のクロッピングを行い、および/または画像のクロッピングを回避すること、および/または画像方向を維持することを実行できる。レイアウトの何らかの目標を達成するために使用される場合、そうしてクロッピングされた画像は、十分に高い品質であることを規定されているとき、およびワールドパラメータによって許容可能であるときに1つまたは複数のエッジに沿って補外され、合成された画像データを含み得る。
[0066] ルール206は、データ110の要約の探索および/または生成を行うためにも使用することができる。またルール206を使用することで、データ110および/またはデータ要素212のアップグレードを、例えば、全世界測位システム(「GPS」)または地図データを使用してデータ110において参照されている場所/位置に関する追加の情報を取得することによって行うこと、現在の統計量および/または他のタイプのライブコンテンツを追加すること、コメント数、コンテンツがリンクされた回数、コンテンツがダウンロードされた回数などの関係する情報を追加すること、または同様のことを行うこともできる。ルール206は、データ110および/またはデータ要素212のサイズを決めるためにも使用することができる。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでない。
[0067] またルール206を使用することで、それぞれのデータ要素212が他のデータ要素212に関してどのように移動するかにも影響を及ぼすことができる。例えば、一部のテキストは、インタラクティブに操作されたとき、および/または上でホバリングされたときに反応し得、移動またはアニメーションは、移動の速度またはどのようなユーザーがデータ110をインタラクティブに操作しているかということに影響され得、クリックまたはタッチジェスチャーが検出されるまで周囲運動が適用され得、または同様のことが行われ得る。データ要素212のこれらの、および他の移動および/または相対的位置決めは、ルール206によって決定され得る。また、ルール206は、データ要素212の順序、コンテンツがどのようにナビゲートされるか(例えば、ナビゲートする際のクリック回数、スワイプ回数、画面の数、または同様のもの)を決定するためにも使用され得る。
[0068] 上で述べているように、ルール206は、データ110のデータ要素212および/または他の部分にバリエーションを生じさせるためにも使用することができる。ルールは206は、どのようなデータ110またはデータ要素212が特定のデータ部分またはデータ要素212を囲むかに基づきいくつかのバリエーションを適用することができる。これらのバリエーションは、コンテンツにも基づき得る。例えば、データ110がタイムラインベースのデータに対応する場合、ワールドまたはレイアウトは、少数の画像が含まれているという仮定または認識に基づき選ばれ得る。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0069] ルール206は、テキストに関連付けられている書体および/または他の設定を選択し、サイズ変更し、および/または他の何らかの形でフォーマットするためにも使用され得る。例えば、ルール206を使用することで、テキストまたは近くにあるフィールドに対するハイライトの色および/または補色を選択することができる。ルール206は、また、コンテンツのソースに基づきカラーパレットを定義するためにも使用され得る。例えば、配色は、特定のブランドに関連付けられている配色、データ110に含まれる配色、含まれる画像から抽出された配色、または同様のものに基づき選択され得る。ルール206に基づき、モーションを変化させ、および/または選択することができる。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0070] オーサリングモジュール208は、ユーザーまたは他のエンティティからの出力112に関するフィードバック214を分析するように構成することができる。フィードバック214は、オーサリングモジュール208によって取得され、および/または変換エンジン108によって取得され、オーサリングモジュール208に受け渡され得る。オーサリングモジュール208は、出力112を修正するためにフィードバック214を出力112に適用するように構成され得る。オーサリングモジュール208は、変換エンジン108を今後使用するためにフィードバック214を格納するように構成され得る。
[0071] そのため、図1〜2には示されていないが、ユーザーの選好は、変換エンジン108によって生み出され、望ましい場合には、変換エンジン108によって格納され、適用され得る。フィードバック214に基づき出力112を修正することに関して上で説明されているように、オーサリングモジュール208は、フィードバック214を促すプロンプトを出すように構成され得るか、またはユーザーもしくは他のエンティティからフィードバック214を受信するように構成され得る。フィードバック214は、質問へのはい/いいえまたは真/偽の回答として、星の数、範囲内の数、文字による等級などの評価情報として、選択または並べ替えなどの単純なアクションの補外を通じて、または同様のもので、好き嫌いに関して返され得る。フィードバック214は、オーサリングモジュール208によって解釈されるものとしてよい。
[0072] 上で指摘されているように、嫌いに基づき出力112を変更することに加えて、オーサリングモジュール208は、好きに基づき出力112を修正するようにも構成され得る。特に、変換エンジン108は、ユーザーが好む出力112のさまざまな態様を、より頻繁に繰り返し、および/または使用することができる。ユーザーの好き嫌いは、他のユーザーに対しても変換エンジン108によって使用され得ることは理解されるであろう。特に、変換エンジン108は、選好に基づき、ソーシャルネットワーキング情報に基づき、および/または他の情報に基づきさまざまなユーザー同士の、および/またはさまざまなユーザーの間の類似性と、変換エンジン108が、ユーザーに類似していると考えられる、またはユーザーに類似しているものとして指示されている別のユーザーに特定のユーザーの選好を適用することができるということとを認識するように構成され得る。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0073] 図2の上記の説明に照らして、本明細書で説明されているコンピューティングデバイス102は、アプリケーション、ソフトウェアコンポーネント、モジュール、または他の命令をいくつでも実行することによって変換エンジン108および/または変換エンジン108のさまざまなモジュールの機能を実現することができる。そのようなものとして、明細書において「コンピューティングデバイス」の機能を参照している場合、説明されている機能性は、本明細書で説明されているソフトウェアモジュール、データ、および/またはハードウェア要素のうちのどれかによって実現される機能性を含み得ることは理解されるであろう。さらに、変換エンジン108は、コンピューティングデバイス102で実行するさまざまなプログラムによって呼び出されるか、またはアクセスされる技術層として動作し得ることは理解されるであろう。同様に、変換エンジン108は、さまざまなアプリケーションまたはデバイスによって呼び出され得るサービスとして動作させることができる。そのようなものとして、さまざまな説明されている実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでない。
[0074] 次に図3を参照して、データを消費型コンテンツに変換するための方法300の態様を詳しく説明することにする。本明細書で開示されている方法のオペレーションは、必ずしも特定の順序で提示されておらず、代替的順序(複数可)でのオペレーションの一部または全部の実行が可能であり、企図されていることは理解されるであろう。これらのオペレーションは、説明および例示を容易にするために示されている順序で提示されている。オペレーションは、付属の請求項の範囲から逸脱することなく、追加され、省略され、および/または同時に実行され得る。
[0075] 例示されている方法は、いつでも終了させることができ、その全体が実行される必要はないことも理解されるであろう。本明細書で開示されている方法の一部または全部のオペレーション、および/または実質的に同等のオペレーションは、本明細書で定義されているように、コンピュータ記憶媒体上に収められているコンピュータ可読命令の実行によって実行され得る。「コンピュータ可読命令」という用語、およびその変形は、説明および請求項において使用されているように、本明細書では、ルーチン、アプリケーション、アプリケーションモジュール、プログラムモジュール、プログラム、コンポーネント、データ構造、アルゴリズム、および同様のものを含むように拡大解釈して使用されている。コンピュータ可読命令は、シングルプロセッサもしくはマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースのデバイス、プログラム可能な家電製品、これらの組合せ、および同様のものを含む、さまざまなシステム構成で実装され得る。
[0076] 本明細書で説明されている論理的なオペレーションは、(1)コンピュータシステム上で実行される一連のコンピュータ実装活動またはプログラムモジュールとして、および/または(2)コンピューティングシステム内の相互接続された機械論理回路もしくは回路モジュールとして実装されることは理解されるであろう。この実装は、コンピューティングシステムの性能および他の要件に応じて選択できるものである。したがって、本明細書において説明されている論理的なオペレーションは、状態、演算、構造的デバイス、活動、またはモジュールとさまざまに称される。これらの演算、構造的デバイス、活動、およびモジュールは、ソフトウェア、ファームウェア、専用デジタル論理回路、およびこれらの任意の組合せで実装され得る。
[0077] 本開示のコンセプトを例示し説明することを目的として、本明細書で開示されている方法は、例えば、変換エンジン108などの、コンピュータ実行可能命令の実行を介してコンピューティングデバイス102によって実行されるものとして説明される。図2に関して上記で説明されているように、変換エンジン108は、本明細書で説明されている機能性を実現するためにコンピューティングデバイス102によって実行され、および/または使用され得るさまざまなモジュールおよび/または他のデータを含むものとしてよい。追加の、または代替的なデバイスは、変換エンジン108以外の、またはそれに加えた命令の実行を介して本明細書で説明されている機能性を実現することができることは理解されるであろう。そのようなものとして、説明されている実施形態は、例示的なものであり、いかなる形でも制限するものとしてみなされるべきでないことは理解されるであろう。
[0078] 方法300はオペレーション302から開始し、そこでコンピューティングデバイス102がデータ110を取得する。上で説明されているように、データ110は、さまざまなタイプの情報またはコンテンツを含むことができ、例えば、限定はしないが、ビデオファイル、アニメーションファイル、スライドショーファイル、画像ファイル、オーディオファイル、他のメディアファイル、または同様のものを含むメディアファイル、テキストドキュメント、プレーンテキスト、ウェブページ、ウェブコンテンツ、リッチテキスト、または同様のもの、および/または他のタイプの情報などを含み得る。企図されている一実施形態において、データ110は、Microsoft Corporation社(ワシントン州レドモンド所在)のMICROSOFT POWERPOINTプレゼンテーションソフトウェア製品ファミリの一員の製品によって生成されたファイルなどのプレゼンテーションファイルに対応する。データ110に提供され得るさまざまなタイプの情報に照らして、この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0079] さまざまな実装により、データ110は、コンピューティングデバイス102に関連付けられているデータ記憶装置デバイスまたはコンポーネントから取得される。データ記憶装置デバイスのいくつかの例について、図6〜8を参照しつつ以下で詳細に説明する。他のいくつかの実施形態では、データ110は、本明細書で説明されているデータソース114などのリモート記憶装置デバイスまたはリソースに格納され得る。したがって、データ110は、データソース114との通信を介してコンピューティングデバイス102によって取得され得る。そのようなものとして、データ110は、実または仮想デバイスから、直接的接続を介して、1つまたは複数のネットワークを介して、および/または他のノード、デバイス、および/またはデバイスコンポーネントを介して取得され得ることが理解されるであろう。
[0080] 方法300は、オペレーション302からオペレーション304へ進み、コンピューティングデバイス102は、データ110のデータ要素または他の部分の間の関係を識別することができる。いくつかのタイプの情報、およびデータ110のいくつかの実施形態は、フローベースの配置構成で配置構成されるか、または編成され、および/または他の何らかの方法で論理的および/または階層的配置構成で配置構成され得ない。例えば、ワードプロセッシングドキュメントまたはプレゼンテーションなどのドキュメントのそれぞれのスライドまたはページは、タイトル、テキストの1つまたは複数の段落、1つまたは複数の文、1つまたは複数の単語、1つまたは複数の箇条書き、1つまたは複数の番号付きリスト、1つまたは複数の表、1つまたは複数の画像、および/または他のオブジェクトなどのデータ要素212を含み得る。いくつかの場合において、それぞれのスライドまたはページは、異なるトピックまたはサブトピックを対象とすることができるか、または扱う。他のいくつかの場合において、それぞれのスライドまたはページは、同じまたは類似のトピックを対象とすることができる。オペレーション304は、データ110のさまざまなデータ要素212または他の部分の間の関係を決定し、識別することを含み得る。いくつかの実施形態では、コンピューティングデバイス102は、分解および理解モジュール200の実行を介してオペレーション304に関して本明細書で説明されている機能性を実現する。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0081] 企図されている一例において、10ページからなるドキュメントのそれぞれのページにタイトルを入れることができる。タイトルは、「title」というラベルを付けたブロックまたはフィールドによって指示され、および/または情報の配置、フォーマット、サイズ、色、コンテンツ、または他の態様に基づきタイトルを含むと判定され得る。したがって、10ページのうちの3ページに同じ、または類似のタイトル情報が含まれる場合、それら3ページは、関係があるとみなされ、それら3ページに載っている情報は、タイトルとの関係を共有するものとして判定され得る。別の例では、コンピューティングデバイス102は、見出しの下にある番号付きリストまたは黒丸付きリストを見出しに関係するものとみなすように構成され得る。同様に、コンピューティングデバイス102は、リスト内にある番号付きまたは黒丸付き項目を互いに関係するものとみなすように構成され得る。
[0082] したがって、テキスト、画像、または他のデータの配置、サイズ、フォーマット、コンテンツ、および/または他の態様、さらにはデータの相対的位置、配置、フォーマット、サイズ、コンテンツ、または他の態様は、ドキュメント内の他のデータに関して、オペレーション304でデータ同士の関係を決定するために使用できることは理解され得る。データ110のさまざまなデータ要素または他の部分の間の関係を識別するための他の多くのアプローチが企図されているので、これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0083] 方法300は、オペレーション304からオペレーション306に進み、そこでコンピューティングデバイス102がデータ110に適用するバリエーションを決定する。オペレーション306では、コンピューティングデバイス102は、オペレーション304で決定された関係を調べて、データ110がどのように提示されるべきかを決定することができる。特に、コンピューティングデバイス102は、データ110に関連付けられているさまざまなファクタを調べて、データ110にバリエーションを加える仕方を決定することができる。したがって、例えば、コンピューティングデバイス102は、さまざまな方法でオペレーション304において決定された関係を提示するためにデータ110に適用され得る視覚的効果、デザイン、および/または他のバリエーションを決定することができる。企図されている一実施形態において、コンピューティングデバイス102は、図2を参照しつつ上で例示されさらに詳しく説明されているバリエーションモジュール202の実行を介してオペレーション306に関して本明細書で説明されている機能性を実現する。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0084] 方法300は、オペレーション306からオペレーション308に進み、そこでコンピューティングデバイス102がデータ110を提示するためのワールド210を選ぶ。ワールド210を選択する追加の態様は、図4を参照しつつ以下で例示され説明される。簡単に言うと、上で述べたように、本明細書で使用されているような「ワールド」という用語は、データ110に適用され、出力112を生成するために使用され得る可視化および/またはテーマのタイプを含み得る。オペレーション308において、コンピューティングデバイス102は、データ110のさまざまな態様、オペレーション306で識別されたバリエーション、データ要素212同士の関係、および/または他の考慮事項に基づきワールド210を選択することができる。例えば、コンピューティングデバイス102は、データ110の形状を調べる、例えば、データ110の全体的な雰囲気もしくは調子、プレゼンテーションまたはドキュメントなどのデータ110の長さ、データ110のテキスト対画像比、データ110に含まれる多数の画像または他の媒体オブジェクト、データ110内のテキスト文字、単語、文、段落、または同様のものの総数、出力112の予想される対象閲覧者、出力112を表示するための予想される場所、出力112を表示するために使用されると予想される表示デバイスなどの予想される表示媒体、出力112が表示され得る配置、データ110内の、および/またはデータ要素212間の階層、出力112を表示するか、または出力112をインタラクティブに操作するときに使用され得る入力メカニズム、テキスト、画像、または同様のものなどの視覚的オブジェクトまたは他のデータ要素212の相対的サイズ、および/またはデータ110の他の態様などを調べるように構成され得る。
[0085] ワールド210を選択する際に、コンピューティングデバイス102は、多数のワールド210を考慮するか、またはデータ110、および/またはデータ110および/またはデータ要素212の決定された関係、階層、雰囲気、形状、および/または他の態様に適合する単一のワールド210を識別することができる。したがって、オペレーション308は、多数の利用可能なワールド210から最高順位のワールド210を選択すること、バリエーションに基づき単一のワールド210を識別すること、または特定のワールド210を指定する入力を受信することを含み得る。企図されている一実施形態において、コンピューティングデバイス102は、ワールド選択モジュール208の実行を介してオペレーション308に関して本明細書で説明されている機能性を実現する。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0086] 方法300は、オペレーション308からオペレーション310に進み、そこでコンピュータデバイス102が選ばれたワールド210に関連付けられているルール206を取得する。オペレーション310で、コンピューティングデバイス102は、選択されたワールド210に関連付けられているルール206をデータ110に適用することができる。ルール206をデータ110に適用することで、コンピューティングデバイス102はデータ110を意図したとおりに提示するように構成され得る。特に、ルール206は、データ110を特定のワールド210においてどのように提示すべきかを指定することができる。したがって、オペレーション310は、少なくとも部分的には、オペレーション308で選ばれたワールド210に基づきルール206を取得することを含むものとしてよい。
[0087] 方法300は、オペレーション310からオペレーション312に進み、そこでコンピュータデバイス102はオペレーション310で取得されたルール206を適用する。上で述べているように、コンピューティングデバイス102は、ルール206をデータ110に適用して、オペレーション308で選ばれたワールド210に関連付けられているフォーマットまたはフォームでデータ110をフォーマットすることができる。例えば、ルール206は、テキストを提示するフォント、表示される画像に対するサイズ、または出力112を取得するためにデータ110を修正する他の命令を定義することができる。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0088] 方法300は、オペレーション312からオペレーション314に進み、そこでコンピュータデバイス102は出力112を生成する。オペレーション314で、コンピューティングデバイス102は、オペレーション306〜312で識別されたバリエーション、ワールド210、およびルール206をデータ110に適用することができる。方法300は、オペレーション314からオペレーション316に進み、そこでコンピュータデバイス102は出力112を提示する。出力112は、例えば、コンピューティングデバイス102および/または別のデバイスに関連付けられている表示デバイスに提示することができる。いくつかの実施形態では、コンピューティングデバイス102は、後で閲覧または提示できるように出力112をデータ記憶装置デバイスに保存するように構成され得るが、そのようなオペレーションは図3に示されていない。本明細書で開示されているコンセプトおよび技術のさまざまな実施形態を説明することを目的として、方法300は、出力112をコンピューティングデバイス102に関連付けられている表示デバイス上に表示する一実施形態に関して説明されている。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0089] 方法300は、オペレーション316からオペレーション318に進み、そこでコンピュータデバイス102は、コンピューティングデバイス102で受け取ったフィードバック214に基づき、出力112を生成するために使用されるデータまたは関係が修正されるべきかどうかを判定する。そこで、図3には示されていないが、方法300は、コンピューティングデバイス102でフィードバック214を受け取り、および/または出力112に関するフィードバックを返すようにユーザーまたは他のエンティティに促すためのオペレーションを含むことができる。いくつかの実施形態では、例えば、出力112が提示され、ユーザーは、出力112に関するフィードバック214を返すよう促される。例えば、ユーザーは、出力112に視覚的に訴える点があるか、特定の色が好きか嫌いか、要素のレイアウトが好きか嫌いか、および/または他の質問を尋ねられ得る。いくつかの実施形態では、コンピューティングデバイス102は、出力112のほとんどいかなる態様に関するフィードバック214および/またはコメントを受け取る。
[0090] コンピューティングデバイス102で受け取ったフィードバック214に応答して、コンピューティングデバイス102は、出力112を生成するために使用されるデータまたは関係が修正されるべきと判定することができる。例えば、コンピューティングデバイス102は、出力112の色、レイアウト、配色、テーマ、雰囲気、または他の態様がフィードバック214に応答して修正されるべきと判定し、この判定結果に基づき、出力112のその態様を生成するために使用されるデータ要素または関係が修正されるべきであると判定することができる。出力112を生成するために使用されるデータまたは関係が修正されるべきであると判定する際に、コンピューティングデバイス102は、オペレーション304で決定されたデータ110および/または関係もしくは階層、さらにはオペレーション308で選ばれたワールド210は、出力112の他の態様のうちでもとりわけ変更され得ることは理解されるであろう。出力112のほとんどいかなる態様も変更できるので、これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0091] コンピューティングデバイス102が、オペレーション318において、出力112が修正されるべきであると判定した場合、方法300はオペレーション320に進み、そこで、コンピューティングデバイス102は、出力112を生成するために使用されるデータまたは関係を修正する。データまたは関係の修正は、テキストを強調または逆強調すること、テキストのサイズを変更すること、画像のサイズを変更すること、テキストまたは画像のフォーマットを変更すること、テキストのフォント、サイズ、または色を変更すること、ワールド210を変更すること、可視化モードを変更すること、バリエーションもしくはバリエーションのタイプを変更すること、および/または出力112を生成するために使用されるデータもしくは関係を他の何らかの方法で修正することを含み得る。出力112を生成するために使用されるデータまたは関係に、追加のまたは代替的な修正を加えることができるので、これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[0092] 方法は、オペレーション320からオペレーション312に戻り、ルール206が再びデータ110に適用される。そのようなものとして、方法300のオペレーション312〜320は、オペレーション318の繰り返しにおいて、コンピューティングデバイス102が、出力112を生成するために使用されるデータまたは関係が修正されるべきでないと判定するまで、繰り返すことができることは理解され得る。コンピューティングデバイス102が、出力112を生成するために使用されるデータまたは関係が修正されるべきでないと判定した場合、方法300はオペレーション322に進む。方法300はオペレーション322で終了する。
[0093] 次に図4を参照し、ワールド210を選ぶ追加の態様について、詳細に説明することにする。特に、図4は、いくつかの例示的な実施形態により、バリエーションをデータ110に導入するためにワールド210を順位付けし、選択するための方法400の態様を示している。図4に例示されている方法400は、必ずというわけではないが、図3に例示されている方法300のオペレーション308においてコンピューティングデバイス102よって実行され得ることは理解されるであろう。そのようなものとして、例示されている実施形態は、例示的なものであると理解されるべきであり、またいかなる形でも制限するものとして解釈されるべきでない。
[0094] 方法400はオペレーション402から始まり、そこでコンピューティングデバイス102がデータ110に対する可能なワールドを識別する。上で述べているように、コンピューティングデバイス102は、データ110の形状、例えば、データ110の全体的な雰囲気もしくは調子、プレゼンテーションまたはドキュメントなどのデータ110の長さ、データ110のテキスト対画像比、データ110に含まれる多数の画像または他の媒体オブジェクト、データ110内のテキスト文字、単語、文、段落、または同様のものの総数、例えば、高解像度画像、低解像度画像、顔を含む画像、または同様のものなどの、データ110に含まれる画像のタイプ、出力112の予想される対象閲覧者、出力112を表示するための予想される場所、出力112を表示するために使用されると予想される表示デバイスなどの予想される表示媒体、出力112が表示され得る配置、データ110内の、および/またはデータ要素212間の階層、出力112を表示するか、または出力112をインタラクティブに操作するときに使用され得る入力メカニズム、テキスト、画像、または同様のものなどの視覚的オブジェクトまたは他のデータ要素212の相対的サイズ、および/またはデータ110の他の態様などを調べるように構成され得る。そこで、コンピューティングデバイス102は、データ110を分析して、コンピューティングデバイス102によって取得されるデータ110のタイプを記述する属性のリストをコンパイルすることができる。
[0095] 少なくとも部分的に、データ110の形状に基づき、コンピューティングデバイス102は、データ110を表すために使用することができるワールド210を決定することができる。いくつかの実施形態では、コンピューティングデバイス102は、コンピューティングデバイス102によって、分析されるデータ110のタイプにはよくない、または適切でないと判定されたワールド210を除外することができる。例えば、データ110が、テキストの大きなブロックおよび少数の低解像度画像を含む場合、テキストがほとんどない複数の高解像度画像を提示するようにデザインされたワールド210は、コンピューティングデバイス102によって、データ110を表現するのによくない選択であると判定され得る。可能なワールド210を決定するために閾値を定義することができる。例えば、コンピューティングデバイス102は、定義済みの閾値と比べて適切でないと判定されたワールド210を無視するか、または除外するように構成され得る。閾値は、テキスト対画像の比、テキストの文字数対テキストのスペースの比、他の比、比に関係しない他の考慮事項、および/または同様のものに基づき妥当性に対して適用され得る。そのようなものとして、オペレーション402でコンパイルされた可能なワールド210のリストは、ワールド210をゼロ個、ワールド210を1個、および/またはワールド210を複数個含むものとしてよい。
[0096] 方法400は、オペレーション402からオペレーション404へ進み、そこでコンピューティングデバイス102が可能なワールド210を順位付けする。いくつかの実施形態では、コンピューティングデバイス102は、ワールド210をデータ110に関係付ける妥当性レベルまたは係数を決定することができる。この妥当性係数は、データ110の決定された形状、および1つまたは複数のルールに基づき決定された形状に対してワールド210がどのように適切であるかないかということに基づくものとすることができる。可能なワールド210のそれぞれのさまざまな態様は、データ110および/または識別された関係に基づき決定され、それぞれのワールド210は、順位付けされ得る。
[0097] 例えば、特定のワールド210は、2:1以上のテキスト対画像比を有し、1つの文の平均的な長さが15語以下である、データ110に対して適切であると判定され得る。データ110が1.8:1のテキスト対画像比を有し、1つの文の平均的な長さが18語である場合、ワールド210が決定され得る。その一方で、1.5:1以上の画像比を有し、1つの文の平均的な長さが20語以下である、データ110に対して適切であると判定された別のワールド210は、上で説明されている第1の例のワールド210よりも高い順位を付けられるものとしてよい。データの形状の他の多くの態様は、ワールド210を重み付けおよび/または順位付けする際に考慮することができるので、この例は、例示的なものであると理解されるべきであり、またいかなる形でも制限するものとして解釈されるべきでない。
[0098] 方法400は、オペレーション404からオペレーション406に進み、そこでコンピューティングデバイス102は、順位付けに基づきワールド210を選択することができる。いくつかの実施形態では、最高順位のワールド210が選ばれ得る。いくつかの実施形態では、複数のワールド210が同一のまたは実質的に類似する順位を付けられた場合、ユーザーは、ワールド210を選択することができ、ワールド210は、同じまたは類似する順位を有するワールド210から無作為に選ばれ得るか、または他の考慮事項により、最高順位のワールド210の選択を促すことができる。
[0099] 方法400は、オペレーション406からオペレーション408へ進み、コンピューティングデバイス102は、選択されたワールド210および/またはコンピューティングデバイス102によって選択されたワールド210を示すデータを出力する。そのようなものとして、コンピューティングデバイス102は、データ110を出力112に変換するためにどのようなワールド210が使用されるべきであるかを示すデータを生成することができる。
[00100] 方法400は、オペレーション408からオペレーション410に進む。方法はオペレーション410で終了することができる。いくつかの実施形態では、図4を参照しつつ本明細書で説明されている機能性が、方法300のオペレーション308に関連してコンピューティングデバイス102によって実行される場合、コンピューティングデバイス102は、方法400を実行した後にオペレーション310で方法300の実行を再開することができる。方法400は、方法300の実行に関連していてもいなくてもよいので、この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[00101] 図5は、いくつかの例示的な実施形態により、バリエーションをデータ110に導入するためにワールド210を変更するための方法400の態様を示している。方法400の例示されている実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。方法500はオペレーション502から始まり、そこでコンピューティングデバイス102は、新規コンテンツが検出されたかどうかを判定する。特に、コンピューティングデバイス102は、データ110の新規バージョンがリリースされたか、検出されたか、または受信されたかどうか、新規データ要素212がリリースされたか、検出されたか、または受信されたかどうか、および/または新規データ110および/または新規データ要素212を示す通知が受信されたか、もしくは検出されたかどうかを判定することができる。
[00102] いくつかの実施形態では、データ110は、RSSフィード、ウェブログ、記事、ソーシャルネットワーキング投稿、ウェブサイト、または同様のもののコメントセクション、TWITTERリアルタイムメッセージングサービスによって提供されるメッセージングフィードなどのリアルタイムメッセージフィード、写真アルバムもしくは写真フィード、または時間の経過とともに変化し得る他のデータ110を含むか、または対応し得る。そのようなものとして、コンピューティングデバイス102は、フィードにサブスクライブして、更新を取得もしくは検出することができるか、またはデータが変更されたことを示す通知を他のデバイスから受信することができる。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[00103] コンピューティングデバイス102が、データ110が変更されていないと判定した場合、方法500はオペレーション502に戻ることができ、そこでコンピューティングデバイス102が再びデータ110が変更されたかどうかを判定することができる。したがって、方法500の実行は、データ更新が検出されるまでオペレーション502で一時停止することができる。コンピューティングデバイス102が、オペレーション502の繰り返しにおいて、データ110が変更されたと判定した場合、方法500はオペレーション504に進む。
[00104] オペレーション504において、コンピューティングデバイス102は、ワールド210が変更されるべきかどうかを決定することができる。いくつかの実施形態では、オペレーション502の機能性は省略され、方法500は、オペレーション504に関して本明細書で説明されている機能性から始めることができる。そのようなものとして、いくつかの実施形態では、ワールド210が変更されるべきであるという指示は、データ110を表すために使用されるワールド210を変更するユーザーもしくは他のエンティティからの明示的コマンドから発せられ得ることは理解されるであろう。
[00105] 他のいくつかの実施形態では、コンピューティングデバイス102は、データ110への変更を検出した後、ワールド210を調べて、データ110になされた変更が選ばれたワールド210が変更されるべきであることを示すかどうかを判定することができる。ワールド210が変更されるべきであるという決定は、例えば、特定のワールド210により表され得る要素の最大数、データタイプの変更、更新頻度の変更、または同様のものの指示などの任意の数の考慮事項に基づき行うことができる。ワールド210が変更されるべきかどうかを判定するための他のアプローチも企図されており、可能であるので、そのような判定を行うためのこれらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[00106] コンピューティングデバイス102が、オペレーション504において、ワールド210が変更されないと判定した場合、方法500はオペレーション502に戻ることができ、そこでコンピューティングデバイス102が再びデータ110が変更されたかどうかを判定することができる。図5には明示的に示されていないけれども、ルール206が再評価され、および/またはワールド510は、データ110の変更を受け入れるように変更され得る。したがって、方法500の実行で、オペレーション504の繰り返しにおいて、ワールド210が変更されるべきとコンピューティングデバイス102が決定するまでオペレーション502〜504を繰り返し得る。コンピューティングデバイス102が、オペレーション504の繰り返しにおいて、ワールド210が変更されるべきと決定した場合、方法500はオペレーション506に進む。
[00107] オペレーション506において、コンピューティングデバイス102は、データ110を提示するための可能なワールド210を順位付けすることができる。したがって、図5には図示されていないが、コンピューティングデバイス102は、ここでもまた、可能なすべてのワールド210を識別し、新規または更新データ110に基づき可能なワールド210を順位付けすることができる。可能なワールド210を順位付けするためのコンピューティングデバイスの機能性は、必ずというわけではないが、図4に示されているように可能なワールド210の順位付けに類似しているか、または同一ですらあり得ることは理解されるであろう。
[00108] 方法500は、オペレーション506からオペレーション508へ進み、そこでコンピューティングデバイス102は、順位付けに基づきワールド210を選択する。方法500は、オペレーション508からオペレーション510に進み、そこで、コンピューティングデバイス102が選択されたワールド210を出力する。オペレーション508〜510に示されているようにワールド210を選択し、選択されたワールド210を出力するためのコンピューティングデバイスの機能性は、必ずというわけではないが、図4のオペレーション406〜408を参照しつつ図示され上で説明されているようにワールド210の順位付けおよび選択に類似しているか、または同一ですらあり得ることは理解されるであろう。方法500は、オペレーション510からオペレーション512に進む。方法はオペレーション512で終了することができる。
[00109] 上で述べたように、ただし図5には明示的に示されていないが、ワールド210は、フィードバック214に基づき変更され得る。したがって、例えば、ユーザーの好き嫌いを使用して、データ110を表すために新規ワールド210が選択されるべきであると決定することができる。それに加えて、または代替的に、ユーザーは、データ110を新規ワールド210内に明示的にロードすべきであると指定することができる。したがって、コンピューティングデバイス102は、複数のワールド210内にロードされるデータ110の表現を提示するように構成され、ユーザーまたは他のエンティティは、これらの表現に基づき所望のワールド210を選択することができる。フィードバック214および/または他の入力に基づきワールドを変更するための他の方法が企図され、可能であるので、入力のこれらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[00110] 図6は、データを消費型コンテンツに変換するときにバリエーションを生じさせるために本明細書で説明されているソフトウェアコンポーネントを実行することができるデバイスに対する例示的なコンピュータアーキテクチャ600を示している。したがって、図6に例示されているコンピュータアーキテクチャ600は、サーバーコンピュータ、携帯電話、PDA、スマートフォン、デスクトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、および/またはラップトップコンピュータに対するアーキテクチャを示している。コンピュータアーキテクチャ600は、本明細書で提示されているソフトウェアコンポーネントの任意の態様を実行するために利用され得る。
[00111] 図6に例示されているコンピュータアーキテクチャ600は、中央演算処理装置602(「CPU」)、ランダムアクセスメモリ606(「RAM」)およびリードオンリーメモリ(「ROM」)608を含むシステムメモリ604、およびメモリ604をCPU602に結合するシステムバス610を備える。起動時などにコンピュータアーキテクチャ600内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システムは、ROM608に格納される。コンピュータアーキテクチャ600は、オペレーティングシステム106および限定はしないが変換エンジン108を含む1つまたは複数のアプリケーションプログラムを格納するための大容量記憶装置デバイス612をさらに備える。図6には図示されていないが、大容量記憶装置デバイス612も、データ110、出力112、ルール206、ワールド210、データ要素212、フィードバック214、および/または本明細書で説明されている他のアプリケーション、モジュール、または他の情報を格納するように構成され得る。
[00112] 大容量記憶装置デバイス612は、バス610に接続されている大容量記憶装置コントローラ(図示せず)を通じてCPU602に接続されている。大容量記憶装置デバイス612およびその関連するコンピュータ可読媒体は、コンピュータアーキテクチャ600用の不揮発性記憶域を提供する。本明細書に記載されているコンピュータ可読媒体の説明では、ハードディスクまたはCD−ROMドライブなどの大容量記憶装置デバイスに言及しているが、当業者であれば、コンピュータ可読媒体は、コンピュータアーキテクチャ600によってアクセス可能な利用可能なコンピュータ記憶媒体または通信媒体とすることができることは理解されるであろう。
[00113] 通信媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、または搬送波もしくは他のトランスポートメカニズムなどの変調データ信号による他のデータを含み、任意の配信媒体を含む。「変調データ信号」という用語は、信号内に情報を符号化するような方法で特性のうちの1つまたは複数が変更または設定された信号を意味する。例えば、限定はしないが、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、および、音響、RF、赤外線、およびその他のワイヤレス媒体などのワイヤレス媒体がある。上記のいずれの組合せもコンピュータ可読媒体の範囲に収まらなければならない。
[00114] 例えば、限定はしないが、コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納するための方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含むものとしてよい。例えば、コンピュータ媒体として、限定はしないが、RAM、ROM、EPROM、EEPROM、フラッシュメモリまたは他の半導体メモリ技術、CD−ROM、デジタル多用途ディスク(「DVD」)、HD−DVD、BLU−RAY、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置デバイス、または所望の情報を格納するために使用することができ、しかもコンピュータアーキテクチャ600によってアクセス可能な他の媒体が挙げられる。請求項の目的に関して、「コンピュータ記憶媒体」という語句およびその変形は、波、信号、および/または他の一時的および/または無形の通信媒体を、本質的に、含まない。
[00115] さまざまな実施形態により、コンピュータアーキテクチャ600は、ネットワーク104などの、ネットワークを通じてリモートコンピュータへの論理的接続を使用しネットワーク接続環境において動作し得る。コンピュータアーキテクチャ600は、バス610に接続されているネットワークインターフェースユニット614を通じてネットワーク104に接続することができる。ネットワークインターフェースユニット614は、他の種類のネットワークおよびリモートコンピュータシステム、例えば、データソース114に接続するために使用することもできることは理解されるであろう。コンピュータアーキテクチャ600は、キーボード、マウス、または電子スタイラス(図6には図示せず)を含む、多数の他のデバイスから入力を受け取り、処理するための入出力コントローラ616を備えることもできる。同様に、入出力コントローラ616は、ディスプレイ画面、プリンタ、または他の種類の出力デバイス(これも図6には図示せず)への出力を行うことができる。
[00116] 本明細書で説明されているソフトウェアコンポーネントは、CPU602にロードされ実行されたときに、CPU602およびコンピュータアーキテクチャ600全体を汎用コンピューティングシステムから本明細書に提示されている機能性を円滑にするようにカスタマイズされた専用コンピューティングシステムに変換することができることは理解されるであろう。CPU602は、任意の数の状態を個別に、またはまとめて取り得る、任意の数のトランジスタまたは他の離散回路要素から製作することができる。より具体的には、CPU602は、本明細書で開示されているソフトウェアモジュールに収められている実行可能命令に応答して、有限状態機械として動作し得る。これらのコンピュータ実行可能命令は、状態間でCPU602がどのように遷移するかを指定し、これにより、CPU602を構成するトランジスタまたは他の離散ハードウェア要素を変換することによって、CPU602を変換することができる。
[00117] 本明細書で提示されているソフトウェアモジュールを符号化することでも、本明細書で提示されているコンピュータ可読媒体の物理的構造を変化することができる。物理的構造の特定の変換は、この説明の異なる実装におけるさまざまな要因に依存し得る。このような要因のいくつかの例として、限定はしないが、コンピュータ可読媒体を実装するために使用される技術、コンピュータ可読媒体が一次または二次記憶装置として特徴付けられるかどうか、および同様の要因が挙げられる。例えば、コンピュータ可読媒体が、半導体ベースのメモリとして実装される場合、本明細書で開示されているソフトウェアは、半導体メモリの物理的状態を変換することによってコンピュータ可読媒体上に符号化され得る。例えば、ソフトウェアは、トランジスタ、コンデンサ、または半導体メモリを構成する他の離散回路要素の状態を変換することができる。ソフトウェアは、データを格納するためにそのようなコンポーネントの物理的状態を変換することもできる。
[00118] 別の例として、本明細書で開示されているコンピュータ可読媒体は、磁気または光技術を使用して実装され得る。このような実装では、本明細書で提示されているソフトウェアは、ソフトウェアが中に符号化されたときに、磁気または光媒体の物理的状態を変換することができる。これらの変換は、所定の磁気媒体内の特定の配置の磁気特性を変えることを含み得る。これらの変換は、所定の光媒体内の特定の配置の物理的特徴または特性を変えて、それらの配置の光学特性を変化させることも含み得る。本発明の説明の範囲および精神から逸脱することなく、物理的媒体の他の変換が可能であり、前記の例はこの説明をわかりやすくするためにのみ用意されている。
[00119] 上記に照らして、本明細書で提示されているソフトウェアコンポーネントを格納し、実行するために多くのタイプの物理的変換がコンピュータアーキテクチャ600内で行われることは理解されるであろう。また、コンピュータアーキテクチャ600は、ハンドヘルドコンピュータ、埋込式コンピュータシステム、携帯情報端末、および当業者に知られている他のタイプのコンピューティングデバイスを含む、他のタイプのコンピューティングデバイスを含み得ることも理解されるであろう。また、コンピュータアーキテクチャ600は、図6に示されているコンポーネントのすべてを含み得ないか、または図6に明示的に示されていない他のコンポーネントを含み得るか、または図6に示されているものと完全に異なるアーキテクチャを使用し得ることも企図されている。
[00120] 図7は、データを消費型コンテンツに変換するときにバリエーションを生じさせるために本明細書で説明されているソフトウェアコンポーネントを実行することができる例示的な分散コンピューティング環境700を示している。そこで、図7に示されている分散コンピューティング環境700は、コンピューティングデバイス102に関して本明細書で説明されている機能性を実現するために使用することができる。したがって、分散コンピューティング環境700は、本明細書で提示されているソフトウェアコンポーネントの任意の態様を実行するために利用され得る。
[00121] さまざまな実装により、分散コンピューティング環境700は、ネットワーク704上で、ネットワーク704と通信して、またはネットワーク704の一部として動作するコンピューティング環境702を含む。ネットワーク704は、さまざまなアクセスネットワークも含み得る。さまざまな実装によれば、ネットワーク704の機能性は、図1および6に例示されているネットワーク104によって実現される。1つまたは複数のクライアントデバイス706A〜706N(これ以降、まとめておよび/または総称的に「クライアント706」と称される)は、ネットワーク704および/または他の接続(図7に図示せず)を介してコンピューティング環境702と通信することができる。例示されている実施形態では、クライアント706は、ラップトップコンピュータ、デスクトップコンピュータ、または他のコンピューティングデバイスなどのコンピューティングデバイス706A、スレートまたはタブレットコンピューティングデバイス(「タブレットコンピューティングデバイス」)706B、携帯電話、スマートフォン、または他のモバイルコンピューティングデバイスなどのモバイルコンピューティングデバイス706C、サーバーコンピュータ706D、および/または他のデバイス706Nを備えることができる。任意の数のクライアント706が、コンピューティング環境702と通信することができることは理解されるであろう。クライアント706に対する2つの例示的なコンピューティングアーキテクチャは、図6および6を参照しつつ本明細書で例示され説明されている。例示されているクライアント706および本明細書で例示され説明されているコンピューティングアーキテクチャは、例示的なものであり、いかなる形でも制限されるものとして解釈されるべきでないことは理解されるであろう。
[00122] 例示されている実施形態において、コンピューティング環境702は、アプリケーションサーバー708、データ記憶装置710、および1つまたは複数のネットワークインターフェース712を備える。さまざまな実装により、アプリケーションサーバー708の機能性は、ネットワーク704の一部として、またはネットワーク704と通信して実行している1つまたは複数のサーバーコンピュータによって実現され得る。アプリケーションサーバー708は、さまざまなサービス、仮想マシン、ポータル、および/または他のリソースをホストすることができる。例示されている実施形態では、アプリケーションサーバー708は、アプリケーションまたは他の機能性をホストするために1つまたは複数の仮想マシン714をホストする。さまざまな実装により、仮想マシン714は、データを消費型コンテンツに変換するときにバリエーションを生じさせるために本明細書で説明されている機能性を実現する1つまたは複数のアプリケーションおよび/またはソフトウェアモジュールをホストする。この実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。アプリケーションサーバー708は、1つまたは複数のウェブポータル、リンクページ、ウェブサイト、および/または他の情報(「ウェブポータル」)716をホストすること、またはそれらへのアクセスを提供することも行う。
[00123] さまざまな実装により、アプリケーションサーバー708は、1つまたは複数のメールボックスサービス718および1つまたは複数のメッセージングサービス720も備える。メールボックスサービス718は、電子メール(「email」)サービスを含み得る。メールボックスサービス718は、限定はしないが、カレンダーサービス、連絡先管理サービス、コラボレーションサービス、および/または他のサービスを含むさまざまな個人情報管理(「PIM」)サービスも含み得る。メッセージングサービス720は、限定はしないが、インスタントメッセージングサービス、チャットサービス、フォーラムサービス、および/または他の通信サービスを含み得る。
[00124] アプリケーションサーバー708も、1つまたは複数のソーシャルネットワーキングサービス722を備え得る。ソーシャルネットワーキングサービス722は、限定はしないが、ステータス更新、インスタントメッセージ、リンク、写真、ビデオ、および/または他の情報を共有または投稿するためのサービス、記事、製品、ブログ、または他のリソースへの関心をコメントするか、または表示するためのサービス、および/または他のサービスを含むさまざまなソーシャルネットワーキングサービスを含み得る。いくつかの実施形態では、ソーシャルネットワーキングサービス722は、FACEBOOKソーシャルネットワーキングサービス、LINKEDINプロフェッショナルネットワーキングサービス、MYSPACEソーシャルネットワーキングサービス、FOURSQUARE位置情報ネットワーキングサービス、YAMMER職場同僚ネットワーキングサービス、および同様のサービスによって提供されるか、またはこれらを含む。他の実施形態では、ソーシャルネットワーキングサービス722は、ソーシャルネットワーキングプロバイダとして明示的に知られ得る、または知られない他のサービス、サイト、および/またはプロバイダによって提供される。例えば、いくつかのウェブサイトでは、ユーザーは、公開記事を読むこと、商品もしくはサービスにコメントを付けること、出版、共同制作、ゲームをすること、および同様の活動などのさまざまな活動および/またはコンテキストにおいて電子メール、チャットサービス、および/または他の手段を介して互いに情報をやり取りすることができる。このようなサービスの例としては、限定はしないが、Microsoft Corporation社(ワシントン州レドモンド所在)のWINDOWS LIVEサービスおよびXBOX LIVEサービスが挙げられる。他のサービスも可能であり、企図される。
[00125] ソーシャルネットワーキングサービス722は、コメントサービス、ブログサービス、および/またはマイクロブログサービスも含み得る。このようなサービスの例として、限定はしないが、YELPコメントサービス、KUDZUレビューサービス、OFFICETALK企業向けマイクロブログサービス、TWITTERメッセージングサービス、GOOGLE BUZZサービス、および/または他のサービスが挙げられる。サービスの上記のリストは網羅的でなく、多数のソーシャルネットワークキングサービス722がこれらに加えて、および/または代替的に存在するが簡単のため本明細書では言及されていないことは理解されるであろう。そのようなものとして、上記の実施形態は、例示的なものであり、いかなる形でも制限されるものとして解釈されるべきでない。
[00126] 図7に示されているように、アプリケーションサーバー708は、他のサービス、アプリケーション、ポータル、および/または他のリソース(「他のリソース」)724をホストすることもできる。したがって、コンピューティング環境702は、データを消費型コンテンツに変換するときにバリエーションを生じさせるために本明細書に載せられている本明細書で開示されているコンセプトおよび技術とさまざまなメールボックス、メッセージング、ソーシャルネットワーキング、および/または他のサービスもしくはリソースとの統合を行うことができることは理解され得る。例えば、本明細書で開示されているコンセプトおよび技術は、ソーシャルネットワーキングデータまたはメールボックスデータをユーザー向けに視覚的コンテンツに変換するために使用され得る。同様に、本明細書で開示されているコンセプトおよび技術は、メッセージングまたは他のリソースを視覚的コンテンツに変換するために使用され得る。これらの実施形態は、例示的なものであり、いかなる形でも制限するものとして解釈されるべきでないことは理解されるであろう。
[00127] 上で述べているように、コンピューティング環境702は、データ記憶装置710を備えることができる。さまざまな実装により、データ記憶装置710の機能性は、ネットワーク704上で、またはネットワーク704と通信して動作する1つまたは複数のデータベースによって実現される。データ記憶装置710の機能性は、コンピューティング環境702用のデータをホストするように構成された1つまたは複数のサーバーコンピュータによっても実現され得る。データ記憶装置710は、1つまたは複数の実もしくは仮想データストア726A〜726N(これ以降まとめて、および/または総称的に「データストア726」と称される)を備えるか、ホストするか、または提供することができる。データストア726は、アプリケーションサーバー708および/または他のデータによって使用されるかまたは生じるデータをホストするように構成される。図7には図示されていないが、データストア726は、データ110、出力112、ルール206、ワールド210、データ要素212、フィードバック214、および/または本明細書で説明されている他のデータ、コンピュータ実行可能命令、もしくは他の情報をホストするか、または格納することもできる。
[00128] コンピューティング環境702は、ネットワークインターフェース712と通信するか、またはネットワークインターフェース712によってアクセスされ得る。ネットワークインターフェース712は、限定はしないが、クライアント706およびアプリケーションサーバー708を含む、2つまたはそれ以上のコンピューティングデバイスの間の通信をサポートするためさまざまなタイプのネットワークハードウェアおよびソフトウェアを備えることができる。ネットワークインターフェース712は、他のタイプのネットワークおよび/またはコンピュータシステムに接続するためにも利用され得ることは理解されるであろう。
[00129] 本明細書で説明されている分散コンピューティング環境700は、本明細書で開示されているソフトウェアコンポーネントの態様を実行するように構成され得る多数の仮想コンピューティングリソースおよび/または他の分散コンピューティング機能性を用いて本明細書で説明されているソフトウェア要素の態様を実現することができることは理解されるであろう。本明細書で開示されているコンセプトおよび技術のさまざまな実装により、分散コンピューティング環境700は、クライアント706へのサービスとして本明細書で説明されているソフトウェア機能性を提供する。クライアント706は、限定はしないが、サーバーコンピュータ、ウェブサーバー、パーソナルコンピュータ、モバイルコンピューティングデバイス、スマートフォン、および/または他のデバイスを含む実または仮想マシンを含み得ることは理解されるであろう。そのようなものとして、本明細書で開示されているコンセプトおよび技術のさまざまな実施形態を用いると、分散コンピューティング環境700にアクセスするように構成されたデバイスは、データを消費型コンテンツに変換するときに本明細書で説明されている機能性を利用してバリエーションを生じさせることができる。
[00130] 次に図8を参照すると、データを消費型コンテンツに変換するときにバリエーションを生じさせるために本明細書で説明されているさまざまなソフトウェアコンポーネントを実行することができるコンピューティングデバイスに対する例示的なコンピューティングデバイスアーキテクチャ800が示されている。コンピューティングデバイスアーキテクチャ800は、一部はフォームファクタ、ワイヤレス接続性、および/または電池式動作によりモバイルコンピューティングを円滑にするコンピューティングデバイスに適用可能である。いくつかの実施形態では、コンピューティングデバイスとしては、限定はしないが、携帯電話、タブレットデバイス、スレートデバイス、携帯型ビデオゲームデバイス、および同様のものが挙げられる。さらに、コンピューティングデバイスアーキテクチャ800は、図7に示されているクライアント806のうちのどれかに適用可能である。さらに、コンピューティングデバイスアーキテクチャ800の態様は、図8を参照しつつ本明細書で説明されているような、従来型のデスクトップコンピュータ、携帯型コンピュータ(例えば、ラップトップ、ノートブック、ウルトラポータブル、およびネットブック)、サーバーコンピュータ、および他のコンピュータシステムに適用可能であるものとしてよい。例えば、本明細書において以下で開示されているシングルタッチおよびマルチタッチの態様は、タッチスクリーンまたはタッチ対応トラックパッドもしくはタッチ対応マウスなどの、他の何らかのタッチ対応デバイスを利用するデスクトップコンピュータに適用することができる。
[00131] 図8に例示されているコンピューティングデバイスアーキテクチャ800は、プロセッサ802、メモリコンポーネント804、ネットワーク接続性コンポーネント806、センサーコンポーネント808、入出力コンポーネント810、および電源コンポーネント812を備える。例示されている実施形態では、プロセッサ802は、メモリコンポーネント804、ネットワーク接続性コンポーネント806、センサーコンポーネント808、入出力(「I/O」)コンポーネント810、および電源コンポーネント812と通信する。図8に例示されている個別のコンポーネントの間に接続は示されていないが、それらのコンポーネントは、デバイス機能を実行するためにインタラクティブに動作し得る。いくつかの実施形態では、コンポーネントは、1つまたは複数のバス(図示せず)を介して通信するように配置構成される。
[00132] プロセッサ802は、データを処理し、1つまたは複数のアプリケーションプログラムのコンピュータ実行可能命令を実行し、コンピューティングデバイスアーキテクチャ800の他のコンポーネントと通信して本明細書で説明されているさまざまな機能性を実行するように構成された中央演算処理装置(「CPU」)を備える。プロセッサ802を利用することで、本明細書で提示されているソフトウェアコンポーネントの態様、および特に、少なくとも一部はタッチ対応入力を利用する態様を実行することができる。
[00133] いくつかの実施形態では、プロセッサ802は、限定はしないが、汎用科学および工学コンピューティングアプリケーション、さらには高解像度ビデオ(例えば、720P、1080P、およびそれ以上の解像度)、ビデオゲーム、三次元(「3D」)モデリングアプリケーション、および同様のものなどのグラフィックスを多用するコンピューティングアプリケーションを実行することによって実行されるオペレーションを含む、CPUによって実行されるオペレーションのアクセラレーションを行うように構成されたグラフィックスプロセッシングユニット(「GPU」)を含む。いくつかの実施形態では、プロセッサ802は、別個のGPU(図示せず)と通信するように構成される。いずれの場合も、CPUおよびGPUは、コプロセッシングCPU/GPUコンピューティングモデルに従って構成されるものとしてよく、アプリケーションの逐次的部分は、CPU上で実行され、計算の多い部分は、GPUによるアクセラレーションが施される。
[00134] いくつかの実施形態では、プロセッサ802は、本明細書において以下で説明されている他のコンポーネントのうちの1つまたは複数を伴うシステムオンチップ(「SoC」)であるか、またはそれに含まれる。例えば、SoCは、プロセッサ802、GPU、ネットワーク接続性コンポーネント806のうちの1つまたは複数、およびセンサーコンポーネント808のうちの1つまたは複数を備えることができる。いくつかの実施形態では、プロセッサ802は、一部は、パッケージオンパッケージ(「PoP」)集積回路パッケージング技術を利用して、製造される。さらに、プロセッサ802は、シングルコアまたはマルチコアプロセッサであり得る。
[00135] プロセッサ802は、ARM HOLDINGS社(英国ケンブリッジ所在)のライセンスを得て利用可能なARMアーキテクチャに従って製作され得る。代替的に、プロセッサ802は、INTEL CORPORATION社(カリフォルニア州マウンテンビュー所在)および他の会社から入手できる、x86アーキテクチャに従って製作することができる。いくつかの実施形態では、プロセッサ802は、QUALCOMM社(カリフォルニア州サンディエゴ所在)から入手できるSNAPDRAGON SoC、NVIDIA社(カリフォルニア州サンタクララ所在)から入手できるTEGRA SoC、SAMSUNG(韓国ソウル所在)から入手できるHUMMINGBIRD SoC、TEXAS INSTRUMENTS(テキサス州ダラス所在)から入手できるOpen Multimedia Application Platform(「OMAP」)SoC、上記SoCのうちのどれかのカスタマイズされたバージョン、または専用SoCである。
[00136] メモリコンポーネント804としては、ランダムアクセスメモリ(「RAM」)814、リードオンリーメモリ(「ROM」)816、集積化記憶装置メモリ(「集積化記憶装置」)818、および取り外し可能な記憶装置メモリ(「取り外し可能な記憶装置」)820が挙げられる。いくつかの実施形態では、RAM814またはその一部、ROM816またはその一部、および/またはRAM814とROM816との何らかの組合せが、プロセッサ802内に集積化されている。いくつかの実施形態では、ROM816は、ファームウェア、オペレーティングシステムもしくはその一部(例えば、オペレーティングシステムのカーネル)、および/または集積化記憶装置818もしくは取り外し可能な記憶装置820からオペレーティングシステムのカーネルをロードするためのブートローダーを格納するように構成される。
[00137] 集積化記憶装置818は、ソリッドステートメモリ、ハードディスク、またはソリッドステートメモリとハードディスクとの組合せを含み得る。集積化記憶装置818は、ロジックボードにハンダ付けされるか、または他の何らかの方法で接続され、その上で本明細書で説明されているプロセッサ802および他のコンポーネントも接続され得る。そのようなものとして、集積化記憶装置818は、コンピューティングデバイス内に集積化される。集積化記憶装置818は、本明細書で説明されているオペレーティングシステムもしくはその一部、アプリケーションプログラム、データ、および他のソフトウェアコンポーネントを格納するように構成される。
[00138] 取り外し可能な記憶装置820は、ソリッドステートメモリ、ハードディスク、またはソリッドステートメモリとハードディスクとの組合せを含み得る。いくつかの実施形態では、取り外し可能な記憶装置820は、集積化記憶装置818の代わりに用意される。他の実施形態では、取り外し可能な記憶装置820は、追加のオプション記憶装置として用意される。いくつかの実施形態では、取り外し可能な記憶装置820は、利用可能な記憶域全体が利用できるように、また集積化記憶装置818および取り外し可能な記憶装置820の組合せの全記憶容量としてユーザーに見えるように集積化記憶装置818と論理的に組み合わされる。
[00139] 取り外し可能な記憶装置820は、取り外し可能な記憶装置メモリスロット(図示せず)または他のメカニズム内に挿入されるように構成され、これにより、取り外し可能な記憶装置820がプロセッサ802などの、コンピューティングデバイスの他のコンポーネントと通信する際に使用することができる接続が円滑になるように、取り外し可能な記憶装置820が挿入され、固定される。取り外し可能な記憶装置820は、限定はしないが、PCカード、コンパクトフラッシュカード、メモリスティック、セキュアデジタル(「SD」)、miniSD、microSD、Universal Integrated Circuit Card(「UICC」)(例えば、加入者識別モジュール(「SIM」)または汎用SIM(「USIM」))、専用フォーマット、または同様のものを含む、さまざまなメモリカードフォーマットで具現化され得る。
[00140] メモリコンポーネント804のうちの1つまたは複数がオペレーティングシステムを格納することができることは理解され得る。さまざまな実施形態により、オペレーティングシステムとして、限定はしないが、SYMBIAN LIMITED社のSYMBIAN OS、Microsoft Corporation社(ワシントン州レドモンド所在)のWINDOWS MOBILE OS、Microsoft Corporation社のWINDOWS PHONE OS、Microsoft Corporation社のWINDOWS、Hewlett−Packard Company社(カリフォルニア州パロアルト所在)のPALM WEBOS、Research In Motion Limited社(カナダ、オンタリオ州ワーテルロー所在)のBLACKBERRY OS、Apple Inc.社(カリフォルニア州クパチーノ所在)のIOS、およびGoogle Inc.社(カリフォルニア州マウンテンビュー所在)のANDROID OSが挙げられる。他のオペレーティングシステムも企図される。
[00141] ネットワーク接続性コンポーネント806は、ワイヤレスワイドエリアネットワークコンポーネント(「WWANコンポーネント」)822、ワイヤレスローカルエリアネットワークコンポーネント(「WLANコンポーネント」)824、およびワイヤレスパーソナルエリアネットワークコンポーネント(「WPANコンポーネント」)826を含む。ネットワーク接続性コンポーネント806は、ネットワーク828との間の通信を円滑にするものであり、これはWWAN、WLAN、またはWPANとすることができる。単一のネットワーク828が示されているが、ネットワーク接続性コンポーネント806は、複数のネットワークとの同時通信を円滑にすることができる。例えば、ネットワーク接続性コンポーネント806は、WWAN、WLAN、またはWPANのうちの1つまたは複数を介して複数のネットワークとの同時通信を円滑にすることができる。
[00142] いくつかの実施形態では、ネットワーク828の機能性は、ネットワーク104、704のうちの1つまたは複数によって実現される。いくつかの実施形態では、ネットワーク828は、ネットワーク104、704のうちの1つまたは複数を含む。他のいくつかの実施形態では、ネットワーク828は、ネットワーク104、704のうちの1つまたは複数へのアクセスを提供する。
[00143] ネットワーク828は、WWANコンポーネント822を介してコンピューティングデバイスアーキテクチャ800を利用し、1つまたは複数の移動体通信技術を利用して音声および/またはデータサービスをコンピューティングデバイスに提供する移動体通信ネットワークなどのWWANであってよい。移動体通信技術として、限定はしないが、Global System for Mobile Communications(「GSM」)、Code Division Multiple Access(「CDMA」)ONE、CDMA2000、Universal Mobile Telecommunications System(「UMTS」)、Long Term Evolution(「LTE」)、およびWorldwide Interoperability for Microwave Access(「WiMAX」)が挙げられる。さらに、ネットワーク828は、限定はしないが、時分割多元接続(「TDMA」)、周波数分割多元接続(「FDMA」)、CDMA、広帯域CDMA(「W−CDMA」)、直交周波数分割多元接続(「OFDMA」)、空間分割多元接続(「SDMA」)、および同様のものを含むさまざまなチャネルアクセス方法(前述の標準によって使用される場合も使用されない場合もある)を利用することができる。データ通信は、General Packet Radio Service(「GPRS」)、Enhanced Data rates for Global Evolution(「EDGE」)、高速ダウンリンクパケットアクセス(「HSDPA」)、Enhanced Uplink(「EUL」)、または他の名称の高速アップリンクパケットアクセス(「HSUPA」)を含む高速パケットアクセス(「HSPA」)プロトコルファミリ、発展型HSPA(「HSPA+」)、LTE、およびさまざまな他の現在および将来のワイヤレスデータアクセス標準を使用して実現され得る。ネットワーク828は、上述の技術の任意の組合せにより音声および/またはデータ通信を行うように構成され得る。ネットワーク828は、将来世代の技術に従って音声および/またはデータ通信を行うように構成または適合され得る。
[00144] いくつかの実施形態では、WWANコンポーネント822は、ネットワーク828へのデュアルマルチモードの接続性を提供するように構成される。例えば、WWANコンポーネント822は、ネットワーク828への接続性を提供するように構成されるものとしてよく、ネットワーク828は、GSMおよびUMTS技術を介して、または技術の他の何らかの組合せを介してサービスを提供する。あるいは、複数のWWANコンポーネント822を利用して、そのような機能性を実行することができ、および/または他の非互換技術(つまり、単一のWWANコンポーネントによってサポートすることができない)をサポートするために追加の機能性を提供することができる。WWANコンポーネント822は、複数のネットワーク(例えば、UMTSネットワークとLTEネットワーク)への類似の接続性を円滑にすることができる。
[00145] ネットワーク828は、IEEE 802.11a、802.11b、802.11g、802.11n、および/または将来の802.11(本明細書ではWI−FIと総称される)などの1つまたは複数の米国電気電子学会(「IEEE」)802.11標準に従って動作するWLANとすることができる。802.11ドラフト標準も企図される。いくつかの実施形態では、WLANは、1つまたは複数のワイヤレスWI−FIアクセスポイントを利用して実装される。いくつかの実施形態では、ワイヤレスWI−FIアクセスポイントのうちの1つまたは複数は、WI−FIホットスポットとして機能しているWWANへの接続性を有する別のコンピューティングデバイスである。WLANコンポーネント824は、WI−FIアクセスポイントを介してネットワーク828に接続するように構成される。そのような接続は、限定はしないが、WI−FI Protected Access(「WPA」)、WPA2、Wired Equivalent Privacy(「WEP」)、および同様のものを含むさまざまな暗号化技術を介して安全性が確保され得る。
[00146] ネットワーク828は、赤外線通信協会(「IrDA」)、BLUETOOTH、ワイヤレスユニバーサルシリアルバス(「USB」)、Z−Wave、ZIGBEE、または他の何らかの短距離ワイヤレス技術に従って動作するWPANであってもよい。いくつかの実施形態では、WPANコンポーネント826は、WPANを介して周辺機器、コンピュータ、または他のコンピューティングデバイスなどの他のデバイスと通信を円滑にするように構成される。
[00147] センサーコンポーネント808は、磁力計830、周辺光センサー832、近接センサー834、加速度計836、ジャイロスコープ838、および全世界測位システムセンサー(「GPSセンサー」)840を含む。限定はしないが、温度センサーまたは衝撃検出センサーなどの他のセンサーも、コンピューティングデバイスアーキテクチャ800に組み込まれ得ることも企図されている。
[00148] 磁力計830は、磁場の強さと方向を測定するように構成される。いくつかの実施形態では、磁力計830は、主要方向、北、南、東、および西を含む基準系内で正確な方向をユーザーに与えるためにメモリコンポーネント804のうちの1つの中に格納されているコンパスアプリケーションプログラムに測定結果を送る。類似の測定結果が、コンパスコンポーネントを含むナビゲーションアプリケーションプログラムに送られ得る。磁力計830によって取得された測定結果の他の用途も企図される。
[00149] 周辺光センサー832は、周辺光を測定するように構成される。いくつかの実施形態では、周辺光センサー832は、メモリコンポーネント804のうちの1つの中に格納されているアプリケーションプログラムに測定結果を送り、ディスプレイの輝度を自動的に調節し(以下で説明されている)、光の少ない環境および光の多い環境について補償する。周辺光センサー832によって取得された測定結果の他の用途も企図される。
[00150] 近接センサー834は、直接接触することなくコンピューティングデバイスに近接している物体または物の存在を検出するように構成される。いくつかの実施形態では、近接センサー834は、ユーザーの身体(例えば、ユーザーの顔)の存在を検出し、この情報をメモリコンポーネント804のうちの1つの中に格納されているアプリケーションプログラムに送り、この近接情報を利用してコンピューティングデバイスの一部の機能性を有効化または無効化することができる。例えば、電話アプリケーションプログラムは、ユーザーの顔でうっかり通話を切らないように、または通話中に電話アプリケーションプログラム内の他の機能性を有効化/無効化しないように近接情報を受信したことに応答してタッチスクリーン(後述)を自動的に無効化することができる。近接センサー834によって検出される近接性の他の用途も企図される。
[00151] 加速度計836は、適切な加速度を測定するように構成される。いくつかの実施形態では、加速度計836からの出力はアプリケーションプログラムによって入力メカニズムとして使用され、これによりアプリケーションプログラムの一部の機能性を制御する。例えば、アプリケーションプログラムは、加速度計836を介して受信された入力に応答してキャラクター、その一部、またはオブジェクトが移動されるか、または他の何らかの形で操作されるビデオゲームであってよい。いくつかの実施形態では、加速度計836からの出力はアプリケーションプログラムに送られて、ランドスケープモードとポートレートモードとの切り換え、座標加速度の計算、落下の検出に使用される。加速度計836の他の用途も企図される。
[00152] ジャイロスコープ838は、向きを測定し維持するように構成される。いくつかの実施形態では、ジャイロスコープ838からの出力はアプリケーションプログラムによって入力メカニズムとして使用され、これによりアプリケーションプログラムの一部の機能性を制御する。例えば、ジャイロスコープ838は、ビデオゲームアプリケーションまたは他の何らかのアプリケーションの3D環境内での移動の正確な認識のために使用され得る。いくつかの実施形態では、アプリケーションプログラムは、ジャイロスコープ838および加速度計836からの出力を使用して、アプリケーションプログラムの一部の機能性の制御を向上させる。ジャイロスコープ838の他の用途も企図される。
[00153] GPSセンサー840は、配置を計算する際に使用するためGPS衛星から信号を受信するように構成される。GPSセンサー840によって計算された配置は、位置情報を必要とするか、または活用する任意のアプリケーションプログラムによって使用され得る。例えば、GPSセンサー840によって計算された配置は、ナビゲーションアプリケーションプログラムとともに使用され、その配置から目的地までの方向、またはその目的地からその配置までの方向を提供することができる。さらに、GPSセンサー840は、E911サービスなどの、外部位置情報ベースサービスに位置情報を提供するために使用され得る。GPSセンサー840は、GPSセンサー840による位置修正の取得を補助するためにネットワーク接続性コンポーネント806のうちの1つまたは複数を利用してWI−FI、WIMAX、および/またはセルラー三角測量法を介して生成された位置情報を取得することができる。GPSセンサー840は、補助GPS(「AーGPS」)システムでも使用することができる。
[00154] I/Oコンポーネント810は、ディスプレイ842、タッチスクリーン844、データI/Oインターフェースコンポーネント(「データI/O」)846、オーディオI/Oインターフェースコンポーネント(「オーディオI/O」)848、ビデオI/Oインターフェースコンポーネント(「ビデオI/O」)850、およびカメラ852を備える。いくつかの実施形態では、ディスプレイ842およびタッチスクリーン844が組み合わされる。いくつかの実施形態では、データI/Oコンポーネント846、オーディオI/Oコンポーネント848、およびビデオI/Oコンポーネント850のうちの2つまたはそれ以上が組み合わされる。I/Oコンポーネント810は、以下で説明されているさまざまなインターフェースをサポートするように構成された個別のプロセッサを備えるか、またはプロセッサ802に内蔵された処理機能性を備えることができる。
[00155] ディスプレイ842は、情報を視覚的形態で提示するように構成された出力デバイスである。特に、ディスプレイ842は、グラフィカルユーザーインターフェース(「GUI」)要素、テキスト、画像、ビデオ、通知、仮想ボタン、仮想キーボード、メッセージングデータ、インターネットコンテンツ、デバイスステータス、時刻、日付、カレンダーデータ、選好、地図情報、位置情報、および視覚的形態で提示することができる他の情報を提示することができる。いくつかの実施形態では、ディスプレイ842は、任意のアクティブまたはパッシブマトリックス技術および任意の背面照明技術(使用される場合)を利用する液晶ディスプレイ(「LCD」)である。いくつかの実施形態では、ディスプレイ842は、有機発光ダイオード(「OLED」)ディスプレイである。他のディスプレイタイプも企図される。
[00156] タッチスクリーン844は、タッチの有無および配置を検出するように構成された入力デバイスである。タッチスクリーン844は、抵抗膜式タッチスクリーン、静電容量式タッチスクリーン、表面弾性波式タッチスクリーン、赤外線タッチスクリーン、光学イメージング式タッチスクリーン、分散信号タッチスクリーン、音響パルス認識タッチスクリーンであるか、または他のタッチスクリーン技術を利用することもできる。いくつかの実施形態では、タッチスクリーン844は、ディスプレイ842の上に透明層として組み込まれ、これにより、ユーザーは1回または複数回のタッチで、ディスプレイ842に提示されているオブジェクトまたは他の情報をインタラクティブに操作することができる。他の実施形態では、タッチスクリーン844は、ディスプレイ842を備えていないコンピューティングデバイスの表面に組み込まれたタッチパッドである。例えば、コンピューティングデバイスは、ディスプレイ842の上に組み込まれたタッチスクリーンおよびディスプレイ842の対向面上のタッチパッドを有することができる。
[00157] いくつかの実施形態では、タッチスクリーン844は、シングルタッチのタッチスクリーンである。他の実施形態では、タッチスクリーン844は、マルチタッチのタッチスクリーンである。いくつかの実施形態では、タッチスクリーン844は、個別のタッチ、シングルタッチジェスチャー、および/またはマルチタッチジェスチャーを検出するように構成される。これらは、本明細書では便宜上ジェスチャーと総称される。次にいくつかのジェスチャーについて説明する。これらのジェスチャーは、例示的であり、付属の請求項の範囲を制限することを意図していないことは理解されるであろう。さらに、説明されているジェスチャー、追加のジェスチャー、および/または代替的なジェスチャーは、タッチスクリーン844とともに使用するためにソフトウェアで実装され得る。そのようなものとして、開発者は、特定のアプリケーションプログラムに特有のジェスチャーを作成することもできる。
[00158] いくつかの実施形態では、タッチスクリーン844は、ディスプレイ842上に提示されているアイテムについてタッチスクリーン844をユーザーが1回タップするタップジェスチャーをサポートする。タップジェスチャーは、限定はしないが、ユーザーがタップするものであれば何でも開く、または起動することを含むさまざまな理由に対して使用され得る。いくつかの実施形態では、タッチスクリーン844は、ディスプレイ842上に提示されているアイテムについてタッチスクリーン844をユーザーが2回タップするダブルタップジェスチャーをサポートする。ダブルタップジェスチャーは、限定はしないが、段階的にズームインまたはズームアウトすることを含むさまざまな理由に対して使用され得る。いくつかの実施形態では、タッチスクリーン844は、ユーザーがタッチスクリーン844をタップし、少なくとも定義済みの時間の間接触を維持するタップアンドホールドジェスチャーをサポートする。タップアンドホールドジェスチャーは、限定はしないが、コンテキスト固有メニューを開くことを含むさまざまな理由に対して使用され得る。
[00159] いくつかの実施形態では、タッチスクリーン844は、ユーザーがタッチスクリーン844上に指を置いて、タッチスクリーン844上で指を動かしながらタッチスクリーン844との接触を維持するパンジェスチャーをサポートする。パンジェスチャーは、限定はしないが、画面、画像、またはメニュー内を制御された速度で進むことを含むさまざまな理由に対して使用され得る。複数の指パンジェスチャーも企図される。いくつかの実施形態では、タッチスクリーン844は、ユーザーが画面を移動したい方向へユーザーが指をスワイプするフリックジェスチャーをサポートする。フリックジェスチャーは、限定はしないが、メニューまたはページを水平方向にまたは垂直方向にスクロールすることを含むさまざまな理由に対して使用され得る。いくつかの実施形態では、タッチスクリーン844は、ユーザーがタッチスクリーン844上で2本の指(例えば、親指と人差し指)によりつまむ動作をするか、または2本の指を離すピンチアンドストレッチジェスチャーをサポートする。ピンチアンドストレッチジェスチャーは、限定はしないが、ウェブサイト、地図、または画像を徐々にズームインまたはズームアウトすることを含むさまざまな理由に対して使用され得る。
[00160] 上記のジェスチャーは、ジェスチャーを実行するために1つまたは複数の指を使用することに関して説明されてきたが、つま先などの他の付属肢またはスタイラスなどの物体を使用して、タッチスクリーン844をインタラクティブに操作することができる。そのようなものとして、上記のジェスチャーは、例示的なものであると理解されるべきであり、またいかなる形でも制限するものとして解釈されるべきでない。
[00161] データI/Oインターフェースコンポーネント846は、コンピューティングデバイスへのデータの入力およびコンピューティングデバイスからのデータの出力を円滑にするように構成される。いくつかの実施形態では、データI/Oインターフェースコンポーネント846は、コンピューティングデバイスとコンピュータシステムとの間の有線接続性を、例えば、同期動作を目的として提供するように構成されたコネクタを備える。コネクタは、専用コネクタ、またはUSB、micro−USB、mini−USB、もしくは同様のものなどの標準化されたコネクタとすることができる。いくつかの実施形態では、コネクタは、ドッキングステーション、オーディオデバイス(例えば、デジタルミュージックプレーヤー)、またはビデオデバイスなどの別のデバイスとコンピューティングデバイスとをドッキングするためのドックコネクタである。
[00162] オーディオI/Oインターフェースコンポーネント848は、コンピューティングデバイスにオーディオ入力および/または出力機能を持たせるように構成される。いくつかの実施形態では、オーディオI/Oインターフェースコンポーネント846は、オーディオ信号を収集するように構成されたマイクロフォンを備える。いくつかの実施形態では、オーディオI/Oインターフェースコンポーネント846は、ヘッドホンまたは他の外部スピーカーの接続性を提供するように構成されたヘッドホンジャックを備える。いくつかの実施形態では、オーディオインターフェースコンポーネント848は、オーディオ信号の出力用のスピーカーを備える。いくつかの実施形態では、オーディオI/Oインターフェースコンポーネント846は、光学オーディオケーブル出力を備える。
[00163] ビデオI/Oインターフェースコンポーネント850は、コンピューティングデバイスにビデオ入力および/または出力機能を持たせるように構成される。いくつかの実施形態では、ビデオI/Oインターフェースコンポーネント850は、ビデオを別のデバイス(例えば、DVDもしくはBLURAYプレーヤーなどのビデオメディアプレーヤー)からの入力として受信し、またはビデオを別のデバイス(例えば、モニタ−、テレビ、または他の何らかの外部ディスプレイ)への出力として送信するように構成されたビデオコネクタを備える。いくつかの実施形態では、ビデオI/Oインターフェースコンポーネント850は、ビデオコンテンツの入出力のために高精細度マルチメディアインターフェース(「HDMI」)、mini−HDMI、micro−HDMI、DisplayPort、または専用コネクタを備える。いくつかの実施形態では、ビデオI/Oインターフェースコンポーネント850またはその一部は、オーディオI/Oインターフェースコンポーネント848またはその一部と組み合わされる。
[00164] カメラ852は、静止画像および/またはビデオをキャプチャするように構成され得る。カメラ852は、電荷結合素子(「CCD」)または相補型金属酸膜半導体(「CMOS」)イメージセンサーを利用して画像をキャプチャすることができる。いくつかの実施形態では、カメラ852は、光の少ない環境で撮像するのを補助するためにフラッシュを備える。カメラ852の設定は、ハードウェアまたはソフトウェアボタンとして実装され得る。
[00165] 図示されていないが、1つまたは複数のハードウェアボタンを、コンピューティングデバイスアーキテクチャ800に備えることもできる。ハードウェアボタンは、コンピューティングデバイスの一部の動作態様を制御するために使用され得る。ハードウェアボタンは、専用ボタンまたは多用途ボタンとすることができる。ハードウェアボタンは、機械的またはセンサーベースとすることができる。
[00166] 例示されている電源コンポーネント812は、バッテリ残量計856に接続することができる、1つまたは複数のバッテリ854を備える。バッテリ854は、再充電可能または使い捨てタイプとすることができる。充電可能バッテリタイプとして、限定はしないが、リチウムポリマー、リチウムイオン、ニッケルカドミウム、およびニッケル金属水素バッテリが挙げられる。バッテリ854のそれぞれは、1つまたは複数の電池で構成され得る。
[00167] バッテリ残量計856は、電流、電圧、および温度などのバッテリパラメータを測定するように構成され得る。いくつかの実施形態では、バッテリ残量計856は、バッテリの放電速度、温度、経年劣化、および他の要因の影響を測定して、ある誤差率の範囲内で残量を予測するように構成される。いくつかの実施形態では、バッテリ残量計856は、測定結果を利用して有用な電力管理データをユーザーに提示するように構成されたアプリケーションプログラムに測定値を送る。電力管理データは、バッテリ使用量のパーセンテージ、バッテリ残量のパーセンテージ、バッテリ状態、残存時間、残存容量(例えば、ワット時)、電流引き込み、および電圧のうちの1つまたは複数を含み得る。
[00168] 電源コンポーネント812は、前述のI/Oコンポーネント810のうちの1つまたは複数と組み合わせることができる、電源コネクタも備えることができる。電源コンポーネント812は、電源I/Oコンポーネント844を介して外部電源システムまたは充電機器とインターフェースすることができる。
[00169] 前記に基づき、データを消費型コンテンツに変換するときにバリエーションを生じさせるための技術が本明細書で開示されていることは理解されるであろう。本明細書に提示されている発明対象は、コンピュータの構造的特徴、方法および変換に関する活動、特定の計算機械装置、およびコンピュータ可読媒体に特有の用語を用いて説明されてきたが、付属の請求項で定められている発明は、本明細書で説明されている特定の特徴、活動、または媒体に必ずしも制限されないことは理解されるであろう。むしろ、特定の特徴、活動、および媒体は、請求項を実施する形態の例として開示されている。
[00170] 上で説明されている発明対象は、例示のみによって提示されており、制限として解釈すべきでない。例示され、説明されている実施形態および用途の例に従うことなく、また以下の請求項において述べられている、本発明の精神および範囲から逸脱することなく、本明細書で説明されている発明対象にさまざまな修正および変更を加えることができる。