Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore licenses for dual-licensing. #236

Closed
yetzt opened this issue Dec 11, 2015 · 21 comments
Closed

Restore licenses for dual-licensing. #236

yetzt opened this issue Dec 11, 2015 · 21 comments
Assignees
Milestone

Comments

@yetzt
Copy link

yetzt commented Dec 11, 2015

I request 34f9ce8 and 5443780 will be undone. I am having dual-licensed open data (odbl and cc-by) that has to be dual licensed so the data can be used as an upstream by different project with different licensing requirements. Your argument that noone will possibly ever use more than one license for the same set of data is therefore invalid.

@rufuspollock
Copy link
Contributor

First thanks for flagging - its great to get this feedback. Two thoughts;

  • That change probably wasn't quite right and we should think about realigning multiple values for license.
  • But: irrespective of when that comes in I would suggest the solution right now is just to put one license in the metadata datapackage.json but to have a license section in your README that spells out the situation. Remember the datapackage.json is never legally binding - it is just indicative and full details are usually somewhere else. See esp http://data.okfn.org/doc/publish-faq#-strong-license-strong-

@yetzt
Copy link
Author

yetzt commented Dec 19, 2015

i recommend you have a look at this issue from npm on a similar topic, so no mistakes shall be repeated. one point of strong metadata is automatintion. i like the idea of software to take care of things like making sure that incompatible licensed data is not mixed. having only one license in the metadata would lead to a 'false positive' incompatibility and hurt the approach of open data. my personal fix is to stick to the penultimate version of the spec.

@pwalsh
Copy link
Member

pwalsh commented Jul 12, 2016

@rgrp what do you think about reinstating this?

@roll
Copy link
Member

roll commented Aug 6, 2016

also related to #146

@roll roll added the backlog label Aug 8, 2016
@rufuspollock
Copy link
Contributor

@pwalsh yes agreed on reinstating. Need to action this now.

@roll roll removed the backlog label Aug 29, 2016
@danfowler danfowler added this to the Current milestone Sep 27, 2016
@danfowler
Copy link
Contributor

Can I assume that we will have both license and licenses where license can be a string or an object and licenses will be an array of such values?

@frictionlessdata/specs-working-group

@roll
Copy link
Member

roll commented Oct 27, 2016

It's kinda against currently used pattern - why not license either string or array of strings/objects?

@danfowler
Copy link
Contributor

@roll

license can be an object also:

"license": {
    "type": "ODC-PDDL-1.0",
    "url": "http://opendatacommons.org/licenses/pddl/"
  }

The pattern would match author (string or object) and contributors (array of author-like values)

@rufuspollock
Copy link
Contributor

I'm wondering if we should adopt npm / package.json approach for multiple licenses which is:

(ODC-PDDL-1.0 OR CC-ZERO)

See https://docs.npmjs.com/files/package.json#license

@yetzt
Copy link
Author

yetzt commented Nov 11, 2016

@rgrp the npm approach has some problems. they rely on spdx, which doesn't cover most open data licenses (only a subset of the open definition ones), and their fallback is "SEE LICENSE IN $FILENAME", which defies the purpose of machine-readability. also there's "UNLICENSE" and "UNLICENSED" which mean two diametral things. so please: don't. or: replace spdx with an open and inclusive repository of licenses. and if you want to notch up the awesome on this: also account for versions and flavours of licenses and their compatibilities. (build a basic platform, put the opendefinition licenses in and let the general public fill it)

@rufuspollock rufuspollock self-assigned this Nov 17, 2016
@rufuspollock
Copy link
Contributor

@yetzt good points and going to do that.

Re licenses repository see also https://github.com/okfn/licenses

@rufuspollock
Copy link
Contributor

rufuspollock commented Nov 30, 2016

Proposal:

  • license is the term (if people feel strongly on licenses please say - after all this is partly breaking change anyway!)
  • Can have one or multiple values
  • Simple default of a string
"license": "{ID-taken-from-open-definition-licenses-list}"

# a license with an explicit url
# NOTE: type can be "notspecified" 
# NOTE: you must have an array of objects even if only one object
"license": [{
  "type": "ID-taken-from-open-definition-licenses-list"
  "path": "http://xxx.yyy.com/LICENSE.md"
}]

Multiple licenses:

"license": [
   {
     "type": "ODC-PDDL-1.0",
    "path": "http://opendatacommons.org/licenses/pddl/"
  },
  {
    "type": "ID-taken-from-open-definition-licenses-list"
    "path": "http://xxx.yyy.com/LICENSE.md"
  }
]

Example where your own custom license locally:

"license": {
  "type": "other"
  "path": "LICENSE.md"
}

@jpmckinney
Copy link

jpmckinney commented Nov 30, 2016

My preference is for the simple string version to be a URL. A URL is an identifier.

The docs seem to have had id where the proposal now uses type. type would make sense if we allow values like other and notspecified, which don't identify a license, but describe its type.

That said, I personally find "licenses" like other-pd to be confusing, because they aren't licenses! I've seen data catalogs "license" their data under other-pd, but that is not a valid license!

My preference is to drop id / type and just use URLs to licenses, which are unambiguous. Either that, or remove all non-licenses from okfn/licenses to avoid the above issue.

The proposal uses both url and path. I thought we had collapsed those to a single term?

@rufuspollock
Copy link
Contributor

@jpmckinney thanks for the review:

My preference is for the simple string version to be a URL. A URL is an identifier.

I hear you. However, for combination of publisher simplicity and compatibility it is unlikely for plain string to switch to being a url. The simple string value covers 80% of the use cases and save you having to find a url (which may change etc). In addition, the url option is supported in the object structure.

The docs seem to have had id where the proposal now uses type. type would make sense if we allow values like other and notspecified, which don't identify a license, but describe its type.

Current spec has type i believe not id.

That said, I personally find "licenses" like other-pd to be confusing, because they aren't licenses! I've seen data catalogs "license" their data under other-pd, but that is not a valid license!

Good question. Definitely possible to drop those "license group" rather than specific license items in licenses list. However, there are benefits in some cases. This seems a non-blocker for this change.

The proposal uses both url and path. I thought we had collapsed those to a single term?

You spotted a bug there. Does raise the question: why not just url. Only reason for path was idea of having local paths to a license file in the package. Is that useful to have?

@pwalsh
Copy link
Member

pwalsh commented Dec 18, 2016

@rufuspollock

Still, one would like to be able to extract a name for a license, without parsing the URI (or the contents of the file found at the URI). So I do think we still need type/id as well as path. This does open things up for error though.

@rufuspollock
Copy link
Contributor

@pwalsh can you clarify on point 2. IME as a user simply being able to put an id like "ODC-PDDL-1.0" is a real advantage. Looking up an authoritative URL is a PITA.

@jpmckinney
Copy link

jpmckinney commented Dec 18, 2016 via email

@rufuspollock
Copy link
Contributor

@jpmckinney it is a good point and only people like me maybe know some of those license ids by heart 😜

@pwalsh long and short i'm coming down to view that we should have less "optionality" in the "strong" vs object stuff. Will open a general issue about this in a moment.

@rufuspollock
Copy link
Contributor

AGREED:

  • licenses - plural
  • licenses is an array of objects
  • at least one of name, path or title is present.
"licenses": [{
  # was type - optional
  "name": "identifier from our list"
  # was url
  "path": ""
  "title": "any string you want"
}]

@pwalsh
Copy link
Member

pwalsh commented Dec 22, 2016

in 2b575e6

@pwalsh
Copy link
Member

pwalsh commented Feb 5, 2017

We won't merge #337 until we can support all the changes in the core implementations we maintain. So closing this as it is implemented in #337 , as leaving it open creates confusion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

6 participants