【事件の表示】
　特願２０１０−５０３９４０「マルチバイト処理向け文字列照合用有限オートマトン生成システム」拒絶査定不服審判事件〔平成２１年　９月２４日国際公開、ＷＯ２００９／１１６６４６〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
第１　手続の経緯
　本願は，平成２１年３月１９日（優先権主張　平成２０年３月１９日，日本）を国際出願日とする特許出願であって，平成２５年７月５日付けの拒絶理由通知に対して，同年９月９日に意見書の提出とともに手続補正がなされ，同年１２月１１日付けの拒絶査定に対して平成２６年３月１８日に審判請求がなされるとともに，同日付けで手続補正がなされたものである。
第２　平成２６年３月１８日に提出された手続補正書による補正（以下，「本件補正」という。）の適否について
　１．本件補正前の特許請求の範囲の記載
　　本件補正前の特許請求の範囲の記載は以下のとおりである。
　「【請求項１】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する手段を有するマルチバイト処理向け文字列照合用有限オートマトン生成装置。
　　【請求項２】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる有限オートマトン、あるいはどの位置でパターンに一致したかを単独では判別できないが、状態数は前記有限オートマトンよりも少ないため回路規模が削減できる有限オートマトンのいずれかを選択して生成することができることを特徴とする請求項１に記載のマルチバイト処理向け文字列照合用有限オートマトン生成装置。
　　【請求項３】
　入力された正規表現を記憶する正規表現記憶手段と、
　前記正規表現記憶手段に記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡ（Ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ　Ｆｉｎｉｔｅ　Ａｕｔｏｍａｔｏｎ）へ変換する１−ｂｙｔｅ　ＮＦＡ変換手段と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段で変換したＮＦＡを記憶するＮＦＡ記憶手段と、を備えることを特徴とするマルチバイト処理向け文字列照合用有限オートマトン生成装置。
　　【請求項４】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は請求項１又は請求項２に記載のＮＦＡを生成する手段を備えることを特徴とする請求項３に記載のマルチバイト処理向け文字列照合用有限オートマトン生成装置。
　　【請求項５】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかは単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項３又は請求項４に記載のマルチバイト処理向け文字列照合用有限オートマトン生成装置。
　　【請求項６】
　前記１−ｂｙｔｅ　ＮＦＡ変換手段において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段での変換処理が簡略化できる、
ことを特徴とする請求項３乃至請求項５いずれか一つに記載のマルチバイト処理向け文字列照合用有限オートマトン生成装置。
　　【請求項７】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できるＮＦＡを生成するＮＦＡ生成手段を有することを特徴とするマルチバイト処理向け文字列照合用有限オートマトン回路生成装置。
　　【請求項８】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる有限オートマトン、あるいはどの位置でパターンに一致したかを単独では判別できないが、状態数は前記有限オートマトンよりも少ないため回路規模が削減できる有限オートマトンのいずれかを選択して生成することができることを特徴とする請求項７に記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成装置。
　　【請求項９】
　入力された正規表現を記憶する正規表現記憶手段と、
　前記正規表現記憶手段に記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡ（Ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ　Ｆｉｎｉｔｅ　Ａｕｔｏｍａｔｏｎ）へ変換する１−ｂｙｔｅ　ＮＦＡ変換手段と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段で変換したＮＦＡを記憶するＮＦＡ記憶手段と、　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段で変換したＮＦＡから、そのハードウェア回路を記述するハードウェア記述言語を生成するＨＤＬ変換手段と、
　ＨＤＬ変換手段で変換したハードウェア記述言語を記憶するＨＤＬ記憶手段と、を備えることを特徴とするマルチバイト処理向け文字列照合用有限オートマトン回路生成装置。
　　【請求項１０】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は、前記ＮＦＡ生成手段を有することを特徴とする請求項９記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成装置。
　　【請求項１１】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかは単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項９又は請求項１０に記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成装置。
　　【請求項１２】
　前記１−ｂｙｔｅ　ＮＦＡ変換手段において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段での変換処理が簡略化できる、
ことを特徴とする請求項９乃至請求項１１いずれか一つに記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成装置。
　　【請求項１３】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成するＮＦＡ生成処理を有することを特徴とする状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン生成方法。
　　【請求項１４】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる有限オートマトン、あるいはどの位置でパターンに一致したかを単独では判別できないが、状態数は前記有限オートマトンよりも少ないため回路規模が削減できる有限オートマトンのいずれかを選択して生成することができることを特徴とする請求項１３に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン生成方法。
　　【請求項１５】
　入力された正規表現を記憶し、
　前記記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換し、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換し、
　前記変換したＮＦＡを記憶する、
ことを特徴とする状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン生成方法。
　　【請求項１６】
　さらに、前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡから指定された処理バイト数で遷移を行うＮＦＡへの変換は、前記ＮＦＡ生成処理であることを特徴とする請求項１５に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン生成方法。
　　【請求項１７】
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡから指定された処理バイト数で遷移を行うＮＦＡへの変換は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかは単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項１５又は請求項１６に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン生成方法。
　　【請求項１８】
　前記正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡは、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、１−ｂｙｔｅ　ＮＦＡから指定された処理バイト数で遷移を行うＭｕｌｔｉｂｙｔｅ　ＮＦＡへの変換が容易になる、
ことを特徴とする請求項１５乃至請求項１７いずれか一つに記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン生成方法。
　　【請求項１９】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する第二ＮＦＡ生成処理を有することを特徴とする状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン回路生成方法。
　　【請求項２０】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる有限オートマトン、あるいはどの位置でパターンに一致したかを単独では判別できないが、状態数は前記有限オートマトンよりも少ないため回路規模が削減できる有限オートマトンのいずれかを選択して生成することができることを特徴とする請求項１９に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン回路生成方法。
　　【請求項２１】
　入力された正規表現を記憶し、
　前記記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換し、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換し、
　前記変換したＮＦＡを記憶し、
　前記記憶されたＮＦＡから、そのハードウェア回路を記述するハードウェア記述言語を生成し、
そのハードウェア記述言語を記憶することを特徴とする状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン回路生成方法。
　　【請求項２２】
　さらに、前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡから指定された処理バイト数で遷移を行うＮＦＡへの変換は、前記第二ＮＦＡ生成処理であることを特徴とする請求項２１に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン回路生成方法。
　　【請求項２３】
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡから指定された処理バイト数で遷移を行うＮＦＡへの変換は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成する処理か、入力された文字列のどの位置でパターンが一致したかを単独では判別できないＮＦＡを生成する処理かを利用目的に応じて選択できる、
ことを特徴とする請求項２１又は請求項２２に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン回路生成方法。
　　【請求項２４】
　前記正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡは、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、ε遷移のない１　ｂｙｔｅで遷移するＮＦＡから指定された処理バイト数で遷移を行うＮＦＡへの変換が容易になる、
ことを特徴とする請求項２１乃至請求項２３いずれか一つに記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用有限オートマトン回路生成方法。
　　【請求項２５】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する第三ＮＦＡ生成処理をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用有限オートマトン生成プログラム。
　　【請求項２６】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる有限オートマトン、あるいはどの位置でパターンに一致したかを単独では判別できないが、状態数は前記有限オートマトンよりも少ないため回路規模が削減できる有限オートマトンのいずれかを選択して生成する処理をコンピュータに実行させることを特徴とする請求項２５に記載のマルチバイト処理向け文字列照合用有限オートマトン生成プログラム。
　　【請求項２７】
　入力された正規表現を記憶する正規表現記憶処理と、
　前記記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換する１−ｂｙｔｅ　ＮＦＡ変換処理と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理と、
　前記変換したＮＦＡを記憶するＮＦＡ記憶処理と、
をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用有限オートマトン生成プログラム。
　　【請求項２８】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、前記第三ＮＦＡ生成処理をコンピュータに実行させることを特徴とする請求項２７に記載のマルチバイト処理向け文字列照合用有限オートマトン生成プログラム。
　　【請求項２９】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかを単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項２７又は請求項２８に記載のマルチバイト処理向け文字列照合用有限オートマトン生成プログラム。
　　【請求項３０】
　前記１−ｂｙｔｅ　ＮＦＡ変換処理において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理が簡略化できる、
ことを特徴とする請求項２７乃至請求項２９いずれか一つに記載のマルチバイト処理向け文字列照合用有限オートマトン生成プログラム。　
　　【請求項３１】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する第四ＮＦＡ生成処理をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用有限オートマトン回路生成プログラム。
　　【請求項３２】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる有限オートマトン、あるいはどの位置でパターンに一致したかを単独では判別できないが、状態数は前記有限オートマトンよりも少ないため回路規模が削減できる有限オートマトンのいずれかを選択して生成する処理をコンピュータに実行させることを特徴とする請求項３１に記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成プログラム。
　　【請求項３３】
　入力された正規表現を記憶する正規表現記憶処理と、
　前記正規表現記憶手段に記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換する１−ｂｙｔｅ　ＮＦＡ変換処理と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理で変換したＮＦＡを記憶するＮＦＡ記憶処理と、　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理で変換したＮＦＡから、そのハードウェア回路を記述するハードウェア記述言語を生成するＨＤＬ変換処理と、
　ＨＤＬ変換処理で変換したハードウェア記述言語を記憶するＨＤＬ記憶処理と、
をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用有限オートマトン回路生成プログラム。
　　【請求項３４】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、前記第四ＮＦＡ生成処理をコンピュータに実行させることを特徴とする請求項３３に記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成プログラム。
　　【請求項３５】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかを単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項３３又は請求項３４に記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成プログラム。
　　【請求項３６】
　前記１−ｂｙｔｅ　ＮＦＡ変換処理において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理が簡略化できる、
ことを特徴とする請求項３３乃至請求項３５いずれか一つに記載のマルチバイト処理向け文字列照合用有限オートマトン回路生成プログラム。
　　【請求項３７】
　請求項９から請求項１２に記載の有限オートマトン回路生成装置、または、請求項２１から請求項２４に記載の有限オートマトン回路生成方法、または、請求項３３から請求項３６に記載の有限オートマトン回路生成プログラムを用いて生成したハードウェア記述言語を用いて、再構成可能ハードウェアデバイス上に前記有限オートマトン回路を用いることを特徴とするパターンマッチング装置。
　　【請求項３８】
　請求項７から請求項１２に記載の有限オートマトン回路生成装置に加え、
　前記有限オートマトン回路生成装置で生成したハードウェア記述言語から、再構成ハードウェアデバイスの構成情報であるＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａを生成するＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａ変換手段と、
を備え、前記生成したＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａを用いて再構成可能ハードウェアデバイス上に前記有限オートマトン回路を用いることを特徴とするパターンマッチング装置。
　　【請求項３９】
　請求項７から請求項１２に記載の有限オートマトン回路生成装置、または、請求項１９から請求項２４に記載の有限オートマトン回路生成方法、または、請求項３１から請求項３６に記載の有限オートマトン回路生成プログラムを用いて生成したハードウェア記述言語を用いて構成した、再構成可能ハードウェアデバイス上のマルチバイト処理向け文字列照合用有限オートマトン回路。
　　【請求項４０】
　請求項７から請求項１２に記載の有限オートマトン回路生成装置に加え、
　前記有限オートマトン回路生成装置で生成したハードウェア記述言語から、再構成ハードウェアデバイスの構成情報であるＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａを生成するＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａ変換手段と、
を備え、前記生成したＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａを用いて再構成可能ハードウェアデバイス上のマルチバイト処理向け文字列照合用有限オートマトン回路。」
　２．本件補正後の特許請求の範囲の記載
　　これに対し，本件補正により，特許請求の範囲は以下のとおり補正された。（なお，下線は補正の個所を示すものとして審判請求人が付したものである。）
　「【請求項１】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡ
（Ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ　Ｆｉｎｉｔｅ　Ａｕｔｏｍａｔｏｎ）
ＮＦＡ
　　【請求項２】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる
ＮＦＡ
ＮＦＡ
手段を有する
ＮＦＡ
　　【請求項３】
　入力された正規表現を記憶する正規表現記憶手段と、
　前記正規表現記憶手段に記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦ
Ａへ
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段で変換したＮＦＡを記憶するＮＦＡ記憶手段と、を備えることを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項４】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は請求項１又は請求項２に記載のＮＦＡを生成する手段を備えることを特徴とする請求項３に記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項５】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかは単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項３又は請求項４に記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項６】
　前記１−ｂｙｔｅ　ＮＦＡ変換手段において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段での変換処理が簡略化できる、
ことを特徴とする請求項３乃至請求項５いずれか一つに記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項７】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できるＮＦＡを生成するＮＦＡ生成手段を有することを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項８】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項９】
　入力された正規表現を記憶する正規表現記憶手段と、
　前記正規表現記憶手段に記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡ（Ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ　Ｆｉｎｉｔｅ　Ａｕｔｏｍａｔｏｎ）へ変換する１−ｂｙｔｅ　ＮＦＡ変換手段と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段で変換したＮＦＡを記憶するＮＦＡ記憶手段と、　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段で変換したＮＦＡから、そのハードウェア回路を記述するハードウェア記述言語を生成するＨＤＬ変換手段と、
　ＨＤＬ変換手段で変換したハードウェア記述言語を記憶するＨＤＬ記憶手段と、を備えることを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項１０】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は、
正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できるＮＦＡを生成する
ＮＦＡ
　　【請求項１１】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかは単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項９又は請求項１０に記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項１２】
　前記１−ｂｙｔｅ　ＮＦＡ変換手段において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段での変換処理が簡略化できる、
ことを特徴とする請求項９乃至請求項１１いずれか一つに記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項１３】
　
ＣＰＵ、入出力装置、データ処理装置および記憶装置から構成されるマルチバイト処理向け文字列照合用ＮＦＡ回路生成装置であって、プログラム制御により動作する該マルチバイト処理向け文字列照合用ＮＦＡ回路生成装置のデータ処理装置が、
実行する
るマ
ＮＦＡ
　　【請求項１４】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項１５】
　
ＣＰＵ、入出力装置、データ処理装置および記憶装置から構成されるマルチバイト処理向け文字列照合用ＮＦＡ回路生成装置であって、プログラム制御により動作する該マルチバイト処理向け文字列照合用ＮＦＡ回路生成装置において、
　入力された正規表現を
前記記憶装置に
　前記記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ
前記データ処理装置が
　
前記データ処理装置が
　前記変換したＮＦＡを
前記記憶装置が
ことを特徴とす
るマ
ＮＦＡ
　　【請求項１６】
　
前記データ処理装置が、
ＮＦＡ
　　【請求項１７】
　
前記データ処理装置が、
ことを特徴とする請求項１５又は請求項１６に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項１８】
　
前記データ処理装置が、
ことを特徴とする請求項１５乃至請求項１７いずれか一つに記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項１９】
　
前記データ処理装置は、
実行
るマ
ＮＦＡ
　　【請求項２０】
　
前記データ処理装置は、
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項２１】
　
ＣＰＵ、入出力装置、データ処理装置および記憶装置から構成されるマルチバイト処理向け文字列照合用ＮＦＡ回路生成装置であって、プログラム制御により動作する該マルチバイト処理向け文字列照合用ＮＦＡ回路生成装置において、
　入力された正規表現を
前記記憶装置が
　
前記データ処理装置が、
および
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換し、
　前記変換したＮＦＡを
前記記憶装置が
　
前記データ処理装置が、
　そのハードウェア記述言語を
前記記憶装置が
ＮＦＡ
　　【請求項２２】
　
前記データ処理装置が、
正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する
ＮＦＡ
　　【請求項２３】
　
前記データ処理装置が、
ことを特徴とする請求項２１又は請求項２２に記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項２４】
　
前記データ処理装置が、
ことを特徴とする請求項２１乃至請求項２３いずれか一つに記載の状態遷移マシンを用いたマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項２５】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する第三ＮＦＡ生成処理をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項２６】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項２７】
　入力された正規表現を記憶する正規表現記憶処理と、
　前記記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換する１−ｂｙｔｅ　ＮＦＡ変換処理と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理と、
　前記変換したＮＦＡを記憶するＮＦＡ記憶処理と、
をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項２８】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、
正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する
ＮＦＡ
　　【請求項２９】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかを単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項２７又は請求項２８に記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項３０】
　前記１−ｂｙｔｅ　ＮＦＡ変換処理において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理が簡略化できる、
ことを特徴とする請求項２７乃至請求項２９いずれか一つに記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項３１】
　正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する第四ＮＦＡ生成処理をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項３２】
　到達した終了状態によって入力された文字列のどの位置でパターンに一致したかを単独で判別できる
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項３３】
　入力された正規表現を記憶する正規表現記憶処理と、
　前記正規表現記憶手段に記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換する１−ｂｙｔｅ　ＮＦＡ変換処理と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理で変換したＮＦＡを記憶するＮＦＡ記憶処理と、
　Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理で変換したＮＦＡから、そのハードウェア回路を記述するハードウェア記述言語を生成するＨＤＬ変換処理と、
　ＨＤＬ変換処理で変換したハードウェア記述言語を記憶するＨＤＬ記憶処理と、
をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項３４】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、
正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する
ＮＦＡ
　　【請求項３５】
　前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかを単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる、
ことを特徴とする請求項３３又は請求項３４に記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項３６】
　前記１−ｂｙｔｅ　ＮＦＡ変換処理において、正規表現から変換するε遷移のない１　ｂｙｔｅで遷移するＮＦＡに対し、終了状態からは自身も含めた他の状態へ遷移しないという制約を加えることにより、前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理が簡略化できる、
ことを特徴とする請求項３３乃至請求項３５いずれか一つに記載のマルチバイト処理向け文字列照合用
ＮＦＡ
　　【請求項３７】
　請求項９から請求項１２に記載の
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項３８】
　請求項７から請求項１２に記載の
ＮＦＡ
　前記
ＮＦＡ
を備え、前記生成したＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａを用いて再構成可能ハードウェアデバイス上に前記
ＮＦＡ
　　【請求項３９】
　請求項７から請求項１２に記載の
ＮＦＡ
ＮＦＡ
ＮＦＡ
ＮＦＡ
　　【請求項４０】
　請求項７から請求項１２に記載の
ＮＦＡ
　前記
ＮＦＡ
を備え、前記生成したＣｏｎｆｉｇｕｒａｔｉｏｎ　ｄａｔａを用いて再構成可能ハードウェアデバイス上のマルチバイト処理向け文字列照合用
ＮＦＡ
　３．本件補正の内容及び目的について
　　本件補正は，特許請求の範囲の記載を本件補正による補正前の請求項１〜４０に対し，以下のとおり補正するものと認められる。
　（１）上記拒絶理由通知において，請求項２，４〜６，８，１０〜１２，１４，１６〜１８，２０，２２〜２４，２６，２８〜３０，３２，３４〜３６につき，「ＮＦＡ」と「有限オートマトン」とが表現が統一されておらず不適切である旨の指摘がなされ，上記拒絶査定においても当該拒絶理由が解消されていなかったところ，請求項１〜４０において「有限オートマトン」と記載していたものを，下位概念である「ＮＦＡ」に統一するとともに，請求項１において「ＮＦＡ」が「Ｎｏｎ−ｄｅｔｅｒｍｉｎｉｓｔｉｃ　Ｆｉｎｉｔｅ　Ａｕｔｏｍａｔｏｎ」の略であることを明確化する。
　（２）上記拒絶理由通知において，請求項１０，２２，２８，３４における「ＮＦＡ生成手段」，「第二ＮＦＡ生成処理」，「第三ＮＦＡ生成処理」，「第四ＮＦＡ生成処理」が前記されておらず，記載が整合しない旨の指摘がなされ，上記拒絶査定においても当該拒絶理由が解消されていなかったところ，当該記載について「正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する」旨を明確化する。
　（３）上記拒絶理由通知において，請求項１３〜２４の各ステップにおける動作の主体が特定されておらず，請求項に係る発明を明確に把握することができない旨の指摘がなされ，上記拒絶査定においても当該拒絶理由が解消されていなかったところ，当該請求項における各ステップの動作主体を明確化する。
　４．補正の適否の結論
　　以上のとおり，本件補正は，いずれも明りょうでない記載を明確化するものに該当するから，特許法第１７条の２第５項第４号に掲げる「明りようでない記載の釈明（拒絶理由通知に係る拒絶の理由に示す事項についてするものに限る。） 」を目的としてなされたものといえる。
第３　本願発明について
　上記のとおり，本件補正は補正要件を満たすから，本願の請求項２７に係る発明（以下「本願発明」という。）は，本件補正による特許請求の範囲の請求項２７に記載された事項により特定される，次のとおりのものと認める。
　「入力された正規表現を記憶する正規表現記憶処理と、
　前記記憶された正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換する１−ｂｙｔｅ　ＮＦＡ変換処理と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理と、
　前記変換したＮＦＡを記憶するＮＦＡ記憶処理と、
をコンピュータに実行させることを特徴とするマルチバイト処理向け文字列照合用ＮＦＡ生成プログラム。」
第４　原査定の拒絶の理由について
　原査定の拒絶理由の理由３は，本願発明は後記する引用例に記載された発明に基いて当業者が容易に発明することができたものであるから，特許法第２９条第２項の規定により特許を受けることができないというものである。
第５　当審の判断
　１．引用例について
　１−１．引用例について
　　原査定の拒絶理由通知で引用した引用例（山垣則夫，外１名，ＮＦＡ埋め込み型パターンマッチング回路におけるマルチバイト処理化に関する検討，電子情報通信学会技術研究報告，２００７年９月１３日，Ｖｏｌ．１０７，Ｎｏ．２２５，ｐｐ．６５〜７０（ＲＥＣＯＮＦ２００７−２６））には，以下のことが記載されている。（以下「引用例摘記事項」という。なお，下線は当審において付したものである。）
　　（ア）「あらまし　近年，FPGAのようなReconfigurable Deviceに，非決定性有限オートマトン（NFA：Non-deterministic Finite Automaton）と呼ばれる汎用性の高い状態遷移アルゴリズムを回路化し，直接埋め込むことで，高速なパターンマッチを実現する研究がなされている．このようなNFA埋め込み型パターンマッチング回路は，ネットワーク侵入検知システム（NIDS：Network Intrusion Detection System）等の高速検索が求められる装置内に組み込まれることが想定されるため，その検索スループットと回路規模が重要な課題である．そこで，本稿では，これらの課題に対し，
行列演算を利用することで1 byte処理のNFAを，その状態数を増加させることなく，任意のバイト数で処理を行うNFAへ容易に変換するマルチバイトNFA生成手法を提案する
　　（イ）「1.はじめに
　　近年，インターネットのブロードバンド化により，オンラインショッピングやネットバンク，オンラインゲーム等，様々なアプリケーションの利用が広まっている．その一方で，コンピュータウィルスや不正侵入，攻撃といった問題も増加しており，セキュリティの確保が重要課題となっている．特に，10Gbps級のネットワーク環境における高度なセキュリティ機能を実現するには，ネットワークプロトコル処理だけでなく，コンテンツチェック等のアプリケーションレイヤ処理の高速化が必須[1]であり，多様化する攻撃や侵入に対応すべく，
正規表現[2]を用いた柔軟で高速なパターンマッチング処理の実現が望まれる
　　
一般的に，正規表現を用いたパターンマッチングは，有限オートマトン（FA: Finite Automaton）と呼ばれる状態遷移マシンを用いて行われる
　　そこで，NFAを回路化し，再構成可能なハードウェアデバイスであるFPGAに直接埋め込むことで高速なパターンマッチを実現する手法が提案されている[5]．このようなNFA埋め込み型パターンマッチング回路は，正規表現から変換したNFAの各状態を，単純な構成の基本構成素子として実現し，多数の基本構成素子を状態遷移に応じて接続することで，ハードウェアにおける同時並列処理の利点を活かした高速な正規表現検索を行うことが可能となる．
　　また，さらなる検索スループットの向上や回路規模の削減に関する研究も多くなされている[6][7][8][9]．特に，文献[6][8]では，1クロックサイクルあたり複数バイト（文字）を処理するNFA回路を利用することで，検索スループットの向上を目指した手法が提案されている．しかし，これらの方式では，1つの検索パターンに対して，同時に処理するバイト数分のNFAが必要である上，厳密一致（Exact Match）を用いた場合しか例示されておらず，状態数の削減と正規表現のサポートが課題であると考えられる．
　　そこで，筆者らは，これらの課題を解決するため，マルチバイト処理のNFA生成手法を提案している[10]．
本手法は，NFA回路をハードウェアに埋め込む前段階の処理であり，1 byte処理のNFAから状態数を変化させることなく任意のマルチバイト処理のNFAに変換することが可能である．
　　（ウ）「2.1. NFA
　　
NFAとは，ある状態における入力による状態遷移先が複数存在する状態遷移マシンであり，grepやperl等における正規表現を用いたパターンマッチングで利用されている
εは入力を読み込まずに次の状態への遷移が可能なε遷移（ε-transition）示している
　　なお，NFAではこのε遷移を除去することが可能であり，この操作をε閉包（ε-closure）と呼ぶ[3][4]．」（第６６頁左欄第３６行〜第５０行）
　　（エ）「2.2 マルチバイト処理
　　NFA埋め込み型パターンマッチング回路の検索スループット（Throughput）[Mbps]は，1クロックサイクルあたりに処理できる文字数m（=8×m[bits]）と動作周波数K[MHz]によって，次式で与えられる．
　　　　　Throughput=8×m×K　　　　　　　　　　　　　　　　　(1)
　　2.2節で示したNFA回路[5]では，1クロックサイクルあたりに1文字(m=1)を処理するため，回路の動作周波数Kが検索スループットに直接影響する．
　　そこで，1クロックサイクルに複数の文字を処理させることで，検索スループットの向上を目指した手法が提案されている[6][7][8]．
　　文献[6][8]では，入力された複数文字の識別を行うCharacter Decorderに違いはあるものの，図5に示すようなアーキテクチャを提案している．ここで，図5は4 bytes処理時の概念図であり，図中の‘*’は任意の文字を示す．これらの手法では，
入力文字数であるN文字を遷移条件としたNFAを構築し，それを回路化することでマルチバイト処理を行う
　　（オ）「3. 提案方式
　　
本章では，新たなアプローチを採用したマルチバイト処理化手法を提案する．以下，1 byte処理のNFAを“Sigle Byte NFA”，マルチバイト処理のNFAを“Multibyte NFA”（k bytes処理であれば，“k-byte NFA”），ε遷移のないNFAを“ε-free NFA”，ε遷移のあるNFAを“ε-NFA”と呼ぶものとする．
　　3.1. 概要
　　
提案するMultibyte NFA変換手法は，1 byte処理のε-free NFAを，状態数を変化させずに任意のMultibyte NFAへ変換する手法であり，
正規表現からNFA回路の生成処理は，(1) 正規表現から1 byte処理のε-free NFAの生成と，(2) 生成したε-free NFAからMultibyte NFAへの変換，の2つに大きく分類することができ
　具体的に，
処理(2)では，NFAを表すNFA記述行列と呼ぶ行列を定義し，処理(1)で生成した1 byte処理のε-free NFAをNFA記述行列によって記述する．続いて，新たに定義する演算規則に従ってNFA記述行列を用いた行列演算を行うことで，任意のMultibyte NFAへの変換を行う．最後に，得られたNFAを回路化し，ハードウェアに埋め込むことで，NFA埋め込み型パターンマッチング回路を実現する．
　本提案手法の特徴を以下に示す．
1. 
任意のバイト数で処理できるMultibyte NFA
2. 既存手法とは異なり，生成されるMultibyte NFAの状態数はSingle Byte NFAの状態数と等しい．
3. Single Byte NFAを生成できる全ての正規表現に対して適用可能．」（第６７頁左欄第２３行〜同頁右欄第３０行）
　　（カ）「3.3. 変換手法
　　
NFA記述行列を用いて，Single Byte NFAから所望のk-byte NFAを生成する．
図7のSingle Byte NFAから2-byte NFAを生成する場合，状態1から状態3への遷移は，状態1から状態2への遷移（‘a’）と状態2から状態3への遷移（‘b’）を結合した文字列“ab”となる．
　　また，上記（ア）〜（カ）に加え，引用例の図６（第６８頁左上）及び図７（第６８頁右上）にはそれぞれ以下のことが記載されているものと認められる。
　　（キ）(1)
「Regular Expressions」から，
「ε-free NFA（Single Byte NFA）」に至る処理
該「ε-free NFA（Single Byte NFA）」から「Multibyte NFA」へと至る処理
　　（ク）Initial Stateを状態１，Final Stateを状態５とし，状態１から状態２の遷移（‘a’），状態１から４への遷移（‘a’），状態２から状態３への遷移（‘b’），状態３から状態２への遷移（‘c’），状態３から状態４への遷移（‘c’）及び状態４から状態５への遷移（‘d，e’）からなる「正規表現“a(bc)*(d|e)”のSingle Byte NFA」の図
　１−２．引用発明について
　　引用例に記載される手法は，1 byte処理のNFAを，「任意の」バイト数で処理を行うNFAであって（引用例摘記事項（ア）），「所望の」k-byte NFAに変換することができるものである(引用例摘記事項（カ）)。ここで，「k-byte NFA」は，k bytes処理のMultibyte NFAを意味し（引用例摘記事項（オ）），Multibyte NFAはNFAの一種であることから，該手法は1 byte処理のNFAを「指定されたバイト数で処理を行うNFAへ変換する」ものであることは当業者にとって自明である。
　　そうすると，引用例摘記事項（ア）〜（ク）から，引用例には以下の発明が開示されているものと認められる。
　「正規表現から1 byte処理のε遷移のないNFAを生成する処理と、
　前記1 byte処理のε遷移のないNFAから、指定されたバイト数で処理を行うNFAへ変換する処理と、
を実行することを特徴とするマルチバイト処理向けパターンマッチング用NFA生成手法。」
（以下「引用発明」という。）
　２．対比
　２−１．引用発明と本願発明とを対比する。
　　（ア）引用発明の「正規表現」，「NFA」，「指定されたバイト数」は，本願発明の「正規表現」，「ＮＦＡ」，「指定された処理バイト数」にそれぞれ相当する。
　　（イ）引用発明の「1 byte処理のε遷移のない」NFAと本願発明の「ε遷移のない１　ｂｙｔｅで遷移する」ＮＦＡとは，引用例摘記事項（ウ），（オ）と本願の発明の詳細な説明における，
「（前略）通常、ＮＦＡには、入力を読み込まずに次の状態への遷移が可能なε遷移（ε−ｔｒａｎｓｉｔｉｏｎ）という特殊な遷移が含まれるが、上記のような直接ＮＦＡを組み込んだパターンマッチング回路（以下、ＮＦＡ回路と呼ぶ）では、ε遷移を含まないＮＦＡを用いる必要がある。このようなＮＦＡからε遷移を除去する操作をε閉包（ε−ｃｌｏｓｕｒｅ）と言う（非特許文献１、非特許文献２）。」（【０００５】段落）
との記載，及び
「（前略）また、１−ｂｙｔｅ　ＮＦＡ変換部２１は、正規表現記憶部３１から読み出した正規表現を、例えば非特許文献１に記載されたような従来の手法を用いてε遷移のない１−ｂｙｔｅ　ＮＦＡに変換し、（後略）」（【００４４】段落）
との記載からみて，「ε遷移のない」ＮＦＡという点で共通する。さらに，本願の発明の詳細な説明には，【発明の効果】として，
「【００２８】
第１の効果は、
１  ｂｙｔｅで処理するＮＦＡの遷移条件そのものを複数バイトに拡張させた
【００２９】
  その理由は、
１  ｂｙｔｅで処理するＮＦＡから指定された処理バイト数のＮＦＡへ変換する際に
と記載され，本願発明における「１　ｂｙｔｅで遷移するＮＦＡ」とは，「１　ｂｙｔｅで処理するＮＦＡ」と同義のものと解される。また，引用例では，引用例摘記事項（カ），（ク）のとおり，「Single Byte NFA」すなわち「1 byte 処理のNFA」（引用例摘記事項（オ）には「1 byte処理のNFA」をSingle Byte NFAと呼ぶことが記載されている。）において，ある状態からある状態へ「a」，「b」，・・・等の1文字で遷移していることから，「1 byte処理のNFA」が1文字で遷移するNFAの意で用いられていることは明らかである。一方，本願発明の「前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理」に対応する本願の発明の詳細な説明の記載として，
「【００５５】
  （前略）Ｍｕｌｔｉｂｙｔｅ  ＮＦＡ変換部２２は、変換手段２１から受け取ったε遷移のない１−ｂｙｔｅ  ＮＦＡを処理バイト数ＢＴのＭｕｌｔｉｂｙｔｅ  ＮＦＡへ変換する（ステップＡ６）。
　【００５６】
  図５は、ステップＡ６のより詳細な動作を説明するための流れ図である。また、例として、図２４に示す正規表現“ａ（ｂｃ）＊（ｄ｜ｅ）”から生成したε遷移のない１−ｂｙｔｅ  ＮＦＡの変換例を挙げて説明する。」とあり，本願発明の「ε遷移のない１　ｂｙｔｅで遷移するＮＦＡ」が，発明の詳細な説明では「ε遷移のない１−ｂｙｔｅ  ＮＦＡ」として説明されるところ，該「ε遷移のない１−ｂｙｔｅ  ＮＦＡ」の例を示す図２４には状態０から状態１への「ａ」での遷移等の１文字で遷移するＮＦＡが表現された図が記載されている。そうすると，引用発明の「1 byte処理の」NFAと本願発明の「１　ｂｙｔｅで遷移する」ＮＦＡとは，単なる表現上の差異にすぎず，実質的な意味において相違しないものと解される。なお，上記のとおり，本願発明では「１−ｂｙｔｅで遷移するＮＦＡ」に関して「１−ｂｙｔｅ　ＮＦＡ」と説明されているところ，一般に「１−ｂｙｔｅ」を「Single Byte」と表記することは慣用的な言い換え表現であることからみても，引用発明の「1 byte処理のNFA」すなわち「Single Byte NFA」は，本願発明の「１　ｂｙｔｅで遷移するＮＦＡ」と解すべきものである。
　以上を総合すると，引用発明の「1 byte処理のε遷移のない」NFAは，本願発明の「ε遷移のない１　ｂｙｔｅで遷移する」ＮＦＡに相当する。
　　（ウ）引用発明の指定されたバイト数「で処理を行う」NFAについては，上記２−１（イ）で検討したのと同様，引用発明の所定のバイト数「で処理を行う」ことと本願発明の所定の処理バイト数「で遷移を行う」こととが，表現上の相違にすぎないから，本願発明の指定された処理バイト数「で遷移を行う」ＮＦＡに相当する。
　　（エ）正規表現とは，文字列の集合を記述するための記法を指す語として慣用のものであるところ，引用例は，該正規表現からNFA回路を生成し，パターンマッチング回路を実現しようとする提案であることから（引用例摘記事項（オ）），引用発明は，文字列の集合についてのパターンマッチングすなわち照合を行うことに係る手法と認められる。そして，本願の発明の詳細な説明にも，
　「【０００３】
　従来、正規表現を用いた文字列照合（パターンマッチ）は、有限オートマトン（ＦＡ：　Ｆｉｎｉｔｅ　Ａｕｔｏｍａｔｏｎ）と呼ばれる状態遷移マシンを用いて行われる。（後略）」
と記載され，正規表現を用いた文字列照合を行うことが，パターンマッチを意味するものとされていることからみても，引用発明と本願発明とは，「文字列照合用ＮＦＡを生成する処理アルゴリズム」である点で共通するといえる。また，該「ＮＦＡ」が「マルチバイト処理向け」である点でも共通する。
　２−２．してみると，引用発明と本願発明との一致点と相違点とは，以下のとおりである。
　［一致点］
　「正規表現からε遷移のない１　ｂｙｔｅで遷移するＮＦＡへ変換する１−ｂｙｔｅ　ＮＦＡ変換処理と、
　前記ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換するＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理と、
　を実行することを特徴とするマルチバイト処理向け文字列照合用ＮＦＡを生成する処理アルゴリズム。」
　［相違点］
　本願発明が，「入力された正規表現を記憶する正規表現記憶処理」，「前記変換したＮＦＡを記憶するＮＦＡ記憶処理」とを備え，各処理を「コンピュータに実行させることを特徴とする」「プログラム」の発明であるのに対し，引用発明は，マルチバイト処理向け文字列照合用ＮＦＡ生成の「手法」を開示するものであって，該「手法」に係る処理を「コンピュータに実行させ」ることや，処理を実行させる「プログラム」については明示されておらず，さらに，「入力された正規表現を記憶する正規表現記憶処理」，「前記変換したＮＦＡを記憶するＮＦＡ記憶処理」を備えること，及び「１−ｂｙｔｅ　ＮＦＡ変換処理」を行う際に変換元を「前記記憶された正規表現から」とすることについては明示していない点。
　３．判断
　　以上の相違点について，以下に判断する。
　　引用発明は，引用例摘記事項（ア）に記載されるとおり，行列演算を利用することで1 byte処理のNFAを，その状態数を増加させることなく，任意のバイト数で処理を行うNFAへ容易に変換するマルチバイトNFA生成手法を提案するものである。そして，一般に行列演算をコンピュータのプログラムで実行させることは周知の技術である。
　　また，本願と引用発明は，上記一致点で示したように「マルチバイト処理向け文字列照合用ＮＦＡを生成する」処理アルゴリズムである点で一致しており，本願発明は該処理アルゴリズムをコンピュータのプログラムとして実現したものであることは明らかである。
　　そして，一般にコンピュータのプログラムにおいては，処理対象として入力された情報や処理結果として出力された情報を記憶手段に格納することは技術常識にすぎないから，上記処理アルゴリズムをプログラム化するにあたり，上記相違点の「入力された正規表現を記憶する正規表現記憶処理」及び「前記変換したＮＦＡを記憶するＮＦＡ記憶処理」を備えることに何ら技術的困難性はなく，また，「１−ｂｙｔｅ　ＮＦＡ変換処理」を行う際には，処理対象である変換元の正規表現を記憶手段から読み出して処理することになるのであるから，「前記記憶された正規表現から」とすることも，当業者であれば自明な構成であるといわざるを得ない。
　　したがって，相違点に係る構成は，引用発明の処理アルゴリズムのプログラム化に伴う自明な構成でしかなく，本願発明には，その他にコンピュータのプログラムとしての創意工夫があるとはいえないから，単に引用発明の処理アルゴリズムをプログラム化したものでしかないことは明らかである。
　　以上のとおりであるから，本願発明は，引用発明の処理アルゴリズムを周知技術に基づいてプログラム化したものであり，当業者であれば容易に想到し得たものである。  
　　また，本願発明の作用効果も，引用発明及び周知技術から当業者が予測できる範囲のものである。
　　したがって，本願発明は，引用発明及び周知技術に基いて当業者が容易に発明をすることができたものであるから，特許を受けることができない。
　４．請求人の主張について
　　なお，請求人は審判請求書において，
　「本発明で開示している手法は、引用文献２とは異なり、一般的な正規表現を複数文字で処理可能なマルチバイト処理向けＮＦＡへの変換手法を開示しており、変換したマルチバイト処理向けＮＦＡは、入力された複数文字のどの位置でパターンに一致したかを判別可能なＮＦＡとなります。具体的には、明細書［００５４］から［００６５］段落目に記載しているように、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別するＮＦＡへ変
換する請求項３、９、２７におけるＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換手段、あるいは、請求項３３におけるＭｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理によって生成されたＮＦＡがこれを実現します。」
　　と主張する。しかしながら，本願発明においては，「Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理」が，「入力された複数文字のどの位置でパターンに一致したかを判別可能」である旨は何ら明示的な特定がなされていない。そして，本願発明に係る請求項２７を引用する請求項２８において，「前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、正規表現を用いたパターンから、複数の文字数から成る遷移条件をもち、到達した終了状態によって入力された文字列のどの位置で前記パターンに一致したかを単独で判別できるＮＦＡを生成する第三ＮＦＡ生成処理をコンピュータに実行させることを特徴とする」として，「Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理」を更に限定していること，また，請求項２７を引用する請求項２９において，「前記Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理は、指定された動作モードにより、入力された文字列のどの位置でパターンが一致したかを単独で判別できるＮＦＡを生成するか、入力された文字列のどの位置でパターンが一致したかを単独では判別できないＮＦＡを生成するかを利用目的に応じて選択できる」と限定していることからみても，本願発明における「Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理」とは，請求人が主張する「入力された複数文字のどの位置でパターンに一致したかを判別可能」なもののみならず，入力された文字列のどの位置でパターンが一致したかを単独では判別できないものをも含む上位概念を特定しようとするものと解される。
　　そうすると，本願発明の「Ｍｕｌｔｉｂｙｔｅ　ＮＦＡ変換処理」は，「入力された複数文字のどの位置でパターンに一致したかを判別可能」であるか否かにかかわらず，「ε遷移のない１　ｂｙｔｅで遷移するＮＦＡを、指定された処理バイト数で遷移を行うＮＦＡへ変換する」という点において，引用発明と相違するものではないから，上記請求人の主張を採用することはできない。
第６　むすび 　  
　以上のとおり，本願発明は，引用発明及び周知技術に基いて当業者が容易に発明をすることができたものであるから，他の請求項の発明について検討するまでもなく，特許法第２９条第２項の規定により特許を受けることができない。
　したがって，本願は原査定で通知した拒絶理由によって拒絶されるべきものである。
 　よって，結論のとおり審決する。