https://linen.dev logo
「CC BY 4.0」適用ソースコードから二次利用する際に、どの程度引用すると作者名の記載が必要か
# forum
n
スクリプトではなく著作権の話になります。もし場違いであれば他の場所へ記載を移します。 現在スクリプト技術部にて原則適用されているライセンス「CC BY 4.0」について質問です。 皆様は「CC BY 4.0」を適用したソースコードについて二次利用する際に、 どの程度引用(コピペや模写、参考)すると作者の氏名を記載する必要があると思いますか?  [1]1文字でもコピペor参考したら記載すべき  [2]数行から記載すべき  [3]数十行、関数単位から記載すべき  [4]数百行、複数の関数から記載すべき  [5]正直記載しなくても(されなくても)良い。 リアクションにてお答えいただければと思います。 その他の回答やご意見も、是非返信ください。 現在スクリプト技術部にて、著作権を持つソースコードで主に採用されているライセンス「CC BY 4.0」で守るべき事柄を、 クリエイティブ・コモンズ公式サイト※1から抜粋しました。 「作品を創作した人(著作者)の氏名や作品のタイトルなど、作品に関する情報を表示しなくてはならないことを表します。」 一方、このような判例も存在します。(詳しくはリンク先※2へ飛んでください) この判例を要約した上で説明しているサイト※3には、 「誰が書いても同じような、短く簡単なコードであれば創作性がないため、著作物に該当しないということです。」 と記載されています。 確かにソースコードにも著作権があり、それに「CC BY 4.0」が適用されていれば、引用した作品は作者名を記載しなければなりません。 一方、簡単なコードであれば著作権が無いという判例があり、判例に従うと作者は「CC BY 4.0」を適用しても意味が無いということとなります。 許容範囲が緩いと元の作者への尊敬や見返りが薄れてしまい問題となります。 一方、許容範囲が厳しければ、簡単な構文をコピー&ペーストしたり参考にした程度で作者の名前を記載しなければならず、 最終的に膨大な数の作者をReadmeへ記載しなければならない可能性が高くなります。 良し悪しの線引きが難しく、人によって許容範囲や解釈が異なるため、 認識の違いでトラブルが起こる事を懸念して今回の質問に至りました。 当方は弁護士でも何でもないので、情報が間違っている可能性があります。 もし間違っていれば返信ください。 ※1のリンク先(クリエイティブ・コモンズ公式サイト) : https://creativecommons.jp/faq/#a5 ※2のリンク先(一般社団法人 発明推進協会) : https://www.hanketsu.jiii.or.jp/hanketsu/jsp/hatumeisi/news/200305news.html ※3のリンク先(DOT ENGINNER BLOG) : https://dotengineerblog.net/is-copy-and-paste-safe/
u
これ面白いな、そもそもJavaScriptって言語の性質に触れた方が分かりやすそうだが 俺は2️⃣派だな、というよりは、「関数単位でなくても、処理そのものに独自性がある」なら、その時点で記載すべきだと思います
まず、JavaScriptの他の言語と異なる特性として ①プロトタイプベースのオブジェクト指向言語である :クラスが抽象的でない(最初から中身の入ったクラス = コンストラクタしか作らない)言語 ②関数を第一級オブジェクトとしている 参考: https://tech-blog.optim.co.jp/entry/2021/08/16/100000 以上の内容から鑑みると、「コピペして望ましく動く独立したコードの最小単位は、JSにおいては「関数」が一番多いと考えられる、といえそう 詰まるところ、「著作者が明示されるべきライン」は、少なくとも「関数以上」は絶対だと思っている 関数未満はグレーゾーンってのが個人的見解
ただし、コードの動作そのものがある程度唯一性があり、あらかじめ目的を持って適切にブロック化されたコードで 特にそれらの構造がRTMとかの特別なソフトウェアに最適化されてたコードだとしたら(例:ひーさんのサウンドライブラリの中身とか) それこそ、ifステートメントあたりの引用から、名前は記述すべきなんじゃないの? って気持ち
それこそただのforカウンタ(カウントプラスするだけで返す値も無ければ、とりあえず数えてるだけのカウンタ)とかに著作権主張されても いやそれはデフォルトで色んな言語に載ってる機能だから、お前のものじゃないでしょ。。。とはなる
逆に、forの中身に特別に呼び出すメソッドの構造とかがあって それらの仕組みが何らかの値を返したり、その後のコード動作に強く影響する「ブロック」として設計されてたら それは「目的を持って最適化されたコード」だから、作者のものと言えそうだと思う
h
自分的には、構造や機能の塊(クラスや関数など)をまるまるコピーするレベルなら適用するべきかなと思います。 ただ、コード自体が数行で「誰が書いても結果的にそうなるもの」(強制発光の前後の処理、連結された車両を取得する処理、バージョンチェックなど)に関しては、コードを提供する側がライセンスの適用を強制するのは難しいかなと思います。
u
わかる
そのメソッドしか使えないならそうするしかなくない? って時は仕方ないと思う(特にライブラリ依存のメソッドは)
可能ならどのライブラリに依存してるかは書いた方がいいかもな(どうせ書くなら)
n
ご返信ありがとうございます。 とても参考になります。