Is inherited class a derivative work?

Michael Beck mbeck1 at compuserve.com
Mon Oct 22 01:22:52 UTC 2001


> -----Original Message-----
> From: angelo.schneider at oomentor.de
> [mailto:angelo.schneider at oomentor.de]
> Sent: Thursday, October 18, 2001 12:38

> I'm not insisting on that.

So can we agree that a class is a copyrighted entity?

> I of course of the oposite opinion, I only liked to point out:
> After you have created a derived class, which is your own work, you
> usualy link the base class to it.
> The resulting binary is legaly a "derived work" as it is an
> elaboration
> of the original work. Note: teh binary is the derived work, not the
> derived class.

We have agreement on the binary. But on the derived class we have to agree to
disagree <g>.

Unfortunately, your argument for me is the same as stating that only a built
house is the derivative work, but the changed "house design" is OK.

But a CLASS is a design blueprint for creating objects, the same as
"architectural work" is a design for a house, a blueprint for a house.

By saying that a derived class is NOT a "derivative work", you are saying that
derived house design is not a derivative work. Please note that it doesn't
matter HOW you get to the changed design. You can scan the house design in,
convert it to AutoCAD format, and this would be a copy of the original design.
But when you make changes to that copy, you are creating a "derivative work".

The main point for me is that I provided you with a blueprint, and expect that
objects created from this blueprint will be the same. When you use composition,
and include the original class there, the created object will be the same, i.e.
the blueprint has not been changed.

If you inherit a class, and change/add anything, the created object won't be the
same, i.e. the blueprint itself has been changed. And that exactly was your
intent - to make a change, to adapt the blueprint to your needs. So if the
blueprint is different, how can you claim that you haven't create a derivative
work?

Once again, it doesn't matter, what technology you have used. Your intent is
clear, and the result is also clear. Regarding technology, the Copyright is
pretty clear that it doesn't really care about it, by stating: "by any method
now known or later developed".

>From US Copyright Law:

----------------
"Copies" are material objects, other than phonorecords, in which a work is fixed
by any method now known or later developed, and from which the work can be
perceived, reproduced, or otherwise communicated, either directly or with the
aid of a machine or device. The term "copies" includes the material object,
other than a phonorecord, in which the
work is first fixed.
----------------

Before the compilers were made smart enough to "understand" what you mean by
inheriting, you would have to copy & paste all the code. So the above paragraph
states for me that you "are" creating a copy of my class (as a blueprint for an
object), because with the help of a compiler my original class "can be
perceived, reproduced, or otherwise communicated".

So it is not a simple "citation" as you state. Now, if we agree that inherited
class without any changes to it is a copy, then by making any changes to this
copy of my original class, you are creating a "derivative work".

And you don't have to wait till the object has been created to state that you've
changed the blueprint.  The same as you don't have to wait till the house is
built to state that somebody has changed the original blueprint and has created
a derivative work.

The same way as you don't have to wait till a book gets published to state that
you made changes to it and created a derivative work.

> As you do not change the original class, that menas their source code,
> you create no adaption.

Can we agree once and for all that you don't have to change the original to
qualify something as a "derivative work"? Movie script, translation of a book,
making changes to a copy of a house design are best example. This would make
easier to focus on the relevant issues.

> > All those elements are part of the class, the same as words
> are part of a book.
>
> This is precisly wrong. Because again: this is a technical issue.
> The derived class would be only under one situation a adaption of teh
> original class:
> This is when you put the derived class into the exact same
> source file,
> because then you do moidify/adapt the original work, the
> original source file.

Why is everything a "technical" issue to you?  Copyright doesn't care about the
technology, current or future, only about the copyright of the author. Let's
agree that you don't have to change the original to qualify something as a
"derivative work", and let's not bring this argument again.

> > Individual words cannot be copyrighted, and anyone is free
> to use them in a
> > different combination. But as soon as your start to change
> them in a particular
> > book, you are making modification to this book. So unless
> you deny me the right
> > to copyright my class, from the CLASS perspective any
> changes to the class
> > implementation (and not just to the class interface) should
> be treated as
> > modification of this class, and as such, a "derivative work".
> >
>
> But it is not treated as that. At least not as long as your derived
> class is kept seperated and not tweaked into the original code base.

That has nothing to do with it. When you write a movie script from a book, it is
also separated from the book, but it is still a "derivative work". I don't think
that this argument holds at all.

> > Yes, the original class shines through reworking (a
> derived/inherited class).
> >
>
> Nope it dos'nt!
> Ant it can't. How should it?
>
> public class AngelosSample extends MichalesSample {
>
> 	public void doSomething() {}
> 	public void doSomethingInteresting() {}
>
> }
>
> So, please how muich of your class is visible here?
> What does your class?
> What is the interface?
> Do I overwrite something, or do I only add something?

It doesn't matter - by overriding OR adding something, you have already changed
the blueprint, and thus created a "derivative work". This is a two-part process.
By "extending", you are creating effectively a copy of "MichalesSample" (see
definition of copy above). By adding/changing elements in the copy, you are
creating a "derivative work".

In order to define if something is a "derivative work" it's required to compare
the two entities in question. When I compare "AngelosSample" and
"MichalesSample", I can see what has been changed, and what is new.

> As I did not change the source file with the class MichalesSample, my
> class is no derived work.

The original doesn't have to be changed to constitute a "derivative work" - see
movie script.

> As I said allready: an adaption changes the original wording.
> Reformatting your code and placing comments into it, renaming some
> methods, thats an adaption.
> Taking your code and adding a method, thats an elaboration.
>
> NOTE: "your code"!!!!
> I have to copy and to rework your code!
> Then I create "derived work".

Angelo, you are just using the compiler mechanism to do it for you. Take a
compiler away, and you "have" to copy and rework my code. As per Copyright law,
the mechanism you're using is irrelevant. In the end - you are making a copy,
and then modifying my class.


> > > So: how may a call to an API, which surely may be a heavy
> > > use, the whole
> > > work may be unthinkable without that API, but how may this be
> > > a "derived
> > > work"? No modifications, adaptions, elaboratons. annotations,
> > > recasting,
> > > transforming of the original work!
> >
> > Yes, by making changes to the class, you have made
> adaptation of this class.
>
> I made no changes! Exactly that is teh point! I created an completle
> independedn work, under copyright law.

You hide too much behind the technology, which in Copyright is irrelevant (see
copy definition). I provide you with a particular design blueprint, which you
can use to create a particular object, the same way as I would provide you with
a house design. You change my blueprint in order to create a different object. I
don't have to wait till the object gets built, the same way as I don't have to
wait till the house gets built, to state that my blueprint has been compromised.

> I can. Technical issues have absolutly nothing to do with
> copyright law.

Agreed. But it seems that your arguments are VERY often of technological nature.

> > > Finaly, (I said this at least 4 times on the list during the
> > > alst days)
> > > as long as you do not take one original source file from
> said library
> > > and modify THAT file, you make no derived work. NO, this is not my
> > > opinion, that is legal fact.
> >
> > Can you show some court cases where this was clearly stated?
> >
> Well, I copied the US law, and I can copy you german law.
> However our law is not based on court rulings but on the law :-)

Yes, I would appreciate, if you could point me to a German law, (or even better,
to EU law), stating explicitly just that.

> Same for movie etc.
> a) it is explicitly covered in copyright law: making a move
> from a novel constitutes derived work.
> b) the character of the original work is easyly recognizeable for teh
> readcr and viewer of the book and movie.

But the "characteristic" of a original class is recognizeable to a programmer as
well. So what is different here?

Michael

--
license-discuss archive is at http://crynwr.com/cgi-bin/ezmlm-cgi?3



More information about the License-discuss mailing list