On Sun, 21 October 2001, "Michael Beck" wrote:
> > From: david@usermode.org [mailto:david@usermode.org]

> > [snip] [back to Michael]

> "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.

class AlicesRestaurant;

sub total { print $AliciesRestaurant::Total ."\n"; }

# fifty other methods



class BobsInheritedRestaurant;
use base AlicesRestaurant;
sub total
	{
	# 500 lines of code
	}


You cannot, in any way,  determine the content of AlicesRestaurant from
looking at BobsRestaurant. Bob's code is in no way a derived work
of Alice's code.

The text of Bob's code is not cut and paste, it is not plagerism, yada yada.

The overlap is strictly in that Bob wrote a function whose name 
lines up with a name in Alice's code. 

but this does not allow you to perceive Alices code.
Bob's code does not transmit Alice's text by itself.
It's not like Bob's code has a compressed copy of Alice's code
that you can somehow unwrap.

Copyright is limited to a specific stream of text.
Alice wrote: "it was a dark and stormy night"
Bob wrote: "rain fell after sunset"
Alice cannot copyright all text that has the same
meaning or functionality as her's, she can only
copyright the specific stream of text "it was a dark and stormy night."


> 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".

But  inheritance does not require cut and paste.
the only thing that has to overlap is a method name.
the rest of the method can be written independently.
The text of one is in no way related to the text of the other.
the relationship is strictly on a functional level (not lexical level).

> You are modifying by making a copy (i.e. inheritance), 
no, you are using someone's code. 
assuming you have a legitamate copy, you can use it  any way you wish.

> and then changing/adding elements. 
no, then you write your own code which uses the first piece of code.
Bob uses Alices code. he didn't cut and paste it.

> The blueprint has been changed, and the created object from this
> blueprint is different from the one created from the original class. If this is
> not a derivative work, then what is?

one piece of software using another piece.

You copyright a 2story colonial, 
I copyright a garage intended to splice directly into your design.

but no text, no diagrams, no drawings, nothing that is in your design
is in my design. The only thing we have in common is that our 
interface is compatible. A user gets your blueprint for the house,
and my blueprint for the garage, and then uses them together
to build a house with an attached garage.

I did not infringe on your copyright.

what you're effectively saying is:

"But I don't want people to use my house design if they're going
to attach a garage to it."

that isn't how it works. You're trying to control use.

Greg


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

