14

What would be a good license for computable data models? Technically they're source code, but they're always constrained and transformed to other artifacts before being used in actual software. At the moment we're using CC-BY-SA, which industry is wary about because of the -SA clause. CC is also not quite right because it's geared towards free works rather than free software. We've been thinking about Apache 2, MIT and BSD, but we're not sure about their merits for this particular purpose.

The data models in question are so-called archetypes made using the openEHR specifications and the ISO-standard Archetype Definition Language (ADL; ISO 13606-2).

We'd like to allow sharing, forking/derivative works, and the use of derived artifacts in software with no restrictions as to which license (if any) the derived work is released under. We're unsure if we'd like to allow re-licensing of archetypes that have not been converted to code.

We'd prefer a well-known license, as we're in a market where vendors are very risk averse and generally skittish about open source.

  • 5
    Could you please detail more what you want to allow, and what you want to forbid? Also, do you strongly want a widely-known license, or are you OK with rare licenses too? – Nicolas Raoul Jun 26 '15 at 8:34
  • 1
    Everyone: Please take a look at this meta post for insight on the nature of recommendations here: meta.opensource.stackexchange.com/questions/147/… – Zizouz212 Jun 26 '15 at 13:49
  • 2
    I see how this question can be seen as being primarily opinion-based, but at the same time licensing of artefacts that can be seen as "in-between" software and creative works hasn't been discussed much that I've seen. Also, our wish to retain copyleft for the source code artefacts but not for artefacts integrated into code make for more fact-based answers than just putting permissive and copyleft up against each other. – Silje Ljosland Bakke Jun 29 '15 at 13:01
  • 5
    I am voting to leave this question open because it provides enough criteria to give a meaningful answer: it describes the scope (computable data models), highlights why there is something peculiar about this scope that's relevant to the license choice (they're always transformed before use), it gives a specific example in case there is no general answer, and it provides a clear statement of objectives (“We'd like to allow …”). – Gilles Jul 2 '15 at 19:00
  • 2
    You may be in a similar position as designers of open-source Fonts - the Open Font License scheme has allowances for embedding fonts in documents freely whilst having share-alike mechanisms for the font and font distributions. I'm not aware of any similar license for data, but would love to know of one, because a lot of "free" data sources leave this issue vague and open to interpretation. – Neil Slater Aug 27 '15 at 8:33
1

This question would be easier to understand if you explained what these archetypes actually are.

I read that «Within this approach, archetypes and templates are definitive models of semantics, without commitment to specific messaging or document standards, or other technologies. Instead, concrete expressions are now generated artefacts». Interestingly, «This is akin to the situation in natural language, where meaningful sentences constitute a tiny fraction of possible, grammatically correct sentences».

Based on this, it would look like your archetypes are a sort of training set, or something similar to a (parallel) text corpus. You could look at common licenses for such corpora (can't find a specific one in the OSI list), but a sensible one would be the Creative Commons Zero: technically not a license but a waiver, it also avoids problems with EU sui generis database rights.

The CC-0 is also the one and only correct solution if any of the following is true:

  • you really literally meant «use of derived artifacts in software with no licence restrictions» as you say in the question (bold mine);
  • you could accept classifying the material as "data" or "database" for some not too far fetched definition of the word;
  • someone else can build similar or identical archetypes to yours, independently, given enough effort or simply out of chance (which would mean they're probably not copyrightable in the first place and they definitely are not in USA).
  • 1
    I see the original phrasing "with no licence restrictions" could be misinterpreted. What I meant was "with no restrictions as to which licence (if any) the derived work is released under". I've edited the original question to reflect this. Regarding what archetypes are, gardes explained it quite well in a reply below; "You might think of it (roughly) as having UML-models that many people use to build different software from. We want to share-alike the UML model, but everybody should just be able to develop software from it without any restrictions or any fear, uncertainty or doubt." – Silje Ljosland Bakke Oct 11 '15 at 17:51
  • @SiljeLjoslandBakke ok. If you address the other points I raised, I will be able to provide a more tailored suggestion. – Nemo Oct 11 '15 at 17:53
  • I was busy editing my comment when you replied - you're too quick! :) I'm not sure if we can classify the models as data or database. I'm sure other people could, theoretically, build the exact same archetypes by chance, but that goes for any other kind of work, I would guess? – Silje Ljosland Bakke Oct 11 '15 at 18:01
-1

For an archetype that is used to automatically create code, it's important to note that there is no creative act in converting the archetype to the code. Therefor, the same license conditions that cover the archetype will cover the generated code.

This makes it difficult to license the generated code more restrictively than the archetypes.

However, since you want to license the generated code less restrictively than the archetypes, there are possibilities.

The GPL obliges you to release the source code and

The source code for a work means the preferred form of the work for making modifications to it.

In this case it could be argued that these are the archetypes. This means that if you use a GPL family license, you have to also release the archetypes under the GPL. This is something you're not sure you want to do, so let's cross that path off.

Neither MIT nor Apache has a source requirement, so they might be more suitable for your needs. This means that you could keep the archetypes closed, and release the generated code under MIT or Apache. They differ primarily in that the Apache2 license contains a patent grant, ant the MIT license doesn't.

We can't really help you with the closed part of your license here. "Speak to your lawyer" and all that, but it should be possible to cook up something that allows for gratis distribution, but not allow re-distribution or making changes, or the "in between" form that does allow making changes, but not distributing those changes.

-2

I'm not entirely sure what computable data (google searches give me how to compute and what not), so I'll be using the assumption that your data is like software source code. Please correct me if I am wrong in doing this.

As you would like a software license, Creative Commons should be out of the question. Their licenses aren't designed or suited for the use in software applications, but rather for use in the creative works.

All open source licenses allow sharing and forking. With this, any license that you find as OSI approved should be suitable.

About re-licensing. If you want people to redistribute under the same or compatible license, you need the ShareAlike clause. This is also known as copyleft. I'm going to assume that you would like people to redistribute under the same/compatible license.

I would recommend the GPL license for a couple of reasons:

  • It allows sharing and forking, like other licenses. People will be able to modify and distribute.
  • It doesn't allow others to redistribute under the same license.
  • How about permissive terms for transformed artifacts? Remember we only want copyleft for the untransformed models. – Silje Ljosland Bakke Jul 3 '15 at 13:05
  • 1
    Ok, so your versions of work would like a permissive license, but the derivatives must employ a copyleft license? – Zizouz212 Jul 4 '15 at 18:00
  • 1
    I think we may be talking past each other. I'll have a think about how to explain it better and get back. Thanks for trying to help! :) – Silje Ljosland Bakke Jul 4 '15 at 18:01
  • 3
    If someone wants to make changes to this archetype itself, we want it to be shared-alike. However, if anyone uses this archetype to manually, semi-automatically or even automatically derive source code from it, this is just fine, even commercially there should be no restriction. You might think of it (roughly) as having UML-models that many people use to build different software from. We want to share-alike the UML model, but everybody should just be able to develop software from it without any restrictions or any fear, uncertainty or doubt. – gardes Jul 6 '15 at 12:35
  • 1
    The other complication that Silje mentioned above is that in some respects these are governed collaboratively more like authored documents (which is why CC was chosen) but in other respects act like software libraries. – Ian McNicoll Jul 7 '15 at 16:49
-2

Summary: If you can define something (say an XML file) as your source code, then you could apply the LGPL license to your archetypes, and treat them as software libraries. Your archetypes can then be modified and/or included in any work (including a proprietary work), as long as that work are distributed with a source code version of the archetype.

If your primary scenario is vendor-controlled networked applications (e.g. a centralised web application) then the same argument applies to the GPL (which does not require sharing source code over a network).

Modifiable source requirement

It sounds like access to a modifiable version of the source code of an archetype (say an XML file) is one of your requirements. In this case you definitely want to consider AGPL, GPL (as Zizouz212 mentioned) or LGPL, rather than CC BY-SA. (CC BY-SA does not require source code access.)

From https://www.gnu.org/licenses/license-list.html#GPLOther :

The GNU GPL [and by extension the LGPL and AGPL] can be used for general data which is not software, as long as one can determine what the definition of “source code” refers to in the particular case.

Picking one of these licenses would mean that any derivative work "compiled" from the archetype must be bundled with the original archetype file (so that it could be modified and/or "re-compiled").

Copyleft requirement

The GPL, LGPL and AGPL also satisfy your copyleft (share-alike) requirement.

Inclusion in other (possibly proprietary) works

If the archetype or derivative work is going to be copied into some independent work (another piece of software that is not a derivative work, but links to the archetype), and you don't want to place any requirements on that independent work, then the Lesser General Public License (LGPL) is what you're looking for.

With the LGPL, the independent work must still include the original archetype file and the source for any derivative work (see example below), but the independent work doesn't have make it's source available. It could be any license, including a completely locked-down proprietary one.

Provisos

  • Note that the second work must also include some mechanism by which the LGPLed work can be replaced. (Easy examples are a DLL, if you're familiar with Windows, or a jar file, if you're familiar with Java.) This provision allows someone to take the archetype source file, modify it, "re-compile" it, and replace the "compiled" version used in the second work.

  • I am working on the conservative (risk-averse) assumption that the XML -> class transformation would constitute a derivative work. If it doesn't, your vendors are under no obligation to share even that part of their software source code.

  • I'm not sure that it applies, but it would be remiss of me to not mention "Why you shouldn't use the Lesser GPL for your next library" (an argument for preferring the GPL over the LGPL in most cases).

  • If you are looking at web/network applications then the same arguments apply to the GPL, and you could use that. (You do not need to share code over a network.) However, this would mean that any desktop or mobile software derived from the archetype must be GPL (this would not include a dumb client that is basically a web browser).

Example

Let's say you define your LGPL archetype as an XML file, and vendor X uses that file as a template to create a Java class with getter/setter methods for the attributes, and basic database read/write functionality. They bundle a collection of such classes into a jar file. They develop an independent piece of software that links to this jar file, creates instances of these classes, processes and modifies them according to business logic rules, and calls the save method to store the results in a database (or to file or whatever).

When they permit me to install their proprietary work, they must give me: the jar file and the source code for the jar file (and probably the original archetype XML file too). They must provide sufficient instruction that a software developer could literally recompile the source code and get the same jar file. I am also free to inspect and modify the source code and compile my own jar file. If I break it, that's my problem. I have no access to their proprietary business logic.

(To be clear, the functionality I have described the jar file as having is trivial, it's the business logic that matters.)

I am also free to inspect the archetype itself, use it for research or whathaveyou, as long as I share my modifications, which I believe was your original goal.

  • I would really appreciate feedback on the downvote; have I misunderstood something about GPL/LGPL? – david.libremone Aug 28 '15 at 9:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.