(57)【要約】  プロジェクト管理アプリケーションは、ユーザーが、主に「フリーフォーム」データに基づくプロジェクト・スケッチを規定されたプロジェクト・プランに変換することができる環境を提供する。プロジェクト管理アプリケーションは、一つ以上のプロジェクト・タスクのフリーフォーム・タスク属性値と構造化属性値との組合せを容易にする。プロジェクト管理アプリケーションは、内部計算モデルを利用し、タスク属性についてのフリーフォーム値を認めるにもかかわらずタスク属性値間の関係を管理することができる。プロジェクト管理アプリケーションは、計算モデルの属性値の認識によって許容される程度に属性値を計算する。
2010532045.tif 000002
【特許請求の範囲】
【請求項１】
プロジェクト・プラン（４００、１２００、１３００、１４００、１５００）を作成する方法であって、
命令を受信してフリーフォーム・タスク（４１０，４２０）を作成するステップであって、前記フリーフォーム・タスクは複数の属性（Ａ、Ｂ）を有するステップと、
前記フリーフォーム・タスクの前記属性の各々について第１のデータフィールド（４１２、４１４、４２２、４２４）を生成するステップと、
フリーフォーム属性として前記フリーフォーム・タスクの属性のサブセットの指定及び構造化属性として前記フリーフォーム・タスクの残りの属性の指定を取得するステップを含む前記フリーフォーム・タスクの各属性の指定を取得するステップと、
前記フリーフォーム属性の各々について第２のデータフィールド（４１６、４１８、４２８）を生成し、前記第２のデータフィールドの各々を前記フリーフォーム属性の各々の前記第１のデータフィールドに関連付けるステップと
を含むことを特徴とする方法。
【請求項２】
各属性の指定を取得するステップは、フリーフォーム属性として前記フリーフォーム・タスクの属性の所定のサブセットの指定を取得するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記フリーフォーム・タスクの各属性の値を受信するステップと、
前記受信された値を各個別の属性値の前記第１のフィールドに格納するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
各フリーフォーム属性の前記受信された値が構造化されているか否かを判定するステップと、
前記値が構造化されている場合、前記フリーフォーム属性の値を前記フリーフォーム属性の前記第２のフィールドの各々に格納するステップと、
前記値が構造化されていない場合、前記フリーフォーム属性の構造化された値を判定するステップと、
前記フリーフォーム属性の前記構造化された値を前記フリーフォーム属性の前記第２のフィールドの各々に格納するステップと
をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記第１のフリーフォーム属性の関連属性を判定するステップであって、前記関連属性は値を有するステップと、
少なくとも一部は前記関連属性の値に基づいて前記構造化された値を計算するステップと
をさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記フリーフォーム・タスクの各属性についての関連属性を判定するステップと、
前記フリーフォーム・タスクの各属性の前記受信された値が前記関連属性の値と論理的に矛盾するか否かを判定するステップと
をさらに含むことを特徴とする請求項３に記載の方法。
【請求項７】
前記受信された値が論理的に矛盾するとき、少なくとも一部は前記受信された値に基づいて前記関連属性について論理的に矛盾しない値を計算するステップと、
前記計算された論理的に矛盾しない値を前記関連属性の前記第２のフィールドに割り当てるステップと、
をさらに含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記受信された値が前記関連属性の前記値と論理的に矛盾する旨のアラートを提供するステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記受信された値の代わりに論理的に矛盾しない値を提供する機会を提供するステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記関連属性に論理的に矛盾しない値を提供する機会を提供するステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１１】
プロジェクトを計画するシステムであって、
少なくとも１つの第１のタスク（４１０，４２０，４３０）を含むプロジェクト・プラン（４００、１２００、１３００、１４００、１５００）であって、前記第１のタスクは複数の属性を有するプロジェクト・プランと、
第１の属性値が格納されうる第１のデータフィールド（４１２、４１４、４２２、４２４、４３２、４３４）であって、前記第１のタスクの第１の属性と関連付けられた第１のデータフィールドと、
第２の属性値が格納されうる第２のデータフィールド（４１６、４１８、４２８）であって、前記第２の属性値は構造化された値であり、前記第１のデータフィールドと関連付けられた第２のデータフィールドとを備え、
新属性値が構造化された値の場合、前記新属性値が前記第１のデータフィールドに入力されたときに前記新属性値は前記第２のデータフィールドに格納されることを特徴とするシステム。
【請求項１２】
属性値が格納されうる第１のセットのデータフィールドであって、前記第１のセットの各データフィールドは前記第１のタスクの属性のうちの１つと関連付けられている第１のセットのデータフィールドと、
構造化属性値が格納されうる第２のセットのデータフィールドであって、前記第２のセットのデータフィールドは前記第１のセットと同じ又はより少ないデータフィールドを有し、前記第２のセットの各データフィールドは前記第１のセットの前記データフィールドの１つと関連している第２のセットのデータフィールドと、をさらに含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
少なくとも前記第１のセットのデータフィールドに格納された前記属性値を表示するように構成された入力フィールドと、
前記第１のセットのデータフィールドに格納された前記属性値の少なくとも一部のグラフィック表現を表示するように構成された出力フィールドと
をさらに含むことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記入力フィールドは、前記第１のセットのデータフィールドに格納された前記属性値をテーブル・フォーマットで表示するように構成されていることを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記出力フィールドは、前記属性値をガントチャートで表示するように構成されていることを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記出力フィールドは、前記第２のセットのデータフィールドに格納された前記属性値の少なくとも一部のグラフィック表現を、前記第１のセットのデータフィールドに格納された前記属性値のグラフィック表現と同時に表示するように構成されていることを特徴とする請求項１２に記載のシステム。
【請求項１７】
コンピューター実行可能命令を格納し、プロジェクト・スケジュールを準備する方法を実行するコンピューター読み込み可能な媒体であって、前記方法は、
第１の属性及び第２の属性を有する第１のタスク（４１０、４２０）を作成するステップであって、前記第１の属性は前記第２の属性に数学的に関連するステップと、
前記第１の属性の第１の値及び前記第２の属性の第２の値を受信するステップであって、前記第１の値及び前記第２の値は論理的に矛盾するステップと、
前記第１の属性の第１の値を第１のデータフィールド（４１２、４１４、４２２、４２４）に格納するステップと、
前記第２の属性の第２の値を第２のデータフィールド（４１２、４１４、４２２、４２４）に格納するステップと、
前記第２の属性の第２の値を第３のデータフィールド（４１６、４１８、４２８）に格納するステップであって、前記第３のデータフィールドは前記第２のデータフィールドと関連しているステップと、
前記第３のデータフィールドに格納された第２の属性の第２の値に基づいて前記第１の属性の新たな値を計算するステップと、
前記第１の属性の新たな値を第４のデータフィールド（４１６、４１８、４２８）に格納するステップであって、前記第４のデータフィールドは前記第１のデータフィールドと関連しているステップと
を含むことを特徴とするコンピューター読み込み可能な媒体。
【請求項１８】
前記第１のデータフィールドに格納された第１の属性の第１の値及び前記第２のデータフィールドに格納された第２の属性の第２の値を表示するステップをさらに含むことを特徴とする請求項１７に記載のコンピューター読み込み可能な媒体。
【請求項１９】
前記第３のデータフィールドに格納された第１の属性の第１の値及び前記第４のデータフィールドに格納された第２の属性の新たな値を表示するステップをさらに含むことを特徴とする請求項１７に記載のコンピューター読み込み可能な媒体。
【請求項２０】
前記第２の属性の新たな値が前記第２の属性の第２の値とは異なることを示すステップをさらに含むことを特徴とする請求項１７に記載のコンピューター読み込み可能な媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
プロジェクト・プランを作成することを望むユーザーは、ワシントン州レドモンド（Ｒｅｄｍｏｎｄ,ＷＡ）の本件特許出願人から入手可能なマイクロソフト・オフィス・プロジェクト２００７（ＭＩＣＲＯＳＯＦＴ（登録商標）Ｏｆｆｉｃｅ Ｐｒｏｊｅｃｔ ２００７）などのプロジェクト管理アプリケーションを用いることができる。一般に、プロジェクト管理アプリケーションは、ユーザーが、プロジェクトの目的を定め、タスクの計画及びリソースの割当てを行い、スケジュールを含むプロジェクト・プランを表示し、プロジェクトの実行及び管理を行うのを手助けする。
【０００２】
プロジェクト・プランはタスクで構成される。スケジュールは、タスクが行われるシーケンス、各々のタスクを完了するために必要なリソース、及び当該タスクに関連するカレンダ情報を規定する。各タスクは、１または複数の属性（例えば、予定日、タスク長、コストなど）を含むように定められる。通常、ユーザーは、各タスクの属性に値を割り当てることによってプロジェクト・プランの概要を描く。
【０００３】
好都合なことに、いくつかのプロジェクト管理アプリケーションは、異なるタスク及びタスク属性間の関係を追跡する計算モデルを提供する。当該計算モデルは、他のタスク属性に割り当てられる値に基づいて自動的に１または複数のタスク属性の値を計算することができる。例えば、マイクロソフト・オフィス・プロジェクト２００７（ＭＩＣＲＯＳＯＦＴ（登録商標）Ｏｆｆｉｃｅ Ｐｒｏｊｅｃｔ ２００７）は、プロジェクト開始日及びプロジェクト終了日に基づいてプロジェクト継続期間値を算出することができる。これらのタイプの計算は、一般に、計算モデルに組み込まれるプロジェクト・スケジューリングについてのドメイン特定の情報（例えば、一日の労働時間、一週間の労働日数など）に基づいている。
【０００４】
これらのプロジェクト管理アプリケーションの幾つかについての一つの制限は、ユーザーが「ファジー」なタスク属性値を用いてプロジェクトを「スケッチアウト」することを禁ずるユーザーインターフェースの厳しさである。これらのプロジェクト管理アプリケーションは、特定の要求を満たす属性値を入力させることをユーザーに強要する。例えば、ユーザーは、認識条件（例えば、日付は、日付と認識されるようにｍｍ／ｄｄ／ｃｃｙｙフォーマットで入力されなければならない）を満たす値を入力するように要求されることがある。ユーザーはまた、所定の論理的条件（例えば、プロジェクト開始日はプロジェクト終了日の後でなければならない）を満たす値を入力するように要求されることがある。
【０００５】
どのようにプロジェクトがスケッチするのかの一般的な概念を得ようとしているに過ぎない、又はレポートのための特定の視覚化を得ることのみを初期目的とするユーザーは、プロジェクト・プランの生成に要求される詳細さのレベルに欲求不満を感じるかもしれない。
【０００６】
本発明は、これらの点及び他の考察に鑑みてなされた。
【発明の概要】
【０００７】
この「課題を解決するための手段」は、選択された概念を単純化された形式で説明するために提示するものであり、当該概念についてはさらに下記の「発明を実施するための形態」において説明する。この「課題を解決するための手段」は、特許請求の範囲に記載の内容の主要な特徴又は本質的な特徴を確認することを意図するものではなく、また、特許請求の範囲に記載の内容の範囲を判定する際の補助を意図するものでもない。
【０００８】
プロジェクト管理アプリケーションは、ユーザーが、主として「フリーフォーム（自由形式、freeform）」又は「ファジー」データに基づくプロジェクト・スケッチを規定されたプロジェクト・プランに変換することができる環境を提供する。
【０００９】
態様によれば、プロジェクト管理アプリケーションは、各タスクが１または複数の属性を有する１または複数のタスクの作成を可能にする。プロジェクト管理アプリケーションは、フリーフォーム属性値（すなわち、認識及び／又は論理的条件を満たさない値）と構造化された属性値（すなわち、認識及び論理的条件を満たす値）とを少なくとも一つのタスク内に混合することを容易にする。
【００１０】
他の態様によれば、プロジェクト管理アプリケーションは、内部計算モデルを利用し、タスク属性のフリーフォーム値を受け入れるにもかかわらずタスク属性値間の関係を管理することができる。プロジェクト管理アプリケーションは、アプリケーションの属性値の認識によって許容される程度に属性値を計算する。
【００１１】
これら及び他の特徴及び利点は、下記の詳細な説明及び関連する図面から明らかである。前述の概説及び下記の詳細な説明は説明的なものに過ぎず、特許請求の範囲を限定するものではないことが理解されるべきである。
【図面の簡単な説明】
【００１２】
【図１】本開示の実施形態を実施するための例示的な環境を示すブロック図である。
【図２】計算機を含む本開示を実施するための一つの例示的なシステムを示す図である。
【図３】本開示の原理による、プロジェクト・プランを生成する作成プロセスを表すフローチャートである。
【図４】本開示の原理による、タスクの属性値を格納する第１および第２のデータフィールドを示すプロジェクト・プランの概略図である。
【図５】本開示の原理により実行される、ユーザーが見ることができるプロジェクト・プランを規定する第１のポピュレーション（population）・プロセスを表すフローチャートである。
【図６】プロジェクト・プランを規定する第２のポピュレーション・プロセスを表すフローチャートであり、該第２のポピュレーション・プロセスはプロジェクト管理環境のバックグラウンドで計算されるフィールドをポピュレートし、作成プロセスは本開示の原理に従って実行される。
【図７】本開示の原理により実行される、ユーザーにより入力された認識できない又は論理的に矛盾する属性値を解決する解決プロセスを表すフローチャートである。
【図８】本開示の原理により実行される、矛盾しない、認識可能な属性値を生成する生成処理を表すフローチャートである。
【図９】本開示の原理により実行される、関連属性について、矛盾しない、認識可能な値を生成する自動訂正処理を表すフローチャートである。
【図１０】本開示の原理により実行される、プロジェクト・プランを表示する表示プロセスを表すフローチャートである。
【図１１】本開示の原理による第１のデータフィールド及び第２のデータフィールドの両者を含むプロジェクト・プランを表示するプロジェクト管理環境のスクリーンショットを表す図である。
【図１２】本開示の原理による構造化タスクの修正結果を表す図である。
【図１３】本開示の原理による、フリーフォーム・タスクの修正結果を表す図である。
【図１４】本開示の原理による、フリーフォーム属性に認識できない値を入力したときの結果を表す図である。
【図１５】本開示の原理による、フリーフォーム属性に論理的に矛盾する値を入力したときの結果を表す図である。
【発明を実施するための形態】
【００１３】
下記の詳細な説明において、その一部を構成し、特定の実施形態又は実施例を示す添付の図面を参照する。本開示は、コンピューターシステムのオペレーティングシステム上で実行されるアプリケーションプログラムと共に動作するプログラムモジュールとの一般的な関連において説明するが、当業者であれば、本開示はまた、他のプログラムモジュールとの組合せによって実施することができることを認識できるであろう。本開示の要旨又は範囲から逸脱することなく、本明細書において記載されている実施形態を結合し、また他の実施形態を利用することができる。従って、下記の詳細な説明は限定的な意味に解されるべきではなく、本発明の範囲は添付の特許請求の範囲及びその均等範囲によって定められる。
【００１４】
本開示の実施形態は、ユーザーが少なくとも一部はフリーフォーム（freeform）入力データに基づき、プロジェクト・スケッチを作成することができる環境を提供する。この本開示の目的のため、用語「フリーフォーム入力」は、それぞれのタスク属性の認識及び／又は論理的要求を満たさない入力を示す。時とともに、ユーザーはプロジェクト・スケッチを構造化入力データを有する規定されたプロジェクト・プランに変換することができる。本開示の目的のため、用語「構造化入力」は、それぞれのタスク属性の認識要求及び論理的要求を満たす入力を示す。
【００１５】
図１は、本開示の発明的側面の例である特徴を有するプロジェクト管理環境１００の例を表す。このプロジェクト管理環境１００は、入力フィールド１１０及び表示フィールド１２０を含む。ユーザーは、入力フィールド１１０及び表示フィールド１２０のうち少なくとも一つと対話してプロジェクト・プランを生成し、編集することができる。例えば、ユーザーは、タスクを入力フィールド１１０に加え、当該タスクに属性値を割り当てることによって新たなタスクを作成することができる。また、ユーザーはタスクの属性値を変更することによって既存のタスクを編集することができる。
【００１６】
入力フィールド１１０は、行および列（カラム）を有するテーブル（すなわち、又はスプレッドシート）１１５を含む。テーブル１１５の行は特定のタスクを表わし、カラムは各タスクの属性（例えば、タスク名、タスク継続期間、開始日時、終了日時、コストなど）を表わす。例えば、図１において、第１行１１２は、値「タスク１」が割り当てられた名称属性（第１カラム１１６において）及び構造化入力が割り当てられた第２の属性（第２カラム１１８において）を有する第１のタスクを表わす。第２行１１４は、値「タスク２」が割り当てられた名称属性（第１カラム１１６において）及びフリーフォーム入力が割り当てられた第２の属性（第２カラム１１８において）を有する第２のタスクを表わす。他の実施形態において、この行およびカラムの構成は反転していてもよい。
【００１７】
表示フィールド１２０は、入力フィールド１１０に入力されるデータを編成して、ユーザーに少なくともいくつかのデータを提示する。通常、表示フィールド１２０は、データをグラフィック・フォーマットに編成し、ユーザーが容易に理解できるようにする。例えば、図１において、表示フィールド１２０は、データをガント（Gantt）チャート１２５としてユーザーに提示する。ガントチャート１２５は、チャート１２５の一方の側にタスクのリスト１２２を、チャート１２５の反対側にバーチャート１２４を示す。一実施形態において、タスクのリスト１２２は、入力フィールド１１０のスプレッドシート１１５を含む。
【００１８】
バーチャート１２４は、ユーザーによって定められる時間尺度上のタスク情報を図表を用いて示す。例えば、図１において、テーブル１１５に入力された第１のタスクを表す第１のバー１２６はカレンダ表示上を横に延びてタスクの開始日及び終了日に関するタスクの継続期間を示す。テーブル１１５に入力された第２のタスクを表す第２のバー１２８もまたカレンダ表示上を横に延びている。しかしながら、第２のバー１２８は、少なくとも部分的にフリーフォーム入力データによって定められるので不完全に表されている。他の実施形態において、このようなタスクは、特にタスクを定めるのに十分に認識できないデータがユーザーから提供された場合には、表示フィールド１２０から省略されてもよい。
【００１９】
ある実施形態においては、ユーザーは表示フィールド１２０と直接対話してタスクを編集することができる。例えば、ユーザーは、ガントチャート１２５のバー１２６，１２８の端をカレンダ表示上の異なる開始日又は終了日にドラッグしてタスクの対応する属性値を変更することができる。表示フィールド１２０上の属性値の変更は、入力フィールド１１０に取り入れられてもよい。
【００２０】
他の実施形態において、表示フィールド１２０は、線グラフ、カレンダ表示、ＰＥＲＴ（プログラム、評価、レビュー、技術）図又は他のいかなる適切な表示を含んでもよい。プロジェクト・プランをＰＥＲＴ図又はガントチャートとして表示することに関するさらなる情報は１９９８年４月２８日発行の米国特許第５，７４５，１１０号明細書にあり、本明細書において当該開示を本願明細書に援用したものとする。
【００２１】
一般に、本開示の原理による発明的態様の例である特徴を有するプロジェクト管理環境は、計算システム（例えばパーソナルコンピューター、サーバー・コンピューター、ノート・パソコン、ＰＤＡ、スマートフォン又はこのような他のいかなる計算機）で実施されてもよい。図１のプロジェクト管理環境１００などのプロジェクト管理環境を実施するように構成された計算システム２００の非限定的な実施形態について本明細書において図２を参照して説明する。
【００２２】
図２において、本開示を実施するための例示的な計算システム２００は、例えば計算装置２１０などの計算装置を含む。基本的な構成において、計算装置２１０は、通常システム・メモリー２２０に格納されたプログラムを実行する少なくとも１つの処理装置２１５を含む。
【００２３】
計算装置２１０の正確な構成およびタイプに応じて、システム・メモリー２２０は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリー、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、又はその他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又はその他記憶装置技術を含むが、これらに限定されるものではない。
【００２４】
システム・メモリー２２０は、通常、ワシントン州レドモンド（Ｒｅｄｍｏｎｄ,ＷＡ）のマイクロソフト社（ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ）のウインドウズ（ＷＩＮＤＯＷＳ（登録商標））・オペレーティングシステムのような計算装置２１０の動作制御に適したオペレーティングシステム２２２を含む。システム・メモリー２２０はまた、プロジェクト・プラン２２６の作成及び編集のためのクライアント・アプリケーション２２４など、１つ以上のソフトウェア・アプリケーションを含んでいてもよい。本開示の原理によるプロジェクト・プラン２２６の作成に適したクライアント・アプリケーション２２４の非限定的な例の１つは、ワシントン州レドモンドのマイクロソフト社のマイクロソフト・オフィス・プロジェクト２００７（ＭＩＣＲＯＳＯＦＴ（登録商標）ＯＦＦＩＣＥ ＰＲＯＪＥＣＴ ２００７）である。
【００２５】
計算装置２１０はまた、例えばキーボード、マウス、ペン、音声入力装置、タッチ入力装置など、データを入力し操作するための入力装置２３０を有していてもよい。例えばディスプレイスクリーン、スピーカ、プリンタなどの出力装置２３５も含まれていてもよい。これらの出力装置２３５は公知技術で、本明細書においては詳述しない。
【００２６】
計算装置２００は、当該装置２００が、例えば、分散コンピューティング環境（例えばイントラネット又はインターネット）内のネットワークを介して他の計算装置と通信を行うことを可能にする通信接続２４０を含んでいてもよい。例えば、これに限らないが、通信装置メディアは、有線ネットワーク又は直接結線接続などの有線メディア、音響、ＲＦ、赤外線その他の無線メディアなどの無線メディアを含む。
【００２７】
図３および４を参照すると、ユーザーは、図１の環境１００などのプロジェクト管理環境内のフリーフォーム・データに少なくとも部分的に基づいてプロジェクト・プランを作成することができる。図３は、プロジェクト・プランを形成する生成プロセス３００の動作フローを表すフローチャートである。生成プロセス３００を用いて作成される例示のプロジェクト・プランの概略図を図４に示す。
【００２８】
生成プロセス３００は、開始モジュール３０２において初期化及び開始し、第１の作成動作３０４に進む。第１の作成動作３０４は、ユーザーの要求によりプロジェクトデータ・オブジェクト４００などの新たなプロジェクトデータ・オブジェクトを生成する。第１の作成動作３０４は、ユーザー入力による初期プロジェクト・データに基づく値が割り当てられた属性を有するプロジェクトデータ・オブジェクトを生成することができる。例えば、第１の作成動作３０４は、ユーザーから受け取ったプロジェクト開始日をプロジェクトデータ・オブジェクトに割り当ててもよい。ユーザーはまた、プロジェクトデータ・オブジェクトが基づくべき計算モデルを選択することができる。あるいは、第１の作成動作３０４は、テンプレート又は他のプロジェクトデータ・オブジェクトに基づいて、新たなプロジェクトデータ・オブジェクトを生成してもよい。
【００２９】
第２の作成動作３０６は、さらにプロジェクトデータ・オブジェクトを規定するタスクを作成する。通常、第２の作成動作３０６はデフォルト属性を有するタスクを生成する。例えば、第２の作成動作３０６は開始日、終了日及び継続期間を有するタスクを生成する。しかしながら、他の実施形態において、第２の作成動作３０６はデフォルト属性を有しないタスクを生成する。
【００３０】
１または複数のタスク３０６は、互いに関連する（例えば、１または複数の関連属性を介して）として指定することができる。例えば、タスクは、１または複数の親タスクを識別する先行属性及び／又は１または複数の子タスクを識別する後続属性を有していてもよい。同様に、タスク内の属性は相互に関連付けられていてもよい。相互関係のある属性の値は通常相互に依存するので、一つの属性値の変更は、関連属性の値に影響を及ぼす。例えば、タスクの継続期間はタスクの開始日及び終了日に基づいて算出することができる。従って、終了日を変更することはタスクの継続期間も変更することになる。
【００３１】
選択動作３０８は、各タスクがフリーフォーム入力を受け入れることが可能なフリーフォーム・タスクであるか又は構造化入力を要求する構造化タスクであるかを選択する機会をユーザーに提供する。構造化タスクは、矛盾する、非論理的又は認識できないデータをユーザーがタスク属性の値として入力することを防ぐことによってプロジェクト・プランを作成する際のユーザーを支援する。ユーザーが有利にかかるタスクを指定することができることは、ユーザーが不可能なタスク又は矛盾するプロジェクト・スケジュールを作成しないという確実性をユーザーに提供する。例えば、構造化されたタスクは、一人の人間に２４時間内で４０時間の作業を行わせることをユーザーが計画することを許さない。
【００３２】
あるいは、フリーフォーム・タスクは、プロジェクトデータ・オブジェクトの計算モデルにとってデータが矛盾している、非論理的である又は認識できないか否かにかかわらず、ユーザーが属性に割り当てたいと欲するいかなるデータも受け入れることが可能な１または複数の属性を含んでいてもよい。通常、属性値にインパクトを与えてしまうような関連データの変更の後であっても、当該計算モデルは、このユーザー入力データを変更して不整合性を訂正することはしない。ユーザーにかかるタスクを指定させることは、好都合に、ユーザーがプランを作成するための最終的又は具体的なデータの全てを有していない（または入力に時間をかけることを望まない）場合であっても、プロジェクト・プランをスケッチする自由度をユーザーに提供する。
【００３３】
一実施形態において、ユーザーはプロジェクト・プランニングの間、いつでも個々のタスクについて構造化／フリーフォーム指定を変更することができる。例えば、タスクの他の属性であるとして指定が入力された場合（図４の「ＦＦ？」（フリーフォーム？）属性フィールドを参照のこと）、当該属性に新たな値を入力することによってその指定を変更（例えば、図４の「Ｎ」を「Ｙ」に変更）してもよい。しかしながら、他の実施形態において、一旦なされた指定は不変であってもよい。
【００３４】
破線で表された任意の作成処理が図３の３１０に示されている。第３の作成動作３１０は、タスクに追加の属性を加える機会をユーザーに提供する。一実施形態において、第３の作成動作３１０はユーザーに所定の属性の選択を提供し、ユーザーがこれら所定の属性から選択することを可能にする。しかしながら、他の実施形態において、第３の作成動作３１０はユーザーが新たな属性を規定することを可能にしてもよい。
【００３５】
一般に、フリーフォーム・タスクは、１または複数のフリーフォーム属性を含む。一部の実施形態において、フリーフォーム・タスクのフリーフォーム属性は、予め決められている。例えば、第１の選択動作３０８が所与のタスクをフリーフォーム・タスクとして指定すると、当該所与のタスクの所定の属性セットが自動的にフリーフォーム属性に指定される。
しかしながら、他の実施形態において、任意の第２の選択動作３１２は、ユーザーがフリーフォーム・タスク内の１または複数の個々の属性を規定するのを可能にし、フリーフォーム入力を受け入れる。通常、ユーザーはフリーフォーム・タスクの属性のサブセットだけを選択し、フリーフォーム属性として規定する。あるいは、ユーザーはフリーフォーム・タスク内の全てをフリーフォーム属性であると規定し、又はどれもフリーフォーム属性ではないと規定することができる。構造化タスク内の属性は、フリーフォーム属性として規定することができない。一実施形態において、プロジェクト・プランニングの間、ユーザーはいつでも各属性の個々についてこの指定を変更してもよい。しかしながら、他の実施形態において、一旦なされた指定は不変であってもよい。
【００３６】
第１の生成動作３１４は、属性が構造化属性又はフリーフォーム属性であるかどうかにかかわらず、各作成タスクの各属性のためのデータフィールドを提供する。各データフィールドは、それぞれの属性の値を格納するように構成されている。属性が構造化属性である場合、第１のデータフィールドは、第１のデータフィールドに入力されるいかなる入力データによっても満たされなければならない認識基準（例えば、入力される日付のタイプ、入力されるデータのフォーマットなど）に関連付けられる。あるいは、属性がフリーフォーム属性である場合、第１のデータフィールドはユーザーによるいかなるデータ入力も受け入れるように構成される。
【００３７】
構造化タスクが作成された場合、又は構造化属性のみを有するフリーフォーム・タスクが作成された場合、生成プロセス３００は、生成プロセス３００が完了し、終了する停止モジュール３１８に進むことができる。あるいは、ユーザーが追加のタスク又は追加の属性を作成したい場合には、生成プロセス３００は、第２の作成動作３０６又は第３の作成動作３１０に回帰することができる。
【００３８】
しかしながら、少なくとも１つのフリーフォーム属性を有するフリーフォーム・タスクが作成された場合、生成プロセス３００は第２の生成動作３１６に進む。第２の生成動作３１６は、フリーフォーム属性の各々について第２のデータフィールドを提供する。第２のデータフィールドはそれぞれのフリーフォーム属性の第１のデータフィールドと関連付けられ、第１のデータフィールドに入力されるデータが一定の条件の下、第２のデータフィールドに自動的に入力されるようにしてもよい。第２のデータフィールドは、ユーザーによって第２のデータフィールドに入力されるいかなる入力データによっても満たされなければならない認識基準と関連付けられる。生成プロセス３００は終了するか、または上記したように戻ってもよい。
【００３９】
図４は、図３の生成プロセス３００を用いて作成されるプロジェクト・プランの例の模式的な図である。プロジェクト・プラン４００は第１のタスク４１０、第２のタスク４２０及び第３のタスク４３０を含む。タスク４１０，４２０及び４３０の各々は名称属性、指定属性、属性Ａ及び属性Ｂを含む。タスク４１０，４２０及び４３０の各々の各属性Ａ、Ｂは、少なくとも第１のデータフィールド４１２，４１４，４２２，４２４，４３２，４３４にそれぞれ関連している。
【００４０】
プロジェクト・プラン４００の第１のタスク４１０「タスク１」はフリーフォーム・タスクとして指定されている。加えて、第１のタスク４１０の属性Ａ及び属性Ｂの両者は、フリーフォーム属性として指定されている。従って、第２のデータフィールド４１６，４１８は第１のタスク４１０の属性Ａ，Ｂにそれぞれ関連している。属性Ａ，Ｂの第１のデータフィールド４１２，４１４はそれぞれ、ユーザーにより入力されたいかなるデータＶ１Ａ，Ｖ１Ｂも受け入れるように構成されている。しかしながら、属性Ａ，Ｂの第２のデータフィールド４１６，４１８はそれぞれ構造化入力Ｖ１Ａ’，Ｖ１Ｂ’のみを受け入れるように構成されている。
【００４１】
第２のタスク４２０「タスク２」もまた、フリーフォーム・タスクとして指定されている。しかしながら、属性Ｂのみがフリーフォーム属性として指定されている。属性Ａは構造化属性として指定されている。従って、第２のデータフィールド４１８は第２のタスク４１０の属性Ｂに関連している。属性Ａの第１のデータフィールド４２２及び属性Ｂの第２のデータフィールド４２８はそれぞれ構造化入力Ｖ２Ａ’，Ｖ２Ｂ’のみを受け入れるように構成されている。しかしながら、属性Ｂの第１のデータフィールド４２４は、ユーザーにより入力されたいかなるデータＶ２Ｂをも受け入れるように構成されている。一実施形態において、ユーザーはプランニングプロセスの間、属性Ａをフリーフォーム属性に変換することを選択することができる。
【００４２】
第３のタスク４３０「タスク３」は構造化タスクとして指定として指定されている。従って、属性Ａ，Ｂのいずれもフリーフォーム属性としては指定されていない。第３のタスクの第１データフィールド４３２，４３４は、それぞれ構造化データＶ３Ａのみを受け入れるように構成されている。ユーザーが第１のデータフィールドにフリーフォーム・データを入力することができるようにするためには、まず第３のタスク４３０をフリーフォーム・タスクに指定する必要があろう。一実施形態において、ユーザーは第３のタスク４３０の属性のうちどれがフリーフォーム属性であるべきかを選択する必要があろう。
【００４３】
図４に示すように、フリーフォーム・タスク及びフリーフォーム属性を有するプロジェクト・プランは同時に２セットのデータを格納することができる。１のデータセットはユーザーによって入力された情報を表す。他のデータセットは、プロジェクト・プランの計算モデルによって認識でき、論理的であるデータを表す。有利なことに、フリーフォーム属性に２セットのデータを格納することができることは、相互依存する属性値を算出する計算モデルの能力を保持しつつ、ユーザーが利用可能なデータ又はファジー・データを用いてユーザーがプランをスケッチすることを可能にする。
【００４４】
一部の実施形態において、第１のデータセット（すなわち、ユーザーによって実際に入力されるデータ）だけは、図１のプロジェクト管理環境１００のようなプロジェクト管理環境内でユーザーに表示される。第２のデータセットは格納され、プロジェクト管理環境のバックグラウンドで追跡される。他の実施形態において、両方のデータセットが同時に表示されてもよい。第１および第２のデータセットを表示するプロセスは、本明細書においてさらに詳細に記載されている。
【００４５】
図５乃至７を参照して、ユーザーがプロジェクト・プランを規定できるプロセスが開示される。これらのプロセスの実施形態は、ユーザーがタスク属性にフリーフォーム値を割り当て、プロジェクト・スケッチを生成することを可能にする。これらのプロセスの実施形態は、どのようなデータをユーザーが入力しても、ユーザーに表示をなしつつバックグラウンドで矛盾する属性値を解決する。この競合解決は、計算モデルがプロジェクト・スケジュールをプランニングするユーザーを支援し、フリーフォーム・データの構造化データへの置き換えに伴うプロジェクト・プランの進展を追跡することを可能にする。
【００４６】
図５は、プロジェクト属性と関連する第１のフィールドに値を割り当てることができるポピュレーション・プロセス５００の処理フローを示す。ポピュレーション・プロセス５００は、開始モジュール５０２において初期化及び開始をなし、受信動作５０４に進む。受信動作５０４はユーザーからの入力を受信する。例えば、受信動作５０４は計算装置２００のキーボードまたは他の入力装置２３０による入力を受信してもよい。通常、ユーザーはプロジェクト管理環境１００の入力フィールド１１０の情報を入力する。
【００４７】
タスクが構造化タスクであるか又は構造化属性を有する場合、破線で表された妥当性確認動作５０６は、入力データが第１のデータフィールドの各々に関連するいずれの認識要求にも一致するか否かを判定することができる。例えば、ユーザーが構造化タスクの開始日属性にデータを入力する場合、妥当性確認動作５０６は入力されたデータが日付であるかどうか判定することができる。一実施形態において、妥当性確認動作５０６は入力データが所定の日付フォーマット（例えば、mm/dd/ccyy）で入力された日付であるかどうかを判定してもよい。
【００４８】
妥当性確認動作５０６はまた、入力データが第１のデータフィールドに関連する論理的要求のいずれにも一致するか否かを判定することができる。例えば、妥当性確認動作５０６は、開始日が終了日の前に生ずることを要求することができる。従って、もしユーザーが開始日の値に２００７年１月１５日を、終了日の値に２００７年１月１日を入力すると、妥当性確認動作５０６はエラーメッセージを発行してもよく、及び／又はその入力データを受け入れることを拒否してもよい。
【００４９】
あるいは、ユーザーがフリーフォーム属性にデータを入力する場合、ポピュレーション・プロセス５００は受信動作５０４から表示動作５０８に直接進んでもよい。表示動作５０８は第１のデータフィールドに入力されたデータをユーザーに提供する。例えば、表示動作５０８は、図１０に関して本明細書において詳細に後述するように、プレゼンテーション・プロセス１０００を用いる等して、出力装置２３５により第１のデータフィールドの値を提供してもよい。ポピュレーション・プロセス５００は停止モジュール５１０において完了及び終了する。
【００５０】
図６及び７は、第２のポピュレーション・プロセス６００の処理フロー、及びフリーフォーム属性に関連する第２のフィールドに値が割り当てられる解決プロセス７００を図示する。第２のポピュレーション・プロセス６００は、開始モジュール６０２において初期化及び開始し、受信動作６０４に進む。受信動作６０４はユーザーからの入力を受信する。例えば、受信動作６０４は第１のポピュレーション・プロセス５００の受信動作５０４（図５を参照）と同じものであってもよい。
【００５１】
妥当性確認動作６０６は、入力データが第２のデータフィールドに関連する認識要求のいずれにも一致するか否かを判定することができる。例えば、ユーザーがフリーフォーム・タスクの継続期間属性にデータを入力する場合、妥当性確認動作５０６は入力が期間を示すかどうかを判定してもよい。一実施形態において、妥当性確認動作６０６は入力が所定の入力フォーマット（例えば、日数、時間数など）で入力されたか否かを判定してもよい。
【００５２】
妥当性確認動作６０６はまた、入力が第２のデータフィールドに関連する論理的要求のいずれにも一致するかどうか判定することができる。例えば、妥当性確認動作６０６は、就業日の労働時間として８時間のみをスケジューリングできることを要求してもよい。妥当性確認動作６０６が全ての入力が認識要求を満たすと判定すると、後に詳述するように、第２のポピュレーション・プロセス６００は格納動作６１０に進む。
【００５３】
あるいは、妥当性確認動作６０６が、入力が認識要求を満たさないか又は論理的要求を満たさないと判定すると、第２のポピュレーション・プロセス６００は解決動作６０８に進む。解決動作６０８はフリーフォーム属性の認識可能かつ論理的な値を確認又は確立する。この確認された値は、後述する格納動作６１０において属性の第２のデータフィールドに割り当てられる。
【００５４】
解決動作６０８の一部の実施形態は、ユーザーによるデータ入力に少なくとも部分的に基づいて、フリーフォーム属性の第２のデータフィールドに割り当てられた値を判定する。解決動作６０８の他の実施形態は、関連する属性の値に少なくとも部分的に基づいて、フリーフォーム属性の第２のデータフィールドに割り当てられた値を判定する。認識できない及び／又は論理的に矛盾する属性値の解決に関する更なる詳細は、本明細書において図７を参照して開示されている。
【００５５】
図６について続けると、格納動作６１０は、各属性の第２のデータフィールドの認識できる、論理的な値（すなわち、ユーザーによる入力値または解決動作６０８によって生成される値）を格納する。表示動作６１２は、第２のデータフィールドにおいて入力されるデータをユーザーに提示する。ある実施形態において、第２のデータフィールドに格納されたデータは第１のデータフィールドに格納されたデータとは視覚的に異なった形式により提示される。表示プロセスの例は、本明細書において図１０に関して更に詳細に後述する。第２のポピュレーション・プロセス６００は停止モジュール６１４において完了及び終了する。
【００５６】
図７は、認識できない又は論理的に矛盾する属性値から認識可能で論理的な属性値を生成する解決プロセス７００の一例の処理フローを示す。この解決プロセス７００は、図６の第２のポピュレーション・プロセス６００の解決動作６０８を実施し、フリーフォーム属性の第２のデータフィールドに格納されるフリーフォーム属性値を生成するのに用いられてもよい。解決プロセス７００は、開始モジュール７０２において初期化及び開始し、判定動作７０４に進む。
【００５７】
判定動作７０４は、ユーザーが入力した属性値を分析し、データが認識できない又は論理的に矛盾しているか否かを判定する。判定動作７０４がデータは認識できない（例えば、日付が予期される場合のテキスト列）と判定すると、解決プロセス７００は生成動作７０６に進む。生成動作７０６は、関連する属性に基づいて認識可能で論理的矛盾の無い属性値を生成する。関連する属性が存在しない場合、生成動作７０６はデフォルトの認識可能値を生成する。
【００５８】
例えば、図８は解決プロセス７００の生成動作７０６を実施して予期される属性値を生成するのに用いられる生成プロセス８００の一例を図示する。生成プロセス８００は、開始モジュール８０２において初期化及び開始し、決定モジュール８０４に進む。決定モジュール８０４は、予期される属性値が他のいずれかの属性の既知の値と関連があるか否かを判定する。例えば、一実施形態において、決定モジュール８０４は、継続期間属性の値が開始日属性の値及び終了日属性の値に関連があると判定するであろう。
【００５９】
予期される属性値が他のいかなる属性値とも関連がない、又は予期される属性値に関連する属性値がまだ割り当てられていないと決定モジュール８０４が判定すると、生成プロセス８００は提出動作８０６に進む。提出動作８０６は解決プロセス７００の生成動作７０６にデフォルト値を渡す。生成プロセス８００は停止モジュール８１４において完了及び終了する。次に、解決プロセス７００は、図６の第２のポピュレーション・プロセス６００の解決動作６０８にそのデフォルト値を渡し、停止モジュール７０８において完了及び終了する。
【００６０】
あるいは、予期される属性値が他の既知の属性値と関連があると決定モジュール８０４が判定すると、生成プロセス８００は取得動作８０８に進む。取得動作８０８は関連属性の値を回復する。例えば、一実施形態において、もしユーザーがタスク継続期間として認識できないデータを入力した場合、取得動作８０８はタスク開始日の値及びタスク終了日の値を回復するであろう。
【００６１】
計算動作８１０は、関連属性の回復された値に基づいて、予期される属性値を判定する。上記の例について続けると、計算動作８１０は、回復されたタスク開始日の値及び回復されたタスク終了日の値の間の日数を判定してタスク継続期間を計算することができる。通常、計算動作８１０は、プロジェクト計算モデルのルールに従い、回復された値に基づいて予期される属性値を判定する。例えば、計算動作８１０は、もしそのような規定がプロジェクト計算モデルのルールに含まれている場合には、タスク継続期間の計算から週末日を除外することができる。
【００６２】
生成プロセス８００は停止モジュール８１２において完了及び終了し、その予期される属性値を停止モジュール７０８において完了及び終了する解決プロセス７００の生成動作７０６に渡す。
【００６３】
図７の解決プロセス７００について続けると、判定動作７０４は、ユーザーにより入力された属性値は認識できるが、論理的に矛盾していると判定してもよい。一部の実施形態において、入力データはそれ以前に入力された他の属性値と矛盾していてもよい。例えば、入力データはプロジェクト開始日前に生じるプロジェクト終了日をスケジュールしてもよい。他の実施形態において、入力データは計算モデルに格納されている定義ルールと矛盾していてもよい。例えば、計算モデルが就業日を８時間として規定する場合に、入力日付は、プロジェクト参加者が１就業日に９時間働くことを指定しても良い。
【００６４】
一部の実施形態において、判定動作７０４がユーザーによって入力された属性値が論理的に矛盾していると判定すると、解決プロセス７００は自動訂正動作７１０に進む。自動訂正動作７１０は、入力属性値によって生じる論理的矛盾を解決する。
【００６５】
一実施形態において、自動訂正動作７１０は、入力値の代わりに、より矛盾しない属性値を判定する。しかしながら、他の実施形態において、自動訂正動作７１０は関連属性のうちの１つについての新たな値を判定し、矛盾を解決する。このような実施形態は、ユーザーによる最近のデータ入力に適合するようにプロジェクト計画を変更することによって、より正確にユーザーの意図を有利に反映する。
【００６６】
自動訂正動作７１０を実施して有効な属性値を得る訂正プロセス９００の一例を図９に示す。その訂正プロセス９００の例は、開始モジュール９０２において初期化及び開始し、決定モジュール９０４に進む。決定モジュール９０４は、入力属性値が他の既知の属性値と関連があるか否かを判定する。例えば、決定モジュール９０４は、図８の生成プロセス８００の決定モジュール８０４と同じものであってもよい。
【００６７】
入力属性値が他のいかなる属性値とも関連がない、又は入力属性値に関連する属性値がまだ割り当てられていないと決定モジュール９０４が判定すると、訂正プロセス９００は第１の計算動作９０６に進む。第１の計算動作９０６は、タスクの定義及び計算ルールのモデルに従って属性値を判定する。一実施形態において、第１の計算動作９０６はユーザーが入力した値に基づいて属性値を判定することができる。
【００６８】
提出動作９０８は、計算値を解決プロセス７００の生成動作７０６に渡す。訂正プロセス９００は停止モジュール９１０において完了及び終了する。次に、解決プロセス７００は、計算された属性値を第２のポピュレーション・プロセス６００の解決動作６０８に渡し、上記したように停止モジュール７０８において完了及び終了する。
【００６９】
あるいは、決定モジュール９０４が、入力属性値が他の既知の属性値と関連があると判定する場合、訂正プロセス９００は取得動作９１２に進む。取得動作９１２は、関連属性の値を回復する。例えば、取得動作９１２は、生成プロセス８００の取得動作８０８と同じものであってもよい。
【００７０】
計算動作９１４は、入力属性値に基づいて、１つ以上の関連属性値について適切な値を判定する。例えば、タスクが２００７年１月１日に開始し、２００７年１月２日に終了すると規定され、ユーザーがその後継続期間に５日を入力すると、計算動作９１４の一実施形態は、新たな終了日として２００７年１月５日を算出する。
【００７１】
置換動作９１６は、その関連属性の以前の値を新たに計算された値で置換する。一実施形態において、置換動作９１６は関連属性の第１のデータフィールドに新計算値を入力する。他の実施形態において、置換動作９１６は関連属性の第２のデータフィールドに新計算値を入力する。
【００７２】
訂正プロセス９００は、解決プロセス７００の自動訂正動作７１０に新たに計算された属性値を戻し、上記したように停止モジュール９１０において完了及び終了する。解決プロセス７００は、図６の第２のポピュレーション・プロセス６００の解決動作６０８に該入力属性値を渡し、停止モジュール７１２において完了及び終了する。
【００７３】
図７の解決プロセス７００について続けると、代替的実施形態において、判定動作７０４がデータは認識できるが論理的に矛盾していると判定すると、解決プロセス７００はアラート動作７１４に（すなわち、自動訂正動作７１０ではなく）進むことができる。アラート動作７１４は、一般に自動訂正動作７１０の代わりに用いられる。しかしながら、他の実施形態において、アラート動作７１４の特徴が自動訂正動作７１０と協同して用いられてもよい。
【００７４】
アラート動作７１４は、入力属性値が論理的矛盾を引き起こしたことを示す指示をユーザーに提供する。例えば、アラート動作７１４は、能動的に警告又は説明のポップアップ・スクリーン表示をなしてもよい。しかしながら、他の実施形態において、アラートユーザー動作７１４は、プロジェクト管理環境１００（図１）の入力フィールド１１０及び表示フィールド１２０の少なくとも１つに表示される属性値の視覚的描写（例えば、カラー、形状、アイコン、不透明度など）を変更してもよい。
【００７５】
アラート動作７１４は、３つの選択肢のうちの１つを選択する機会をユーザーに提供する。第１に、ユーザーは矛盾を無視することを選んでもよく、この場合、解決プロセス７００は自動訂正動作７１０に進んで適切な値を生成し、フリーフォーム属性の第２のデータフィールドに格納する。そのような場合、ユーザーにより入力された属性値は、第１のデータフィールドに格納されたままとなる。上記したように、自動訂正動作７１０の後に、解決プロセス７００は完了及び終了する。
【００７６】
第２に、ユーザーは入力属性値を修正することを選んでもよく、この場合、解決プロセス７００は第１の訂正動作７１６に進む。第１の訂正動作７１６は、ユーザーが、フリーフォーム属性の第２のデータフィールドに格納された属性値のみならず第１のデータフィールドに格納された属性値をも修正することを可能にする。一実施形態において、ユーザーは、プロジェクト管理環境１００の入力フィールド１１０又は表示フィールド１２０に新たな値を入力することによって属性値を修正する。第１の訂正動作７１６の後、解決プロセス７００は新たに入力された属性値を第２のポピュレート・プロセス６００の解決動作６０８に渡し、停止モジュール７１８において完了及び終了する。
【００７７】
第３に、ユーザーは関連属性値を修正することを選んでもよく、この場合、解決プロセス７００は第２の訂正動作７２０に進む。第２の訂正動作７２０は、ユーザーが、関連属性の第２のデータフィールドに格納された属性値のみならず関連属性の第１のデータフィールドに格納された属性値をも修正することを可能にする。一実施形態において、ユーザーは、プロジェクト管理環境１００の入力フィールド１１０又は表示フィールド１２０に新たな値を入力することによって関連属性値を修正する。第２の訂正動作７２０の後、解決プロセス７００は入力属性値を第２のポピュレート・プロセス６００の解決動作６０８に渡し、停止モジュール７２２において完了及び終了する。
【００７８】
他の実施形態において、アラート動作７１４は生成動作７０６の前に又はその代わりに用いられ、認識できない入力データを解決してもよい。そのような実施形態において、アラート動作７１４は入力属性値が各属性に関連する認識基準を満たさないことを示してもよい。例えば、アラート動作７１４は、能動的に警告又は説明のポップアップ・スクリーン表示をなしてもよい。その指示を提供した後、解決プロセス７００はユーザーから新たな属性値を受け取ってもよく、又は生成動作７０６に進んで認識できる属性値を得てもよい。
【００７９】
図１０は、プロジェクト・プランの全部または一部をユーザーに表示することができるプレゼンテーション・プロセス１０００の例の処理フローを示す図である。一実施形態において、プレゼンテーション・プロセス１０００は第１のポピュレート・プロセス及び第２のポピュレート・プロセス５００，６００の表示動作５０８，６１２をそれぞれ実施するのに用いることができる。一実施形態において、プロジェクト・プランの第１のデータフィールドにおいて格納されたデータのみがユーザーに提示される。しかしながら、他の実施形態において、第２のデータフィールドに格納されたデータもまた、又は代替としてユーザーに提示されてもよい。
【００８０】
プレゼンテーション・プロセス１０００は開始モジュール１００２において初期化及び開始し、第１の表示動作１００４に進む。第１の表示動作１００４は、プロジェクト管理環境１００の入力フィールド１１０のプロジェクトデータ・オブジェクトの各々のタスク属性の値を提示する。例えば、第１の表示動作１００４は、テーブル・フォーマット（図１を参照）のタスク属性を提示してもよい。一実施形態において、第１の表示動作１００４は、プロジェクトデータ・オブジェクトのタスク及び／又は属性のサブセットのみを提示する。
【００８１】
一実施形態において、第１の表示動作１００４は、構造化タスクとフリーフォーム・タスクとを視覚的に区別し、どのタスクが論理的一貫性のチェックがされ、どのタスクがチェックされなかったかをユーザーは知ることができる。他の実施形態においては、タスクはこの基準で区別されない。プレゼンテーション・プロセス１０００は、停止モジュール１０１４において完了及び終了してもよい。
【００８２】
あるいは、プレゼンテーション・プロセス１０００は、プロジェクト・プランのグラフィック表現を生成する生成動作１００６に進んでもよい。例えば、生成動作１００６は、ガントチャート、線グラフ、スケジュール又はかかる他の表示を作成し、プロジェクト・プランを表してもよい。第２の表示動作１００８は、プロジェクト管理環境１００（図１を参照）の表示フィールド１２０にプロジェクト・プランのグラフィック表現をユーザーに提示する。
【００８３】
一部の実施形態において、プレゼンテーション・プロセス１０００は第２の表示動作１００８の後に完了及び終了してもよい。しかしながら、他の実施形態において、プレゼンテーション・プロセス１０００は比較動作１０１０に進む。比較動作１０１０は、第１のデータフィールドに格納されている属性値及び第２のデータフィールドに格納されている属性値の差を判定する。
【００８４】
第３の表示動作１０１２は、ユーザーにその差を示す。例えば、第３の表示動作１０１２は、第１のデータフィールドの属性値及び第２のデータフィールドの属性値を同時に表示し、ユーザーがそれらを視覚的に比較できるようにしてもよい。あるいは、第３の表示動作１０１２はまた、第１および第２のデータフィールドの属性値が対応するところを示してもよい。
【００８５】
例えば、図１１は、テーブルとして構成された入力フィールド１１１０及びタスクを表す多数のバーを含むガントチャートとして構成された表示フィールド１１２０を含むプロジェクト管理環境の例のスクリーンショットである。示された例において、バーの色はバーが第１のデータフィールドに格納されている属性値を表しているか又は第２のデータフィールドに格納されている属性値を表しているかを示す。バーの色はまた、第１および第２のデータフィールドの属性値が一致するかどうかを示す。しかしながら、他の実施形態において、かかる情報はバーの不透明度、バーの形状、アイコン又は他のそのような表示を用いて知らせてもよい。
【００８６】
図１１のガントチャートは、第１のバー１１２２、第２のバー１１２４、第３のバー１１２６及び第４のバー１１２８を含む。第１のバー１１２２は青色で、第１のデータフィールドの属性値を表すバーを示し、これらの属性値は第２のデータフィールドの属性値に対応する。第３のバー１１２６は赤色で、第１のデータフィールドの属性値を表すバーを示し、これらの属性値は第２のデータフィールドの属性値に対応していない。第２のバー及び第４のバー１１２４、１１２８は灰色で、第２のデータフィールドの属性値を表すバーを示す。
【００８７】
示されている例において、第２のデータフィールドを表すバーは第１のデータフィールドを表すバーの下に示されている。しかしながら、他の実施形態において、バーはどのような順序で示されてもよい。第１のデータフィールド及び第２のデータフィールドの属性値は対応するので、第１のバー１１２２及び第２のバー１１２４は共通の境界を有する。反対に、第１のデータフィールド及び第２のデータフィールドの属性値は異なるので、第３のバー１１２６及び第４のバー１１２８の境界は接していない。実際、示されている例においては、第３のバー１１２６及び第４のバー１１２８はオーバーラップさえしていない。上記したように、プレゼンテーション・プロセス１０００は、停止モジュール１０１４において完了及び終了する。
【００８８】
上記の開示された原理は、フリーフォーム入力及び構造化入力の組み合わせを用いてプロジェクト・プランの作成及び操作を可能にするのに用いることができる。これらの原理は一連の応用例によって最も良く理解することができる。図１２乃至１５は、ユーザーによる修正に応じた、プロジェクト・プラン１２００，１３００，１４００，１５００の順次の状態をそれぞれ図示している。図１２に示される第１のプロジェクト・プラン１２００は、３つの状態Ｔ１，Ｔ２，Ｔ３を有する構造化タスク（タスク１）を含む。構造化タスク（タスク１）は、名称属性、指定属性、開始日属性、終了日属性及び継続期間属性を含む。タスク１は構造化タスクなので、全ての属性は構造化属性である。
【００８９】
第１の状態Ｔ１において、開始日属性には０１／０１／０７の値が割り当てられ、終了日属性には０１／０２／０７の値が割り当てられ、継続期間属性には２日の値が割り当てられている。第２の状態Ｔ２において、ユーザーは５日の新たな値で以前の値を置き換えることによって、継続期間属性を修正する。第３の状態Ｔ３において、プロジェクト・プランの計算モデルは関連属性を更新し、新たに入力された入力に一致させる。示されている例において、終了日属性の値は０１／０５／０７に変更されている。
【００９０】
対照的に、図１３に示される第２のプロジェクト・プラン１３００は、３つの状態Ｕ１，Ｕ２，Ｕ３を有するフリーフォーム・タスク（タスク２）を含む。フリーフォーム・タスク（タスク２）もまた、名称属性、指定属性、開始日属性、終了日属性及び継続期間属性を含み、構造化タスク（タスク１）が第１の状態Ｔ１において有していたのと同一の初期値を第１の状態Ｕ１に有する。開始日属性、終了日属性及び継続期間属性はフリーフォーム属性に指定されているので、第１のデータフィールドに関連する第２のデータフィールド（破線で示す）を有する。
【００９１】
同一の修正が第２のプロジェクト・プラン１３００の第２の状態Ｕ２になされるとき、継続期間属性の第１のデータフィールドの属性値は新しく入力されたデータ（すなわち５日）を反映するように変更される。新たに入力されたデータは計算モデルが認識できるもの（例えば、計算モデルがその属性に期待するデータタイプである）なので、新たに入力されたデータもまた継続期間属性の第２のデータフィールドに格納される。
【００９２】
しかしながら、第１のプロジェクト・プラン１２００とは異なり、第２のプロジェクト・プラン１３００の終了日属性の第１のデータフィールドは、新たに修正された継続期間値を反映するように更新はされない。むしろ、矛盾する日付０１／０２／０７は保持される。しかしながら、計算モデルは、論理的に矛盾の無い値（すなわち、０１／０５／０７）で終了日属性の第２のデータフィールドを更新する。
【００９３】
図１４に示される第３のプロジェクト・プランは、前述のタスク（タスク１、タスク２）と同一の属性及び２つのデータ状態Ｖ１，Ｖ２を有するフリーフォーム・タスク（タスク３）を含む。初期状態Ｖ１において、ユーザーは属性に論理的に矛盾する値（例えば、終了が開始日の４日後で、プロジェクト継続期間が１日）を入力する。これらの論理的に矛盾する値は、第１のデータフィールドに格納され、ユーザーに表示される。第２のデータフィールドは、デフォルト値が格納されるか又は空白にされていてもよい。
【００９４】
第２の状態Ｖ２において、計算モデルは論理的矛盾を解決し、論理的に矛盾の無い一セットの日付を第２のデータフィールドに格納する。示されている例において、継続期間属性値が最後に入力されたので、その他の属性値は入力された継続期間値と矛盾しないように変更される。しかしながら、他の実施形態において、計算モデルは、異なる属性値に解決の基礎をおいてもよい。示されている例において、第１のデータフィールドは入力値を格納する。しかしながら、他の実施形態において、解決された属性値が第１のデータフィールドに入力及び格納されてもよい。
【００９５】
図１５に示される第４のプロジェクト・プランは、前述のタスク（タスク１、タスク２、タスク３）と同一の属性及び２つのプロジェクト状態Ｗ１，Ｗ２を有するフリーフォーム・タスク（タスク４）を含む。初期状態Ｗ１において、ユーザーは開始日属性として認識できない値（すなわち、会計年度０７（ＦＹ０７））を、及び終了日属性及び継続期間属性に認識できない値を入力する。これらの属性はフリーフォーム属性であるので、計算モデルが値を認識できるか否かに関わりなく、これらの値は第１のデータフィールドに格納され、ユーザーに表示される。
【００９６】
第２の状態Ｖ２において、認識された値は各々の属性の第２のデータフィールドに格納される。しかしながら、認識されていない値に関して、計算モデルは、認識された値と矛盾しない開始日属性の新たな値（例えば、０６／３０／０７）を判定する。示されている例において、計算モデルは、終了日属性値１２／３１／０７から６箇月（すなわち、継続期間属性の値）を逆算して開始日値を計算する。
【００９７】
本開示の実施形態は、コンピューター・プロセス（方法）、コンピューティング・システム、又はコンピューター・プログラム製品又はコンピューター可読媒体等の製品として実施することができる。プロセス（プログラム）は、この明細書に記載されている構成を含むいかなる数の方法によって実施されてもよい。そのような方法の一つは、本明細書に記載されているタイプの装置の機械操作によるものである。他の選択可能な方法は、いくつかの処理を実行する一人または二人以上の人間オペレータと共に、計算装置上で実行される方法の個々の動作の１または複数に関するものである。これらの人間オペレータは互いに一所に配置される必要はないが、各人はプログラムの一部を実行する装置にのみ配置される。
【００９８】
コンピューター・プログラム製品は、コンピューターシステムによって読み込み可能でコンピューター・プログラムの命令をエンコードし、コンピューター・プロセスを実行するためのコンピューター格納媒体であってもよい。コンピューター・プログラム製品はまた、コンピューティング・システムによって読み込み可能でコンピューター・プログラムの命令をエンコードし、コンピューター・プロセスを実行するための搬送波上を伝搬する信号であってもよい。本明細書において用いられるコンピューター読み込み可能な媒体という用語は、格納媒体及び通信媒体の両者を含む。
【００９９】
当業者であれば、本開示は携帯装置、マルチプロセッサー・システム、マイクロプロセッサー・ベース又はプログラマブル家庭用電化製品、ミニコンピューター、メインフレームコンピューターなどを含む他のコンピューターシステム構成によって実行できることが理解されるであろう。本開示はまた、通信ネットワークで接続された遠隔処理装置によってタスクが実行される分散コンピューティング環境において実行されてもよい。分散コンピューティング環境においては、プログラムモジュールは局所的で遠隔のメモリー格納装置に配置されていてもよい。一般的に、プログラムモジュールはルーチン、プログラム、コンポーネント、データ構造、及び特定のタスクを実行する又は特定の抽象データタイプを実施する他のタイプの構成を含む。
【図１】
2010532045.tif 000003
【図２】
2010532045.tif 000004
【図３】
2010532045.tif 000005
【図４】
2010532045.tif 000006
【図５】
2010532045.tif 000007
【図６】
2010532045.tif 000008
【図７】
2010532045.tif 000009
【図８】
2010532045.tif 000010
【図９】
2010532045.tif 000011
【図１０】
2010532045.tif 000012
【図１１】
2010532045.tif 000013
【図１２】
2010532045.tif 000014
【図１３】
2010532045.tif 000015
【図１４】
2010532045.tif 000016
【図１５】
2010532045.tif 000017
【国際調査報告】
2010532045.tif 000018
2010532045.tif 000019