注: この文書は、著者の個人的意見であり、著者の雇用者の公式意見とは一切関係ありません。
ソフトウェア特許に関して、大きく分けて下記の 3 つの問題があります。
たとえば「数学上の定理」に特許を認めることは、特許の本来の目的 (技術の創案者を保護することによって、技術の公開と発展を促す) に合致するでしょうか? 数学や理論科学の分野では、新しい発見は常に公にし、批評を仰ぐというのが、伝統的に確立した手法です。特許のような保護手段を取らなくても、公開するのは当たり前のことなのです。理論科学の分野で、もし特許のような保護手段をとったとしたら、科学の進歩ははるかに遅くなっていたことは間違いありません。つまり、数学や理論科学の分野では、特許の利用は、伝統に反し、また発展を阻害する行為なのです。
同じことが、ソフトウェア特許一般にも当てはまります。 新しいアルゴリズムは、これまでずっと、ソフトウェア科学の世界で、無償で公開されてきました。アルゴリズムに特許を認めることは、この伝統に反し、技術の発展をむしろ阻害する行為です。
また、今後新しく発見されるアルゴリズムも、それまで発見されたアルゴリズムを土台にしていることは疑う余地がありません。 先人が無償で提供してきた知恵を土台に開発したアルゴリズムに対して、特許という手段で自分だけが利益を得ることが、公正な行為でしょうか?
ソフトウェアに限らず、全ての特許に関わる問題なのですが、特許承認側の能力不足のため、きわめてくだらない (その分野を専門とする技術者であれば、5分もあれば考えつくような) 特許がつぎつぎに成立しているという問題があります。 これは、特許取得のためのコストをかけられるような大企業によって、ごくごく当たり前の技術が独占されるということを意味します。なぜなら、大企業どうしは、クロスライセンスという手段によって、特許内容 (といっても、くだらない内容) を相互に無料で利用できるのですが、新規参入を計ろうとした小企業や個人は、クロスライセンスできるような特許を抱えてないため、コスト的に、その分野へ参入できなくなるわけです。
ある日突然、見も知らぬ企業によって特許を主張されて、技術を利用できなくなるということが、たびたび起きています。 自明な技術に対して特許が認められているという現状が改善されない限り、この問題は発生し続けるでしょう。
これは LZW 圧縮アルゴリズムに対する特許 (*1) の問題です。 LZW アルゴリズムは、後から考えれば、LZ77/LZ78 アルゴリズムに対する、かなり自然な拡張です (全てのアルファベットを事前に辞書に入れておくように変更しただけとも考えられます)。 しかし、LZW 単独で論文誌の審査を通過していることから見ても、LZW アルゴリズム自体に新規性は一応あると言って良いと思います。 ですから、上記のうち 2. の問題は考えないことにします。
3. についても、LZW に関して特許が成立していること自体は知られていましたから、サブマリン特許であるとは言えず、当てはまりません。 ただし、アルゴリズム発表から10年あまりに渡って、自由な利用を黙認しておきながら、突然ライセンス料の請求を行なうという行為が公正かどうかは、議論の余地はありそうです。
LZW 特許に関する最大の問題は 1. でしょう。 ソフトウェア特許が、本来の特許の目的である技術の促進のために、本当に役に立つかという問題です。 LZWのような問題を避けるためには、開発者の側が、アルゴリズムに関して特許が成立しているかどうかを熟知しておく他ありません。しかし、一ソフトウェア開発者が、関連する全てのソフトウェア特許の存在を熟知するのは、不可能に近いものがあります。ただし、特許に関するチェック部門を持つような大企業のソフトウェア技術者だけは例外です。ソフトウェア特許は、ソフトウェアに関しても特許部門を必要とさせることによって、ソフトウェア開発に関するコストを押し上げるわけです。また、特許部門を持たなかったり、クロスライセンス契約を可能にするような特許を自前で抱えていないような小企業や個人にとっては、ソフトウェア開発は、事実上、不可能になっていくでしょう。
これは、上記の 1. 2. 3. すべてに合致する問題です。
まず、2. について。 この特許 (*2) のように、特定の応用に対して、具体的な符合化方法を定める作業自体には、確かに、それなりの労力が必要です。しかし、根本となるアイディア (同一値が連続するデータに対して、run length encoding を用いる -- run length encoding とは、"zzz sleeping..." を「"z"×3 "sl" "e"×2 "ping" "."×3」のように符合化する手法のことです --) は、そもそも自明な事実に過ぎません。しかしながら現代の特許許諾の上では、このように一般的かつ自明な手法を特定の分野に応用しただけで、十分な新規性を備えると判断されてしまうのです。
また、JPEG は、この特許とは全く独立に制定された規格です。この特許の公開は、JPEG の開発に何の寄与もしていません。ですから、3. にも当然当てはまります。
アルゴリズムは、1984年に、Terry A. Welch によって公表された。1983年に、UNISYS によって特許出願、
US patent 4,558,302
として成立 (リンク先の社名 Sperry は、UNISYSの合併以前の名称)。
また、European patent 0,129,439、日本における特許 (公告番号:平5−68893) も成立している。
IBM も、LZW を用いた通信に関連する
US Patent 4,814,746
を得ている (1986年出願)。
LZW アルゴリズムは、Abraham Lempel および Jacob Ziv による LZ77/LZ78 アルゴリズムを元にしている (LZW は Lempel - Ziv - Welch の頭文字)。 UNISYS は、LZ78 に関しても US Patent 4,464,650 を取得している (1981年出願) が、こちらについてはライセンス料の請求は行なわれなかったようだ (LHa や pkzip, gzip, zlib は、LZ77 から派生した LZHUF アルゴリズムを使っている)。