THE SPDX WIKI IS NO LONGER ACTIVE. ALL CONTENT HAS BEEN MOVED TO https://github.com/spdx
Difference between revisions of "Technical Team/Proposals/2010-10-21/Composite licensing"
Line 27: | Line 27: | ||
disjunctive groupings.</p><p> | disjunctive groupings.</p><p> | ||
− | The definition of `License` would not change. | + | The definition of `License` would not change. The `DeclaredLicense` and `DetectedLicense` properties would be |
− | + | ||
− | + | ||
− | + | ||
− | The `DeclaredLicense` and `DetectedLicense` properties would be | + | |
updated to allow their value to be a `License`, | updated to allow their value to be a `License`, | ||
`ConjunctiveLicenseSet`, or `DisjunctiveLicenseSet`. | `ConjunctiveLicenseSet`, or `DisjunctiveLicenseSet`. | ||
Line 39: | Line 35: | ||
<h4>Single license</h4> | <h4>Single license</h4> | ||
− | <pre><code> | + | <pre><code><br /> <Package><br /> <DeclaredLicense><br /> <rdf:Description rdf:about="license:GPL" /><br /> </DeclaredLicense><br /> </Package><br /></code></pre> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </code></pre> | + | |
<h4>Disjunctive licenses</h4> | <h4>Disjunctive licenses</h4> | ||
− | <pre><code> | + | <pre><code><br /> <Package><br /> <DeclaredLicense><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /></code></pre> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </code></pre> | + | |
<h4>Complex disjunctive licenses</h4> | <h4>Complex disjunctive licenses</h4> | ||
− | <pre><code> | + | <pre><code><br /> <Package><br /> <DeclaredLicense><br /> <DisjuntiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:Apache" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </licenses><br /> </DisjuntiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /><br /></code></pre> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | </code></pre> | + |
Revision as of 20:42, 21 October 2010
Contents
Status
Draft
Issue
There are some licensing scenarios which are not expressable in SPDX. For example, there is currently no way to express that a file can be used under the licenses A and B or A and C.
Use cases
The set of use cases we need to be able to describe in SPDX is:
1. a single license 2. choice of one from multiple single licenses 3. multiple licenses (conjunctive) 4. choice of one from multiple conjunctive license sets
Proposal
Introduce a license set concept to cover all these use cases. Specifically, a `ConjunctiveLicenseSet` and a `DisjunctiveLicenseSet`. Members of these types of sets would be of type `License`, `ConjunctiveLicenseSet` or `DisjunctiveLicenseSet`. This would allow composing licensing information in arbitrary conjunctive and disjunctive groupings.
The definition of `License` would not change. The `DeclaredLicense` and `DetectedLicense` properties would be updated to allow their value to be a `License`, `ConjunctiveLicenseSet`, or `DisjunctiveLicenseSet`.
Examples
Single license
<code><br /> <Package><br /> <DeclaredLicense><br /> <rdf:Description rdf:about="license:GPL" /><br /> </DeclaredLicense><br /> </Package><br /></code>
Disjunctive licenses
<code><br /> <Package><br /> <DeclaredLicense><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /></code>
Complex disjunctive licenses
<code><br /> <Package><br /> <DeclaredLicense><br /> <DisjuntiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:Apache" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </licenses><br /> </DisjuntiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /><br /></code>