MPL FAQ#

PISE Online is meant to be a harmonious ecosystem of remixable educational modules. Our goal is to make this work as smoothly as possible, and to honor our set of Principles.

As a result, we require any Proofscape content repos hosted at PISE Online to be licensed under the Mozilla Public License version 2.0 (MPL-2.0 or just MPL in the following).

Even if you don’t want us to host your repos, using the MPL-2.0 is still strongly encouraged, since we believe this will promote the most interoperability, and the most cohesive community.

Attention

The discussion on this page represents Alpine Mathematics’ views. Nothing we say here constitutes legal advice.

Principles#

  • Everyone should be able to borrow from anyone else’s library.

  • It should be easy to borrow from another library, without any vague legal questions about which part of your work is “derivative” or “based on” that library, and which part is not. The MPL offers a simple, file-based topology that’s easy to understand and apply.

  • Sites like Wikipedia have set up the societal expectation that collaboratively built content should be licensed with recursive, credit-giving licenses, and we agree with this idea.

  • The compiled form of Proofscape repos should not be distributed without also making the source form available.

  • We want a cohesive community where licensing is a simple thing that no one has to think hard about. And again, sites like Wikipedia have set the precendent for the rule that, “When you contribute here, you use the same license we all use.” So we want a single license.

  • All libraries must be compatible with every open source component used in the Proofscape ISE software.

  • Libraries should try to stay compatible not only with existing software, but even with future software, yet to be imagined. This means using a highly compatible license.

  • The license must make it easy for us to host content. When we host your content, we are distributing, displaying, and arguably even performing it. Furthermore, we are distributing your library, and derivations of your library, in combinations and collections with other authors’ libraries and derivations thereof. We need a simple set of rules to let us know that we are in compliance in all such situations.

FAQ#

Why MPL?#

We chose the MPL-2.0 based on our Principles.

I’m writing a Proofscape content repo. How should I license it?#

If you want your repo to be hosted at https://pise.alpinemath.org, then you must license it under MPL-2.0. (But doing so does not guarantee we will host it.) See our Terms of Service.

Even if you don’t want us to host your content repo at our website, we still strongly urge you to license it under MPL-2.0. We believe this is the best way to ensure compatibility both with the Proofscape software, and with other content repos.

How do I apply MPL-2.0 to my Proofscape content repo?#

Do two things:

(1) Include a complete copy of the license in a file called LICENSE in the top-level directory of your repo; and

(2) Include the MPL’s standard, three-line boilerplate at the top of each and every nonempty .pfsc file in your repo, using the Proofscape comment syntax (leading #):

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

You should also include a copyright line, stating year(s) and name(s) of copyright holder(s). If you want, you may also state a project name. For example, a complete file header might look something like this:

# --------------------------------------------------------------------------- #
# Proofs are Great                                                            #
# Copyright (c) 2022 Martha and Matthew Matician                              #
#                                                                             #
# This Source Code Form is subject to the terms of the Mozilla Public         #
# License, v. 2.0. If a copy of the MPL was not distributed with this         #
# file, You can obtain one at http://mozilla.org/MPL/2.0/.                    #
# --------------------------------------------------------------------------- #

Where can I learn more about the MPL-2.0?#

Read the Mozilla Foundation’s FAQ, and the license itself.

Where does the MPL-2.0 land on the spectrum of open source software licenses?#

The MPL is an example of what is sometimes called a “weak copyleft” license, meaning it lands somewhere between the “permisive” licenses (e.g. Apache, BSD, MIT), and the so-called “strong copyleft” licsenses (GPL, AGPL). See https://choosealicense.com/licenses/.

Why not CC-BY-SA? It’s good enough for Wikipedia pages, so why not for Proofscape modules?#

Our conclusion is that Proofscape content repos are sufficiently software-like to warrant use of a software license.

Consider the lib, build, and graphdb directories in a standard Proofscape installation. Under lib you have content repos, which play the role of source code. Under build and graphdb you have the compiled products, generated from source.

We feel the latter should not be distributed without also making the source available, and this is exactly what a software license like MPL-2.0 guarantees.

But can a software license be applied to content? Proofscape annotations feel more like content than code.#

Yes, a software license can be applied to content, especially when there is a clear meaning to the phrase “Source Code Form,” as relates to that content. See https://choosealicense.com/non-software/.

In the case of Proofscape annotations, there is a definite distinction between their Source and “Executable” Forms. The Source Form consists of Proofscape-flavored markdown, with widgets. The Executable Form consists of automatically generated HTML and JSON, plus nodes and links within a graph database. The latter is decidedly not the “preferred form for making modifications”.

Thus, the relevant definitions from the MPL-2.0 clearly apply to the case of Proofscape annotations; the applicability to Proofscape deductions is even more obvious.