オープンソースとアルゴリズムの特許

GPL で公開していた構文解析ライブラリで実装していたアルゴリズム(の一つ)について,特許が出ているという指摘を受けたので,GPL で公開するのは不適切だと判断して,当該アルゴリズムの実装を取り除いた.このアルゴリズムは,同じくオープンソースな解析器 (LGPL/BSD) でも実装され公開されていたので,すっかり ok だと油断していた.確かに企業研究者の提案手法なので,特許が取られている可能性は頭の隅にはあったのだけど,それにつけても非常に残念だ.今回のアルゴリズムは,かんたん特許検索で提案者名を入れてもそれこそ「かんたんに」出てくるので,自分自身の過失だろう.が,それで済ませていいのだろうか.[最後にオチあり]

以前,Bayesian Setsの特許について - のんびり読書日記 を読んだ時も思ったけど,アルゴリズム(あるいはソフトウェア)の特許というのは,オープンソース開発者にとっては極めて厄介な問題だ.自分自身は,企業研究者が特許を取るのは企業の利益を守るという観点でも十分理解できるし,企業研究者の間では,新しいアルゴリズムを開発する動機付けにもなるので,反対ではない.ただ,アカデミアの研究者としては,自分の提案手法を制限なく利用してもらうため,実装を公開したいというのもあって,(それと相反する)特許を取らないようにしようと思っている.自分は学生ではなく雇用されている立場の人間なので,自分の判断だけで実装を公開するわけにはいかないのだけど,今のところは問題なく(スムーズに)公開できている.

難しいのは,今回のように,他人の提案したアルゴリズムを実装して公開する場合.Bayesian Set を実装した人のケースは公開差し止めを求めるだけだったみたいだけど,特許を知らずにオープンソースで公開して特許取得者に不利益が出た場合(第三者に商用利用された場合とか)はどうなるのだろう.GPL で公開するということ自体が不適切だったわけなので,何がしかの責任が発生するような気がする(というか,特許の専門家が周りにいない現状では,「どうなるのか分からない」というのが本当の問題; 安易に公開できなくなる).手法を提案した研究者自身が実装をオープンソースで公開している場合は,まず再実装して公開しても問題ないと思うが(厳密にはライセンス依存だが),そうでない場合は公開前に特許の確認をした方が良いのだろうか?特許の専門家が周りにいない立場の人間が完璧なチェックをするのはちょっと無理だと思う.

そういうことを意識し出すと,他人の提案するアルゴリズムの実装をどんどん公開する(失うもののない)若い人(主に学生)は羨ましいと思う.自分も学生の時は「怒られたら引っ込めればいいや」的な気分が大なり小なりあったが,今は守らなければいけないものもあり,リスクを冒すことは難しくなっている(というか,より責任を意識する).自分としては,彼らの行動にはむしろ賛成で,萎縮しないでどんどん公開したらいいと思うけど,彼らを「守る」には,自分たち(アカデミアの研究者で,学生の行動に責任を持つ立場の人達)はどうしたらいいのだろうか.研究者の場合,基本的に論文でアルゴリズムを知って実装する場合がほとんどなので,特許取得者(多くの場合,論文の著者)が「この論文のアルゴリズムは特許申請中である」という事実を,もっとオープンにしてくれたらな,と思うのだけど(特許自体は,そもそも第三者に何が特許申請されているか分かりやすくあるべきだし,サブマリン特許的に罠にはめようと思っている企業研究者(職務発明規定の関係で,出願者は多くの場合企業なので,トンデモ会社ならあるかも)はほとんどいないだろうから,もっと論文と特許の関係を明確にしてくれたらなと思う; 論文中に特許出願中と書くとか).実際,網羅的にオープンソース開発者が特許を確認するというのは難しいのが現状だ.論文で提案されているアルゴリズムが patent-free か patent-protected かもう少し簡単に知る方法は無いのだろうか.今のところ,論文の著者に直接聞く以外には思いつかないなぁ.

話は変わるが,この件を同僚氏に話したら,Viterbi アルゴリズムと特許の話を教えてくれた.Viterbi 自身は Viterbi アルゴリズムに特許を取らなかったが,それで良かったと思っているという話.興味がある人は Andrew Viterbi Oral History を patent で検索して見て欲しい.大学研究者としては,アルゴリズムの特許を取ること自体に反対も賛成もしないが,特許を取った方が良い場合(あるいは取っても良い場合)と,良くない場合というのがあるように感じている.あまりいい例えではないかも知れないが,優れた基礎的なアルゴリズムというのは科学哲学でいうところのパラダイム(教科書)の様なもので,しばらくの間は研究者はその上で背伸びをしないといけないので,早い段階でそこに特許のフタをしてしまうと研究の発展が阻害される場合があると思う(そして必ずしも代替案が見つかるとは限らない; CKY も Earley パーザも dynamic programming であることは変わりない).
一方で,オープンソース開発者としては,アルゴリズムに貼られた特許のラベルは Google が表示させる広告のようなものだと思っている.
「ある種の代償として必要であることは分かっているが,なるべく見ないで済ませたい」
参考リンク

[追記; 7/2]
アルゴリズム考案者発明人(=発明の出願者; 出願人は所属企業)に直接問い合わせてみた.当該発明は公開後,審査請求されておらず,取下げになっているとのこと.特許電子図書館公報テキスト検索で特開番号などを指定して検索結果のリンクをたどると,経過情報が見られて,確かにみなし取下げになっている.特許権を取るための手続を見ると

5)みなし取り下げ(審査請求期間内に審査請求なし)
出願から3年以内に審査請求のない出願は、取り下げられたものとみなされます。以後権利化することはできませんのでご注意下さい。

とあり,特許化はできなくなっている模様.というか,論文の発表より特許の出願の方が容易なので,出願・公開だけして(維持にお金がかかる取得はせず)他社に特許を取られるのを防止するというのが主目的なのかな.なるほど,こういう利用法なら,上に書いた記載は少し言い過ぎだったかも.というわけで,オープンソース化は問題なさそうなので再公開しました.
今回は運良く出願から3年以上たってみなし取り下げになっていたから良かったが,出願から3年以内であれば審査請求をする場合もあるわけで,「論文を見てすぐアルゴリズムを実装して公開する」ことにリスクがあることには変わりがないか.3年というのは,技術の陳腐化との兼合いで,他企業が公開技術を利用するのを(一定期間)防ぐという意味合いなのかな(公開技術を使って他企業が商売を始めたら,審査請求→取得することで利益を守れる; 3年間で技術が陳腐化していなければ(その後も独占的に技術を使いたければ),審査請求・取得すれば良い).