gnu-misc-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GPL traitor !


From: Alan Mackenzie
Subject: Re: GPL traitor !
Date: Mon, 11 May 2009 21:10:20 +0000 (UTC)
User-agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (FreeBSD/4.11-RELEASE (i386))

In gnu.misc.discuss Hyman Rosen <address@hidden> wrote:
> Alan Mackenzie wrote:
>> If you can't copyright a data structure, you can't copyright a function.
>> They're the same thing.  Please tell me you're just winding me up.

> I'm not trying to. I'm trying to explain to you that copyright is about
> copying text.

It's about more than that.  Program executables are not text, yet are
copyright.  A translation of a literary work to a new language involves
no copying of text; rather, its essence is distilled and reformulated,
yet is subject to copyright.  Fictional characters in a novel or TV
sitcom are copyright, and another author/scriptwriter would be violating
it, were he to use essentially the same characters, even if he renamed
them (so that there would be no textual copying).

> The trigonometric function 'sine' and the data structure
> 'binary tree' are both abstract ideas and inventions that cannot be
> copyrighted. The text of a function which computes sine and the text of
> a function which traverses a binary tree can be copyrighted.

'Binary tree' is an abstract idea, just like `function taking an integer
argument returning an integer result'.  A particular concrete data format
is not, any more than a particular character in a novel.

> When you write a new piece of source code from scratch, and that code
> contains text which will result in a separately written sine function
> being called under some circumstances when that program is executed,

The sine function has been public domain for at least 2000 years.
Implementations may be copyright.

> or if that code contains text which upon execution will manipulate
> binary tree structures by way of calls to separately written functions
> that do such things,

Code which manipulates binary trees (but not necessarily the code
which operates on the information contained in them) is also public
domain.

> this new piece of code is not subject to the copyrights of the those
> separately written functions, for the very simple reason that the text
> of those functions is not being copied or transformed.

Copyright is about more than textual copying of text (see above).  Even
if your conclusion is right (which I doubt) your argument is incomplete.

[ .... ]

>> I was using the word "derived" in that sense.  Writing a code generator
>> to transform data in one highly complicated data structure (the
>> compiler's intermediate form) into another highly complicated data
>> structure (the target OS's object format) is a significant auctorial
>> transformation of these data structures, not a trivial one.

> You still don't understand. The data structures that appear in memory
> as artifacts of the execution of a program are not objects which can
> be copyrighted.

Data structures are abstract things which exist in the programmer's mind,
documentation, and source code.  Data structures do not appear in memory,
except to the extent they exist implicitly in the code that handles them.
Only that code gives them any meaning, any existence.  That code IS the
data structure.  Assuming it wasn't dynamically generated somehow, that
code (the data structure), was copied in stages from the original GPL'd
.h file, undergoing transformations at each copying stage.  That copying
is analagous to that which goes on when a novel is translated to Russian.

> Therefore it does not matter how they are transformed.
> The code generator itself, provided it has been written from scratch,
> is not a transformation of any other object. That it does transformation
> of data structures when executed is irrelevant.

A bit like the novel in Russian, "written" (i.e. translated) "from
scratch" isn't a transformation of the original novel in English?

>> It's a reasonable, if imperfect, analogy.  Please explain why you don't
>> think that a novel's (human and animal) characters aren't just "ideas
>> and invention" the way you say data structures are.

> Because the courts say so. See <http://www.ivanhoffman.com/characters.html>
> for one discussion. The courts have ruled that an author acquires copyright
> over a sufficiently well-delineated character.

Quite right too.  Have they ruled that he doesn't acquire copyright over
a sufficiently well-delineated data structure?

Both of these take a lot of work and creativity to create, give their
creators commercial advantages over the less good ones of their
competitors, which is sufficient justification for allowing them
copyright.

>> You can't copyright the idea of a compiler's intermediate data format
> > being a linked list in memory, but you can copyright the particular
> > instance of it which is part of GCC.

> You can copyright the text of GCC's implementation of its intermediate
> data format. You cannot copyright the data format itself, ....

Do you know of any concrete court cases which back this assertion up?

In a piece of music, the composer can copyright a well defined tune, or
a specific chord sequence.  Another composer may not create a different
"implementation" of these, except under specific circumstances.  What
is copyrighted is the _essence_ of the tune or chord sequence.  Its
"textual" form (i.e. the instrument/voice it's played/sung by, the key
it's in) is irrelevant.

> and you cannot copyright instances of this data format which appear
> during the operation of the program.

That's a category error.  The data format doesn't have "instances", it
is a singular entity.  There will, though, be many instances of data
of that format.  Their copyright, to the extent meaningful, will be
held by the owner of the source code which the compiler is currently
compiling, since they're a mechanically transformed form of that source
code.

> The overarching idea is that copyright applies to things that authors
> have written. Copyrightable things are the results of human labor.

An intermediate data structure conforms with every part of your criterion.

>> Just where do you get that notion from?  It's the first I've heard of it.

> The Lotus/Borland interface lawsuit was an example.

>> Only if there are two programs involved (otherwise we'd have "intra", not
>> "inter").  In the scenario I've been describing, there's only a single
>> program involved.

> With respect to copyright law, we're talking about human endeavor.
> One person is writing a computer program which is intended to inter-
> operate with another one. Writing an add-in or a code generator or
> whatnot is that sort of thing.

You seem to be saying that copyright law entitles anybody to extract
any portion of a program's functionality away from the whole, and combine
this with any other functionality of his choosing, and to this end he
may disregard any copyright held on that program by somebody else.

You are regarding programs not as discreet coherent things (like people,
or planets or books) but as infinitely divisible stuff (like water, or
interplanetary dust or verbiage), and in this you are mistaken.  Programs
are coherent wholes, or sometimes assemblies of a few large pieces (like
the Flash plug-in to Firefox).

>> It's kind of surprising that the courts don't enforce the disclosure
>> of programs' internal data structures to facilitate interoperability,
>> isn't it?

> They allow reverse engineering for the sake of interoperability.
> They upgrade to forcing disclosure when antitrust and monopoly is
> involved.

That is, to allow the external data structures and protocols to be used
by other programs.  They don't allow the original program to be carved
up into pices, though.

>> Rubbish!  The GPL copyright holder wishes to maximise interoperability.
>> A non-free extension of a program is less i11e than a GPL'd extension.

> It doesn't matter what the GPL copyright holder wants. He can exercise
> control only as copyright law permits, and that permission is only for
> copying.

That's a non-sequitur.  The context was that you were implying that the
GPL is, by its nature, an important obstacle to i14y.

>> Anyhow, your talk of i14y tacitly assumes two existing pieces of code
>> which could be combined, but for copyright restrictions.  What I am
>> talking about is an extension of an existing program specifically
>> intended for it.

> No, I am talking about the second case as well - writing a program
> which is intended to be an add-on to an existing program, and writing
> that add-on from scratch, not by copying an existing piece of code.

As I said, the degree of i14y is wholly at the whim of the add-on's
author.  If he's stupid enough to write a new bit which violates the
original's license, you think a court, in persuit of i14y, is going to
hold the license invalid rather than telling him to stop being a silly
boy?  Unlikely!

>> Being able to read and modify programs enables you modify them to be
>> i11e with other programs

> That's a happy consequence [of the four freedoms of the GPL], not a
> goal.

You are wrong there, to within epsilon of certainty.  The avoidance of
fruitless druge work has been a central value of hacker culture since
4004 BC.  It is easy to see, particularly for somebody like RMS, that
making and keeping programs i11e will reduce drudgery considerably, and
this would certainly have been one of the motivations in formulating the
GPL. 

-- 
Alan Mackenzie (Nuremberg, Germany).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]