Coder Social home page Coder Social logo

okfn / licenses Goto Github PK

View Code? Open in Web Editor NEW
64.0 33.0 29.0 470 KB

Open source and open knowledge (data and content) licenses together with API and web service.

Home Page: https://licenses.opendefinition.org/

Python 7.38% HTML 0.45% JavaScript 92.17%
licenses open-data open-source open-content

licenses's Introduction

Machine readable list of licenses and web service - see https://licenses.opendefinition.org/.

For more information, including details of web service usage, see https://licenses.opendefinition.org/.

License

All data (and associated content) is placed in the Public Domain using the Public Domain Dedication and License. All code is licensed under the MIT License.

Contributions

Your contributions are very welcome. Learn how you can help

Layout

README.md
index.html # home page
licenses/{id}.json # json versions of licenses
licenses/jsonp/{id}.js # jsonp
licenses/groups/ # special groups of licenses
bin/ # scripts

Note: groups and jsonp versions are generated as part of the build and deploy process for the service.

Build and Deployment

To build files for deployment do:

bin/deploy.py run

For deployment simply upload the current directory files to a relevant online location.

We currently use github pages (we previously used s3).

The changes in each release are recorded in the Change Log.

licenses's People

Contributors

adriens avatar ahmadassaf avatar akakeronos avatar amercader avatar cafferata avatar chris48s avatar ebnalblad avatar enyst avatar greggrossmeier avatar hlainchb avatar jenit avatar ldodds avatar librarpotter avatar mlinksva avatar rufuspollock avatar smth avatar stephen-gates avatar wwaites avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

licenses's Issues

SPDX IDs?

Can we use SPDX IDs for licenses, for software and CC licenses at least?

It will need file names changes, since IDs are file names. So the question is about renaming the affected files to [SPDX_ID].json and accordingly .js.

I think there will be benefits in machine readability. In addition, license ids from opensource.org have changed to SPDX names. This includes also a split of "BSD licenses" in 2-clause and 3-clause: in the records here, there is only one, on opensource.org there are two. And many licenses, more than half, I believe, were renamed in a standardized way, for example from "mozilla" to "MPL-1.0".

Switching to SPDX names in the OKFN service would also solve for longer term a bug with the scraper at this time: the scrape.py script doesn't find a number of OSI licenses it has (because they're named SPDXy now), so the current implementation will add duplicates.

OTOH, I'm not sure if redirections for the older names (current names) would be necessary. If you're ok with the switch, will the site need to continue to serve both?

Add French open license inside ckan group

I would like to add the French License https://github.com/okfn/licenses/blob/master/licenses/LO-2.0.json inside the group/ckan.json file

Expected Behaviour

The definition of the license LO-2.0 is added to the json file

Desired Behaviour (for enhancement suggestions only)

This addition is managed automaticaly

Current Behaviour (for problems)

The license has been added to the list of the opense license but I do not know what is expected to make it available inside the file consumed by CKAN

Your Environment

I use CKAN 2.6

License Update suggestions

Licenses to consider removing:
All of the following licenses appear to have been retired and replaced with the UK Open Government Licence (OGL) according to their website (http://www.opsi.gov.uk/psi/):
UK Click Use PSI
UK Crown Copyright with data.gov.uk rights
UK PSI Public Sector Information

Licenses to consider adding (found on http://creativecommons.org/choose/)
Creative Commons Attribution-NoDerivatives 4.0 International
Creative Commons Attribution-NonCommercial 4.0 International
Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International

Don't break identifiers

We rely on the license IDs that you define here for other apps. When they change (like for capitalisation, or renaming), it breaks things downstream that depend on them.

I accept renaming needs to happen, but when it does, perhaps older deprecated IDs could be kept around with some sort of link to the new ID in its JSON representation?

LO-FR-2.0: is_generic field is of type string

Expected Behaviour

The is_generic field of the LO-FR-2.0 licenses is currently of type string. All other licenses use boolean for this field. (https://github.com/okfn/licenses/blob/master/licenses/LO-FR-2.0.json)

{
  "domain_content": false, 
  "domain_data": true, 
  "domain_software": false, 
  "family": "", 
  "id": "LO-FR-2.0",
  "is_generic" : "false",
  "od_conformance": "not reviewed", 
  "osd_conformance": "not reviewed", 
  "maintainer": "Etalab", 
  "status": "active", 
  "title": "Open License 2.0", 
  "url": "https://www.etalab.gouv.fr/licence-ouverte-open-licence"
}

Desired Behaviour (for enhancement suggestions only)

The is_generic field should be simply true or false. Compare all other licenses.

The family field, and the similar licenses

Context

In the main source (licenses/licenses is it?) all the licences with the family field have "family": "" (empty)... It is, perhaps, because the field descriptor at datapackage.json is also empty, and I not see any text explaining it in other place. What is "family"?

Suggestion 1

The field maintainer is used in some other places, so, if we adopt family as brand, it will be very correlated with maintainer, not adding new information...

A final-user demand is to group similar licences, so this is the main suggestion (!).


... Well, how to group?

Suggestion 2

A simple first step is to use existent information as clue for "family assign process". Fields is_by and is_sa are good clues to util groping. Generalizing: the "summary of the main clauses of the license" (as ex. tldrlegal.com) have the best set of attributes for grouping inference...

Example: ODC-BY v1, GFDL v1.3, ... CC-BY v4 can be grouped as similar licenses (and also versions as CC-BY v1, CC-BY v2, etc.) because have same clauses in their summaries.

Suggestion 3

Some groups are obvious, others not so evident, and can be changed in the time with new analysis and discussions... The change of "family assign" in one item is normal, no impact, but the change in the family's name is problematic... As biologists and linguists handle this problem, canonicalization is a good solution. In the set of grouped elements, you (the curators) elect a "typical element" and use its name (or ex. prefix of the name) as the family name.

In the example, the most popular licence of the group is the CC-BY, so is natural to use cc-by as family name.

Conclusion: the (suggested) family field is the name of the similarity-group assigned to the license, and this name is obtained from the (name of) canonical license of the group.

Merge Clipol.org data into this repo

Clipol.org has more extensive metadata for many of this repo's licenses that could be pulled-in. However, the sets of licenses of each don't entirely intersect, so I propose the following:

  1. Restructure Clipol.org data:
    (a) Restructure the Clipol JSON definitions so that the fields are a perfect superset of the existing OD data; this will make the clipol data backwards compatible with the OD data. Note that Clipol data is pretty close to a superset already.
    (b) Provide better documentation and definitions for the new fields.
  2. Merge Clipol.org data into this repo: export the clipol data to the OD file tree and push.
  3. Update Clipol.org website: after clipol data is in the OD repo, make this the primary source for Clipol's data (probably through an automatic import script).
  4. Also merge the license texts?

Canada government

In the repo, there are three licenses, geo-no-fee-unrestricted, geogratis, and canada-crown.

Apparently the first is no longer is use (at the address noted here, links lead instead to OGL Canada - open government license), the second I'm not sure, the third I have no idea what it is.

On the web page of OD licenses, there's only OGL. The non-conformant list doesn't mention the first three either.

The text I found for no-fee-unrestricted seems to have been this:
Add "No Fee Unrestricted".
(pdf)
For geogratis, this:
GeoGratis (Canada)

If I understand this correctly (I know nothing of government licenses and this history), none of the initial licenses is (formally) OD approved, and, at least geo-no-fee-unrestricted has been replaced with OGL in actual use. Please correct me if this isn't the case.

Is any of those three of any interest for the repo(s) (historical, documentary)?
If they're no longer in actual use, should they be "retired"?
Or remove them from the repo? For example, canada-crown doesn't seem a license at all, no idea what it was... I don't see any use of it without any data about it. Perhaps it's meant as an actual license, but I don't know which. :)

In their place, I'd suggest to add OGL 2.0 (Canada).

Big Refactor

Summary:

  • No longer be a python lib (python just used in bin for s
  • Remove grouping (do it in clients)

Directory layout at the end of this process:

licenses/{id}.json # json
licenses/{id}.json.js # jsonp
bin/ # scripts
index.html # home page
README.md
datapackage.json # data package info

No longer be a Python lib

  1. Remove LicenseList
  2. (?) Remove service.py (issue is this requires client changes e.g. in CKAN)
  3. WONTFIX Put in convenience methods for osi compliant and okd compliant on License object
  4. Deprecate groups (they should move to respective systems using them e.g. CKAN) and only have osi::compliant, okd compliant. Logic: Clients should keep their own list of ids and load from the package or from the API at runtime.

Data

  1. Convert from one big licenses.db into .json files named after the license.
  2. Put in a domain fields of domain_data, domain_content, domain_software being booleans where true indicates this license is applicable to that field.
  3. Remove date_created (meaningless) on license dicts
  4. Remove tags as unused.
  5. is_generic field for "licenses" which are really generic categories rather than licenses.
  6. WONTFIX rename okd_compliant to od_compliant

Deploy

  • Build a couple of consolidated files ...
    • all.json
    • osi.json - all Open Source definition compliant licenses
    • okd.json - all open definition compliant licenses
  • Build jsonp files with callback named licenses_callback and with extension .json.js

Add Eclipse License version 2.0

I noted that EPL v.2.0 was not yet added to this repository.

I created the changes needed and submitted them as pull requests (apologies for having them as separate PRs - I did this via the UI).

Can anyone check and merge them in if they look ok?

Site broken

The links to bootstrap css files no longer work

Repository labels

I've added a couple of labels to the repository issues. I'm happy to change these.

Is there a standard list of labels OKI prefers to use to manage issues? The ODI have some recommendations that I've used successfully.

_compliant should be _approved

As noted in #12

"_compliant" is open to interpretation (with respect to OSD and OKD); "_approved" is unambiguous. I will change in a month if nobody complains it will break anything.

:link: Feature Request > Add links to licence logos :camera:

โ” About

Hi, I would like to use this data, but also some visuals, therefore, I wonder if (when available), could add url to logo, for example for

CC-BY-NC-SA-4.0 :

licence icon
licence icon
licence icon
licence icon

๐ŸŽซ Related issues

met-office-cp license

This is a license I'm not sure it belongs in the repository.

  • Met-Office UK CP - doesn't seem an open license, at first sight it's non-commercial for some distributions, and requires an additional signed agreement from downstreams (probably more issues). It isn't tagged as approved, either.

There are non-conformant licenses in the repo, but they have or can have relevant explanations on the site (i.e. CC with -NC, widely used, is a case for which the explanation of non-conformance is useful for interested readers).

I think this license doesn't qualify as "common problematic licenses". I'm missing context for any government-related licenses though, I don't know if active non-conformant licenses are also supposed to be listed and discussed on the site.

Is there some reason or intention for keeping met-office-cp in the repo, or can we remove it?

data updated?

Great project!
I was just thinking I needed to make something like this, and boom, here it is.
I see the code has not been updated lately (which is fine); how up to date is the data?

CC-BY and "domain_data"

If I interpret the "domain_data" attribute correct, it says if a license can be applied to data (vs. content vs. software) or not.

The current state of https://github.com/okfn/licenses/blob/master/licenses/cc-by.json shows domain_data: false. While this might be correct for versions up to 3, the new version 4 of CC-BY (and other CC licenses as well) should be applicable to data.

This raises the question whether there should be different entries and thus IDs for different CC license versions in the service.

Callback typo?

// you *must* set the callback function to be licenses_callback jsonpCallback: 'license_callback',

Should the instruction "you must set the callback function to be licenses_callback" actually be "license_callback" or should it be jsonpCallback: 'licences_callback'?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.