Subject: Re: patent trolls and X-licensors
From: simo <s@ssimo.org>
Date: Sat, 03 Jun 2006 21:22:03 -0400

On Sat, 2006-06-03 at 23:17 +0100, Jamie Lokier wrote:
> simo wrote:
> > > A computer, configured to run a particular program, *is* a
> > > physical process.   Each novel program is a new kind of
> > > process.
> > 
> > The specific instance of course runs on real hardware, I have never
> > denied it. But does it teach us something new on how matter behaves? No.
> > 
> > Showing how to ad 1 to 2 to 3 is a process of course.
> > But it is not a patentable process. In my opinion abstract process like
> > mathematical process or social process should not be patentable.
> 
> The problem is that every instance of running such a process on a real
> computer is a physical process.

Do you know that even thinking is a physical process ?
Yes, incredibly my brain cells exchange signals with a different pattern
when I think of something red then when I think of something blue.
Should we therefore just patent thoughts (ie. everything) ?

> So the attempts to define patents as valid for physical processes
> disallow patents like "add 1 to 2", and people just get patents which
> say "add 1 to 2 on a computer" instead which is a kind of physical
> process.
> 
> The effect of that is patents on software algorithms, even when the
> patents only cover actually running the algorithms on a computer.
> 
> And the doctrines of indirect infringement mean you get into trouble
> just for distributing the algorithm without running it...

And this is wrong imo, because it is the same as saying that if you
produce knives you are inciting murders, but anyway let's put this
aside, the focus is about defining what can get patented not the
consequences of patents.

> There were two fairly clear goals, and we were asked to provide a
> legal phrasing that would satisfy both goals.  The intention was to
> make anti-software patent people happy simultaneous with
> pro-industrial patent people.

The problem was that the two factions had 2 different goals, you could
never make both factions happy of course. It is not a problem of
language it is a problem of goals. Pro-software patents wanted to patent
software in all its forms and manifestations, and business methods too.

Anti-software patents instead wanted to limit the patentability of
software when no new physical process where involved (simple computer
programs).

> One goal was that software "as such" would not be patentable,
> including software running on a computer - e.g. spreadsheets, web
> sites etc.  The other goal was to make patentable machines to perform
> physical process where software was an integral part of making the
> process work - e.g. a machine performing a new technique for printing
> patterns on textiles, which needs a computer running a certain
> algorithm to achieve the new technique.

This was exactly the position of the anti-software patent movement, but
it was not by any means something that the pro-software patent wanted,
that's why there was no agreement.

> We quickly found huge disagreement over what constituted software "as
> such" - with lawyers tending to consider a lot of things real
> inventions, and programmers considering many of the same things to be
> not inventions.  And this included lawyers who were trying to have a
> balanced point of view.

Lawyers that had a balanced point of view where very few, and often
mislead by others to believe anti-software patents groups wanted to
prohibit patents on anything that involved software.

> On one mailing list, we had discussions where that sort of thing might
> - in an ideal world - not be covered by patents when implemented as a
> software program (for example as in MythTV), but might be when the
> same algorithm was embodied in a silicon chip as a hard circuit.

Such a solution does not make much sense.

> Worse, algorithms used in network protocols were ambiguous, because a
> network has a physical element, and protocol algorithms _do_ affect
> physical things like time delays, bandwidths, power consumption,
> interference...

In a very predictable and known way!

> But we found that trying to produce legal language to define those
> arbitrary lines, resulted in language that was not intuitively
> understood by anyone, and where the interpretation of whether
> something was patentable differed hugely between different people.  We
> never did succeed in producing legal language that a majority of
> people were comfortable with.

Of course, if the lines are arbitrary they are not based on something
objective and can never be fixed in something that isn't arbitrary, if
that's what you did (which was not what the FFII activists did for
example) you just lost a lot of time on a clearly unsolvable problem.

> But you're not legally allowed to use those mathematical abstractions
> on a real computer, because using them on a real computer involves
> physical processes...

Of course, but that's a known process, a running word processor, does
not teach you anything new about physics, that's why it should not be
patentable.

> But it's not as easy as it first seems to do that, because there are
> no "generic", isolated computers that are interesting.  Real computers
> have I/O and networking, and those have plenty of scope for argument
> about what constitutes a physical and industrial process.

I don't understand what you mean here, you confuse physical process with
_new_ physical process, the problem is on the new. It is not enough to
have a physical process to have something patentable, it must me a _new_
physical process. And _new_ meaning, novel, and non-obvious.

Running a mail program to send an email over the network produces an
obvious and known physical activity, there is nothing new in it,l
therefore it should not be patentable just because it produces a
physical process.

> Take for example the patent on flashing coloured LEDs at high speed
> with a varying pattern to control the perceived colour...  I think
> that's software.  Someone else thinks it's a patentable invention in
> modern LED technology...  You might agree with me if it's just varying
> the duty cycle for RGB intensities.

I would tend to agree that if the outcome was not expected by the
manufacturer of the LEDs and it was not obvious, then such would
probably be indeed a patentable invention because it would teach you a
new way to manipulate LEDs that produce a new physical effect not known
before. Here we have a new physical process.

> But what if the LED chip colour is a complex non-linear function of
> the power profile and temperature... and requires specific chemistry
> in the LED chips?  Assume it's non-trivial research to calibrate the
> colours and specify the best chemistry.  So then is the program which
> controls the colour non-patentable software when it runs on a generic
> computer with trivial I/O to the LED chips?  Is it still
> non-patentable software if the program is a hard-wired circuit instead
> of running on a CPU?  Is it the same if the hard-wired circuit was
> produced by a computer in a few milliseconds on a reconfigurable logic
> array?  Etc.

See previous answer.

> > >    You an see that by the way
> > > people's programs use checksums to guard against media
> > > failures.   You can see that by the way computational complexity
> > > is such a large issue in programming.   You can see that by the
> > > way that access patterns to memory are such a large issue in
> > > programming.
> > 
> > Of course I can see, but do you understand anything new in the physical
> > world when you find a new way to solve a problem with less resources?
> > 
> > No.
> 
> While I strongly dislike software patents, I would have to answer
> yes to this question.
> 
> Finding a new way to solve a problem with less resources is often very
> difficult, may involve considerable resources, often involves new
> understandings, and is surely the basis of a very large number of
> industrial patents.  It's not trivial.

Finding the solution to new mathematical challenges is extremely
difficult and extremely non trivial, does it mean we should make
mathematical theorems patentable ?
It is not about how difficult or easy, but in which field it is.
If it is a mathematical discovery it is not patentable, full stop.
It is an easy line to draw if you really don't want patents on
abstractions.

> For example, when new methods of transmitting data over telephone
> lines were discovered, something which took intelligent people decades
> by the way, on the one hand it was all very mathematical, but on the
> other hand it certainly involved a lot of new understanding.

New understanding on the application of physics of signal transmission
should be patentable.
New understanding in mathematics should not. It's just all about the
field of the discoveries.

> I challenge you to define "generic machine" in a way which is (a)
> usefully representative of real computers that people use, and (b)
> does not exclude patentable industrial processes such as (these just
> examples) ways to shape the pixel cell inside an LCD, or ways to
> encode data into physically transferrable signals on a copper wire.

In fact I do not exclude these 2 examples, as they deal with new
physical effects than I do not see any problem on patenting them.

But you patent the copper level protocol this way not the video codec
that is digitally transmitted over it (unless it is an analog video
codec, but in that case that codec is at the physical level). 

> New methods for encoding data to transmit over wires and radio waves
> _do_ depend on our understanding of the physical processes involved,
> and our understanding is far from complete in those areas; even the
> fundamentals are not fully understood.

Again you seem to confuse the digital transmission over a wire with the
physical protocol used. To me it is ok to patent a new way to transmit
data on a physical medium (in fact nobody ever seriously challenged that
except in the pro-software patents propaganda targeted to discredit
nati-software patents campaigners).

> Also, if you were to say that patentable industrial processes required
> a _new_ understanding of the fundamentals, well that would rule out
> almost everything including chemistry and pharmaceuticals, as it's
> nearly all derivable in principle from simulations of known physics...

Not of _the fundamentals_, but on how to use the fundamentals, that's a
very different thing, you are not allowed to patent physical laws, only
new (novel, non-obvious) ways to use them.

> I think it's fair to say that a lot of research now can be done purely
> using mathematics and software.  For example new ways to encode video
> data, or new types of transistor design, clearly can be explored using
> a computer, even if you're simulating known types of physics during
> the research.
> 
> Yet it's not true to say we develop no new understandings while doing
> that research.

Again, and again, it is all about in which field you get this new
research.
Nobody claims there is no research in software, it is about what
constitute patentable inventions, it is a different thing.

>  You don't
> > change the way electrons flow through a transistor, or the way 2
> > transistors interface with each other, etc..., all you do is using the
> > already invented processor in one of the many ways the invention make it
> > possible. For how clever you can be, you end up just manipulating bits
> > in the only ways permitted by the cpu.
> 
> Computing without I/O isn't very interesting.

So what ?
Who said anything about I/O. Predictable I/O is simple not novel,
obvious, that's why it should not be enough to have I/O to make
something patentable.

> In a real computer, those bits will effect some kind of physical I/O.
> At that point, it becomes difficult to say precisely what behaviours
> of the whole aggregate system constitute a physical industrial process
> or not.

Only if you don't want to make a distinction on what constitute a
physical teaching and what constitute a new abstract teaching.

> Consider a new process to make silicon chips, for example, that uses
> the same machines as were used before but using a surprisingly clever
> new set of data fed to the machines which nobody had even slightly
> thought of before.  Would that be a patentable invention?  A lot of
> people _do_ argue that such new configurations should be patentable,
> if they're sufficiently non-obvious, including people who are against
> software patents.

Exactly, I am against software patents, not against industrial patents,
that's why I would probably agree. If there is a teaching in new ways to
produce (new, novel non-obvious) physical effects, it does not matter if
you need software to obtain such process or just hardware, that process
is patentable. The process! Not the software itself.
If, by chance, you can use the same principles in that software to
create a new abstract model to draw lines on a normal computer screen,
then that use should not fall under the patent on the physical process
to produce CPUs. But only the patent holder can use such process to
manufacture CPUs.

> Yet, how is that different, in principle, from a machine which writes
> to CDs using a new process, feeding a surprising new set of data to
> the CD writer?  Or (this is important) a machine which writes to paper
> using a new process, feeding a surprising new set of data to the printer?

I would like to understand what you mean by surprising. If that means
that you have a new _physical_ process, not a mere new software
algorithm that happens to be used with a normal I/O peripheral, then
there is probably ground for a new patent.

> > In the rare case that a software can really change a physical process
> 
> I challenge you to identify any useful computer software that's not in
> that category.  A PC screen is a physical process, and changing the
> colour of a pixel is changing it...

In a very know an predictable physical way, when you send a signal to
turn on pixel n. 1 you just do that, what is new, from the physical
point of view in just doing what the peripheral is supposed to do?
Nothing, and if there is nothing new at the physical level I do  not see
why you should obtain a patent.

Now if you were sending down a new pattern of commands that intuitively
should just turn on a sequence of pixel, but because of a new discovered
physical interaction at, lets say, the molecular level in liquid
crystals, something different happen, then you would have a new
patentable invention that is made of a hardware (that specific LEDs with
the specific liquid crystal) and a software (the pattern of instructions
that makes the new effect happen).

Do you think that this is the same as saying that word processor XYZ
should be patentable because when you make it turn on pixel 1, it,
SURPRISE!, just turn on pixel 1 ?
Btw, this is what pro-software patents lawyers do all the time in Europe
with the help of the Patent Office.

> > (let's suppose a specific way to stimulate a transistor with a specific
> > pattern of impulses changes the transistor normal physical behavior),
> > then in that specific case, the whole (hardware + software) would
> > probably be patentable as a process, that require both that specific
> > hardware combination and the actions performed by software. But what you
> > should end up patenting is the new physical process you found out, not
> > the software itself, nor the physical laws that regulate this process.
> 
> Exactly.  I agree with you.
> 
> But the _effect_ of that is the same as having abstract software
> patents.  It's just as restrictive.

How can you say that?
There is nothing abstract here, you are producing a _new_ _physical_
effect! Something that was not predictable by the current knowledge of
how hardware behaves.

> Just think for a moment about a patent which claims "a new method for
> controlling the pattern of jets of ink sprayed on paper which reduces
> ink used, produced more vibrant colours, better pictures, saves money,
> and works with types of paper that could not previously be printed on".
> 
> In other words, a change in printer driver software which has a
> physical effect.
> 
> According to your words, the new software would not be patentable by itself.

No, not the software itself, but the process that this software
produce. 

> But running it on a computer to control a printer would be patentable.

Yes, this is correct, because you are reproducing a patented process.

> And so none of us could actually _use_ the software to control our
> printer, because that would infringe.

But this will not stop you producing drivers that use a common, even if
less efficient method to print.

I admit that I would not like that, but it is an acceptable trade-off in
my opinion, as there are enough common methods to drive a printer.
A patent on one physical method over many will not affect me that much
if I don't want to use the patent holder software.

> I agree, but since all useful computers manipulate physical forces
> (I/O - screens, speakers, printers, radios, networks among other
> things), and since programs are always ultimately intended to change
> how those forces are manipulated, how to you propose to protect
> people's ability to work on software without infringing patents?

I can't answer this question, because I object it's premises.
Most useful programs do not produce new ways to manipulate physical
forces, they just use them in the usual, known and therefore not novel
and obvious way. That's why 99% of current software development is
abstract in nature and does not produce any new _physical_ effect.

> > This is my opinion, you may challenge the fact that in your opinion
> > abstraction can be patented.
> 
> I don't think anyone here is saying abstraction can be patented.

Then, probably, many have problems understanding what's abstract and
what's physical, that's terrible :-)

> > Fine by me, but then say so explicitly, don't try to mask
> > abstractions as physical processes. Al the companies, that file
> > software patents already do that, it is the way they used to twist
> > the patent offices procedures (with patent offices contribution of
> > course) so that they ended up being able to actually patent
> > software, against laws (in Europe) and against any uninterested
> > common sense in my opinion.
> 
> That's right, companies do twist patents to do that.
> 
> So how do you propose to prevent that, while still allowing patents
> that affect physical processes?

Read my mail, I think there are enough hints to understand where I would
draw the line, and there are ways to write that down so that there are
no loopholes. Many pro-software patents lawyers and companies would
scream at my proposal of course, but they would scream at any proposal
that would not allow to patent abstractions anyway.

> Many of us have tried to find a legal definition that would achieve
> that, and failed to find one that isn't full of loopholes.

If you try to reach contradicting goals you will just fail.

Simo.