BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OracleがGoogleに著作権のあるソースコードについてGoogleを訴える

OracleがGoogleに著作権のあるソースコードについてGoogleを訴える

原文(投稿日:2012/04/23)へのリンク

OracleがAPIを著作権で保護できるかどうかに関しての昨日のニュースに続いて、いくつかの新たな事実が浮かび上がり、それによってOracleの状況が厳しくなっている

まず最初に、裁判官のAlsup氏は、陪審員ではなく彼自身が、APIが著作権法で保護されるかどうかを判断すると主張した。

  • 裁判官Alsup氏: 37個のAPIが著作権で保護されるかどうかは私が判断します。しかしそれについての背景説明をして頂きたいです。見解を明確にして頂きたいと思います。あなたは構造・手順・組織(SSO)について著作権を取得しましたか?「はい」または「いいえ」でお答えください。また、著作権局が著作権で保護されているソースコードの構造・手順・組織(SSO)について調査をしていることをご存知ですか?おそらくご存知ないのではと思いますが。[これに対して、Googleは「いいえ」と答え、 Oracleは「どちらとも言えない」と答えました。この答えがどちらの問いに対してなのかは明確ではありません。著作権局は、ソフトウェアの著作権登録に際して、ソースコードの最初と最後の50行しか見ていません。従って当然彼らは構造・手順・組織(SSO)を見ていないことになります。]
  • 裁判官Alsup氏: なるほど。それでは、二次的著作物についではいかかでしょうか?原告は、ソースコードが実際に使用されていたことを証明しなければなりませんか?それがもし、偶然の一致だとするとどうでしょうか?
  • Oracle: 立証するにはアクセスがあったかどうかと、それに加えて十分な類似性を提示する必要があります。
  • Google: 承認されていない成果物では、著作権で保護されるべき素材を含んでいるかもしれません。
  • 裁判官Alsup氏: Googleがクリーンルーム実装をしていた際、(Javaのソースコードに記述されている)英語のコメントへのアクセスはありましたか?
  • Google:はい。英語でAPIについての説明文章がありました。
  • 裁判官Alsup氏:そのせいでAPIが二次的著作物となったのではないでしょうか?
  • Google: いいえ。完全修飾された名前は組織の名前でした。
  • 裁判官Alsup氏:陪審員ではなく、私が著作権で保護すべきかどうかを判断します。厳密にコピーをする必要はないですよね。例えば、math.sqrt()ではなく、science.sqrt()というメソッドを自分のメソッドとして使用できますね。
  • Google: それでは機能しません。すでに存在しているコードがそのメソッドを使用することができないからです。

興味深い点がもう一つある。APIが著作権で保護されるとなると、全てのJavaのAPIライブラリにGPLが適用される可能性があるのだ。Java言語やJavaAPIが著作権保護対象だとすると、GPLにある「全体としての著作物」という制約が、Java言語やJavaAPIをも汚染する可能性があるからだ。GPLのソースから生成されたJavaDocはGPLが適用されるとみなされるだろうし、それが法廷で認定されれば、Java言語がGPL下にあるということになってしまう。

Oracleの弁護士が最後に面目を失うことになったのは、TimSort APIの「rangeCheck」機能をコピーしたという「動かぬ証拠」が崩れたことによる。この件についてはInfoQの以前の発表で言及している。この供述において、Joshua Bloch氏は彼がSunにいる頃に、そのコードを書いたと認めている。

Bloch氏は、彼がSunで働いていた間に書いた「range check」のソースコードのうちの具体的な9行について、Androidに使用したかどうかを尋ねられた。「思い出せません。」とBloch氏は言った。Jacobs氏はTimsort.java (Android)とArrays.java (Java)の両方のコードを提示し、双方に「range check」が含まれていることを示した。Bloch氏はそれらがほぼ同じであることに同意した。そして彼がSunで働いている時に、Sunがコードの著作権を保護していたことを知っていたと認めた。

不運なことに、Oracle側の弁護士はこの件について十分に調査をしなかった。これらのソースコードを書いたのは実際にJoshua Bloch氏かもしれないが、これは実際には公式記録の問題である。すなわち、Joshua氏がGoogleにいたときに書いたもの(したがって、Googleが著作権を保持しており、必要に応じて再度著作権を主張できる)だけでなく、Javaコミュニティの善意によって書かれたソースコードもSunに寄付されたのだ。

新たなマージソートアルゴリズムはパフォーマンスが著しく向上している。これはPythonの"TimSort"からJosh Bloch氏によって採用されたものだ。

Josh Bloch氏がGoogleにいた頃の2009年6月のJDKのメーリングリストには以下のような記述があった。

Googleはオブジェクト配列をソートする実装について貢献したいと考えています。このソートアルゴリズムは前もって部分的にソートしてある入力に対してより優れたパフォーマンスを発揮するもので、Pythonで使用されているTim Peter氏のソートアルゴリズムを基にしています。

このソートはAndroidが搭載しているjava.utilで既に使用されています。

Josh Bloch氏によって書かれました。

実のところ、TimSortのファイルのヘッダにはファイルの著作権保持者はGoogleであると明記されている。


1 /*

2  * Copyright 2009 Google Inc.  All Rights Reserved.

3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.[著作権表示の変更・削除、または本ファイルのヘッダの削除を禁ずる。]

この提示を受けてOracleは、Googleの著作権が明記されているこのファイルはGoogleがSunに寄付するより前にAndroidに存在していたファイルに似ていると主張しようとしている。

最後に、OracleはEメール1596388の32ページ上にある証拠を公表したようだ。このメールは当時SunにいたTim Bray氏に宛てたものである。氏は独立したフォークを作ることに賛同している。

こうゆう議論がよくされます。いわく、GPL下でフォークするリスクは低い。あるいは、フリーソフトウェアやOSSのコミュニティはフォークしたがらない。そして、多くの人にインストールされた互換の基盤があれば、かつて裁判にまでなったMicrosoft版偽Javaのようなことは誰も繰り返そうとはしないだろう、と。

しかし、これからもフォークは行われるでしょうし、私はそれに賛成します。地下のハッカーや大学のコンピュータ科学部、その他思いもよらない団体がJavaのソースコードにかっこいい改善を加え、コンパイルするでしょうし、そして世界に広めたいとも思うでしょう。でもそこで、自分たちの作ったものを「Java」と呼ぶためには、TCK(互換性テストキット)というトレードマークのための通過儀礼を受けなければならないとわかったら、そんなものはまったくかっこよくないと思うでしょう。そうなれば、彼らは自分たちの言語に素敵な名前をつけて、いずれにしても公表はするでしょう。

これは素晴らしいことです。これに問題は一切ありませんし、Javaにとって非常によいことだと思います。Java本家がこの類のものを観察して、もしよいものであればそれを採用し(GPLのおかげで、これができます)、みんなのためにJavaをよりよいものにすることができるからです。

覚えておいてください:どれほど多くのフォークが存在しても、それが"Java"と呼ばれ、コーヒーカップのトレードマークがついていない限り、それらはJavaではありません。Javaと呼ばれて、コーヒーカップのトレードマークがついていたら、それはJavaであり、互換性があるということです。そして、Sunは必要とあれば法律に訴えてでも、そのことを強制するでしょう。かつてそうしたように、これからもそうするということです。

GoogleはJava TCKを実行するためのライセンスに同意できなかったので、別の道を選択したのだ。つまり、フォークを作ってそれをJavaとも呼ばず、互換性があるとも言わなかったということだ。

Oracleの唯一の打開策は、米国特許商標局が5966702の特許権を再承認することだ。

この記事に星をつける

おすすめ度
スタイル

BT