都元ダイスケ IT-PRESS このページをアンテナに追加 RSSフィード

最近は会社ブログしか書いてません。

2008-01-05

[]具体的に色々なライセンスを考えてみる。

制限が緩いと思われる順に。あと、下記内容は日本語訳を読み取って、同時通訳のようにまとめただけです。うまく読み取れていない部分も多いと思う。内容の正確さはかなり低いと思ってください。

参考:http://opentechpress.jp/docs/licenses/

パブリックドメインを考えてみる。

パブリックドメインとは、作者が著作権を完全に「公衆(≒全ての人)」に譲渡し、放棄した状態。正確には「ライセンス」ではない。誰もが「自分の物と同じように使用できる状態」。

日本では、著作人格権を放棄できないので、日本法の上では「パブリックドメイン」という状態はあり得ない、というのが一般的な解釈。ただ、人格権を行使しないと宣言することによって、擬似的なパブリックドメイン状態を作り出すことはできると思う。

NYSLを見てみる。

  • 複製
    • なし(以下、無条件の場合は省略する)
  • 再配布
  • 改変
  • 改変物の頒布(有償・無償問わず)

日本において実現できない「パブリックドメイン」を擬似的に表現。実質的にPDと同じ。

MITライセンスを見てみる。

  • 使用
  • 複製
  • 再配布(販売可能)
  • 改変(結合)
  • 改変物の頒布(有償・無償問わず)

修正BSDライセンスを見てみる。

  • 使用(use)
  • 再配布(redistribution)
    • 原著作者の著作権を表示する
    • 本条件書を含める
    • 保証の否認声明を含める
    • 派生物の宣伝目的で原著作者名を使用してはならない。

著作権は法律によって保証されるもの。よくあるライセンスは米国法に準拠しており、それを日本法で解釈しようとする時点で、微妙な判断を迫られる事が多い。

ここで「使用」を許可されているのだが、使用は日本法上では元から自由であるはず。これは、プログラムの使用にあたって必要となるインストール(=複製=利用)を許可しているのか、それとも米国法では使用も制限されているのか…。わからない。

っつーか、そもそも「再配布および使用」が認められているけど、二次著作物の創造は認められているのか?(一般的には、認められているとして扱われているので、認められているのであろう。) それが「使用」なのか? つまり「利用」の事なのか? 誤訳? というか日本人でさえ使用と利用の区別できてないもんねぇー。ひー。

という「単語の解釈」の問題に入り込んできます。どうなんだ、これ。

Apache Licence v2を見てみる。

  • 実行
  • 複製
  • 頒布(販売可能)
    • 原著作者の著作権を表示する
    • 本条件書を含める
  • 改変
  • 改変物の頒布(修正物に自らの著作権表示を追加可能・全体のライセンスは勝手に定めてよい)
    • LICENSEファイルを提供する(オリジナル部分に関するライセンスとして)
    • 変更した事実を告示
    • LICENSEファイルの中身に「Copyright [yyyy] [著作権所有者の名前]」をつける

Common Public License v1を見てみる。

GPLv2を見てみる。

  • (実行)*1
  • 複製
  • 頒布(販売可能)
    • 原著作者の著作権を表示する
    • 本条件書を含める
    • 保証の否認声明を含める
  • 改変
  • 改変物の頒布(有償・無償問わず)(静的・動的を問わずリンクは派生プログラム扱い)

他のライセンスも同様に見てみたいのだが、いかんせん長いw

[]著作権プログラムに限定して考えてみる。

結論も何もなく、今まで学んだ事の一部をつらつらと書いてみる。

作者が著作物を創造した瞬間、作者に著作権が発生する。

この時点では、著作物の使用は誰でも自由。利用することができるのは、著作権を持つ作者のみ。つまり、著作権とは「作品を利用する権利」。

そんな訳で、本を読んだり音楽を聴いたりする行為(使用)には権利は不要であるが、プログラムの実行(使用)に関しては、実行するにあたりインストールHDDへの複製)やロード(メモリへの複製)*2、つまり「利用」が必要になる為、実行する場合は複製権(の一部)が必要になる?

その「著作権」は大きく、著作人格権と著作財産権に分けられる。

  • 著作人格権:日本法上では、放棄・譲渡できない。
    • 公表権
    • 氏名表示権
    • 同一性保持件
  • 著作財産権:放棄・譲渡可能。

これらの権利は、創造の時点で作者がごっそり握っている。というわけで、著作物の使用は誰でも可能で、著作物の利用が作者に限られている。

そこで第三者に対してライセンスを発行する。

作者は、契約(民法)によって、第三者に著作財産権を譲渡したり、使用の制限する事ができる*3。ただ、前述の通り著作人格権は放棄・譲渡できないので「不行使宣言」をすることにより、第三者が安心して利用できるようになる。

  • 無条件で全ての著作財産権(一部または全部)の行使を認める。
    • 全ての著作財産権を好きに使っていいよ → NYSL
  • 条件付きで、著作財産権(一部または全部)の行使を認める。
    • 「無保証」であることの明記と著作権表示さえしてくれれば、頒布権を使っていいよ → 修正BSD
  • 使用の自由を制限する事と引き替えに、一部の著作財産権の行使を認める。

つまり、ライセンス契約は、第三者が使用・利用できる範囲を変える働きがある。という訳で、ライセンスは下記2項目の集合体と考える事ができる。

  • 第三者に認める「利用」行為の内容(どの権利をどの範囲で認めるか)
    • 上記行為を認める代りに、従わなくてはならない条件(1)
    • 上記行為を認める代りに、従わなくてはならない条件(2) …

*1:明示的に許可されていないけど、何らかの理由でOKなはず。

*2プログラム等の実行時におけるRAMへの読み込みは著作権法上の複製には当たらないというのが日本における一般的な解釈。しかし、複製に当たるとするのがむしろ世界的には主流。ただ、適法な所有者によるそのような行為はプログラムの使用に必要な場合は許諾を要しないとする。参考:http://www.wincons.or.jp/view/vol23/page8.html

*3:「使用」の制限、というのがポイント。本来自由に使用できるはずの部分を制限する事と引き替えに、「利用」を認めることができたりする。「利用」に関しては制限するのではなく、認めなければ制限されっぱなしになる。はず。

2008-01-04

[]へっへーんだ。

煮るなり焼くなり好きにして下さい。つか、調理してください…。

というわけで、もー煮詰まったからCodeReposに投げちゃったよーだ(半分ヤケ)。

設計からして甘々なハズなので、直してください…。煮詰まったので、閃くか、動きがあるまで放置っぽいですよ。

http://svn.coderepos.org/share/lang/java/misc/license-simulator

[]プログラム化が難しい

あーー、ちょっと無理っぽ感が漂ってきた。非常に悔しい。法律ってのは、なんでこう難しいんだ…。

意外に☆が集まったのは嬉しかったが、出来ないんじゃしょーがねーじゃん、俺。コミットしたら誰かヘルプ入れてくれますかw

追記

なんか、このプログラム化を考えているウチに、自分だけライセンスに明るくなってしまった。周囲の人にも同様に明るくなってもらえるように、プログラム化して還元できればな、と思っていたのに自己完結気味。俺、ずるーい(笑)

2007-12-27

[]ライセンスシミュレータ

というわけで、ちょっと考えてみた訳だが。現実をオブジェクト指向で落とし込もうとするとハマると聞いたことがあるが、やっぱしなかなか大変なモンですね。

とりあえず、Person(権利主体)、Product(著作物)、License(許諾内容)があればいけるのかな。あと、enum Actionで「活動」を示して…。

// 登場人物
Person author = new Person();
Person user = new Person();

// GPL著作物創造
Product program = author.create(Program.class);
program.setLicense(new GPLv2());

// そのままの形で再配布可能
user.action(Action.DISTRIBUTE, program);

// 派生物の作成
Product derivative = user.createDerivative(Program.class, program);
derivative.setLicense(new ApacheLicense());

// 派生物はApacheLicenseで配布できない(UngrantableExceptionが飛ぶ)
user.action(Action.DISTRIBUTE, derivative);

derivative.setLicense(new GPLv2());

// 派生物はGPLv2で配布できる(例外飛ばず)
user.action(Action.DISTRIBUTE, derivative);

んー? Product#setLicense(License l) よりも、Person#setLicenseTo(Product p, License l) のがいいのか? この辺り、自分のオブジェクト脳の甘いところ(笑)

あー、なんかオモシロイようなオモシロクナイような…。なんかプログラム化してるウチに、自分自身がライセンスを深く理解し出したからなのか。

CodeReposに投げてしまおうかとも思うが、こんなゴミ突っ込むのも気が引けるorz このエントリーに☆がいっぱいついたらCodeReposに突っ込ませてもらおうかなw

2007-12-26

[]ライセンスプログラム

ライセンスってのは、ある意味法典・規約、すなわち code です。そしてプログラムも code。どちらも、あるinputに対して、曖昧な点なくoutputを得られる事を期待されるもの。

我々エンジニアは、後者のcodeを読み書きすることが出来る訳ですが、前者のcode、法律用語には疎く、理解に苦しむケースが多い。じゃあ、ライセンスを後者のcode化することはできないだろうか、なんて思ってみた。

このライセンスが適用されたあるソフトウェア(Object)に対して、こういった事は可能か?こうするとどうなる?という問い合わせをすると、結果を返してくれる。

まぁ、ライセンスは原文が法的効力を持つ物であって、例えば日本語訳しただけでも参考扱いにしかならない訳だが、「参考訳」と共に、そんな「参考プログラム」があっても良いんじゃないかな、と。また、法典codeはプログラムcodeよりも曖昧な点が多く、きちっとしたプログラムcodeに翻訳することは難しいかもしれない。

だけどまぁ、そんな時はひとまず「微妙Exception」を投げ返しても良いではないか。ハッキリしている約束事を確認でき、判断が難しい事柄は「判断が難しい」と知る事が出来るだけでも、有用ではないか。

そんなことをふと考えてみた。もし結果だけでなく、その結論に至った過程を知りたいのであれば、プログラムcodeを(参考までに)読んでみる。そうすれば、理屈を理解する助けにもなると思う。

さーて、出来るかな。挫折するかな(笑)

2007-12-21

[]オープンソースWebサービス提供ビジネス

Webアプリは、Desktopアプリのように配布するケースと、自らがWebアプリを運用してサービスを提供するケースが考えられます。前者を「Webアプリ配布」、後者を「Webサービス提供」と表現することにします。

Windowsタイプ

さて、プロプライエタリなDesktopアプリは、「それ自体の使用権を販売する」というビジネスモデルで成り立って来ました。最近は「ユーザコミュニティを醸成し、有償サポートや書籍販売など」というビジネスモデルもメジャーになってきているかもしれませんが、未だ主たるビジネスは販売なんじゃないかな。

サイボウズOfficeタイプ

そして、プロプライエタリなWebアプリ配布。これもMicrosoft型と同じビジネスモデルが成立します。プロプライエタリな使用権販売ビジネスでは、DesktopもWebも差はありません。

Googleタイプ

次に、プロプライエタリなWebサービス提供というのは、サービス自体を販売する、つまり「使用料を取る」というモデルがあり得ますが、成り立たせるのが容易ではない。というわけで主になっているのは「コミュニティを醸成し、ユーザのアテンションを広告主に売る」というモデル。

Linuxタイプ

そしてオープンなDesktopアプリは、「ユーザコミュニティを醸成し、有償サポートや書籍販売など」のビジネスモデルを中心に据えています。使用権販売はできませんので。

XOOPSタイプ

オープンなWebアプリ配布。これはLinuxタイプと同様のビジネスモデルで動くものです。

??タイプ

さて。今まで見た事がないのだがオープンなWebサービス提供というものを考えてみよう。実は、「今まで見た事がない」が故に、個人的に結構興味があるパターンです。オープンなWebサービス提供って、実はオモシロイんじゃね? なんて事を考えてます。

既にあったりして。てへっ。

まとめ

ソフトウェアに関するビジネスモデルは、大きく下記の4つがあると思います*1

  • 使用・利用権:そのプログラムを使用・利用する権利を販売するビジネスモデル。
  • サポート:有償サポートや関連書籍販売などのビジネスモデル。
  • アテンション:ユーザのアテンションを広告主に販売するビジネスモデル。

そこで、各々のタイプのビジネスモデル可能性を考えてみます。

使用・利用権サポートアテンション
Windows・サイボウズOfficeタイプ
Googleタイプ
Linux・XOOPSタイプ×
??タイプ×
  • 凡例
    • ◎:主たるビジネスモデル
    • ○:売ってる場合もある
    • △:情勢的に困難 or ハイリスク
    • ×:不可能

……いつの間にか、ライセンス研究からビジネスモデル研究に視点がシフトしていることに気づいた。いや、「オープンなWebサービス提供」って、(見たこと)ねぇなぁ、と思って。うん。次から軌道修正する(笑)

*1:他にもあったらご指摘下さい

2007-12-20

[]著作権とアテンション

さて、ここから自分の興味の独断で、Webサービスに絞って考えてみる。

そこで、例えば「Google」「はてな」「Twitter」「Lingr」「mixi」等のWebサービスのコードについて。これらのサービスのコードが公開されていないのは、主に「アドバンテージ」と「秘め事」の問題だと思う。本エントリーでは、さらに「アドバンテージ」面に絞って考えてみる。

これらのソースコードがOSSとして公開されていたら、第三者は同様のサービスを自由に立ち上げる事ができる。等価なサービス(クローン)を作り放題ということになる。しかし、コードは公開されていなくても、ユーザとしてインターフェイスを見る事は出来る為、時間を掛ければクローンを作成することも難しくはない。

しかし、これらのサービスのクローンが大量発生しない理由は「クローンを作っても、時間的な問題で、アテンション*1を得る事が出来ないから」ではなかろうか。そして、そもそもサービスのコードを公開したくないのは、「クローンによりアテンションを奪われてしまうから」ではなかろうか。オリジナルとクローンのどちらがアテンションを得るのか、これは「先に世に出た方」という要素だけだとは言えないが、その要素は大きいのではないか。

この分野では、作者が欲しがっているのは「著作権」ではなく「アテンション」なのだ。

純粋に「知識の共有」という意味合いでコードを公開することには賛成できるが、それによって先発のアドバンテージ、つまりアテンションを失いたくない。

ところで、先日公開されたAGPLv3というライセンスGPLの及ぶ範囲がさらに拡大されたもの、と考えることができる。配布だけではなく、Webアプリケーションとしてサービスを公開することも「利用」と位置付け、その場合にもソースコードの公開と自由利用を要求するライセンスである。GPL系のライセンスは、知識の共有を推し進めるが、オリジナル作者に対するアドバンテージが無い。

以上を踏まえて、「知識の共有」を果たしながら、作者に対して「アテンションを得る」というアドバンテージを残したライセシングというのは不可能だろうか。個人的に、このようなライセンスがあれば、是非採用したいものである。

[]ライセンスの思想

フリーソフトウェア思想

「社会的に有益であれば、人びとがどのような方法でソフトウェアを使うのも自由であるべきです。」(リチャード・ストールマン)

この理屈は、以下の段階を経て導き出されている。

  • ソフトフトウェアは、それを複製したり改変したりするのが物質的なものよりはるかに簡単である。
  • デジタル情報の柔軟性そのものが著作権のような制度にはうまくそぐわない。
  • もしあなたが私の書いたプログラムを実行したり変更したりしても、あなたには直接影響しますが私には間接的にしか影響しない。
  • 結局社会には、自由意志による市民間の協力の精神を促進することが必要。-協力は著作権よりも大事。

このように「自由であるべき」だと思う理由って何だろう。

  • 知識の共有・協力の精神を広める。
  • 車輪の再発明を防ぐ。

ってところでしょうか。

プロプライエタリ思想

では、ソースを公開して、自由に第三者に利用させたくない理由って何だろう。

  • 苦労して産み出した作品を、簡単に第三者にパクられたくない。
  • 「自分だけが自由に利用できる」というアドバンテージを活かしたい。
  • 裏でコソコソやっている「秘め事」を公開したくない。

という点だろうか。つまり、そのソフトウェアをフリーとすると、発明を行ったり、それを事業に結びつける意欲を失い、その結果、発明が社会的に活用されないという考え方。

特許の考え方

仮に、発明者に独占権を認めないとすると、発明が他人に模倣されてしまうために、発明者は発明を秘密にし、その結果、発明が社会的に活用されないことになる。このため、新規で有用な発明を世の中に提供した代償として、一定期間、その発明を排他的に独占する権利を付与するとする説。(公開代償説)

これが一番広く支持された説らしい。

所有権が認められるもの

所有権は主に「価値があるもの」に対して認められて来た。古くから「物質」についての所有権があった。次に「著作物」というものに所有権が認められる。

しかし近年、「物質」「著作物」に続いて、もう一つの「価値があるもの」がクローズアップされてきた。Webサービスであればコミュニティであろう。全く等価なサービス(著作物)が複数あったとしても、ユーザー数が多く、人が集まるサービスが一番の価値を持つ。これをもうちょっと一般化して、今後は「アテンション」(注目)と呼ぶことにする。

現在のところ、この「アテンション」に関して所有権は認められていないと思われる。

2007-12-12

[]具体例

とある人格Aが、著作物であるプログラムPを書く。その瞬間、AにはPに関する著作権が発生し、そのプログラムを自由に使用・利用することができる。

また別の人格Bが、Pを適法に入手する。その時、BはPを使用することができる。これにAの許諾は必要ない。ただし、BはPを利用することはできない。BがPを利用する為には、AによるライセンスLが必要である。

[]ライセンス関係の用語定義

対象

著作物
著作権の対象となる知的財産。ここでは主に「プログラム」の事について議論する。プログラム著作物であることは議論の余地なし?

主体

人格
権利能力(権利・義務の帰属主体となり得る資格)を持つ主体。自然人・法人に分かれる。自然人は生物学的なヒトであり、産まれながらにして権利能力を有する。法人は、法律の規定により「人」として権利能力を付与されたものをいう。この権利能力により、著作権者になりうる。

権利

著作権
知的財産権の一種、著作物の創作者である著作者に保障される権利の総称。著作者人格権と著作財産権に分けられる。
著作者人格権
日本では、著作者個人が専有し、譲渡、相続することができない。
著作財産権
創作の時点で著作者個人が専有するが、譲渡、相続することができる。

ライセンス

ライセンス
権利者が独占する権利の実行を他者に許諾するもの。ライセンスについて契約と言われることが多いが、法律用語としての "license" は、それなしには違法となる行為を許すこと、または、それを証明する書面のことをいいい、契約という形態を採るか否かとは無関係の概念。契約説と不行使宣言説がある。
契約
相対立する意思表示の合致によって成立する法律行為。思いっきり簡単に言えば「約束する」ということ。

使用と利用(違い重要)

使用
ユーザーが入手したプログラムを実行する事。本来、プログラム著作物については、著作権の内容にはプログラムの実行は含まれていない。したがって、ユーザーがプログラムの複製物を適法に入手した場合、プログラムの実行自体には別途著作権者からライセンスを得る必要はない。

本を読む、音楽を聴く、映画を観るソフトウェア実行することは、著作物使用にあたります。

利用
ソフトウェアのソースを含めた複製権、翻案権、公衆送信権など、著作権者に認められる権利を行使する事。これらの権利は、最初は著作者のみに帰属するもので、著作権者から許諾を受けて初めて第三者が行使することができる。

本を印刷・出版・修正する、音楽を録音・演奏・修正する、映画を配給・上映・修正する、ソフトウェア複製・配布・改変することは、著作物利用にあたります。