【事件の表示】
　特願２０１３−５１４３７５「状態情報を提供するためのプログラム可能装置、階層型並列マシン、方法」拒絶査定不服審判事件〔平成２３年１２月１５日国際公開、ＷＯ２０１１／１５６６４４、平成２５年　９月　５日国内公表、特表２０１３−５３４６６０、請求項の数（３０）〕について、次のとおり審決する。
【結　論】
　原査定を取り消す。
　本願の発明は、特許すべきものとする。
【理　由】
第１　手続の経緯
　本願は，２０１１年６月９日（パリ条約による優先権主張外国庁受理２０１０年６月１０日，米国　２０１１年３月１日，米国）を国際出願日とする出願であって，平成２７年８月１３日付けで拒絶理由が通知され，平成２７年１１月９日に意見書と手続補正書が提出され，平成２８年４月７日付けで拒絶理由（最後）が通知され，平成２８年７月１１日に意見書，誤訳訂正書及び手続補正書が提出されたが，平成２８年９月９日付けで平成２８年７月１１日に提出された手続補正書による手続補正が却下されるとともに拒絶査定がなされ，これに対し，平成２９年１月５日に拒絶査定不服審判の請求がされると同時に手続補正書が提出され，平成２９年１月３０日に前置報告がされたものである。
第２　原査定の概要
　原査定（平成２８年７月１１日付け拒絶査定）の概要は次のとおりである。
１．本願請求項１−３８に係る発明は，以下の引用文献１−６に基づいて，その発明の属する技術の分野における通常の知識を有する者（以下，「当業者」という。）が容易に発明できたものであるから，特許法第２９条第２項の規定により特許を受けることができない。
引用文献等一覧
１．特開２００７−１４２７６７号公報
２．特開２００５−２４２６７２号公報
３．特開２００８−２９３２２６号公報
４．特開２０００−１８１６７９号公報
５．特開２００５−０１８３１０号公報
６．特開２００２−０２６７２１号公報
２．本願の発明の詳細な説明は，当業者が請求項１−３８に係る発明を実施することができる程度に明確かつ十分に記載されておらず，特許法第３６条第４項第１号に規程する要件を満たしていない。
３．請求項１−３８に係る発明は不明確であり，本願は，特許法第３６条第６項第２号に規定する要件を満たしていない。
第３　審判請求時の補正について
　審判請求時の補正は，特許法第１７条の２第３項から第６項までの要件に違反しているものとはいえない。
１．請求項１について
　審判請求時の補正によって請求項１の「前記Ｎ桁よりも多い数の最終状態」を「前記Ｎ桁よりも多い桁数の最終状態」とする補正は，拒絶理由通知に係る拒絶の理由に示す事項（平成２８年４月７日付け最後の拒絶理由通知の理由３）に対するものであって，特許法第１７条の２第５項第４号の明りようでない記載の釈明を目的とするものに該当する。
　また，請求項１に「前記有限状態機械は，前記Ｎ桁の入力を識別するためのプログラムが供給されるプログラミングインタフェース，前記Ｎ桁の入力が入力されるデータ入力，及び前記プログラムに基づいて前記Ｎ桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力，を備える」という事項を追加する補正は，補正前の請求項１に記載された「有限状態機械」の構成を限定するものであって，同法第１７条の２第５項第２号の特許請求の範囲の減縮を目的とするものに該当する。
　また，特許法第１７条の２第３項，第４項に違反するところはない。
２．請求項２１について
　審判請求時の補正によって請求項２１の「前記Ｎ桁よりも多い数の最終状態」を「前記Ｎ桁よりも多い桁数の最終状態」とする補正は，拒絶理由通知に係る拒絶の理由に示す事項（平成２８年４月７日付け最後の拒絶理由通知の理由３）に対するものであって，同法第１７条の２第４項第４号の明りようでない記載の釈明を目的とするものに該当する。
　また，請求項２１に「前記第１の並列マシンは，前記Ｎ桁の入力を識別するためのプログラムが供給されるプログラミングインタフェース，前記Ｎ桁の入力が入力されるデータ入力，及び前記プログラムに基づいて前記Ｎ桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力，を含み，前記第２の並列マシンは前記Ｍ桁の出力の少なくとも一部に基づいて処理を実行しその結果を出力すると共に前記第１の並列マシンの前記プログラミングインタフェースにフィードバックして前記第１の並列マシンのプログラムを変更可能に構成される」との事項を付加する補正は，補正前の請求項２１に記載された「第１の並列マシン」及び「第２の並列マシン」の構成を限定するものであって，同法第１７条の２第４項第２号の特許請求の範囲の減縮を目的とするものに該当する。
　また，特許法第１７条の２第３項，第４項に違反するところはない。
３．請求項３１−３８について
　請求項３１−３８を削除する補正は，特許法第１７条の２第４項第１号の請求項の削除を目的とするものに該当する。
　そして，「第４　本願発明」から「第６　対比・判断」までに示すように，補正後の請求項１−３０に係る発明は，独立特許要件を満たすものである。
第４　本願発明
　本願請求項１−３０に係る発明（以下，それぞれ「本願発明１」−「本願発明３０」という。）は，平成２９年１月５日付けの手続補正で補正された特許請求の範囲の請求項１−３０に記載された事項により特定される発明であり，本願発明１，２１は以下のとおりの発明である。
「【請求項１】
　複数のプログラム可能要素を含むプログラム可能装置であって，
　前記プログラム可能要素が１つまたは複数の有限状態機械を実装するように構成され，前記複数のプログラム可能要素が，入力シンボル言語内の桁数であるＮ桁の入力を受信し，かつ前記Ｎ桁の入力に応じて前記Ｎ桁よりも多い桁数の最終状態を生成可能であると共に，前記Ｎ桁よりも多い桁数の最終状態を連結して前記最終状態の総数よりも少ないＭ桁の出力を提供するように構成され，
　前記有限状態機械は，前記Ｎ桁の入力を識別するためのプログラムが供給されるプログラミングインタフェース，前記Ｎ桁の入力が入力されるデータ入力，及び前記プログラムに基づいて前記Ｎ桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力，を備える，プログラム可能装置。」
「【請求項２１】
　複数のプログラム可能要素を含む第１の並列マシンであって，前記プログラム可能要素が１つまたは複数の有限状態機械を実装するように構成され，前記複数のプログラム可能要素が入力シンボル言語内の桁数であるＮ桁の入力を受信し，前記Ｎ桁の入力に応じて前記Ｎ桁よりも多い桁数の最終状態を生成可能であると共に，前記Ｎ桁よりも多い桁数の最終状態を連結して前記最終状態の総数よりも少ないＭ桁の出力を提供するように構成される，第１の並列マシンと，
　前記Ｍ桁の出力の少なくとも一部を受信および処理するように構成された第２の並列マシンと，
　を備え，
　前記第１の並列マシンは，前記Ｎ桁の入力を識別するためのプログラムが供給されるプログラミングインタフェース，前記Ｎ桁の入力が入力されるデータ入力，及び前記プログラムに基づいて前記Ｎ桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力，を含み，
　前記第２の並列マシンは前記Ｍ桁の出力の少なくとも一部に基づいて処理を実行しその結果を出力すると共に前記第１の並列マシンの前記プログラミングインタフェースにフィードバックして前記第１の並列マシンのプログラムを変更可能に構成される，階層型並列マシン。」
　なお，本願発明２−２０，２２−３０の概要は以下のとおりである。
　本願発明２−２０は，本願発明１を減縮した発明である。
　本願発明２２−３０は，本願発明２１を減縮した発明である。
第５　引用文献，引用発明等
１．引用文献１について
　原査定の拒絶の理由に引用された引用文献１には，図面とともに次の事項が記載されている（なお，下線は重要箇所に対して当審が付した。以下，同様。）。
「【０００３】
パターンマッチング処理用として，ＮＦＡ（Nondeterministic Finite Automaton）によりパターンマッチング回路を再構成可能なデバイスＦＰＧＡ（Field Programmable Gate Array）上に構成し
ＦＰＧＡのような再構成可能なハードウェアがパターンマッチングエンジンとして用いられる。
「【０００５】パターンマッチング回路を実現する方法として，これまでに，非特許文献１に記載されているようなマッチングパターンを表す正規表現からＮＦＡを構成し，これを回路化する方法が知られている。
しかし，この方法では，１クロックサイクル当りに処理する入力データ幅が１バイトであったため，高いスループットを得ることが困難であった。
ＮＦＡより構成したパターンマッチング装置が１クロックサイクルあたりに処理する入力データ幅を拡張し，回路のスループットを向上させる技術も知られている。しかし，この技術では，スループットは向上するものの，データ幅の倍化に伴って回路規模も同様に倍化するため，現実的に適用できるものではなかった。
「【０００８】ハードウェアによるパターンマッチング処理のうち，
ＮＦＡ（Non-deterministic Finite Automaton）によってパターンマッチング装置を構成する方法が存在する。このパターンマッチング装置で，例えば，文字列「ａｂｂ」を検出する場合の構築手順を図１に示す。
【０００９】通常は，探索を受ける情報を，探索を容易にするために正規表現（通常の文字と，メタキャラクタと呼ばれる特別な意味を持った記号を組み合わせた表記）に変換しておく。
また，探索しようとする文字列や記号列を変換して得られるマッチングパターンを示す正規表現からＮＦＡステートマシンを生成する。このＮＦＡステートマシン中のステート１つに１状態を保持するステートマシンを割り当ててパターンマッチング装置を構築する。
【００１０】
このような従来の技術では，パターンマッチング装置の処理データ幅を増やすと回路規模が大幅に増大してしまう，という問題があった。さらに，探索するマッチングパターンの数を増やすと回路規模が比例して増大してしまう，という問題もあった。これは，探索するマッチングパターンが複数ある場合に，それぞれのマッチングパターンに対して独立したＮＦＡを生成してパターンマッチング装置を構築していたためである。
【００１１】従来の技術によるパターンマッチング装置の構成を図２に示す。
図２に示すパターンマッチング装置の処理するバイト幅は４バイトである。この装置は，入力されたデータを１バイト毎に比較する比較器部と各々のマッチングパターンに対応したステートマシン部より構成される。
「【００２０】上記のように，従来は複数のマッチングパターンそれぞれからステートマシンを生成していたが，本発明では，このステートマシンを集約するものである。さらに，
ステートマシンのステート遷移条件を生成するＡＮＤゲート２
図３の単位ステートマシンＡ，Ｂ，Ｃ
ａ　段落【００１１】の「図２に示すパターンマッチング装置の処理するバイト幅は４バイトである」との記載及び【図２】より，当該【図２】で示されるパターンマッチング装置は，４バイト（すなわち３２ビット）を入力としていることが読み取れる。
ｂ　段落【００２０】の「図３の単位ステートマシンＡ，Ｂ，Ｃ」との記載及び【図３】より，「単位ステートマシン」は，ＡＮＤゲートとラッチ回路とからなることが読み取れる。
ｃ　段落【００２０】の「ステートマシンのステート遷移条件を生成するＡＮＤゲート２」との記載及び【図３】，並びに，【図２】の「ステート遷移条件生成」との記載が「４入力ＡＮＤゲート」を指していることを勘案すると，【図２】における「４入力ＡＮＤゲート」がステート遷移条件を生成するものであることが読み取れる。
　さらに，上記ｂ，ｃで読み取れる事項に基づいて【図２】を見ると，【図２】の「各々のマッチングパターンに対応したステートマシン」は，「パターン検出信号生成」との記載が指している「ＯＲゲート」の出力を各パターンの検出信号として出力するものであること，及び，当該「ＯＲゲート」への４つの入力へ接続される回路は，それぞれ直列接続された「単位ステートマシン」と各「単位ステートマシン」に接続された「４入力ＡＮＤゲート」からなるものであることが読み取れる。
　したがって，引用文献１には次の発明（以下，「引用発明」という。）が記載されていると認められる。
「ＮＦＡ（Nondeterministic Finite Automaton）によるパターンマッチング回路を再構成可能なデバイスＦＰＧＡ（Field Programmable Gate Array）上に構成し，３２ビットの入力を受信するパターンマッチング装置であって，
　各々のマッチングパターンに対応したステートマシン部を複数有し，
　各々のマッチングパターンに対応したステートマシン部は，ＯＲゲートの出力を各パターンの検出信号として出力し，当該ＯＲゲートへの４つの入力は，それぞれ直列接続された単位ステートマシンと各単位ステートマシンに接続された４入力アンドゲートからなる回路である，
　パターンマッチング装置。」
２．引用文献２について
　また，原査定の拒絶の理由に引用された上記引用文献２の段落【００５４】−段落【００５８】及び第１−２図の記載からみて，当該引用文献２には，元のパターンをｋ分割した分割パターンとし，且つ，任意の部分テキストをｋ分割して分割部分テキストとし，個々の分割部分テキストが個々の分割パターンと一致するか否かを，分割パターンを用いたオートマトンにより判定し，全ての分割パターンに対応するオートマトンが最終状態に遷移したか否かを判定することで，パターン全体と一致したか否かを判定し，各オートマトンを並列に動作させることによって，テキストとパターンとのマッチングを文字単位で並列処理するという技術的事項が記載されていると認められる。
第６　対比・判断
１．本願発明１について
（１）対比
　本願発明１と引用発明とを対比すると，次のことがいえる。
ア　引用発明の「ＦＰＧＡ」は，本願発明１の「複数のプログラム可能要素」に相当する。
イ　引用発明の「パターンマッチング」は，本願発明１の「入力」の「識別」に相当する。
ウ　引用発明の「ＮＦＡ（Nondeterministic Finite Automaton）によるパターンマッチング回路」，「パターンマッチング装置」は，それぞれ本願発明１の「有限状態機械」，「プログラム可能装置」に含まれるものである。
エ　引用発明では，「パターンマッチング回路」を「ＦＰＧＡ」上に構成するから，「ＦＰＧＡ」上に「パターンマッチング回路」を構成するための「プログラム」を用いることは明らかである。そして，この「プログラム」は，本願発明１の「入力を識別するためのプログラム」に相当する。
オ　引用発明は，「３２ビットの入力を受信する」のに対して，本願発明１は，「入力シンボル言語内の桁数であるＮ桁の入力を受信」するから，両者は「複数桁（ビット）の入力を受信する」という点で一致する。
カ　引用発明は，「各々のマッチングパターンに対応したステートマシン部」を複数備え，「各々のマッチングパターンに対応したステートマシン部」は，「ＯＲゲートの出力を各パターンの検出信号として出力」するものであり，「当該ＯＲゲートへの４つの入力に接続される回路は，それぞれ直列接続された単位ステートマシンと各単位ステートマシンに接続された４入力アンドゲートからなるもの」である。そして，オートマトンがパターン全体を表す状態を「最終状態」と呼ぶことが技術常識であることに鑑みれば，引用発明における直列接続された「単位ステートマシン」の最終段の状態が「最終状態」であることが明らかであり，ＯＲゲートの出力が１ビットであることも技術常識であるから，引用発明の「ＯＲゲート」は，４つの「最終状態」から１ビットの「パターン検出信号」を出力するものと認められる。
　一方，本願発明１では，「前記Ｎ桁の入力に応じて前記Ｎ桁よりも多い最終状態を生成可能であると共に，前記Ｎ桁よりも多い桁数の最終状態を連結して前記最終状態の総数よりも少ないＭ桁の出力を提供する」ものであるが，「出力」の「Ｍ桁」は，「最終状態の総数よりも少ない」という相対的な関係が特定されているのみであるから，この点で両者が相違するとは認められない。
　したがって，両者は「前記複数桁の入力に応じた複数の最終状態を生成可能であると共に，前記複数の最終状態を連結して前記最終状態の総数よりも少ないＭ桁の出力を提供する」という点で一致する。
キ　引用発明は，「３２ビットの入力を受信する」から，「パターンマッチング回路」が３２ビットの入力部を有することは明らかである。また，１ビットの「パターン検出信号」を出力する「各々のマッチングパターンに対応したステートマシン部」を複数備えているから，その出力は複数ビットであり，そのための出力部を有することも明らかである。
　一方，本願発明１の「有限状態機械」は，「前記Ｎ桁の入力を識別するためのプログラムが供給されるプログラミングインタフェース，前記Ｎ桁の入力が入力されるデータ入力，及び前記プログラムに基づいて前記Ｎ桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力」を備えている。
　しれみれば，両者は「前記有限状態機械は，前記複数桁の入力が入力されるデータ入力，及び入力を識別するためのプログラムに基づいて前記複数桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力」を備える点で一致する。
　したがって，本願発明１と引用発明との間には，次の一致点，相違点があるといえる。
（一致点）
「複数のプログラム可能要素を含むプログラム可能装置であって，
　前記プログラム可能要素が１つまたは複数の有限状態機械を実装するように構成され，前記複数のプログラム可能要素が，複数桁の入力を受信し，かつ前記複数桁の入力に応じて複数桁の最終状態を生成可能であると共に，前記複数桁の入力に応じた複数の最終状態を生成可能であると共に，前記複数の最終状態を連結して前記最終状態の総数よりも少ないＭ桁の出力を提供するように構成され，
　前記有限状態機械は，前記複数桁の入力が入力されるデータ入力，及び入力を識別するためのプログラムに基づいて前記複数桁の入力を識別した結果である前記Ｍ桁の出力を出力するデータ出力，
を備える，プログラム可能装置。」
（相違点）
（相違点１）一致点の「複数桁の入力を受信し」に関して，「受信」されるのは，本願発明１では，「入力シンボル言語内の桁数であるＮ桁の入力」であるのに対して，引用発明では，「３２ビットの入力」である点。
（相違点２）一致点の「前記複数桁の入力に応じて複数桁の最終状態を生成可能である」に関して，本願発明１では，「生成可能」な「最終状態」の数は，「前記Ｎ桁の入力に応じて前記Ｎ桁よりも多い桁数」であるのに対して，引用発明は，「各々のマッチングパターンに対応したステートマシン部を複数有し」ているものの，その具体的な数が不明であり，したがって，「生成可能」な「最終状態」の数も不明な点。
（相違点３）本願発明１は，「有限状態機械」が，「前記Ｎ桁の入力を識別するためのプログラムが供給されるプログラミングインタフェース」を備えるのに対して，引用文献１には，「ＦＰＧＡ」上に「パターンマッチング回路」を構成することは記載されているものの，この「ＦＰＧＡ」上に構成された「パターンマッチング回路」が「プログラミングインタフェース」を備えることについての記載がなく，したがって，引用発明の「パターンマッチング回路」が「プログラミングインタフェース」を備えることが明らかではない点。
（２）相違点についての判断
　事案に鑑み，まず上記相違点１について検討する。
　本願発明１の「入力シンボル言語内の桁数であるＮ桁の入力」に関して，本願明細書には次の記載がある。
「【００４８】例を進めるため，ＡＳＣＩＩ文字セットが入力（シンボル）言語である例を使用する。この場合，各入力シンボルは，８ビットの２進ワードによって表される。代替実施形態では，
各入力シンボルがＮビット
「【００５５】一例では，各状態機械５３２の最終状態２０８が統合され（例えば，ＯＲされ）て，結果がＮ個の状態機械５３２の論理グループに分類（例えば，収集）され，ここで，
Ｎは，それぞれの入力シンボル言語内の桁数
　当該記載を参酌すると，「入力シンボル言語内の桁数であるＮ桁の入力」とは，「入力シンボルのビット数」であると解釈される。
　一方，引用文献１では，１バイト文字を処理対象の前提とし（段落【０００４】），「１クロックサイクル当たりに処理する入力データ幅が１バイトであったため，高いスループットを得ることが困難であった。」（段落【０００５】）という課題認識の下，入力データ幅を４バイト（３２ビット）に拡張してスループットを向上させたものであると認められるから，引用発明における入力のビット（桁）数を，３２ビットから１文字単位のビット数である８ビットに減じて「入力シンボル言語内の桁数（すなわち，入力シンボルのビット数）」にすることは，スループットの向上という目的に反するものであって，そのような構成の変更には阻害要因があるといわざるを得ない。
　また，仮に引用文献２に記載された技術事項を引用発明に適用することができたとしても，当該引用文献２に記載された技術事項は，ｋ分割した分割パターンに対応する各オートマトンを並列に動作させることによって，テキストとパターンとのマッチングを文字単位で並列処理するというものであるから，並列処理される入力データのビット（桁）数が，１文字当たりのビット数と分割数ｋとの積となり，入力のビット（桁）数を「入力シンボル言語内の桁数（入力シンボルのビット数）」とする構成となり得ない。
　そうすると，上記相違点１に係る本願発明１の構成は当業者が容易に想到し得たものではなく，したがって，他の相違点について検討するまでもなく，本願発明１は，当業者であっても引用発明及び引用文献２に記載された技術的事項に基づいて，当業者が容易に発明をすることができたものとはいえない。
２．本願発明２−３０について
　本願発明２−３０も，本願発明１の「入力シンボル言語内の桁数であるＮ桁の入力を受信し」と同一の構成を備えるものであるから，本願発明１と同じ理由により，当業者であっても引用発明及び引用文献２に記載された技術的事項に基づいて，当業者が容易に発明をすることができたものとはいえない。
第７　原査定について
１．理由１（特許法第２９条第２項）について
　本願発明１−３０は「入力シンボル言語内の桁数であるＮ桁の入力を受信し」という事項を有するものであり，当業者であっても，拒絶査定において引用された引用文献１−６に基づいて，容易に発明できたものとはいえない。　したがって，原査定の理由１を維持することはできない。
２．理由２（特許法第３６条第４項第１号について）
　平成２８年７月１１日付けの誤訳訂正書により，本願明細書の段落【００５６】は，「８のセットにおけるように，」との誤訳が「８つで一組のように」と訂正された。そして，図８及び段落【００５６】には，８つで一組とされるように状態機械がグループ化されたときでも，最終状態２０８の数が入力２０２の数を超えるものが記載されている。さらに，段落【００４５】−【００４７】には，最終状態の数を６５５４とする例が記載されており，８つで一組とされる状態機械５３２は，６５５４÷８で，８２０の最終状態を生成することが理解できる。
　したがって，原査定の理由２を維持することはできない。
３．理由３（特許法第３６条第６項第２号について）
　審判請求時の補正により，請求項１及び２１の「前記Ｎ桁よりも多い数の最終状態」という記載は「前記Ｎ桁よりも多い桁数の最終状態」に補正されており，原査定の理由３を維持することはできない。
第８　むすび
　以上のとおり，原査定の理由によっては，本願を拒絶することはできない。
　また，他に本願を拒絶すべき理由を発見しない。
　よって，結論のとおり審決する。