一文深入淺出理解國產開源木蘭許可系列協定

2022-07-21 09:00:27

伴隨著國際形式的變遷,越來越多組織申明將遵循美國出口管制法律的約束,並且蔓延到了開源領域;關於國內開源生態如何自立,做到在逼不得已無法與國際接軌的情況下能夠健康發展的措施也被提上議程,木蘭系列許可證系列由此誕生。木蘭系列許可證系列(包含「木蘭寬鬆許可證」和「木蘭公共許可證」等),均由北京大學作為牽頭單位,依託全國信標委雲端計算標準工作組和中國開源雲聯盟,聯合開源生態圈產學研優勢團隊和個體、尤其是開源法務和律師,起草、修訂並行布。其中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中的分發限制:

您可以將您接收到的「貢獻」或您的「衍生作品」以源程式形式或可執行形式重新「分發」,但必須滿足下列條件:

  1. 您必須向接收者提供「本許可證」的副本,並保留「貢獻」中的版權、商標、專利及免責宣告;並且,
  2. 如果您「分發」您接收到的 「貢獻」,您必須使用「本許可證」提供該「貢獻」的原始碼副本;如果您 「分發」您的「衍生作品」,您必須:
  • 隨「衍生作品」提供使用「本許可證」「分發」的您的「衍生作品」的「對應原始碼」。如果您通過下載連結提供前述「對應原始碼」,則您應將下載連結地址置於「衍生作品」或其隨附檔案中的明顯位置,有效期自該「衍生作品」「分發」之日起不少於三年,並確保接收者可以獲得「對應原始碼」;或者,
  • 隨「衍生作品」向接收者提供一個書面要約,表明您願意提供根據「本許可證」「分發」的您「衍生作品」的「對應原始碼」。該書面要約應置於「衍生作品」中的明顯位置,並確保接收者根據書面要約可獲取「對應原始碼」的時間從您接到該請求之日起不得超過三個月,且有效期自該「衍生作品」「分發」之日起不少於三年。

協定中還指出了例外情況

  1. 如果您將「貢獻」與採用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處理器)選擇協定系列和版本時的分析和選擇,非常值得參考,原文請參考這裡

為何值得參考

  1. 香山團隊當時邀請到北京大學周明輝教授為帶來了主題為《開源許可證概覽》的講座,周教授就開源許可證(LICENSE)的內容框架、使用案例、木蘭開源許可證、如何選擇開源許可證等問題與香山團隊進行了深入交流。
  2. 在對木蘭公共版的傳染性問題做了充分的分析。
  3. 開源專案還涉及到硬體部分,硬體和軟體有很大的差別,硬體的專利約束要比軟體強得多。香山團隊為香山開源社群建設做了很多的準備,包括正在與專業的律師一起設計、制定智慧財產權的共用方案。

關於如何使用木蘭-白玉蘭開放資料協定的說明?

這塊內容說明,來源於木蘭-白玉蘭開放資料協定的說明

使用木蘭-白玉蘭開放資料協定分三步走:

  1. 根據你所釋出資料的情況選用正確的協定,和組合條件:
    a. 你的資料集中是否存在組合第三方已有相關授權協定的資料?如是,請選用 MBODL(scheme-only)-1.0,並基於此疊加條件
    b. 你希望第三方在使用你資料時,對你署名致謝嗎?如是,請選用 MBODL-BY 協定,並基於此進一步疊加條件
    c. 你希望限制第三方非商業使用嗎?如是,請選用 MBODL- NC 協定,並基於此進一步疊加條件
    d. 你希望第三方在基於你資料集釋出衍生資料時,採用相同協定嗎?如是,請選用 MBODL-SA 協定,並基於此進一步疊加條件
    e. 你希望第三方僅計算使用資料嗎?如是,請選用 MBODL-CU,並基於此進一步疊加條件

  2. 確定最終的協定組合形態,比如你同時選用了署名、非商業限定,則你得到的協定最終版本應該寫作 MBODL-BY-NC 1.0

  3. 在顯示位置及資料檔案中,加入協定使用文字:

「該專案下的資料授權在木蘭-白玉蘭開放資料協定(MBODL-XX-YY)1.0 協定之下,瞭解詳情請存取 https://github.com/Bai-Yu-Lan/Mulan-Baiyulan-Data-License」

  1. 如果你選用了 BY 署名,可在上述協定條款處,附上你的署名要求,如:

「你應當在基於此資料的成果中,包含如下格式的署名致謝:感謝 XXXXX 的 XXXXX 資料集 或 本專案/論文所使用資料來自 XXXXX 的 XXXXXX 資料集」

參考資料