ドジっ子Watcher
「スーパードジっ子Company」の更新情報、ならびに自分が書きたいことなんでも。
201710<<123456789101112131415161718192021222324252627282930>>201712
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/--(--) --:--:--| スポンサー広告| コメント:- ブックマークに追加する
 以前Geekなぺーじの「無断リンクを法的に制限する方法?」という記事に対し「リンクは『言語・解法・規約』に該当するから(たとえ著作物を含んでいても)保護されない」とコメントしたことがある。それに対して反論しているブログ(徒然なるままに。)を見つけたので反論することにする。
 そのブログ曰く「無断リンクは防げないが、ディープリンクは防げるかもしれない。」とのことである。しかし私はその意見に反対である。以下にその理由を述べる。
 まず私の意見だが、「HTMLで書かれたページはプログラムであり、URLは『言語・解法・規約』に該当するので、たとえ内部に著作物を含んでいても(URLとして使用する限り)保護されない」ということである。従って、

1)HTMLで書かれたページはプログラムである
2)URLは「言語・解法・規約」に該当する

を証明すればいいわけで、以下にそれを証明することにする。

無断リンクは防げないが、ディープリンクは防げるかもしれない。
引用元の短歌URLの話では、コメントした者によれば
「言語・解法・規約」ではないかという見方を出しているが
それはあくまでも「プログラム」の話である。(*2)
URL自体はプログラムではないし、もちろんHTMLもプログラムではない。
念のために書いておくが、HTMLの記述では『アルゴリズム』が発生しないからだ。
HTMLというマークアップ言語を理解してレンダリングなりなんなりの処理がアルゴリズムだ。
 これは間違い。そもそも「プログラム」とは何であるかは著作権法に書いてある。以下に引用
第二条 この法律において、次の各号に掲げる用語の意義は、当該各号に定めるところによる。
十の二 プログラム 電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものとして表現したものをいう。
 当然ながら、HTML言語はブラウザが解釈し、画面表示という「一の結果」を出すものであることは議論するまでも無い。で、ここで電子計算機とはPC自体のことであってブラウザは「電子計算機」では無いから該当しないという解釈をする人もいるだろうが間違い。例えばBASIC言語において「BASICインタプリタは『電子計算機』ではないからBASICはプログラムではない」と言っているようなものである。ということで、PCで実行されるソフトウェアで実行される言語もプログラムであることは疑いようは無い。
 さてここで、元ブログではこのように述べられている。
念のために書いておくが、HTMLの記述では『アルゴリズム』が発生しないからだ。
 はたしてそうかな? 法律の定義に立ち戻ってみよう。
十の二 プログラム 電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものとして表現したものをいう。
「電子計算機を機能させて」
  →電子計算機で実行されるソフトであるブラウザを機能させているので該当。
「一の結果を得ることができるように」
  →その結果、特定の画面が表示されているので該当。
「これに対する指令を組み合わせたものとして」
  →例えば<img>タグはその場所に指定URLの画像を読み込むための指令であり、HTMLはそれらを組み合わせているから該当。
「表現したものをいう。」
  →それを実現するために作っているわけだから該当。

 ということで、めでたくHTMLは著作権法に定められているところのプログラムであることが証明されたわけである。アルゴリズムがどうこうというのは著作権法に書かれてないわけであるから、それを以ってプログラムではないということ自体が間違っている。

 ついでながら、URLそのものがプログラムに該当するかを検討してみる。これも実は該当する可能性があるのである。

「電子計算機を機能させて」
  →URLは電子計算機に対して指示し、特定のファイルに対してアクセスさせるものであるから該当。
「一の結果を得ることができるように」
  →その結果、そのファイルの内容を取得できるわけだから該当。
「これに対する指令を組み合わせたものとして」
  →例えばhttp://www.hogehoge.jp/abcdefg/chosaku.htmlというURLの場合、http: はHTTPプロトコルでアクセスするための指令、www.hogehoge.jpはサーバーを指定するための指令、abcdefgはディレクトリを指定するための指令、chosaku.htmlはファイルを指定するための指令。それを/で組み合わせているわけだから該当。
「表現したものをいう。」
  →その結果できあがったものがそのURLだから該当。

 ということで、URLはプログラムであるという証明終わり。

 さて、HTMLがプログラム(の著作物)に該当することは証明されたが、URLが「言語・解法・規約」に該当するか? ということについて検討することにする。
3 第一項第九号に掲げる著作物に対するこの法律による保護は、その著作物を作成するために用いるプログラム言語、規約及び解法に及ばない。この場合において、これらの用語の意義は、次の各号に定めるところによる。
一 プログラム言語 プログラムを表現する手段としての文字その他の記号及びその体系をいう。
ニ 規約 特定のプログラムにおける前号のプログラム言語の用法についての特別の約束をいう。
三 解法 プログラムにおける電子計算機に対する指令の組合せの方法をいう。
 もしURLがこれらに該当するならば、たとえURL内に著作物たる文字列が含まれていたとしても保護対象とはならないわけだが、はたしてURLの文字列は

「言語」か?
  →言語というのはHTMLのようなプログラム作成体系のことであり、URLはそれを構成する一部である。=該当の可能性あり。ただし「言語」そのものでは無いので微妙。
「規約」か?
  →そのページを呼び出すために必ず必要な文字列であり、エンコードしてもその本質は変わらない。=該当と思われる。
「解法」か?
  →そのページを呼び出すための方法はほぼそれのみである。→該当の可能性あり。

 と書き連ねてきたが、どれにも該当する可能性はあるものの一番可能性が高いのは「規約」であろう。従ってそのURLを使う、またそれを使わなければならないことに合理性があるので(もちろんそのファイルをアクセスするための手段としての合理性であり、そのファイルをアクセスすることそのものについての合理性では無い)そのURLは著作権法で保護されない=誰でも自由に使うことができるということになる。
 念のため申し添えておくが、許可無く使用できるのはあくまでURLとして、つまりそのページを表示するための指令として使用する場合などに限られ、それを読ませる等の目的で使用する場合は内部に含まれる著作物の著作権に縛られるのは言うまでも無い。

※2007/07/03追記 以下の引用は「変数、条件分岐、反復の3つのいずれの要素を表現する方法でも欠けていれば、それはプログラム言語とは言えない」の間違いだということで、以下の突っ込みは撤回することにする。またこの記事に対する反論があったようなので、再度別記事にて反論することにする(この追記をしている時点でトラックバックは無し)。
HTMLはプログラムか否か
※2007/07/05追記 それに対する私の再反論→URLに著作物 その2
※2007/07/10追記 財団法人 ソフトウェア情報センターによると、WebページのHTMLで記述した部分はプログラム著作物として登録できるとのこと。

http://www.softic.or.jp/touroku/faq.html#Q18

Q18 ホームページは、プログラム著作物として登録できますか。

A18 ホームページの画面等をプログラム著作物として登録することはできませんが、HTMLで記述した部分については、プログラム著作物として登録できます。画面等それ以外の著作物については、文化庁著作権課への申請になりますので、下記にお問い合わせ下さい。
 プログラム著作部として登録できる=プログラム著作物である、と見なせるかについて若干疑問は残るものの一応の根拠になりそう(この部分はいずれ別記事に移す予定)。

 最後になるが、もう1つ突っ込みを入れておこう。
『変数、条件分岐、反復の3つのいずれでも欠ければ、それはプログラムとは言えない』
 C言語を勉強したことがある人は覚えているだろうが、最初に習うプログラムはこれである。

printf("Hello,World!");

 少し考えてみれば(考えなくても)わかるだろうが、このプログラムには変数・条件分岐・反復のいずれの要素も含まれていない。もちろん「printfの内部に含まれてるだろ」という突っ込みは無し。それを言うならHTMLだって「ブラウザの内部プログラムには含まれている」のだから。


おまけ
 向こうのコメント欄に printf("Hello,World!"); だけではプログラムとして成り立ってないではないかという突っ込みもあった。ということでプログラムとして成り立つ形にしておくことにする(ちゃんと引数を受け取れとか値を返さないのは良くないとか突っ込みもあるかもしれないが)。

main()
{
    printf("Hello,World!");
}
スポンサーサイト

テーマ:インターネット - ジャンル:コンピュータ

この記事へのコメント
コメントを投稿する(記事に関係無いコメントは荒らしとみなし削除・アク禁とします)
管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
ブクマコメント  はてな:  Buzzurl:  livedoor:
copyright © 2004-2005 Powered By FC2ブログ allrights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。