Hi Terin,

On the surface the following appears to be syntactically convenient:
      license-expression = 1*1(simple-expression / compound-expression / "NONE" 
/ "NOASSERTION")

but semantically incorrect. Let me try to explain using a database data field 
analogy. 

NONE and NOASSERTION are defined at the SPDX document field level and even have 
different semantic values with respect to different fields. SPDX fields can 
have several different types assigned which is analogous to a database field. 
For example, a database field may contain values of *type* Character, Integer, 
Float, Boolean, Date and so forth. A database field can also contain the 
special value NULL, which does not belong to a specific data type, but instead 
represents a special field value (NULL = missing unknown data). NONE and 
NOASSERTION are analogous to NULL, where a license expression is analogous to a 
type such as  Character, Integer, Float, Boolean, Date and so forth.   

A license expression represents the licensing terms of a piece of software 
(source or binary). In less precise terms, it represents the distribution 
obligations for a software component. NONE and NOASSERTION do not semantically 
represent that.  To include NONE and NOASSERTION as validate license 
expressions is analogous to adding NULL to a database type which would be 
semantically awkward. 

In summary, on the surface the following  appear syntactically convenient:
   license-expression = 1*1(simple-expression / compound-expression / "NONE" / 
"NOASSERTION")

But semantically it is not correct, and therefore, NONE or NOASSERTION should 
not be included in the ABNF definition for a license expression.

At least that is one perspective. 

Best,
- Mark

Mark Gisi | Wind River | Director, IP & Open Source 
Tel (510) 749-2016 | Fax (510) 749-4552


-----Original Message-----
From: [email protected] [mailto:[email protected]] On 
Behalf Of Terin Stock
Sent: Thursday, June 11, 2015 9:21 AM
To: Kate Stewart
Cc: [email protected]
Subject: Re: Exclusion of NONE and NOASSERTION from ABNF

Kate:

I'm unsure of any use case where you would want to mix NONE or NOASSERTION with 
either simple-expression or compound-expression in the same package. You may 
however want to use these strings when packaging code that has no license or 
where you are unsure of the license.

In ABNF speak was thinking more along the lines of

license-expression = 1*1(simple-expression / compound-expression / "NONE" / 
"NOASSERTION")
--
#Terin Stock


On Thu, Jun 11, 2015 at 9:07 AM, Kate Stewart <[email protected]> 
wrote:
> Hi Terin,
>
> On Thu, Jun 11, 2015 at 10:52 AM, Terin Stock <[email protected]> wrote:
>>
>> The ABNF in Appendix IV of the 2.0 version of the specification 
>> allows for short form identifiers, LicenseRef values or combinations 
>> to form a license-expression. However the values "NONE" and 
>> "NOASSERTION" are not valid in a license expression, despite their 
>> useful and defined meaning in the specification.
>>
>> There are tools that validate their license fields using a 
>> license-expression (two such tools being the package managers npm and 
>> composer, in JavaScript and PHP, respectfully), making the values 
>> "NONE" and "NOASSERTION" invalid.
>>
>> Are these two values excluded from the ABNF on purpose?
>
>
> Can you give us a real life use case where either "NONE" or "NOASSERTION"
> should be used in combination with other licenses?
>
> If there's a compelling use case as to why it should be allowed, that 
> can't be expressed another way, we can certainly revisit adding it to 
> the specification if the folk on the legal team agree.
>
> Thanks,  Kate
>
_______________________________________________
Spdx mailing list
[email protected]
https://lists.spdx.org/mailman/listinfo/spdx
_______________________________________________
Spdx mailing list
[email protected]
https://lists.spdx.org/mailman/listinfo/spdx

Reply via email to