buildingSMART / IFC4.3.x-development

Repository to collect updates to the IFC4.3 Specification
Other
161 stars 83 forks source link

Code and documentation license #241

Closed Moult closed 2 years ago

Moult commented 2 years ago

What license is this code under? The docs are under CC BY-NC-ND 4.0 but what about the code?

Moult commented 2 years ago

Might I recommend AGPL? That way if others choose to improve (subject to the no-derivatives clause if they choose to publish) they would have to submit all their improvements upstream :)

berlotti commented 2 years ago

Up until now it is not open source. So (C) Copyright buildingSMART, all rights reserved.

Do you think it would make sense that we publish it under an open source license? Most open source licenses wave all guarantees which is not necessarily appropriate in this case. Are others going to use the code? For what?

aothms commented 2 years ago

Are others going to use the code? For what?

Just some ideas:

Extension projects, MVD like things, Forks of IFC :)

Maybe also potentially documentation for toolkits.

Or just hosting this for fun.

Moult commented 2 years ago

Yeah the code right now is so tied to the IFC schema so it's hard to imagine it could be used for other things.

But then again people are creative. Something as simple as a mirror, improved frontend, maybe a new search engine, bsdd integration, company specific mvds /ids integrations, would be a shame if the license prevented this. The true value is in the ISO standard, and creative commons license... Open sourcing the thin web server layer only helps enable potential innovations. I can't personally see what benefit there is in keeping this thin layer copyrighted - some jinja templates, some flask routes, and some XMI JSON parsing ...

berlotti commented 2 years ago

BuildingSMART policy states that this is either not open source, or MIT. In your examples MIT also seems a better fit then AGPL....?

Moult commented 2 years ago

Sure MIT would work :) You'd probably lose out on some potential contributions that AGPL guards against (since it's a web-based app) but at the same time you'd open up more opportunities for integration with company specific workflows - both sides have benefits so if MIT is the easier route let's go for it!

Probably all it'd take is a LICENSE.md in the code/ directory.

This would be a great step forward. The (live) HTML spec takes a similar approach, though they are even more liberal: they use CC-BY 4.0, a free culture license (whereas buildingSMART uses CC-BY-NC-ND which is non-free) for the documentation, and use BSD-3 (very similar to MIT) for their tooling (see the HTML license), they also have a pretty neat clause that allows their tooling to remain BSD-3 but have a special dual license if you use it for purposes like claiming performance (for example this).

Moult commented 2 years ago

For some fun trivia, W3C CSS spec seems to also use something similar to CC-BY. ECMAScript (Javascript) has a similar strategy too, using something similar to CC-BY-ND (they allow commercial use, but have certain types of derivative restrictions) and use BSD for their tooling.

Moult commented 2 years ago

Sorry I know I started this discussion asking about the code but I got really curious about the NC-ND clause too. This quote is taken from the HTTP protocol specification, which just like CSS, JS, HTML is a bit more liberal.

derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind

Because buildingSMART uses NC-ND, does this mean that I'm not allowed to quote the IFC, BCF, IDS specs and provide commentary, explanation, or assist in its implementation, or translate, provide distributed training material in a (potentially paid) course, explain the spec in a video uploaded to YouTube without running the risk of breaking the ND or NC clause? That seems a bit weird. Also it probably means there's a ton of content already out there which is breaking the license.

Taken from the Creative Commons FAQ:

Can I reuse an excerpt of a larger work that is licensed with the NoDerivs restriction? Incorporating an unaltered excerpt from an ND-licensed work into a larger work only creates an adaptation if the larger work can be said to be built upon and derived from the work from which the excerpt was taken. Generally, no derivative work is made of the original from which the excerpt was taken when the excerpt is used to illuminate an idea or provide an example in another larger work. ...

So if I simply quote an excerpt in a larger work (training course, video tutorial), it's not considered a derivative, but if the work itself is a built upon and derived (e.g. translation, academic commentary, proposed implementation or modification, written implementation guide, government or company MVD, company IFC/BCF/IDS compliance guide) then it is a derivative and I'm not allowed to do so?

According to this page on Why Sharing Academic Publications Under “No Derivatives” Licenses is Misguided the ND clause actually may block academia and other publicly funded research from doing certain types of work with IFC?

Food for thought - maybe there's a reason to why the other specs out there don't use an NC-ND clause, or they specify when the ND clause applies to allow development opportunities but still protect from abuse.

aothms commented 2 years ago

Also how does ND affect generated code and documentation derived from the schema in toolkits and user facing tools?

Sent from a mobile device. Excuse my brevity. Kind regards, Thomas

Op za 19 feb. 2022 01:34 schreef Dion Moult @.***>:

Sorry I know I started this discussion asking about the code but I got really curious about the NC-ND clause too. This quote is taken from the HTTP protocol specification https://www.w3.org/Protocols/rfc2616/rfc2616-sec21.html#sec21, which just like CSS, JS, HTML is a bit more liberal.

derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind

Because buildingSMART uses NC-ND, does this mean that I'm not allowed to quote the IFC, BCF, IDS specs and provide commentary, explanation, or assist in its implementation, or translate, provide distributed training material in a (potentially paid) course, explain the spec in a video uploaded to YouTube without running the risk of breaking the ND or NC clause? That seems a bit weird. Also it probably means there's a ton of content already out there which is breaking the license.

Taken from the Creative Commons FAQ https://creativecommons.org/faq/:

Can I reuse an excerpt of a larger work that is licensed with the NoDerivs restriction? ... generally, no derivative work is made of the original from which the excerpt was taken when the excerpt is used to illuminate an idea or provide an example in another larger work. ...

So if I simply quote an excerpt in a larger work, it's not considered a derivative, but if the work itself is a built upon and derived (e.g. academic commentary, training course, video tutorial, written implementation guide, government or company MVD, company IFC/BCF/IDS compliance guide) then it is a derivative and I'm not allowed to do so?

According to this page on Why Sharing Academic Publications Under “No Derivatives” Licenses is Misguided https://creativecommons.org/2020/04/21/academic-publications-under-no-derivatives-licenses-is-misguided/ the ND clause actually may block academia and other publicly funded research from doing certain types of work with IFC?

Food for thought - maybe there's a reason to why the other specs out there don't use an NC-ND clause, or they specify when the ND clause applies to allow development opportunities but still protect from abuse.

— Reply to this email directly, view it on GitHub https://github.com/buildingSMART/IFC4.3.x-development/issues/241#issuecomment-1045433302, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAILWV7IRVPE6SC7LUGOZNDU33QPPANCNFSM5OXRWBUA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

Moult commented 2 years ago

Yeah that could be an issue, for example, in the BlenderBIM Add-on at least we're looking to extract docs so that when people hover over an "IfcWall" or any attribute, class, or property, they get a few sentences summary of it to help users learn IFC. The code is actually already half written.

Edit: in addition, I have actually shipped patched versions of the docs (definitely a derivative) which fixes things such as mistakes in the applicable entities for property set templates or where rules where things were broken, or even full extensions of it like for when where rules for object typing didn't exist in IFC2X3.

And of course I may have (this is a public forum eh? :) ) broken the NC clause too I guess, say in the form of training courses on the IFC specs. And of course there are a number of these courses in translated languages too.

berlotti commented 2 years ago

There are a lot of questions about the ND part of CC license. This was discussed in the latest board meeting. As soon as the minutes are approved I can share the conclusions.

For the code of the docs generator: let's publish it under MIT.

Moult commented 2 years ago

Awesome! :) Also since the original issue was about code licensing, I'll mark this as decided so we can move on.

Moult commented 2 years ago

A curiously similar question cropped up here: https://community.osarch.org/discussion/comment/11218

Thoughts? Ping @aothms @berlotti - I know it's not really related to IFC, but perhaps part of the meeting minutes can shed some light?