<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Re: Hyperbolic Tree in Squeak for navigating large
dat</title></head><body>
<blockquote type="cite" cite>Until about a year ago, there was a tool
that displayed Java profiling</blockquote>
<blockquote type="cite" cite>information using hyperbolic trees
(HyperProf by Vladimir Bulatov, see</blockquote>
<blockquote type="cite" cite>http://www.physics.orst.edu/~bulatov/).
As far as I can recall (or can</blockquote>
<blockquote type="cite" cite>research with DejaNews, try &quot;+Xerox
+patent&quot; on comp.lang.java.*), Xerox</blockquote>
<blockquote type="cite" cite>seems to have contacted Mr. Bulatov and
at least notified him of their</blockquote>
<blockquote type="cite" cite>patent #5,619,632 (see
http://www.platibus.com/hyperprof/xeroxpatent.html</blockquote>
<blockquote type="cite" cite>for a bit of background information).
Whatever that exchange may have been,</blockquote>
<blockquote type="cite" cite>it led to Mr. Bulatov taking down his
(free) tool.</blockquote>
<div><br></div>
<div>Be sure to actually read the patent specification and, more
particularly, the claims of the patent before abandoning any
particular project, however.&nbsp; Without passing upon the
enforceability or scope of the '632 patent, it is important to note
that the Abstract does not have any legal effect with respect to the
same.&nbsp; It is worthwhile to note that the USPTO (see
http://www.uspto.gov) now provides a full-text database, complete with
pictures for US patents.&nbsp; An exemplary claim is: </div>
<div><br></div>
<div>&quot;1. A method comprising: </div>
<div><br></div>
<div>&quot;obtaining node-link data defining a node-link structure;
the node-link structure including nodes and links, each link relating
at least two of the nodes; and </div>
<div><br></div>
<div>&quot;using the node-link data to present a sequence of
representations of the node-link structure on a display; the sequence
beginning with a first representation and ending with a last
representation; the last representation being perceptible as a changed
continuation of the first representation; </div>
<div><br></div>
<div>&quot;each representation in the sequence including bounded node
features representing nodes in the node-link structure; each bounded
node feature having a center of area that has a nearest node spacing
from a nearest other node feature's center of area; each bounded node
feature's center of area and nearest node spacing defining a
mid-spacing circle for the node feature that is centered at the center
of area and has a diameter equal to the nearest node spacing; </div>
<div><br></div>
<div>&quot;the mid-spacing circles of the bounded node features in
each representation together determining a first convex hull for the
representation, each representation's first convex hull enclosing a
total area for the representation; </div>
<div><br></div>
<div>&quot;the bounded node features of each representation including
a subset of more spaced node features, the mid-spacing circles of the
more spaced node features determining a second convex hull for the
representation, each representation's second convex hull enclosing
approximately half the representation's total area and enclosing a
region in which bounded node features have nearest node spacings that
are in general perceptibly greater than in a region enclosed by the
first convex hull but outside the second convex hull; </div>
<div><br></div>
<div>&quot;the nodes represented in each representation forming at
least one peripheral branch, each peripheral branch including a top
level and at least one lower level, the top level including a top
level node and the lower levels including lower level nodes that are
not in the representation's subset of more spaced node features, each
node at each lower level having a parent node at a next higher level
to which the node is related through one link; </div>
<div><br></div>
<div>&quot;lower level node features that share a parent node feature
having centers of area positioned in order approximately along an arc
with sufficiently similar spacings from the center of area of the
parent node feature and with sufficiently similar spacings from
adjacent node features along the arc that the lower level node
features sharing the parent node feature are perceptible as a group of
related node features; </div>
<div><br></div>
<div>&quot;the second convex hulls of the first and last
representations including subsets of bounded node features that
represent different sets of nodes; the sequence of representations
producing a perception that at least one bounded node feature has a
nearest node spacing that increases from the first representation to
the last representation and that at least one other bounded node
feature has a nearest node spacing that decreases from the first
representation to the last representation. &quot;</div>
<div><br></div>
<div>To infringe a patent, an accused program would have to practice,
either literally or equivalently, <u>each and every</u> element and
limitation described in at least one claim of the patent.&nbsp; The
absence of a single element is sufficient to avoid infringement and,
indeed, sets up a common and perfectly legal and honorable practice
called &quot;engineering around the patent.&quot;&nbsp; </div>
<div><br></div>
<div>Do not do this at home, folks, an opinion of counsel is an
essential element of safe patent hygiene, but be aware that it can be
done -- and remember that it is the patent CLAIMS, not the abstract,
that define the protected invention.&nbsp; No particular advice is
given, or can be given, here with respect to any particular patent or
computer program upon which you should rely -- each case can be
different, and each requires a careful application of the facts and
the law. </div>
</body>
</html>