Harry George posted this letter he received from W. Press, of Numerical Recipes, on comp.lang.modula3. It makes far-reaching claims for the perogatives enjoyed by a software copyright holder. George notes in private correspondence to me that others have advised him that not all of these claims are valid. George's reply to Press follows. -- K. Dawson
From hgeorge at eskimo dot com (Harry George) Date Mon, 22 Jan 1996 04:13:01 GMT Newsgroups comp.lang.modula3 Message-ID <DLKEDr.Dv6 at eskimo dot com>
My effort to _reimplement_ Numerical Recipes in Modula-3 is dead. Here is W. Press's statement. (my response is in the next posting) ------------------------------ Dear Harry George, Thanks for your letter of 20 Jan, which has been forwarded to me by my colleague Bill Vetterling for answering. I regret that this answer is not going to be much to your liking, so I want to begin by thanking you for the up-front and straightforward approach that you have taken in coming to us. The problem is that, as you yourself state, you don't completely understand how copyrights work. While copyright doesn't protect ideas, it does protect virtually all aspects of the "expression" of those ideas. Here are some (just some) of the aspects of Numerical Recipes that come under our (or, in some cases, Cambridge University Press') copyright: 1. The names of the chapters, and the ordering of the collected chapers by subject (even if you changed the exact names). 2. The collected names (though not necessarily any individual name out of context) of the Numerical Recipes routines. 3. The ordering of the arguments in the calling sequence for each routine (to the extent that any re-ordering would be equally functional). 4. The choice of variable names within the individual routines. 5. The ordering of statements *whenever* such ordering is not *required* by the underlying mathematical algorithm being expressed. This probably makes the ordering of about 50% of all the code lines a matter of "arbitrary choice" and therefore copyrightable. 6. The ordering of sub-expressions within any line of code, *whenever* such ordering is *arbitrary* (as for every use of commutative operators like +, *, etc.). 7. All other expressive choices in the code that are not strictly required by the mathematics. 8. Possibly (this is debated among the lawyers) also the collected "choices" of which algorithm to use in implementing the goals of the particular routines. That is, NR is a collection of algorithms (even if uncopyrightable individually) in the same sense that a dictionary is a collection of words (uncopyrightable individually). I think you can see that while it is possible, and even feasible, to take some Recipes, extract the ideas, and re-implement them, it is by no means easy. Probably (the lawyers say) it requires at least two people, one of whom has no access to the NR code but who only gets "clean" communication of ideas only, and who writes the actual code -- which must remain untouched by anyone who has read the NR source. (This is in fact how industry legally "breaks" copyrights, as in the classic case of the original IBM PC bios.) In practice, we think it would be virtually impossible for you to do any significant number of NR routines (much less the whole book!) without substantially violating our copyright. One might think of using automatic tools to (e.g.) change all variable names, re-order all expressions randomly, etc. However courts have held that doing this -- if the only purpose is to defeat a copyright -- is itself illegal! That is, it does not constitute the genuine extraction and understanding of the underlying "ideas" that the copyright does not protect. Now, here is the part that, I'm afraid, you really are not going to like: We cannot give you permission to proceed with your project of translating NR into Modulo 3. There are several reasons for this, but a sufficient one is that we have licensees who have purchased translation rights to NR for very substantial amounts of money (and with very strong controls by us on their quality). Some of our contracts specify that we are not allowed to sell comparable rights for less than these licensees paid. Letting you proceed would, in our opinion, violate these contracts. We must therefore ask you to terminate your project immediately, and especially to remove all code derived from NR from your Web page and any other public area. Although we are not hereby giving you permission to do so, I want to mention that it is probably "fair use" for you to translate NR into Modulo 3 for your own use on specific computers (to the extent that you have a valid license from us to use NR on those computers), but those translations are in copyright limbo: they are "derivative works" of our copyrighted work, and you can't transfer them to anyone else, even to people who themselves already have NR licenses. (The transferring is what very likely goes beyond "fair use" provisions in the law.) I am genuinely sorry that I must write such a negative response to your straightforward inquiry. Sincerely, Bill Press Numerical Recipes -- -------------------- Harry George email: hgeorge at eskimo dot com smail: 22608 90th Ave W / Edmonds WA 98026 quote: <under construction>
From hgeorge at eskimo dot com (Harry George) Date Mon, 22 Jan 1996 04:19:16 GMT Newsgroups comp.lang.modula3 Message-ID <DLKEo5.E0r@eskimo.com>
Here is my reply to W. Press. I have removed the web page. I'm pretty disgusted with his insinuation that I cheated, but beyond that this should be a positive experience in letting nr.com know there is a potential market for m3 texts. Personally I learned a lot about algorithms I always took for granted in the past. ----------------------------------- Thanks for your reply. It does not match the statements in your book regarding separate copyright, but I'll take your word for it that it is a valid statement of the legal situation. Simply on the basis of using the same chapter ordering, function names, and parameter order, my code is (and is intended to be) a close match to NR92. If that, despite the Supreme Court's standing on "look and feel", is a copyright violation, then I have erred. To rectify this, I will remove the material from my web page. I will then publicize the situation in the (only) newsgroup in which I have announced this work. However, I most emphatically did not, have not, and will not do a source-to-source translation. My lab notes adequately demonstrate the independent lines of reasoning used in my work, and the alternate sources. The routines I have implemented are not brain surgery. They require reasonable math exposure and lots of attention to bookkeeping, plus some insight into machine truncation. Other functions I have had to skip because I did not understand them. Yes, I am aware of source-to-source translators. I've written several myself, and have used commercially available tools such as Refine. I'm sure I could manipulate NR code so that even statistical clustering would not show commonality. But that is not the nature of my work on this project. This is true reimplementation. The pace of my work is not due to such tricks, but rather due to intense thinking, long hours, and use of Modula-3. I am typically an order of magnitude faster in M3 than in C, Lisp, Ada, Perl, C++, or (god forbid) COBOL, Fortran, or Assembler. (Java at least has similar semantics, but the syntax is a mess.) Which raises my key concern. I would like to _strongly_ urge you to consider releasing a verison of NR in Modula-3. The user community is small, but highly professional, and typically multilingual. An M3 version (particularly if you took my lead and used idiomatically appropriate approaches rather than Fortran- and C-isms), could serve as a generic text for many languages. If Sedgewick can do his Algorithms book in Modula-3 why not you guys? It's a market. If you have no such plans, then I intend to turn to one of the public domain numerical analysis packages, and implement major portions in M3. (That may have to wait for a few other critical-mass building projects.) [snip] >I am genuinely sorry that I must write such a negative response >to your straightforward inquiry. > So am I :-} >Sincerely, >Bill Press >Numerical Recipes > > -- -------------------- Harry George email: hgeorge at eskimo dot com smail: 22608 90th Ave W / Edmonds WA 98026 quote: <under construction>
| TBTF HOME |
CURRENT ISSUE |
TBTF LOG |
TABLE OF CONTENTS |
TBTF THREADS |
SEARCH TBTF |