一文深入淺出理解國產開源木蘭許可系列協議
伴隨著國際形式的變遷,越來越多組織申明將遵循美國出口管制法律的約束,並且蔓延到了開源領域;關於中國開源生態如何自立,做到在逼不得已無法與國際接軌的情況下能夠健康發展的措施也被提上議程,木蘭系列許可證系列由此誕生。木蘭系列許可證系列(包含「木蘭寬鬆許可證」和「木蘭公共許可證」等),均由北京大學作為牽頭單位,依託全國信標委雲計算標準工作組和中國開源雲聯盟,聯合開源生態圈產學研優勢團隊和個體、尤其是開源法務和律師,起草、修訂並發布。其中Mulan PSL 是中國首個被OSI認定的「國產開源軟體協議。@pdai
什麼是木蘭許可證
木蘭系列許可證包含「木蘭寬鬆許可證」和「木蘭公共許可證」(後續可能還有更多),均由北京大學作為牽頭單位,依託全國信標委雲計算標準工作組和中國開源雲聯盟,聯合開源生態圈產學研優勢團隊和個體、尤其是開源法務和律師,起草、修訂並發布。
- 木蘭開源許可證第一個版本於 2019年8月5日發布,第二版本於 2020年1月發布。
- 2020年 2 月 14 日,開源促進會(OSI,Open Source Initiative)批准了來自中國的木蘭開源許可證第二版(MulanPSL v2),木蘭許可正式成為一個國際化開源軟體許可證(或稱「協議」)。這意味著中國現在擁有了具有國際通用性、可被任一國際開源基金會或開源社區支援採用,並為任一開源項目提供服務的開源許可證。
PS: OSI 是定義「開源」、制定開源協議標準的組織,符合 OSI 開源定義的許可證被認定為開源許可證,目前其批准的開源軟體協議有 100 多個,比如目前比較流行的 MIT、Apache-2.0 與 BSD 3-Clause 等都在 OSI 認定的開源許可證列表中。而 Mulan PSL 是中國首個被OSI認定的「國產開源軟體協議」。
木蘭許可證誕生的背景
最重要的是所處的國際形勢,主要關注當時兩大引爆事件:
-
全球最大的開源軟體基金會 ASF(Apache 軟體基金會)的管理辦法中明確說明其遵循美國出口法律,所以它旗下的所有項目亦受到美國出口法律的管制。而 ASF 旗下開源項目的名單中有許多耳熟能詳的項目,比如 Kafka、Solr、Hadoop 與 Spark 等;
-
全球最大源碼託管平台 GitHub 表示:GitHub.com、GitHub Enterprise Server 以及您上傳到任一產品的資訊可能受美國出口管制法律的約束,包括美國出口管理條例(EAR)。並且實際上其已經對古巴與朝鮮等地實施限制。
消息一出,國際中國開源界議論紛紛,關於開源生態如何自立,做到在逼不得已無法與國際接軌的情況下能夠健康發展的措施也被提上議程。
於是我們看到華為在加快國產開源作業系統鴻蒙的研發,看到中國第一個開源軟體基金會在緊急籌備,也看到了第一個國產開源協議木蘭的誕生。
木蘭許可證的類型和版本
木蘭系列許可證實際上在設計的時候是期望做一個系列,目前木蘭許可證族已研製發布了三個許可證:木蘭寬鬆許可證(MulanPSL v1;MulanPSL v2)、木蘭公共許可證(MulanPubL v1;MulanPubL v2)、木蘭-白玉蘭開放數據許可協議(MBODL v1),分別面向開源軟體寬鬆型、強著作權型以及開放數據集使用等三類不同的開源應用需求。同時木蘭開放作品許可證(Mulan Open Works License, Mulan OWL)處於待發布狀態,後續可能會推出更多的協議來滿足特定的使用場景。
木蘭寬鬆許可協議
木蘭寬鬆許可證(MulanPSL), 這裡是協議的全文。
MulanPSL v1,具有以下特點:
- 許可證內容以中英文雙語表述,中英文版本具有同等法律效力,方便更多的開源參與者閱讀使用,簡化了中國使用者進行法律解釋時的複雜度。
- 許可證明確授予用戶永久性、全球性、免費的、非獨佔的、不可撤銷的版權和專利許可,並針對目前專利聯盟存在的互訴漏洞問題,明確+ 規定禁止「貢獻者」或「關聯實體」直接或間接地(通過代理、專利被許可人或受讓人)進行專利訴訟或其他維權行動,否則終止專利授權。
- 許可證明確不提供對「貢獻者」的商品名稱、商標、服務標誌等的商標許可,保護「貢獻者」的切身利益。
- 許可證經技術專家和法律專家共同修訂,在明確合約雙方行為約束的前提下儘可能地精簡條款、優化表述,降低產生法律糾紛的風險。
MulanPSL v2 對 MulanPSL v1 的具體改進:
- 增加「語言」條款,聲明了「本許可證」以中英文雙語表述,中英文版本具有同等法律效力。如果中英文版本任何衝突不一致,以中文版為準。
- 為適應一些國家對擔保免責條款的顯著性要求,MulanPSL v2 在英文版中採用大寫突顯擔保免責條款。
- 為了減少英文表述產生的歧義問題和語言習慣問題,MulanPSL v2 修訂了「軟體」(Software)和「關聯實體」(Affiliates)的定義,以及「授予專利許可」(Grant of Patent License)條款的相關表述。
木蘭公共許可協議
木蘭公共許可證(MulanPubL), 這裡是協議的全文。
木蘭公共版和寬鬆版最大的區別在於其傳染性,即他人使用了程式碼之後在特定情況下也必須採用木蘭公共版進行開源。我們來看下v2中的分發限制:
您可以將您接收到的「貢獻」或您的「衍生作品」以源程式形式或可執行形式重新「分發」,但必須滿足下列條件:
- 您必須向接收者提供「本許可證」的副本,並保留「貢獻」中的版權、商標、專利及免責聲明;並且,
- 如果您「分發」您接收到的 「貢獻」,您必須使用「本許可證」提供該「貢獻」的源程式碼副本;如果您 「分發」您的「衍生作品」,您必須:
- 隨「衍生作品」提供使用「本許可證」「分發」的您的「衍生作品」的「對應源程式碼」。如果您通過下載鏈接提供前述「對應源程式碼」,則您應將下載鏈接地址置於「衍生作品」或其隨附文檔中的明顯位置,有效期自該「衍生作品」「分發」之日起不少於三年,並確保接收者可以獲得「對應源程式碼」;或者,
- 隨「衍生作品」向接收者提供一個書面要約,表明您願意提供根據「本許可證」「分發」的您「衍生作品」的「對應源程式碼」。該書面要約應置於「衍生作品」中的明顯位置,並確保接收者根據書面要約可獲取「對應源程式碼」的時間從您接到該請求之日起不得超過三個月,且有效期自該「衍生作品」「分發」之日起不少於三年。
協議中還指出了例外情況:
- 如果您將「貢獻」與採用GNU AFFERO GENERAL PUBLIC LICENSE Version 3(以下簡稱「AGPLv3」)或其後續版本的作品結合形成新的「衍生作品」,且根據「AGPLv3」或其後續版本的要求您有義務將新形成的「衍生作品」以「AGPLv3」或其後續版本進行許可的,您可以根據「AGPLv3」或其後續版本進行許可,只要您在「分發」該「衍生作品」的同時向接收者提供「本許可證」的副本,並保留「貢獻」中的版權、商標、專利及免責聲明。但任何「貢獻者」不會因您選擇「AGPLv3」或其後續版本而授予該「衍生作品」的接收者更多權利。
木蘭開放作品許可協議
開放作品許可證是對開放作品的使用、複製、修改和分發等行為進行規範和約束的一種具有法律效力的格式合約,是保護創作者權利、推動開放作品發展的重要支撐;目前根據不同的授權要素及傳播條件,共產生四個許可證。
背景
為滿足在知識共享領域的開源應用,助力營造良好版權氛圍,中國電子技術標準化研究院與國防科技大學聯合組織開展面向開放作品應用領域的許可證編製。木蘭開放作品許可證由國防科技大學牽頭技術研發,依託木蘭開源社區,聯合開放原子開源基金會、華為、思否、Datawhale、北大法學院、上海白玉蘭、開源社等中國開源生態圈產學研各界優勢團隊以及擁有豐富知識產權相關經驗的眾多律師共同起草完成。
當前,開源的理念及其生產方式已延伸到其他類型作品(如書籍、設計等)的創作中,人們越來越多地將自己的作品開放給大眾使用,並允許大眾參與到作品的創作中。在這樣一種共享共創的方式下產生了大量高品質開放作品,相較傳統著作權下保留所有權利的作品,開放作品具有以下三方面的特徵:
- 開放使用。允許作品作者以外的個人或組織通過合理方式自由使用作品或其部分。
- 自由分發。允許作品作者以外的個人或組織通過合理方式自由分發作品或其部分。
- 允許修改。允許作品作者以外的個人或組織通過合理方式修改作品或其部分並再發布。
類似於開源軟體許可證,開放作品許可證是對開放作品的使用、複製、修改和分發等行為進行規範和約束的一種具有法律效力的格式合約,是保護創作者權利、推動開放作品發展的重要支撐。
目前根據不同的授權要素及傳播條件,共產生四個許可證,如下表所示(許可證徵求意見稿請在附件1-4中下載):
相較面向一般作品的公共版權許可證,木蘭開放作品許可證 1.0具有以下特點:
- 許可證面向的對象為開放作品;
- 提供授予專利許可的許可證;
- 針對多版本和多作者作品在署名和分發等方面提供使用規範;
- 根據中國相關法律擬制,兼顧國際通行法律原則與實踐;
- 以中英文雙語表述,中英文版本具有同等法律效力,如果中英文版本存在任何不一致,以中文版為準。
木蘭-白玉蘭開放數據許可協議
木蘭-白玉蘭開放數據許可協議」是由「上海白玉蘭開源開放研究院」在「木蘭開源社區」 框架和精神下所發起的一項研究項目,旨在探索創建一組標準化的、立足中國人工智慧實踐、推動數據要素流通、優化人工智慧發展環境的數據許可協議。這裡是協議的全文。
背景
當前在人工智慧領域尚缺乏切合實際的開放數據許可,使得數據要素的使用和流通仍存在諸多障礙和不確定性,不僅容易產生數據安全及法律方面問題,而且由於對數據本質屬性、存在形態、使用方式等方面仍認識不足,造成數據資源的使用現狀與數據可供挖掘的價值不匹配。為了人工智慧技術和相關數據資源的可持續開發使用,開放數據許可協議的作用愈加凸顯。通過規範數據利益相關方的身份和概念定義,界定數據利益相關方之間對特定數據對象流通條件和方式的各自權責,並儘可能以完全開放的模式引導數據流通,促進數據要素的開放共享與開發利用。
「木蘭-白玉蘭開放數據許可協議」起草說明
這塊內容說明,來源於木蘭-白玉蘭開放數據協議的說明
協議的草擬由「白玉蘭開源」聯合「開放數據中國」完成,過程中我們對:
- 國際通用開放協議如知識共享協議、開放資料庫協議(ODbL)等做了研讀和理解,並將其中的術語、起草策略等加以總結和歸納
- 國際社群人工智慧領域數據流通的授權協議如微軟起草的 O-UDA、C-UDA,Linux Foundation 起草的 Community Data License,Element AI 起草的 Montreal Data License 等做了研讀和理解,並基於 Montreal Data License 的精神,對術語中規定的使用行為做了人工智慧界別的訂製化和細緻化。
- 對中國現行民法典,以及數據安全法草案、個人資訊保護法草案等予以研讀,並借鑒了其中相關的術語定義
考慮到數據要素流通的合規複雜性,當前草擬版本基於如下原則和適用性擬定: - 針對人工智慧訓練數據集的發布擬定適用的協議
- 所發布數據應滿足基本的公開發布、免費發布的前提
- 所發布數據符合國家數據安全的要求,不涉及國家秘密、國家安全、社會公共利益、商業秘密等
- 所發布數據不涉及個人資訊(參照「《個人資訊保護法(草案)》(二次審議稿),個人資訊是以電子或者其他方式記錄的與已識別或者可識別的自然人有關的各種資訊,不包括匿名化處理後的資訊)
考慮到當前人工智慧訓練數據集從權屬角度可分為兩類情況:
- 第一類,數據由數據發布者合法合規所有或具備用益權
- 第二類,數據由數據發布者通過合法合規的方式自第三方處獲取彙編組合而得
因此「木蘭-白玉蘭開放數據許可協議」對上述兩類情況產出了兩組不同起草策略的協議:
第一組,即默認數據由數據發布者合法合規所有或具備處置權
我們借鑒知識共享協議的模式,草擬了一套 4 份協議,即
- MBODL:寬鬆開放協議,適用於最小化限定僅要求註明數據來源的數據發布
- MBODL-NC:非商業使用協議,適用于禁止使用者商業化使用和分享數據及成果
- MBODL-SA:相同方式許可,適用於要求下游傳播數據能夠以相同方式給予許可,但不要求對產出的成果使用協議的傳染性
- MBODL-CU:僅計算使用協議,適用於數據發布方禁止對數據自身的直接使用、展示的情況(如電視台作為數據發布方會希望禁止影片數據本身的播放、拷貝、售賣等,但會允許使用影片數據作為訓練數據訓練影片語義標籤等任務)
上述四個協議,均以 MBODL 為基礎,在「許可限制」小節中予以增加不同的限制而形成。但正如 CC 協議,在這 4 套協議的基礎上,也可再進行許可限制的疊加交叉,形成新的協議,如 MBODL-NC-CU,即規定非商業使用且僅計算使用,又如 MBODL-SA-CU,即規定相同方式授權數據且僅計算使用。
第二組,即數據發布者數據為自第三方合法合規獲取
我們借鑒了 ODbL(開放資料庫協議)的策略,對資料庫/數據集的結構(即數據選取、組織的方式,database scheme)和數據內容予以了拆分授權的方式。此類授權策略僅為實驗性,待進一步回饋確定 1)是否有真實需求 2)是否具備可操作性。
對於上述第二組的情況,我們提供兩個可能的案例展開說明:
案例 1:數據發布者通過 wikipedia 和 flickr 等渠道獲取了各類鳥類的圖片數據,圖片數據各自分別授權在 CC 等開放授權協議下,數據發布者通過選取和組合這些鳥類圖片,添加了自身對鳥類的標籤(鳥類照片對應的鳥類名稱、科目等資訊),最後形成了一個「鳥類圖片訓練數據集」需要授權發布。則在第二組協議的策略下,其將採用「白玉蘭開源開放數據協議」(僅授權結構)+「標註數據」(授權內容-發布者選用新授權)+「各圖片原有協議」(授權內容-依照各自協議)的方式授權發布整個數據集。
案例 2:數據發布者通過授權方式(假設授權允許發布者重新發布影像圖片)從 N 家醫院各自獲取了脫敏後的肺部 CT 影像圖片數據,數據發布者自身投入人力完成了對上述影像數據的肺結節標註。數據發布者希望將影像圖片數據+標註數據組合發布為「肺結節標準訓練數據集」,因此可採用其將採用「木蘭-白玉蘭開放數據許可協議」(僅授權結構)+「標註數據」(授權內容-發布者選用新授權)+「各圖片原有協議」(授權內容-依照各自協議)的方式授權發布整個數據集。
我們基於上述案例的場景描述,草擬了 MBODL(結構內容分離版)協議,作為一個單獨的實驗性協議供各界討論適用性和條款的實踐落地可能。
進一步理解
讓我們通過幾個問題進一步理解木蘭協議系列。
MulanPSL v2 版本通過 OSI 認證? v1 不符合開源定義? 是否對雲有限制?
MulanPSL v2 版本通過 OSI 認證,是否意味著 v1 本身就不符合開源定義,在開源生態中不具有實際意義?
牽頭人周明輝解釋,Mulan PSL v2 與 Mulan PSL v1 本質上沒有區別,Mulan PSL v2 是在 Mulan PSL v1 基礎上的進一步完善。認證過程中,OSI 及社區其他專家並沒有表示 Mulan PSL v1 不符合開源定義,僅對規範語言和部分英文表述問題給出了相關建議。
(v2針對v1的變化點,上文已經有說明)
此外,關於木蘭特性以及 v2 相比 v1 的改進,因為當前開源與雲的爭端不斷(@pdai: 比如ElasticSearch,MongoDB更改開源協議),在去年木蘭 v1 出來的時候就有律師建議可以在協議條款中加上針對雲的一些內容,也拋出了相關問題。
周明輝表示,Mulan PSL 的定位是寬鬆版許可證,對如何「使用、修改、複製、分發」開源軟體沒有額外限制,僅要求保留各類聲明和許可證副本,因此也並未對「雲」做任何限制。同時她也補充到:「今後在制定木蘭系列其它類型的許可證時,我們可能會考慮到『雲』場景。」
與主流許可證的區別?
Mulan PSL v1 & 2 與BSD 3-clause License與Apache License V2.0在聲明義務、專利許可、對用戶專利維許可權制及版權許可上均有差異,在商標許可上無差異,見下表:
與主流許可證的兼容性?
許可證的兼容性評判並無統一標準。從 Mulan PSL v1 的條款及目的出發,Mulan PSL v1 與 BSD 類許可證類似,兼容性很好。
BSD、MIT 類寬鬆許可證兼容 Mulan PSL v2 許可證;Mulan PSL v2 兼容 Apache License v2.0、L/GPLv2、L/GPLv3 等許可證。即,許可在 BSD、MIT 類許可證下的程式碼可以貢獻到 Mulan PSL v2的項目中,許可在 Mulan PSL v2 下的程式碼可以貢獻到 Apache License V2.0、L/GPLv2 或 L/GPLv3 等項目中。
注意,許可證 A 兼容許可證 B(A 許可證是 B 許可證 Compatible)是指,A 授權的作品與 B 授權的作品經過修改或合併,可以使用 B 對作品的整體進行授權。兼容性是有方向的,A 兼容 B,但 B 不一定兼容 A。
如果開源項目希望使用木蘭協議系列,該如何選擇?
如果開源項目希望使用木蘭協議系列,該如何選擇?這裡有一個例子香山團隊在香山開源項目(RISC-V處理器)選擇協議系列和版本時的分析和選擇,非常值得參考,原文請參考這裡。
為何值得參考?
- 香山團隊當時邀請到北京大學周明輝教授為帶來了主題為《開源許可證概覽》的講座,周教授就開源許可證(LICENSE)的內容框架、使用案例、木蘭開源許可證、如何選擇開源許可證等問題與香山團隊進行了深入交流。
- 在對木蘭公共版的傳染性問題做了充分的分析。
- 開源項目還涉及到硬體部分,硬體和軟體有很大的差別,硬體的專利約束要比軟體強得多。香山團隊為香山開源社區建設做了很多的準備,包括正在與專業的律師一起設計、制定知識產權的共享方案。
關於如何使用木蘭-白玉蘭開放數據協議的說明?
這塊內容說明,來源於木蘭-白玉蘭開放數據協議的說明
使用木蘭-白玉蘭開放數據協議分三步走:
-
根據你所發布數據的情況選用正確的協議,和組合條件:
a. 你的數據集中是否存在彙編第三方已有相關授權協議的數據?如是,請選用 MBODL(scheme-only)-1.0,並基於此疊加條件
b. 你希望第三方在使用你數據時,對你署名致謝嗎?如是,請選用 MBODL-BY 協議,並基於此進一步疊加條件
c. 你希望限制第三方非商業使用嗎?如是,請選用 MBODL- NC 協議,並基於此進一步疊加條件
d. 你希望第三方在基於你數據集發布衍生數據時,採用相同協議嗎?如是,請選用 MBODL-SA 協議,並基於此進一步疊加條件
e. 你希望第三方僅計算使用數據嗎?如是,請選用 MBODL-CU,並基於此進一步疊加條件 -
確定最終的協議組合形態,比如你同時選用了署名、非商業限定,則你得到的協議最終版本應該寫作 MBODL-BY-NC 1.0
-
在顯示位置及數據文檔中,加入協議使用文字:
「該項目下的數據授權在木蘭-白玉蘭開放數據協議(MBODL-XX-YY)1.0 協議之下,了解詳情請訪問 //github.com/Bai-Yu-Lan/Mulan-Baiyulan-Data-License」
- 如果你選用了 BY 署名,可在上述協議條款處,附上你的署名要求,如:
「你應當在基於此數據的成果中,包含如下格式的署名致謝:感謝 XXXXX 的 XXXXX 數據集 或 本項目/論文所使用數據來自 XXXXX 的 XXXXXX 數據集」
參考資料
- //license.coscl.org.cn/MulanPubL-2.0/index.html
- //license.coscl.org.cn/MulanPSL2/index.html
- //license.coscl.org.cn/faq.html
- //github.com/Bai-Yu-Lan/Mulan-Baiyulan-Data-License
- //blog.csdn.net/kaiyuanshe/article/details/114859888
- //www.163.com/dy/article/F9M6RV5N0511CUMI.html
- //www.sohu.com/a/429595367_99915568
- 部分內容還整理和參考了周明輝的作為嘉賓的分享的公開資料(周明輝,北大電腦科學與技術系教授,主要研究開源開發方法和技術,目前對開源生態的演變過程非常感興趣。主要涉及的領域包括大數據挖掘、軟體工程與開源數字社會學等)。