(57)【特許請求の範囲】
【請求項１】
コンピュータシステムによって、テキストストリーム、画像、ビデオストリーム、またはオーディオストリームのうちの少なくとも１つを含む第１の入力ストリームを受け取るステップと、
文字の第１のシーケンスを作るために、前記第１の入力ストリームを処理するステップと、
文字の前記第１のシーケンスが時刻参照を含まないとの判定に応答して、第１のタイプの第１のデータ構造内に、文字の前記第１のシーケンスの少なくとも一部を含むメモを記憶するステップと、
前記メモを変更する第２の入力ストリームを受け取るステップと、
文字の第２のシーケンスを作るために、前記第２の入力ストリームを処理するステップと、
文字の前記第２のシーケンスがユーザアクションを示す表現を使用することによって不正確な時刻を参照する不正確な相対時刻参照を含むとの判定に応答して、前記メモをカレンダ項目に変換するステップと、
１つまたは複数の事前定義の変換ルールを適用することによって、前記不正確な相対時刻参照を絶対時刻参照に変換するステップと、
第２のタイプの第２のデータ構造内に、前記絶対時刻参照によって参照される時刻の識別子を含む前記カレンダ項目を記憶するステップと
を含む方法。
【請求項２】
前記カレンダ項目のタイプ識別子と、前記カレンダ項目のタイトルと、前記カレンダ項目の説明と、前記カレンダ項目によって識別されるイベントの位置と、前記カレンダ項目によって識別される前記イベントの創始者の識別子と、前記カレンダ項目によって識別される前記イベントの参加者のリストとのうちの少なくとも１つを表す１つまたは複数のデータ項目を作るために、文字の前記第２のシーケンスを解析するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のデータ構造または前記第２のデータ構造のうちの少なくとも１つに添付ファイルへのポインタを記憶するステップ
をさらに含む、請求項１に記載の方法。
【請求項４】
前記第１のデータ構造または前記第２のデータ構造のうちの少なくとも１つに現在時刻を記憶するステップ
をさらに含む、請求項１に記載の方法。
【請求項５】
前記絶対時刻参照は、日付、時、分、秒、およびタイムゾーン識別子のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項６】
前記絶対時刻参照は、前記カレンダ項目によって識別されるイベントの開始時刻、前記カレンダ項目によって識別される前記イベントの終了時刻、または前記カレンダ項目によって識別される前記イベントの持続時間のうちの少なくとも１つを識別する、請求項１に記載の方法。
【請求項７】
前記第１のデータ構造の少なくとも一部または前記第２のデータ構造の少なくとも一部のうちの少なくとも１つを、カレンダビューまたはノートパッドビューのうちの１つ内にレンダリングするステップ
をさらに含む、請求項１に記載の方法。
【請求項８】
レンダリングする前記ステップは、時刻インジケータへの視覚的参照を用いて前記第１のデータ構造の少なくとも一部をレンダリングするステップを含む、請求項７に記載の方法。
【請求項９】
前記第１の入力ストリームに含まれる前記画像を視覚的に分割するグラフィカルディバイダに基づいて、前記画像を複数の入力項目に分割するステップ
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記カレンダ項目およびメモのタイトル、キーワード、作者、作成の時刻、または変更の時刻のうちの少なくとも１つによってソートされるカレンダ項目およびメモを示す混合ビュー内で、前記第１のデータ構造の少なくとも一部および前記第２のデータ構造の少なくとも一部をレンダリングするステップ
をさらに含む、請求項１に記載の方法。
【請求項１１】
メモリと、
前記メモリに結合されたプロセッサであって、
入力画像を受け取り、
前記入力画像を視覚的に分割するグラフィックディバイダに基づいて、前記入力画像を複数の入力項目に分割し、
文字の第１のシーケンスを作るために、前記複数の入力項目のうちの１つの入力項目を処理し、
文字の前記第１のシーケンスが時刻参照を含まないとの判定に応答して、第１のタイプの第１のデータ構造内に、文字の前記第１のシーケンスの少なくとも一部を含むメモを記憶し、
前記メモを変更するユーザ入力を受け取り、
文字の第２のシーケンスを作るために、前記ユーザ入力を処理し、
文字の前記第２のシーケンスがユーザアクションを示す表現を使用することによって不正確な時刻を参照する不正確な相対時刻参照を含むとの判定に応答して、前記メモをカレンダ項目に変換し、
第２のタイプの第２のデータ構造内に、前記時刻参照によって参照される時刻の識別子を含む前記カレンダ項目を記憶する
ように構成される、プロセッサと
を含むシステム。
【請求項１２】
前記プロセッサは、
前記カレンダ項目のタイプ識別子と、前記カレンダ項目のタイトルと、前記カレンダ項目の説明と、前記カレンダ項目によって識別されるイベントの位置と、前記カレンダ項目によって識別される前記イベントの創始者の識別子と、前記カレンダ項目によって識別される前記イベントの参加者のリストとのうちの少なくとも１つを表す１つまたは複数のデータ項目を作るために、文字の前記第２のシーケンスを解析する
ようにさらに構成される、請求項１１に記載のシステム。
【請求項１３】
前記プロセッサは、
前記第１のデータ構造の少なくとも一部または前記第２のデータ構造の少なくとも一部のうちの少なくとも１つを、カレンダビューまたはノートパッドビューのうちの１つ内に
レンダリングする
ようにさらに構成される、請求項１１に記載のシステム。
【請求項１４】
前記プロセッサは、
１つまたは複数の事前定義の変換ルールを適用することによって、不正確な相対時刻参照を絶対時刻参照に変換することに応答する
ようにさらに構成される、請求項１１に記載のシステム。
【請求項１５】
前記プロセッサは、
前記カレンダ項目およびメモのタイトル、キーボード、作者、作成の時刻、または変更の時刻のうちの少なくとも１つによってソートされるカレンダ項目およびメモを示す混合ビュー内で、前記第１のデータ構造の少なくとも一部および前記第２のデータ構造の少なくとも一部をレンダリングする
ようにさらに構成される、請求項１１に記載のシステム。
【請求項１６】
コンピュータシステムによって実行された時に、前記コンピュータシステムに、
入力画像を受け取らせ、
前記入力画像を視覚的に分割するグラフィックディバイダに基づいて、前記入力画像を複数の入力項目に分割させ、
文字の第１のシーケンスを作るために、前記複数の入力項目のうちの１つの入力項目を処理させ、
文字の前記第１のシーケンスが時刻参照を含まないとの判定に応答して、第１のタイプの第１のデータ構造内に、文字の前記第１のシーケンスの少なくとも一部を含むメモを記憶させ、
前記メモを変更するユーザ入力を受け取らせ、
文字の第２のシーケンスを作るために、前記ユーザ入力を処理させ、
文字の前記第２のシーケンスがユーザアクションを示す表現を使用することによって不正確な時刻を参照する不正確な相対時刻参照を含むとの判定に応答して、前記メモをカレンダ項目に変換させ、
１つまたは複数の事前定義の変換ルールを適用することによって、前記不正確な相対時刻参照を絶対時刻参照に変換させ、
第２のタイプの第２のデータ構造内に、前記絶対時刻参照によって参照される時刻の識別子を含む前記カレンダ項目を記憶させる
実行可能命令を含むコンピュータ可読非一時的記憶媒体。
【請求項１７】
前記コンピュータシステムに、
前記カレンダ項目のタイプ識別子と、前記カレンダ項目のタイトルと、前記カレンダ項目の説明と、前記カレンダ項目によって識別されるイベントの位置と、前記カレンダ項目によって識別される前記イベントの創始者の識別子と、前記カレンダ項目によって識別される前記イベントの参加者のリストとのうちの少なくとも１つを表す１つまたは複数のデータ項目を作るために、文字の前記第２のシーケンスを解析させる
実行可能命令をさらに含む、請求項１６に記載のコンピュータ可読非一時的記憶媒体。
【請求項１８】
前記コンピュータシステムに、
前記第１のデータ構造または前記第２のデータ構造のうちの少なくとも１つに添付ファイルへのポインタを記憶させる
実行可能命令をさらに含む、請求項１６に記載のコンピュータ可読非一時的記憶媒体。
【請求項１９】
前記コンピュータシステムに、
前記第１のデータ構造の少なくとも一部または前記第２のデータ構造の少なくとも一部
のうちの少なくとも１つを、カレンダビューまたはノートパッドビューのうちの１つ内にレンダリングさせる
実行可能命令をさらに含む、請求項１６に記載のコンピュータ可読非一時的記憶媒体。
【請求項２０】
前記コンピュータシステムに、
前記カレンダ項目およびメモのタイトル、キーボード、作者、作成の時刻、または変更の時刻のうちの少なくとも１つによってソートされるカレンダ項目およびメモを示す混合ビュー内で、前記第１のデータ構造の少なくとも一部および前記第２のデータ構造の少なくとも一部をレンダリングさせる
実行可能命令をさらに含む、請求項１６に記載のコンピュータ可読非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全般的にはコンピュータシステムに関し、より具体的には、カレンダアプリケーションの異種入力ストリームを処理するシステムおよび方法に関する。
【背景技術】
【０００２】
カレンダアプリケーションは、個々のユーザおよび/またはユーザのグループに関するイベントのスケジューリングおよび追跡を容易にするのに使用することができる。カレンダアプリケーションは、1つもしくは複数のサーバコンピュータおよび/または1つもしくは複数のクライアントデバイスを含むコンピュータシステムによって実行され得る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０４６３２５号公報
【特許文献２】特開２００２−２９７８４７号公報
【非特許文献】
【０００４】
【非特許文献１】大澤  公美子，時系列におけるデータ管理とその応用，マルチメディア，分散，協調とモバイル（ＤＩＣＯＭＯ２００９）シンポジウム論文集  情報処理学会シンポジウムシリーズ  Ｖｏｌ．２００９  Ｎｏ．１  ［ＣＤ−ＲＯＭ］  IPSJ Symposium Series，日本，社団法人情報処理学会，２００９年  ７月１６日，第44-46頁
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示は、限定によるのではなく例によって示され、図面に関連して検討される時に、下の詳細な説明を参照することによってより十分に理解され得る。
【図面の簡単な説明】
【０００６】
【図１】本開示の1つまたは複数の態様による、カレンダアプリケーションを実行するコンピュータシステムの1つの例示的な実施形態を示すネットワークレベルの図である。
【図２】本開示の1つまたは複数の態様による、カレンダアプリケーションを実行するコンピュータシステムによってサポートされる複数のデータ構造を概略的に示す図である。
【図３ａ】本開示の1つまたは複数の態様による、カレンダアプリケーションを実行するコンピュータシステムによってレンダリングされるカレンダビューの例を概略的に示す図である。
【図３ｂ】本開示の1つまたは複数の態様による、カレンダアプリケーションを実行するコンピュータシステムによってレンダリングされるカレンダビューの例を概略的に示す図である。
【図４ａ】本開示の1つまたは複数の態様による、カレンダアプリケーションを実行するコンピュータシステムによってレンダリングされるノートブックビューの例を概略的に示す図である。
【図４ｂ】本開示の1つまたは複数の態様による、カレンダアプリケーションを実行するコンピュータシステムによってレンダリングされるノートブックビューの例を概略的に示す図である。
【図５】本開示の1つまたは複数の態様による、カレンダアプリケーションの入力を処理する方法を示す流れ図である。
【図６】本開示の例に従って動作する例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００７】
本明細書で説明されるのは、カレンダアプリケーションの異種入力ストリームを処理する方法およびシステムである。「カレンダアプリケーション」は、本明細書では、個々のユーザおよび/またはユーザのグループに関するイベントのスケジューリングおよび追跡を容易にするアプリケーションを指す。
本明細書で説明されるカレンダアプリケーションは、1つまたは複数のネットワークを介して相互接続され得るサーバおよびクライアントデバイスを含む1つまたは複数のコンピューティングデバイスを含むコンピュータシステムによって実行され得る。ユーザは、たとえばパーソナルコンピュータおよびスマートフォンなどのモバイルデバイスを含む、さまざまなクライアントコンピューティングデバイスによってカレンダアプリケーションにアクセスすることができる。クライアントデバイスは、たとえばキーボード、タッチスクリーン、ネットワークインターフェース、マイクロホン、ビデオカメラ、および/または静止画像カメラを含む、さまざまなインターフェースを介して情報を入力することができる。したがって、カレンダアプリケーションの入力ストリームを、たとえば、テキストストリーム、1つもしくは複数の静止画像、ビデオストリーム、および/またはオーディオストリームによって表すことができる。カレンダアプリケーションを実行するコンピュータシステムは、非テキスト入力をテキストに変換することができる(たとえば、光学文字認識(OCR)法を使用する画像-テキスト変換、音声-テキスト変換など)。
いくつかの実施態様では、カレンダアプリケーションを実行するコンピュータシステムは、カレンダ項目および非カレンダテキスト項目(メモ)を作るために、1つまたは複数の入力ストリームを処理することができる。その後、コンピュータシステムは、クライアントデバイス上で、たとえばカレンダビューおよびノートブックビューを含むさまざまなビューを介してカレンダ項目およびメモをレンダリングすることができる。上で言及されたシステムおよび方法のさまざまな態様を、限定によるのではなく例によって、本明細書で下で詳細に説明する。
【０００８】
図1に、本開示の1つまたは複数の態様による、コンピュータシステム1000の1つの例示的な実施形態のネットワークレベルの図を示す。コンピュータシステム1000は、カレンダアプリケーションのサーバ側部分120を実行する1つまたは複数のサーバ110を含むことができる。カレンダアプリケーションのクライアント側部分125を実行する1つまたは複数のクライアントコンピュータ130を、複数の相互接続するネットワーク115を介してサーバコンピュータ110に接続することができる。「コンピュータ」は、本明細書では、プロセッサ、メモリ、および少なくとも1つの入出力(I/O)インターフェースを含む装置を指す。コンピュータは、たとえば、サーバ、ホストコンピュータシステム上で動作する仮想マシン、ポータブルパーソナルコンピュータ(PC)もしくはデスクトップパーソナルコンピュータ(PC)、タブレットコンピュータ、またはスマートフォンによって表され得る。さらに、用語「コンピュータ」は、本明細書で説明される方法の任意の1つまたは複数を実行するために命令のセット(または複数のセット)を個別にまたは合同で実行するコンピュータのすべての集合を含まなければならない。
【０００９】
「ネットワーク」は、本明細書では、複数のコンピュータを相互接続する分散通信システムを指す。ネットワークは、たとえばローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、または仮想プライベートネットワーク(VPN)によって表され得る。いくつかの実施態様では、複数の相互接続するネットワーク115は、インターネットを含むことができる。
【００１０】
コンピュータシステム1000の諸機能を、たとえばポータブルパーソナルコンピュータ(PC)もしくはデスクトップパーソナルコンピュータ(PC)、タブレットコンピュータ、またはスマートフォンなどの1つまたは複数のクライアントデバイス130を介してエンドユーザに配送することができる。一例では、1つまたは複数のクライアントデバイス130は、ユーザインターフェース機能を提供し、1つまたは複数のサーバ110に通信し、このサーバ110が、クライアント要求処理、負荷平衡化、クライアント認証、認可、カレンダ項目の記憶および検索、請求、ならびに他の機能を実行することができる。上記および他の機能を、1つまたは複数の物理施設内に存在する1つまたは複数のサーバ110の間で分散させることができる。
【００１１】
別の例では、上でリストされたサーバ側機能の少なくとも一部を、1つまたは複数のクライアントデバイス130によって実行することができる。いくつかの実施態様では、クライアントデバイス130は、サーバ110に接続されていない間に、少なくともその機能のサブセットを実行することができる。この処理モードを、オフラインクライアント動作モードとも言われる。
【００１２】
たとえばクライアント要求処理、負荷平衡化、クライアント認証、認可、カレンダ項目の記憶および検索、ならびに/または請求などの上にリストした機能の一部は、サーバ側機能性に関係すると言われる場合がある。たとえばユーザ入力の受入ならびに/またはカレンダビューおよび/もしくはノートブックビュー内の情報のレンダリングなどの他の機能は、クライアント側機能性に関係すると言われる場合がある。しかし、いくつかの実施態様では、カレンダシステム1000が、サーバ側機能性に関係するサーバ側機能性の少なくとも一部とクライアント側機能性に関係する機能の少なくとも一部とを実行する1つまたは複数のコンピュータを含む場合がある。したがって、本明細書で言及される可能性があるクライアント側機能性およびサーバ側機能性の指定は、コンピュータシステム1000のコンポーネントに動作には何の関係もない、例示のためのものであることを意図されている。
【００１３】
一例では、コンピュータシステム1000は、図2によって概略的に示されるように、カレンダ項目およびメモを含むデータモデルをサポートすることができる。カレンダ項目は、識別子212と時刻214とを含むデータ構造210によって表され得る。いくつかの実施態様では、識別子212を、カレンダ項目のタイトルおよび/または説明を含む英数字文字の人間可読シーケンスによって提供することができる。代替案では、カレンダ項目識別子を、人間可読であることを意図されていない英数字識別子または非英数字識別子によって提供することができる。
【００１４】
いくつかの実施態様では、時刻214を、カレンダ項目によって識別されるイベントの開始時刻とそのイベントの持続時間とによって表すことができる。代替案では、時刻214を、イベントの開始時刻と終了時刻とによって表すことができる。イベントの開始時刻および/または終了時刻を、日付(たとえば、日、月、および年を含む)と時刻(たとえば、時、分、および秒を含む)とによって表すことができる。時刻214は、タイムゾーン識別子をさらに含むことができる。
【００１５】
データ構造210は、カレンダ項目タイトル216、説明218、位置220、カレンダ項目によって識別されるイベントの創始者の識別子222、イベントの参加者のリスト224、再発するスケジュール226、および/または他のフィールドをさらに含むことができる。いくつかの実施態様では、データ構造210は、カレンダ項目のタイプ識別子211を含むことができる。データ構造210によって表されるカレンダ項目の例は、面会予約、会議要求、リマインダなどを含むことができる。いくつかの実施態様では、データ構造210は、添付ファイルと言われる場合もあるデータセットへの1つまたは複数のポインタ228を含むことができる。一例では、添付ファイルを、テキスト、オーディオストリーム、ビデオストリーム、静止画像、その他など、任意のタイプのファイルによって提供することができる。
【００１６】
メモを、メモテキスト248を含むデータ構造240によって表すことができる。いくつかの実施態様では、データ構造240は、タイプ識別子241、メモ識別子242、メモの作成および/もしくは変更の時刻244、ならびに/またはメモのタイトル246をさらに含むことができる。時刻244を、日付(たとえば、日、月、および年を含む)と時刻(たとえば、時、分、および秒を含む)とによって表すことができる。時刻244は、タイムゾーン識別子をさらに含むことができる。
【００１７】
いくつかの実施態様では、データ構造240は、添付ファイルと言われる場合もあるデータセットへの1つまたは複数のポインタ250を含むことができる。一例では、添付ファイルを、テキスト、オーディオストリーム、ビデオストリーム、静止画像、その他など、任意のタイプのファイルによって提供することができる。
【００１８】
いくつかの実施態様では、コンピュータシステム1000は、1つもしくは複数のサーバ110および/または1つもしくは複数のクライアントデバイス130を含む1つまたは複数のコンピュータ上に存在するリレーショナルデータベース内に、上で説明されたデータ構造を記憶することができる。いくつかの実施態様では、たとえば階層データベースまたは1つもしくは複数のフラットファイルを含む、上で説明されたデータモデルを記憶する他の方法をコンピュータシステム1000によって使用して、上で説明されたデータモデルに従うカレンダデータを記憶することができる。
【００１９】
いくつかの実施態様では、コンピュータシステム1000は、Lightweight Directory Access Protocol (LDAP)サーバなどのディレクトリサーバ内に、カレンダシステムに関連するユーザディレクトリを記憶することができる。いくつかの実施態様では、たとえばサーバ110のオペレーティングシステムによって提供されるネイティブユーザディレクトリを含むユーザディレクトリを記憶する他の方法を、コンピュータシステム1000によって使用することができる。
【００２０】
カレンダアプリケーションを実行するコンピュータシステム1000は、クライアントデバイス130の1つまたは複数の入力インターフェースを介して1つまたは複数の入力ストリームを受け入れることができる。一例では、コンピュータシステム1000は、クライアントデバイス130のキーボードおよび/またはタッチスクリーンを介して、英数字文字または非英数字文字のシーケンスを含むテキストのユーザ入力を受け入れることができる。別の例では、コンピュータシステム1000は、クライアントデバイス130のマイクロホンを介して音声ストリームを受け入れ、その後、その音声入力をテキストに変換することができる。さらなる例では、コンピュータシステム1000は、クライアントデバイス130のビデオカメラを介してビデオストリームを受け入れ、その後、そのビデオストリームをテキストに変換することができる。さらなる例では、コンピュータシステム1000は、イメージングデバイスを介して、イメージングデバイスのイメージングレンズによって焦点を合わされた物体の画像を獲得し、その後、その画像をテキストに変換することができる。いくつかの実施態様では、コンピュータシステム1000は、ネットワークインターフェースを介して上でリストされたタイプまたは他のタイプのいずれかの入力を受信することができる。
【００２１】
その後、コンピュータシステム1000は、入力ストリームを処理して、カレンダ項目またはメモなどの入力項目を表す文字のシーケンスを作ることができる。いくつかの実施態様では、入力されたテキストを、そのテキスト内で見つかる1つまたは複数の事前定義の文字に基づいて、複数の入力項目に分割することができる。たとえば、入力項目の境界を示すディバイダを、コンマ(.)などの句読点文字によって表すことができる。別の例では、ディバイダを、コンマとそれに続く「ニューライン」制御文字、2つの連続するコンマ、または2つの連続する「ニューライン」制御文字など、複数の文字によって表すことができる。
【００２２】
いくつかの実施態様では、入力項目をテキストに変換する前に、入力ストリームを複数の入力項目に分割することができる。一例では、手書きテキストおよび/またはタイプされたテキストを担持する物体の画像を含むビデオストリームを、各項目が1つのテキストを担持する物体の画像を含む複数の入力項目に分割することができる。別の例では、テキストを担持する物体の静止画像を、テキストを複数の部分に視覚的に分割する線または形状など、画像内で見つかる複数の独特のグラフィカルディバイダに基づいて、複数の画像に分割することができる。さらなる例では、オーディオストリームを、オーディオストリーム内で見つかる複数の独特のオーディオディバイダ(たとえば、可聴のまたは非可聴のサウンド、事前定義のフレーズ、または事前定義のしきい値を超える持続時間を有する無音断片を含む、事前定義のサウンド)に基づいて、複数の部分に分割することができる。
【００２３】
その後、コンピュータシステム1000は、入力項目を解析して、入力項目が時刻参照を含むかどうかを、したがって入力項目がカレンダ項目またはメモを表すものとして分類され得るかどうかを判定することができる。コンピュータシステム1000は、入力項目を解析するさまざまな方法を使用することができる。一例では、コンピュータシステム1000は、たとえばMM/DD/YY、MM/DD/YYYY、および/またはMM/DD/YYYY hh:mm:ssなど、1つまたは複数の時刻フォーマットを記憶することができる。各フォーマットストリングは、1つまたは複数のテキストフィールドと、1つまたは複数のセパレータ記号とを含むことができる。テキストフィールドは、事前定義のアルファベットからの定義された個数の文字を記憶するように指定され得、日付および/または時刻の事前定義の部分を表すことができる(たとえば、MMフィールドは、2桁を記憶することができ、月を表すことができる)。入力されたテキストの一部が事前定義の時刻フォーマットと一致することの確立に応答して、コンピュータシステム1000は、識別されたフォーマットに基づいて時刻参照を復号し、その時刻参照を時刻データ構造に記憶することができる。
【００２４】
一例では、時刻データ構造は、日付(たとえば、日、月、および年を含む)と時刻(たとえば、時、分、および秒を含む)とを含むことができる。代替案では、時刻データ構造を、過去の事前定義の時刻(たとえば、1970年1月1日午前零時)から経過した秒数を含む整数フィールドを含むPOSIXスタイルの時刻変数によって表すことができる。いくつかの実施態様では、時刻データ構造は、タイムゾーン識別子をさらに含むことができる。代替案では、すべての時刻値を、たとえば協定世界時(UTC)などの事前定義のタイムゾーンにおいて、コンピュータシステム1000によって記憶することができる。
【００２５】
一例では、コンピュータシステム1000は、たとえば今日、明日、その他など、日を現在時刻に対して示す1つまたは複数の事前定義の語彙素によって表された相対時刻参照を検出することができる。別の例では、コンピュータシステム1000は、たとえば朝、昼、夕方、夜、その他など、時刻を示す1つまたは複数の事前定義の語彙素によって表され得る相対時刻参照を認識することができる。別の例では、コンピュータシステム1000は、たとえば日曜日、月曜日、火曜日、その他など、曜日を示す1つまたは複数の事前定義の語彙素によって表され得る相対時刻参照を認識することができる。
【００２６】
いくつかの実施態様では、コンピュータシステム1000は、たとえば「昼食後」、「営業終了時」、「1日の終り」、その他など、不正確な時刻参照を時刻にマッピングする1つまたは複数の事前定義の変換ルールおよび/または構成パラメータを適用することによって、不正確な相対テキスト時刻参照を時刻データ構造に変換することができる。
【００２７】
いくつかの実施態様では、コンピュータシステム1000は、入力ストリーム内で使用される1つまたは複数の自然言語を認識することができる。代替案では、入力ストリーム内で使用される1つまたは複数の自然言語を、コンピュータシステム1000の構成パラメータとして指定することができる。
【００２８】
本明細書で上で注記したように、入力項目が時刻参照を含むことの判定に応答して、コンピュータシステム1000は、本明細書で下でより詳細に説明するように、カレンダ項目を表すものとして入力項目を分類し、カレンダ項目データ構造内に、0個以上のオプションのフィールドと一緒に時刻参照によって識別される時刻を記憶することができる。入力項目が時刻参照を含まないことの判定に応答して、コンピュータシステム1000は、メモを表すものとして入力項目を分類し、メモデータ構造内に、現在時刻および添付ファイルへの1つまたは複数のポインタを含む他のオプションのフィールドと一緒に、入力項目のテキストの少なくとも一部を記憶することができる。
【００２９】
いくつかの実施態様では、コンピュータシステム1000は、タイプ識別子、タイトル、説明、カレンダ項目によって識別されるイベントの位置、イベントの創始者、イベントの参加者のリスト、イベントの再発するスケジュール、および/または1つもしくは複数の添付ファイルなど、1つまたは複数のカレンダ項目要素を抽出するために、カレンダ項目を表すものとして指定された入力項目を処理することができる。
【００３０】
タイプ識別子フィールドは、カレンダ項目のタイプ、たとえば面会予約、会議要求、リマインダなどを識別する数値またはストリング値によって表され得る。タイトルフィールドは、たとえば「プロジェクト状況会議」、「ワーキングランチ」、その他など、カレンダ項目によって参照されるイベントの人間可読識別子を含む英数字ストリングによって表され得る。説明フィールドは、たとえば会議の議題など、イベントに関する人間可読情報を含む英数字ストリングによって表され得る。位置フィールドは、たとえば「第100会議室」など、イベントの位置の人間可読の説明を含む英数字ストリングによって表され得る。いくつかの実施態様では、位置フィールドは、オフィススペース管理システム(office space management system)など、外部システム内のデータ構造の識別子によって表され得る。イベント創始者フィールドは、イベントを開始する人(たとえば、会議の議長)の識別子を含む英数字ストリングによって表され得る。いくつかの実施態様では、イベント創始者フィールドは、ユーザディレクトリ(たとえば、LDAPディレクトリ)など、外部システム内のデータ構造の識別子によって表され得る。参加者のリストは、イベントの参加者(たとえば、会議の出席者など)の識別子を含む英数字ストリングのリストによって表され得る。いくつかの実施態様では、イベント参加者識別子は、ユーザディレクトリ(たとえば、LDAPディレクトリ)など、外部システム内のデータ構造の識別子によって表され得る。再発するスケジュールフィールドは、イベントの日付および時刻のリストならびに/もしくは1つまたは複数の再発属性(たとえば、毎週、毎月など)によって表され得る。添付ファイルは、テキスト、オーディオストリーム、ビデオストリーム、静止画像、その他など、任意のタイプのファイルによって提供され得る。
【００３１】
ユーザインターフェースコマンドを受け取る時に、コンピュータシステム1000は、クライアントデバイス上で、たとえばカレンダビューおよびノートブックビューを含むさまざまなビューを介して1つまたは複数のカレンダ項目および/またはメモをレンダリングすることができる。
【００３２】
カレンダビューは、1つまたは複数の時刻インジケータへの視覚的参照と共にスクリーン上にレンダリングされる1つまたは複数のカレンダ項目を含むことができる。一例では、図3aによって概略的に示されるように、カレンダビュー300は、1つまたは複数の週ビュー310を含むことができる。週ビュー310は、曜日に対応する7つまでの視覚的に別個のスクリーン領域(日ビュー312)を含むことができる。各日ビューは、時刻に対応する複数のスクリーン領域314に視覚的に分割され得る。1つまたは複数の時刻値を、1つの日ビュー内に配置することができる。1つまたは複数のカレンダ項目316を、日ビュー312内に示すことができる。別の例では、図3bによって概略的に示されるように、カレンダビュー300は、1つまたは複数の月ビュー320を含むことができる。月ビュー320は、複数の週ビュー310を含むことができる。週ビュー310は、曜日に対応する7つまでの視覚的に別個のスクリーン領域(日ビュー312)を含むことができる。各日ビューは、時刻に対応する複数のスクリーン領域314に視覚的に分割され得る。1つまたは複数の時刻値を、1つの日ビュー内に配置することができる。1つまたは複数のカレンダ項目316を、日ビュー312内に示すことができる。さらなる例では、カレンダビューは、四半期ビュー、年ビュー、および/または他のビューを含むことができる。
【００３３】
ノートブックビューは、スクリーン上にレンダリングされた1つまたは複数のメモを含むことができる。一例では、図4aによって概略的に示されるように、ノートブックビュー400内にレンダリングされた1つまたは複数のメモ410を、タイトル/主題によってアルファベット順にソートすることができる。別の例では、図4bによって概略的に示されるように、ノートブックビュー400内にレンダリングされた1つまたは複数のメモを、メモの作成または変更の時刻の日付によって年代順にソートすることができる。
【００３４】
いくつかの実施態様では、コンピュータシステム1000は、たとえば、タイトル、キーワード、作成者、および/またはカレンダイベントもしくはメモの作成もしくは変更の日時によってカレンダイベントおよびメモを選択することおよび/またはソートすることによって、1つまたは複数のカレンダイベントおよび1つまたは複数のメモを混合ビュー内でレンダリングすることができる。
【００３５】
いくつかの実施態様では、コンピュータシステム1000は、既存のカレンダ項目または既存のメモを編集するユーザ入力を受け入れることができる。一例では、メモを編集するユーザ入力の受入に応答して、コンピュータシステム1000は、新たに追加されたテキストが時刻参照を含むことを判定することができる。そのような判定の後に、本明細書で上でより詳細に説明されたように、コンピュータシステム1000は、メモをカレンダ項目に変換し、カレンダ項目データ構造に、0個以上のオプションフィールドと一緒に時刻参照によって識別される時刻を記憶することができる。
【００３６】
図5に、カレンダアプリケーションの入力ストリームを処理する方法500の一実施形態の流れ図を示す。方法500を、ハードウェア(たとえば、回路網、専用論理、および/またはプログラム可能論理)、ソフトウェア(たとえば、ハードウェアシミュレーションを実行するためにコンピュータシステム上で実行可能な命令)、またはその組合せを含むことができるコンピュータシステムによって実行することができる。方法500および/またはその個々の関数、ルーチン、サブルーチン、または動作を、この方法を実行するコンピュータシステムの1つまたは複数の物理プロセッサによって実行することができる。方法500の複数の関数、ルーチン、サブルーチン、または動作を、並列にまたは上で説明された順序とは異なってもよい順序で実行することができる。
【００３７】
処理は、ブロック510で、コンピュータシステムがクライアントデバイスの1つまたは複数の入力インターフェースを介して入力ストリームを受け取ることによって始まることができる。一例では、コンピュータシステムは、クライアントデバイスのキーボードおよび/またはタッチスクリーンを介して、英数字文字または非英数字文字のシーケンスを含むテキストのユーザ入力を受け入れることができる。別の例では、コンピュータシステムは、クライアントデバイスのマイクロホンを介して、音声ストリームを受け入れることができる。さらなる例では、コンピュータシステムは、クライアントデバイスのビデオカメラを介して、ビデオストリームを受け入れることができる。さらなる例では、コンピュータシステムは、イメージングデバイスを介して、イメージングデバイスのイメージングレンズによって焦点を合わされた物体の画像を獲得することができる。いくつかの実施態様では、コンピュータシステムは、上でリストされたタイプまたは他のタイプのいずれかの入力をネットワークインターフェースを介して受信することができる。
【００３８】
ブロック520では、コンピュータシステムは、カレンダ項目またはメモなどの入力項目を表す文字のシーケンスを作るために入力ストリームを処理することができる。本明細書で上で注記されたように、1つまたは複数の非テキスト入力ストリームを、テキストに変換することができる。入力ストリームを、1つまたは複数の所定のテキスト、グラフィカル、および/または他のタイプのディバイダに基づいて複数の入力項目に分割することができる。
【００３９】
ブロック530での、入力項目が時刻参照を含むことの判定に応答して、コンピュータシステムは、ブロック540で処理を継続することができ、そうでない場合には、この方法は、ブロック550に分岐することができる。
【００４０】
ブロック540では、コンピュータシステムは、カレンダ項目データ構造を使用して、新しいカレンダ項目を作成し、そのメモリ内に記憶することができる。カレンダ項目は、時刻参照によって参照される時刻の識別子を含むことができる。いくつかの実施態様では、コンピュータシステムは、さらに、たとえば、本明細書で上でより詳細に説明されたように、タイプ識別子、タイトル、説明、カレンダ項目によって識別されるイベントの位置、イベントの創始者、イベントの参加者のリスト、イベントの再発するスケジュール、および/または1つもしくは複数の添付ファイルなどの1つまたは複数の要素を抽出するために、カレンダ項目を表すものとして指定された入力項目を処理することができる。
【００４１】
ブロック550では、コンピュータシステムは、メモデータ構造を使用して新しいメモを作成し、そのメモリ内に記憶することができる。メモは、入力項目テキストの少なくとも一部を含むことができる。いくつかの実施態様では、コンピュータシステムは、さらに、たとえば、本明細書で上でより詳細に説明されたように、タイトル、主題、および/または1つもしくは複数の添付ファイルなどの1つまたは複数の要素を抽出するために、メモを表すものとして指定された入力項目を処理することができる。
【００４２】
ブロック560では、コンピュータシステムは、1つまたは複数のカレンダ項目またはメモをレンダリングするためにカレンダビューまたはノートブックビューを選択するユーザ入力を受け取ることができる。
【００４３】
ブロック570では、コンピュータシステムは、本明細書で上でより詳細に説明されたように、カレンダビューをレンダリングすることができる。ブロック580では、コンピュータシステムは、本明細書で上でより詳細に説明されたように、ノートブックビューをレンダリングすることができる。ブロック570または580によって参照される動作の完了に応答して、この方法は、終了することができる。
【００４４】
図6に、本明細書で説明される方法のうちの1つまたは複数をコンピュータに実行させる命令を実行することができる例のコンピュータシステム100を示す。いくつかの実施形態では、コンピュータシステム100は、図1の1つまたは複数のサーバ110および/またはクライアントデバイスに対応することができる。
【００４５】
いくつかの実施形態では、コンピュータシステム100を、他のコンピュータシステムに接続する(たとえば、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどのネットワークを介して)ことができる。コンピュータシステム100は、クライアント-サーバ環境内のサーバまたはクライアントコンピュータの資格で、またはピアツーピア環境もしくは分散ネットワーク環境内のピアコンピュータとして、動作することができる。コンピュータシステム100は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラ電話、ウェブ機器、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのデバイスによって行われるべきアクションを指定する命令のセットを実行することができる(順次または他の形で)任意のデバイスによって提供され得る。
【００４６】
さらなる態様では、コンピュータシステム100は、バス1008を介してお互いと通信することができる、プロセッサ1002、揮発性メモリ1004(たとえば、ランダムアクセスメモリ(RAM))、不揮発性メモリ1006(たとえば、読取専用メモリ(ROM)または電気的消去可能プログラム可能ROM(EEPROM))、および2次メモリ1016(たとえば、データストレージデバイス)を含むことができる。プロセッサ1002は、汎用プロセッサ(たとえば、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他のタイプの命令セットを実施するマイクロプロセッサ、または命令セットのタイプの組合せを実施するマイクロプロセッサなど)または特殊化されたプロセッサ(たとえば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディジタル信号プロセッサ(DSP)、またはネットワークプロセッサなど)などの1つまたは複数のプロセッサによって提供され得る。
【００４７】
コンピュータシステム100は、さらに、ネットワークインターフェースデバイス1022を含むことができる。コンピュータシステム100は、ビデオディスプレイユニット1010(たとえば、LCD)、英数入力デバイス1012(たとえば、キーボード)、ポインティングデバイス1014(たとえば、マウス)、およびオーディオ出力デバイス1020(たとえば、スピーカ)をも含むことができる。
【００４８】
2次メモリ1016は、その上にカレンダアプリケーション120、125の命令を記憶することができる非一時的コンピュータ可読記憶媒体1024を含むことができる。カレンダアプリケーション120、125の命令は、コンピュータシステム1000によるその実行中にメインメモリ1004内および/またはプロセッサ1002内に完全にまたは部分的に存在することもでき、したがって、メインメモリ1004およびプロセッサ1002も、機械可読記憶媒体を構成することができる。コンピュータ可読記憶媒体1024は、図示の実施形態では単一の媒体として図示されているが、用語「コンピュータ可読記憶媒体」は、実行可能命令の1つまたは複数のセットを記憶する、単一の媒体または複数の媒体(たとえば、集中化されたもしくは分散されたデータベース、ならびに/または関連するキャッシュおよびサーバ)を含まなければならない。用語「コンピュータ可読記憶媒体」は、コンピュータに本明細書で説明される方法のうちの任意の1つまたは複数を実行させる、コンピュータによる実行のための命令のセットを記憶しまたは符号化することのできるすべての非一時的媒体をも含まなければならない。用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学媒体、および磁気媒体を含まなければならないが、これらに限定はされない。
【００４９】
本明細書で説明される方法、コンポーネント、および特徴を、ディスクリートハードウェアコンポーネントによって実施することができ、あるいは、ASIC、FPGA、DSP、または類似するデバイスなどの他のハードウェアコンポーネントの機能性に一体化することができる。さらに、方法、コンポーネント、および特徴を、ハードウェアデバイス内のファームウェアモジュールまたは機能回路網によって実施することができる。さらに、方法、コンポーネント、および特徴を、ハードウェアデバイスとソフトウェアコンポーネントとの任意の組合せで、またはソフトウェアのみにおいて実施することができる。
【００５０】
そうではない特に述べられない限り、「更新」、「識別」、「判定」、「送出」、「割当」、または類似物などの用語は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されたデータを操作し、コンピュータシステムのメモリもしくはレジスタまたは他のそのような情報記憶デバイス、情報伝送デバイス、もしくは情報表示デバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステムによって実行されまたは実施されるアクションおよびプロセスを指す。
【００５１】
本明細書で説明される実施形態は、本明細書で説明される方法を実行する装置にも関する。この装置は、要求される目的のために特に構成されるものとすることができ、あるいは、コンピュータシステム内に記憶されたコンピュータプログラムによって選択的にプログラムされた汎用コンピュータシステムを含むことができる。そのようなコンピュータプログラムを、コンピュータ可読非一時的記憶媒体内に記憶することができる。
【００５２】
本明細書で説明される方法および例示的な例は、どの特定のコンピュータまたは他の装置にも固有には関係しない。さまざまな汎用システムを、本明細書で説明される教示に従って使用することができ、あるいは、要求される方法の関数、ルーチン、サブルーチン、または動作を実行するために、より特殊化された装置を構成することが、より便利である場合がある。さまざまなこれらのシステムの要求される構造は、上の説明に示されるもののように見える。
【００５３】
上の説明は、制限的ではなく例示的であることを意図されたものである。本開示を、特定の例示的な例および実施形態を参照して説明したが、本開示が、説明された実施形態に限定されないことが認められる。本開示の範囲は、特許請求の範囲が資格を与えられる同等物のすべての範囲と一緒に、以下の特許請求の範囲を参照することによって判定されなければならない。
【符号の説明】
【００５４】
100  コンピュータシステム
110  サーバ
115  複数の相互接続するネットワーク
120  サーバ側部分
125  クライアント側部分
130  クライアントコンピュータ
210  データ構造
211  タイプ識別子
212  識別子
214  時刻
216  カレンダ項目タイトル
218  説明
220  位置
222  イベントの創始者の識別子
224  イベントの参加者のリスト
226  再発するスケジュール
228  ポインタ
240  データ構造
241  タイプ識別子
242  メモ識別子
244  メモの作成および/もしくは変更の時刻
246  メモのタイトル
248  メモテキスト
250  ポインタ
300  カレンダビュー
310  週ビュー
312  日ビュー
314  スクリーン領域
316  カレンダ項目
320  月ビュー
400  ノートブックビュー
410  メモ
500  方法
1000  コンピュータシステム
1002  プロセッサ
1004  揮発性メモリ
1006  不揮発性メモリ
1008  バス
1010  ビデオディスプレイユニット
1012  英数字入力デバイス
1014  ポインティングデバイス
1016  2次メモリ
1020  オーディオ出力デバイス
1022  ネットワークインターフェースデバイス
1024  非一時的コンピュータ可読記憶媒体
【図１】
0006554512.tif 000002
【図２】
0006554512.tif 000003
【図３ａ】
0006554512.tif 000004
【図３ｂ】
0006554512.tif 000005
【図４ａ】
0006554512.tif 000006
【図４ｂ】
0006554512.tif 000007
【図５】
0006554512.tif 000008
【図６】
0006554512.tif 000009