Hi Jilayne,
None of my comments or documentation was intended to extend the scope of the
SPDX license markups beyond what we discussed at LinuxCon. Feel free to
propose any language in the template documentation that you feel brings it back
inline with the intended scope.
One important question for you – do you think we need to change any of the
technical aspects of the markup language from the proposal? The reason I ask
is that I am in the middle of writing the tools to translate the markup to text
and webpages and I will have some rework to do if we go a different direction.
Additional (somewhat lengthy) thoughts below:
>From my perspective, we can break the discussions into two parts:
1. The technical aspects of how we mark up optional text and variable text
2. How those markups are actually used for the SPDX standard licenses
I believe your concerns relate to #2. I don’t really have a strong opinion on
where to draw the line, so I’ll leave that up to the legal team as to where the
guidelines leave off and the markups begin. From a tool developer, the more
markup the better – but I can understand that there is way too much work
involved in agreeing on the license variability and marking up every standard
license.
Regardless of where the line is drawn, I believe we all agreed that having a
markup language to describe the optional and variable text is a good thing and
something which should be implemented. I believe quite strongly that the
markup language needs to be precise, standardized and documented so that both
humans and tools can interpret the markups in a consistent way. That is not to
say there should be guidelines outside of the markup itself. Even describing
when to use the markup language can be stated in less precise guidelines. I’m
only stating an opinion that once you decide to use the variable and optional
markup language, it has to be done in a consistent way. An example of where
this is required is the tools that generate the SPDX license pages for the SPDX
website. For example, if license A uses ‘{{‘ to describe the rules and license
B uses ‘<<’, the tool that generates the web pages would have to support both +
any additional character other authors may come up with in the future –
generally an impossible programming problem to make work in all cases.
My comments and suggestions all relate to technical aspects on how we mark up
optional text (#1 above). From that perspective, Daniel’s proposal on optional
text seems more natural to me and can include a wider variety scenarios for use
of optional and variable text. It does expand the scope of text we can cover by
allowing variable text to be embedded within optional text.
Gary
From: Jilayne Lovejoy [mailto:[email protected]]
Sent: Thursday, September 12, 2013 9:56 AM
To: Gary O'Neall
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: optional sections in license
so, I feel like we may be expanding this effort or at least not incorporating
the matching guidelines we already have. I thought the idea was to let the
guidelines (see: http://spdx.org/spdx-license-list/matching-guidelines ) guide
tool makers in determining how to match licenses and that we would only provide
mark-up in a license template where there was variable text within the license
itself (e.g. BSD, Apache 1.1) or other ambiguous scenarios (basically, to
provide more specific guidance as to guideline #1). We had discussed at the
Collab Summit meeting on this topic, the desire to balance giving clear-enough
guidance to tool makers and other SPDX document creators, yet not creating such
a narrow set of requirements that would stifle innovation by toolmakers.
For example, the discussion here seems to indicate providing mark-up around any
copyright notice - I thought we had decided that could be dealt with via the
guideline (see #9 and #10 on previous link). If we provide the markup
suggested here, then it seems we will end up with markup on EVERY license, as
pretty much every license has a title, which we have a guideline about (see
#11). So, if we end up marking up the copyright notice, title, text that is
really an addendum, then where do we draw the line? Do we also end up providing
mark-up illustrating the rules on punctuation, bullets and numbering, and so
on? IN which case, why have the guidelines at all?
I'm not suggesting that what Gary and Daniel have proposed here is a bad idea
and I will defer to those with more technical backgrounds, but just trying to
keep some containment on this project - i.e. keep it somewhat simple and stick
to what we have already done, as we can always add complexity later.
If we are going to add more markup to the templates than we originally
discussed, then such rules or markup should perhaps tie to the written
guidelines in some way? I do think having a written explanation and rationale
for the matching guidelines is helpful and necessary (rather than ending up
with templates alone and the guidelines getting sort of left behind, which is
where it feels we might be headed)
thoughts?
Jilayne
SPDX Legal Team lead
On Sep 9, 2013, at 10:49 AM, Gary O'Neall <[email protected]> wrote:
Hi Daniel,
I agree with your proposal for requiring the name of the rule first - it will
make the parsing more straightforward for both humans and computers.
I went back through the meeting notes and found one more syntax difference.
The character following the field was a colon ':' rather than an equals sign
'='. I believe this was to make it consistent with the SPDX tag/value syntax.
Let me know if you're ok with this.
Below is an update to the 1.2 spec (also attached) incorporating these changes
along with the text formatting characters for the original and example text.
If we close on these changes at tomorrow's tech team meeting, I can update the
tools software and produce a new license list in time for Linuxcon.
Gary
----------------------
Appendix II. License Template
Certain sections of a license vary as they are used. Some of this variability
is by design (think of the BSD family of licenses). In other cases it is due to
small changes in licenses as they are copied and propagated. The License
Template describes which sections of the license can be varied and which
sections have standard text.
Standard License List Template Download
The SPDX Standard License List will maintain a template for each of the
licenses in the SPDX Standard License List. The download location for the
current version can be found in the link at the bottom of the page
spdx.org/licenses.
Standard License List Template
RDFa Access: The template text for the standard license can be accessed using
the RDF tag licenseTemplate on the web page containing the standard license.
Template Format
A template is composed of text with zero or more rules embedded in it. A rule
is a variable section of a license wrapped between double angle brackets
“<<>>”. The first tag identifies type of rule followed by additional fields
for that rule type. Each field is separated with a semi-colon “;”.
Fields begin with a case sensitive tag followed by a colon “:”.
Rule Types:
• beginOptional: Optional - All text after this rule and before the
endOptional rule is not required for a valid license match but can be
optionally supplied.
o beginOptional Fields:
§ name: name of the field in the template.
This field is required.
o Example: <<beginOptional;name:copyright>>Copyright ©
optional text<<endOptional>>
o The optional text may include one or more variable
rules. Nest of more than one optional text is not allowed.
• endOptional: Denotes the end of an optional text block. Must be
preceeded by a beginOptional rule. No additional keywords.
• var: Variable text - text matching the regular express must be
supplied to be a valid license
o Fields:
§ original: the original text of the rule. It
should be the first field. It is required.
§ match: a POSIX ERE regular
expression (see below). This field is required.
§ name: name of the field in the template.
This field is required.
§ example: another example of the use of the
text. This field is optional.
o Example: <<var;name:copyright;original: <year>
<owner>;match:.+;example:John Doe>>
The POSIX ERE regular expression has the following restrictions and extensions:
● Semicolons are escaped with \;
● POSIX Bracket Extensions are not allowed
The text fields original and example may contain the following formatting
characters:
• \n – newline
• \t – tab
----------------------
-----Original Message-----
From: .dmg [mailto:[email protected]] On Behalf Of D M German
Sent: Monday, September 09, 2013 6:48 AM
To: Gary O'Neall
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: optional sections in license
Gary> Hi Daniel,
Gary> After thinking about this, I tend to agree that it is more
straightforward Gary> to use the beginOptional and endOptional tags. This
would allow for more Gary> straightforward embedding of variable rules within
optional text. To Gary> simplify the parsing, I would like to restrict the
level and type of Gary> nesting. Proposal:
Yes, and it also makes it simpler to add big sections of optinal text (like the
appendices/addenda/etc).
Gary> - Optional text can embed variable rules
agreed.
Gary> - variable rules cannot embed optional text
So then we don't need the type=required|optional tag in a variable rule, now we
can just wrap it in an beginOptional/endOptional.
Gary> - variable rules cannot embed other variable rules
I totally agree.
Gary> One modification to the rules and optional tag syntax - on one of the
calls Gary> we discussed changing the special characters to '<<' and '>>' from
'{{' and Gary> '}}' since we are not technically using the Mustache syntax.
If it is OK Gary> with you, let's change to the << >> special characters.
I agree too. Let us use << >> instead of {{ }}
One more suggestion, now we have:
- rules (to match variable sections
- beginOptional/endOptional
I feel it would be good to make sure the first token of a <<...>> is the type
of rule. I suggest this:
<<beginOptional;name=uniqueNameInLicense>>
<<endOptional>>
<<var;name=uniqueNameInLicense;...
so the first token is a type of rule. The second is the name (endOptional does
not nened one), and the rest is as required... for example, this is the bsd2:
<<beginOptional;name=copyrightSection>>
Copyright (c) <<var;name=copyright;original= <year>
<owner>;match=.+;example=John Doe>> All rights reserved.
<<endOptional>
Gary> All - let us know if you disagree with the proposed syntax changes for
Gary> optional text. Since we would like to implement this by LinuxConn, we'll
Gary> need feedback by end of day Monday.
Gary> Thanks,
Gary> Gary
Gary> -----Original Message-----
Gary> From: .dmg [mailto:[email protected]] On Behalf Of D M German Gary>
Sent: Friday, September 06, 2013 5:40 PM Gary> To: [email protected];
[email protected] Gary> Cc: [email protected];
[email protected] Gary> Subject: optional sections in license
Gary> Hi Gary, Jilayne, rest of the SPDX technical and legal teams.
Gary> I have been thinking about the optional sections of licenses. I think it
is Gary> not worth it to create a template rule to match optional sections of
known Gary> text
Gary> Template rules were supposed to be intended for sections that are
expected Gary> to vary, not simply sections that can be omitted. I just feel
it Gary> over-complicates things.
Gary> What do you think about specifying variable sections with some sort of
begin Gary> and end marker, and indicate that they optional sections of a
template Gary> cannot be embedded into another one (to avoid recursion).
Gary> For example, something like this (the name will uniquely identify the
Gary> section).
Gary> {{beginOptional;name=anyUniqueName}}
Gary> Text that is optional, including some template rules (for variable
sections Gary> in the optional text)
Gary> {{endOptional}
Gary> For example, the BSD-2 is currently specified as follows:
Gary> {{original=Copyright (c) <year> <owner>\nAll rights Gary>
reserved.;match=Copyright \(c\) .+All rights Gary>
reserved.;name=copyrigh;type=optional;example=Copyright (C) 2013 John Gary>
Doe\nAll rights reserved.}}
Gary> but I think it makes more sense to specify it like this:
Gary> {{beginOptional;name=copyrightStatement}}
Gary> Copyright (c) {{original=<year>
Gary> <owner>.;match=.+;name=copyright;type=optional;example=2013 John Doe}}
All Gary> rights reserved.
Gary> {{endOptional}
Gary> what do you think?
Gary> --dmg
Gary> --
Gary> Daniel M. German "I see no good reason why the
views given in this volume
should shock the religious
Charles Darwin -> feelings of anyone."
Gary> http://turingmachine.org/
Gary> http://silvernegative.com/
Gary> dmg (at) uvic (dot) ca
Gary> replace (at) with @ and (dot) with .
--
Daniel M. German "El pasado es una engañosa utopía
y nada fue tan grato o tan terrible
Germán Dehesa -> como lo recordamos en el presente."
http://turingmachine.org/
http://silvernegative.com/
dmg (at) uvic (dot) ca
replace (at) with @ and (dot) with .
<license template updated proposal 9-9-2013.docx>
_______________________________________________
Spdx-tech mailing list
[email protected]
https://lists.spdx.org/mailman/listinfo/spdx-tech