Hyperbolic Tree Class Browser

Russell Allen Russell.Allen at FirebirdMedia.com
Mon Nov 23 03:24:34 UTC 1998


At 04:22 PM 21/11/98 -0600, Jerry Bell wrote:
>Has anyone looked at hyperbolic trees?  I find them hard to explain, but
>very easy to grasp once you play with them.  Try:
>
>http://www.inxight.com/Content/7.html
>
>The Library of Congress demo is especially nice.
>
>I think a hyperbolic tree would make a great UI for a class browser, maybe
>as a replacement for the left-most pane.  It would definately help a new
>user like myself get a feel for which classes belong where in the hierarchy.
>
>Unfortunately I don't know if we could put one in Squeak without permission
>from Inxight.  I know they hold license to their implementation of
>hyperbolic trees, but I don't know if they somehow own the idea also.  I've
>never understood that sort of thing very well.
>

There are two types of intellectual property which apply to computer
programs.  The first is copyright law, and the second is patent law.  

Patents apply to algorythms - ie the .gif format isn't free because of a
patent held on the compression algorythm.  Similarily, certain crytography
algorythms are patented under US law (but not in other countries).  Where
patents are involved, you need legal advice before writing a program which
does the same thing as the patented one.  It may not be possible.

Copyright, however, unlike patents, is a right to prevent copying (lawyers
get paid a lot of money for this :-).

Copyright attaches to the actual code which performs the task, not to the
task itself.  This is normally expressed as saying that copyright protects
the expression and not the idea.  However, determining what the idea is and
what the expression of that idea is can be difficult.

People who recreate versions of software which is "compatible" with other
software, or which has the same functionality rely a lot on "clean room"
techniques - so that they can sucessfully argue that they were only copying
the idea and not the expression.  This boils down to a few rules, for
instance:

1.	Never even look at the object or source code of the product you are
imitating, let alone copy any of it!

2. 	Create a user interface which is as unlike the original as possible, or
where the similarities are due to generic features of all modern software
(ie a File|Open menu).

3.	Use different names for all of the features. (This is to avoid
allegations that you are attempting to confuse people into thinking that
your version is the original.)

The line is tricky, however, to draw.  There is a line of US cases which
gave protection to the "look and feel" of computer programs;  remember
Apple suing Microsoft, Lotus suing Borland etc?  Not all of the cases were
sucessful, but some such as Lotus v. Paperback Software were.  Indeed Lotus
was successful in suing Borland for copying its menu tree, but luckily this
was reversed on appeal.

The golden rule is, then, copy as little as possible, make your recreation
as different as possible, so that you only copy the idea (and change the
idea to something better if you can!).

PS - this isn't legal advice, or a comment on the legal situation with
Inxite/Hyperbolic Trees.  It's just a description of what I believe to be
the status of the law with regard to software.

Have fun!

Russell


------------------------------------------------------------
Russell Allen
russell.allen at firebirdmedia.com

Random Quote: "They must often change who would be constant
in happiness or wisdom."  Confucius, Analects.

------------------------------------------------------------





More information about the Squeak-dev mailing list