【事件の表示】
　平成　５年特許願第３１９３４６号「対話型データ入力システム」拒絶査定不服審判事件〔平成　７年　７月１４日出願公開、特開平　７−１７５６１９〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は、平成５年１２月２０日の出願であって、平成１５年０８月１８日付けで拒絶査定がされ、これに対して、平成１５年９月２５日拒絶査定に対する審判請求がされると共に、平成１５年１０月２１日に手続補正書が提出されたものである。
　
　
２．本願発明
　請求項１に係る発明は、特許請求の範囲の請求項１に記載された次のとおりのものと認める。（以下「本願発明」という。） 
　
【請求項１】
　ダイアログ識別ＩＤを持ち各処理に対し共通に使用されるダイアログボックスを格納するダイアログボックス格納部と、
　ダイアログボックスを表示する表示部と、
　データ入力を行う入力部と、
　処理要求をダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストと共に受け取って、受け取ったダイアログ識別ＩＤを持つダイアログボックスを前記ダイアログボックス格納部から取り出して、前記表示部に取り出したダイアログボックスを表示すると共に、受け取ったパラメータリストに含まれるコントロール識別ＩＤに関連する情報を取り出して、取り出した情報を用いて所定の共通処理をする対話画面制御部と、
　前記入力部で入力されたコマンドの指定を契機として、ダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストを作成して前記対話画面制御部に処理要求するコマンド処理部と、
　を有することを特徴とする対話型データ入力システム。
　
３．引用刊行物とその内容
　これに対し、原査定の拒絶の理由で引用された、本願出願前に頒布された　西林瑞夫著「Ｍａｃｉｎｔｏｓｈ」、共立出版株式会社発行、１９８８年　 ３月２０日、初版５刷発行（以下、「引用刊行物」という。）には、図面と共に次の事項が記載されている。
　
３−１．
 第６章クイック・ドロウ
６．１ビジュアル・インタフェース
・・・・・・・”リソースとして登録されている図形データを呼び出し”、”画面に表示し”、”動きも制御する”といった処理内容になっている。
　このうちリソースは先に説明したリソース・マネージャによって管理されている。一方、図形の表示も専用のプログラムが用意されており、これが今から説明するクイック・ドロウ（Quick Draw) である。ツールボックスのサブルーチンはこのクイック・ドロウを利用して図形を画面に表示している。（第４４頁１行〜１４行）
　
３−２．
第１３章ダイアログ・マネージャ
　利用者からプログラムに指令を与えるときは、メニューを選択した。一方、プログラムから利用者に働きかける場合もある。たとえば、プログラムのいま行っている処理の状況を報告したり、処理の途中で何らかの指令を仰いだり、といった場合である。この場合、プログラムでは利用者との会話を行なうのに図１３．１に示すようなダイアログを利用する。ダイアログ・マネージャはこういったダイアログの作成、処理を行う管理プログラムである。
（第１４０頁１行〜７行）
　
３−３．
　ダイアログ・マネージャはウィンドウ、テキスト、コントロールの３つのマネージャを利用してダイアログを管理している。ダイアログは１つのウィンドウであり、外枠の表示、重なり状態の管理などはウィンドウ・マネージャが、また中に設定される項目はテキスト・マネージャやコントロール・マネージャが利用されている。
　
１３．２ダイアログの項目
　
ダイアログの中は以下の項目を設定することが出来る。（図１３．３）．
　ctrlIteml        ：コントロール（コントロール・マネージャ参照）
　statText        ：単純テキスト
　　editText      ：編集可能テキスト（テキスト・マネージャ参照）
　　iconItem     ：アイコン
　　picItem      ：ピクチャー（クイック・ドロウ参照）
　　userItem     ：プログラムで定義した項目
またこれらの項目の性質として以下の定義が出来る。
　　btnCtrl　　　：ボタンとして働く（コントロール）
　　chkCtrl　　　：チェックボックスとして働く（コントロール）
　　radCtrl　　　：ラジオボタンとして働く（コントロール）
　　itemDisable  ：動作しない項目（アイコン、ピクチャ、テキスト）
（第１４２頁９行〜第１４３頁１０行）
  
３−４．
モードレスダイアログに関係するイベント処理は普通のウィンドウと同じで、マウス、キーボード、アップデート、アクティベートのそれぞれのイベントへの対応である。アラートの処理はモーダルダイアログに似ているが、アラートの作成とイベントの処理が同時に出来る専用の関数が用意されている。
　図１３．４にはモーダルダイアログの処理の例を示している。
１３．３．１　ダイアログの作成／消去
　ダイアログの作成／消去はウィンドゥとほぼ同じである。プログラムはリソースとしてダイアログを定義しておき、そのリソース順序番号を参照してGetNewDialogを呼び出してダイアログを作成する。消去はＯＫボタンが押されるか、クローズボックス（モードレス・ダイアログのとき）がクリックされたときDisposDialogを呼び出して行う。
　呼出し形式
        DialogPtr   GetNewDialog(dialogID,dStorage,behind)
        int        dialogID;
        ptr        dStorage;
        DialogPtr   behind;
　機能説明
　ダイアログを作り出す関数である。dialogIDはリソースの順序番号を指定する。またdStorageはダイアログ・レコードを収容する領域へのポインタである。もしこの値が省略(null)された場合、GetNewDialog自身がメモリを確保する。behindはすでに存在しているダイアログの一つを指しており、ここで作るダイアログをこの次の位置に置くことを指定している。関数値として返されるのは新たに作り出されたダイアログ・レコードへのポインタである。
　呼出し形式
　　　　int　　　　　　DisposDialog(theDialog)
　　　　DialogPtr　　　theDialog；
　機能説明
　theDialogでポイントするダイアログを消去する。これはダイアログ・レコードが占めているメモリ領域の解放と画面に表示されているダイアログの消去を行う。
  
ダイアログ・レコード
　ダイアログはプログラムと利用者の会話のために用意されている特殊なウィンドウと考えられる。そのためダイアログの実体であるダイアログ・レコードは以下に示すようにウィンドウ・レコードとほぼ同じである。また中に表示される項目はコントロールであり、これもウィンドウとコントロールの関係と同じである。
      typedef　struct｛
         WindowRecord  window;        ←ウィンドウ・レコード
         Handle         items;          ←項目リストへのハンドル
         TEHandle　　　textH;          ←編集テキスト
         int　　　　　　editField;       ←編集テキストの項目番号
         int　　　　　　editOpen;       ←内部使用
         int　　　　　　aDefItem；     ←省略時ボタン番号
      }DaialogRecord,*DialogPtr;
  
（第１４４頁８行〜第１４５頁２４行）
　
３−５．
１３．３．２　イベントの処理
　ダイアログの作成ではモーダル・ダイアログとモードレス・ダイアログの違いはない。しかしイベントの処理ではこの二つの処理が異なってくる。
●モーダル・ダイアログのイベント処理
　ダイアログの操作を終えないと次の処理にかかれないのをモードの存在するダイアログ、すなわちモーダル・ダイアログと呼んだ。モーダル・ダイアログのイベント処理は自分の処理に関係のないイベントをすべて殺してしまうのが特徴である。そしてこれには専用の関数modalDialogが用意されている。
　呼出し形式
　　　int　　　　　ModalDialog（filter,itemHit）
　　　ProcPtr　　　filter;
　　　int　　　　　*itemHit
機能説明
　ModalDaialogは内部でGetNextEvent（イベントの読み込み）を呼び出して、自分に関係するイベントを持っている。このとき自分に関係のないイベント（例えばメニューのクリック）が来たなら、これを読み飛ばしてしまう。そしてダイアログの中に設定されている項目がクリックされたならば、itemHitに項目番号を入れてプログラムに返してくるのである。普通、プログラムはOKボタンかCancelボタンが押されるまでModalDialogを繰り返し呼び、順次報告されてくる選択項目を処理してゆく。
　呼出しパラメータのfilterにはプログラムで用意したイベント処理へのポインタを設定する。もし標準の処理を使うならば、ここには０(nil)を設定しておく。（第１４５頁２５行〜第１４６頁１８行）
  
３−６．
●モードレス・ダイアログのイベント処理
　ダイアログ・マネージャはモードレス・ダイアログのイベント処理のためIsdialogEventとDialogSelectを用意している。ダイアログを作成した後、プログラムはGetNextEventの直後にIsDialogEventを呼び出してダイアログに関係するイベントか否かを問い合わせるのである。もし関係するイベントであったなら、今度はDialogSelectを呼び出してイベントの処理を実行する。
　呼出し形式
　　　Bool         IsDialogEvent(theEvent)
　　　EventRecord　*theEvent
　機能説明
　GetNextEventの直後に読み込んだイベント・レコードをtheEventに設定して呼び出す。IsDialogEventはイベントの処理は行わないが、ダイアログに関係するイベントか否かを判定して結果を関数値に返す。
　　　TRUE：ダイアログに関係あり
　　　FALSE：ダイアログに関係なし
プログラムは、ダイアログに関係するイベントならばDialogSelectを呼び出す。
ダイアログに関係のないイベントであれば、普通のイベント処理となる
　呼出し形式
　　　Bool　　　　DaialogSelect(theEvent,theDialog，itemHit)
　　　EventRecord　*theEvent;
　　　DialogPtr　theDialog;
　　　int　　　　　*itemHit;
　機能説明
　IsDialogEventを呼び出して返された結果がTRUEであればDialogSelectが呼び出される。これは利用者が操作したダイアログと項目をtheDialogとitemHitに設定し、関数値にはプログラムの対応の有無を返してくる。たとえば、アップデート・イベントがダイアログに対して発生した場合、DialogSelectはダイアログの書き直しを実行してしまう。そしてプログラムの対応を必要としないため関数値にはFALSEが返される。またダイアログ内の項目でマウスのクリックが行われたとき、DialogSelectは項目番号とダイアログへのポインタを設定し、関数値にはTRUEを返すのである。これは項目の選択やテキストの編集に対してプログラムの対応を必要とするからである。（第１４６頁１９行〜第１４７頁２３行）
　
   
　以上の記載事項から、引用刊行物には、
「 画面に表示されるダイアログであって
　プログラムはリソースとしてダイアログを定義しておき、そのリソース順序番号を参照してGetNewDialogを呼び出してダイアログを作成し
　DialogIDはリソースの順序番号を指定し、dStorageはダイアログの実体であるダイアログ・レコードを収容する領域へのポインタであり、
　ダイアログ・レコードは、ウィンドウ・レコードとほぼ同じであり、中に表示される項目はコントロールであり、
　ダイアログの中に、ボタンやチェックボックス等として働くコントロールやテキスト等の項目を設定でき、
　ウィンドウ、テキスト、コントロールの３つのマネージャーを利用してダイアログを管理しているダイアログ・マネージャーと、
　ダイアログ利用者との会話を行うのに図１３．１に示すようなダイアログを利用するプログラムと、
　ダイアログ・マネージャはダイアログの作成、処理を行う管理プログラムであり、
　ダイアログ・マネージャーはモードレスダイアログのイベント処理のためIsDialogEventとDialogSelectを用意し、プログラムはGetNextEventの直後にIsDialogEventを呼び出してダイアログに関係するイベントか否かを問い合わせ、もし関係するイベントであったなら、今度はDialogSelectを呼び出してイベントの処理を実行し、
　また、ダイアログ内の項目でマウスのクリックが行われたとき、DialogSelectは項目番号とダイアログへのポインタを設定し、関数値にはTRUEを返す、
ダイアログを表示できるシステム。」
の発明（以下「引用刊行物記載の発明」という。）が記載されている。
  
４．対比
　
　引用刊行物記載の発明における「ダイアログ」、「画面」、「項目」、「項目番号」は、本願発明の「ダイアログボックス」、「表示部」、「コントロール」、「コントロール識別ＩＤ」に相当するものであり、
　
　また、引用刊行物記載の発明の「リソース順序番号」は、本願発明の「ダイアログ識別ＩＤ」に相当するものであり、また、引用刊行物記載の発明の「ダイアログ」が処理を行うために使用されるものであることは、明らかである。
　また、引用刊行物記載の発明において、「dStorageはダイアログ・レコードを収容する領域へのポインタである。」とあるように、ダイアログの実体であるダイアログ・レコードを収容する手段を有しているので、本願発明の「ダイアログボックスを格納するダイアログボックス格納部」に相当する構成を、引用刊行物記載の発明は有しているものと認められる。
　
　引用刊行物記載の発明の「ダイアログ・マネージャー」は「ウィンドウ、テキスト、コントロールの３つのマネージャーを利用してダイアログを管理し・・・こういったダイアログの作成、処理を行う管理プログラムである。」ので、ダイアログ識別IDを用いてダイアログボックスを表示する点で本願発明の「対話画面制御部」に相当するものと認められる。
　
　また、引用刊行物記載の発明の「ダイアログを表示できるシステム」は、引用刊行物の摘記事項３−２．において「プログラムでは利用者との会話を行なうのに図１３．１に示すようなダイアログを利用する。」とあるように、本願発明の「対話型データ入力システム」に相当するものと認められ、また、一般的に対話型データ入力システムにおいて、利用者からの入力を行うための入力部を有することは、明らかであるから、引用刊行物記載の発明において、本願発明の「データ入力を行う入力部」に相当するものを有するものと認められる。（引用刊行物の摘記事項３−４．には「マウス、キーボード」の記載が認められる。）　
　　
　そうすると、本願発明と引用刊行物記載の発明とは、
「ダイアログ識別ＩＤを持ち処理に使用されるダイアログボックスを格納するダイアログボックス格納部と、
　ダイアログボックスを表示する表示部と、
　データ入力を行う入力部と、
　ダイアログ識別ＩＤを用いてダイアログボックスを表示する対話画面制御部とからなる
　対話型データ入力システム。」
である点で一致し、
　
　本願発明の「ダイアログボックス」は、各処理に対して共通に使用されるものであり、本願発明の「対話画面制御部」は所定の共通処理をするのに対して、引用刊行物記載の発明の「ダイアログボックス」（ダイアログ）は、各処理に対して共通に使用されるものか不明であり、引用刊行物記載の発明の「対話画面制御部」（ダイアログ・マネージャー）は所定の共通処理をするものか否か明確ではない点（以下、「相違点１」という。）。
　
　本願発明の「対話画面制御部」は、処理要求をダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストと共に受け取って、受け取ったダイアログ識別ＩＤを持つダイアログボックスを前記ダイアログボックス格納部から取り出して、前記表示部に取り出したダイアログボックスを表示すると共に、受け取ったパラメータリストに含まれるコントロール識別ＩＤに関連する情報を取り出して、取り出した情報を用いて所定の共通処理をするのに対して、引用刊行物記載の発明では、「対話画面制御部」（ダイアログ・マネージャー）は、このような処理を行うことが記載されていない点（以下、「相違点２」という。）。
　
　本願発明の「コマンド処理部」は、入力部で入力されたコマンドの指定を契機として、ダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストを作成して対話画面制御部に処理要求するものであるのに対して、
引用刊行物記載の発明では、ダイアログ識別IDとコントロール識別IDが記載され、コントロール識別ＩＤ（項目番号）に関して「ダイアログ内の項目でマウスのクリックが行われたとき、DialogSelectは項目番号とダイアログへのポインタを設定し、関数値にはTRUEを返す。」ことは記載されているが、入力部で入力されたコマンドの指定を契機として、ダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストを作成することは記載されていない点で相違する（以下、「相違点３」という。）。
　
の３点で相違する。
　
５．判断
　
　相違点１について検討するに
　特開平０５−１７３８５９号公報には、複写と移動処理に共通に使用される「ダイアログ１１」が記載されており、また、本願出願当時において周知であった、Windows　Ver3.1においては、ファイルオープンやファイルセーブ、プリント、色の選択など、Windowsアプリケーションが一般的に利用するダイアログボックスを実現するための共通モジュールが標準で提供されており（松原　敦、日本語Windows3.1の徹底検証、日経バイト、日本、日経ＢＰ社、１９９３年　７月　１日、第１１４号、p.133-134等を参照されたい。）、ダイアログボックスを共通の処理を行うものとすることは、周知な技術的手段に過ぎないものである。
　したがって、引用刊行物記載の発明の「ダイアログボックス」を各処理に共通に使用されるものとし、「対話画面制御部を」を所定の共通処理をするものとすることは、当業者が適宜になし得ることである。
　　
　相違点２及び相違点３について検討するに
　コマンドの操作に応じて対応するダイアログボックスを表示させることは、周知な技術的手段に過ぎないものであり（国際公開９２／１６９０３（特表平０６−５０６５４８号公報　第５頁左下欄２１行〜第６頁右下欄第１１行）、特開平０４−２８７１１６号公報段落【０１００】〜【０１１１】）、また、送られてくるダイアログを示す番号を含むデータに基づいて、ダイアログの表示を行うことも、周知な技術的手段に過ぎないものであり（特開平０１−１０２６１４号公報　第５頁右下欄第４行〜第１３行のデータ構造に関する記載参照）、引用刊行物（摘記事項３−３．）には、「プログラムはリソースとしてダイアログを定義しておき、そのリソース順序番号を参照してGetNewDialogを呼び出してダイアログを作成する。」と記載されているように、引用刊行物記載の発明において、プログラムがコマンドの操作を契機として対応するダイアログ識別ＩＤを有する、ダイアログボックスを対話画面制御部が表示させることは、当業者が適宜になし得ることである。
　また、データをリストとして送ることは、慣用の技術的手段に過ぎない。
　
　そして、コマンドに応じてダイアログ内の項目を変更する場合に、引用刊行物の図１３．４における、「・・・項目の変更・・・」以下で定義されたデータの変更が必要であることは当業者に自明であり、また、これらのデータをプログラムにおけるコマンドの指定を契機として、ダイアログ・マネージャーへ、ダイアログ識別ＩＤと共に送るようにすることに格別の困難性があるものとは認められない。
　したがって、引用刊行物記載の発明における「対話画面制御部」を「処理要求を・・・表示すると共に、受け取ったパラメータリストに含まれるコントロール識別ＩＤに関連する情報を取り出して、取り出した情報を用いて所定の共通処理をする」ものとし「入力部で入力されたコマンドの指定を契機として、コントロール識別ＩＤを含むパラメータリストを作成して対話画面制御部に処理要求するコマンド処理部」を設けることは当業者が容易になし得ることである。
　
　したがって、引用刊行物記載の発明の対話型データ入力システムに上記周知な技術的手段を採用して、
　入力部で入力されたコマンドの指定を契機として、ダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストを作成して前記対話画面制御部に処理要求するコマンド処理部と、
　処理要求をダイアログ識別ＩＤとコントロール識別ＩＤを含むパラメータリストと共に受け取って、受け取ったダイアログ識別ＩＤを持つダイアログボックスを前記ダイアログボックス格納部から取り出して、前記表示部に取り出したダイアログボックスを表示すると共に、受け取ったパラメータリストに含まれるコントロール識別ＩＤに関連する情報を取り出して、取り出した情報を用いて所定の共通処理をする対話画面制御部と、
を持たせることは、当業者が容易に想到しうるところである。
　
　よって、本願発明は、引用刊行物記載の発明に周知慣用技術を適用することによって、当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができないものである。
　　
　よって、結論のとおり審決する。