JP5075920B2 - ウェブデータ使用のプラットフォーム - Google Patents

ウェブデータ使用のプラットフォーム Download PDF

Info

Publication number
JP5075920B2
JP5075920B2 JP2009549680A JP2009549680A JP5075920B2 JP 5075920 B2 JP5075920 B2 JP 5075920B2 JP 2009549680 A JP2009549680 A JP 2009549680A JP 2009549680 A JP2009549680 A JP 2009549680A JP 5075920 B2 JP5075920 B2 JP 5075920B2
Authority
JP
Japan
Prior art keywords
data
web
computing device
web data
applications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009549680A
Other languages
English (en)
Other versions
JP2010521721A (ja
Inventor
キム,ジェーン・ティー
ヴォンコッチ,ウォルター
リンダーセイ,ショーン・オー
パブリシック,ミラディン
スティーブンス,ウォーレン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010521721A publication Critical patent/JP2010521721A/ja
Application granted granted Critical
Publication of JP5075920B2 publication Critical patent/JP5075920B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Description

インターネットおよびワールドワイドウェブ(ウェブ)は、我々の日常生活には欠かせないものになってきており、仕事、娯楽、調査等に使用されている。現在、ユーザは、ウェブブラウザを使用して種々のウェブページにアクセスし、手動でそれらのウェブページからテキストをコピーすることによって、または、時にはそれらのウェブページから画像を保存すること、もしくはさらにウェブページ全体を保存することなどによって、それらのウェブページからデータを取得することが可能である。しかし、現在のところ、そのようなウェブページから取得されたデータに他のアプリケーションがアクセスする簡単な方法はない。従って、ウェブページからデータにアクセスする簡単な方法を有して、異なるアプリケーションにより使用できるようにすることは有益である。
この要約は、以下の「発明を実施するための形態」でさらに述べる概念を選択して簡略化した形式で紹介するために提供するものである。この要約は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求の主題の範囲を限定するために使用されることを意図してもいない。
ウェブデータ使用のプラットフォームの1つまたは複数の態様に従うと、データストア層内のウェブデータを表す、オブジェクトを含むオブジェクトモデルが、コンピュータデバイス上で生成される。コンピュータデバイス上で実行しているアプリケーションからの要求も受け取られる。これらの受け取られた要求は、ウェブデータに対して動作を実行させるという要求であり、要求される動作が実行される。
ウェブデータ使用のプラットフォームの1つまたは複数の態様に従うと、API(application programming interface)層が、コンピュータデバイスに実装される。API層は、コンピュータデバイス上で実行するローカルアプリケーション(複数可)が、データストア層内のウェブデータにアクセスすることを可能にする。API層はさらに、何らかの他のコンピュータデバイス上で実行するリモートアプリケーション(複数可)が、データストア層内のウェブデータにアクセスすることを可能にする。
ウェブデータ使用のプラットフォームの1つまたは複数の態様に従うと、ウェブページが、ウェブデータストアに記憶される。これらのウェブページのうちのあるものは、構造化データを含み、他のものは構造化データを含まない。これらのウェブページを表す、異なるオブジェクトを有するオブジェクトモデルが生成される。ウェブブラウザが、オブジェクトモデルを介してウェブデータストアにアクセスすることが許可され、これらのウェブページに少なくとも部分的に基づき、ユーザインタフェースを生成する。
同じ数字が、同様の特徴を参照するために図面を通して使用される。
1つまたは複数の実施形態に従って、ウェブデータ使用のプラットフォームを使用することが可能な、一例のシステムを例示する図である。 1つまたは複数の実施形態に従って、構造化データを含む一例のウェブページを例示する図である。 1つまたは複数の実施形態に従って、一例のウェブデータプラットフォームを例示する図である。 1つまたは複数の実施形態に従って、ユーザインタフェース制御を表示する、一例のユーザインタフェースを例示する図である。 1つまたは複数の実施形態に従って、データストア層からウェブデータにアクセスするための、一例のプロセスを例示するフローチャートである。 1つまたは複数の実施形態に従って、データストア層内のウェブデータを更新するための、一例のプロセスを例示するフローチャートである。 1つまたは複数の実施形態に従って、ウェブデータ使用のプラットフォームを実装するよう構成することが可能な、一例のコンピュータデバイスを例示する図である。
ウェブデータ使用のプラットフォームについて本明細書において検討する。プラットフォームは、エンジン層、データストア層、およびAPI(applicaton programming interface)層を含む。エンジン層は、ウェブデータを取得し、それを、記憶するためにデータストア層に提供する。ウェブデータへの変更はまた、エンジン層により検出され、データストア層に対して識別され得る。データストア層は、ウェブデータを記憶し、さらにウェブデータがその一部であるコレクションのインジケータを記憶する。API層は、プラットフォームと同じコンピュータデバイス上で実行するアプリケーションだけでなく、他のコンピュータデバイス上で実行するアプリケーションが、データストア層からウェブデータにアクセスし使用することを可能にするインタフェースを、提供する。
図1は、1つまたは複数の実施形態に従って、ウェブデータ使用のプラットフォームを使用することが可能な、一例のシステムを100例示する。システム100は、ネットワーク106上で多数(x個)のリモートデバイス104(1)...104(x)と通信することが可能であるコンピュータデバイス102を含む。ネットワーク106は、インターネット、ローカルエリアネットワーク、他の公のおよび/またはプロプライエタリなネットワーク、その組合せ等を含む、任意の様々なネットワークであり得る。
コンピュータデバイス102は、任意の様々な異なるコンピュータデバイス、例えば、デスクトップコンピュータ、ハンドヘルドコンピュータ、ラップトップコンピュータ、サーバコンピュータ、自動車用コンピュータ、携帯電話、携帯情報端末(PDA)、ゲーム機等であり得る。コンピュータデバイス102は、ウェブデータを記憶し、かつ、アプリケーションが記憶されるウェブデータにアクセスすることを可能にする、ウェブデータプラットフォーム108を含む。記憶されるウェブデータは、以下でさらに詳細に検討するように、例えば、ウェブページ、ウェブページのコレクションのインジケータ等を含む。記憶されるウェブデータは、プラットフォーム108により1つまたは複数のリモートデバイス104(1)...104(x)から取得することが可能である。加えて、記憶されるウェブデータにアクセス可能なアプリケーションは、1つまたは複数のリモートデバイス104(1)...104(x)上で実行しているアプリケーションとだけでなく、コンピュータデバイス102上で実行しているアプリケーションと、をも含む。
リモートデバイス104(1)...104(x)は典型的には、サーバコンピュータであるが、代替として、コンピュータデバイス102に類似した任意の様々な異なるコンピュータデバイスであり得る。リモートデバイス104(1)...104(x)は、ウェブデータプラットフォーム108により検索され記憶されることが可能なウェブデータを記憶することが可能である。加えて、リモートデバイス104(1)...104(x)は、ウェブデータプラットフォーム108により記憶されるウェブデータにアクセスし使用する、アプリケーションを実行することが可能である。あるリモートデバイス104(1)...104(x)は、ウェブデータプラットフォーム108により検索されるウェブデータを記憶し得、他のものはアプリケーションを実行して、ウェブデータプラットフォーム108により記憶されるウェブデータにアクセスする。代替として、同一のリモートデバイス104が、ウェブデータプラットフォーム108により検索されるウェブデータを記憶し、また、アプリケーションを実行しウェブデータプラットフォーム108により記憶されるウェブデータにアクセスすることが可能である。
1つまたは複数のリモートデバイス104(1)...104(x)は、ウェブページ110を記憶する。ウェブページ110内のデータが、ウェブデータプラットフォーム108により取得され、ウェブデータとして記憶される。1つまたは複数のウェブページ110はそれぞれ、1つまたは複数の構造化データを含むことが可能である。構造化データは、データの消費者により既知であり予想されるフォーマットのデータであり、典型的にはウェブブラウザまたはビヘイビア(以下でさらに詳細に検討するように、構造化データを使用する方法の記述)である。構造化データは、XML(Extensible Markup Language;拡張マークアップ言語)フォーマットまたはHTML(HyperText Markup Language)フォーマット等の、既知の構造化データ規格に従ってフォーマットすることが可能である。代替として、構造化データは、他の公のおよび/またはプロプライエタリな規格に従ってフォーマットすることが可能である。構造化データにどのフォーマットが使用されても、このフォーマットはウェブデータプラットフォーム108には既知であるため、以下でさらに詳細に検討するように、構造化データはプラットフォーム108により使用可能である。構造化データを構成するデータの量および種類は可変であり、データ型の一部として定義される。
異なる構造化データは、異なるデータ型のものであり得、また、構造化データ型とも称される。様々な異なるデータ型が使用可能であり、例えば、接触型、イベント型、カレンダ型、プロダクト型、画像型、音楽型、トリップ型、ウェブページ型、地理的位置型、等がある。データ型は、異なるプロパティまたはフィールドの任意の種類のデータ、例えば、日付、時間、マッピング座標、名前、電話番号、住所、製品の説明、宛先名、価格、等のデータを含むよう定義することが可能である。加えて、特定の実施形態において、全体のウェブページ110は、構造化データの1つの型として扱うことが可能である。
特定の構造化データの構造化データ型は、異なる方法で識別され得る。特定の実施形態において、構造化データ自身が、データ型を示す。例えば、異なるHTMLタグが使用されて、異なる構造化データ型を識別し、または、構造化データ自身のプロパティまたはパラメータが、構造化データ型を識別し得る。代替として、または加えて、構造化データは、異なる方法で、例えばページ110内のヘッダ情報、またはページ110内のもしくはページ110に関連する他のメタデータを使用することにより、識別可能である。
図2は、1つまたは複数の実施形態に従って、構造化データを含む一例のウェブページ200を例示する。ウェブページ200は、カレンダイベント202だけでなく、追加のテキスト204および画像206と、をも含む。この特定の例において、カレンダイベント202は、3つのフィールドまたはプロパティ−位置フィールドおよび2つの日付フィールドを有する。これらのフィールドは、ページのHTML208内に、例えば、例示の<div class=“lcprop_location”/>および<div class=“lcprop_date”>タグ等の適切なHTMLタグにより、記載される。図2の例において、HTMLタグ<div class=“lcdata_calendar”>は、消費者が構造化データとして認識するカレンダイベント構造化データ型である。
図1に戻って、ウェブページの記述が構造化データを有する場合、構造化データのインジケータがページと共にユーザに対して提示される。このインジケータは典型的には、アイコン等の視覚的インジケータであるが、インジケータは代替として異なる形式を採り得る(例えば、インジケータは、可聴式のインジケータでありえる)。特定の実施形態において、アイコンまたは他の視覚的インジケータが、ページからの構造化データの表示の隣、または近くに表示される。例えば、構造化データがイベントである場合、アイコンが、そのイベントの日付および時間の表示の近くに表示される。特定の実施形態において、構造化データを有するページがユーザに対して表示されるときはいつも、インジケータがユーザに提示される。他の実施形態において、少なくとも閾値の時間の間カーソル制御デバイスを使用して、ユーザが(構造化データ自身内等に、ページの記述により定義されるような)ページ上の場所の近くでポインタを動かすときはいつも、インジケータがユーザに対して提示される。
1つまたは複数の実施形態において、ブラウザは、インジケータを異なる方法で提示することが可能であり、ページの記述自身(例えば、ページを記述するHTMLコード)を、インジケータを提示するために変える必要は無い。例えば、構造化データのインジケータとしてアイコンをユーザに表示する状況において、ブラウザは、アイコンをページ上にオーバーレイとして提示することが可能である。このように、ページのHTMLコードを、このアイコンを表示するために修正する必要が無い。アイコンの場所は、異なる実施形態において可変である。例えば、ブラウザは、ページを分析して、アイコンを配置させるブランクのスペース(例えば、テキスト、リンク、グラフィック、または画像が、ほとんど無いまたは全く無いスペース)を識別し得る。ブラウザは、アイコンを、構造化データに対応するデータの表示に近接して位置決めしようとし得る(例えば、構造化データがイベントを記述する場合、ブラウザは、アイコンをそのイベントの記述の表示に近接して位置決めしようとし得る)。別の例として、アイコンを、表示の特定の部分に常に表示させ得る(例えば、ページが表示されているウィンドウの右上隅)。さらに別の例として、アイコンの場所を、構造化データ自身によるなどして(例えば、構造化データは、アイコンが配置されるべき場所のインジケータを含み得る)、識別し得る。
構造化データのインジケータをユーザに対して提示することに加えて、1つまたは複数の実施形態において、構造化データの内容のプレビューをも、ユーザに対して選択的に表示することが可能である。このプレビューは、例えば、ページの表示に重なる別個のコールアウトまたはウィンドウ内にあり得、少なくとも構造化データの内容の何らかを表示することが可能である。このプレビューに表示する内容の量は可変であり、ページの設計者により決めることが可能であり(例えば、プレビューとして表示される内容は、構造化データ自身内に規定することが可能である)、または代替として、ブラウザにより(例えば、ブラウザが表示されるウィンドウの大きさに基づき、コールアウトの大きさ、内容の量等により)決めることが可能である。代替として、このプレビューは、全く表示させない、または、ユーザがインジケータを選択するまで表示させないことができる。
ウェブページが構造化データを有する場合、構造化データ自身をウェブページの一部としてユーザに対して表示することが可能であるが、表示することが必要なわけではない。例えば、構造化データが、種々のプロパティ(例えば、イベント(スピーチ等)の日付、時間、および地理的位置)を含む場合、ウェブページは、構造化データとは別個のHTMLコードを使用して、これらのプロパティをウェブページの種々の部分に表示し得る。そのような状況において、構造化データは、ウェブページのHTMLに含まれるが、ユーザに対して表示されない。代替として、構造化データを、ウェブページの一部としてユーザに対して表示することが可能であり、または、構造化データのプレビューを、上記で検討したように、表示することが可能である。
加えて、1つまたは複数の実施形態において、オプションをユーザに提示して、構造化データを収集および/またはサブスクライブする。構造化データを収集することは、構造化データのコピーを保持することでもあり、それによって構造化データは、コンピュータデバイス102がオフラインの時でも(例えば、コンピュータデバイス102がネットワーク112に接続されていない時、または、ウェブページが検索されたリモートデバイス104が、一時的に利用できない時)、コンピュータデバイス102のユーザにアクセス可能になる。1つまたは複数の実施形態において、構造化データのみが、収集オプションの選択に応答して記憶されるが、代替の実施形態においては、ウェブページ全体が記憶され得る。
構造化データをサブスクライブすることは、構造化データに対する更新を要求することでもある。ユーザが、構造化データへの変更をサブスクライブすると、ウェブデータプラットフォーム108は、規則的または不規則な間隔でウェブページにアクセスして、更新バージョンのウェブページを(または代替として、そのウェブページから単に構造化データを)取得する。この更新されたバージョンは典型的には、構造化データが最初に検索されたのと同じウェブページから受け取られるが、代替として、以下でさらに詳細に検討するように、別のウェブページであり得る。ウェブデータプラットフォームはまた、更新バージョンのウェブページを、先に記憶されたバージョンのウェブページと比較し、ウェブページへのおよび/またはウェブページの構造化データへの任意の変更を、ユーザに通知することが可能である。
収集オプションおよび/またはサブスクライブオプションは、ユーザに対して提示され、任意の様々な方法でユーザにより選択されることが可能である。例えば、ユーザは、スクリーン上のボタンを選択する、プルダウンメニューからオプションを選択する、データ入力フィールドにテキストを入力する、音声コマンドをマイクロフォンを介して入力する、等が可能である。1つまたは複数の実施形態において、収集オプションおよび/またはサブスクライブオプションは、構造化データを伴うプレビューウィンドウ内のスクリーン上のボタン(複数可)をユーザが選択することにより、選択されることが可能である。
加えて、ビヘイビアを採用して構造化データを使用することが可能である。ビヘイビアは、構造化データを使用して、典型的にはコンピュータデバイス102のユーザにサービスを提供する方法の記述である。ビヘイビアは、典型的には、ソフトウェア命令およびコンピュータデバイス102により実行されるデータまたはコードの形式で存在するが、ビヘイビアは代替として、異なる方法で(ファームウェアおよび/またはハードウェア内等で)実装され得る。各ビヘイビアは、1つまたは複数の構造化データ型と関連する。特定の構造化データ型と関連するビヘイビアは、そのデータ型をどのように使用するかを理解している。例えば、特定の構造化データが、イベントデータ型であり得、その特定のデータが、イベント(例えば、コンサート、映画、会議等)の日付、時間、および記述を含み得る。イベントデータ型に関連するカレンダビヘイビアは、どのように、イベントから特定の日付、時間、および記述を抽出し、カレンダプログラムと対話して、その特定の日付および時間の特定の記述を有するユーザのカレンダに、イベントを追加するか、を理解している。
1つまたは複数の実施形態において、個々のビヘイビアは、1つまたは複数のローカルアプリケーションおよび/または1つまたは複数のリモートアプリケーションとどのように対話するかを理解しているように、プログラムされるかまたは構成される。例えば、あるビヘイビアはマイクロソフト(登録商標)アウトルック(登録商標)のメッセージングおよびコラボレーションクライアントとどのように対話するかを理解している、別のビヘイビアはグーグル(商標)カレンダとどのように対話するかを理解している、別のビヘイビアは別のプロプライエタリカレンダプログラムとどのように対話するかを理解している、別のビヘイビアは電子フォトアルバムプログラムとどのように対話するかを理解している、などがあり得る。
1つまたは複数の実施形態において、ビヘイビアを、コンピュータデバイス102上にインストールすることが可能である。典型的には、デバイス102のユーザは、ビヘイビアをインストールするのを可能にする特定のウェブページ110へ、ウェブブラウザを使用してナビゲートすることが可能である。そのようなウェブページ110は、ダウンロードしてビヘイビアとして実行する命令およびデータを含み、または代替として、そのような命令およびデータへのリンクを含む。ビヘイビアをコンピュータデバイス102上にインストールすることは、ビヘイビアのための命令およびデータを、コンピュータデバイス102にダウンロードし、コンピュータデバイス102を必要に応じて構成して、コンピュータデバイス102が命令およびデータを実行できるようにすること、である。ビヘイビアをインストールするのを可能にするウェブページは、構造化データを含むことが可能であるが、含むことが必要なわけではない。
ビヘイビアをインストールする方法として、ウェブページへナビゲートすることに加えて、ビヘイビアは、コンピュータデバイス102上に他の方法でインストールすることが可能である。すなわち、ビヘイビアは、命令およびデータをコンピュータデバイスへ転送するために一般的に使用される、任意の様々な異なる技術を使用して、コンピュータデバイス102上にインストールすることが可能である。例えば、1つまたは複数のビヘイビアのための命令およびデータを含有するファイルは、着脱可能記憶装置(例えば、光ディスク、磁気ディスク、フラッシュメモリ装置等)、ネットワーク106、別のコンピュータデバイスへの有線または無線の接続などを介して、コンピュータデバイス102へ転送することが可能である。別の例として、1つまたは複数のビヘイビアが、コンピュータデバイス102にプリインストールされ得るため、ビヘイビアは、ユーザが最初にコンピュータデバイス102を使用するときにはすぐにユーザに利用可能である。代替として、または加えて、アプリケーションをコンピュータデバイス102上にインストールする時に、1つまたは複数のビヘイビアが、コンピュータデバイス102上にインストールされ得る、などである。
図3は、1つまたは複数の実施形態に従って、一例のウェブデータプラットフォーム300を例示する。ウェブデータプラットフォーム300は、コンピュータデバイス上に実装され、図1のコンピュータデバイス102上に実装されるウェブデータプラットフォーム108であり得る。プラットフォーム300は典型的には、単一のコンピュータデバイス上に実装されるが、代替として、多数のコンピュータデバイスに実装することができる。
ウェブデータプラットフォーム300は、ウェブデータを使用する。一般的に、ウェブデータとは典型的にはウェブ上で利用可能なデータをさす。ウェブデータは、例えば、ウェブページ、ウェブページの特定の部分、ウェブページのコレクションのインジケータ、コメント等を含むことが可能である。1つまたは複数の実施形態において、ウェブデータのフォーマットはHTMLフォーマットであるが、他のマークアップ言語のフォーマットまたは他のフォーマットを代替として使用できる。ウェブデータがプラットフォーム300により取得された後、プラットフォーム300は選択的に、ウェブデータのフォーマットを、記憶するために変えることが可能である。
ウェブデータプラットフォーム300には、エンジン層302、データストア層304、およびAPI層306が含まれる。プラットフォーム300は、ビヘイビアストア層340も含み得る。一般的に、エンジン層302は、ウェブデータ308を取得し、そのデータをデータストア層304に、記憶するために提供する。先に取得されたウェブデータ308への変更はまた、エンジン層302により検出され、データストア層304に対して識別され得る。データストア層304は、ウェブデータを記憶し、さらに、ウェブデータがその一部であるコレクションのインジケータを記憶する。データストア層304はまた、コメントをウェブデータまたはコレクションに記憶することが可能である。API層306は、プラットフォームと同じコンピュータデバイス上で実行するローカルアプリケーション310だけでなく、他のコンピュータデバイスで実行するリモートアプリケーション312が、データストア層304からウェブデータにアクセスし使用することを可能にする、インタフェースを提供する。
作動中、ウェブデータ308が、データストア層304に追加される。ウェブデータ308は、様々な異なるソースから取得することが可能である。典型的には、少なくともいくつかのウェブデータ308は、最初にウェブブラウザにより検索される。ウェブブラウザは、API層306を介してデータストア層304と対話するローカルアプリケーション310であり得る。代替として、ウェブブラウザは、エンジン層302を介してウェブデータをデータストア層304へ転送し得る。ウェブブラウザを使用して、ユーザは特定のウェブページを閲覧するかまたは特定のウェブページへナビゲートすることが可能であり、その結果、ウェブブラウザがユーザにそのウェブページを表示する。そして、ユーザは、そのウェブページを自分のデータストアに追加させるよう要求することができる。この要求に応答して、ウェブページは、データストア層304に追加されたウェブデータになる。ウェブページをユーザのデータストアに追加させる要求は、様々な異なる形式をとることが可能であり、例えば、ウェブページを、お気に入りのウェブページまたはブックマークのウェブページのユーザのリストに追加させる要求、ウェブページを収集する、および/または、ウェブページ上の構造化データをサブスクライブする要求、オフラインでの使用のためにウェブページのコピーを記憶する要求等である。代替として、ユーザが、ウェブブラウザを使用して特定のウェブページをナビゲートするとき、そのウェブページは、自動的にデータストア層304に追加され得る。
加えて、少なくともいくつかのウェブデータ308は典型的には、サブスクライブされた更新済みのウェブページを検索するプロセスの間に取得される。そのようなウェブデータ308は、エンジン層302により検索され、データストア層304に提供される。代替として、ウェブデータ308は、他の方法で検索することが可能であり、例えば、着脱可能記憶装置(例えば、光ディスク、磁気ディスク、フラッシュメモリ装置等)を介して、図1のネットワーク106を介して、別のコンピュータデバイスへの無線および有線の接続を介するなどして、コンピュータデバイス102へ転送されたウェブデータを含有するファイルを受け取ることなどがある。別の例として、ウェブデータが、コンピュータデバイス102のインストールまたは作成のプロセスの一部として、データストア304に含まれ得るため、ウェブデータは、ユーザが最初にコンピュータデバイス102を使用するときにすぐに利用可能である。さらに別の例として、アプリケーション310がコンピュータデバイス102等にインストールされるときに、ウェブデータが、データストア層304に含まれ得る。さらに別の例として、アプリケーションが、構造化データ等のウェブデータを作成し、そのウェブデータをデータストア層304に保存し得る。そのようなウェブデータは、ファイルをコンバートする、データを一から生成する、等の種々の方法で、作成することが可能である。
データストア層304は、ウェブデータを記憶する。データストア層304は、1つまたは複数のアイテム314、1つまたは複数のコメント316、および1つまたは複数のコレクション318を含む。データストア層は、以下でさらに詳細に検討するように、ウェブデータ、および選択的に、関連するデータを記憶する。データストレージは、種々の場所、例えば、ローカル記憶装置上(例えば、プラットフォーム300を実装するものと同じコンピュータデバイスの一部)、リモート記憶装置上(例えば、プラットフォーム300を実装するデバイスから離れた別のコンピュータデバイスの一部)、着脱可能記憶装置上(例えば、フラッシュメモリ装置、ディスク等)などに、実装することが可能である。
各アイテム314は、ウェブページへのリンクを表し、従って、ウェブページに対応するか、または関連する。アイテム314は、ウェブページのデータ(例えば、ページのHTMLコード)を含むことが可能であり、または代替として、ウェブページのいくつかのまたは全てのデータが置かれるデータストア層304内の場所へのリンクを含むことが可能である。あるウェブページは、構造化データを含むことが可能であり、他のウェブページは、構造化データを含まないこともある。構造化データを含むウェブページに対して、対応するアイテム314が選択的に構造化データを識別して、構造化データが簡単に検索されるようにすることが可能である。ウェブページのデータに加えて、リンクを記述する種々のメタデータもまた、アイテム314に含まれる。表Iに、1つまたは複数の実施形態における各アイテム314に保持される一例のメタデータを記載する。
Figure 0005075920
各コメント316は、アイテム314と関連し、アイテム314により表されるウェブページが取得されるのと同じソースから取得されることが可能である。各コメント316は、単一のコメント、または代替として、アイテム314に関連するコメントのコレクションであり得る。各コメントは、アイテム314により表されるウェブページを記述する種々の情報を含むが、典型的にはウェブページの一部としての表示はされない。
各コレクション318は、まとめてグループ化された1つまたは複数のアイテム314を識別する。グループ化は典型的には、ウェブブラウザが実行するが、代替として、別のアプリケーション310が実行し得る。1つまたは複数の実施形態において、グループ化は、ウェブページにリンクされた内の構造化データのデータ型に従って、自動的にアサインされる。そのような実施形態において、同じデータ型の構造化データを有する全てのウェブページが、同じコレクションにまとめてグループ化される。加えて、または代替として、グループ化はユーザによってアサインされる。そのような実施形態において、ユーザは、コレクションの名前または他の識別子を識別して、ユーザに希望に従って、特定のアイテムを特定のコレクションにアサインすることが、可能である。このアサインは、ウェブページが取得されるときに実行される、および/または他のとき(例えば、ウェブブラウザまたは別のアプリケーション310を介して)、実行することが可能である。
加えて、1つまたは複数のアプリケーション310および/または312は、データストア層304に登録されて、データストア層304への変更が通知されることが可能である。データストア層304は、そのようなアプリケーション310および/または312に、アイテム314、コメント316、および/またはコレクション318への変更を通知する。1つまたは複数の実施形態において、アプリケーション310および/または312は、データストア層304に登録されて、アイテム314への変更の通知を受け取ることが可能である。データストア層304は、どのアプリケーション310および/または312が登録されて通知を受け取るのかのレコードを保持し、アイテム314への変更があるたびに、それらのアプリケーション310および/または312のそれぞれに通知する。登録されたアプリケーションには典型的には、アイテムの任意のメタデータへの変更、アイテムの任意の追加、アイテムの任意の削除、およびアイテムに追加される任意の新しいコメントを含む、アイテム314への任意の変更が通知される。代替として、アプリケーションは、登録されて、アイテム314の特定の部分の変更(例えば、構造化データまたはフラグ等への変更のみ)、または、特定のアイテム314への変更のみの通知を受け取り得る。加えて、または代替として、アプリケーションはまた、コレクション318への変更、コメント316への変更、特定のデータ型の構造化データを有するアイテム314への変更等の内の1つまたは複数のために登録され得る。
加えて、1つまたは複数の実施形態において、プラットフォーム300がその上で実行するオペレーティングシステムのイベント通知コンポーネントが活用されて、登録および通知を支援する。そのような実施形態において、アプリケーション310および/または312がオペレーティングシステムのイベント通知コンポーネントに登録されて、アプリケーション310および/または312に対して、それらが登録されたイベントがイベント通知コンポーネントにより受け取られるたびに、イベント通知コンポーネントにより通知させることが可能である。アプリケーション310および/または312は、アイテム変更イベントのために登録され、データストア層304は、イベント通知コンポーネントに任意のアイテム変更を通知する。オペレーティングシステムのイベント通知コンポーネントは、次に、登録されたアプリケーション310および/または312に対してイベントを発生させて(または、通知を通信させて)、それらにアイテム変更を通知する。
プラットフォーム300はまた、選択的に、1つまたは複数のビヘイビア342が記憶されるビヘイビアストア層340を含む。各ビヘイビア342は、上記で検討したように、構造化データを使用して、典型的には、プラットフォーム300を実装するコンピュータデバイスのユーザにサービスを提供する方法の記述である。ビヘイビアが、プラットフォーム300を実装するコンピュータデバイス上にインストールされるとき、ビヘイビアがどの構造化データ型と関連するのかについてのレコードが保持される。このレコードは、ビヘイビアストア層340内、データストア層304内、または代替として、何らかの別のストア層(図示せず)内に保持することが可能である。
エンジン層302は、ウェブデータ308を取得し、そのデータを、記憶するためにデータストア層304に提供する。先に取得されたウェブデータ308への変更はまた、エンジン層302により検出されることが可能であり、変更されたウェブデータはデータストア層304に記憶される。加えて、エンジン層302は、データストア層304および/またはプラットフォーム300の他のコンポーネントに、変更を通知することが可能である。ウェブページへの変更を識別して、変更されたバージョンのウェブページを記憶する、このプロセスは、ウェブページを更新することでもある。
エンジン層302は、ダウンロードエンジン322、サニタイズモジュール324、およびマージ処理モジュール326を含む。ダウンロードエンジン322は、アイテム314により識別された、更新されたバージョンのウェブページを取得する。ダウンロードエンジン322は典型的には、識別されたウェブページをダウンロードするが、代替として、ウェブページの一部のみ(例えば、ウェブページ上の構造化データのみ)が更新される場合、ウェブページのその部分のみが検索される必要がある。ダウンロードエンジン322は、アイテム314により表される全てのウェブページの、更新されたバージョンを取得し得るか、または代替として、ユーザにより(例えば、ウェブページ上の構造化データをサブスクライブすることにより、または、更新を要求することにより)更新が要求されたウェブページのみの、更新されたバージョンを取得し得る。特定のウェブページに対して更新が要求されたかどうかのインジケータを、(例えば、表Iを参照して上記で検討したフラグの1つとして)対応するアイテム314のメタデータ内に保持することが可能である。各アイテム314に対して、ダウンロードエンジン322が、表された、更新されたバージョンのウェブページを取得するが、アイテム314は、ウェブページへの更新が検索されるべき場所を識別する(例えば、上記で検討したソースURLとして)。
一般的に、新しいバージョンのウェブページは、ダウンロードエンジン322によりウェブデータ308として受け取られ、サニタイズモジュール324によりサニタイズされて任意の潜在的に悪意のある内容を除去する。マージ処理モジュール326が次に、サニタイズされたウェブページを、データストア層304に先に記憶されたバージョンと比較して、新規に受け取られたバージョンのウェブページと、先に記憶されたバージョンのウェブページとの間に、任意の差異が存在するかどうかを判断する。ウェブページに任意の変更がある場合、マージ処理モジュール326は、新規に受け取られたウェブページをデータストア層304に記憶し、データストア層304および/またはAPI層306にウェブページが変更されたことを通知する。1つまたは複数の実施形態において、マージ処理モジュール326は、層304および/または層306にウェブページへの任意の変更を通知し、一方、他の実施形態において、マージ処理モジュール326は、層304および/または層306にウェブページ上の構造化データへの変更のみを通知する。さらに他の実施形態において、マージ処理モジュール326は、層304および/または層306にウェブページへの任意の変更を通知し、さらに層304および/または層306に構造化データに対して任意の変更があるかどうかを通知する。
アイテムがどの程度頻繁に更新されるかは、可変である。特定の実施形態において、アイテム自身が、どの程度頻繁に更新されるかを識別するプロパティを含む(例えば、表Iを参照して上記で検討したフラグの1つ)。他の実施形態において、他のメカニズムを使用して、頻度を決定するが、例えば、ユーザがどの程度頻繁に更新させたいかをユーザが入力し得る、特定の頻度が構造化データ型と関連し得る、などである。更新は、規則的な間隔(例えば、1日1回、1時間に1回、5分に1回、等)で、または、不規則な間隔(例えば、アイテムで識別された特定の時間および日付に至るまでの日の中の1日に1回、アイテムで識別されたのと同じ日に1時間に1回、ならびに、アイテムで識別されたのと同じ日に5分に1回、およびアイテムで識別された時間に先行する直前の1時間中の5分に1回)であり得る。
サニタイズモジュール324は、ダウンロードエンジン322により検索されたウェブページを採り上げ、ウェブページ上の任意の潜在的に悪意のある内容を識別する。サニタイズモジュール324は、任意のそのような識別された内容を除去し、マージ処理モジュール326に対して利用可能にされた、サニタイズされたウェブページとなる。サニタイズモジュール324は、特定のタグをチェックする、特定のアルゴリズムを使用する、特定のパターンを探す、などの任意の様々な従来の方法で作動して、潜在的に悪意のある内容を検出することが可能である。
マージ処理モジュール326は、サニタイズされたウェブページを、データストア層304に先に記憶されたウェブページと比較する。この比較に基づき、ウェブページへの任意の変更があるかどうかについてチェックされる。ウェブページへの変更は、ウェブページへの何らかのデータまたは他の内容もしくはコードの追加、ウェブページからの何らかのデータまたは他の内容もしくはコードの削除、および/または、ウェブページ内の何らかのデータまたは他の内容もしくはコードの修正であり得る。代替として、マージ処理モジュール326は、サニタイズされたウェブページの一部(例えば、サニタイズされたウェブページ内の構造化データ)を、データストア層304に先に記憶されたウェブページの一部(例えば、ウェブページ内の構造化データ)を比較するだけでも良い。
ウェブページに何の変更も無い場合、マージ処理モジュール326は、この時点でこのアイテムに対してさらに動作をとる必要が無い。代替として、マージ処理モジュール326は、アイテム314のメタデータを更新して、更新がなされたがウェブページへの変更が検出されなかった旨を反映させても良い。
しかし、ウェブページへの変更がある場合、データストア層304に先に記憶されたウェブページが、新規に受け取られたウェブページと交換される。古いバージョンのウェブページと新しいバージョンのウェブページとのこの交換は、マージ処理モジュール326により実行され得、または代替として、データストア層304の制御コンポーネントにより実行され得る。アイテム314が変更されると、データストア層304にはエンジン層302により変更が通知される。1つまたは複数の実施形態において、エンジン層302にアクセス可能であり、エンジン層302がデータストア層304内にウェブページを記憶するのを可能にし、エンジン層302がデータストア層304にウェブページへの任意の変更を通知するのを可能にするインタフェースを、データストア層304が提供する。
ウェブページへの変更は典型的には、上記で検討したように、エンジン層302により識別される。加えて、コメントへの変更は典型的には、コメントがダウンロードエンジン322によりウェブページと共に取得されるので、類似の方法で識別される。しかし、コレクション318またはビヘイビア320への変更は典型的には、アプリケーション310が行う。そのような変更は、変更がなされるときにデータストア層により検出され、登録されたアプリケーションには、上記で検討したように、ウェブページへの変更の通知に類似するそのような変更が通知される。例えば、アプリケーション310が、コレクションに対応するオブジェクトの方法を呼び出すことにより、コレクション318を変更すると仮定する(オブジェクトモデルについては以下でさらに詳細に検討する)。この呼び出された方法の処理の一部は、データストア層304にコレクション318への変更を通知することであり、典型的には、特定のコレクション318およびなされた変更を識別する。
API層306は、プラットフォームと同じコンピュータデバイス上で実行するローカルアプリケーション310とだけでなく、他のコンピュータデバイス上で実行するリモートアプリケーション312が、データストア層304からウェブデータにアクセスすることを可能にする、インタフェースを提供する。API層306は、オブジェクトモデル330、および同期化プロトコルモジュール332を含む。ローカルアプリケーション310は、ウェブブラウザアプリケーションだけでなく、ウェブブラウザアプリケーションに追加される任意のエクステンションを含む。エクステンションは、ウェブブラウザアプリケーションに、別のアプリケーション310もしくは312により、またはウェブページにより追加されて、ウェブブラウザの機能を拡張することが可能である。加えて、ローカルアプリケーション310は、ワードプロセシングアプリケーション、スプレッドシートアプリケーション、ゲーム、データベース等の、任意の様々なタイプのアプリケーションであり得る。同様に、リモートアプリケーション312は、ワードプロセシングアプリケーション、マッピングまたは方向アプリケーション、ゲーム等の任意の様々なタイプのアプリケーションであり得る。
オブジェクトモデル330は、データストア層304内のデータに基づくオブジェクトモデルである。オブジェクトモデル330は、データストア層304のアイテム314、コメント316、およびコレクション318を表す異なるオブジェクトを含む。これらのオブジェクトは、アイテム314、コメント316、およびコレクション318として記憶されるデータに対応する、種々のプロパティを含む。例えば、アイテム314を表すオブジェクトは、ウェブページのデータ(例えば、ページのHTMLコード)を有するプロパティの他に、表Iを参照して上記で検討したメタデータの各タイプの追加のプロパティを含むことが可能である。
加えて、ウェブページが構造化データを含む実施形態において、構造化データ自身が、アイテムのオブジェクトの異なるプロパティであり得る。例えば、ウェブページが、構造化データとして名前および電話番号を有する接触構造化データ型を含むと仮定する。このウェブページは、アイテム314として記憶され、オブジェクトモデル330内の対応するオブジェクトが、接触の名前および接触の電話番号であるプロパティを含む。
プロパティに加えて、オブジェクトモデル330内の各オブジェクトは、アプリケーション310がオブジェクトと対話するのを可能にする、異なるメソッドを含むことが可能である。そのようなメソッドの例には、作成メソッド、読込メソッド、編集メソッド、削除メソッド、列挙メソッドが含まれる。作成メソッドは、アプリケーション310によるオブジェクトの作成およびオブジェクトへのデータの投入と、対応するデータのデータストア層304への記憶を、可能にする。読込メソッドは、アプリケーション310によるオブジェクトのプロパティの検索を、可能にする。編集メソッドは、アプリケーション310によるオブジェクトのプロパティの変更と、そのような変更のデータストア層304への記憶を、可能にする。削除メソッドは、オブジェクトの削除と、データストア層304からの対応するデータの削除を、可能にする。列挙メソッドは、アプリケーション310によるオブジェクトのメソッドおよび/またはプロパティの識別を可能にする。
加えて、API層306内のビヘイビアオブジェクトモデルはまた、ビヘイビア342を表す異なるオブジェクトを含み、アプリケーション310がオブジェクトと対話することを可能にする。このオブジェクトモデルは、オブジェクトモデル330の一部、または代替として、層306内の別のオブジェクトモデルの一部として含まれ得る。ビヘイビア342を表すオブジェクトは、ビヘイビア342に対応する種々のプロパティを含む。例えば、特定のビヘイビア342を表すオブジェクトは、ビヘイビアを実施するために実行されるコードが記憶されている(または代替として、コードがオブジェクトの一部として含まれ得る)場所の識別子を有するプロパティを含むことが可能である。オブジェクトはまた、ビヘイビア302に関するメタデータ、例えば、ビヘイビアのソースの識別子、ビヘイビアにより提示されるサービスの識別子、ビヘイビアに関連する構造化データ型の識別子等を、含むことが可能である。
ビヘイビアオブジェクトモデル内の各オブジェクトはまた、アプリケーション310がオブジェクトと対話することを可能にする、異なるメソッドを含む。そのようなメソッドの例には、呼出メソッド、タイプメソッドによる列挙ビヘイビア、読込メソッド、追加メソッド、および削除メソッド、が含まれる。呼出メソッドは、アプリケーション310が、オブジェクトにより表されるビヘイビアを呼び出すことを可能にする。オブジェクトにより表されるビヘイビアのコードは、オブジェクトにより表されるビヘイビアが呼び出されると、実行される。読込メソッドは、アプリケーション310によるオブジェクトのプロパティの検索を、可能にする。追加メソッドは、ビヘイビアストア340へのビヘイビアの追加と、そのビヘイビアを表す、オブジェクトのビヘイビアオブジェクトモデルへの追加を、可能にする。削除メソッドは、ビヘイビアストア340からのビヘイビアの削除と、そのビヘイビアを表す、オブジェクトのビヘイビアオブジェクトモデルからの削除を、可能にする。
タイプメソッドによる列挙ビヘイビアは、特定の構造化データ型に関連する異なるビヘイビアを、アプリケーション310に対して識別することを可能にする。この列挙は、異なる方法で行うことが可能であり、例えば、この情報を保持するビヘイビアオブジェクトモデル内に追加のオブジェクトを有することにより(この追加のオブジェクトのメソッドは、アプリケーション310により直接呼び出すことが可能であり、または代替として、アプリケーション310により呼び出された別のオブジェクトのメソッドにより呼び出すことが可能である)、ビヘイビアストア層340に記憶される関連性のレコード(例えば、ビヘイビアが追加されるたびに、または関連性が変わるたびに、更新される)にアクセスすることにより、ビヘイビアオブジェクトモデル内のオブジェクトに、その関連する構造化データ型についてお互いにクエリを行わせることなどにより行うことが可能である。列挙ビヘイビアメソッドは、ビヘイビアストア層340内にある異なるビヘイビア342を、アプリケーション310に対して識別することを可能にする。この列挙は、異なる方法で行うことが可能であり、例えば、この情報を保持するビヘイビアオブジェクトモデル内に追加のオブジェクトを有することにより(この追加のオブジェクトのメソッドは、アプリケーション310により直接呼び出すことが可能であり、または代替として、アプリケーション310により呼び出された別のオブジェクトのメソッドにより呼び出すことが可能である)、ビヘイビアストア層340に記憶されるビヘイビアのレコード(例えば、ビヘイビアが追加または削除されるたびに、更新される)にアクセスすることにより、ビヘイビアオブジェクトモデル内のオブジェクトに、それらが表すビヘイビアについてお互いにクエリを行わせることなどにより行うことができる。
同期化プロトコルモジュール332は、リモートアプリケーション312が、データストア層304内のデータと同期されるデータを保持することを可能にする。1つまたは複数の実施形態において、イベントの通知を受け取ることを要望する各リモートアプリケーション312は、この要望の表示子をモジュール332へ送る。加えて、リモートアプリケーション312は、データストア層304への変更に対する通知のために登録され得、または代替として、モジュール332が、アプリケーション312の代わりに通知のために登録され得る。アプリケーション312またはモジュール332のどちらが通知のために登録されるかに関わらず、同期化プロトコルモジュール332は通知を受け取る。モジュール332は、リモートアプリケーション312と次に通信するときまで通知のレコードを保持し、その時点で、モジュール332は、受け取って保持していた全ての通知をリモートアプリケーション312に送る。モジュール332はまた、対応する変更されたデータをデータストア層304からリモートアプリケーション312へ送り得、または代替として、リモートアプリケーション312がデータを要求するのを待ち得る。
リモートアプリケーション312と同期化モジュール332との間の通信は、アプリケーション312および/またはモジュール332により開始することが可能である。1つまたは複数の実施形態において、アプリケーション312は、モジュール332がアプリケーション312の代わりに受け取った通知を求める要求を(例えば、図1のネットワーク106上を)モジュール332に送ることにより、通信を開始する。他の実施形態において、アプリケーション312は、どのようにアプリケーション312に通知を通信するかを示す表示子をモジュール332に提供し、モジュール332は、この表示子を保持する。この表示子は、例えば、アプリケーション312のための通知が受け取られるときにアクセスされるURLであり得る。アプリケーション312の代わりにモジュール332により受け取られた通知は、モジュール332に与えられた表示子により定義される全ての方法(および全ての頻度)で、アプリケーション312に通信される。
データストア層304への変更をリモートアプリケーション312へ通信することにより、リモートアプリケーション312が、データストア層304内の自身で所有するウェブデータのコピーを維持すること、さらに、リモートアプリケーション312が、ウェブデータストア層304内のものと同期される、自身のウェブデータのコピーを維持すること、が可能になる。リモートアプリケーション312が最初に、ウェブデータへの変更の通知を取得することを所望すると、リモートアプリケーション312はまだ何もデータを受け取っていないため、データストア層304内の全てのウェブデータが変更されたものとしてみなされ得ることに留意されたい。そのような状況において、データストア層304内の現在のウェブデータが典型的には、リモートアプリケーション312に通信される。
加えて、1つまたは複数の実施形態において、ウェブページは、ウェブブラウザアプリケーション310を介してデータストア層304へのアクセスを得ることができる。これらの実施形態において、オブジェクトモデル330は、ウェブページを表示するウェブブラウザアプリケーション310がオブジェクトモデル330にアクセスすることを可能にする。このようにして、ウェブページは、アプリケーション310としてアプリケーションをインストールせずに、データストア層304内のデータ、およびビヘイビアストア層340内のビヘイビアに、アクセスしてそれを利用することが可能である。
加えて、API層306は、データストア層304および/またはビヘイビアストア層340内の、APIおよび/または異なるウェブデータへのアクセスを制御することが可能である。そのようなアクセスを制御することにより、異なるウェブページおよび/またはウェブサイトを、異なる機能性および/またはウェブデータに制限することが可能である。例として、APIは、読み込み機能性および書き込み機能性等の、異なる機能性に分離され得る。異なるウェブページおよび/またはウェブサイトは、書き込み機能性へのアクセスが許可されることが可能で、一方、他のものは読み込み機能性のみへのアクセスが許可される。別の例として、特定のウェブページおよび/またはウェブサイトは、特定の1つまたは複数のアイテム314、特定の1つまたは複数のコレクション318等のみへのアクセスに制限され得る。特定のウェブページおよび/またはウェブサイトに許可された特定のアクセスは、プラットフォーム300を実装するコンピュータデバイスのユーザにより識別され得、それによって、ユーザが自分のウェブデータへのアクセスを制御することを可能にする。
さらに、1つまたは複数の実施形態において、API層306は、ユーザが特定のウェブデータを選択することを可能にするユーザインタフェース制御を表示する、ウェブデータピッカ制御モジュールを含む。ユーザインタフェース制御は、データストア層304内の種々のウェブデータの少なくともいくつかの識別子を表示し、ローカルアプリケーション310のユーザが、それに対して動作を実行すべき特定のウェブデータを選択することを可能にする。例えば、ローカルアプリケーション310がコレクションについての情報を表示している場合、アプリケーション310は、データストア層304からコレクションの識別子を一覧にする制御をユーザに対して表示することが可能である。これにより、ユーザは、表示させたいコレクション(複数可)を容易に選択できるようになる。別の例として、ローカルアプリケーション310が、特定の構造化データ型(例えば、カレンダイベント、位置等)についての情報を表示している場合、アプリケーション310は、データストア層304からその型の異なる構造化データの識別子を一覧にする制御をユーザに対して教示することが可能である。これにより、ユーザは、表示させたい構造化データ(複数可)を容易に選択できるようになる。ウェブデータに対して動作させるという要求をアプリケーションが受け取ると、ユーザインタフェース制御が表示される。ユーザは、スクリーン上のボタンを選択する、プルダウンメニューからアイテムを選択する、アプリケーションの実行を要求する、等の任意の様々な方法で、ウェブデータに対して動作させるという要求を行うことが可能である。
図4は、1つまたは複数の実施形態に従って、ユーザインタフェース制御を表示する一例のユーザインタフェースを例示する。図4において、タイトル402および種々のテキスト404および画像406を含むアプリケーションウィンドウ400が例示される。ウィンドウ400はまた、ユーザが選択することが可能な異なるウェブデータを一覧にするユーザインタフェース制御408を含む。例示によると、コントロール408は、アイテムのコレクションを表示するが、代替としてアイテム自身または他のウェブデータを表示することが可能であることを理解されたい。インタフェース制御408内に表示される特定のウェブデータは、ウィンドウ400を生成するアプリケーションにより提供される特定の機能性に基づき、可変である。
ユーザは、様々な異なる方法で、コントロール408から特定のコレクションを選択することが可能である。1つまたは複数の実施形態において、ユーザは、ポインタまたはカーソル410をコントロール408上の識別子上でナビゲートし、カーソル制御デバイス(例えば、マウス)上のボタンをクリックして、識別子を選択する。そして、識別されたコレクションは、アプリケーションが実行されて作動する全ての方法で、アプリケーションにより、動作する。
図5は、1つまたは複数の実施形態に従って、データストア層からウェブデータにアクセスするための、一例のプロセス500を例示するフローチャートである。プロセス500は、図1のコンピュータデバイス102等のコンピュータデバイスにより実行され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せにおいて実装することが可能である。特定の実施形態において、プロセス500は、図3のウェブデータプラットフォーム300に実装される。
最初に、ウェブデータが取得される(動作502)。ウェブデータは、例えば、ウェブページ、ウェブページのコレクションの表示、ビヘイビア、コメント等のことである。ウェブデータは、様々な異なる方法で取得することが可能である。例えば、ウェブデータは、ユーザがウェブブラウザを使用してウェブページへナビゲートすることにより、インターネットまたは他のネットワーク上でファイルを受け取ることにより、着脱可能記憶装置からファイルを受け取ることにより、などして取得することが可能である。加えて、コメント、およびコレクションの表示等の、何らかのウェブデータは、テキスト、キャラクタ、アイコンの選択、またはプロセス500を実装するデバイスのユーザからの、他の(例えば、可聴式の)入力を受け取ることにより、取得することが可能である。
取得されたウェブデータは、ウェブデータストア(動作504)に記憶される。このウェブデータストアは、例えば、図3のデータストア層304である。1つまたは複数の実施形態において、動作502において取得された任意のウェブデータは、動作504において記憶される。他の実施形態において、ウェブデータを記憶させるというユーザからの要求が受け取られ、要求されたデータのみが記憶される。
ウェブデータストア内のウェブデータを表すオブジェクトモデルが生成される(動作506)。動作506において生成されるこのオブジェクトモデルは、多数のオブジェクトを含み、それぞれがウェブデータストアからのウェブデータを表す(例えば、それぞれがアイテム、コレクション、またはコメントを表す)。1つまたは複数の実施形態において、動作506において生成されるオブジェクトモデルは、図3のオブジェクトモデル330である。1つまたは複数の実施形態において、ビヘイビアストアからのビヘイビアを表すオブジェクトモデルがまた、動作506において生成される。
オブジェクトモデルを有するため、要求をアプリケーションから受け取り、ウェブデータに対して動作を実行することが可能である(動作508)。1つまたは複数の実施形態において、この要求は、プロセス500を実装しているものと同じコンピュータデバイス上で実行するローカルアプリケーションからの要求である。リモートアプリケーションは、上記で検討したように、ウェブデータへの変更が通知され得、自身が所有するウェブデータのコピーを保持することが可能であり、そのようなリモートアプリケーションが、自身が所有するウェブデータのコピーにアクセスしてそのデータに対して動作を実行することを可能にする。
ウェブデータに対して実行される動作は、任意の様々な動作であり得、典型的には、オブジェクトモデル内のオブジェクトによりメソッドとして顕在化される動作である。これには、例えば、コレクション、アイテム、コメント、およびビヘイビアを表すオブジェクトにより顕在化されるメソッドである。要求は、オブジェクトモデル内のオブジェクトの適切なメソッドを呼び出すアプリケーションにより受け取られる。
要求された動作が実行され(動作510)、プロセス500は、動作506に戻る。動作が、オブジェクトモデルに対して任意の変更を及ぼした場合は、その変更は本質的に、その変更を組み込む新規に生成されたオブジェクトモデルになるということになる。しかし、変更されなかったオブジェクトモデルの部分は再生する必要が無いということを理解されたい。
アプリケーションから要求をうけとることに加えて、ウェブデータへの更新もまた、受け取られる(動作512)。これらの更新は、先に記憶されたウェブデータを新しいバージョンのウェブデータと比較した結果による、ウェブデータへの変更である。典型的には、これらの更新は、図3のエンジン層302から受け取られる。受け取られた更新済みのデータは、ウェブデータストアに記憶され(514)、この変更されたデータを表す新しいオブジェクトモデルが生成される(動作506)。変更されなかったオブジェクトモデルの部分は動作506において再生する必要が無いということを理解されたい。この変更されたデータの通知はまた、上記で検討したように、1つまたは複数のアプリケーションへ通信されることが可能である。
図6は、1つまたは複数の実施形態に従って、データストア層内のウェブデータを更新するための、一例のプロセス600を例示するフローチャートである。プロセス600は、図1のコンピュータデバイス102等のコンピュータデバイスにより実行され、ソフトウェア、ファームウェア、ハードウェア、またはその組合せにおいて実装することが可能である。特定の実施形態において、プロセス600は、図3のウェブデータプラットフォーム300に実装される。
プロセス600は、各ウェブページが更新のためにチェックされるたびに、各ウェブページに対して実行される。ウェブページ をどの程度頻繁に更新するかは可変である。特定の実施形態において、データストア層に記憶されるウェブページに対応するアイテムは、 ウェブページ をどの程度頻繁に更新するかを識別するメタデータを含む。他の実施形態において、他のメカニズムが使用されて頻度を決定するが、例えば、ユーザがどの程度頻繁に更新を起こしたいかを入力する、特定の頻度が異なるウェブページまたは構造化データの特定の型を有するウェブページに関連し得る、などである。 チェックは、規則的な間隔(例えば、1日1回、1時間に1回、5分に1回、等)で、または、時間と共に可変の不規則な間隔であり得る。
最初に、更新に関してチェックされる新しいバージョンのウェブページが検索される(動作602)。新しいバージョンが検索される場所が、例えば、データストア層に記憶されたウェブページに対応するアイテムのメタデータ内で識別される。
新しいバージョンのウェブページは次に、データストア内の先に記憶されたバージョンのウェブページと比較される(動作604)。比較を考慮して、ウェブページへの任意の変更があるかどうかについてチェックを行う(動作606)。ウェブページへの変更は、ウェブページへの何らかのデータの追加、ウェブページからの何らかのデータの削除、および/または、ウェブページ内のデータの修正であり得る。プロセス600は、ウェブページへの変更に関するチェックを参照して検討したが、代替として、プロセス600においては、ウェブページの一部のみ(例えば、ウェブページ上の構造化データ)への変更をチェックし、更新しても良い。
構造化データへの変更が無い場合、プロセス600は選択的に、データストア層内のウェブページに対応するアイテムのメタデータに、更新チェックの日付および時間を記録する(動作608)。この日付および時間は、動作602において新しいバージョンのウェブページが検索された日付および時間、動作604において比較がなされた日付および時間、などであり得る。代替として、動作608は、実行されなくても良い。そして、動作608が実行されるかどうかに関わらず、この時のこのウェブページの更新のプロセス600は、完了する(動作610)。加えて、データストア層は、ウェブデータへの変更の通知のために登録された任意のアプリケーションに、ウェブページへの変更を通知する(動作616)。
動作606に戻って、ウェブページへの変更があるが場合は、データストア内のウェブページを、動作602において検索されたウェブページのバージョンと交換する(動作612)。データストア層にはまた、構造化データへの変更が通知される(動作614)。データストア層には、明確な変更のコマンドまたはインジケータにより変更が通知され得、または代替として、ウェブページが更新されることにより暗示的に変更が通知され得る。
更新チェックの日付および時間はまた、データストア層内のウェブページに対応するアイテムのメタデータに記録される(動作618)。この日付および時間は、動作602において新しいバージョンのウェブページが検索された日付および時間、動作604において比較がなされた日付および時間、などであり得る。そして、この時のこのウェブページの更新のプロセス600は、完了する(動作610)。
図7は、1つまたは複数の実施形態に従って、ウェブデータ使用のプラットフォームを実装するよう構成することが可能な、一例のコンピュータデバイス700を例示する。コンピュータデバイス700は、例えば、図1のコンピュータデバイス102であり得、例えば、図3のプラットフォーム300を実装可能である。
コンピュータデバイス700には、1つまたは複数のプロセッサまたは処理ユニット702、1つまたは複数のメモリおよび/または記憶コンポーネント706を含むことが可能な1つまたは複数のコンピュータ可読媒体704、1つまたは複数の入力/出力(I/O)デバイス708、および、種々のコンポーネントおよびデバイスがお互いに通信することを可能にするバス710が含まれる。コンピュータ可読媒体704および/またはI/Oデバイス(複数可)708は、コンピュータデバイス700の一部として含まれ、または代替として、コンピュータデバイス900に接続されることが可能である。バス710は、メモリバスまたはメモリコントローラ、周辺機器用バス、アクセラレイティッドグラフィックポート、および、プロセッサまたは任意の様々なバスアーキテクチャを使用するローカルバスを含む、任意の種々のタイプのバス構造の任意の1つまたは複数を表す。バス710は、有線および/または無線のバスを含むことが可能である。
メモリ/記憶コンポーネント706は、1つまたは複数のコンピュータ記憶媒体を表す。コンポーネント706は、揮発性媒体(RAM(random access memory等)および/または不揮発性媒体(ROM(read only memory)、フラッシュメモリ、光ディスク、磁気ディスク等)を含むことが可能である。コンポーネント706は、固定媒体(例えば、RAM、ROM、固定ハードドライブ等)や、着脱可能媒体(例えば、フラッシュメモリドライブ、着脱可能ハードドライブ、光ディスク等)を含むことが可能である。
1つまたは複数の入力/出力デバイス708は、ユーザがコマンドおよび情報をコンピュータデバイス700に入力するのを可能にし、また、情報がユーザおよび/または他のコンポーネントまたはデバイスに対して提示されることを可能にする。入力デバイスの例には、キーボード、カーソル制御デバイス(例えば、マウス)、マイクロフォン、スキャナ等が含まれる。出力デバイスの例には、ディスプレイデバイス(例えば、モニタまたはプロジェクタ)、スピーカ、プリンタ、ネットワークカード等が含まれる。
種々の技術が、ソフトウェアまたはプログラムモジュールの一般的文脈において本明細書に記載され得る。一般に、ソフトウェアは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。これらのモジュールおよび技術の実装は、何らかの形式のコンピュータ可読媒体に記憶され得、またはこれを介して転送され得ることが可能である。コンピュータ可読媒体は、コンピュータデバイスによりアクセス可能な任意の利用可能な媒体(複数可)であり得る。限定ではなく例として、コンピュータ可読媒体は、「コンピュータ記憶媒体」および「通信媒体」を含み得る。
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報を記憶するための、任意の方法および技術で実装される、揮発性および不揮発性媒体、着脱可能および着脱不可能媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、DVD(digital versatile disks)もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、所望の情報を記憶するために使用することが可能な、かつコンピュータによってアクセス可能な任意の他の媒体が含まれるが、これに限定されない。
「通信媒体」は典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波もしくは他の転送メカニズム等の変調されたデータ信号内の他のデータを具現化する。通信媒体はまた、任意の情報配信媒体を含む。用語「変調されたデータ信号」とは、1つまたは複数の特徴のセットを有する信号、または、信号内の情報を符号化するような方法で変更された信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク接続または直接有線接続等の有線媒体、並びに、音響、RF、赤外線、および他の無線媒体等の無線媒体が含まれる。任意の上記のものの組合せもまた、コンピュータ可読媒体の範囲内に含まれる。
主題が、構造的特徴および/または方法論的な動作に特有の言語で記載されたが、添付の請求項に定義される主題が必ずしも上記に記載された特有の特徴または動作に限定されないことは理解されるべきである。むしろ、上記に記載される特有の特徴および動作は、請求項を実装する例示の形式として開示される。

Claims (20)

  1. コンピュータデバイスに実装される方法であって、
    前記コンピュータデバイスを介してアクセスされた1または複数のウェブページのページ記述の範囲内で現在収集可能なウェブデータを識別するステップ、
    前記コンピュータデバイスによって実装されたデータストア層に記憶するために前記コンピュータデバイスを介してアクセスされた前記1または複数のウェブページのページの記述から前記ウェブデータを収集するステップであって、前記ウェブデータの少なくともいくつかは、構造化データのフォーマット内に構成され、かつ、対応するアプリケーションで前記収集されたウェブデータを互いに使用できるようにすることが前記コンピュータデバイスによって実行可能なビヘイビアと関係しているステップ、
    前記収集されたウェブデータを記述するためのオブジェクトモデルを生成するステップであって、前記オブジェクトモデルは、前記コンピュータデバイスのデータストア層内に記憶された前記ウェブデータを表し、そこにアクセス可能にする複数のオブジェクトを有するステップ、
    少なくとも前記ビヘイビアを呼び出すことを含む前記データストア層内の前記ウェブデータの前記コンピュータデバイス上で、複数のアプリケーションが互いに実行可能にするためのAPI(アプリケーション・プログラミング・インタフェース)が顕在化するステップ、
    前記コンピュータデバイス上で実行する前記複数のアプリケーションから要求を受け取って、前記ウェブデータに対して動作を実行するステップであって、前記要求が前記複数のオブジェクトの1つまたは複数のメソッドの呼び出しを介して受け取られるステップ、および
    前記ウェブデータに対して要求された動作を実行するステップ、
    を含むことを特徴とする方法。
  2. 別のコンピュータデバイス上で実行するリモートアプリケーションから追加の要求を受け取って、前記ウェブデータにアクセスするステップ、および
    前記リモートアプリケーションが前記ウェブデータにアクセスすることを可能にするステップ、
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記ウェブデータへの変更を識別するステップ、および
    前記リモートアプリケーション、および前記複数のアプリケーションの1つまたは複数に、前記ウェブデータへの変更を通知するステップ、
    をさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記複数のアプリケーションのユーザが、前記データストア層内の特定のウェブデータを選択することを可能にするユーザインタフェース制御を表示するステップをさらに含むことを特徴とする請求項1に記載の方法。
  5. 前記ウェブデータへの変更がなされたかどうかをチェックするステップ、および
    前記変更がなされた場合、前記複数のアプリケーションの1つまたは複数に前記ウェブデータへの変更を通知するステップ、
    をさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記複数のアプリケーションが、ウェブブラウザと、1つまたは複数の追加のアプリケーションと、を含むことを特徴とする請求項1に記載の方法。
  7. 前記ウェブデータが複数のウェブページから成り、前記データストア層が前記複数のウェブページの各ウェブページをアイテムとして記憶し、前記データストア層が複数のコレクションをさらに記憶し、前記複数のコレクションの各コレクションが1つまたは複数のアイテムを識別する、ことを特徴とする請求項1に記載の方法。
  8. 命令が記憶される1つまたは複数のコンピュータ可読記憶媒体であって、前記命令はコンピュータデバイスの1つまたは複数のプロセッサにより実行されるときに、前記1つまたは複数のプロセッサに、
    前記コンピュータデバイスを介してアクセスされた1または複数のウェブページのページ記述の範囲内で現在収集可能なウェブデータを識別させ、
    前記1または複数のウェブページの前記ページ記述から識別される前記ウェブデータを収集させ、
    前記記憶されたウェブデータのアイテム、コレクション、およびプロパティを定義するオブジェクトモデルに従って、前記コンピュータデバイスのデータストア層内に前記ウェブデータを記憶させ、前記データストア層は、少なくとも前記コンピュータデバイスを介してアクセスされた前記1または複数のウェブページおよび前記コンピュータデバイスの1または複数のアプリケーションを含む複数のソースから収集されるウェブデータを記憶するように構成され、
    アプリケーションプログラミングインタフェース層は、
    記コンピュータデバイス上で実行する1つまたは複数のローカルアプリケーションが、前記データストア層内に収集されて記憶される前記ウェブデータにアクセスして使用させることを実行可能にする1または複数のビヘイビアを顕在化すること、および
    つまたは複数の他のコンピュータデバイス上で実行する1つまたは複数のリモートアプリケーションが、前記データストア層内の前記ウェブデータにアクセスして使用させることをさらに実行可能にする1または複数のビヘイビアを顕在化すること、を実行させる
    ことを特徴とするコンピュータ可読記憶媒体。
  9. 前記1つまたは複数のローカルアプリケーションが、ウェブブラウザと、ウェブブラウザエクステンションと、を含むことを特徴とする請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
  10. 前記命令が、1つまたは複数のプロセッサにエンジン層をさらに実装させて、前記ウェブデータを、前記ウェブデータへ更新が検索される1つまたは複数のソースの場所から取得したデータと比較することにより、前記ウェブデータへの変更を検出し、かつ、前記ウェブデータへの変更を前記データストア層に保存することを特徴とする請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
  11. ウェブデータへの変更が検出されたときに、前記データストア層がイベントを発生させ、前記イベントが、前記1つまたは複数のローカルアプリケーションと、前記1つまたは複数のリモートアプリケーションに、前記ウェブデータへの変更が検出されたことを通知することを特徴とする請求項10に記載の1つまたは複数のコンピュータ可読記憶媒体。
  12. 前記アプリケーションプログラミングインタフェース層が、同期化プロトコルモジュールを備えて、前記イベントを受け取り、前記ウェブデータへの変更のレコードを保持し、前記1つまたは複数のリモートアプリケーションに変更を通信することを特徴とする請求項11に記載の1つまたは複数のコンピュータ可読記憶媒体。
  13. 前記命令が、前記1つまたは複数のプロセッサに、前記コンピュータデバイスのデータ記憶装置を使用する前記データストア層を実装させることを特徴とする請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
  14. 前記アプリケーションプログラミングインタフェース層が、前記1つまたは複数のリモートアプリケーションの代わりに前記データストア層内の前記ウェブデータにアクセスする、同期化プロトコルモジュールを含むことを特徴とする請求項8に記載の1つまたは複数のコンピュータ可読記憶媒体。
  15. 命令が記憶される1つまたは複数のコンピュータ可読記憶媒体であって、前記命令は1つまたは複数のコンピュータデバイスのプロセッサにより実行されるときに、前記1つまたは複数のプロセッサに、
    データストア層のウェブデータストアに収集されて記憶されるように構成される前記コンピュータデバイスによってアクセスされた1または複数のウェブページと関係するページ記述の範囲内に含まれたウェブデータを検出させ、
    前記ウェブデータの検出に応答して、前記ウェブデータストア内に前記1または複数のウェブページの前記ページ記述の範囲内で検出された前記ウェブデータの記憶を起こさせるように選択可能なユーザインタフェイス制御を表示させ、
    前記ユーザインタフェイス制御の選択に応答して、前記ウェブデータを前記ウェブデータストア内に記憶させ、前記ウェブデータは、前記異なるデータ型に従って特別な方法に対応するアプリケーションで前記選択されたウェブデータを互い使用可能にするための前記コンピュータデバイスによって実行可能である対応するビヘイビアと関連する複数の異なるデータ型の構造化データを含み、
    前記1つまたは複数のウェブページから前記ウェブデータを表す複数のオブジェクトを有するオブジェクトモデルを生成させ、および
    前記コンピュータデバイス上で実行するウェブブラウザと、前記コンピュータデバイス上で実行する1つまたは複数の他のアプリケーションとの両方が、前記オブジェクトモデルを介して前記ウェブデータストアにアクセスし、かつ、前記ユーザインタフェースのための前記構造化データを検索して利用するために前記ビヘイビアを呼び出すことを含む構造化データを有する前記1つまたは複数のウェブページ少なくとも一部分に基づくユーザインタフェースを生成する、ことを可能にさせる、
    ことを特徴とするコンピュータ可読記憶媒体。
  16. 前記ウェブブラウザと前記1つまたは複数の他のアプリケーションとが、前記オブジェクトモデルを介して前記ウェブデータストアにアクセスすることを可能にすることは、前記ウェブブラウザと前記1つまたは複数の他のアプリケーションとが、前記複数のオブジェクトの1つまたは複数のメソッドを呼び出すことにより、前記ウェブデータストアにアクセスすることを可能にすることであることを特徴とする請求項15に記載の1つまたは複数のコンピュータ可読記憶媒体。
  17. 前記命令は、
    前記ウェブブラウザと前記1つまたは複数のアプリケーションとの両方が、どのビヘイビアが前記コンピュータデバイスのビヘイビアストアに記憶されるかを列挙することを可能にすること
    を前記1つまたは複数のプロセッサにさらに実行させることを特徴とする請求項15に記載の1つまたは複数のコンピュータ可読記憶媒体。
  18. 前記ビヘイビアが、特定の構造化データ型に関連するビヘイビアのみであることを特徴とする請求項17に記載の1つまたは複数のコンピュータ可読記憶媒体。
  19. 前記命令が、
    前記ウェブブラウザと前記1つまたは複数のアプリケーションの両方が、前記コンピュータデバイスのビヘイビアストア内に記憶されるビヘイビアを呼び出すことを可能にすること
    を前記1つまたは複数のプロセッサにさらに実行させることを特徴とする請求項15に記載の1つまたは複数のコンピュータ可読記憶媒体。
  20. 前記命令は、
    前記コンピュータデバイスのユーザが、前記ウェブブラウザまたは前記1つまたは複数の他のアプリケーションによりアクセスされる前記ウェブデータストア内の前記1つまたは複数のウェブページから、特定の構造化データを選択することを可能にする、ユーザインタフェース制御を表示すること
    を前記1つまたは複数のプロセッサにさらに実行させることを特徴とする請求項15に記載の1つまたは複数のコンピュータ可読記憶媒体。
JP2009549680A 2007-02-12 2008-02-12 ウェブデータ使用のプラットフォーム Active JP5075920B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/705,286 US7917507B2 (en) 2007-02-12 2007-02-12 Web data usage platform
US11/705,286 2007-02-12
PCT/US2008/053642 WO2008100881A1 (en) 2007-02-12 2008-02-12 Web data usage platform

Publications (2)

Publication Number Publication Date
JP2010521721A JP2010521721A (ja) 2010-06-24
JP5075920B2 true JP5075920B2 (ja) 2012-11-21

Family

ID=39686752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009549680A Active JP5075920B2 (ja) 2007-02-12 2008-02-12 ウェブデータ使用のプラットフォーム

Country Status (8)

Country Link
US (2) US7917507B2 (ja)
EP (1) EP2122561B1 (ja)
JP (1) JP5075920B2 (ja)
CN (1) CN101611422B (ja)
AU (1) AU2008216396B2 (ja)
CL (1) CL2008000425A1 (ja)
TW (1) TWI450107B (ja)
WO (1) WO2008100881A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250015B2 (en) 2020-02-07 2022-02-15 Coupang Corp. Systems and methods for low-latency aggregated-data provision

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429185B2 (en) 2007-02-12 2013-04-23 Microsoft Corporation Using structured data for online research
US7917507B2 (en) * 2007-02-12 2011-03-29 Microsoft Corporation Web data usage platform
US8156201B2 (en) 2007-02-20 2012-04-10 Microsoft Corporation Unifying discoverability of a website's services
JP4465631B2 (ja) * 2007-05-10 2010-05-19 ソニー株式会社 ナビゲーション装置及びナビゲーション装置における位置登録方法
US8146110B2 (en) 2007-12-10 2012-03-27 Microsoft Corporation Service platform for in-context results
US20090228804A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Service Preview And Access From an Application Page
US8631340B2 (en) * 2008-06-25 2014-01-14 Microsoft Corporation Tab management in a user interface window
US9396281B2 (en) * 2008-08-13 2016-07-19 Microsoft Technology Licensing, Llc Activities operating on structured data
US8208160B2 (en) * 2008-08-27 2012-06-26 Hewlett-Packard Development Company, L.P. System and method for printing a user guide for a product
US8700750B2 (en) * 2009-01-16 2014-04-15 Microsoft Corporation Web deployment functions and interfaces
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
US20120117118A1 (en) * 2010-11-10 2012-05-10 Sony Corporation Search and deep linking in internet-enabled tv
US9329851B2 (en) * 2011-09-09 2016-05-03 Microsoft Technology Licensing, Llc Browser-based discovery and application switching
US9177077B2 (en) * 2012-04-13 2015-11-03 Apple Inc. Method for improving backward/forward performance between certain types of dynamic web pages
US9262593B2 (en) 2012-06-25 2016-02-16 Microsoft Technology Licensing, Llc Client services for web-based applications
US10733358B2 (en) * 2012-09-17 2020-08-04 Salesforce.Com, Inc. Method and system for site migration
WO2014077807A1 (en) * 2012-11-14 2014-05-22 Hewlett-Packard Development Company, L.P. Updating statistics in distributed databases
CN103024013A (zh) * 2012-12-03 2013-04-03 百度在线网络技术(北京)有限公司 差异化的传输方法、***和装置
KR20140114645A (ko) * 2013-03-19 2014-09-29 삼성전자주식회사 하이퍼링크의 미리 보기 화면 표시 방법 및 그 장치
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10389795B2 (en) * 2015-10-09 2019-08-20 Microsoft Technology Licensing, Llc Distributed extension execution in computing systems
US10262006B2 (en) 2016-04-29 2019-04-16 Microsoft Technology Licensing, Llc Contextually triggered entry point
CN108255489B (zh) * 2018-01-12 2021-05-25 北京三快在线科技有限公司 前端界面代码生成方法、装置、电子设备及存储介质
US11657144B2 (en) * 2019-11-08 2023-05-23 Vmware, Inc. Security-enhanced file open and download
US11853380B2 (en) 2020-06-08 2023-12-26 Dropbox, Inc. Intelligently generating and managing third-party sources within a contextual hub

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799268A (en) * 1994-09-28 1998-08-25 Apple Computer, Inc. Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like
US5842203A (en) * 1995-12-01 1998-11-24 International Business Machines Corporation Method and system for performing non-boolean search queries in a graphical user interface
US5913214A (en) * 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
US5935210A (en) * 1996-11-27 1999-08-10 Microsoft Corporation Mapping the structure of a collection of computer resources
US6125384A (en) * 1996-12-23 2000-09-26 International Business Machines Corporation Computer apparatus and method for communicating between software applications and computers on the world-wide web
US6282548B1 (en) * 1997-06-21 2001-08-28 Alexa Internet Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata
US6298401B1 (en) * 1997-08-11 2001-10-02 Seagate Technology Llc Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media
US6081263A (en) * 1997-10-23 2000-06-27 Sony Corporation System and method of a user configurable display of information resources
US6128624A (en) * 1997-11-12 2000-10-03 Ncr Corporation Collection and integration of internet and electronic commerce data in a database during web browsing
US6151584A (en) * 1997-11-20 2000-11-21 Ncr Corporation Computer architecture and method for validating and collecting and metadata and data about the internet and electronic commerce environments (data discoverer)
US7003528B2 (en) * 1998-02-13 2006-02-21 3565 Acquisition, Llc Method and system for web management
US6237030B1 (en) * 1998-06-30 2001-05-22 International Business Machines Corporation Method for extracting hyperlinks from a display document and automatically retrieving and displaying multiple subordinate documents of the display document
JP2000047789A (ja) 1998-07-30 2000-02-18 Canon Inc 画像処理装置および画像処理方法
US6772139B1 (en) * 1998-10-05 2004-08-03 Smith, Iii Julius O. Method and apparatus for facilitating use of hypertext links on the world wide web
US6842782B1 (en) * 1998-12-08 2005-01-11 Yodlee.Com, Inc. Method and apparatus for tracking functional states of a web-site and reporting results to web developers
US6725425B1 (en) 1998-12-08 2004-04-20 Yodlee.Com Method and apparatus for retrieving information from semi-structured, web-based data sources
US6851060B1 (en) * 1999-07-15 2005-02-01 International Business Machines Corporation User control of web browser user data
US6363376B1 (en) * 1999-08-02 2002-03-26 Individual Software, Inc. Method and system for querying and posting to multiple career websites on the internet from a single interface
US6449739B1 (en) * 1999-09-01 2002-09-10 Mercury Interactive Corporation Post-deployment monitoring of server performance
US6370541B1 (en) * 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6546393B1 (en) * 1999-10-07 2003-04-08 Clickmarks, Inc. System method and article of manufacture for dynamically user-generated internet search directory based on prioritized server-sided user bookmarks
JP2001184354A (ja) 1999-12-22 2001-07-06 Fujitsu Fip Corp 情報閲覧補助装置並びに情報閲覧補助プログラムを記録した記録媒体
US7082436B1 (en) * 2000-01-05 2006-07-25 Nugenesis Technologies Corporation Storing and retrieving the visual form of data
US20010011275A1 (en) * 2000-01-31 2001-08-02 Benjamin Lin Distributive web page management system
CA2401653A1 (en) * 2000-02-24 2001-08-30 Findbase, L.L.C. Method and system for extracting, analyzing, storing, comparing and reporting on data stored in web and/or other network repositories and apparatus to detect, prevent and obfuscate information removal from information servers
GB0006991D0 (en) 2000-03-22 2000-05-10 Dynamic Internet Limited Search systems
US7003517B1 (en) * 2000-05-24 2006-02-21 Inetprofit, Inc. Web-based system and method for archiving and searching participant-based internet text sources for customer lead data
US7076521B2 (en) 2000-06-26 2006-07-11 Vertical Computer Systems, Inc. Web-based collaborative data collection system
US6785666B1 (en) * 2000-07-11 2004-08-31 Revenue Science, Inc. Method and system for parsing navigation information
US6591266B1 (en) * 2000-07-14 2003-07-08 Nec Corporation System and method for intelligent caching and refresh of dynamically generated and static web content
US6948134B2 (en) * 2000-07-21 2005-09-20 Microsoft Corporation Integrated method for creating a refreshable Web Query
WO2002014991A2 (en) * 2000-08-11 2002-02-21 Incanta, Inc. Resource distribution in network environment
GB0023570D0 (en) * 2000-09-26 2000-11-08 Volantis Systems Ltd Web server
US7117208B2 (en) * 2000-09-28 2006-10-03 Oracle Corporation Enterprise web mining system and method
US7324965B2 (en) * 2000-10-27 2008-01-29 Microsoft Corporation Wish list
US7188081B1 (en) * 2000-10-30 2007-03-06 Microsoft Corporation Electronic shopping basket
US7669051B2 (en) * 2000-11-13 2010-02-23 DigitalDoors, Inc. Data security system and method with multiple independent levels of security
US7133908B1 (en) * 2000-11-24 2006-11-07 Xerox Corporation Metrics and status presentation system and method using persistent template-driven web objects
US6944830B2 (en) * 2000-12-21 2005-09-13 Xerox Corporation System and method for browsing hierarchically based node-link structures based on an estimated degree of interest
US7017123B2 (en) * 2000-12-27 2006-03-21 National Instruments Corporation Graphical user interface including palette windows with an improved search function
US7089237B2 (en) 2001-01-26 2006-08-08 Google, Inc. Interface and system for providing persistent contextual relevance for commerce activities in a networked environment
US6768994B1 (en) * 2001-02-23 2004-07-27 Trimble Navigation Limited Web based data mining and location data reporting and system
US20040205076A1 (en) * 2001-03-06 2004-10-14 International Business Machines Corporation System and method to automate the management of hypertext link information in a Web site
JP2002297486A (ja) * 2001-03-29 2002-10-11 Sanyo Electric Co Ltd 情報提供サーバおよび情報提供方法
US6980984B1 (en) * 2001-05-16 2005-12-27 Kanisa, Inc. Content provider systems and methods using structured data
US20020184095A1 (en) * 2001-06-05 2002-12-05 Certra, Inc. Automatic building and categorization of favorites in an internet browser
CA2353682A1 (en) * 2001-07-23 2003-01-23 Ibm Canada Limited-Ibm Canada Limitee Link management of document structures
US6990494B2 (en) * 2001-07-27 2006-01-24 International Business Machines Corporation Identifying links of interest in a web page
JP2003058576A (ja) 2001-08-17 2003-02-28 Hitachi Software Eng Co Ltd Webページの表示制御方法およびプログラム
US20030040921A1 (en) * 2001-08-22 2003-02-27 Hughes Larry James Method and system of online data collection
US7330872B2 (en) * 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
AU2003214975A1 (en) * 2002-02-01 2003-09-02 John Fairweather System and method for navigating data
US6873984B1 (en) * 2002-02-20 2005-03-29 Oracle International Corporation Data mining recommendation web beans and JSP tag libraries
US7010526B2 (en) * 2002-05-08 2006-03-07 International Business Machines Corporation Knowledge-based data mining system
US6993534B2 (en) 2002-05-08 2006-01-31 International Business Machines Corporation Data store for knowledge-based data mining system
US20060190561A1 (en) * 2002-06-19 2006-08-24 Watchfire Corporation Method and system for obtaining script related information for website crawling
US20040002988A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for modeling subscriptions and subscribers as data
US20040205514A1 (en) * 2002-06-28 2004-10-14 Microsoft Corporation Hyperlink preview utility and method
JP2004038572A (ja) 2002-07-03 2004-02-05 Fujitsu Ltd 情報閲覧表示プログラム、方法、および装置
JP3944014B2 (ja) * 2002-07-09 2007-07-11 株式会社東芝 文書編集方法、文書編集システム及び文書処理プログラム
US7020667B2 (en) * 2002-07-18 2006-03-28 International Business Machines Corporation System and method for data retrieval and collection in a structured format
US6945458B1 (en) * 2002-07-29 2005-09-20 Bowe Bell + Howell Postage Systems Company Data collection and maintenance database method and apparatus
US7467391B2 (en) * 2002-10-30 2008-12-16 International Business Machines Corporation Allowing client applications to programmatically access web sites
US20060041830A1 (en) 2002-12-31 2006-02-23 Christopher Bohn Method and apparatus for organizing internet information for dissemination to others, collaboration on that information with others, enabling self-publishing of online content and associating it with digital media, enabling contextual search results triggered by playing of digital media
US20040162895A1 (en) * 2003-02-19 2004-08-19 B2B Booster, Inc. Web site management with electronic storefront and page categorization
US7146356B2 (en) 2003-03-21 2006-12-05 International Business Machines Corporation Real-time aggregation of unstructured data into structured data for SQL processing by a relational database engine
US7325202B2 (en) * 2003-03-31 2008-01-29 Sun Microsystems, Inc. Method and system for selectively retrieving updated information from one or more websites
DE60311805T2 (de) 2003-08-28 2007-11-22 Accenture Global Services Gmbh Erfassung, Zusammenstellung und/oder Visualisierung von strukturellen Merkmalen von Architekturen
JP2005107699A (ja) * 2003-09-29 2005-04-21 Hitachi Software Eng Co Ltd スクリプトを含むWebコンテンツのWebサービスへの変換方法及びシステム
TWI259377B (en) * 2003-09-29 2006-08-01 Realm Systems Inc Method for processing web services, mobility device and system relating to the same
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US7080104B2 (en) * 2003-11-07 2006-07-18 Plaxo, Inc. Synchronization and merge engines
JP2005173823A (ja) 2003-12-09 2005-06-30 Canon Inc Webアプリケーション及びそのデータ共有方法、並びにプログラム
WO2005082101A2 (en) * 2004-02-26 2005-09-09 Truefire, Inc. Systems and methods for producing, managing, delivering, retrieving, and/or tracking permission based communications
US20050216886A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Editing multi-layer documents
US20050216528A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Sharing collection-file contents
US20050216825A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Local storage of script-containing content
KR20060132722A (ko) 2004-03-15 2006-12-21 야후! 인크. 사용자 주석이 통합된 검색 시스템 및 방법
US7685273B1 (en) * 2004-03-31 2010-03-23 Compuware Corporation Methods and apparatus for collecting and displaying performance metrics from a web site
US7249135B2 (en) * 2004-05-14 2007-07-24 Microsoft Corporation Method and system for schema matching of web databases
JP2005332163A (ja) * 2004-05-19 2005-12-02 Oki Electric Ind Co Ltd 情報更新検知システム
JP2006031666A (ja) 2004-06-17 2006-02-02 Epson Avasys Corp 電子文書閲覧システム
US7865511B2 (en) * 2004-06-25 2011-01-04 Apple Inc. News feed browser
WO2006026579A2 (en) 2004-08-27 2006-03-09 Peng Tao A personal online information management system
US7493301B2 (en) * 2004-09-10 2009-02-17 Suggestica, Inc. Creating and sharing collections of links for conducting a search directed by a hierarchy-free set of topics, and a user interface therefor
US7321889B2 (en) * 2004-09-10 2008-01-22 Suggestica, Inc. Authoring and managing personalized searchable link collections
CA2622404A1 (en) * 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
US20060085492A1 (en) * 2004-10-14 2006-04-20 Singh Arun K System and method for modifying process navigation
US20060095345A1 (en) * 2004-10-28 2006-05-04 Microsoft Corporation System and method for an online catalog system having integrated search and browse capability
US20060143568A1 (en) * 2004-11-10 2006-06-29 Scott Milener Method and apparatus for enhanced browsing
US7725449B2 (en) 2004-12-02 2010-05-25 Microsoft Corporation System and method for customization of search results
US7640488B2 (en) * 2004-12-04 2009-12-29 International Business Machines Corporation System, method, and service for using a focused random walk to produce samples on a topic from a collection of hyper-linked pages
WO2006086525A1 (en) * 2005-02-08 2006-08-17 Pasadero, Inc. Research protocol toolkit
US7702675B1 (en) * 2005-08-03 2010-04-20 Aol Inc. Automated categorization of RSS feeds using standardized directory structures
US20070050703A1 (en) * 2005-08-26 2007-03-01 Pierre Lebel Methods, systems and computer program products for analyzing a hypertext markup language (HTML) document
US20070174324A1 (en) * 2006-01-12 2007-07-26 Palapudi Sriram M Mechanism to trap obsolete web page references and auto-correct invalid web page references
US8214360B2 (en) * 2006-04-06 2012-07-03 International Business Machines Corporation Browser context based search disambiguation using existing category taxonomy
US20070250514A1 (en) * 2006-04-25 2007-10-25 Saeed Rajput Browsing and monitoring the web through learning and ingemination
WO2007140364A2 (en) * 2006-05-26 2007-12-06 Monitor110, Inc. Method for scoring changes to a webpage
US7917507B2 (en) 2007-02-12 2011-03-29 Microsoft Corporation Web data usage platform
US8429185B2 (en) * 2007-02-12 2013-04-23 Microsoft Corporation Using structured data for online research

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250015B2 (en) 2020-02-07 2022-02-15 Coupang Corp. Systems and methods for low-latency aggregated-data provision
US11899678B2 (en) 2020-02-07 2024-02-13 Coupang Corp. Systems and methods for low latency aggregated data provision

Also Published As

Publication number Publication date
JP2010521721A (ja) 2010-06-24
EP2122561B1 (en) 2017-05-03
AU2008216396B2 (en) 2012-01-19
US8595259B2 (en) 2013-11-26
EP2122561A4 (en) 2010-01-27
CN101611422A (zh) 2009-12-23
AU2008216396A1 (en) 2008-08-21
EP2122561A1 (en) 2009-11-25
TWI450107B (zh) 2014-08-21
CN101611422B (zh) 2013-03-13
TW200846952A (en) 2008-12-01
CL2008000425A1 (es) 2008-11-07
WO2008100881A1 (en) 2008-08-21
US20080195628A1 (en) 2008-08-14
US7917507B2 (en) 2011-03-29
US20110173636A1 (en) 2011-07-14

Similar Documents

Publication Publication Date Title
JP5075920B2 (ja) ウェブデータ使用のプラットフォーム
US8725719B2 (en) Managing web page links using structured data
US9430193B2 (en) Interface for a computer platform
US7680809B2 (en) Profile based capture component
US7406664B1 (en) System for integrating HTML Web site views into application file dialogs
US20140282371A1 (en) Systems and methods for creating or updating an application using a pre-existing application
US7124354B1 (en) Enterprise application transactions as shared active documents
US20050234929A1 (en) Methods and systems for interfacing applications with a search engine
US8904363B2 (en) Projecting software and data onto client
JP2010504591A (ja) 共通コンポーネントフレームワーク
JP2005135385A (ja) コンピュータプラットフォームのプログラミングインターフェース
US8706778B2 (en) Methods and systems for an action-based interface for files and other assets
KR101895185B1 (ko) 상이한 파일 호스트를 이용한 파일 액세스 기법
WO2010148274A2 (en) Managed system extensibility
US20100042943A1 (en) Method And Systems For Layered Presentation Of A Graphic Background And A Web Accessible Resource In A Browser Widget
US20080313603A1 (en) User interface archive

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120727

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120827

R150 Certificate of patent or registration of utility model

Ref document number: 5075920

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250