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

Preserving license information #618

Open
matentzn opened this issue Feb 4, 2020 · 3 comments
Open

Preserving license information #618

matentzn opened this issue Feb 4, 2020 · 3 comments

Comments

@matentzn
Copy link
Contributor

matentzn commented Feb 4, 2020

I am wondering, should we make it easier to preserve license information throughout the ontology life cycle?

  1. During extract, I think it would be good if the license information, if present, is automatically copied to the extracted module (I think this is already the case for all the other subsetting mechanisms, correct me if I am wrong).
  2. We may want to create an optional parameter for robot annotate, like --add-license-summary, that writes creates a nice overview of the ontologies used inside the current ontology and all the respective licenses involved. This would serve two purposes:
    1. we have a clearer credit mechanism (by default merging all the artefacts may not preserve which imports were used, and therefore credit is lost).
    2. We show a bit more that we take the licenses seriously. Right now there may be 1000ds of violations happening because we do not adhere to the license restriction: "attribution" when merging imports into our releases.
@jamesaoverton
Copy link
Member

jamesaoverton commented Feb 4, 2020

These are good ideas, but they scare me.

First I want to push back on that last part: Authors are responsible for correct licensing and attribution when they publish works. ROBOT is not responsible.

There are some simple/common tasks that ROBOT could make easier, but the complex interaction between code and law (on a global scale!) scares the crap out of me. If we build a tool that even tries to figure out the right licenses, and we mess up, maybe we ROBOT devs are on the hook.

Practically speaking I also have concerns:

  1. Yes, it's easy enough to copy a terms:license annotation during robot extract. I don't know what you mean by "subsetting mechanisms". The hard case is robot merge.

  2. I'd appreciate an example of the license summary you'd like.

    Maven can report a tree of all dependencies for a project, and their licenses, but we're not in the same position. For ODK you can be pretty sure that you know the first level of imports for a project, but I don't see how you know about the N-th level of imports. ROBOT does not know about "projects" at all. For OBO it's tempting to infer the imported ontologies (and thus licenses) from the term IRIs, but that's not foolproof either.

If we could be very clear about the recursive dependencies for our projects (which would be good for many reasons) then I'd be less worried about summarizing licenses. That sounds related to #6, one of our oldest tracker items.

@matentzn
Copy link
Contributor Author

matentzn commented Feb 4, 2020

First I want to push back on that last part: Authors are responsible for correct licensing and attribution when they publish works. ROBOT is not responsible.

100%! Didnt think about this creating some kind of legal situation.. I thought it was just an option to copy licenses where they exist, and leave the rest to the responsibility of the ontology authors! We should definetly not try to compute overall licenses or anything apart from saying which ontologies with explicit licenses in the import closure have been merged or extracted with ROBOT.

Yes, it's easy enough to copy a terms:license annotation during robot extract.

I think it would be good to make this an option.

I don't know what you mean by "subsetting mechanisms".

Anything that extracts a subset of an ontology, like ROBOT filter, extract, remove, etc. Presumably, the license would not change under such operations.

The hard case is robot merge.

yep.

I'd appreciate an example of the license summary you'd like.

Something as simple as:

rdfs:comment "This ontology contains (re-uses?) entities, annotations and logical axioms from the following external ontologies: http://purl.obolibrary.org/obo/mp.owl (CC-BY 3.0), http://purl.obolibrary.org/obo/xpo.owl (CC-BY 4.0).

But yeah, there is the problem that we likely do not have access to the whole recursive dependency chain, these messages could be misleading (because they are incomplete). So I dont know now what the best path here is. For now, maybe it would be good to make it possible to introduce a universal ROBOT parameter that allows to --copy-license whenever an ontology is manipulated in whatever way; or at least, copy it during 'extract'. We can see about the rest (effective summary) another time.

@balhoff
Copy link
Contributor

balhoff commented Feb 4, 2020

I think we could do this a bit more generically. I would like to have some options for extract and merge that include some provenance annotations about the source ontologies. It could be something like a prov triple connecting the new ontology IRI to a resource/blank node which then links to the source ontology IRI/version IRI. There could be an option to copy ALL ontology annotations from the source ontology onto that representative node.

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

No branches or pull requests

3 participants