Some questions about software licenses and copyrights

First a specific question about what constitutes copyrighted material and potential violations of a copyright.

I’m completing a refactoring of S.W Sloan’s routines for reordering/renumbering FEM meshes given in

S.W. Sloan, “A Fortran Program for Profile and Wavefront Reduction,”, International Journal For Numerical Methods in Engineering," Vol 28, pp 2651-2679 (1989).

A copy of this paper is available here

Sloan gives a complete listing of his routines in the article. However, the article is copyrighted by Wiley&Sons who publish IJNME. My question is , if someone publishes a complete listing of a program with (to me) the intent that others will copy the program from the article is it a violation of copyright law to then redistribute a version of the code based on the listing in the article.

As others on this forum are stepping up and refactoring or resurrecting old code, I think issues like this need to be clarified. Therefore, I think it would be helpful if we had the following.

  1. A document that outlines basic copyright and software license restrictions in the form of lists of things you can do and things you cant. In other words something that summarizes the do’s and don’t in simple sentances and strips off a lot of the lawyer language you find in the license texts. The format would be just something like

You can do this
a.
b.

You can’d do this
a.
b.

  1. I would like to see a repository somewhere that contains the license text files of all the most popular and prevalent licenses (all the GPL’s, BSD, Apache, MIT etc). I think
    it would help to have them all in one place

  2. I haven’t looked at FPM yet so it might already do this, but if it doesn’t it would be nice if FPM could also pull whatever license info required for a particular project both a new license for the refactored code along with any old license or copyright restrictions

I think these suggestions might help avoid any potential legal problems that might occur as more of the old Fortran code base gets modernized.

Just my 2 cents

1 Like

This would be nice, but the “lawyer stuff” is the reason we have these licenses in the first place, my experience the supermajority of programmers are OK with code reuse as long as they’re credited, especially in scientific computing where researchers are desperate for citations to boost whatever arbitrary metric is popular nowadays for tracking those things. So you’re not dodging any lawyers here.

I also feel there are already good writeups online on what license corresponds to what freedom (as in speech) by actual lawyers, and trying to write your own summaries opens you up to potential legal issues.

Several licenses specifically require the license file to be located in a particular location, usually the header and the root directory of the code package.

What could be useful (and FPM may already do this) is if a file was autogenerated by the build system with all the packages and their associated licenses, which developers could then look at and say “OK, this and this package is safe to use, this one is GPL3 and Richard Stallman will come at me with a katana if I try to use it”. Depending on where the upstreams for the packages are, you could probably query GitHub or GitLab APIs to determine the license.

This may be too much work, though, and doing it by hand is the boring-but-simple way.

Alan Miller modernized many published Fortran codes, some from ACM publications. He wrote

N.B. I have been asked to provide a link to the copyright policy of the ACM. Loosely paraphrased, this allows use, and modification, of the TOMS algorithms for most non-commercial purposes. It also emphasizes that the ACM accepts no responsibility for the accuracy of the code.

I have updated some of the Transactions on Mathematical Software (TOMS) algorithms to Fortran 90.

Ideally a journal publisher has a stated policy.

There is one place for this already: SPDX License List | Software Package Data Exchange (SPDX)

Honestly, I’d just contact the author directly and ask them rather than trying to figure out the copyright of the journal, they should still hold the copyright to their own code and can extend redistribution rights to you. (And would be happy to know someone’s using their code.)

Well, that is what the ACM asks you to do when it comes to older software (pre-2013). I did so myself and Robert Renka, the author of the interpolation packages I am interested in was happy to allow me to use the codes in the way I envisage.

Scott William Sloan (Obituary)

In the case I cited, the publisher (Wiley & Sons) owns the copyright (at least thats implied by the copyright mark at the bottom of the first page of the article). While Scott Sloan might not have a problem with redistributing his code, the legal eagles at Wiley & Son might. My understanding of the copyright is that it covers the full text of the article which includes the listing. I also would like to see a summary of some kind that would include the caveat that the full license text should be consulted. My problem with most of the licenses is the people who write them don’t understand the power of simple declarative sentances.

As @ivanpribec notes, some (probably a lot) of the authors of the original code are no longer with us. It’s going to be a little hard to get their approval. This is one of the reasons I think we as a community need a clear understanding of what the legal ramifications of trying to refactor and redistribute old code might be. I’m no lawyer and have never played one on T.V or in the movies but I know enough that in todays environment when people appear to live to sue other people I need to make sure I’m not placing myself in some kind of legal jeapordy.

In S. W. Sloan’s obituary his colleagues wrote:

Scott’s early research involved conventional displacement finite elements. He made several seminal contributions in this field, notably … a fast algorithm for constructing Delaunay triangulations, which is used to develop finite-element meshes consisting of triangular elements; to name but a few. These developments are incorporated in the software developed at Newcastle, but they are also in many bespoke finite-element codes developed at universities and research centres around the world and in commercial software packages.

Among the 20 best papers (out of over 350 published in his career) cited in his Royal Society nomination are also

  • Sloan, S. W. (1987). A fast algorithm for constructing Delaunay triangulations in the plane. Adv. Engng Software 9, No. 1, 34–55. Crossref, Google Scholar
  • Sloan, S. W. (1989). A FORTRAN program for profile and wavefront reduction. Int. J. Numer. Methods Engng 28, No. 11, 2651–2679. Crossref, Google Scholar

which includes the work referred to in the OP. It looks like he was very proud of his Delaunay and reordering routines.


Here is my current understanding of the legal status, based on information I could find on USA and Australian copyright laws:

  • The copyright is held by Wiley & Sons, but potentially also S. W. Sloan and his employer - The University of Newcastle, depending on the exact conditions specified in the CTA - copyright transfer agreement - signed at the time of publishing. For works published after March 1, 1989, use of the copyright notice is optional.
  • The exclusive rights established by copyright include
    • the right to publish
    • the right to reproduce in material form
    • the right to communicate to the public (this means make available online or electronically transmit; perhaps violated in the OP, but we can see the employer retaining the right to distribute the work internally on their network)
    • the right to perform in public
    • the right to adapt (make derivative works)
  • The work in question falls under the broad category of “literary works” which includes articles and computer program among others.

You might be able to exercise these rights if

  • copyright in the material has expired (generally the life of the author plus 70 years from his death; in this case we can assume copyright has been transferred to Wiley, but otherwise the copyright would likely remain with the heirs or whoever inherits under intestacy laws)
  • you have written permission from all the relevant copyright owners; or
  • your purpose falls within the fair dealing provisions or other exceptions in the Copyright Act; or
  • your copying comes under the statutory licence provisions of the Copyright Act.

What counts as fair use is somewhat relative. It is likely that educational or non-commercial use would be easily considered as fair use. Additionally, you would only be extracting a portion of the work. Your use case could be seen as transformative, i.e. porting the code to a new language dialect. Given that there are many reordering routines available (e.g. AMD in SuiteSparse), both open source and commercial, it seems like your unlicensed use of the Fortran routines wouldn’t pose any market threat to the copyright owner. You also wouldn’t be competing with distribution of the article itself. This paragraph is just my personal perspective, and a court might see it differently in case you’d be sued for copyright infringement.

One loophole I see is that the CTA from Wiley (assuming it’s similar to the one from 1989) says:

The definition of Contribution does not extend to any supporting information submitted with or referred
to in the Contribution (“Supporting Information”). To the extent that any Supporting Information is
submitted to the Journal, the Owner is granted a perpetual, non-exclusive license to publish,
republish, transmit, sell, distribute and otherwise use this Supporting Information in whole or in
part in electronic and print editions of the Journal and in derivative works throughout the world, in
all languages and in all media of expression now known or later developed, and to license or
permit others to do so.

Since the code is provided in an Appendix, you could argue it falls under the “Supporting information”. In this case the copyright was retained by the Contributor (S. W. Sloan or his employer), while the journal (the “Owner”) was granted a perpetual, non-exclusive license. Assuming my interpretation is true, you’d probably need to obtain permission from his wife or children.

Given that the algorithm can be recreated by a skilled programmer if need be (clean-room design), I see very little motivation from Wiley to accuse you of copyright infringement as long as you don’t distribute the paper. Moreover, in your derivative work you could encourage people to cite the original work of Sloan, which would benefit the publisher.

If you are not comfortable with unlicensed use, then your best bet IMO is to contact Wiley or the journal, and ask for permission to adapt a portion of the work and communicate it with the public, promising that you will publish links to the original work on the publishers website, and encourage users of your adapted code to cite the original article.

I am no expert on this matter, and I have many of the same questions as others in this discussion. However, I have heard from many people that algorithms cannot be copyrighted, so there is no need to apply clean-room design to recreate an algorithm. It is somehow the code itself that is copyrighted, not the algorithm. The various open-source licenses allow (with various levels of restrictions) the code itself to be used, not just the algorithms on which they are based. I think if someone wants to protect an algorithm, then it needs to be kept secret. It cannot be revealed through publications, or patents, or through open source.

As @ivanpribec suggested, the best bet is to contact the authors and/or the journal for an explicit permission to use the code under a BSD (let’s say) license.

Otherwise you have to treat it as any other code with a commercial license: you cannot just put it into an open source project without a clean room implementation. However, I think you can implement it yourself using the other (non-code) information in the article.

Indeed, implementing the algorithm from the non-code information should not constitute a copyright infringement. As a an example, albeit of potential patent infringement, you can read the story of the FFT, as recalled in the oral history from James W. Cooley on FFT and Numerical Analysis.

The relevant section is “Writing the 1965 Paper, Patents”:

Excerpt (click to open)

Writing the 1965 Paper, Patents

Goldstein:

When did you start working on the FFT paper and can you tell me something about writing that paper, the 1965 paper?

Cooley:

After I wrote the program and gave it to Dick Garwin, he went about publicizing it and they still didn’t think it was very important. We had a seminar here in the math department, as we often did. We were talking about computing and so on, and a couple of the people who were developing APL, Ken Arborson. Are you familiar with APL?

Goldstein:

Sure.

Cooley:

Well, they were giving some lectures on APL and then they said, “are there any other algorithms that we can illustrate with this?” Of course it wasn’t the programming language then, they were talking about it as a way of describing algorithms. Nobody had implemented it on a computer. So then I volunteered to give a talk on this algorithm, which I did. Then it gained some interest, they programmed in APL and did a very good job and I think one of their later programs could do the whole thing in one line of APL.

But in any case, there was a lawyer in the back of the room there named Thomas, but I can’t remember his first name. But he heard my talk and said afterward, “This has patent possibilities.” So they called a meeting with some attorneys, the patent attorneys, and they decided yes, it has patent possibilities. There are several considerations, however. One is that John Tukey isn’t an IBMer, the other is that we better get the thing - instead of patenting, put it in the public domain so we protect the right of IBM to use the idea, before someone else patents it.

Cooley:

So they suggest that I write a paper on it.

Goldstein:

Yea.

Cooley:

So I just wrote a paper, if you have seen it, it is rather short, simply describing the basics of the method and of course you could have N, any number of factors and then show you can get the smallest number of operations of N, as a power of 2 or 4, but any set of factors will do, which John pointed out right from the beginning. And the paper went back and forth from me to John Tukey several times. Finally he agreed on it and we got it published. As I said, it was only because the lawyers told us to do so. Now the method for protecting this as a patent was this. The lawyer suggested that somebody design a device, because at the time you could not publish or patent an algorithm. You have to describe a process on a device, so they suggested that Ray Miller and Wienegraad in our department design a circuit which would do the Fourier transform by this algorithm, and they told me to put a footnote in the paper saying they did it. That would put the whole thing in the public domain and prevent anyone from patenting it.

Goldstein:

So they did an analog circuit that realized the FFT?

Cooley:

It was digital because it is a digital method. Well, it turned out to be a very good idea, because many years later, someone did get a patent, a fellow named Ron Bracewell, when the Hartley Transform came along, which has a lot in common with the FFT, a basic idea of doing the factoring is there, and he described his algorithm and of course most of the description was simply the FFT. Would you like me to go on with another part of the story about the patent?

Goldstein:

Sure, sure.

Cooley:

Well, this was much later, it must have been around ’87, I worked on a software package [for] an engineering and scientific subroutine library, for the new vector machine which was coming out. The day before the machine was to be announced, the lawyers called up and said, “Hey, you might be infringing on somebody’s patent.” The subroutine package, which was a very important part of the vector machine to have this library available. We had a very quick meeting and we went over there and they asked us what we had done before and what this has to do with the patent. Now, Ramesh Agarwal and I who had - we worked on this and in fact Ramesh did all of the programming for the FFT. We described what the original FFT and what we had done and how we had put it in the public domain and in fact one of the lawyers, Frank Tezerdian, was the lawyer who actually suggested doing the publication of the FFT idea.

Goldstein:

You mean originally or - ?

Cooley:

Originally, yes.

Goldstein:

Oh, I thought you said that was someone named Thomas.

Cooley:

No, he was the fellow who said that was patentable and called this meeting. He had since passed away.

Goldstein:

I see.

Cooley:

But Frank was on that committee too, and Frank was the one who suggested the strategy for putting it into the public domain. Ramesh and I had already read the patent, somebody had sent it to us, and we were well-prepared and we were able to show the lawyers and of course since Frank Tezerdian was familiar with it, we were able to respond to the lawyers who were setting up and issuing the software package. So this saved the day. We just probably would have held up the release of the vector machine, which was a pretty strategic thing for IBM.

In this case because the FFT algorithm was put into the public domain (through publishing in Math. Comp. 19 (1965), 297-301 (PDF available)) and implemented on a digital circuit (so they had a “device”), they could avoid patent infringement.

Thanks to everyone for their responses. After a bit of hunting around, I’ve found that Wiley has a web site with links dedicated to “rights and permissions”

I’ll probably try there first. Part of my original question about Sloan’s code was prompted the following statement in the summary of his IJNME paper.

“The implementation is based on an algorithm published previously by the Author and appears in response to a large number of enquiries for the source code”

My reading of this line is something like - I’ve been getting a lot of request for the code and the best way for me to distribute it is to publish the full listing in this article.
So I took that as an “implied” consent to reconstruct the code from the listing. However, what little I know about copyright law (which should be obvious by my questions) has me a little gunshy about just blindly using the code even if that was Professor Sloan’s original intent.

Once I get a firm idea of the legal ramifications of reconstructing and refactoring the code, I’ll release it as open source if anyone is interested.