【事件の表示】
　平成１１年特許願第２３０２１２号「コンピュータ・システムおよび対話のための方法」拒絶査定不服審判事件〔平成１２年　５月１６日出願公開、特開２０００−１３７６１４〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯と本願発明 
　本願は、平成１１年８月１７日（パリ条約による優先権主張１９９８年９月２４日、カナダ国）の出願であって、平成１３年３月６日付けで拒絶理由通知がなされ、同年８月２４日付けで手続補正がなされ、同年１１月２日付けで拒絶理由通知がなされ、平成１４年５月７日付けで手続補正がなされ、同年１１月１８日付けで拒絶理由通知がなされ、平成１５年５月２６日付けで手続補正がなされたが、同年８月１８日付けで拒絶査定がなされ、これに対し、同年１１月１８日に審判請求がなされたものである。
　そして、その請求項４に係る発明（以下「本願発明」という。）は、平成１５年５月２６日付け手続補正書により補正された特許請求の範囲の請求項４に記載された次のとおりのものと認める。
　
　「クライアントとバックエンド・システム内の構成要素との間の対話をコンピュータに実現させるための方法であって、
　前記バックエンド・システムとの対話フローをコンピュータに実現させるナビゲータを実行メソッドによって駆動するステップであって、前記ナビゲータがサブコマンドとサブナビゲータを選択的に含むセットを含み、前記セット内の前記サブコマンドおよび前記サブナビゲータの連続実行が前記バックエンド・システムとの対話フローを規定する、ステップと、
　前記ナビゲータが、前記セット内の前記サブコマンドおよび前記サブナビゲータの連続実行によって失敗イベントが通知されないときに成功イベントを通知し、前記ナビゲータが、前記セット内の前記サブコマンドおよび前記サブナビゲータの連続実行のうちのいずれか１つの実行によって失敗イベントが通知されると失敗イベントを通知するステップとを含み、
　前記セット内の各サブコマンドおよび各サブナビゲータの実行メソッドが、
　前記ナビゲータの実行メソッドから導き出されたナビゲータ内の内部イベントか、または
　サブコマンドおよびサブナビゲータの前記セットの他の選択された１つからの成功イベントによってトリガされ、
　サブコマンドがクライアントとバックエンド・システム内の構成要素との間の対話をコンピュータに実現させるためのコマンドと同じ特性を有し、サブナビゲータがナビゲータと同じ特性を有し、
　前記コマンドが実行メソッドによって駆動され、前記コマンドを駆動する前記実行メソッドは、
　前記クライアントが対話する前記バックエンド・システムを識別するオブジェクトである接続指定と前記通信の対話関係プロパティを識別するオブジェクトである対話指定から通信を生成するステップと、
　生成された前記通信を使用して前記クライアントを前記バックエンド・システムと接続するステップと、
　生成された前記通信を介して入力オブジェクトのデータを送るステップと、
　生成された前記通信を介して１つまたは複数の出力オブジェクトのデータを受け取るステップと、
　例外が発生しない場合は実行成功イベントを通知し、例外が発生した場合は実行失敗イベントを通知するステップを含む、
　方法。」
　
２．引用文献
　
（Ａ）原査定の拒絶の理由に引用された、（植村剛成，”Ｊａｖａ　Ｓｔｕｄｉｏで今日からＪａｖａプログラマ”，ＪＡＶＡ　ＰＲＥＳＳ，株式会社技術評論社，１９９８年８月１５日 ，第２巻，Ｐ．１６４−１７４）（以下、「引用文献１」という。）には、図面とともに以下の事項が記載されている。
　
（ア）「ＪａｖａＳｔｕｄｉｏ１．０日本語版は，従来のＪａｖａ開発ソフトと違い，部品（ＪａｖａＢｅａｎｓコンポーネント）を「選んで」，「貼り付けて」，「つなぎ合わせる」だけの簡単操作でＪａｖａアプレットやアプリケーション，さらにはＪａｖａＢｅａｎｓを作成できるまったく新しいタイプの，Ｊａｖａ組み立てソフト」です．」（１６４頁左欄下から４行目〜右欄２行目）
　
（イ）「●データベースなどの実務用途にも対応
　アンケートその他の情報の登録など，文字列を書き込んで送信できるホームページや，情報を登録するためのデータベース，またはプレゼンテーション資料用の画面など，ビジネスユースにおいてもざまざまな方面で役立てることができます．」（１６４頁右欄下から７行目〜２行目）
　
（ウ）「●ステップ２：部品を貼り付ける
　図２は「デザインウィンドウ」です．目的の作品を作成するのに必要なコンポーネントをメインウィンドウのパレットで選択し，このウィンドウ上にドロップします．デザインウィンドウは，作成しようとする作品の動作方法（論理）を設計します．ＪａｖａＳｔｕｄｉｏではデザインウィンドウとＧＵＩウィンドウ（後述）で設計されたものを合わせて「デザイン」と呼んでいます．
●ステップ３：部品をつなぎ合わせる
　配置したコンポーネントは，マウスを使ってコンポーネントどうしを接続したり切り離したりと，自由に変更できます．ＪａｖａＳｔｕｄｉｏには「プログラム」という用語は不必要ですが，強いて言うならコンポーネントの「選択」，「接続」や「切り離し」がプログラムに相当します」（１６５頁右欄から１行目〜１５行目）
　
（エ）「●開発劾率の飛躍的向上
　よく利用する機能をコンポーネント化することによって，簡単に別の作品に組み込めます．強力なコンポーネントを装備することによって，驚異的な開発効率を生み出すことができます（図６−１，６−２）．このようにデザインの集積化が行えますので，作品が複雑になっても設計を簡素化することが可能になるとともに，コンポーネントの再利用により効率の良い作業が行えます．まさにハードウェアの論理回路と同様に，まとまった機能を集積化してより高度な機能をソフトウェアでも実現できるようになり，ハードウェアによりー歩近づいたといえます．」（１６６頁左欄１８行目〜右欄９行目）
　
（オ）「図６−１，６−２」には、複数のコンポーネントからなるプログラムを別の複数のコンポーネントからなるプログラムにコンポーネントとして再利用する様子が描かれている。（１６６頁下）
　
（カ）「ＪａｖａＳｔｕｄｉｏの操作方法が一通り理解していただけたと思いますので，ここではコンポーネントの接続方法について，アニメーションを例にもう少し詳しく説明します．
　・・・（中略）・・・　また，デザインウインドウにはＡｎｉｍａｔｏｒコンポーネントのアイコンが表示されます．このアイコンの左側には３つのコネクタ（コンポーネント間を接続するための端子）があり，上から順に「動画開始」，「動画停止」，「動画の速度」の端子になっています（図９）． これらのコネクタ内部には右向きの矢印が表示されていて，このコンポーネントへの入力端子であることを示しています．さらに，コンポーネントの設定を変更するためのカスタマイザウィンドウも同時に表示されていますので，動画イメージの選択や速度の設定など，ＪａｖａＢｅａｎｓのプロパティやＢｅａｎＩｎｆｏで定義された設定項目の指定が行えるようになっています（図１０）．
　・・・（中略）・・・そこで，デザインウィンドウに表示されているボタンコンポーネントの出カコネクタをマウスの左ボタンで選択し，そのままドラッグするとコネクタから線が伸びてきますので，そのままＡｎｉｍａｔｏｒコンポーネントの動画停止コネクタに接続します（図１４）．コンポーネントのコネクタ間を線でつなぐ（配線する）ことで，停止ボタンを押すとアニメーションを停止することができるようになります．内部的には停止ボタンＢｅａｎｓのイベントがＡｎｉｍａｔｏｒＢｅａｎｓのイベントリスナに転送されています．」（１６７頁左欄下から１１行目〜１６８頁右欄１５行目）
　
（キ）「ＪＤＢＣを経由してＳｉｍｐｌｅＴｅｘｔデータベースにアクセスする例を紹介します．ＳｉｍｐｌｅＴｅｘｔは，ローカルディスク上のテキストファイルで構成される簡易データベースです．ＧＵＩウィンドウには，「社員番号」，「名前」，「社内メール」，「内線番号」を入力・表示するためのテキストフィールド，検索や処理結果を表示するための表，データベースに指示をするための「検索」，「挿入」，「削除」などのボタンが表示されています（図２５）．これに対応するデザインウィンドウは図２６で，各テキストフィールドに入力された値は検索条件として使用され，「検索」ボタンコンポーネントからのトリガによって，データベースアクセスコンポーネント経由で検索指示が自動的にＳＱＬ化されてデータベースに送られます．
　検索結果は，表出力コンポーネントに送られて表示されると同時に，各テキストフィールドにもそれぞれの内容が送られます．このテキストフィールドコンポーネントは，データベースアクセス専用でデータベースのカラム名を取得し，それをタイトルとして自動的に表示します．これらのテキストフィールドとデータベースアクセスコンポーネントを接続しているおのおののコネクタは，入出力両方の動作が可能ですので，コネクタ内部には左右両方の矢印が表示されています．図２７はデータベースコンポーネントのカスタマイザ画面で，データベース接続のための設定項目が表示されています．「ユーザ名」と「パスワード」はデータべーステーブルに設定されたアクセス権設定です．また，「ＵＲＬ」と「ドライバ」はそれぞれデータベースの指定とデータベースとの接続に使用するドライバを設定します．ＳｉｍｐｌｅＴｅｘｔ以外のデータベースとアクセスするには，「ドライバ」の設定を他のＪＤＢＣドライバに変更することによりＯｒａｃｌｅ，Ｓｙｂａｓｅ， ＭＳ　Ａｃｃｅｓｓなどのリレーショナルデータベースにもアクセスが可能になります．」（１７０頁右欄下から１４行目〜１７１頁左欄２０行目）
　
　ここで、（イ）における記載「ホームページや，情報を登録するためのデータベース，またはプレゼンテーション資料用の画面など，ビジネスユースにおいてもざまざまな方面で役立てる」、並びに（キ）における記載「ＪＤＢＣを経由してＳｉｍｐｌｅＴｅｘｔデータベースにアクセスする例」、「ＧＵＩウィンドウには，「社員番号」，「名前」，「社内メール」，「内線番号」を入力・表示するためのテキストフィールド，検索や処理結果を表示するための表，データベースに指示をするための「検索」，「挿入」，「削除」などのボタンが表示されています」、及び「ＳｉｍｐｌｅＴｅｘｔ以外のデータベースとアクセスするには，「ドライバ」の設定を他のＪＤＢＣドライバに変更することによりＯｒａｃｌｅ，Ｓｙｂａｓｅ， ＭＳ　Ａｃｃｅｓｓなどのリレーショナルデータベースにもアクセスが可能になります．」からすると、
　引用文献１には、ビジネスシステムにおいて、各種データベースの検索、処理、登録といった業務をコンピュータに実現させる方法が記載されている。
　なお、前記システムがクライアントとの対話を実現させることは当業者にとって明らかである。
　よって、引用文献１には、クライアントとビジネスシステム内の各データベースとの間の対話をコンピュータに実現させる方法が記載されていると解される。
　
　そして、（ア）における記載「Ｊａｖａアプレットやアプリケーション，さらにはＪａｖａＢｅａｎｓを作成できるまったく新しいタイプの，Ｊａｖａ組み立てソフト」です」、（ウ）における記載「コンポーネントの「選択」，「接続」や「切り離し」がプログラムに相当」、（エ）における記載「よく利用する機能をコンポーネント化することによって，簡単に別の作品に組み込めます．」、及び（オ）における「図６−１，６−２」には、複数のコンポーネントからなるプログラムを別の複数のコンポーネントからなるプログラムにコンポーネントとして再利用することが記載されていることからすると、
　引用文献１に記載された「Ｊａｖａ組み立てソフト」で作成されるアプリケーションプログラム（以下、簡単のため「アプリケーションコンポーネント」という。）は、Ｊａｖａをベースにして、コンポーネント及びコンポーネント化された別途作成したアプリケーションプログラム（以下、簡単のため「サブアプリケーションコンポーネント」という。）を選択的に含むセットを含むものとして構成される。
　そして、（ウ）における記載「部品をつなぎ合わせる」及び（カ）における記載「３つのコネクタ（コンポーネント間を接続するための端子）があり」からすると、各コンポーネント及びサブアプリケーションコンポーネントはそれぞれコネクタを備えて、前記コネクタを介してコンポーネント及びサブアプリケーションコンポーネントが接続されると解される。
　また、（カ）における記載「コンポーネントのコネクタ間を線でつなぐ（配線する）ことで，停止ボタンを押すとアニメーションを停止することができるようになります．内部的には停止ボタンＢｅａｎｓのイベントがＡｎｉｍａｔｏｒＢｅａｎｓのイベントリスナに転送されています．」を参照すると、
　各コンポーネント及びサブアプリケーションコンポーネントは、コネクタを介して接続されることで、一方のコンポーネントまたはサブアプリケーションコンポーネントのイベントが他方のコンポーネントまたはサブアプリケーションコンポーネントに転送されると解される。
　なお、前記アプリケーションコンポーネント、コンポーネント、及びサブアプリケーションコンポーネントが、Ｊａｖａをベースにしたオブジェクト指向プログラムであることから、これらが実行メソッドによって駆動すること、及び前記イベントによって他方のコンポーネントまたはサブアプリケーションコンポーネントの実行メソッドがトリガーされることは当業者にとって明らかである。
　よって、前記セット内の各コンポーネントと各サブアプリケーションコンポーネントの実行メソッドが前記セットの他の選択された１つとコネクタで接続されることにより、前記セットの他の選択された１つからのイベントによってトリガーされると認められる。
　なお、前記アプリケーションコンポーネントに含まれるコンポーネントまたはサブアプリケーションコンポーネントであって、一番最初に起動されるコンポーネントまたはサブアプリケーションコンポーネントは、先行する他のコンポーネントまたはサブアプリケーションコンポーネントがなく、したがって、アプリケーションコンポーネントの実行メソッドから導き出される内部イベントによってトリガされるものと認められる。
　
　そして、前記各コンポーネント、及び各サブアプリケーションコンポーネントは、コネクタを有し、コネクタ同士で接続されることにより、あるコンポーネントまたはサブアプリケーションコンポーネントからのイベントによって、前記接続された他のコンポーネントまたはサブアプリケーションコンポーネントがトリガーされるものであることからすると、コンポーネント及びサブアプリケーションコンポーネントは同じ特性を有すると解される。そして、アプリケーションコンポーネントもそれ自体をサブアプリケーションコンポーネントとして再利用できることから、アプリケーションコンポーネントもコンポーネント及びサブアプリケーションコンポーネントと同じ特性を有すると解される。
　このように、引用文献１記載の方法により、ビジネスシステム内の各データベースとの対話フローをコンピュータに実現させるアプリケーションコンポーネントを作成できると解される。
　そして、複数のコンポーネント、及びサブアプリケーションコンポーネントをコネクタ同士で接続することにより、前記コンポーネント、及びサブアプリケーションコンポーネントの連続実行が前記ビジネスシステム内の各データベースとの対話を実現する対話フローを規定すると認められる。
　また、（キ）における記載「各テキストフィールドに入力された値は検索条件として使用され，「検索」ボタンコンポーネントからのトリガによって，データベースアクセスコンポーネント経由で検索指示が自動的にＳＱＬ化されてデータベースに送られます．」、「検索結果は，表出力コンポーネントに送られて表示されると同時に，各テキストフィールドにもそれぞれの内容が送られます．」、「図２７はデータベースコンポーネントのカスタマイザ画面で，データベース接続のための設定項目が表示されています．「ユーザ名」と「パスワード」はデータべーステーブルに設定されたアクセス権設定です．また，「ＵＲＬ」と「ドライバ」はそれぞれデータベースの指定とデータベースとの接続に使用するドライバを設定します．」、及び「「ドライバ」の設定を他のＪＤＢＣドライバに変更することによりＯｒａｃｌｅ，Ｓｙｂａｓｅ， ＭＳ　Ａｃｃｅｓｓなどのリレーショナルデータベースにもアクセスが可能」からすると、
　引用文献１には、クライアントとビジネスシステムのデータベースとの間の対話をコンピュータに実現させるためのコンポーネント（以下、「基本的なコンポーネント」という。）について記載されていると解される。
　そして、前記基本的なコンポーネントは、他のコンポーネントと同じ特性を有するとともに、実行メソッドによって駆動されると解される。
　なお、前記実行メソッドは、前記クライアントと前記データベースシステムと接続するステップとを有すると解せられる。
　さらに、前記接続を介して入力されたデータをデータベースに送信するステップと、前記接続を介して表やテキスト等の１つまたは複数の出力データを受け取るステップとを有するものと解される。
　
　したがって、（ア）〜（キ）の記載、及び関連する図面から、引用文献１には、次の発明（以下、「引用発明１」という。）が記載されているものと認められる。
　
　クライアントとビジネスシステム内の各データベースとの間の対話をコンピュータに実現させるための方法であって、
　前記ビジネスシステムとの対話フローをコンピュータに実現させるアプリケーションコンポーネントを実行メソッドによって駆動するステップであって、前記アプリケーションコンポーネントが、コンポーネントとサブアプリケーションコンポーネントを選択的に含むセットを含み、前記セット内の前記コンポーネントおよび前記サブアプリケーションコンポーネントの連続実行が前記ビジネスシステムとの対話を実現する対話フローを規定する、ステップと、
　を含み、
　前記セット内の各コンポーネントおよび各サブアプリケーションコンポーネントの実行メソッドが、
　前記アプリケーションコンポーネントの実行メソッドから導き出されたアプリケーションコンポーネント内の内部イベントか、または
　コンポーネントおよびサブアプリケーションコンポーネントの前記セットの他の選択された１つからのイベントによってトリガされ、
　コンポーネントとクライアントとビジネスシステムのデータベースとの間の対話をコンピュータに実現させるための基本的なコンポーネントとは同じ特性を有し、サブアプリケーションコンポーネントとアプリケーションコンポーネントとは同じ特性を有し、
　前記基本的なコンポーネントが実行メソッドによって駆動され、前記基本的なコンポーネントを駆動する実行メソッドは、
　前記クライアントを前記ビジネスシステムと接続するステップと、
　前記接続を介して入力データを送るステップと、
　前記接続を介して１つまたは複数の出力データを受け取るステップと、
　を含む、方法。
　
（Ｂ）原査定の拒絶の理由に引用された、（Ｂｅｒｎａｒｄ　Ｖａｎ　Ｈａｅｃｋｅ，訳：夏目大，”ＪＤＢＣパーフェクトガイド”，株式会社コンピュータ・エージ社，１９９８年６月１０日，Ｐ．５１〜５３、６１〜６５、７２〜７７、１１１〜１１３、１３１、１４３〜１４８）（以下、「引用文献２」という。）には、図面とともに以下の事項が記載されている。
　
（ク）「Ｊａｖａの環境とＪＤＢＣを使用してデータベースアプリケーションを作成する作業は、いくつかの段階に分かれています。これは、Ｃ言語とＣＬＩ （Ｃａｌｌ Ｌｅｖｅｌ Ｉｎｔｅｒｆａｃｅ）を使用する場合とほぼ同じです。
　まず最初の段階では、データベースへの接続を行うためのプログラム（メソッド）を、データベースドライバ１つにつき１つずつ作成します。このメソッドには、接続対象となるデータベース（「どこに存在し、どのようなＤＢＭＳに管理されているデータベースを接続対象とするか」）を指定するためのパラメータと、ユーザ名・パスワードを指定するためのパラメータが必要です。接続を行うためのメソッドができたら、次に、接続を終了する、ＳＱＬステートメント（データベースに対する問い合わせや、データベースの更新を行うためのもの。ダイナミックＳＱＬステートメントやストアドプロシージャへのリクエストも含む）を送信する、といった処理を行うためのメソッドを作成します。また、ＳＱＬステートメントの実行結果にアクセスするためのメソッドも必要です。クライアントとＤＢＭＳで行う主な処理を図４−２に示します。
　さらに、エラーを処理するためのメソッドも作成します。Ｊａｖａには例外処理機能（エラーを検出してその種類を知らせる機能）が用意されているので、発生したエラーの種類によって異なるプロシージャを呼び出すようなメソッドも作成できます。」（５１頁下から５行目〜５２頁１０行目。）
　
（ケ）「データベースにアクセスするには、まずデータベースへの接続、つまりＣｏｎｎｅｃｔｉｏｎオブジェクトの作成が必要です。Ｃｏｎｎｅｃｔｉｏｎオブジェクトは、データベースにアクセスするためのメソッドを持つＪａｖａオブジェクトです。このオブジェクトには、接続の状態に関する情報も保持されます。Ｃｏｎｎｅｃｔｉｏｎオブジェクトを作成する際には、使用するデータベース、  ドライバ、プロトコル、およびＤＢＭＳを利用するためのユーザ名とパスワードをパラメータとして指定します。」（６１頁１０行目〜１４行目。）
　
（コ）「使用するデータベースの指定には、広く普及していて評価も高い、ＵＲＬ （Ｕｎｉｆｏｒｍ Ｒｅｓｏｕｒｃｅ Ｌｏｃａｔｏｒ）を使用します。
　・・・（中略）・・・　
　以下にＪＤＢＣ ＵＲＬの例をいくつか示します。
　・・・（中略）・・・　
　　ｊｄｂｃ：ｍｙｄｂｄｒｖ：／／ｗｗｗ．ｍｙｄｏｍａｉｎ．ｎｅｔ：８１９２／ｍｙｄｂ
　これは、一般的には、「『ｍｙｄｂｄｒｖ』というタイプのドライバ、『ｗｗｗ．ｍｙｄｏｍａｉｎ．ｎｅｔ』というホストで動作するデータベースエンジン（ｓｕｂｎａｍｅの部分に‘ｗｗｗ．ｍｙｄｏｍａｉｎ．ｎｅｔと指定されている）、そして８１９２番のＴＣＰ／ＩＰ （ＴｒａｎｓｍｉｓｓｉｏｎＣｏｎｔｒｏ１Ｐｒｏｔｏｃｏ１／ＩｎｔｅｒｎｅｔＰｒｏｔｏｃｏ１）ポートを使用して、『ｍｙｄｂ』というデータベースにアクセスする」という意味になります。」（６２頁４行目〜６３頁１２行目。）
　
（サ）「ＳＱＬステートメントの送信
　データベースエンジンにＳＱＬステートメントを送るのは、Ｃｏｎｎｅｃｔｉｏｎオブジェクトです。ＳＱＬステートメントをデータベースエンジンに送るためのメソッドはいくつか用意されていますが、どれを使用するかはＳＱＬステートメントの種類によって変わります。この章では、ダイナミックＳＯＬ ステートメントやストアドプロシージャ（どちらも後で詳しく説明します）には触れず、 ごく一般的なＳＱＬステートメント（作成された後、一度だけ送信．実行されるもの。例としては、インタラクティブクエリツールで作成されるＳＱＬステートメントなどがあげられる）に絞って話を進めます。ただ、 「一般的なＳＱＬステートメント」も、データを検索するためのものと、データを更新するためのものの２種類に分けられるので注意してください。
Ｓｔａｔｅｍｅｎｔオブジェクトの作成
　データベースへの接続が完了したら、そのすぐ後にはＳｔａｔｅｍｅｎｔオブジェクト（ＳＱＬステートメントをの実行をＤＢＭＳにリクエストするのに使用されるオブジェクト）を作成します。ただし、ＳＱＬステートメントの作成は、データベースへの接続の前に行っても後に行っても自由です。Ｓｔａｔｅｍｅｎｔオブジェクトは、必ず特定のＣｏｎｎｅｃｔｉｏｎオブジェクトと連携します。」（７２頁下から６行目〜７３頁８行目。）
　
（シ）「ＳＱＬステートメントの戻り値がロウの集合であれば、ｅｘｅｃｕｔｅＱｕｅｒｙ（）メソッドを使用します。このメソッドで送信するのは、通常、スタティックなＳＥＬＥＣＴコマンドです。また、このメソッドを使用すると、ＳＱＬステートメントは文字列のかたちでそのまま送信できます。ｎａｔｉｖｅＳＱＬ（）によってＤＢＭＳ固有の形式に変換する必要はありません。ｅｘｅｃｕｔｅＱｕｅｒｙ（）の戻り値は、ＲｅｓｕｌｔＳｅｔオブジェクトです・・・（中略）・・・
　ＳＱＬステートメントに戻り値がない場合（「戻り値が０個のロウになる」というのとは意味が違う点に注意）、戻り値が整数値である場合、つまりＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥといったコマンドを使用してＳＱＬステートメントを作成する場合は、ｅｘｅｃｕｔｅＵｐｄａｔｅ（）メソッドを使用します。ｅｘｅｃｕｔｅＵｐｄａｔｅ（）メソッドコールの戻り値は整数値か「０」になります。」（７７頁８行目〜１７行目。）
　
（ス）「ＪＤＢＣには、プログラム実行中に（修復可能な）不具合が起きたとき、例外を発生させたり警告を出したりする機能が用意されています。これらの例外や警告を検出するコードをプログラムに入れておけば、実行中に突然終了するような事態を回避することができます。」（１１１頁２行目〜４行目。）
　
　ここで、（ク）の記載からすると、
　引用文献２には、クライアントとデータベースシステムとの間の対話をコンピュータに実現させるための基本的なプログラム構造が記載されている。なお、前記プログラムがＪａｖａを使用したプログラムであることから、実行メソッドにより駆動されることは、自明である。
　
　そして、（ケ）における記載「Ｃｏｎｎｅｃｔｉｏｎオブジェクトは、データベースにアクセスするためのメソッドを持つＪａｖａオブジェクトです。このオブジェクトには、接続の状態に関する情報も保持されます。Ｃｏｎｎｅｃｔｉｏｎオブジェクトを作成する際には、使用するデータベース、  ドライバ、プロトコル、およびＤＢＭＳを利用するためのユーザ名とパスワードをパラメータとして指定します。」及び「データベースにアクセスするには、まずデータベースへの接続、つまりＣｏｎｎｅｃｔｉｏｎオブジェクトの作成が必要です。」、並びに（コ）における記載「『ｍｙｄｂｄｒｖ』というタイプのドライバ、『ｗｗｗ．ｍｙｄｏｍａｉｎ．ｎｅｔ』というホストで動作するデータベースエンジン（ｓｕｂｎａｍｅの部分に‘ｗｗｗ．ｍｙｄｏｍａｉｎ．ｎｅｔと指定されている）、そして８１９２番のＴＣＰ／ＩＰ （ＴｒａｎｓｍｉｓｓｉｏｎＣｏｎｔｒｏ１Ｐｒｏｔｏｃｏ１／ＩｎｔｅｒｎｅｔＰｒｏｔｏｃｏ１）ポートを使用して、『ｍｙｄｂ』というデータベースにアクセスする」からすると、
　Ｃｏｎｎｅｃｔｉｏｎオブジェクトは、クライアントが対話する前記ビジネスシステムのホスト名及びポート番号を識別する接続指定のためのオブジェクトであると解される。
　また、前記記載「『ｍｙｄｂｄｒｖ』というタイプのドライバ、・・・（中略）・・・　ＴＣＰ／ＩＰ （ＴｒａｎｓｍｉｓｓｉｏｎＣｏｎｔｒｏ１Ｐｒｏｔｏｃｏ１／ＩｎｔｅｒｎｅｔＰｒｏｔｏｃｏ１）ポートを使用して、『ｍｙｄｂ』というデータベースにアクセスする」からすると、
　前記Ｃｏｎｎｅｃｔｉｏｎオブジェクトは、通信によって呼び出されるドライバを識別する、対話指定のためのオブジェクトでもあると解される。
　そして、前記Ｃｏｎｎｅｃｔｉｏｎオブジェクトから前記データベースとの通信を生成するステップを含むと解される。
　そして、（サ）における記載「データベースへの接続が完了したら、そのすぐ後にはＳｔａｔｅｍｅｎｔオブジェクト（ＳＱＬステートメントをの実行をＤＢＭＳにリクエストするのに使用されるオブジェクト）を作成します。」からすると、
　生成された前記通信を使用して前記クライアントと前記データベースシステムと接続するステップとを含むと解される。
　そして、（サ）における記載「データベースエンジンにＳＱＬステートメントを送るのは、Ｃｏｎｎｅｃｔｉｏｎオブジェクトです。」、「この章では、ダイナミックＳＱＬステートメントやストアドプロシージャ（どちらも後で詳しく説明します）には触れず、ごく一般的なＳＱＬステートメント（作成された後、一度だけ送信・実行されるもの。例としては、インタラクティブクエリツールで作成されるＳＱＬステートメントなどがあげられる）に絞って話を進めます。ただ、「一般的なＳＱＬステートメント」も、データを検索するためのものと、データを更新するためのものの２種類に分けられる」、及び「データベースへの接続が完了したら、そのすぐ後にはＳｔａｔｅｍｅｎｔオブジェクト（ＳＱＬステートメントをの実行をＤＢＭＳにリクエストするのに使用されるオブジェクト）を作成します。」からすると、
　生成された前記通信を介して、インタラクティブクエリツールで作成されるＳＱＬステートメントオブジェクトのデータを送るステップを含むと解される。
　また、（シ）における記載「ＳＱＬステートメントの戻り値がロウの集合であれば、ｅｘｅｃｕｔｅＱｕｅｒｙ（）メソッドを使用します。」、「ｅｘｅｃｕｔｅＱｕｅｒｙ（）の戻り値は、ＲｅｓｕｌｔＳｅｔオブジェクトです」、及び「ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥといったコマンドを使用してＳＱＬステートメントを作成する場合は、ｅｘｅｃｕｔｅＵｐｄａｔｅ（）メソッドを使用します。ｅｘｅｃｕｔｅＵｐｄａｔｅ（）メソッドコールの戻り値は整数値か「０」になります。」からすると、
　生成された前記通信を介して、実行結果であるＲｅｓｕｌｔＳｅｔオブジェクト等のデータを受け取るステップを含むと解される。
　そして、（ス）における記載「ＪＤＢＣには、プログラム実行中に（修復可能な）不具合が起きたとき、例外を発生させたり警告を出したりする機能が用意されています。これらの例外や警告を検出するコードをプログラムに入れておけば、実行中に突然終了するような事態を回避することができます。」からすると、
　不具合が起きた場合には、例外を発生させると認められる。
　
　したがって、（キ）〜（ス）の記載、及び関連する図面から、引用文献２には、次の発明（以下、「引用発明２」という。）が記載されているものと認められる。
　
　クライアントとデータベースシステムとの間の対話をコンピュータに実現させるための基本的なプログラムであって、
　前記プログラムは実行メソッドによって駆動され、前記プログラムを駆動する前記実行メソッドは、
　クライアントが対話する前記データベースシステムのホスト名及びポート番号を識別する接続指定のためのオブジェクトであり、
　通信によって呼び出されるドライバを識別する、対話指定のためのオブジェクトでもあるＣｏｎｎｅｃｔｉｏｎオブジェクトから前記データベースとの通信を生成するステップと、
　生成された前記通信を使用して前記クライアントと前記データベースシステムと接続するステップと
　生成された前記通信を介して、インタラクティブクエリツールで作成されるＳＱＬステートメントオブジェクトのデータを送るステップと
　生成された前記通信を介して、実行結果であるＲｅｓｕｌｔＳｅｔオブジェクト等のデータを受け取るステップと
　不具合が起きた場合には、例外を発生させるステップを含む
　基本的なプログラム。
　
３．対比
　本願発明と引用発明１とを比較すると、
　引用発明１の「ビジネスシステム」及び「各データベース」は、それぞれ本願発明の「バックエンド・システム」及び「構成要素」に相当する。
　そして、引用発明１の「アプリケーションコンポーネント」と本願発明の「ナビゲータ」とは、ともに、バックエンド・システムとの対話フローをコンピュータに実現させる「ナビゲートプログラム」である点で一致する。
　また、引用発明１の「コンポーネント」及び「サブアプリケーションコンポーネント」は、前記「アプリケーションコンポーネント」が含むセットに選択的に含まれ、前記セット内の前記「コンポーネント」及び前記「サブアプリケーションコンポーネント」の連続実行が、ビジネスシステムとの対話フローを規定しており、他方、本願発明の「サブコマンド」及び「サブナビゲータ」は、前記「ナビゲータ」が含むセットに選択的に含まれ、前記セット内の前記「サブコマンド」及び前記「サブナビゲータ」の連続実行が、バックエンド・システムとの対話フローを規定することから、引用発明１の「コンポーネント」及び「サブアプリケーションコンポーネント」と、本願発明の「サブコマンド」及び「サブナビゲータ」とは、ともに、「ナビゲートプログラム」が含むセットに選択的に含まれ、前記セット内のこれらの連続実行が、バックエンド・システムとの対話フローを規定する「サブプログラム」及び「サブナビゲートプログラム」である点で一致する。
　よって、引用発明１の「アプリケーションコンポーネント」と本願発明の「ナビゲータ」とは、ともに、前記「サブプログラム」と「サブナビゲートプログラム」を選択的に含むセットを含み、前記セット内の前記「サブプログラム」および前記「サブナビゲートプログラム」の連続実行が前記バックエンド・システムとの対話を実現する対話フローを規定する、ステップを含む点で一致する。
　また、引用発明１のセット内の各「コンポーネント」及び各「サブアプリケーションコンポーネント」の実行メソッドは、前記「アプリケーションコンポーネント」の実行メソッドから導き出された「アプリケーションコンポーネント」内の内部イベントか、または「コンポーネント」及び「サブアプリケーションコンポーネント」の前記セットの他の選択された１つからのイベントによってトリガされ、他方、本願発明のセット内の各「サブコマンド」及び各「サブナビゲータ」の実行メソッドは、前記「ナビゲータ」の実行メソッドから導き出された「ナビゲータ」内の内部イベントか、または「サブコマンド」及び「サブナビゲータ」の前記セットの他の選択された１つからの成功イベントによってトリガされることから、両者はともに、セット内の各「サブプログラム」及び各「サブナビゲートプログラム」の実行メソッドは、前記「ナビゲートプログラム」の実行メソッドから導き出された「ナビゲートプログラム」内の内部イベントか、または「サブプログラム」及び「サブナビゲートプログラム」の前記セットの他の選択された１つからのイベントによってトリガされる点で一致する。
　また、引用発明１の「基本的なコンポーネント」は、ビジネスシステムのデータベースとの間の対話をコンピュータに実現させるためのものであるから、本願発明の「コマンド」と、クライアントとバックエンド・システム内の構成要素との間の対話をコンピュータに実現させるための「基本的なプログラム」である点で一致する。
　そして、引用発明１の「基本的なコンポーネント」と本願発明の「コマンド」とは、ともに、実行メソッドによって駆動され、前記実行メソッドは、前記クライアントを前記バックエンド・システムと接続するステップと、前記接続を介して入力データを送るステップと、前記接続を介して１つまたは複数の出力データを受け取るステップと、を含む点で一致する。
　よって、本願発明と引用発明１とは、以下の点で一致し、また相違している。
　
（一致点）
　クライアントとバックエンド・システム内の構成要素との間の対話をコンピュータに実現させるための方法であって、
　前記バックエンド・システムとの対話フローをコンピュータに実現させるナビゲートプログラムを実行メソッドによって駆動するステップであって、前記ナビゲートプログラムが、サブプログラムとサブナビゲートプログラムを選択的に含むセットを含み、前記セット内の前記サブプログラムおよび前記サブナビゲートプログラムの連続実行が前記バックエンド・システムとの対話を実現する対話フローを規定する、ステップと、
　を含み、
　前記セット内の各サブプログラムおよび各サブナビゲートプログラムの実行メソッドが、
　前記ナビゲートプログラムの実行メソッドから導き出されたナビゲートプログラム内の内部イベントか、または
　サブプログラムおよびサブナビゲートプログラムの前記セットの他の選択された１つからのイベントによってトリガされ、
　サブプログラムがクライアントとバックエンド・システム内の構成要素との間の対話をコンピュータに実現させるための基本的なプログラムと同じ特性を有し、サブナビゲートプログラムがナビゲートプログラムと同じ特性を有し、
　前記基本的なプログラムが実行メソッドによって駆動され、前記基本的なプログラムを駆動する実行メソッドは、
　前記クライアントを前記バックエンド・システムと接続するステップと、
　前記接続を介して入力データを送るステップと、
　前記接続を介して１つまたは複数の出力データを受け取るステップと、
　を含む、方法。
　
（相違点１）
　「ナビゲートプログラム」に関し、本願発明の方法における「ナビゲータ」が、前記セット内の前記サブコマンドおよび前記サブナビゲータの連続実行によって失敗イベントが通知されないときに成功イベントを通知し、前記ナビゲータが、前記セット内の前記サブコマンドおよび前記サブナビゲータの連続実行のうちのいずれか１つの実行によって失敗イベントが通知されると失敗イベントを通知するステップを含むのに対して、
　引用発明１の方法における「アプリケーションコンポーネント」（「ナビゲータ」に対応）は、前記セット内の前記コンポーネント（「サブコマンド」に対応）および前記サブアプリケーションコンポーネント（「サブナビゲータ」に対応）の連続実行によって失敗イベントが通知されないときに成功イベントを通知し、前記アプリケーションコンポーネントが、前記セット内の前記コンポーネントおよび前記サブアプリケーションコンポーネントの連続実行のうちのいずれか１つの実行によって失敗イベントが通知されると失敗イベントを通知するステップを含むかどうか、明らかでない点。
　
（相違点２）
　「サブプログラム」および「サブナビゲートプログラム」の実行メソッドに関し、本願発明の方法においては、前記セット内の各サブコマンドおよび各サブナビゲータの実行メソッドが、サブコマンドおよびサブナビゲータの前記セットの他の選択された１つからの成功イベントによってトリガされているのに対して、
　引用発明１の方法においては、前記セット内の各コンポーネント（「サブコマンド」に対応）および各サブアプリケーションコンポーネント（「サブナビゲータ」に対応）の実行メソッドが、コンポーネントおよびサブアプリケーションコンポーネントの前記セットの他の選択された１つからのイベントによってトリガされているが、前記イベントが成功イベントであるかどうか明らかでない点。
　
（相違点３）
　「基本的なプログラム」を駆動する実行メソッドに関し、本願発明の方法における「コマンド」を駆動する実行メソッドが、
　例外が発生しない場合は実行成功イベントを通知し、例外が発生した場合は実行失敗イベントを通知するステップを含むのに対して、
　引用発明１の方法における「基本的なコンポーネント」（「コマンド」に対応）を駆動する実行メソッド」が、
　例外が発生しない場合は実行成功イベントを通知し、例外が発生した場合は実行失敗イベントを通知するステップを含むかどうか明らかではない点。
　
（相違点４）
　「基本的なプログラム」を駆動する実行メソッドに関し、本願発明の方法における「コマンド」を駆動する実行メソッドが、
　クライアントが対話するバックエンド・システムを識別するオブジェクトである接続指定と通信の対話関係プロパティを識別するオブジェクトである対話指定から通信を生成するステップと、
　生成された前記通信を使用して前記クライアントを前記バックエンド・システムと接続するステップと、
　生成された前記通信を介して入力オブジェクトのデータを送るステップと、
　生成された前記通信を介して１つまたは複数の出力オブジェクトのデータを受け取るステップを含むのに対して、
　引用発明１の方法における「基本的なコンポーネント」（「コマンド」に対応）を駆動する実行メソッドが、
　前記クライアントが対話する前記ビジネスシステム（「バックエンド・システム」に対応）を識別するオブジェクトである接続指定と前記通信の対話関係プロパティを識別するオブジェクトである対話指定から通信を生成するステップと、
　生成された前記通信を使用して前記クライアントを前記ビジネスシステムと接続するステップと、
　生成された前記通信を介して入力オブジェクトのデータを送るステップと、
　生成された前記通信を介して１つまたは複数の出力オブジェクトのデータを受け取るステップを含むかどうか明らかではない点。
　
４．判断
　相違点１〜相違点３について検討する。
　本願の優先権主張日前である、１９９６年６月１５日に頒布された（渡辺裕之，外１名，“相互関連タスクの実時間処理のための連携的実行制御機構”，情報処理学会論文誌  第３７巻  第６号，社団法人情報処理学会，１９９６年６月１５日，Ｐ．１２１５−１２２６）に、
「イベント．．．イベントはいくつかのタスクを実行するきっかけとなる．実際には，ユーザからの要求や外界の状況変化などがイベントとして定義される．イベントにはその種類や実行条件などの情報が含まれ，それらの情報に基づいて複数のタスクが生成される．」（１２１７頁左欄下から１３行目〜８行目。）、
「図１の場合，タスク「会議室予約」はイベント「会議開催の決定」から直接生成され，タスク「出欠確認処理」はイベント「案内状の返事到着」をきっかけとしてその実行を開始できる．」（１２１７頁右欄１７行目〜２０行目。）、及び
「電子メール・システムの故障によりタスク「案内状送付」の実行が失敗した場合，タスク「出欠確認処理」やタスク「資料送付」は実行できなくなる．もしタスクがその実行に失敗したならば，システムは即座に代替タスクを準備するとともに，失敗したタスクの実行主体であるオブジェクトへの影響を取り除かなければならない．我々が作成したプロトタイプでは，失敗処理は次の段階を経て実行される（図１２を参照）．
（１）　失敗したタスクは失敗イベントを生成する（図１２の（１）．」（１２２３頁左欄下から１２行目〜２行目。）と記載されているように、
　互いに依存関係のある複数のタスクをつなぎ合わせて連続実行するシステムをオブジェクト指向パラダイムにより実現する場合において、あるタスクが失敗した場合には失敗イベントを生成し通知すること、また失敗が発生しない場合（すなわち成功した場合）には、そのイベントをきっかけとして次のタスクの実行を開始することは、当業者にとって周知の技術である。
　
　同様に、本願の優先権主張日前である、１９９６年３月１日に頒布された（藤村考，外２名，“トランザクション・スクリプト記述言語ＳＴＤＬ”，ＮＴＴ　Ｒ＆Ｄ  第４５巻  第１０号，社団法人電気通信協会，１９９６年１０月１０日，Ｐ．１０３３−１０４０）に、
　「ワークフローは，単純なモデルであるが，複数のトランザクションを組み合わせた複雑な処理のモデル化を扱ったものであり，本論文で扱うサービスの連携という問題を表現するモデルとして適切である．」（１０３４頁右欄下から４行目〜最下行。）、
　「ワークフローは互いに依存関係のある複数のトランザクションから構成される処理の流れである．」（１０３８頁左欄５行目〜６行目）、及び
　「付録　ＳＴＤＬによるワークフローの例」（１０３８頁付録欄）には、互いに依存関係のある複数の処理を連続実行するワークフローモデルであって、先行する処理が成功すると次の処理の実行を開始すること、及び前記複数の処理の連続実行において、どの処理においても失敗が発生しないときには、当該ワークフロー処理が成功したことを外部に通知し、前記複数の処理のいずれか１つの処理が失敗した場合には、当該ワークフロー処理が失敗したことを外部に通知することが記載されているように、
　互いに依存関係のある複数の処理をつなぎ合わせて、連続実行するワークフロー処理モデルにおいては、先行する処理が成功すると次の処理の実行を開始すること、前記複数の処理の連続実行において、どの処理においても失敗が発生しないときには、当該ワークフロー処理が成功したことを外部に通知すること、及び前記複数の処理のいずれか１つの処理が失敗した場合には、当該ワークフロー処理が失敗したことを外部に通知することは、当業者にとって周知の技術である。
　
　してみれば、引用発明１の方法は、各コンポーネントおよびサブアプリケーションコンポーネントがそれぞれ処理を行い、互いに依存関係のある複数の処理を連続実行する処理モデルを実現していると認められるものであることから、前記周知技術とはともに互いに依存関係のある複数の処理を連続実行する処理モデルを扱うことで技術的に共通するものであり、また引用発明１における連続実行がイベントの通知によって実現されるものであること、及びアプリケーションコンポーネントがサブアプリケーションコンポーネントと同じ特性（すなわち、イベントを通知する特性）を有することからすると、
　引用発明１の方法における「アプリケーションコンポーネント」（「ナビゲータ」に対応）に前記周知技術（「あるタスクが失敗した場合には失敗イベントを生成し通知すること」及び「複数の処理のいずれか１つの処理が失敗した場合には、当該ワークフロー処理が失敗したことを外部に通知すること」）を適用することによって、
　引用発明１の方法において、本願発明のように、前記複数のコンポーネントおよびサブアプリケーションコンポーネントのいずれか１つの処理が失敗した場合には、当該コンポーネントおよびサブアプリケーションコンポーネントのいずれか１つが失敗イベントを生成し通知することで、前記「アプリケーションコンポーネント」が失敗したことを外部に通知する（すなわち、失敗イベントを通知する）構成とし、また
　引用発明１の方法における「アプリケーションコンポーネント」（「ナビゲータ」に対応）に前記周知技術（「複数の処理の連続実行において、どの処理においても失敗が発生しないときには、当該ワークフロー処理が成功したことを外部に通知すること」）を適用することによって、
　引用発明１の方法において、本願発明のように、各コンポーネントおよびサブアプリケーションコンポーネントで失敗が発生しないとき、前記「アプリケーションコンポーネント」が成功したことを外部に通知する（すなわち、成功イベントを通知する）構成とすることは、当業者であれば、適宜なし得たことである。
　以上を総合すれば、引用発明１の方法における「アプリケーションコンポーネント」（「ナビゲータ」に対応）が、本願発明のように、前記セット内の前記コンポーネント（「サブコマンド」に対応）および前記サブアプリケーションコンポーネント（「サブナビゲータ」に対応）の連続実行によって失敗イベントが通知されないときに成功イベントを通知し、前記アプリケーションコンポーネントが、前記セット内の前記コンポーネントおよび前記サブアプリケーションコンポーネントの連続実行のうちのいずれか１つの実行によって失敗イベントが通知されると失敗イベントを通知するステップを含む構成とすることは、当業者であれば、適宜なし得たことである。
　よって、相違点１は、格別のものではない。
　
　さらに、引用発明１における、セット内の各コンポーネント（「サブコマンド」に対応）および各サブアプリケーションコンポーネント（「サブナビゲータ」に対応）の実行メソッドは、コンポーネントおよびサブアプリケーションコンポーネントの前記セットの他の選択された１つからのイベントによってトリガされるものであるが、前記イベントは、まさしく、先行するコンポーネントおよびサブアプリケーションコンポーネントの処理が正常であったことを意味するものである。
　してみると、前記イベントを本願発明のように、成功イベントとして構成することは、当業者であれば、適宜なし得たことである。
　よって、相違点２は、格別のものではない。
　
　上記のように、相違点１及び相違点２の検討結果において、引用発明１の「基本的なコンポーネント」（「コマンド」に対応）、コンポーネント（「サブコマンド」に対応）および各サブアプリケーションコンポーネント（「サブナビゲータ」に対応）が、失敗した場合には、本願発明のように、当該コンポーネントが失敗イベントを生成し通知し、成功した場合には成功イベントを生成し通知するように構成されることは明らかである。
　したがって、前記「基本的なコンポーネント」を駆動する実行メソッドについて、本願発明のように、例外が発生しない場合は実行成功イベントを通知し、例外が発生した場合は実行失敗イベントを通知するステップを含むものとして構成されることは、当業者であれば、適宜なし得たことである。　よって、相違点３は、格別のものではない。
　
　最後に相違点４について検討する。
　引用発明１における「基本的なコンポーネント」（「コマンド」に対応）が、クライアントとビジネスシステムのデータベースとの間の対話をコンピュータに実現させるプログラムであり、引用発明２の「基本的なプログラム」も、クライアントとデータベースシステムとの間の対話をコンピュータに実現させるためのものであることから、両者は技術的に共通の分野に属するものである。
　してみると、引用発明１の前記「基本的なコンポーネント」に引用発明２の「基本的なプログラム」構造を適用することで、
　（その際に引用発明２の「クライアントが対話する前記データベースシステムのホスト名及びポート番号を識別する接続指定のためのオブジェクトであり、どの通信を使って通信先のどのデータベースと対話するかを識別する、対話指定のためのオブジェクトでもあるＣｏｎｎｅｃｔｉｏｎオブジェクト」、「インタラクティブクエリツールで作成されるＳＱＬステートメントオブジェクトのデータ」、及び「実行結果であるＲｅｓｕｌｔＳｅｔオブジェクトのデータ」が、それぞれ本願発明の「前記クライアントが対話する前記バックエンド・システムを識別するオブジェクトである接続指定と前記通信の対話関係プロパティを識別するオブジェクトである対話指定」、「入力オブジェクトのデータ」、及び「１つまたは複数の出力オブジェクトのデータ」に相当することを勘案すれば、）
　引用発明１の前記基本的なコンポーネントを駆動する実行メソッドが、本願発明のように、前記クライアントが対話する前記ビジネスシステム（「バックエンド・システム」に対応）を識別するオブジェクトである接続指定と前記通信の対話関係プロパティを識別するオブジェクトである対話指定から通信を生成するステップと、生成された前記通信を使用して前記クライアントを前記ビジネスシステムと接続するステップと、生成された前記通信を介して入力オブジェクトのデータを送るステップと、生成された前記通信を介して１つまたは複数の出力オブジェクトのデータを受け取るステップと、を含むものとして構成することは、当業者であれば、容易に想到し得たことである。
　よって、相違点４は、格別のものではない。
　
　また、上記で検討したごとく、相違点１〜４はいずれも格別のものではなく、そして、本願発明の構成によってもたらされる効果も、当業者であれば当然に予測可能なものに過ぎず格別なものとは認められない。
　
５．結び
　以上のとおり、本願発明は、引用発明及び周知技術に基いて、当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができない。
　よって、上記結論のとおり、審決する。