Why a licensing system? Is UQLab really open source?

Hi everyone, Stefano here, co-founder of the UQLab project together with Bruno (you can see our faces here, or in their full-color glory here).

One of the questions I’m often asked when at conferences/meetings/beers downtown, is “why do you need to register to use UQLab, even if it is free?”. This is tightly related to a second question that pops up very often: “UQLab is not open source: all of the stuff in the core is p-coded [obscured]”.

Unsurprisingly, the answer to these questions is twofold:

  • As it turns out, UQLab doesn’t grow on trees. Thousands of man-hours have been invested in its development and documentation, for no other purpose than to make it available to a larger audience than just the specialists. While all of the associated costs are shouldered by the Chair of Risk, Safety and Uncertainty Quantification at ETH Zurich, we are constantly looking for financial support from funding bodies.
    And here is the catch: academic funding is based on a rather ephemeral currency: reputation (or impact). Measuring the impact of a scientific software is not easy, as academic citations are only one side of the matter. We believe that tracking downloads is not a really meaningful measure either, as the same software can be downloaded many times by the same user (e.g. on HPC clusters). Therefore, we use a one-time registration strategy, that allows us to count unique users, rather than downloads, as well to count how many unique UQLab licenses are still valid in any given time period. Note that we only care about the how many use, rather than who is using UQLab. This gives to us, but more importantly to the funding agencies, a pretty good idea on how the project is doing.
    Additionally, we also offer non-academic, non-free licensing schemes to privates and companies, in the hope of reaching some form of self-financing, but at the moment this is still in the “land of the abstract” (and being based in Zurich doesn’t really help).

  • Therefore, we need some sort of licensing system: to enforce the requirement of belonging to an academic institution, and to prevent both abuse and number inflation (hence the yearly renewal model). UQLab itself is actually the composition of two different software packages: UQLabCore, a domain-specific-language (DSL) that doesn’t contain scientific code, but provides a natural semantic environment for our 3-step approach at UQ, and UQLabModules, a set of libraries built on top of UQLabCore that contain all of the algorithms and provide the actual features. A registration/license is only needed for the proprietary (but free for academics) UQLabCore programming language. The modules are licensed under a BSD 3-clause license, and can be downloaded separately from the core, exactly as the entire documentation.

In short, all of the scientific code in UQLab is open source, and you can consider your registration as a very important personal contribution towards the continued development of UQLab. It is thanks to the momentum that its user base has gained throughout the years (~800 registrations and 1.2k+ downloads per year from 77 countries, with a growing active user base of over 1,000 users) that we feel empowered to continue in our endeavor to develop and distribute UQLab.

Apologies for the long post, but I hope this gives you an idea about the thought process behind a topic that is dear to many potential and actual users.

'til the next one,
Stefano

4 Likes