(57)【要約】      （修正有）【課題】固定条件及び動的条件を有するリンク済みイベントをスケジューリングする装置及び方法を提供する。  【解決手段】イベントはまた"実行準備時"と呼ばれる予定時及び実行時の間にもチェックされる（イベントが実行される場合）。実行準備時は、イベントに関連したある動的条件及びデータがチェックされ、動的条件が満たされるか確認される。動的条件が満たされる場合、イベントは実行されることが確認される。満たされない動的条件がある場合はイベントは変更される。イベントは取り消し或いは延期等によって変更できる。イベントが変更されるときは通知を送ることができる。またイベントの変更によりイベント群内の後続イベントに変更が及ぶ（伝播）。テンプレートは、予定時にユーザによって提供される何らかの省略情報があるイベント群である。テンプレートは、一般的イベント及びイベント群のスケジューリングを容易にするために用いられる。【選択図】  図２
2006139775.tif 000002
【特許請求の範囲】
【請求項１】
イベントをスケジューリングする装置であって、
ａ）イベントを格納するメモリを持つコンピュータと、
ｂ）イベントが実行される前に満たされなければならないイベント条件が関連づけられた、スケジューリング対象のイベントと、
ｃ）２つ以上のイベントを接続し、接続されるイベント間にシーケンシャルな関係を確立するリンクと、
ｄ）前記リンクによって接続されるイベントを持ち、イベント群内のすべてのイベント条件が満たされる場合にのみスケジューリングされるイベント群と、
を含む、スケジューリング装置。
【請求項２】
前記イベント条件はいくつか満たされず、満たされないイベント条件それぞれに調整ルールが関連づけられ、前記調整ルールは前記満たされないイベント条件それぞれに適用されて、イベントが実行されるように前記イベントが変更される、請求項１記載のスケジューリング装置。
【請求項３】
前記調整ルールを適用することで前記イベントが変更される、請求項２記載のスケジューリング装置。
【請求項４】
前記調整ルールを適用することで前記イベントが再スケジューリングされる、請求項２記載のスケジューリング装置。
【請求項５】
前記イベント条件のいくつかは満たされず、ユーザにメッセージが送られる、請求項１記載のスケジューリング装置。
【請求項６】
前記イベント条件は固定条件を含み、前記固定条件が満たされた場合、イベント予定時に前記イベントをスケジューリングすることによって前記イベントが実行される、請求項１記載のスケジューリング装置。
【請求項７】
前記イベント条件は動的条件を含み、前記動的条件が実行準備時に満たされた場合は、予定時にスケジューリングされているイベントが、実行時に前記イベントをユーザに通知することによって実行される、請求項１記載のスケジューリング装置。
【請求項８】
前記イベント条件は動的条件を含み、前記動的条件が実行準備時に満たされない場合、前記動的条件により、取り消し、再スケジューリング及び変更のいずれかの方法で前記イベントが変更される、請求項１記載のスケジューリング装置。
【請求項９】
前記イベント群内のイベントにリンクすることにより新しいイベントを接続できる、請求項１記載のスケジューリング装置。
【請求項１０】
２つの前記イベント群がリンクによってシーケンシャルに接続されて新しいイベント群が形成される、請求項１記載のスケジューリング装置。
【請求項１１】
前記新しいイベント群は電子カレンダーでスケジューリングされる、請求項１０記載のスケジューリング装置。
【請求項１２】
イベントをスケジューリングする装置であって、
ａ）イベント及び電子カレンダーを格納するメモリを持つコンピュータと、
ｂ）前記電子カレンダーでスケジューリングされ、前記電子カレンダーで予定時にイベントをスケジューリングする前に満たされなければならない固定条件であり、実行時にイベントを実行する前に実行準備時に満たされなければならない動的条件であるイベント条件が関連づけられた、イベントと、
ｃ）２つ以上のイベントを接続し、接続されるイベント間にシーケンシャルな関係と、前記イベント間に待ち間隔条件を確立するリンクと、
ｄ）前記リンクによってイベントが接続されたイベント群と、
ｅ）前記イベントのシーケンシャルな関係を定義するシーケンシャル情報を含む変数及び不足情報を有する、前記イベント群それぞれのテンプレート表現と、
ｆ）前記不足情報がユーザによって供給された時に前記テンプレート表現内のすべてのイベントをスケジューリングするプロセスと、
を含む、スケジューリング装置。
【請求項１３】
前記不足情報はテンプレート開始時間である、請求項１２記載のスケジューリング装置。
【請求項１４】
前記イベントは、前記イベントに関する追加情報に関連づけられた、請求項１２記載のスケジューリング装置。
【請求項１５】
前記イベント追加情報は、イベント・ルールによって操作されてある条件が評価される、請求項１４記載のスケジューリング装置。
【請求項１６】
前記イベント追加情報は、ユーザによって提供され、提供された前記イベント追加情報をもとにしてユーザに通知が行なわれる、請求項１４記載のスケジューリング装置。
【請求項１７】
前記イベント追加情報は監査情報である、請求項１４記載のスケジューリング装置。
【請求項１８】
前記イベント追加情報は、イベント繰り返し回数及びイベント繰り返し間隔を含み、前記イベントが前記イベント繰り返し回数によって指定された回数は予定され、予定時はそれぞれ前記イベント繰り返し間隔によって分けられる、請求項１５記載のスケジューリング装置。
【請求項１９】
医療イベントをスケジューリングする装置であって、
ａ）医療イベントを格納するメモリを持つコンピュータと、
ｂ）前記医療イベントが実行される前に満たされなければならない医療イベント条件が関連づられた、スケジューリング対象の医療イベントと、
ｃ）２つ以上の前記医療イベントを接続し、接続された医療イベント間にシーケンシャルな関係を確立するリンクと、
ｄ）前記医療イベントが前記リンクによって接続され、医療イベント群内の前記医療イベント条件がすべて満たされた場合にのみスケジューリングされる、医療イベント群と、
を含む、スケジューリング装置。
【請求項２０】
前記イベントは、財務、会計、銀行業務、マーケティング、テレマーケティング、建設及び生産のいずれかのアクティビティを記述した、請求項１記載のイベント・スケジューリング装置。
【請求項２１】
イベントをスケジューリングする装置であって、
ａ）イベント手段を格納するメモリ手段を持つコンピュータ手段と、
ｂ）２つ以上のイベント手段を接続し、接続された前記イベント手段間にシーケンシャルな関係を確立するリンク手段と、
ｃ）固定条件手段が満たされた場合には、予定時に前記イベント手段をスケジューリングできるようにする固定条件手段と、
ｄ）実行準備時に動的条件手段が満たされた場合に、実行時に前記イベント手段が実行できるようにする動的条件手段と、
を含む、スケジューリング装置。
【請求項２２】
ａ）予定時に、接続されてイベント群を形成するイベント間のシーケンシャルな関係を確立するリンクによって他のイベントに接続されているイベントの仮開始時を調べるステップと、
ｂ）前記仮開始時が無効時かどうかを確認するステップと、
ｃ）前記仮開始時が無効時である場合は、調整ルールを前記仮開始時に適用して新しい仮開始時を作成するステップと、
ｄ）前記仮開始時を前記新しい仮開始時と置き換えるステップと、
ｅ）前記仮開始時がイベントの有効開始時間になるまでステップｂ乃至ステップｅを繰り返すステップと、
ｆ）イベントを前記有効開始時間にスケジューリングするステップと、
を含む、スケジューリング方法。
【請求項２３】
ｇ）実行準備時に、イベントの１つに関連づけられた動的条件が満たされるかどうかチェックするステップと、
ｈ）前記動的条件の１つが満たされない場合は、前記調整ルールによって指定されている通りにイベントを取り消すべきかどうか確認するステップと、
ｉ）イベントが取り消される場合には、ユーザに通知を行なうステップと、
ｊ）イベントが取り消されない場合には、前記調整ルールによって再スケジューリングが指定されているなら、イベントを再スケジューリングするステップと、
ｋ）イベントが取り消されないか或いは再スケジューリングされない場合には、前記調整ルールによって変更が指定されているならイベントを変更するステップと、
ｌ）イベントが取り消されない場合には、前記調整ルールによって変更及び再スケジューリングが指定されているなら、イベントを変更し再スケジューリングするステップと、
を含む、請求項２２記載の方法。
【請求項２４】
ｍ）イベントを変更した効果をイベント群全体に伝播させ、前記イベントの変更は取り消し及び再スケジューリングのいずれか、
を含む、請求項２３記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを利用したイベントのカレンダリング（calendaring）に関し、特に一時的関係や外部条件を満たす形でイベント及びイベント群をスケジューリングすることに関する。
【背景技術】
【０００２】
コンピュータを利用した将来のイベントのスケジューリングは、約束事、チェックポイント、及び納期等の項目を処理するために個人向けの情報管理ソフトウェアで用いられる。またグループ・カレンダー・ソフトウェアでは、ミーティングのために互いに便利な時間を見つけたり、会議室を予約する等のタスクを処理するために用いられる。また、生産時間を短縮しながら生産設備の利用を最適化するためにも用いられる。ビル建設等のプロジェクトの予定を立てる際には、何日か何週間か、あるいは何か月かに及ぶイベント間の依存性やあるリソース（作業時間、ある機械やあるレベルの要員の可用性等）に対する依存性が考慮されるプロジェクト管理アプリケーションにも用いられる。
【０００３】
コンピュータを利用した最も簡単なスケジューリングは、単にコンピュータを記憶媒体として使うだけである。イベントがいつ、どのように行なわれるかについての決定はエンド・ユーザが行なう。エンド・ユーザは、コンピュータを、エンド・ユーザ自身の計画立案の助けとして、カレンダー情報の格納・検索・配布等のために便利なもの、と捉えるだけである。このようなシステムは、腕時計、パーソナル・オーガナイザ、簡単なスケジューリング・ソフトウェア等に見られる。
【０００４】
これより多少高度な、コンピュータを利用したスケジューリングは、コンピュータによりスケジューリングの一部を行なう。例えば、一連のイベントをユーザが、最初のイベントの開始日と時間で指定でき、その後コンピュータが残りのイベントをスケジューリングする。或いは、コンピュータに所要完了日が与えられ、コンピュータは"後向きに"スケジューリングして、最初のイベントをいつ開始すべきかを知らせる。毎週開かれるミーティングや年４回の税金の支払い等、繰り返されるイベントはユーザが１度入力すればよい。
【０００５】
より進んだコンピュータ支援スケジューリングでは、追加情報を各イベントに関連づけることができる。追加情報は、コンピュータによって格納されるだけで操作はされないフリー・フォーム情報か、所要リソース、ミーティング場所、イベントに関係する個人名等の固定フィールド情報、或いはその両方からなる。また、"このプロジェクトでは週末のミーティングはなし"といった、スケジューリング上のグローバルな制限も可能な場合がある。こうしたスケジューリング・プログラムは、予定され相互に関連づけられたイベントのスケジュールが実際的でないこと（例えば、イベント１６には、予定日に使用できるよりも多くの大工が必要等）をユーザに知らせ、実行可能なスケジュールに"緩和"もしくは"調整"することができる。また、ある１つの実用的な結果（例えばデスクトップ・コンピュータのモデル３をステップ２７で生産するプロセス等）に関連したイベントの集まりを格納することで、それらを繰り返しスケジューリングする（例えば新しい注文が入る度に等）際に、エンド・ユーザによる入力を少なくすることができる。
【０００６】
従来技術の多くは、外部のデータや条件の関数としてイベントの取り消し、延期、或いは変更が可能な、イベント及びイベント群のスケジューリングを考慮していない。また従来技術は、イベントが予定された後で、実行される前に、動的な外部のデータ及び条件の関数としてイベントの取り消し、延期、或いは変更を自動的に行なうことはない。（動的なデータ及び条件とは、イベントが予定された後で、実行される前に変更の可能性のあるデータ及び条件である。）そのため従来技術では、このようなイベントの取り消しや延期を、それらイベントを含むスケジュール全体に適用する（伝播させる）ことはない。また従来技術では、そうした取り消し、延期、或いは変更が起こった場合にユーザに通知を行なわない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、イベント及びイベント群をコンピュータでスケジューリングする、改良された装置及び方法である。
【０００８】
本発明の他の目的は、スケジューラがイベントをスケジュール時に予定でき、スケジュール時とイベント実行時の間に起こる外部のデータ及び条件の変更に対応できる、イベント及びイベント群のコンピュータ・スケジューリングを行なう改良された装置及び方法である。
【０００９】
本発明の更に他の目的は、スケジューラが、一部定義されたイベント及びイベント群をスケジューリングできる、イベント及びイベント群のコンピュータ・スケジューリングを行なう改良された装置及び方法である。
【課題を解決するための手段】
【００１０】
これは、条件に依存するイベント及びイベント群をスケジューリングする装置及び方法である。イベントは予定時（イベント及びイベント群がスケジューリングされる際）にチェックされ、イベントに関連したある固定条件が満たされるようにされる。イベントはまた、予定時と実行時（イベントが実行される時）の間の"実行準備時"と呼ばれる時間に１回以上はチェックされる。実行準備時には、イベントに関連したある動的条件（データ）がチェックされ、動的条件（データ値範囲）が満たされるかどうか確認される。動的条件（データ）が満たされる場合、イベントは実行されることが確認される。動的条件（データ）が満たされない場合、イベントは変更される。イベントは、取り消し、変更、または延期により変更される。イベントが変更されるときは通知が送られる。またイベントの変更により、イベント群内の後のイベントに変更が生じる（伝播）ことがある。
【００１１】
テンプレートは、何らかの情報が欠けているイベント群である。テンプレートにより、共通のイベント及びイベント群のスケジューリングを容易にすることができる。これは通常、医者等のエキスパートが、テンプレートの設計中にテンプレートに何らかの基本情報を与えることによって行なわれる。予定時に、欠けている情報を、専門知識は比較的少ないユーザによって、また次にはエキスパートによって与えることができる。テンプレート情報を省略する代わりに、エキスパートは、一般値等のデフォルト情報または推奨情報を与えてユーザを支援することができる。
【発明を実施するための最良の形態】
【００１２】
本発明は、汎用コンピュータ装置で実行することができる。図１にブロック図として示したある好適な実施例１００は、ＩＢＭパーソナル・システム／２（ＰＳ／２）モデル８５９５マイクロチャネル・フロア・スタンディング４８６システム１０５（システム・ユニットに付属の"クイック・リファレンス"に説明）を使用する。ＩＢＭパーソナル・システム／２（ＰＳ／２）ディスプレイ・アダプタ１１０は、例えばグラフィック・インタフェース１２４上のビデオの再生に用いられる。この好適な実施例はまたＩＢＭオペレーティング・システム／２（ＯＳ／２）２．１（ＯＳ／２  ２．１クイック・リファレンスに説明）と、Smalltalk/VPM（Smalltalk/VPMチュートリアル／プログラミング・ハンドブックに説明）を使用する。この他、汎用コンピュータに接続できる従来型のマルチメディア・ハードウェア１３０も使用できる。このハードウェア１３０には、ビデオ・カセット・レコーダ、レーザ・ディスク・プレーヤ・アダプタ、オーディオ・キャプチャ／再生アダプタ等を追加できる。ＯＳ／２とＰＳ／２はＩＢＭの商標である。Smalltalk/VPMはDigitalk, Inc.の商標である。
【００１３】
コンピュータ装置１００には、周知のメモリ記憶装置１４０を使用できる。イベントを格納するカレンダー・データベース１４５はメモリ記憶装置１４０上に位置する。
【００１４】
図２は、スケジューリングされているイベント群２６０内の２つのイベント（２１０、２２０）を示すブロック図である。
【００１５】
図２は、２つのイベントを含む簡単なイベント群２６０の主な構成要素を示している。イベント（２１０、２２０）はスケジューリング対象の任意の出来事である。例えば、１）１９９５年２月１５日以前の納税記録をまとめる、２）５時にアスピリンを２錠飲む、３）その他、等がイベントになる。イベント群２６０は、ある目的を達成するために一緒に実行される、論理的に関係のある（例えば何らかのシーケンシャルな順序をなす）イベントである。例えば、１）納税記録をファイル別に整理する、２）病気を直す、等である。プロトコルは、ある目的を達成するために実行される、論理的関係のあるイベント及びイベント群２６０の特定のプロセスである。予定時にはスケジューラによって１つのイベントをスケジューリングできるように、プロトコル（或いは関連イベント２つ以上）は、別々の用途で起こるように、あるいは繰り返されるようにスケジューリングできる。例えば、アスピリンを毎日２錠、４日間与え、５日目には冷湿布を行なうというプロトコルがある。これは、ヘルスケア・プロバイダが腱炎を治療するために考案するようなプロトコルである。従って、腱炎と診断された人は、治療のためこのようにあらかじめ定義されたプロトコルが適用されることになる。下記の図１３及び図１４の説明も参照されたい。
【００１６】
ある好適な実施例では、イベント１（２１０）は、イベントを説明した１７個のフィールド（図３参照）と、それが予定され実行された時満たされる要件を格納する。イベント２（２２０）は、イベントを説明した１７個のフィールドと、それが予定され実行された時満たされる要件を格納する。イベントは、予定時と呼ばれる時間にスケジューリングされる。
【００１７】
イベント群２６０は、論理的に関係のあるイベント１（２１０）とイベント２（２２０）を含む。この場合の論理関係は、イベント１がイベント２の前に起こる（すなわち予定時に起こるよう予定されている）ということである。ある好適な実施例の場合、論理関係は前イベント・ポインタ（２１２、２２２）と後イベント・ポインタ（２１３、２２３）によって定義される。
【００１８】
図２に示した例では、イベント１の、前のイベントを指す前イベント・ポインタ２１２はヌルで、イベント１の、後のイベントを指す後イベント・ポインタ２１３はイベント２（２２０）を指す。同様に、イベント２の前イベント・ポインタ２２２はイベント１を指し、イベント２の後イベント・ポインタ２２３はヌルになる。２１３と２２２のデータは、イベント群２６０におけるイベント１、２間の論理関係を定義し、２つのイベント（２１０、２２０）間にサブシーケンス・リンク２３０を確立する。
【００１９】
好適な実施例では、ブロック２１４は、イベント１が起きた後イベント２が起きるまでの日数等の時間間隔を指定する。ブロック２１４で指定された時間間隔は待ち間隔条件２３５を指定する。待ち間隔条件２３５は、このイベント群２６０の論理関係の一部である。この例ではイベント２が最後のイベントなので、その間隔ブロック２２４はヌルである。ブロック２１４が値０を格納する場合は、両方のイベントが同じ時間、例えば同じ日に予定される。
【００２０】
予定時２５１にイベント１をスケジューリングする際に満たすべき一定の条件がある（図１０参照）。これら固定条件はイベント１がスケジューリングされる（２５５）前にチェックしなければならない。これら固定条件はブロック２１６で指定される。またこれらはイベント２をスケジューリングする際に満たし、それをスケジューリングする前にチェックしなければならない固定条件である。これらの条件は２２６で指定される。固定条件は、予定時２５１（ユーザ及び装置がスケジュールを定義または再定義するとき）に知ることができる条件（或いはデータ）である。固定条件の１つの例として、タイプＸのイベントは日曜日には実行できない、というものがある。
【００２１】
実行時２５６にイベント１を実行する前に（実行準備時間２５２、２５８）チェックし、満たすべき動的条件がある。通常、イベントの実行では、メッセージが送られてイベントの実行が促される。例えば、看護婦は、治療日の朝に患者の薬物治療を行なうように等、イベントについて詳しく説明したメッセージを受け取る。このような動的条件は、イベント１が実行される（時間２５６）前にチェックしなければならない。これら動的条件はブロック２１６で指定される。また、イベント２の実行時２７７にイベント２を実行する前に実行準備時間２５８でチェックし、満たすべき動的条件がある。これらの条件は２２６で指定される。
【００２２】
実行準備時間（２５２、２５８）は、動的条件に影響を与えるすべての外部データが利用できる、イベント実行前の時間と考えられる。例えば、実行準備時間（２５２、２５８）は、薬物治療が行なわれる前、患者の血液検査データが入った後になる。
【００２３】
動的条件は、予定時２５１と実行時（２５６、２７７）の間で変化する可能性のある条件（或いはデータ）である。通常、動的条件が満たされるかどうかは、実行時に近くなるまで確認できない。
【００２４】
イベント群２６０はテンプレート２６５として定義できる。テンプレート２６５は、一般的な用途のために予定時にスケジューリングできるイベント及びイベント群である。通常テンプレートには、それを比較的一般的なものにするため不足情報がある。例えば、図２のイベント群のテンプレートには繰り返し回数がないと考えられる（図３のブロック３７０を参照）。この不足情報をテンプレートに追加すれば、イベント群は、ある個人、アプリケーション、或いは状況にとって特別なものになる。１つの例として、ビルの塗装を行なうためイベント群２６０によって定義される工事予定のテンプレートが考えられる。これは、第１イベント２１０（壁にスパックルをつける）、第２イベント２２０（壁を塗る）、及びイベント間の３日間の待ち間隔２３５を記述する。このテンプレートで、第１イベント２１０の開始時間は指定されない。テンプレートをある特定の部屋の塗装に適用すると、テンプレートで開始日が指定される（２５５）。そこで、テンプレートにより特定のタスクの実行がマップされる（２５５、２７０）。例えば、スパックル塗布は、電子カレンダー２５０で１５日の月曜日にスタートし（２５６）、塗装は３日後にスタートする（２７６）。
【００２５】
イベント（２１０、２２０）またはイベント群２６０のマッピング（図２の２５５、２７０、２７２、２７５、及び図１０参照）は、各イベント（２１０、２２０）に関連した固定条件がすべて満たされる場合に、予定時２５１に装置１００によって行なわれる。マッピングによりイベント（２１０、２２０）がカレンダー２５０にセットされる。言い換えると、図２のイベントの開始日３２０や他の日は、図２のカレンダー２５０上で、イベント（２１０、２２０）に関連づけられるとされる。カレンダー上の時間は、装置１００のオペレーティング・システムのクロック等、従来からの周知の方法により管理できる。
【００２６】
図２の電子カレンダー２５０は、イベント及びイベント群を、またオプションではテンプレートも、格納するデータベースである。カレンダー内のイベントの追加、削除、或いは変更は、カレンダー・データベースにリクエストや指示を送ることによって行なわれ、追加、削除、或いは変更されるデータは、ユーザがカレンダー・アプリケーション・ソフトウェアを使って供給する。このようなアプリケーションの１つの例では、ユーザは、あるイベント群のテンプレートのビジュアル表現（名前等）を、従来の月別のカレンダーのグラフィック表現上の開始日にドラッグできる。これによりイベント群をその日にスタートする予定にすると要求できる。図１０乃至図１２で説明しているプログラムにより、イベント群は、その日にスタートした場合は正しくスケジューリングできないことがわかった場合、ビジュアルまたはオーディオの指示がユーザに出され、そうでない場合、月別カレンダーのグラフィックに、イベント群内のイベントがその日に予定された各日にワードまたはシンボルが表示される。
【００２７】
図２のテンプレート２６５は、情報が省略されているイベントまたはイベント群２６０である。イベント群２６０は、テンプレート２６５として作成され、指定されていない時間にスケジューリングされる共通のシーケンスが表わされる。ここでテンプレート２６５の省略された情報にはイベント開始日（２５６、２７６）が含まれる。他の事柄も省略できる（下記参照）。実際にユーザによって予定時２５１に、またイベント実行時（２５６、２７７）に選択される日は、ブロック２１６、２２６の条件を満たさなければならない。例えば、イベント１が"手術の準備"、イベント２は"手術"で、ユーザはイベント群をある特定の日に始まるよう予定する（２５５）場合、本発明は、待ち間隔２３５と、外科は日曜日は休みである等の固定条件３４２（２２６に含まれる）を考慮しながらイベント２（２２０）をスケジューリングできる。血液検査の値がある範囲内にある等、動的条件（図３の３５０を参照）により"手術"が開始できず、これがイベント２の条件（２２６に含まれる）の一部であった場合、本発明はイベント２を後日に（２７５）再スケジューリング（延期２７２）できる。
【００２８】
図３は好適なイベント・データ構造２１０Ａのブロック図である。
【００２９】
識別子ブロック３０５は、イベント２１０の機能に関する短い文字列記述である。例えば、ある好適な実施例で、イベント２１０は、月曜日にビタミンＢを３錠取ることとする。その場合、識別子は"VitB 3 M"等になる。他の実施例の場合、イベント２１０は"３か月毎の予測所得税の支払い"を表わす。その場合の識別子は"PayEstTax"等になる。以下のブロック説明ではこれら制限のない２つの例（医療分野と会計分野）を用いる。
【００３０】
記述ブロック３１０は、イベント２１０の機能に関する任意長の文字列記述である。先の好適な実施例では、記述は"Vitamin B 100MG 3 Tablets Mondays"になる。他の実施例では"Pay Quarterly Estimated Income Tax"になる。
【００３１】
開始日ブロック３２０はイベントが実行される日である。テンプレート（下記参照）であるか、イベント群テンプレートの一部であるイベント・データ構造２１０Ａは、テンプレートが、例えば実際のイベントをスケジューリングするのに用いられるまでこのフィールドは無視する。実施例によっては日付の一部に時刻が含まれる。
【００３２】
前イベント・ポインタ（ブロック３２５）は、イベントがシーケンス内でイベント群の一部としてリンクされるとき用いられる。このブロックは、一連のリンク済みイベントの第１イベントではヌルである。図２のブロック２１２、及び２２２を参照。
【００３３】
後イベント・ポインタ（ブロック３３０）は、イベントがイベント群の一部としてシーケンス内でリンクされているとき用いられる。ブロック３３０は、一連のリンク済みイベント内の最後のイベントであるイベントではヌルである。図２のブロック２１３、及び２２３を参照。
【００３４】
無効日ブロック３３５は、このイベントをスケジューリングしたり或いは実行したりはできない、日付及び曜日等の時間の集まりである。この固定条件（静的条件ともいう）は、予定時に用いられ、テンプレートがあるアプリケーションでイベントをスケジューリングするために用いられる時満たされる。例の場合無効日ブロックはヌルである。
【００３５】
無効調整ルール・ブロック３４０は、ブロック３３５が無効と示す時間（日）にイベントを予定することをユーザが要求した場合に、イベント予定時に行える５つの処理の内１つを示す。処理は、スケジューリングが無効であることをユーザに通知して停止する、イベントをユーザの希望日に最も近くユーザの希望日より早い時にスケジューリングする、イベントをユーザの希望日に最も近くユーザの希望日より遅い時にスケジューリングする、イベントをユーザの希望日より早いか遅いかにかかわらずユーザの希望日に出来るだけ近い時にスケジューリングし、どちらも同じく近い場合には後者を選ぶ、である。例の場合、無効調整ルール・ブロックはヌルである。
【００３６】
提案日ブロック３４５は、イベントをスケジューリングする曜日の名前である。医療の例では提案日は月曜日である。会計の例ではヌルである。
【００３７】
ブロック３３５、３４０、３４５、及び３５５は固定条件３４２と呼ばれる情報を格納する。
【００３８】
外部条件と調整ルール・ブロック３５０へのポインタは、イベントが実行される前に満たすべき０以上の外部条件（動的条件／データともいう）をリンクする。図７及び図８は、これらの条件がどのように指定され、条件が満たされない場合にどのような処理が取られるかを詳しく示している。医療の例では、ポインタは、例えば、血液検査結果がある範囲内にある場合にはビタミン摂取を控えることを指定した外部条件を指す。会計の例ではヌルである。これら外部条件３５０は動的である。
【００３９】
待ち間隔ブロック３５５（ブロック２３５参照）は、ブロック３３０の一部であった後イベントへの各ポインタについて整数を指定する。この整数は、このイベントの後の、通常は後続イベントがスケジューリングされる、日数等の時間を示す。これらの例で、後続イベントはないので間隔は０である。（図２は０ではない待ち間隔２３５の例を示している。）
【００４０】
ブロック３６０、３６５、３７０、及び３７５は、イベント（２１０等）がどのくらい繰り返されるかを指定する。繰り返し指定３７１により、イベント及びイベント群を簡単に繰り返しスケジューリングできる。
【００４１】
繰り返しフラグ・ブロック３６０は、イベントが定期的に繰り返されるか、或いは１回限りかを示す。医療の例では繰り返しフラグは真になる。ビタミンは毎週摂取されるからである。会計の例でも繰り返しフラグは真になる。予測税額は３か月毎に支払われることになるからである。
【００４２】
繰り返し間隔ブロック３６５は、イベントが繰り返される頻度を示す。例として、毎日、毎週、毎月、毎年、平日に毎日、３か月毎等がある。医療の例では繰り返し間隔は毎週である。会計の例では３か月毎である。
【００４３】
繰り返し回数ブロック３７０は、イベントが繰り返される日数、週数、月数、及び年数を指定する整数である。指定日まで、または無期限に繰り返される場合、このブロックは０を格納する。医療の例では、医者がビタミン補助剤を１０週間取ることを求める場合は、繰り返し回数は１０になる。会計の例では、税金は現在以降、３か月毎に支払うことになるので繰り返し回数は０になる。
【００４４】
最終繰り返し日ブロック３７５は日付（またはヌル）である。繰り返し回数が０なら、イベントはこの日まで（この日を含めて）繰り返される。これがヌルなら（また繰り返し回数が０なら）、イベントは無期限に繰り返される。医療の例では、イベントの繰り返しを制限するために繰り返し回数が用いられるので、最終繰り返し日はヌルである。会計の例では、税金は現在から３か月毎に支払われなければならないので、最終繰り返し日はヌルである。
【００４５】
"作成者"ブロック３８０は、イベントをスケジューリングした人を示す文字列である。医療の例では"Doctor Smith"等が作成者フィールドになる。会計の例では"Joe Taxpayer"等になる。このブロックは、個人、組織、或いはプロジェクト等、複数のユーザが同じカレンダーにイベントを追加するアプリケーション分野で用いられる。
【００４６】
イベント群ヘッダ・ポインタ・ブロック３８５は、これが単一イベントならヌルであるが、このイベントがイベント群２６０の一部であり、リンクされたイベントの前後のチェーンの第１イベントなら、イベント群ヘッダを指す。医療の例では、ビタミン療法が、予定されている治療の全体である場合、ポインタはヌルである。しかし医者がビタミンと何か他のものをまとめて処方するなら、医者はイベント群のテンプレートを作成でき、その場合、このポインタはヘッダにリンクされ、ヘッダの識別子は"Vitamins and Extra Water"等となる。会計の例ではポインタはヌルでよい。図１３及び図１４のブロック１１２６、及び１１１０にこのフィールドが用いられている。このフィールドにより、ソフトウェアは、イベント群ヘッダ（１１０５）と本体すべてをスキャンせずに、あるイベントからイベント群を識別できる。
【００４７】
図３の任意追加情報ポインタ・ブロック３９０は追加情報ポインタである。これは、ブロック３５０が外部条件すなわち動的条件を指定している場合に用いることができる。医療の例では、ポインタは患者データ・オブジェクトを指すことができる。会計の例ではポインタは個々の課税データ・オブジェクトを指すことができる。
【００４８】
ある好適な実施例の場合、データ構造２１０Ａは、イベント２１０、イベント群２６０、またはテンプレート２６５を定義するために使用できる。その確認は、データ構造２１０のフィールドにどのような情報があるかを調べることによって行なわれる。
【００４９】
データ構造２１０Ａを使ってイベントを記述するには、識別子フィールド３０５だけに情報があればよい。しかし他の情報も提供できる。例えば通常、条件（２１６、２２６）は指定される。これによりフレキシブルでインテリジェントなスケジューリングができるからである。通常、医者等のエキスパートは、テンプレートに何らかの情報（フィールド３０５を含む）を提供し、何らかの情報を省略する。エキスパートはこれを予定時２５１の前に行なう。省略された情報は、予定時２５１にユーザによって与えられる。ユーザの専門レベルは低くてもよい。
【００５０】
イベントがスケジューリングされると、識別子３０５の他に開始日３２０を与えなければならない。これは予定時２５１に行える。或いは識別子３０５はその前に与えられていることもある。
【００５１】
イベントがイベント群の一部である場合、イベント群２６０内の各イベント２１０には、識別子３０５、前イベント・ポインタ３２５及び後イベント・ポインタ３３０、並びに待ち間隔３５５が必要である。或いは、イベント群ヘッダ・ポインタ（３８５）を与えなければならない。これによりシステムは、これと共にグループ分けされている他のイベントを認識する。
【００５２】
図４は、先行／サブシーケンス・リンクで２つのイベントがどのようにリンクされるかを示す。イベントは、直前のイベント（３２５）へのポインタと直後のイベント（３３０）へのポインタを含むことがある。図４でイベントＡブロック３３０はイベントＢを指し、イベントＢブロック３２５はイベントＡを指す。各イベントの日付フィールド（３２０）は、ヌルではなく日付を含むので、この図は、スケジューリングされているイベントを示す。従って、図はブロック３２５、及び３３０が、予定時にユーザによってスケジューリングされた２つのイベント間の先行／サブシーケンス・リンクを形成していることを示す。（外部動的条件が生じ、これによりイベントの再スケジューリング（延期等）或いはイベントの取り消しといった開始日の調整が行なわれた場合には、本発明により、イベントの再スケジューリング或いは取り消しの伝播を要する後続イベントを見つけられるように、２つのイベント間のこのリンクが残るという点が重要である。）イベント及びイベント群が実行前にどのように取り消され、変更され、延期されるかの説明については図７及び図８を参照されたい。
【００５３】
図５は、ブロック３２５、３３０が、テンプレートの２つのイベント間に先行／サブシーケンス・リンクを形成していることを示す。テンプレートの場合、何らかの情報が、少なくとも開始日が、欠けている。ここではイベントの日付ブロック（３２０）はヌルであり、従ってこれらリンク済みイベントはテンプレートになる。イベントＡのブロック３３０は、イベントＡに続くイベントＢを指す。イベントＢのブロック３２５は、これに先立つイベントＡを指す。
【００５４】
図６は、追加情報が関連づけられたイベントを示す。この情報は外部条件ルールによって用いられ、調整ルールによって変更されることがある。図７、図８、図１１及び図１２の説明を参照されたい。追加情報のフォーマット、内容、及び量等は、用途に大きく依存し、従って、自己記述型ヘッダを持つ別のデータ構造に現われることがある。図６は、任意追加情報を指すイベントのブロック３９０の使い方を示す。
【００５５】
図７及び図８はそれぞれイベント条件の好適データ構造と関連調整ルール及び例を示すブロック図である。
【００５６】
図７で、外部条件（動的条件）と調整ルール構造７００の好適な実施例は９つのフィールドを含む。イベント２１０にセットされた各動的条件３５０について１つの構造７００が存在する。従って、各イベント２１０には０以上のルール構造７００のセット７０１が存在し得る。図１５及び図１６は、これらがどのように用いられるか詳しく説明しているが、一般には、イベントを実行する条件が満たされない場合には調整ルールが適用される。これらの構造は、イベント構造２１０Ａのブロック３５０で指し示される動的条件である。
【００５７】
好適な実施例では、ブロック７０５は、任意追加情報ブロック６９０からの値を使って関数やプログラム、好適にはブール結果、を格納する。（ブール）関数やプログラム７０５は、イベントにリンクされた任意追加情報（ブロック６９０）からの値を使用して結果（真或いは偽）を計算する。好適な実施例の場合、例えば条件は満たされ、結果は偽で、この調整ルールは適用されない。
【００５８】
調整タイプ・ブロック７１０は、関数が真と評価される、すなわち条件が満たされない場合に、イベントが"取り消し"か"延期"か、或いはそのパラメータを変更するかどうかを指定する。これらの変更は、実行前及び実行時、実行準備時（２５２、２５８）にスケジュール上で起こる。
【００５９】
延期回数ブロック７１５は、ブロック７１０が延期／変更を指定した時に用いられる。この回数はイベントが延期される日数を指定する。（延期は、ここでは再スケジューリングすなわち、カレンダー２５０上でイベントを時間的に早めるかまたは遅くすることを意味する。）
【００６０】
延期や取り消しをリンク済みイベントに伝播するフラグ・ブロック７２０は、このイベントの後続イベントとしてリンクされているイベントも延期または取り消されるかどうかを示す。
【００６１】
変更方法ブロック７２５は、ブロック７１０が延期／変更を指定した時に用いられる。これはイベントにリンクされた任意追加情報の値の変更を指定する。
【００６２】
変更方法記述ブロック７３０は、変更方法によって何が行なわれるかを自然言語で記述したテキストを指す。このテキストは、通知等のメッセージをユーザに送るのに使用できる。
【００６３】
条件記述ブロック７３５は、条件とは何かを自然言語で記述したテキストを指す。このテキストは、通知等のメッセージをユーザに送るのに使用できる。
【００６４】
通知アドレス・ブロック７４０は、電子メール・アドレス、ファックス番号、ポケットベル番号等の、０以上のアドレスを指す。条件が真であったときは、条件（ブロック７３５を使って）と処置（ブロック７１０とブロック７３０で指定の通り）を指定した自然言語の通知が各アドレスに送られる。これらの通知は、コンピュータからコンピュータへネットワークを通して送られるメッセージ等、他のタイプのメッセージも考えられる。
【００６５】
次の外部条件と調整ルールへのポインタ・ブロック７４５は、このイベントに２つ以上の条件／ルール構造が関連づけられている場合に、別の外部条件と調整ルール構造を指す。他の場合このフィールドはヌルである。
【００６６】
図８は、１９９４年１１月４日にJimmy Smithという患者にプレドニソーンを用いた化学療法を施すイベントにリンクされた外部条件構造の１つの例である。患者の名前とＡＮＣ数（血球数）、医者に処方された当初投薬量、及び与えられる予定の投薬量（同量からスタート）は、イベントにリンクされた任意追加情報内の全フィールドである。Dr. Smithは患者の医者である。
【００６７】
任意追加情報ブロック７５５からの値を使った（ブール）関数やプログラムは、患者のＡＮＣの値が１０００未満なら調整を行なうこと、すなわち調整ルールを適用することを指定する。患者のＡＮＣ値は毎日変化し、スケジューリング装置の外部にあるので、これは動的（外部）条件である。
【００６８】
調整タイプ・ブロック７６０は延期／変更である。
【００６９】
延期回数ブロック７６５は２日である。
【００７０】
延期や取り消しをリンク済みイベントに伝播するフラグ・ブロック７７０はＮＯである。従って、これにリンクされたイベントの取り消し、延期、もしくは変更はない。
【００７１】
変更方法ブロック７７５は、延期の他に、投薬量を医者の処方の半分に減らすことを指定する。
【００７２】
変更方法記述ブロック７８０は、変更方法"投薬量をオリジナルＲｘの５０％に減らす"の英語表記である。
【００７３】
条件記述ブロック７８５は、条件"値は１０００未満である"の英語表記である。
【００７４】
通知アドレス・ブロック７９０は２つの電子メール・アドレスを格納する。１つは患者の医者用、１つは化学療法を施す技師用で、それぞれDr.Smith@clinic.com、ChemoTechnician@clinic.comである。それぞれ、"患者：Jimmy Smith -- ＡＮＣ値が１０００未満なのでプレドニソーンは１９９４年１１月６日まで２日延期し、投薬量はオリジナルＲｘの５０％に減らす"といった内容のメッセージを受け取る。
【００７５】
次の外部条件と調整ルールへのポインタ・ブロック７９５は、指定されている唯一の条件は低ＡＮＣ値だけなので、ヌルである。このイベントで、ルール・セット７０１にはルールが１つある。
【００７６】
イベント２１０の取り消し（７１０）に用いられる動的条件３５０の例として、安全上の問題、中間状態で残しておけないものを完成させるためのリソースの欠如、等がある。イベント２１０の延期に用いられる動的条件３５０の例としては、わかっている時間内で解消されそうな望ましくない条件、等がある。動的条件３５０の例は、変更を行なうための式を前もって指定できる場合は、場所、量、及び期間等のイベント２１０の側面を変えるのに用いられる。
【００７７】
図９は接続されている２つのイベント・チェーンを示すブロック図である。チェーンの形成は、イベント２１０及びイベント群２６０から他のイベント群２６０を作成するために行なわれる。チェーンを形成するもう１つの用途は、イベント２１０及びイベント群２６０を、時間的に等、関係づけることである。ブロック８２５（第１イベント・チェーンの最後のイベントの後続フィールド）とブロック８２０（第２イベント・チェーンの第１イベントの先行フィールド）をセットすると、４つのリンク済みイベントのシングル・セットが形成される。
【００７８】
これは、医療分野の場合、医者が２つの治療手続きを１つずつ実行したいときに用いられる。建設分野では、配線と配管を改良するプロトコルの後に、塗装と清掃のプロトコルが続く場合に使用できる。
【００７９】
このリンク形成はユーザ入力により生じるものであって、自動ではない。
【００８０】
図１０は、イベント群２６０またはイベント２１０をスケジューリングするため予定時に装置によって実行されるステップのフローチャートを示す図である。
【００８１】
イベント群２６０がスケジューリングされると、グループ内の各イベント２１０に日付２５６がセットされる。実施例によるが、用いられる日付２５６は、カレンダー・アプリケーション・ソフトウェアを通してユーザによって与えられる。イベント群ヘッダは、群内のすべての第１イベントを指し（図１３のブロック１１０４）、これら第１イベントのいくつかに、リンク済みイベント（イベント・チェーン）が続くことがある。イベント群がスタートする日付は、すべての第１イベント（イベント１の２１０等）の日付２５６をセットするために用いられる。図１０のブロック９０５を参照されたい。（図１３ではブロック１１０７、及び１１１３がセットされる。）
【００８２】
第１イベント２１０それぞれについて（ブロック９０６）、後続のリンク済みイベント２２０は次のようにスケジューリングされる。第１イベント２１０はカレント・イベントとして処理され（ブロック９１０）、次イベントがある場合（９１５）、次の後続イベント２２０の日付がセットされる（ブロック９２０、詳しくは図１１及び図１２を参照）、そして装置は、この新たにスケジューリングされた（２７６）イベントをカレント・イベント２１０にし（ブロック９２５）、これに次イベント２２０があるかどうかチェックする（ブロック９１５）。そうでない場合、装置は一連のリンク済みイベントのスケジューリングを完了する。第１イベント２１０で始まるイベントの全てのチェーン８７０が完全にスケジューリングされると（ブロック９３０）、これでイベント群全体がスケジューリングされたことになる（ブロック９３５）。しかし、イベント群内にスケジューリングするイベント及びイベント・チェーンが残っている場合（ブロック９３０）、プロセスはステップ９０６から繰り返される。並列処理装置の場合は、イベント群の第１イベントは２つ以上並列に処理できることに注意されたい。
【００８３】
図１１及び図１２は、リンク済みイベント２２０（先行／サブシーケンス・チェーンの一部）について予定時にイベント日をセットするステップのフローチャートを示す図である。これはブロック９２０で実行されるプロセス１０００である。
【００８４】
ブロック１００５で、第１イベント２１０の待ち間隔（２３５、３５５）がチェックされる。待ち間隔が０なら、イベントは最初のイベントと同じ日付２５６にスケジューリングされる（ブロック１００７）。これは"薬Ａを取り、次に薬Ｂを取る"というイベント群で起こり得る。"ｘｘｘタイプの車には３００００マイル・サービス"というイベント群では、"オイルを抜く"という前イベントの後に、時間の遅れなく"オイル・フィルタを交換"というイベントが続くことが考えられる。
【００８５】
最初と後続のイベントが０以外の待ち間隔でリンクされている場合、ブロック１００９で、前イベントからの待ち間隔（ブロック３５５）を使い、それをそのイベントのスケジュール日（ブロック３２０）に追加することで、イベントをスケジューリングする仮日付が計算される。
【００８６】
この仮日付は、無効日（ブロック３３５）と呼ばれる固定条件のグループに対してチェックされる（ブロック１０１０）。そのイベントをその日（ブロック３３５）に実行することに関して何も不都合がない場合、仮日付は後イベントの予定日として用いられる（１０１１）。
【００８７】
他の場合、イベント構造２１０Ａが用いられて無効調整ルールが指示されるか、待ち間隔を正確に守らなければならないことが指示される（ブロック３４０）。調整ができない場合、プログラムはこれらリンク済みイベントをスケジューリングできない（ブロック１０１５）。予定時のこの時点で信号をユーザに送ることができる。
【００８８】
プログラムは、どの無効調整ルール３４０が指定されたか（ブロック１０１２）により、仮日付を後へ戻して、提案された間隔よりも少し早くイベントを実行する（ブロック１０１３）か、仮日付を進めることで、提案された間隔よりも少し遅くイベントを実行する（ブロック１０１４）。いずれにしろ、この調整済み仮日付は再び無効日に対してチェックされ（ブロック１０１０）、これによりプログラムは適切な日が見つかるまで後退させるか或いは進めることができる。調整ルール３４０によって"最も近い早い（遅い）日付"が指定された場合、制御はボックス１０１７に進む。
【００８９】
最も近い早い日付（CLOSEST-PreferEarly）、最も近い遅い日付（CLOSEST-PreferLate）という無効調整ルール３４０は、提案間隔よりも早い仮日付と遅い仮日付の２つの仮日付を決定する（ブロック１０１７）。それぞれ、ブロック１０１８で１日早い日と１日遅い日にシフトされ、これら２つの日付が両方とも有効でない場合（ブロック１０１９）、システムは引き続きさらに早い日付、遅い日付を探す。
【００９０】
両日（最も近い早い日／遅い日）とも許容できるなら２つの選択が可能である。CLOSEST-PreferEarlyが指定された場合（ブロック１０３０）、ここでは早い仮日付が選ばれる（ブロック１０６０）。CLOSEST-PreferEarlyが指定されなかった場合（ブロック１０３０）、遅い仮日付（ブロック１０５０）が選ばれる。
【００９１】
両方ではなく一方が無効だった場合、ブロック１０２２で、許容できるものが識別され、許容できる場合には早い仮日付（ブロック１０４０）が選択され、その日が許容された場合は遅い仮日付（ブロック１０５０）が選択される。
【００９２】
医療分野の好適な実施例では、リンク済みイベントを"注射＃１とその９日後のブースター注射"とすると、９日間が正確に守られなければならず、注射は無効日の土曜日と日曜日には行なえない場合、プロセス１０００は、シーケンス１０１５を木曜日か金曜日に始まるようにはスケジューリングしない。９日間が実際には９日以上の場合、"ブースター注射"という調整ルールは"後日に予定"（１０１２、１０１４）になる。注射＃１を木曜日か金曜日に予定する場合、ブースター注射は続く第２週目の月曜日に予定される。９日間が実際には"９日より遅くない"場合、調整ルールは"前日に予定"（１０１２、１０１３）になる。注射＃１を木曜日か金曜日に予定すると、ブースター注射は次の週の金曜日に予定することができる。９日が実際には"およそ９日後で、早く間違える方がよい"であれば、調整ルールはCLOSEST-PreferEarly（１０３０、１０６０）になる。注射＃１を木曜日に予定すれば、ブースター注射は翌週の金曜日に予定される。注射＃１を金曜日に予定すれば、ブースター注射は続く第２週目の月曜日に予定される。
【００９３】
他の実施例で、ある品物が購入され、買い手の銀行から売り手の口座に送金が２回行なわれるとする。２回目の支払いは初回の３０日後に行なわれなければならない。支払いが遅れた場合にはペナルティがあり、送金は週末には行なえないとする。初回の支払いが１９９４年１２月２日の金曜日に予定されている場合、２回目の支払いイベントは、"早めに予定"というタイブレイク（tie-break）法、無効日は土曜日及び日曜日、初回の支払いイベントは待ち間隔３０日である。ブロック１００５では待ち間隔０はない。ブロック１００９は仮日付を３０日後の１９９５年１月１日にセットする。ブロック１０１０はこれが日曜日つまり無効日であることを確認する。ブロック１０１２はタイブレイク法をチェックしてブロック１０１３に進み、そこで仮日付は１９９４年１２月３１日に調整される。ブロック１０１０はこれが土曜日すなわち無効であることを確認する。ブロック１０１２はタイブレイク法をチェックしてブロック１０１３に進み、そこで仮日付は１９９４年１２月３０日に調整される。ブロック１０１０はこれが金曜日すなわち許容されることを確認する。従って２回目の支払いは１９９４年１２月３０日に予定される。
【００９４】
図１３及び図１４は、リンケージを示すイベント群の例１１００のブロック図である。イベント（１１１０、１１３０、１１５０、１１９０）間のリンケージ（１１８０、１１８１、１１８３、１１８８）及びイベント群ヘッダ（１１０５）が示してある。イベントのチェーン間のリンケージ（１１８４、１１８５、１１８６、１１８７）も示してある。この例でイベント群は、月曜日１１１０、水曜日１１３０、及び金曜日１１５０にプレドニソーンが、月曜日にヴィンクリスティーンが投与される（１１９０）、全体で１０週間かかる化学療法に対する。
【００９５】
イベント群ヘッダ１１０５は、識別子フィールド１１０２、記述フィールド１１０３、及び群内のすべての第１イベントを指すフィールド１１０４を含む。この場合、フィールド１１０４は月曜日にプレドニソーンのイベント（１１１０）を指し（１１８０）、また月曜日にヴィンクリスティーンのイベント１１９０を指す（１１８１）。１０週の繰り返しは、プレドニソーンについてはフィールド１１２１乃至１１２３、１１４１乃至１１４３、１１６１乃至１１６３（それぞれ月曜日乃至水曜日）、ヴィンクリスティーンについては１１７１乃至１１７３によって指定される。
【００９６】
フィールド１１７０、１１１８は、プロトコルが月曜日にスタートすることを示す。全体のプロトコルは１９９４年１０月３日にスタートするよう予定され、図１１及び図１２のプロセス１０００により、水曜日（フィールド１１３３）と金曜日（フィールド１１５３）のプレドニソーンの開始日が追加されている。プロセス１０００は構造フィールド１１１４、１１３５と、待ち間隔フィールド１１２０、１１４０を使用している。フィールド１１３４、１１５４も３つのプレドニソーン・イベントをリンクしている。フィールド１１２６はプレドニソーン・イベントをイベント群ヘッダ１１０５にリンク（１１８３）し、フィールド１１１０はヴィンクリスティーン・イベントについて同様である。
【００９７】
フィールド１１２５、１１４５、１１６５、１１７５は、これらのイベントがこの患者のカレンダーにNurse Smithによって追加されたことを示す。
【００９８】
図１５及び図１６は、動的条件をチェックする際にイベント実行時に装置によって実行されるステップのフローチャート１２００を示す図である。このチェックは、実行準備時（２５２、２５８）、例えば、イベントが起こる直前に起こる。イベントは、動的条件及び調整ルールを含むことがあり、これらは、フィールド３５０によって指し示され、フィールド３９０によって指し示されるデータにより表わされる。フィールド３５０によって指し示される動的条件及び調整ルールは図７及び図８に示してある。
【００９９】
すべての外部（動的）条件及び調整ルールを通るパスは２つある。第１パスは、ブロック１２０５から始まりブロック１２３０で終わる。これは条件が真かどうかを確認する。その場合イベントはイベント実行時に取り消される。
【０１００】
ブロック１２０８は条件を評価する（フィールド７０５及び６９０からのデータを使用）。真でない、すなわち条件が満たされる場合、装置は次の条件にループする（１２３０）。真ならシステムはフィールド７１０をチェックし、取り消しが指定されていないなら（１２１０）、次の条件へのループが行なわれる（１２３０）、指定されている場合（１２１０）、フィールド７４０と７３５により、イベントが取り消されていることとその理由が関係者に通知される（１２１５）。ブロック１２２０はフィールド７２０をチェックし、取り消しが伝播される場合、このイベントにリンクされたイベントも取り消される。
【０１０１】
医療分野の好適な実施例では、リンク済みイベントは"注射＃１"及びその９日後の"ブースター注射"になるが、注射＃１に関連した動的（外部）条件は、いずれの注射も、患者の体温が９９°Ｆ（約３７．２°Ｃ）を超えた場合に行なうべきであることを示す。注射＃１のルールは真として伝播され（フィールド７２０）、後イベント・ポインタ（フィールド３３０）によりブースター注射も見つけられ取り消される。
【０１０２】
真である動的（外部）条件で取り消しが指定されていない場合、その条件を除外した第２パスがブロック１２３５から始まる。ブロック１２４０は真でない条件をバイパスする。ブールが真の条件、すなわち満たされない条件は、調整タイプとして延期もしくは変更を指定されているはずである（フィールド７１０）。ブロック１２４５は、延期回数（フィールド７１５）を（無効日を考慮して）日付に追加する。ブロック１２５０は、フィールド７２０をチェックし、伝播が指定されていれば、ブロック１２５５によって延期が伝播される。
【０１０３】
医療分野の好適な実施例では、リンク済みイベントは"注射＃１"及びその９日後の"ブースター注射"になるが、注射＃１に関連した動的（外部）条件は、患者の体温が９８°Ｆ（約３６．６°Ｃ）を下回る場合には（フィールド７０５）、注射を７日（フィールド７１５）延期（フィールド７１０）すべきであることを示す。注射＃１のルールは真として伝播されており（フィールド７２０）、次イベント・ポインタ（フィールド３３０）によりブースター注射も延期される。
【０１０４】
ブロック１２６０はフィールド７２５を調べる。変更方法がある場合、ブロック１２６５がそれを実行し、追加データ・フィールド６９０の値を変更する。
【０１０５】
ブロック１２７０は実際に調整ルールが適用されたかどうかチェックする。そうなら、ブロック１２７５がフィールド７４０及びフィールド７３０、７３５、７１５を使って関係者に通知を行なう。
【０１０６】
ブロック１２８０はブロック１２３５にループ・バックし、第２或いは第３の条件により必要になる延期もしくは変更を処理する。
【０１０７】
エキスパートは本発明により、プロトコルを、プロトコルのイベントそれぞれを実行する論理条件を含むテンプレートとしてエンコードできる。本発明では、テンプレートに不足情報があってもよく、これは後の予定時に、エキスパート或いは専門知識は比較的少ないユーザによっても提供できる。このようにしてエキスパート以外のユーザも、論理条件、任意に複雑になるイベント・シーケンス、またエキスパートが加えたイベント関係を満たすプロトコルをスケジューリングできる。
【０１０８】
例えば、エキスパートは、本発明により化学療法のプロトコルを作成する優れた医者である。エキスパートは、薬のタイプ、量、投薬順序、及び待ち時間等の論理条件といった情報をテンプレートに指定する。次に看護婦が、本発明により、患者の化学療法を計画し予定する開始日等、テンプレート内の不足情報を指定する。
【０１０９】
本発明の用途に制限はなく、上述の他、例えば、エキスパート・エンジニアは、ライン作業員やロボットによる商品の生産プロトコルを設計する、マーケティング戦略立案者は、テレマーケティング会社によってイベントが実行される新製品の投入計画を立てる、エキスパートのローン・マネージャは、抵当権を与える手続きを実施するローン・オフィスのプロトコルを設計する、エキスパートのプロジェクト・マネージャは、イベントが請負業者によって実行されるプロジェクトのプロトコルを設計する、エキスパートの化学者は、合成物を生産するプロセスのプロトコルを設計する、等である。
【０１１０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【０１１１】
（１）イベントをスケジューリングする装置であって、
ａ）イベントを格納するメモリを持つコンピュータと、
ｂ）イベントが実行される前に満たされなければならないイベント条件が関連づけられた、スケジューリング対象のイベントと、
ｃ）２つ以上のイベントを接続し、接続されるイベント間にシーケンシャルな関係を確立するリンクと、
ｄ）前記リンクによって接続されるイベントを持ち、イベント群内のすべてのイベント条件が満たされる場合にのみスケジューリングされるイベント群と、
を含む、スケジューリング装置。
（２）前記イベント条件はいくつか満たされず、満たされないイベント条件それぞれに調整ルールが関連づけられ、前記調整ルールは前記満たされないイベント条件それぞれに適用されて、イベントが実行されるように前記イベントが変更される、前記（１）記載のスケジューリング装置。
（３）前記調整ルールを適用することで前記イベントが変更される、前記（２）記載のスケジューリング装置。
（４）前記調整ルールを適用することで前記イベントが再スケジューリングされる、前記（２）記載のスケジューリング装置。
（５）前記イベント条件のいくつかは満たされず、ユーザにメッセージが送られる、前記（１）記載のスケジューリング装置。
（６）前記イベント条件は固定条件を含み、前記固定条件が満たされた場合、イベント予定時に前記イベントをスケジューリングすることによって前記イベントが実行される、前記（１）記載のスケジューリング装置。
（７）前記イベント条件は動的条件を含み、前記動的条件が実行準備時に満たされた場合は、予定時にスケジューリングされているイベントが、実行時に前記イベントをユーザに通知することによって実行される、前記（１）記載のスケジューリング装置。
（８）前記イベント条件は動的条件を含み、前記動的条件が実行準備時に満たされない場合、前記動的条件により、取り消し、再スケジューリング及び変更のいずれかの方法で前記イベントが変更される、前記（１）記載のスケジューリング装置。
（９）前記イベント群内のイベントにリンクすることにより新しいイベントを接続できる、前記（１）記載のスケジューリング装置。
（１０）２つの前記イベント群がリンクによってシーケンシャルに接続されて新しいイベント群が形成される、前記（１）記載のスケジューリング装置。
（１１）前記新しいイベント群は電子カレンダーでスケジューリングされる、前記（１０）記載のスケジューリング装置。
（１２）イベントをスケジューリングする装置であって、
ａ）イベント及び電子カレンダーを格納するメモリを持つコンピュータと、
ｂ）前記電子カレンダーでスケジューリングされ、前記電子カレンダーで予定時にイベントをスケジューリングする前に満たされなければならない固定条件であり、実行時にイベントを実行する前に実行準備時に満たされなければならない動的条件であるイベント条件が関連づけられた、イベントと、
ｃ）２つ以上のイベントを接続し、接続されるイベント間にシーケンシャルな関係と、前記イベント間に待ち間隔条件を確立するリンクと、
ｄ）前記リンクによってイベントが接続されたイベント群と、
ｅ）前記イベントのシーケンシャルな関係を定義するシーケンシャル情報を含む変数及び不足情報を有する、前記イベント群それぞれのテンプレート表現と、
ｆ）前記不足情報がユーザによって供給された時に前記テンプレート表現内のすべてのイベントをスケジューリングするプロセスと、
を含む、スケジューリング装置。
（１３）前記不足情報はテンプレート開始時間である、前記（１２）記載のスケジューリング装置。
（１４）前記イベントは、前記イベントに関する追加情報に関連づけられた、前記（１２）記載のスケジューリング装置。
（１５）前記イベント追加情報は、イベント・ルールによって操作されてある条件が評価される、前記（１４）記載のスケジューリング装置。
（１６）前記イベント追加情報は、ユーザによって提供され、提供された前記イベント追加情報をもとにしてユーザに通知が行なわれる、前記（１４）記載のスケジューリング装置。
（１７）前記イベント追加情報は監査情報である、前記（１４）記載のスケジューリング装置。
（１８）前記イベント追加情報は、イベント繰り返し回数及びイベント繰り返し間隔を含み、前記イベントが前記イベント繰り返し回数によって指定された回数は予定され、予定時はそれぞれ前記イベント繰り返し間隔によって分けられる、前記（１５）記載のスケジューリング装置。
（１９）医療イベントをスケジューリングする装置であって、
ａ）医療イベントを格納するメモリを持つコンピュータと、
ｂ）前記医療イベントが実行される前に満たされなければならない医療イベント条件が関連づられた、スケジューリング対象の医療イベントと、
ｃ）２つ以上の前記医療イベントを接続し、接続された医療イベント間にシーケンシャルな関係を確立するリンクと、
ｄ）前記医療イベントが前記リンクによって接続され、医療イベント群内の前記医療イベント条件がすべて満たされた場合にのみスケジューリングされる、医療イベント群と、
を含む、スケジューリング装置。
（２０）前記イベントは、財務、会計、銀行業務、マーケティング、テレマーケティング、建設及び生産のいずれかのアクティビティを記述した、前記（１）記載のイベント・スケジューリング装置。
（２１）イベントをスケジューリングする装置であって、
ａ）イベント手段を格納するメモリ手段を持つコンピュータ手段と、
ｂ）２つ以上のイベント手段を接続し、接続された前記イベント手段間にシーケンシャルな関係を確立するリンク手段と、
ｃ）固定条件手段が満たされた場合には、予定時に前記イベント手段をスケジューリングできるようにする固定条件手段と、
ｄ）実行準備時に動的条件手段が満たされた場合に、実行時に前記イベント手段が実行できるようにする動的条件手段と、
を含む、スケジューリング装置。
（２２）ａ）予定時に、接続されてイベント群を形成するイベント間のシーケンシャルな関係を確立するリンクによって他のイベントに接続されているイベントの仮開始時を調べるステップと、
ｂ）前記仮開始時が無効時かどうかを確認するステップと、
ｃ）前記仮開始時が無効時である場合は、調整ルールを前記仮開始時に適用して新しい仮開始時を作成するステップと、
ｄ）前記仮開始時を前記新しい仮開始時と置き換えるステップと、
ｅ）前記仮開始時がイベントの有効開始時間になるまでステップｂ乃至ステップｅを繰り返すステップと、
ｆ）イベントを前記有効開始時間にスケジューリングするステップと、
を含む、スケジューリング方法。
（２３）ｇ）実行準備時に、イベントの１つに関連づけられた動的条件が満たされるかどうかチェックするステップと、
ｈ）前記動的条件の１つが満たされない場合は、前記調整ルールによって指定されている通りにイベントを取り消すべきかどうか確認するステップと、
ｉ）イベントが取り消される場合には、ユーザに通知を行なうステップと、
ｊ）イベントが取り消されない場合には、前記調整ルールによって再スケジューリングが指定されているなら、イベントを再スケジューリングするステップと、
ｋ）イベントが取り消されないか或いは再スケジューリングされない場合には、前記調整ルールによって変更が指定されているならイベントを変更するステップと、
ｌ）イベントが取り消されない場合には、前記調整ルールによって変更及び再スケジューリングが指定されているなら、イベントを変更し再スケジューリングするステップと、
を含む、前記（２２）記載の方法。
（２４）ｍ）イベントを変更した効果をイベント群全体に伝播させ、前記イベントの変更は取り消し及び再スケジューリングのいずれか、
を含む、前記（２３）記載の方法。
【図面の簡単な説明】
【０１１２】
【図１】本発明を実現するある好適なコンピュータ装置のブロック図である。
【図２】スケジューリングされているイベント群内の２つのイベントを示すブロック図である。
【図３】好適なイベント・データ構造のブロック図である。
【図４】シーケンシャルにスケジューリングされた２つのイベントを持つイベント群を示すブロック図である。
【図５】イベント群のテンプレートのブロック図である。
【図６】追加情報ポインタを持つイベントのブロック図である。
【図７】イベント条件及び関連調整ルールのデータ構造のブロック図である。
【図８】イベント条件と関連調整ルールの１つの例のデータ構造のブロック図である。
【図９】接続された２つのイベント・チェーンを示すブロック図である。
【図１０】予定時に装置によって実行されるステップのフローチャートを示す図である。
【図１１】予定時にイベント日をセットするステップのフローチャートを示す図である。
【図１２】予定時にイベント日をセットするステップのフローチャートを示す図である。
【図１３】リンケージを示すイベント群の１つの例のブロック図である。
【図１４】リンケージを示すイベント群の１つの例のブロック図である。
【図１５】外部条件をチェックする際にイベントに対して装置によって実行されるステップのフローチャートを示す図である。
【図１６】外部条件をチェックする際にイベントに対して装置によって実行されるステップのフローチャートを示す図である。
【符号の説明】
【０１１３】
１００  コンピュータ装置
１０５  コンピュータ・システム
１１０  ディスプレイ・アダプタ
１２４  グラフィック・インタフェース
１３０  マルチメディア・ハードウェア
１４０  メモリ記憶装置
１４５  カレンダー・データベース
【図１】
2006139775.tif 000003
【図２】
2006139775.tif 000004
【図３】
2006139775.tif 000005
【図４】
2006139775.tif 000006
【図５】
2006139775.tif 000007
【図６】
2006139775.tif 000008
【図７】
2006139775.tif 000009
【図８】
2006139775.tif 000010
【図９】
2006139775.tif 000011
【図１０】
2006139775.tif 000012
【図１１】
2006139775.tif 000013
【図１２】
2006139775.tif 000014
【図１３】
2006139775.tif 000015
【図１４】
2006139775.tif 000016
【図１５】
2006139775.tif 000017
【図１６】
2006139775.tif 000018
【手続補正書】
【提出日】平成17年11月1日(2005.11.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のイベントを含むイベント群をスケジューリングするためのスケジューリング・システムであって、
スケジュール対象のイベントについて、イベント予定時に満たされるべき固定条件を記録する手段と、
スケジュール対象のイベントについて、前記スケジューリング・システムの外部条件であってイベント実行準備時に満たされるべき動的条件を記録する手段と、
２以上のイベントの間のシーケンシャルな関係を確立するために、当該２以上のイベントを接続するリンクの情報を記録する手段と、
スケジュール対象のイベントについて、動的条件が満たされない場合の調整ルールを記録する手段と、
リンクで接続される複数のイベントを含むイベント群に含まれるすべてのイベントについて固定条件が満たされることを条件として、前記イベント群をスケジュールする手段を備え、
イベント群をスケジュールした後に、当該イベント群に含まれるイベントの少なくとも１つの動的条件に関する情報を前記スケジューリング・システムの外部から受け、受けた動的条件に関する情報に基づいてイベントの動的条件が満たされるかどうかを評価し、前記イベント群に含まれるイベントの動的条件が満たされないと判定されたことに応じて前記調整ルールに従って当該イベントのスケジュールを自動的に調整する、
スケジューリング・システム。
【請求項２】
前記スケジュールを調整されたイベントの調整の情報を、前記リンク情報を使用して前記イベント群に含まれる他のイベントの少なくとも１つに伝播させることによって、前記イベント群のスケジュールを再スケジュールするように、当該他のイベントの少なくとも１つをスケジュール調整する、請求項１に記載のスケジューリング・システム。
【請求項３】
中央処理装置とメモリを備えるスケジューリング・システムにおいて、複数のイベントを含むイベント群をスケジューリングするための方法であって、
スケジュール対象のイベントについて、イベント予定時に満たされるべき固定条件を前記メモリに記録するステップと、
スケジュール対象のイベントについて、前記スケジューリング・システムの外部条件であってイベント実行準備時に満たされるべき動的条件を前記メモリに記録するステップと、
２以上のイベントの間のシーケンシャルな関係を確立するために、当該２以上のイベントを接続するリンクの情報を前記メモリに記録するステップと、
スケジュール対象のイベントについて、動的条件が満たされない場合の調整ルールを前記メモリに記録するステップと、
前記中央処理装置が、リンクで接続される複数のイベントを含むイベント群に含まれるすべてのイベントについて固定条件が満たされることを条件として、前記イベント群をスケジュールし、当該イベント群のスケジュール情報を前記メモリに記録するステップと、
イベント群をスケジュールした後に、当該イベント群に含まれるイベントの少なくとも１つの動的条件に関する情報を前記スケジューリング・システムの外部から受け、受けた動的条件に関する情報に基づいてイベントの動的条件が満たされるかどうかを評価するステップと、
前記イベント群に含まれるイベントの動的条件が満たされないと判定されたことに応じて、前記調整ルールに従って前記メモリに記録された当該イベントのスケジュールを自動的に調整するステップと、
を含む方法。
【請求項４】
前記スケジュールを調整されたイベントの調整の情報を、前記リンク情報を使用して前記イベント群に含まれる他のイベントの少なくとも１つに伝播させることによって、前記メモリに記録された前記イベント群のスケジュールを再スケジュールするように、当該他のイベントの少なくとも１つをスケジュール調整するステップをさらに含む請求項３に記載の方法。