次に、添付図面を参照する。添付図面では、同様な数字は同様な要素を表し、様々な実施形態が説明されている。特に、図1およびその対応する議論は、諸実施形態を実装できる適切なコンピューティング環境の簡潔で一般的な説明を提供しようとするものである。
一般に、プログラム・モジュールには、ルーチン、プログラム、コンポーネント、データ構造、および、特定のタスクを実施するかまたは特定の抽象データ型を実装する他の種類の構造を含む。他のコンピュータ・システム構成を使用してもよい。当該構成には、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースのまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレーム・コンピュータ、等が含まれる。通信ネットワークを介して接続されるリモート処理装置によりタスクが実施される、分散コンピューティング環境を使用してもよい。分散コンピューティング環境では、プログラム・モジュールをローカルのメモリ記憶装置およびリモートのメモリ記憶装置の両方に配置してもよい。
次に図1を参照して、様々な実施形態で利用されるコンピュータ100向けの事例的なコンピュータ環境を説明する。図1に示すコンピュータ環境は、各々がサーバとして構成されうるコンピューティング装置、デスクトップもしくはモバイル・コンピュータ、または他の何らかの種類のコンピューティング装置を備え、CPU(central processing unit)5、RAM(random access memory)9およびROM(read−only memory)10を含むシステム・メモリ7、ならびに当該メモリをCPU5に接続するシステム・バス12を備える。
例えば起動中にコンピュータ内の要素間で情報を転送するのを支援する基本ルーチンを含む基本入/出力システムが、ROM10に格納される。コンピュータ100はさらに、オペレーティング・システム16、スプレッドシート・アプリケーション24、他のプログラム・モジュール25、およびメッセージ・マネージャ26を格納するための大容量記憶装置14を備える。これらは後でさらに詳細に説明する。
大容量記憶装置14は、バス12に接続された大容量記憶制御装置(図示せず)を介してCPU5に接続される。大容量記憶装置14およびその関連するコンピュータ読取可能媒体は、不揮発性記憶装置をコンピュータ100に提供する。本明細書に含まれるコンピュータ読取可能媒体の説明ではハード・ディスクまたはCD−ROMドライブのような大容量記憶装置に言及するが、コンピュータ読取可能媒体は、コンピュータ100がアクセスできる任意の利用可能な媒体であってよい。
限定ではなく例として、コンピュータ読取可能媒体がコンピュータ記憶媒体および通信媒体を含んでもよい。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラム・モジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性の媒体、取外し可能および取外し不能な媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only memory)、フラッシュ・メモリもしくは他の固体メモリ技術、CD−ROM、DVD(digital versatile disk)、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を格納するために使用できコンピュータ100がアクセス可能な他の任意の媒体が含まれるがこれらに限らない。
コンピュータ100は、インターネットのようなネットワーク18を介したリモート・コンピュータへの論理接続を用いてネットワーク環境で動作する。コンピュータ100を、バス12に接続されたネットワーク・インタフェース・ユニット20を介してネットワーク18に接続してもよい。ネットワーク接続は無線および/または有線であってもよい。ネットワーク・インタフェース・ユニット20を利用して、他の種類のネットワークおよびリモート・コンピュータ・システムに接続してもよい。コンピュータ100が、キーボード、マウス、または電子スタイラスペン(図1では図示せず)を含む幾つかの他の装置から入力を受け取って処理するための入/出力コントローラ22を備えてもよい。同様に、入/出力コントローラ22が入/出力をIP電話、ディスプレイ・スクリーン23、プリンタ、または他の種類の出力装置に提供してもよい。
キャリア・ネットワーク28は、モバイル装置29のようなモバイル装置との通信に関与するネットワークである。キャリア・ネットワーク28が、無線のコンポーネントおよび有線のコンポーネントの両方を含んでもよい。例えば、キャリア・ネットワーク28が、有線電話ネットワークに接続された中継塔を含んでもよい。一般に、中継塔は、携帯電話、ノートブック、ポケットPC、長距離通信接続、等のような、モバイル装置と行き来する通信を伝達する。これらの通信の一部がメッセージであってもよい。例えば、メッセージがSMS(short message service)メッセージ、EMS(Enhanced Messaging Service)メッセージ、MMS(multimedia messaging service)、IM(Instant Message)、等であってもよい。本明細書で使用する際、「テキスト・メッセージ」という用語は、SMSメッセージ、MMSメッセージおよびEMSメッセージならびに他の種類のショート・メッセージを指す。ゲートウェイ27はキャリア・ネットワーク28とIPネットワーク18との間でメッセージをルーティングする。
上で簡潔に述べたように、幾つかのプログラム・モジュールおよびデータ・ファイルをコンピュータ100の大容量記憶装置14およびRAM9に格納してもよい。当該幾つかのプログラム・モジュールおよびデータ・ファイルには、ワシントン州レドモンドのMICROSOFT社のWINDOWSサーバ「登録商標」またはWINDOWS7「登録商標」オペレーティング・システムのような、コンピュータの動作を制御するのに適したオペレーティング・システム16が含まれる。大容量記憶装置14およびRAM9が1つまたは複数のプログラム・モジュールを格納してもよい。特に、大容量記憶装置14およびRAM9が、スプレッドシート・アプリケーション24およびプログラム・モジュール25を含む、1つまたは複数のアプリケーション・プログラムを格納してもよい。1実施形態によれば、スプレッドシート・アプリケーション24はMICROSOFT EXCELスプレッドシート・アプリケーションである。他のスプレッドシート・アプリケーションを使用してもよい。
メッセージ・マネージャ26は、スプレッドシート・アプリケーション24に関連付けられたスプレッドシート11のようなスプレッドシートに関連付けられたテキスト・メッセージを処理するように構成される。例えば、モバイル装置29が、スプレッドシート11においてデータを入力/取得しかつ/または動作を実施するために使用するテキスト・メッセージをスプレッドシート24に送信してもよい。当該テキスト・メッセージを受け取ると、メッセージ・マネージャ26が当該テキスト・メッセージを解析して、当該スプレッドシートに関して実施する動作を判定する。当該動作は、スプレッドシートを用いて実施できる多種多様な動作、例えば、関数のパラメータの追加、削除、更新、取得、提供、関数の作成、関数の開始、等に関連してもよい。当該テキスト・メッセージを、スプレッドシート・ファイル全体、または、スプレッドシート内の1つもしくは複数のオブジェクトに関連付けてもよい。テキスト・メッセージを、当該スプレッドシートのセル、テーブル、チャート、および他のオブジェクトに関連付けてもよい。当該テキスト・メッセージを解析すると、メッセージ・マネージャ26は判定した動作を実施する。
スプレッドシート・アプリケーション24は、メッセージ・マネージャ26を用いて、スプレッドシートに関する情報を提供しかつ/またはスプレッドシート11内で入力すべき情報を要求するテキスト・メッセージを、生成および送信してもよい。例えば、当該スプレッドシートが、メッセージ・マネージャ26を用いて、スプレッドシート11内の1つまたは複数の値/オブジェクトの更新情報を送出し、かつ/または、スプレッドシート11内のテーブルを更新するための情報を要求する要求をテキスト・メッセージにおいて送信することができる。メッセージ・マネージャ26をスプレッドシート24の外部に示しているが、メッセージ・マネージャ26の機能をスプレッドシート・アプリケーション24内に、または他の何らかの位置に配置してもよい。
図2は、テキスト・メッセージをスプレッドシートに関連付けるためのシステムを示す。図示したように、システム200はコンピューティング装置1(210)、コンピューティング装置2(220)、コンピューティング装置3(230)、およびコンピューティング装置4(240)を備える。
当該コンピューティング装置は、テキスト・メッセージを送信/受信するように構成された任意の種類のコンピューティング装置であってもよい。例えば、当該コンピューティング装置は、携帯電話、タブレット、スマート・フォン、ラップトップ、等のようなモバイル・コンピューティング装置、ならびに、パーソナル・コンピュータおよびサーバのようなデスクトップ・コンピューティング装置であってもよい。
コンピューティング装置1〜3は、ネットワーク18を介してコンピューティング装置4に接続される。ネットワーク18は多種多様なネットワークであってもよい。例えば、ネットワーク18が、IPネットワーク、セルラ通信向けのキャリア・ネットワーク、等であってもよい。一般に、ネットワーク18を使用してテキスト・メッセージを、コンピューティング装置1、コンピューティング装置2、コンピューティング装置3、およびコンピューティング装置4のようなコンピューティング装置の間で送信することができる。コンピューティング装置の各々は、テキスト・メッセージを送信/受信するように構成されたメッセージング・アプリケーション(201)を備える。他のアプリケーションを当該コンピューティング装置の一部/全部にインストールしてもよい。図示したように、コンピューティング装置1は、スプレッドシート・アプリケーション202を備える。コンピューティング装置2はアプリケーション203を備える。アプリケーション203を、コンピューティング装置4上のスプレッドシート244のようなスプレッドシートに関連付けられたテキスト・メッセージに関連付けられたデータを参照/入力するように構成してもよい。コンピューティング装置4は、メッセージ・マネージャ26および構文解析器243を備えるスプレッドシート・アプリケーション241を備える。1実施形態によれば、コンピューティング装置4は、ネットワーク内に配置されたサーバとして構成される。例えば、コンピューティング装置4を、ローカル・ネットワーク内に配置してもよく、または、クラウド・ベースのサービスのようなオンライン・サービスに関連付けてもよい。コンピューティング装置4を、モバイル・コンピューティング装置またはパーソナル・コンピューティング装置として構成してもよい。
図示したように、コンピューティング装置1〜3は、スプレッドシート244に対してテキスト・メッセージを送信/受信するように構成される。限定とは意図しない説明の目的のため、ユーザが食事会のイベントを企画しており、誰が出席する予定かおよび出席者が何をこのイベントに持参するかを知りたいと仮定する。本例では、ユーザはスプレッドシート・アプリケーション241を用いてスプレッドシート・ファイル(即ち、スプレッドシート244)を作成して所望の情報を格納する。例えば、ユーザはスプレッドシート244内に単純なテーブルを作成して、イベント情報を格納することができる。作成されたテーブルには、招待客のリストを、彼らが出席する予定か否かおよび彼らが何を持参する予定かを把握する列と併せて含む。当該テーブルにはまた、出席者数、欠席者数、未応答者数、等のような他の情報を含んでもよい。
テキスト・メッセージを、様々な方法を用いてスプレッドシート/スプレッドシート・オブジェクト(複数可)に関連付けてもよい。当該関連付けが明示的/暗示的であってもよい。例えば、ユーザが、選択したオブジェクトをテキスト・メッセージに関連付けるメニュー・オプションを選択してもよい。テキスト・メッセージを、一意な識別子、および/または、関連付けられたスプレッドシート・オブジェクトを特定するために使用できる他の何らかの情報に関連付けてもよい。例えば、テキスト・メッセージを、それを受け取った際に、一意な識別子および/または他の何らかの情報を用いずに、単純にスプレッドシートに挿入してもよい。さらに、テキスト・メッセージの内容を構文解析器(例えば、自然言語構文解析器)で分析してもよい。当該構文解析器を用いて、どのアクション/動作をユーザが実現しようとしているかを、メッセージの内容から判定してもよい。テキスト・メッセージを、関連付けを示す(例えば、テキスト・メッセージが、各列が当該列の位置に基づいてマップされる列に配置される)ようにフォーマットしてもよい。スプレッドシート・オブジェクト(このケースではテーブル)は、それを関連付けるときには、当該テキスト・メッセージに関連付けられたテキスト・アドレス(即ち、電話番号)を介して当該テキスト・メッセージに関連付けられる。メッセージ・マネージャ26は、1つまたは複数のスプレッドシート・オブジェクトを関連付けるテキスト・アドレスのリストを格納する。テキスト・アドレスを、ローカルのデータ・ストア、グローバルなデータ・ストア、スプレッドシート、連絡先アプリケーションのアドレス帳、等に格納してもよい。
スプレッドシート・アプリケーション/ファイルが、それに関連付けられた1つまたは複数のテキスト・アドレスを有してもよい。単一の電話番号を、スプレッドシート・アプリケーションを関連付けるテキスト・メッセージに対するテキスト・アドレスとして使用してもよい。2つ以上の異なる電話番号を作成/使用して、スプレッドシート244内のスプレッドシート・オブジェクトを関連付けてもよい。例えば、電話番号206−XXX−YYY1宛ての任意のテキスト・メッセージを使用してスプレッドシート・アプリケーション241に到達してもよい。電話番号を直接1つまたは複数のスプレッドシート・オブジェクトに関連付けてもよい。例えば、電話番号206−XXX−YYY2を使用して、スプレッドシート244内に作成したテーブルにアクセスしてもよい。電話番号206−XXX−YYY2を使用してスプレッドシート244内の別のスプレッドシート・オブジェクトにアクセスしてもよい。他の電話番号(即ち、206−XXX−YYY3、206−XXX一YYY4、等)を使用してスプレッドシート244内の他のスプレッドシート・オブジェクトにアクセスしてもよい。
受け取ったテキスト・メッセージに関連付けられた特定情報を用いて、当該メッセージに関連付けられたスプレッドシート・オブジェクト(複数可)を判定してもよい。例えば、当該テキスト・メッセージ内の1つまたは複数の識別子を用いて、当該ファイル内の関連付けられたスプレッドシート・ファイルおよびスプレッドシート・オブジェクトを特定してもよい。当該識別子が、定義されたフォーマット(例えば、スプレッドシート識別子、オブジェクト識別子とそれに続く動作固有の情報)に従ってもよい。
テキスト・メッセージに関連付けられたコンテキスト情報を用いて、関連付けられたスプレッドシート・オブジェクトを判定してもよい。例えば、当該テキスト・メッセージを送信したユーザの身元を、受信したテキスト・メッセージから判定してもよい。身元情報を用いて、スプレッドシート・ファイル内の正しいスプレッドシート・オブジェクトにアクセスしてもよい。現在の例では、テキスト・メッセージを送信したユーザの身元を使用してテーブル内の招待客の名前を発見してもよい。位置情報、時間情報、日付情報、等のような他のコンテキスト情報をテキスト・メッセージから判定できるとしてもよい。
当該テキスト・メッセージはまた、スプレッドシートを用いて実施するための動作に関連する情報を含む。当該情報が、スプレッドシート内に配置すべきデータ(即ち、数字、メタデータ、ハイパーリンク、時刻、位置、ユーザの身元、テキスト)、数式に入れるべき1つまたは複数のパラメータ、当該スプレッドシート内に配置すべき数式、スプレッドシート・オブジェクト(例えば、テーブル、チャート、画像・・・)および/またはスプレッドシートのテーブル内に配置すべき値、スプレッドシートに対する情報(即ち、1つまたは複数の値、数式、チャート)の要求、スプレッドシート内に配置すべきデータの取得位置への参照、行の挿入、行の削除、値/オブジェクトの削除、等であってもよい。当該位置を、コンピューティング装置によって自動的に判定してもよく、または、ユーザが当該位置をテキスト・メッセージ内に配置してもよい。ユーザの身元を、コンピューティング装置によって自動的に判定してもよく、または、ユーザが当該情報をテキスト・メッセージ内に配置してもよい。
ユーザはまた、特定のユーザに情報を要求するテキスト・メッセージを他のユーザに送信すると指定してもよい。イベント企画の例では、ユーザが、応答を要求するテキスト・メッセージを各招待客に送信すると指定してもよい。当該テキスト・メッセージにより、イベントに出席する予定か否かおよび何を持参する予定かで応答することを各招待客に求めてもよい。当該テキスト・メッセージに関連付けられた他のパラメータを提供してもよい。例えば、テキスト・メッセージを送信する時刻、どこにテキスト・メッセージを送信するかを示す好適な番号、メールを作成すべき電話番号を自動的に発見するのに使用できる連絡先リスト(複数可)、MMSまたはSMSメッセージを送信すべきか否か、等である。スプレッドシート・オブジェクトをIMメッセージのような他の種類のメッセージに関連付けてもよい。例えば、テキスト・メッセージを関連付けるのではなく、IMメッセージを1つまたは複数のスプレッドシート・オブジェクトに関連付けてもよい。メッセージの種類の組合せ(例えば、幾つかのテキスト・メッセージ、幾つかのIMメッセージ、幾つかの電子メール・メッセージ、等)を使用してもよい。ユーザはまた、特定のユーザからの情報を提供するテキスト・メッセージを他のユーザに送信すると指定してもよい。イベント企画の例では、ユーザが、当該イベントに出席する予定のゲストのリストおよび彼らが何を持参する予定かを提供するテキスト・メッセージを各招待客に送信すると指定してもよい。
メッセージ・マネージャ26を、ユーザが指定できる様々な条件に基づいて定期的にテキスト・メッセージを送信するように構成してもよい。当該条件が、イベントの不発生(即ち、招待客が設定された期間内に応答しなかったこと)、イベントの発生(招待客が受諾したこと)、および/または、ユーザが指定した他の条件に関連してもよい。例えば、ユーザが、テキスト・メッセージをいつ送信するかを判定するために用いられる数式を提供してもよい。テキスト・メッセージを、1つまたは複数のセルが変化した(例えば、セルの値が別の値に変化した)ときに送信してもよい。テキスト・メッセージを送信して、スプレッドシート内に含まれる情報を1人または複数のユーザに提供してもよい。食事会の企画の例では、イベントの企画者が、招待客が招待を受諾/拒絶したとき常に更新情報を送信するようにスプレッドシート・アプリケーションを構成してもよい。イベントの主催者が、応答した人の合計数および出席者の合計数のような単純な計算を示すテキスト・メッセージを定期的にスプレッドシートから受け取ってもよい。
食事会の企画の例では、招待客が当該テキスト・メッセージを受け取り、当該テキスト・メッセージ内に含まれる質問を見て、当該テキスト・メッセージに対して自分の回答で回答する。当該質問では、特定の回答フォーマット(即ち、「はい」または「いいえ」に続いて空白、それに続いて何を持参する予定かのテキスト文字列)を指定してもよい。特定のフォーマットを要求しなくともよい。例えば、当該質問が、「イベントに出席する場合にはこのテキスト・メッセージに回答してください。」であってもよい。このケースでは、当該ユーザは単純に、テキスト・メッセージ内に回答を指定する何らかのコンテンツをともなって/何らコンテンツをともなわずに応答することができる。メッセージ・マネージャ26は、回答を受け取り、構文解析器243を用いて当該テキスト・メッセージを解析し、回答した参加者に対応する適切なテーブルの行を埋める。これにより、単純なデータ収集シナリオが、モバイル装置のような多くのユーザが使用する小さなスクリーン表示装置において、慣れ親しんだエントリ(テキスト)を用いて直感的に機能する。
メッセージ・マネージャ26をスプレッドシート244の外部に示してあるが、メッセージ・マネージャ26の機能をスプレッドシート・アプリケーション241内にまたは他の何らかの位置に配置してもよい。
図3は、テキスト・メッセージに関連付けられたスプレッドシートを示す。図示したように、スプレッドシート300は様々なスプレッドシート・オブジェクトを示す。当該スプレッドシート・オブジェクトには、セル301、行302、列303、テーブル304、数式305、およびリスト306が含まれる。各種類のオブジェクトを1つのみを示してあるが、1つまたは複数のテキスト・メッセージに関連付けられたより多くまたはより少ないオブジェクトをスプレッドシート300内に含めてもよい。テキスト・メッセージに関連付けられた他のオブジェクトをスプレッドシート300内に含めてもよい。
上述のように、テキスト・メッセージをスプレッドシートに関連付けてもよく、当該スプレッドシート内の零個または複数のオブジェクトに関連付けてもよい。現在の例では、テキスト・メッセージ1(TM1)がセル301に関連付けられている。テキスト・メッセージ2(TM2)は、行302および列303に関連付けられている。テキスト・メッセージ3(TM3)は、テーブル304に関連付けられている。テキスト・メッセージ4(TM4)は、数式305に関連付けられている。テキスト・メッセージ5(TM5)は、リスト305に関連付けられている。任意数のテキスト・メッセージを使用してスプレッドシート・オブジェクトを関連付けてもよい。スプレッドシート300内に配置された様々なオブジェクトにアクセスするために使用される単一のテキスト・メッセージを、スプレッドシート300に関連付けてもよい。
単一のテキスト・メッセージにより様々なオブジェクトを関連付ける場合は、テキスト・メッセージが、スプレッドシート内のスプレッドシート・オブジェクトを発見するための特定情報を含んでもよい。1実施形態によれば、各スプレッドシートおよびスプレッドシート・オブジェクトは、スプレッドシート・オブジェクトを特定するためにテキスト・メッセージ内に配置された一意な識別子により特定される。当該一意な識別子は数字、テキスト、ならびに/または数字およびテキストの何らかの組合せであってもよい。テキスト・メッセージを送信してスプレッドシート・オブジェクトを更新するとき、当該オブジェクトに対する一意な識別子をテキスト・メッセージ内(即ち、テキスト・メッセージの先頭、末端、または他の何らかの位置)に配置してもよい。当該一意な識別子を、スプレッドシート内および/または他の何らかの位置(例えば、コンピューティング装置のメモリ/データ・ストア)に格納してもよい。
例えば、テキスト・メッセージが、スプレッドシート・オブジェクトの名前、スプレッドシート内におけるスプレッドシート・オブジェクトの位置を含んでもよく、かつ/または、この情報を、テキスト・メッセージから判定できるコンテキスト情報と結合してもよい。例えば、送信者名、テキスト・メッセージの日時、送信者の位置、送信者のキャリアを、テキスト・メッセージから判定することができてもよい。当該コンテキスト情報を、単体で、および/または、テキスト・メッセージの内容と組み合わせて使用して、スプレッドシート・オブジェクトを判定してもよい。別のテキスト・アドレスを各スプレッドシート・オブジェクトに関連付けるときは、テキスト・メッセージが、当該テキスト・メッセージ自体の中でスプレッドシート・オブジェクトを特定する必要はない。
多種多様な動作を、関連付けられたスプレッドシート・オブジェクトに対して実施することができる。例えば、テキスト・メッセージを使用して、セル301内の値/オブジェクトの更新、削除、問い合わせを行ってもよい。
テキスト・メッセージ構造340は、テキスト・メッセージをスプレッドシートに関連付ける際に使用できる例示的な構造を示す。スプレッドシート・オブジェクト識別子とは、関連付けられたスプレッドシート・オブジェクトを特定する識別子である。1実施形態によれば、スプレッドシート・オブジェクト識別子を使用しなくともよい(例えば、スプレッドシート・オブジェクトに対する別個のテキスト・メッセージのアドレス、当該スプレッドシート・オブジェクトを、当該テキスト・メッセージに関連付けられたコンテキスト情報から判定することができる)。動作は、多種多様な内容、例えば、更新、削除、問合せ、新たな数式、数式の実行、等であってもよい。データは、当該動作を実施する際に用いられる。例えば、当該データが、当該動作で使用する値(複数可)、数式、コンテンツ(例えば、画像、ビデオ、ファイル)へのリンク、コンテンツ、数式のパラメータ、等であってもよい。他の構造を使用してもよい。テキスト・メッセージがスプレッドシートによってユーザに送信されるとき、テキスト・メッセージ構造340を含めても含めなくともよい。幾つかの例では、スプレッドシートが、スプレッドシートから取得される情報のみを含むサマリ情報とともにテキスト・メッセージを送信してもよい。他の例では、スプレッドシートに当該テキスト・メッセージ構造の一部/全部を含めて、ユーザが当該テキスト・メッセージ(例えば、「「テーブル304」とタイプし、続いて「はい」か「いいえ」で回答してください」)に応答するときに当該ユーザが当該情報を使用できるようにしてもよい。
次に図4および5を参照して、テキスト・メッセージをスプレッドシートに関連付けるための事例的なプロセスを説明する。本明細書で提示するルーチンの議論を読むと、様々な実施形態の論理動作が(1)一連のコンピュータ実行型の動作もしくはコンピューティング・システムで実行されているプログラム・モジュールとして、および/または、(2)コンピューティング・システム内の相互接続された機械論理回路または回路モジュールとして、実装されることは理解されよう。実装は、本発明を実装するコンピューティング・システムの性能要件に応じた選択の問題である。したがって、図示した、本明細書で説明した実施形態を構成する論理動作は、操作、構造的装置、動作、またはモジュールと様々に称される。これらの操作、構造的装置、動作、およびモジュールを、ソフトウエアで、ファームウェアで、特殊目的のデジタル論理で、およびそれらの任意に組合せで実装してもよい。
次に図4を参照すると、スプレッドシートに関連付けられたテキスト・メッセージを受け取るためのプロセス400が示されている。
開始ブロックの後、プロセスは動作410に移り、スプレッドシート宛てのテキスト・メッセージを受け取る。スプレッドシートは、それに関連付けられた1つまたは複数のテキスト・アドレスを有してもよい。例えば、スプレッドシートが、スプレッドシート内の関連付けられたスプレッドシート・オブジェクトごとに異なるテキスト・アドレスを有してもよく、スプレッドシートが、関連付けられたスプレッドシートに対して単一のテキスト・アドレスを有してもよく、スプレッドシートが、複数のオブジェクトに対して第1のテキスト・アドレスを使用し、単一のスプレッドシート・オブジェクトに対して第2のテキスト・アドレスを使用してもよい、等である。複数のスプレッドシートを1つまたは複数のテキスト・アドレスに関連付けてもよい。例えば、単一のテキスト・アドレスを2つ以上のスプレッドシートに関連付けてもよい。
ブロック420に移ると、テキスト・メッセージを解析する。一般に、テキスト・メッセージを解析すると、スプレッドシートおよびスプレッドシート・オブジェクトと対話する際に使用する情報が当該テキスト・メッセージから取得される。当該解析には、当該テキスト・メッセージの内容を調べて、当該メッセージが関連する関連付けられたスプレッドシート・オブジェクト(複数可)、実施すべき動作(複数可)、当該動作を実施する際に用いるデータを判定することを含んでもよい。テキスト・メッセージの解析を用いてコンテキスト情報を判定してもよい。例えば、テキスト・メッセージの送信者を特定し、次いでこの情報を別のサービスにより使用して追加の情報(例えば、テキスト・メッセージの送信者がどこにいるか?、送信者のタイトルは何か?、送信者はどの組織に属しているか?)を判定してもよい。
動作430に移り、関連付けられたスプレッドシート・オブジェクトを用いて実施すべき動作(複数可)を判定する。これらの動作の全部/一部をテキスト・メッセージ内で明示的に定義してもよく、かつ/または、当該動作の全部/一部をテキスト・メッセージから暗黙的に判定してもよい。明示的に定義するときは、実施すべき動作(複数可)が直接テキスト・メッセージ内で特定される。例えば、実施すべき動作(複数可)の名前を含めてもよく、かつ/または、他の何らかの特定情報(例えば、動作を検索するのに用いる数字)を使用してもよい。暗黙的に定義するときは、テキスト・メッセージに関連付けられたコンテキスト情報を用いて、実施すべき動作を判定してもよい。送信者情報を用いて、スプレッドシート内の1つまたは複数のオブジェクトを関連付けてもよい(例えば、行をユーザごとに割り当てる/作成する)。メッセージのデータ内容を用いて、関連付けられたスプレッドシート・オブジェクトを判定してもよい(例えば、ユーザから受け取った「はい」の票を「はい」列に配置してもよい)。幾つかの例では、関連付けられたスプレッドシート・オブジェクトを指示しないテキスト・メッセージを受け取ってもよい。このケースでは、データを、スプレッドシート内の所定の位置に追加するかまたは拒否してもよい。当該所定の位置は、スプレッドシートの末端、新たな行、新たな列、等であってもよい。
動作440に移ると、テキスト・メッセージから特定した動作(複数可)を、関連付けられたスプレッドシート・オブジェクト(複数可)で実施する。当該動作(複数可)は、スプレッドシート・オブジェクトを更新し次いでスプレッドシートが当該更新情報を提供するテキスト・メッセージを1人または複数のユーザに送信するといった、様々な動作を含んでもよい。当該動作(複数可)が、テキスト・メッセージ内で特定される別の位置からデータを取り出すことを必要としてもよい。例えば、テキスト・メッセージが、テキスト・メッセージ外に配置されたファイルを関連付けられたスプレッドシート・オブジェクト内に置くようにスプレッドシートに指示してもよい。当該動作(複数可)が、スプレッドシートから情報を取り出し、取り出した情報をテキスト・メッセージ内で指定された位置に格納することを必要としてもよい。
次いでプロセスは終了ブロックに移り、他の動作の処理に戻る。
図5は、テキスト・メッセージをスプレッドシートから生成し送信するための事例的なプロセスを示す。
開始動作の後、プロセスは動作510に移り、スプレッドシートに関連付けられたテキスト・メッセージを生成する。テキスト・メッセージが1つまたは複数のテキスト・アドレス宛てでもよく、テキスト・メッセージを使用して、当該スプレッドシートに関する情報を当該アドレスに提供する、関連付けられたスプレッドシート内で用いる情報を当該アドレスに要求する、または、情報の提供と情報の要求の何らかの組合せであってもよい。イベントまたは他の何らかの条件に応答して、テキスト・メッセージを自動的に生成してもよい。例えば、テキスト・メッセージを、ユーザの要求に応答して、テキスト・メッセージをユーザから受け取ったことに応答して、等により指定の時刻に生成してもよい。
動作520に移り、情報を任意にスプレッドシートから取得する。取得した情報は、送信すべきテキスト・メッセージに関連するものである。当該情報は、テキスト・メッセージの目的に応じて、別の情報を含んでもよい。当該テキスト・メッセージが値/オブジェクトをユーザに提供する場合、取得した情報はスプレッドシートからの値/オブジェクトである。当該テキスト・メッセージが値をユーザに要求する場合、関連付けられたスプレッドシート・オブジェクトを特定する情報を当該テキスト・メッセージに含めてもよい。
動作530に移り、テキスト・メッセージ(複数可)をアドレスに送信する。送信したテキスト・メッセージのコピーを、後に使用するために格納してもよい。例えば、テキスト・メッセージをスプレッドシートが受け取ったとき、スプレッドシートが、格納したテキスト・メッセージのリストを調べて、当該テキスト・メッセージが何に関連するか(例えば、テキスト・メッセージが過去の情報要求への応答である)を判定してもよい。格納したテキスト・メッセージを使用して、応答を受け取ったか否かを判定してもよい。応答を幾分かの期間後に受け取っていない場合は、スプレッドシートが、同じテキスト・アドレスおよび/または応答しなかったユーザに関連付けられた別のテキスト・アドレスに、要求を自動的に再送してもよい。
次いでプロセスは終了ブロックに移り、他の動作の処理に戻る。
以上の詳細、例、およびデータは本発明の構成の作製および使用を漏れなく説明するものである。本発明の多くの実施形態を本発明の趣旨および範囲から逸脱せずに実施可能であるので、本発明は添付の諸請求項に属する。