IT疑似科学? “Lyee”の現在
(後編)

By 鳥取ループ

(前編はこちら)

鎌倉といえば、由比ヶ浜のようにいかにも湘南らしい観光地もあるが、それよりも武士の古都として寺院や仏閣のイメージが強いだろう。LYEE株式会社はそのような古都鎌倉らしい名所の1つ、臨済宗の大本山、円覚寺の近くにある。

小宮氏の案内で寺の境内の中を進む。北鎌倉駅から普通に歩いていくことも出来るが、この方が近道なのだそうだ。

そこにあったのは、この辺りでは珍しくない、急斜面にある民家のような建物である。そこで、根来氏に初めて会った。

見た目は穏やかそうな老紳士といった風体であるが、小宮氏によれば「熱い」人物であるらしい。根来氏、はテーブルに広げられた模造紙に書かれた、何かよく分からない図を前に、長年の研究の末に完全にバグの出ないソフトウェアの開発手法を考えたと熱く語った。それが「シナリオ関数」というものらしい。

そして、「シナリオ関数」というのは、「ベクトル」というプログラムの最小単位の集まりを、実行する仕組みのことらしい。この「ベクトル」という言葉は根来氏が考えた用語なので、高校や大学習ったベクトルのことだと考えてはいけない。

根来氏の説明をここにそのまま書いてしまうと、前編で紹介した特許公報と同じく、とても普通の人には理解困難な内容になってしまうので、ここでは筆者なりにかいつまんで説明する。

入力から結果を求める場合、途中に様々な手順があるが、それぞれの手順の順序を気にしなくても、1つの繰り返し構造に書き直すことができるというのがLyee理論である。

例えばファイルAからファイルBに内容をコピーするのであれば「ファイルAからデータをメモリに読み込む」「メモリ上のデータをファイルBに書き込む」という2つの手順を繰り返すのだが、この手順を逆にしても、メモリ上にデータがない時は「メモリ上のデータをファイルBに書き込む」をスキップするようにすれば問題ない。

ただ、文字通りに処理をしたら、あまり効率的とは思えないし、あらゆるプログラムに適用出来るようなものではなさそうな気がするが、それはさておき、なぜそれでバグがなくなり、ウイルスを無力かできるのだろうか。

ウイルスを無力化するとは

実例を見せてもらえないか聞いてみると、とりあえずはWindows上で動作するプログラムを試作している段階だそうだ。しかし、Lyeeを活用したプロジェクトは15年以上前からカテナで始められており、未だにその段階というのは遅すぎるのではないか。

それについて、小宮氏によると、カテナを出て以降は旧カテナとはほとんど関わっておらず、古巣からも何か声がかかることはなく、Lyeeに関する資産のほとんどが持っていかれた状態なのだという。小宮氏は、自分はもう追い出されたと自嘲気味に語るが、そのような状態を受け入れた小宮氏は潔いと言える。

とにかく、プログラムを「シナリオ関数」にすればバグのないプログラムを作れるのだという。それは、Windows上のアプリケーションにも適用され、LyeeならOSにバグがあっても検出できるというのである。

実際に見せてもらったものの1つは、C言語で書かれたファイルをコピーするプログラムを「シナリオ関数」に書き換える方法である。

筆者はファイルの読み書きにfgetsとfputsが使われているのを見て、

「これ、バイナリファイルだったらデータが壊れませんか?」

と言ったら、微妙な空気が流れた。

C言語のプログラミングを理解している人であれば、ある程度意味は理解できると思う。そうでない方は、ファイルからデータを読み書きする命令には文字データだけを読み書きできるものと、画像などのあらゆるデータを読み書きできるものの2通りがあり、今回は前者を使っていたと考えて頂きたい。

それぞれの手順を抽出し、根来氏の考案したループ構造である「シナリオ関数」に置き換えたところで、その問題は解決しそうにない。

これをバグと言うかどうかは考え方次第である。コピーできるのは文字データだけという要件が前提なら、これはバグではなく仕様である。しかし、あらゆるファイルをコピーできると思いこんでこのプログラムを使うと、データが壊れることになる。

Lyeeと言えど、さすがに「空気を読んで」バグを検出することはできないので、これはバグではなく仕様ということにしておこう。

それにしても、OSにバグがあっても大丈夫というのはさすがに言いすぎだ。さきほどのファイルのコピー一つについても、fgets自体にバグがあり、そこで勝手にデータが変わってしまったら、そのことはLyeeと言えども検出できないだろう。

そう指摘すると、根来氏は「OSのソースを出せばいいんです、OSも全てシナリオ関数にすれば解決します」と大言壮語をし始めた。

もう1つの売り文句である「ウイルス無力化」はどうなのか。これは、シナリオ関数を改良して実現するということのようだ。具体的には、データを二重に持っておき、2つのデータが途中で一致しなくなったら、ウイルスが侵入したと判断するということである。

二重三重にデータを持つというのは、宇宙線の影響を受ける人工衛星のような用途で昔から使われている技術なので、今さら特許が認められるというのも不可解であるが、それはさておき、そうであるとすれば、ここで言うウイルスというのは、非常に限られたものになりそうだ。例えば、データを勝手に外部に送信する、暴露ウイルスのようなものには対処できそうにない。

特許の別の使い方?

プログラムの特許というのは、特許侵害があったとしても、それを立証するのが難しい。それでも有効な場合もあって、典型的なのは動画データの圧縮方法の特許である。動画を録画・再生するプログラムを開発すると同時に特許を取得しておけば、そのプログラムを使って誰かが商売として動画の録画・再生を行えば特許に抵触することは明白なので、特許使用料を請求しやすい。

しかし、Lyeeのようにプログラムが完成しているとは言えない段階で、特許使用料を得ることはほとんど無理なことだろう。カテナがライセンス料を得られなかったも、そういうことである。

しかし、前編で触れた中小企業庁の補助金のようなものが組み合わされると、新たなスキームが生まれてくる。これは「ものづくり補助金」というもので、同様の制度には地方自治体が産業振興として行っているものがある。

この種の補助金に共通するのは、主に製造業を想定しており、機械設備等の具体的な物品の購入費を補助するものである。そのため、研究開発において人件費が主となるソフトウェア産業とは相性が悪い。日本のソフトウェア産業が育たない理由の一つは、こういった製造業を前提とした制度がなかなか改められないこともあるだろう。

それはそれとして、ここで1つ事実を提示すると、平成28年度にLyee関連事業に支出された「ものづくり補助金」の金額は500万円である。そのうち350万円がLyee開発ツールの購入費で、150万円が特許使用料である。

人件費という形では補助金は得られないが、ツール購入費と特許使用料という名目であれば、設備購入費に準じたものとして認められるということなのである。

実際、「ウイルス侵入検知及び無力化方」の特許は存在しており、その金銭的価値は定まらないにしても、その発明は実現可能であり、進歩性があるということを特許庁が認めているのだから、その対価を支払うのは全く正当な行為だ。このことについて、読者がモヤッとしたものを感じ、納得できないとすれば、その感情は特許庁に向けられるべきだろう。

カテナでは結果的にLyeeの事業化は失敗した。しかし、それで小宮氏が諦めたかと言えば、全くそんなことはなかった。小宮氏は今でも「Lyeeは本物である」と信じていて、Lyeeの事業化を模索している。

しかし、小宮氏は技術者ではないし、根来氏は「哲学者」であって、とても実務家には見えない。そこで、若い技術者に声をかけては、プログラム開発をさせている。

小宮氏はもちろん、技術者も根来氏の理論を完全に理解しておらず、それぞれの解釈で実装してみているということだ。

理屈はともかく、信じて、やってみることが大事と小宮氏は言う。確かに、それは正しい面もあるだろう。未知の領域に挑戦しつつも、手堅い収益源を確保し、経営的に破綻せずに続けられる小宮氏は、確かに経営者としては優秀だ。

しかし、端的に言えばLyeeについては、「IT疑似科学」と断然しなければなるまい。疑似科学とは、「科学のようで科学ではない、別の何か」ということだ。

「哲学」や「宗教」であれば、何が正しくて何が間違いかはっきりとは証明できないのかも知れないが、自然科学や技術の分野はそんなに甘いものではない。厳しい言い方かも知れないが、信じることが大事といった情緒では通らない。実際に、製品を作り、経済的な価値を証明するべきだろう。

そして、何よりもあの特許申請を通した特許庁の審査官審判官は猛省すべきだ。

IT疑似科学? “Lyee”の現在
(後編)
」への2件のフィードバック

  1. 匿名の臆病者

    審査官は特許申請を通していません、拒絶査定が出ています。
    ただ、その後拒絶査定不服審判を起こされ、審判が査定を取り消して特許を成立させています。
    よって、攻めるべきは審査官ではなく審判ですね。

    返信
    1. 鳥取ループ 投稿作成者

      ご指摘ありがとうございます。確かに、合議体で審判した旨が書かれていますね。意味のわからない特許でも通ってしまうのなら、査定不服審判って意味があるのでしょうか。

      返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です