decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Answering Gene Quinn, Patent Attorney - Updated
Friday, November 14 2008 @ 09:04 PM EST

Well. I got a very nice note from Gene Quinn. He's reading Groklaw. I'm reading what he is writing, because it's fascinating, and it's an opportunity to speak directly with a patent attorney who is a true believer.

His most recent article is one I think we should answer, since his fundamental question is this: why should software *not* be patentable?

From a conceptual standpoint why not allow for software to be patented. What is the harm? I know many of you reading this have now gone into an apoplectic rage, but conceptually why should software be treated any differently? Isn’t the problem that patent offices, particularly the United States Patent Office, are increasingly doing a poor job of finding relevant prior art and weeding out what is new and non-obvious from what is old and obvious? If prosecution were more meaningful, what is the harm in granting software patents? I see none because there is none....

Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me. Do people who write software actually think they are sitting down and writing mathematical equations and stringing them together? It is absurd to have such a narrow view of software. When you write software you are trying to enable a device, such as a computer, to provide certain functionality given a certain stimulus. So you are writing instructions for a computer or other device and explaining how the computer or device needs to process information. You do not explain how to process information with mathematical equations.

If you would read his article in full and then answer him here, in members-only space, I'll collect the best comments and try to tie it all together, if it works out well. It's an opportunity to reach not only Quinn but all the other patent attorneys who do read what he writes.

Game on?

Update 2: I'm reading your comments, and I don't think I can improve on them. So I'll let you all speak directly, by making this article public now.

In continuing his theme, he argues thus:

You explain how to process information by defining instructions that are followed. Does it help to understand basic mathematical priciples, of course. But that does not mean that software code is a mathematical language. You don't tell the computer that 1 + 1 = 2, you explain to the computer how to process information so that 1 + 1 will consistently and predicably equal 2.

Software dictates a process, first in source code and then in object code that can be read by a machine. Every programmer writes code to direct the process and path that must be followed. You just write it for a machine to be able to understand. So if software is not patentable then there really is no reason for any process to be patentable, because every process is just a series of instructions that are followed. Why a series of instructions that are followed by a machine should not be patentable but a series of instructions that are followed by humans is patentable is beyond me. This is a distinction without a difference. If anything, a process that is followed by humans should not be patentable because you are taking away rights from a person and preventing them from doing something they had the right to do right up until the time a patent was granted.

Software is a tool and tools have always been patentable! The fact that software is a tool used by a computer ought to not render the tool unpatentable.

Update: Not to throw another log on a fire or anything, but here's a comment he left on the article answering Groklaw, which I earlier put in News Picks:

Why would you ever ask computer scientists and programmers what is or is not patentable since they have no knowledge of the law?

The fact that computer scientists and programmers mistakenly believe software to be mathematical merely demonstrates that they have learned absolut[e]ly nothing about software and what it is and does.

The simple truth is that software is not a mathematical language. You write code to direct action. The source code is compiled into object code that can be understood by a computer. This object code explains to the machine what the machine needs to do.

Calling software a mathematical language is like calling the English language a letter language. After all, every word is made of letters, so all any language is is just letters. This is absurd. You put letters together to form words, then sentences, then paragraphs. So a book is not just a combination of letters. We use letters to form the words that lead to concepts and make it possible to convey meaning in the form of communicating what is in the mind of the author to the minds of the readers.

If you want to cling to software b[e]ing a mathematical language then you need to come to terms with the fact then that your position means that software cannot be copyrighted and certainly not capable of being protected by trade secret. After all 1+1=2 is not something that is secret, and it is not original in any way. So if you want to go down this path then come to terms with the fact that what computer scientist and programmers do is not original or creative in any way, shape or form.

I love the idea that the folks who write software have no clue what software is. But leave that aside, and just calmly answer his arguments. This isn't a flame war. Groklaw doesn't do flame wars. But it's worth answering him and all who think like this, I believe. People can improve, if they are educated by new information.


  


Answering Gene Quinn, Patent Attorney - Updated | 871 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Corrections
Authored by: rsteinmetz70112 on Friday, November 14 2008 @ 09:14 PM EST
Link yeilds;

Microsoft VBScript runtime error '800a01ad'

ActiveX component can't create object

/common/i_mktg_track.asp, line 2

---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

He asks the wrong question
Authored by: whoever57 on Friday, November 14 2008 @ 09:23 PM EST
what is the harm in granting software patents? I see none because there is none.
He asks the wrong question: the question should be: "what is the benefit to society?"

[ Reply to This | # ]

tknarr has interesting Quinn quote under last article NP thread
Authored by: Aladdin Sane on Friday, November 14 2008 @ 09:43 PM EST
I found this quote from Quinn in a comment by tknarr a bit alarming.
Gene Quinn: Responding to Groklaw Regarding Bilski
Authored by: tknarr on Friday, November 14 2008 @ 06:41 PM EST

Link < /p>

To quote Gene in one of his replies:

"Why would you ever ask computer scientists and programmers what is or is not patentable since they have no knowledge of the law? The fact that computer scientists and programmers mistakenly believe software to be mathematical merely demonstrates that they have learned absolutly nothing about software and what it is and does.

@boggle. He just blew every bit of credibility he had with me.

---
"Then you admit confirming not denying you ever said that?"
"NO! ... I mean Yes! WHAT?"
"I'll put `maybe.'"
--Bloom County

[ Reply to This | # ]

Problems with his arguments...
Authored by: mtew on Friday, November 14 2008 @ 10:18 PM EST
I will second the point that he is coming at the problem from the wrong end.
Indeed, the question should be 'what benefit' rather than 'what harm' but a
previous thread already covers that.

He is wrong about mathematics. Software may not be (capital M) Mathematics, but
it is very definitely about (small m) mathematics. His use of 'mathematical
equations' is a deliberate piece of misdirection; it is a 'straw man' argument
of the obnoxious sort. Software expresses an abstraction and mathematics is
about workable abstractions. Abstractions are a 'thing of the mind' and not
patentable on the principle that the government has no business regulating how
people think. People sometimes can not control their own thoughts, so it would
be an absolute disaster if the government tried to do it.

Software is an embodiment of abstractions. As such, it deserves copyright
protection, but NOT patent protection. On the other hand, software can be used
to implement the sequences of steps, timing or set other parameters of physical
processes external to the computer. Those processes may or may not be
patentable, but the fact that a computer is used is, at best, incidental.

His understanding of '1 + 1 = 2' is very shallow, The facts of arithmetic are
implemented by the computers hardware, not by its software. The software relies
on the hardware to do arithmetic quickly and correctly.

As for why software should not be patentable, think of blueprints (or their
modern equivalent). You do NOT patent blueprints; you copyright them. You
might patent what the blueprints document. Likewise, you might patent the
process the software implements but patenting the software itself is not the way
to protect the process. (Blueprints were patented ONCE, but that patent has
long expired. It might have been possible for Lady Ada or Babbage to have
patented software, but any such patents would also have expired long ago.)


---
MTEW

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Members Only
Authored by: mhoyes on Friday, November 14 2008 @ 10:27 PM EST
Let me get my bias out in the open as well. I am a software developer. As
such, my profession has been severely endangered because of the software patent.
Because of the patent system, I can come up with a method yet someone else who
has the funds, can go a seek a patent, or even worse, seek a patent on
information that has been taught in school, and then take me to court. Because
of the cost of litigation, it is very difficult to fight these patents, even if
they have absolutely no basis for having been granted. The US Patent office
does not have the expertise nor the time to truly investigate a patent
application. The other problem is that patents grant a restricted term based on
old, 19th century ideals, where as in the computer field, technology turns over
every 5 years or less.

You make the argument that software is a tool, but it is the computer that is
the tool. It is a marvelous tool that can do many things given the right person
who can "speak" to it. Programming, at its base, truly is a
mathematical practice. The computer is a glorified difference engine. Because
it can do things really fast does not change that fact. If you had a person
that could add, subtract, and compare billions of things every second, you would
say he was gifted. This is no different. To be able to say that it is not a
mathematical language indicates that you have not really delved into what a
computer is or does.

The statement that a process should not be patentable, I would say, is the
correct view. It should not matter, whether it is a process a person follows,
or a process a computer follows. Again though, you argue that the software
itself is the tool. It is just the means for activating a tool to a particular
task.

The biggest problem with patenting software is:

1) the patents are made so broad that you wind up with patents on clicks of a
mouse, or the concept of the binary one.
2) Patents for software hold the industry hostage because you have two
conflicting ideals. One is to make things operate the same for ease of use,
and the other to prevent people from being able to make it look the same. If I
develop a machine that does a particular function and patent it, someone else,
if they are smart enough, can come up with a different way of doing the same
function and can do so. But the way software patents are, because it is a
expression of an idea, and not a particular way of making something, prevents
this. Thus, you have a quelling of innovation.
3) the length of time for a software patent has no relation to the time and
energy that went into it, and gives no consideration for the length of time for
ideas to morph and be discarded.

I personally do not feel that the open source model is against human nature. It
is only against human greed. As babies, we have a desire to help all and share,
and it is only with the injection of a adversarial system that we then change to
value oneself over others. Contrary to your contention, I feel that the open
source model will continue to expand because it is the true methodology that
human nature is trying to return.

At this point, I will make a break from the argument against software patents.
If the software patent could be made much more concise, rather than the vague
terms used now that can be made to fit just about any situation. If they were
better vetted so that ridiculous or blatantly obvious were not permitted. If
companies that produced excessive patents were charged more to prove that they
are not just picking apart ideas and patenting all possible approaches to a
problem. If companies were not allowed to hold a portfolio of patents with out
using them for anything other than a money making scheme (patent trolls,
submarine patents, etc). Then, maybe, a patent could work. In the current
atmosphere however, there is no way that a software patent makes any sense at
all other than to limit the industry to a few monopolies that can afford to have
huge patent portfolios that they can use to protect themselves from litigation.

Why should a concept for a 19th century method of promoting innovation be
considered appropriate for a 21st century is beyond me. When it took years for
a person to invent a new gadget, it made sense to permit them a monopoly for the
realization of that thought process, but now, software can be coded in a matter
of days or weeks, and the ideas can be thought of in mere hours.

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Members Only
Authored by: drh on Friday, November 14 2008 @ 10:54 PM EST
I read his first article when it was posted to Newspicks, and I disagreed with
that. But lets do this second article first:

Lets start with his very first paragraph:

"I detest those who want to make the patentability decision a
single-inquiry determination and say that there are things that should simply
not qualify for patent protection because they just shouldn’t be
patented."

The US Patent Office will disagree with this immediately. In fact they have
found quite a lot of things that should not be patented. That is part of their
job, and it is also the law.

From his second paragraph:
"From a conceptual standpoint why not allow for software to be patented.
What is the harm?"
Others here have already mentionioned that should read "what is the benefit
to society" so I will not labor that very correct point. The harm is, from
a conceptual standpoint, that software is an expression of an idea that has no
substance (or physical form) and is therefore not eligible for patent. Software
already qualifies for copyright protection, there is no need to doubly protect
it with a patent as well. In fact, if software patents were allowed, then
software would be the only thing to achieve such dual protection. To quote the
article itself: "conceptually why should software be treated any
differently?"

The article then rants on for a while on the mathematical equation claim which
PJ has asked us to skip for now, so I will. Maybe next post....

After that rant he writes:
"The one thing that keeps coming up in the software world is that true
believers of software advocate for free and open source and no proprietary
rights."

We all know and agree that this is incorrect. In fact, the GPL hinges on
copyright (which is considered a "proprietary right"), as does the
extremely long history of software prior to patentability. We also believe that
open is preferred to closed, that progress is made from open not closed.

In the very next sentence he adds:
"...but in the real world investment follows market opportunity, and there
cannot be market opportunity without proprietary rights."

Well, half right. Investment does indeed follow opportunity. However to state
that there cannot be a market without proprietary rights is simply ignorant of
thousands of years of history and innovation that existed without it.

Following that we find:
"It has been suggested by anti-patent advocates that copyrights are fine to
protect software. This is absolutely ridiculous."

Those two sentences, when put together, are what is "absolutely
ridiculous", and provably false.


I could take a lot of time to pick this article apart, there are a lot of flaws,
misconceptions, and misleading statements.

---
Just another day...

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Members Only
Authored by: Gringo on Friday, November 14 2008 @ 11:01 PM EST
Where to begin?

> Software is not a mathematical equation...
> Do people who write software actually think they are
> sitting down and writing mathematical equations
> and stringing them together?

Yes - at the moment, anyway - for me. I have been a
software developer for over a decade. At the moment, I am
deep into audio DSP (digital signal processing.) It is pure
math - 100% - all the way. But of course I have to admit
that I don't do the user interface on this project, or even
the overall architecture that feeds the raw audio data to
my modules and takes the processed samples away in return.

Much software may seem far removed from the kind of pure
math I am working with these days, but it is still
mathematical. I am sure you have heard of Boolean Logic?
Every line of code written is at least an exercise in
Boolean Logic (or the code that supports to flow of data to
be processed). A computer program is one big equation when
you look at it at that way. In fact, a program is often
called a "solution".

Although a computer running software can control an
industrial process, software cannot be equated with an
industrial process because there is no tangible output. Raw
information is its input, and what comes out is processed
information. Information is a very ethereal kind of thing.
It may be useful in many ways, but it is not at all like a
physical object. You can't touch or see it or feel it. You
can't eat it or break it or steal it, because whatever you
do, that information is still there somewhere. Once brought
forth, it never dies as long as at least one person is
aware of it.

Now all I just said does nothing to answer the fundamental
question - Is software patentable? I am a programmer, not a
lawyer or politician. All I can testify to is that software
is very, very different than a mechanical device or an
industrial process. Make all the analogies you want, but in
the end, show me a handful of information. You can't.
Therefore, whatever decision you make must take into
consideration the differences. You can't tell me software
is just like an industrial process. Give me an argument
that takes software's uniqueness into account.

<blockquote>Isn’t the problem that patent offices,
particularly the United States Patent Office, are
increasingly doing a poor job of finding relevant prior art
and weeding out what is new and non-obvious from what is
old and obvious?</blockquote>

For sure, but that is just one of the problems. Perhaps
that is enough of a problem right there all by itself,
because it may be insoluble.

> what is the harm in granting software patents?
> I see none because there is none....

Others are going to give you a far more articulate reply
than I on this, but since your questions show such a huge
lack of awareness I will just mention a few things that I
personally am afraid of. Software patents are standing in
the way of progress. The big companies are cranking out
patents by the tens of thousands, and it has become
impossible to write code that cannot be accused of
infringing on somebody's patent somewhere. Enormous
resources are being mobilized to fight patent wars instead
of on innovating technology. Soon, only the big companies
with multi-billion dollar war chests will be able to
publish software, and then technology will stagnate,
because size has little do do with the capacity to
innovate. All these patent wars are like a snake eating its
tail. It contributes nothing to society or the GDP.


[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Members Only
Authored by: ikh on Friday, November 14 2008 @ 11:03 PM EST
The following is a comment I posted on Gene's site in response to his article:

Gene wrote:
"Let me get my legal bias out in the open right away. I am a true believer
in the patent system" "

My bias is that I am a software engineer. I hold no remit for the patent system
in general, but I do believe that software should not be patentable subject
matter, ever! I also believe that software should never be able to violate a
patent.

"and I like the US approach to patentability, which is that everything is
patentable."

But this is not strictly true. Neither Maths or pure science is patentable.

The rationale for excluding software from patentable subject matter is that
patents exist, as a necessary evil, only to foster innovation. If innovation is
naturally occurring without patents then there is no need for patents.

Spreadsheets, Wordprocessing, Databases, CAD/CAM, the Internet, World Wide Web,
email, file transfer, etc etc etc were all invented prior to State Street and
the granting of software patents.

The key thing about software though, is that these ideas that might have been
patented are really quite simple whilst the cost of an individual implementation
is relatively very high. Typically, many many orders of magnitude higher. This
means that when you bring a product to market, yes, the competition can copy its
functionality, but their costs are similar to the originator. And, the
originator gains a significant 'time to market' advantage. This is not like
physical engineering.

Competition is the key driver on innovation in the field of software. For
example, by year 2000 Microsoft was dominant monopoly with Internet Explorer. As
a result, they completely shutdown development on I.E. Development only
restarted after the release of Firefox which gained a significant minority
market share. Patents stifle competition and therefore innovation.

"Software is not a mathematical equation, nor is it a mathematical
language. How anyone who writes software or professes to understand software
could argue to the contrary is beyond me."

I don't know if this argument has ever been successfully made in court. But in
University Maths 101 this would get you a Fail grade. Any program can be
translated into the Lisp programming language meaning that any program can be
expressed as a formula in Alonzo Church's Lambda calculus. Every program can
also be expressed as a special purpose Turing machine which is another
mathematical construct. Functions are fundamental of Maths and the vast majority
of programming languages use them as fundamental building blocks.

"Do people who write software actually think they are sitting down and
writing mathematical equations and stringing them together?"

Yes. Those with any education do.

"It is absurd to have such a narrow view of software."

What is so absurd about the truth?

"You don't tell the computer that 1 + 1 = 2, you explain to the computer
how to process information so that 1 + 1 will consistently and predicably equal
2."

And this is another mis-conception. 1 + 1 = 10 often in computing. At other
times it is exactly 2 and at others it is approximately 2 :-).

"Software dictates a process, first in source code and then in object code
that can be read by a machine. Every programmer writes code to direct the
process and path that must be followed. You just write it for a machine to be
able to understand. So if software is not patentable then there really is no
reason for any process to be patentable, because every process is just a series
of instructions that are followed. Why a series of instructions that are
followed by a machine should not be patentable but a series of instructions that
are followed by humans is patentable is beyond me."

In a software/mathematical model, it does not matter whether a machine or a
human caries out the instructions. If they are carried out reliably then the
results are the same. ( Although the machine may be a little quicker ). But
this misses the point.

In a software/mathematical model we can benefit from simplification. Real
physical world engineers have no such luxury. In a process that involves high
temperature and pressure the gases do not necessarily behave as 'ideal' gases,
the vessels crystalline structure may not be perfectly even, the temperature of
the vessel may cause bearings to seize, and hot spots in the gas could melt
the side of the vessel.

In software, my statements do not rub together and cause friction, my program is
immune to heat, radiation, rot, or any other external influence. My software is
just an expression of pure thought. This is why physical processes should be
patentable and mental processes should not, even if they are executed on a
computer.

"Can anyone explain to me how it is possible to bring mass production
products to market in an open source environment?"

Take a look at Firefox web browser. A very successful mass market open source
product.

"If there are no proprietary rights then what would stop someone else from
copying and redistributing?"

The License of course. But FOSS licenses don't prevent copying and
redistribution. But if I as an individual decided to do this with Firefox
without adding any value, why would anyone use my version. I don't have the
support resources that the Firefox community has. Nor do I have the development
resources. So the real answer is that competitive pressure decides what software
wins out.


"It has been suggested by anti-patent advocates that copyrights are fine to
protect software. This is absolutely ridiculous."

Why! Copyrights and licenses have protected software since the beginning of
commercial software. They create a fair and competitive market that has
historically lead to a very rapid pace of innovation. I really don't see the
problem.

/ikh

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Members Only
Authored by: shadesfox on Friday, November 14 2008 @ 11:08 PM EST
Well, similar to his claim about programmers being the inappropriate people to
ask about what is patentable, perhaps we should be suspect about what a patent
attorney knows about 'math'.

[ Reply to This | # ]

In School
Authored by: argee on Friday, November 14 2008 @ 11:13 PM EST
Back in school (1964), they taught us computer science.
First we have to define the end result.
Then we define the input parameters.
Then we write a flow chart for the program.
Then we code the flow chart.

It worked for 44 years.

Now, it turns out, apparently you can patent not only the
flow chart, but the end result as well.


---
--
argee

[ Reply to This | # ]

  • In School - Authored by: Anonymous on Monday, November 24 2008 @ 07:58 PM EST
Answering Gene Quinn, Patent Attorney - Updated
Authored by: DarkPhoenix on Friday, November 14 2008 @ 11:18 PM EST
Personally, I'd be interested in knowing what he thinks machine code is,
exactly. Last time I checked, machine code is simply binary numbers, and all a
CPU can really do is process mathematics. So, the real question is, should the
ability to convert complex math into a simpler form of expression (as high-level
programming languages do with machine code) suddenly mean that it should be
possible to patent it?

"You do not explain how to process information with mathematical
equations."

I'd love to know what universe he is living in, because last time I checked,
EVERYTHING in this universe can be mathematically predicted, because ultimately
the universe runs on mathematics. So claiming that you can't process
information using mathematics is horribly false; you can pretty much do anything
you want with math, provided you know the proper algorithms (whch, BTW, is why
they call programming implementations "algorithms"; because software,
like math, can be expressed in both generic and specific terms).

---
Please note that sections in quotes are NOT copied verbatim from articles, but
are my interpretations of the articles.

[ Reply to This | # ]

Maths, Art or Technology?
Authored by: ChrisP on Friday, November 14 2008 @ 11:25 PM EST
See my comment in the previous article. (I'm not up to considering this
seriously ATM).

The trouble with software is that any program can be in part all of these,
protectable by copyright or patent or neither depending on which aspect is
predominant or which you are examining. In the end it may come down to personal
judgement which is not amenable to strict lines of demarcation implied or
specifiable by laws or precedent. So you have to look at each 'program' on a
case by case basis and that is bound to produce inconsistencies in the
application of the laws.

IMHO the only 'safe' solution is to say NO to software patents.

---
SCO^WM$^WIBM^W, oh bother, no-one paid me to say this.

[ Reply to This | # ]

Software as a tool!
Authored by: ikh on Friday, November 14 2008 @ 11:35 PM EST

Software is a tool and tools have always been patentable! The fact that software is a tool used by a computer ought to not render the tool unpatentable.

Software is a tool of humans but it is definately not a tool used by a computer. Software is just a number you feed it into the cpu and out comes another number.

/ikh

[ Reply to This | # ]

"A process...should not be patentable"
Authored by: achurch on Saturday, November 15 2008 @ 12:15 AM EST
Why a series of instructions that are followed by a machine should not be patentable but a series of instructions that are followed by humans is patentable is beyond me. This is a distinction without a difference. If anything, a process that is followed by humans should not be patentable . . .

Maybe my non-lawyer mind is missing something, but isn't this pretty much what the Bilski decision said? That processes aren't patentable? If that's the case, then it seems perfectly reasonable—as Quinn suggests—for software to not be patentable either.

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: wharris on Saturday, November 15 2008 @ 12:27 AM EST
I have to confess I'm not sure whether I or not I am wasting my time by
writing a reply to someone who has already said that software experts don't
know what they are talking about when they share their ideas about what
software is. But I shall try.

Fundamentally, a computer is a complicated interconnection between
registers, memory, the ALU, and a bus that can communicate to the outside
world. It can move 0s and 1s to and from various places, and perform a small
number of arithmetic and logical operations on them. Very literally, a
computer can do nothing else -- the name is a very accurate description of
what it does. To the extent that software is a process, it is a mathematical
process to manipulate, transport, and transmute the 0s and 1s to accomplish
a desired result.

Yes, 1+1 = 2 is an example of mathematics. But mathematics also includes
things like the Bailey-Borwein-Plouffe formula. This formula states that Pi is
equal to an equation (too complex to easily render in ASII, I am afraid), but
that identical equation gives a process for computing Pi. To take a trivial
example: d(x^2)/dx = 2x gives a process for determining the derivative of
x^2.

I am not a patent attorney, so I will not state definitively whether a process
can be patented or not, but I am a computer scientist and can state
categorically that if algorithms are processes, they are mathematical ones.

I shall try one more analogy to address the process vs tool argument. In the
1700s, looms used paper tape (an earlier version of what became punch
cards) to weave cloth into various patterns. The loom was the "tool";
the
information stored on the paper tape the sequence of operations the loom
should perform to make a desired cloth. The paper tape was a list of
instructions, encoded in a highly specific, rigorously defined formal language.


Computers are exactly analogous. The computer is the tool; the software is
the sequence of instructions, encoded in a highly specific, rigorously defined
formal language. The fact that a computer can understand more than one
formal language, or that a language can be designed to work on computers
from more than one manufacturer, does not change the fundamental
relationship between instructions and machine.


Perhaps the author believes that in the 1700s, the contents of the paper
tapes fed to looms, and not just the looms themselves, should have been
protected by the patent office -- if so, I have little to say other than I
disagree.



[ Reply to This | # ]

Copyright
Authored by: Anonymous on Saturday, November 15 2008 @ 12:28 AM EST
While he may have a point about software not being math, that misses the main
point. Software is already copyrightable. It is the only object that is
subject to both patents and copyrights. Copyright law provides plenty of
protection for software IP without needing an extra layer of hassle. A single
piece of code could be patented and copyrighted by different people, and then no
one can actually use it.

[ Reply to This | # ]

Treating software as algorithms
Authored by: breeze256 on Saturday, November 15 2008 @ 12:34 AM EST
It is very strange not to see any computer scientist (not an engineer)
commenting this post. In computer science, algorithms are widely considered
*mathematical objects* with formal semantics, operations that can transform
them, theorems that are proved about their properties. So "is software a
mathematical language" is not about "is software a set of
equations" (like 1+1=2). It is about "is software a set of
algorithms", since algorithms are mathematical objects.
Software, of course, *is* a set of algorithms. Yes, it instructs the computer
how to process information. It also can instruct any executor (a human, a
trained monkey), who can read its text and knows its semanitcs, how to process
information. So where is the binding to a specific computer?
Read books by Knuth. Algorithms are described there in an assemler-like
language, and it IS intended for reading for humans, and is NOT (originally)
intended for reading by computers.
I suggest focusing the discussion on the notion of "algorithm", not on
the notion of "equation".

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Members Only
Authored by: PolR on Saturday, November 15 2008 @ 12:43 AM EST
I will take the fact that he publicly ask such questions as a desire to learn. I will assume he is not a bigot and he can grow and learn from well thought explanations.

Let's start from an amazing quote. Well Quinn's whole article is amazing, but this quote is one where I have something to say.

Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me. Do people who write software actually think they are sitting down and writing mathematical equations and stringing them together?
This betrays Gene Quinn has only elementary knowledge of programming. Advanced programmers know they are working with abstractions.

Besides, Quinn needs to beef up on denotational semantics. There are several definitions of what a computer language means. Denotational semantics is one of them. It assigns the language a mathematical meaning and the implementation of the language must comply with this meaning. So yes, when a programmer writes a program he is stringing mathematical definitions together according to the discipline of denotational semantics.

One big part of programming is coming up with data structures. Fred Brooks in the Mythical Man-Month once observed that a data structure is much more thelling than a flow chart. When you design a data structure, you are not setting up instructions for a computer to follow. You are working at a more abstract level and knowledge of the relevant mathematics is very relevant.

If you have the relevant mathematical background, the data structures will probably be better designed, unless you are a programmer with strong a natural knack with abstractions. In the latter case he will come up with good solutions. This would not be because in thinks in terms of programming a machine. This would be because he understands the relevant abstractions.

When you deal with relational databases, you need to know set theory to define the relations right with the appropriate normalization and all that jazz. With in memory structures, it helps to know category theory, especially products and coproducts although this is not necessary and most programmers do without. Recursive structures like trees work better when you understand recursion. When you design objects, you design an abstract protocol to access them. This is key to the proper use of polymorphism in Python for example. And when you are writing a language parser, you need to know push-down automatas. If you want to code to a high degree of correctness, I mean low bug count per line of code, you need to understand invariants and how to write proof of correctness. All these are examples of instances where programmer actually think in mathematical terms when programming a computer.

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

Here is another sentence that betrays lack of knowledge.

Software dictates a process, first in source code and then in object code that can be read by a machine. Every programmer writes code to direct the process and path that must be followed.
Gen Quinn does not know enough programming languages. This sentence applies only to procedural languages. If he was aware of the family of functional programming languages he would know his description of programming is wrong.

Besides functional programming is actually stitching mathematical functions together exactly like he mentioned in the first quote. Quoted from the Wikipedia article on functional programming:

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast with the imperative programming style which emphasizes changes in state.

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

Here is a huge misconception.

Can anyone explain to me how it is possible to bring mass production products to market in an open source environment? If there are no proprietary rights then what would stop someone else from copying and redistributing?
Corporations like Computer Associates, SAP, Oracle and Microsoft have been extremely successful for the many years that predated software patents with copyright protection alone. This is historical data. Patents have not been necessary and there is no reason for them to be necessary in the future. Besides there is no just need to prevent copying and redistributing for mass production products in an open source environment. On the contrary such copying and redistribution is desirable. Just ask Red Hat. Just ask Canonical.

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

How I go to core question.

From a conceptual standpoint why not allow for software to be patented. What is the harm?
The harm is software is abstract in its essence. Abstract ideas should not be patented, period. This is a key idea that deserves a thorough explanation.

From the Wikipedia's definition of abstraction

Abstraction is the process or result of generalization by reducing the information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose. For example, abstracting a leather soccer ball to a ball retains only the information on general ball attributes and behaviour. Similarly, abstracting happiness to an emotional state reduces the amount of information conveyed about the emotional state. Computer scientists use abstraction to understand and solve problems and communicate their solutions with the computer in some particular computer language.
There you have it. Abstraction is about reducing the information content to focus on what is relevant. In my experience this is something patent lawyers have consistently refused to do because they need to focus on irrelevant information to make their case work. They argue the information that is irrelevant to computer scientist is relevant legally. As a result they cause harm by creating artificial legal hindrances on innovation.

Let me work out this idea. Software patent is meant to cover functionality isn't it? An effective patent has to be broad, it has to be covering all implementation of a given functionality isn't it? Keep this in mind in the following discussion.

Abstraction is something that can be nested. For example there are geometrical shapes. Within geometrical shapes there is circles, ans polygons. Within polygons there are triangles and quadrilaterals. Within quadrilaterals there are trapeze, rectangles and square. The difference between all these levels is how much information is being trimmed down by the abstraction process.

In software it is similar. You have device drivers. Within device drivers there are printer drivers. Within printer drivers there is laser printer drivers. Within laser printer drivers there is a specific make and brand laser printer driver. This is an abstraction hierarchy and the difference between the levels is which information is relevant and which information is ignored.

How do these hierarchies of abstraction interact with patents? For the sake of simplicity I will forget considerations of prior art and obviousness. I will focus on the issue of patentable subject matter. I could have come up with another hierarchy where prior art and obviousness doesn't come in the way but it is late, I am tired and I feel lazy. Please bear with me.

Suppose someone want to patent the concept of a device driver. He needs to cover the functionality. He needs to ignore the actual process written in the code or executed by the instruction. The patent has to be broadly written to cover the functionality of a device driver, or the patent holder would not be covered. This implies that the patent covers the abstract idea. All uses of the concept of a device driver is preempted by the patent. The actual process coded in the driver is irrelevant because there is no way to change the process and still have a device driver without infringing on the patent. This is where the harm is. The patent is overly broad and stifle innovation. You should not be able to preempt all uses of an abstract idea like this with patents.

Patent lawyers will argue that because of the compilation process there is a specific (or is it particular?) machine device drivers should be patentable subject matter and should be rejected only because of considerations of obviousness and prior art. It doesn't change the fact that patent lawyers refuse to consider the abstraction that inherent in software patents.

Let's move down the hierarchy. Can we patent printer drivers? This is more specific isn't it? But printer drivers is still an abstraction. The patent is still overly broad. This is where the harm is. You should be able to patent the principle of a printer driver.

How about one level down in the hierarchy? How about laser printer drivers? If you are the inventor of the first laser printer, you should be able to patent the driver isn't it? Nope. This is still an abstract concept and patenting it is harmful. Someone else could invent a different printer that involves a laser. He should not be preempted from writing a driver for it, otherwise he just can't put his new printer on the market without the consent of the inventor of the first printer. A patent on laser printer drivers is still overly broad. This is where the harm is.

So how about patenting a the printer for a specific make and brand of laser printer? You can't go more specific than this. This ought to be patentable isn't it? The answer is still no. You are still too abstract. The laser printer will contain a chip that interacts with the computer using a protocol specific to the chip. The driver will preempt all uses of this protocol. Someone cannot build another printer using this chip without being preempted from writing a driver for it. Or if some other manufacturer builds an equivalent chip, no driver would be available without the consent of the patent holder.

The only way a software patent is not overly broad is when there is interaction with something physical that is not programmable, that does not use a man made protocol to interact with it. You need something like rubber you want to cure. But this must not be extra solution activity. You can't claim the monitor used for the user interface emits non programmable photons.

Besides, the abstract nature of software patents doesn't fit with enablement. You need to disclose the invention in sufficient details to allow someone skilled in the art to reproduce it. But when the patent is made to cover the functionality and not the details of the code, the programmer has to rewrite the software from scratch. This is another place where software patent cause harm. They grant a monopoly without any meaningful enablement to compensate the damage monopolies cause to society.

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: tpassin on Saturday, November 15 2008 @ 12:59 AM EST
Without discussing whether real-life programming amounts to mathematics, it
seems to me that there is a real difference between source code and a compiled,
runnable program. No one seems to be talking about legal differences between
them. But it seems to me that there should be. IANAL, so I write the following
thoughts from an engineering/programming point of view.

For now, let's just consider source code that has to be compiled (as opposed to
being interpreted during execution). The source code cannot run on a computer
as is. The source code is an expression of a mentally-imagined process, that is
to say, a verbal description of a process. The programmer imagines that the
process, when compiled and run on a suitable computer, will compute some result
(which may be the control of another machine, or may be a series of numbers).
In some cases, but not most, the correctness of the computation can be proven
mathematically without actually running the program.

To create something that can run on an actual computer, the source code must be
given to a build process, which compiles and links and does all those other good
things. The build process almost always depends on computer- or system-
specific things such as system libraries and other code modules, as well as the
kind of computer system. The result is a compiled program (or DLL or shareable
library, or static library, or ...) that can only run on the specific kind or
kinds of computer it was compiled for.

Only the compiled program can affect the operation of the computer to produce
the desired computation.

So, as a non-lawyer, it seems to me that only a compiled program could be
potentially subject to being patented, since only a compiled program can be run
on a computer, and only a compiled program can effect the computing process that
someone might want to protect by patent.

With this way of looking at things, the source code is analogous to the script
of a play. You can't actually perform the play without actors, a director, a
set, stage lights, etc. Note that the script describes verbally a sequence of
steps that, when followed by the actors, produces the play. Can we patent the
script? I don't think so. We can copyright it, and we can restrict the
recording of any specific performance of the play.

So if we are going to look at the source code as a series of steps describing
how to accomplish a process, I don't see any basis for treating it any
differently from the script of a play. That's because both the source code and
the play script represent a written series of steps that, if executed in the
correct performance environment, are intended to produce a result that is
imagined by the creator(s). I.E., copyright only, no patent.

What of the built, executable code? It seems to me that copyright restrictions
could be put on any specific "performance" of the code. That would
be pretty useless, though, for a computer program, since we want to create a
different "performance" each time we run it. What other restrictions
could be applied? In the case of the drama, we need the permission of the
copyright holder to stage a public performance. What about a private
performance? I don't know the legal answer here. But it's relevant, because
most programs are performed privately.

To summarize this overly-long note, it seems to me that source code should be
treated more-or-less exactly like the script of a play with respect to its
patentablilty - namely, that it can be copyrighted but not patented. A specific
run of a built executable programs should be treated like actual performances of
a play. If the current law does not allow for this approach, we now see the
direction in which to move for changes in the law.

I'm not sure where that leaves the compiled, executable program, because a play
doesn't seem to have anything quite analogous. But to me the case seems clear
for source code.



---
Tom Passin

[ Reply to This | # ]

But what is software?
Authored by: sdm on Saturday, November 15 2008 @ 12:59 AM EST
In my opinion, software is a representation of ideas and the important word is
'representation'. This representation is, at some point, converted to a form
that can be interpreted by hardware to create a physical effect, be it a
blinking light or the launch of the space shuttle. The point is, software is one
step removed from a machine in that it can tell a machine what to do but, by
itself, it serves no purpose.

Another example of this idea is music. Those black dots and lines on a piece of
paper are not music but rather a representation of music. If those dots are
interpreted properly, the music is created. Without the act of interpretation
and performance (code execution), they remain abstract.

Also, it seems to me that the word software is being used in a number of
different ways and the issue is to define just what is software. Is it text? Is
it an idea or stream of logical thought? If it is text, can you patent text? If
it is an idea, can you patent an idea and then tell other people that they can't
have that idea? If it is a stream of logical thought, can you patent that and
then tell people that they cannot use the same sequence of logic to come to same
conclusion? I think that the best you can hope for is to copyright your
expression of an idea on paper so that others must exert at least the equivalent
mental effort to duplicate your results.

At the end of the day, software causes voltage changes within electronic
circuits that represent 1s and 0s so that binary arithmetic boolean logic can be
used to manipulate other 1s and 0s in order to do something useful. If those
binary numbers remain on a CD or a hard drive and do nothing, they remain only
the potential for change but do not have any physical effect in our world. They
only become valuable if put through an appropriate piece of hardware. Put them
through the wrong hardware and you get gibberish.

So, to me, software is the stuff required to make a general purpose machine
(CPU) do specific tasks by using the available instruction set of that CPU to
manipulate date to achieve the desired result. The alternative is to make
specific hardware to do the same job but that could get really complicated and
economically impossible. Sometimes though, it is worth it as is the case for
Graphics Processors (GPUs) and Floating Point Processers.




[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: Anonymous on Saturday, November 15 2008 @ 01:11 AM EST
Paraphrasing my comment on an earlier article:

At the lowest level, what is software but the voltage/current states of silicon
switches? The switches themselves may be patentable, just like a wall switch or
a circuit breaker.

But how can patents extend into the realm of "effects" on a system
that do not alter the physical composition of the system itself? That's like
saying it's a patent violation to flip the circuit breakers in the Empire State
Building to write

L
O
V
E

in the New York City night sky. After all, isn't it just an *arrangement* of
switches to produce a particular effect?

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: tpassin on Saturday, November 15 2008 @ 01:18 AM EST
After my earlier post analyzing source code as similar to the script of a play,
I'd like to ask a question, to be answered by someone with the right legal
knowledge. Here I'm thinking about a slightly different aspect. Remember those
looms that were programmed by punch cards, the ones that led eventually to
Hollerith cards and thence played a significant role in the early development of
computers?

The question is this - would a set of punch cards for such a loom, which set
would produce a specific fabric pattern, be patentable or not? If not, I don't
see how one could argue that software, whether source or executable, could be
patented.

This doesn't work in reverse, though. That is, if the set of punch cards could
be patentable, this would not automatically imply that software would or should
be patentable, because the additional abstractions involved in the case of
software complicate the case, and would need to be considered further.

---
Tom Passin

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: Anonymous on Saturday, November 15 2008 @ 01:19 AM EST
I don't think we should get bogged down in a discussion of whether software
is equivalent to mathematical theorems. My reasons for disliking the current
system of patents has nothing to do with the mathematical aspects of
software.

It is my believe that software patents, as they currently operate, are
antithetical to the purpose of the patent system, which is to encourage
inventors to make their inventions available to the general public.

The first thing that you have to understand about software is that invention
happens much more frequently than it does with other types of engineering.
A typical software "machine" is not constrained by physical limits on
the
strength or size of parts, and thus can be many orders of magnitude more
complex than a physical machine. This means that there are many more
opportunities for a programmer to contrive a novel solution to a problem.

In the programming field, most "invention" is done casually, as a mere

byproduct of getting work done. The typical programmer invents dozens if
not hundreds of "novel" techniques each year (well, novel to them
anyway),
and they don't bother writing them down or publishing them because
inventing is so easy.

I'm using the word "invent" to mean "dream up a solution to a
problem", in
other words imagine a solution rather than having that solution given to you
from a teacher or textbook. I'm not limiting the word to mean only those
inventions that are original or patentable.

In an environment where invention is so cheap and easy, and done so
casually, the ability to monopolize an invention only acts as a drag on the
innovation of others. No one can possibly keep track of the vast quantities of
inventions that are produced by software engineers, and any attempt to do so
adds a considerable overhead cost to the inventing process. For
programmers, software patents are like a tax on breathing, it forces
something that is unconscious to become conscious and in doing so, creates
a distraction.

There is another aspect to this, which is that in the field of software, the
standard of obviousness can change very rapidly. I don't know who said
"when the world was given the gift of TCP/IP, all of a sudden a billion
ideas
became obvious", but it's true. Ideas that would have taken a genius to
imagine before the Internet were suddenly obvious to just about everyone,
and the process of patenting those inventions was merely a race to see who
could get to the patent office first. The winners weren't the smartest or the
hardest working, but in many cases simply the greediest - or at least the
ones able to afford patent lawyers.

The purpose of patents is to bribe inventors to publish their ideas instead of
keeping them secret. But in the case of software, there are plenty of
incentives already. For many kinds of application, there are "network
effects"
meaning that the information gets more valuable the more widely it is
disseminated. The open source phenomena is one manifestation of this,
based on the common experience of many programmers that software alone
is not nearly so valuable as software plus a community of programmers that
understand it. Individual programmers form communities that are bonded
together by an exchange of ideas; Attempting to monetize those ideas by
making them artificially scarce not only fails, but destroys the community.

For programmers, software is not only a tool, it is also a kind of speech. It is

how we express ourselves within our community.

I'd like to give a hypothetical scenario that I think will illustrate all of my

arguments clearly: You are a lawyer. Lawyers spend a lot of time studying and
using legal arguments and opinions. In fact, much of the language of the law
community consists of these elements.

What if they could be made proprietary and monetizable?

Imagine a world in which legal arguments are considered a kind of "business

method" and by government fiat made into some form of intellectual
property. That is, not only the expression of the argument as well as its
underlying structure could be someone's property, which you would need to
license (for a very reasonable fee, I'm sure) in order to use in court.

Would you be in favor of such an IP regime?

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: jbardhan on Saturday, November 15 2008 @ 01:46 AM EST
PJ,

To put it bluntly: Mr. Quinn's continued misunderstanding of the field of
computer science and its relationship to the development of software engineering
argues strongly against a sincere interest on his part in understanding our
views; other GL members have articulated the facts better than I could. He
might honestly have an interest in knowing our views, but his essay suggests he
does not want to understand them.

Even the _second sentence_ of his essay betrays him:
> I am a true believer in the patent system and I like the
> US approach to patentability, which is that everything
> is patentable.

This is not true and has not been true and will not be true. Ask any attorney,
any law student interested in IP, or any employee of the USPTO.

Obviously Mr. Quinn is not as ignorant of the US approach to patentability as
his statement might suggest if one lacked knowledge of his background! He is
dissembling--right off the bat--about the status quo, and trying to pass it off
as having always been that way. I would like to hear his thoughts on the 1972
SCOTUS case (Gottschalk) that software was mathematics and therefore not
patentable, and how this case squares with that second sentence.

Even setting this objection aside, he essentially ignores the requirement that
for a patent to be granted, the innovation must be non-obvious to an expert in
the field of invention. He glibly (though I must admit, deftly) tosses the
requirement aside in the second paragraph.

Finally, he pursues the question of "What should be patentable?" from
a purpose orthogonal to the intent of patent law, which was to encourage
economic growth through the protection of innovators' investments in
development. Maybe it's the libertarian streak in me, but I don't see how
"Well, why not? I can't see any harm in letting the government dictate
what I can and cannot do," counts as an argument for software patents.

Now: I agree with him in the last line of the second paragraph, that software
patents are not necessarily inherently evil.

However: I _do_ object, in general, to the patenting of a software construction
using a given grammar (ie, the construction of an arbitrary program in a given
language). My belief is that any arbitrary program in an arbitrary language
_is_ an expression of mathematics.

I suspect I would be comfortable with software patents involving the development
of a new form of expressing mathematics (ie, the construction of a new, more
powerful grammar) that has as its purpose the development of tangible quantities
(see the State Street decision).

The first two paragraphs were all I could bear. Beyond that, I could not
suspend my disbelief.

jay

[ Reply to This | # ]

English vs Programing Languages
Authored by: MDT on Saturday, November 15 2008 @ 01:59 AM EST
Actually, I like this piece of his arguement :

Calling software a mathematical language is like calling the English language a letter language. After all, every word is made of letters, so all any language is is just letters. This is absurd. You put letters together to form words, then sentences, then paragraphs. So a book is not just a combination of letters. We use letters to form the words that lead to concepts and make it possible to convey meaning in the form of communicating what is in the mind of the author to the minds of the readers.

If you want to cling to software b[e]ing a mathematical language then you need to come to terms with the fact then that your position means that software cannot be copyrighted and certainly not capable of being protected by trade secret. After all 1+1=2 is not something that is secret, and it is not original in any way. So if you want to go down this path then come to terms with the fact that what computer scientist and programmers do is not original or creative in any way, shape or form.



By this argument, any work (including this web site) could be given a patent, because it's just a bunch of words and terms used to convey and construe information. Thus, if we use the idea that a programming language is just a language, just like english, and that it's purpose is to convey and manipulate information (think about it, we are manipulating information here by discussing it back and forth), then a patent on a program is ludicrous. It's like saying 'I'm patenting a bit of language called 'Politcal Speach'' and then expecting every politician to pay me $5.00 every time they talk. Or, here's one that strikes home, I want a patent on the method of creating a 'legal brief' and I want every lawyer to pay me $5000 every time they use it.

Honestly, I think this is the way we should treat computer programs, just exactly the same way as the English Language is currently treated. Copyright works just fine for English Language. If someone writes a book about a teenager who finds out he has magical powers and goes to a weird school to learn how to use it, we don't say that no one else can ever write about a teenager who finds out he has magical powers and goes to a weird school to learn how to use it. We just say they can't rewrite that exact book or one that's massively like it (like, say changing all the names and republishing it).

As a lawyer, he really doesn't understand computer programs. Fundamentally, a program is designed to do what humans do. You can't program a computer to do something that humans can't do, because if we can't do it, we can't understand how to tell a computer to do it. A program is just a set of instructions that tell the computer how to do something really really fast. It's not magical, it's not mystical. A patent should be given on a device that is brand new because it didn't exist before, and it's got a very hard physical makeup that can be compared to something else. We don't patent books, we copyright them. We patent printing presses. This works well, we can patent the computer components, because they are physical, solid, and can be compared in a concrete way. By patenting software, you are patenting not an object, but a method of performing some task. It would be like patenting the plot of a book, or a recipe, or the instructions on the back of your shampoo.


This is what happens when you get people who are experts in their field trying to provide their 'expertise' to people in another field. I've seen it in the IT world too, people who are experts at COBOL try to explain to other people why JAVA/C/PERL/ADA/PASCAL/ is a bad language. Or worse, they try to explain the the chemical engineer why he's wrong about how his chemicals will react. It's the height of egotism to think that because you have a degree in law you are an expert in computers, or medicine, or anything else. I must admit, that in my experience, lawyers tend to be worse at this than other fields (except perhaps Middle Management degree holders). :)

---
MDT

[ Reply to This | # ]

"The beauty of software is that it is not machine dependent"
Authored by: Anonymous on Saturday, November 15 2008 @ 02:07 AM EST
Oh, how many times have I prayed that this were so...
Even source in "write-once-run-anywhere" java can be
so tied to one platform that it is futile to liberate it.
Obviously the authors didn't go to the same college
as Mr Quinn.

His article demonstrates to me a failing, not of patent law,
nor of computer science, but of the human intellect.
There is a finite number of neurons in a cranium, yet
inventors keep on inventing new machines and processes,
scientists keep discovering new knowledge, built on what
went before. Standing on the shoulders of Newton's giants.
No matter which college Mr Quinn or the software authors
went to, their knowledge of each other's field of endeavour
must be diverging and diminishing, exponentially.

The authors of the Constitution made probably the last
attempt as Renaissance Men to cover all bases for all time.
It's a pity there are few of equal intellect today to interpret
their meaning.


[ Reply to This | # ]

The straw army
Authored by: Anonymous on Saturday, November 15 2008 @ 02:22 AM EST
He is arguing from behind so many straw men and misdirections as to be almost
meaningless. No time to sort it all out, but a couple catch my eye...

"So you are writing instructions for a computer or other device and
explaining how the computer or device needs to process information."

Not. The computer processes all information in the same manner, using a very
limited set of responses. You do not explain to it how to do so. All you do
is breakdown a problem into smaller pieces that can be handled by that limited
set. You aren't even writing the instructions, those are built into the
hardware. You are just writing algorithms (hmmm, sounds like math) that allow
your broken down pieces of problem to be iteratively processed by those
instruction.

"Software is a tool and tools have always been patentable! The fact that
software is a tool used by a computer ought to not render the tool
unpatentable."

Wrong again. The computer is the tool, and the computer (hardware) IS
patentable. But the software does nothing without the hardware. Much like my
juicer, which is a wonderful tool, and I'm sure someone has (or had) a patent on
it. But they don't have a patent on the fruit (software) I run through it. And
the computer doesn't "use" the software. The computer doesn't care,
it will happily sit with a blinking cursor indicating 'no software'. The user
of software is me, as a means to tune my tool for a specific job, much like
raising and lowering the height of my lawnmower depending on the terrain. And
changing that height does NOT make the lawnmower unpatentable!

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney...
Authored by: dio gratia on Saturday, November 15 2008 @ 02:36 AM EST

Software in and of itself is protected by copyright as an expression of an idea. Thomas Jefferson referred to the subjects of patents as being "ideas" themselves. The two abstractions, idea and expression tend to be treated separately. Can they merge with software patents?

Dr. David Touretzky of Carnegie Mellon University, his students and associates have demonstrated the ability to generate executable software from just about any expression of the DeCSS encryption code method used for protecting DVD Movie content. One could conjecture that no matter how obtuse a description of a software 'invention' were present in a patent, as long as the patent document was static, a mechanism could be created to convert the description into executable software, or to execute it directly. This is the equivalent of writing expert software to parse the detailed description of the preferred embodiment and exercise the invention described therein. You can think of the detailed description as a particularly arcane markup language and the expert software capable of traversing it as it's interpreter. The interpreter depends on the patent description for instruction (i.e. the software). The interpreter is not of itself capable of performing the patented invention without the software and is not protected by the patent anymore than a CPU executing microcode to operate a programs instruction would be.

Likewise a person is capable of traversing a process described in the detailed description and perhaps with one or more aides de memoire capable of performing the process in the same abstract as would a computer, albeit somewhat slower. By allowing just the process embodied in the patent to be patented you would be in effect trying to limit the ability for someone to, by cognitive action, execute (use) the invention. Jefferson recognized the absurdity of trying to limit ideas once known. Can it be illegal or subject to patent rights to execute a process by cognitive action? Can you not think about something or only think about it if licensed?

While Dr. Touretzky and his associates did the Gallery of CSS Descramblers to show the futility of trying to separate idea and expression, the courts have a working mechanism to separate idea and expression in patents by limiting the invention protected by patent to being physically embodied. Perhaps it would be unwise to tinker with this particular legal mechanism. The underlying problem appears to be anything that a computer can do by executing software can be done by a person, and the contents and actions of one's mind are not subject to natural or privileged property rights held by others. Trying to limit the expansion of patents to include software in a manner that would preclude the interpreter would depend on a definition of computer and/or software that would likely have difficulty surviving further technological advances. Precluding cognitive process isn't in the realm of possible and likely to remain so during the lifetime of the present legal framework.

Patent documents are not protected from dissemination, the disclosure of the "idea" as Jefferson put it being the price of exclusive rights, where as a trade off for exclusive rights the patent holder puts the idea irrevocably into society's keen, what Lawerence Lessig refers to as the Creative Commons. Anyone can lookup and read a patent. Almost all currently held patents are available on line, from Google if nowhere else. A software patent without an accompanying narrow definition of software and/or computer leaves manufacture (duplication, copying) of the patented article out of the patent holders hand, a loss of an exclusive patent right.

[ Reply to This | # ]

Answering Gene Quinn, Patent Attorney - Updated
Authored by: Anonymous on Saturday, November 15 2008 @ 02:42 AM EST
Seems how this guy seems more argumentative than inquisitive, I
have but one thing to offer (after which, I'll not waste my time). In
my experience, if people don't want help understanding something,
he/she shouldn't feign such proposal because he/she never will...
Frankly, my time is worth more than this.

My proposal:

alpha=001
bravo=010
charlie=100

alpha+bravo+charlie=111


Can I have my patent now?

I can't pretend to be some great programmer. I wish that I were but
as it happens (and after all the classes I've taken and barely passed),
MATH is not one of my strong suits and MATH is what holds me back.
So to me, this is a ridiculous conversation to begin with and it's hard
for me to imagine how someone with such a high level of education
can fail to grasp such a simple and obvious concept (unless he/she is
only wanting to be argumentative).

The idea of patenting software is as foolish as the idea of patenting
algebraic equations/expressions. Just because a computer language
(ie, an accumulation of alphas, bravos, and charlies) doesn't fall
under the category of 2nd grade mathematics, it's still a math
equation that the computer sees and calculates (and yes, that
includes Algebra, Calculus, and a whole slew of methods out there for
determining the value of 1+1)



Quote of the day: There are only 10 kinds of people in this world.
Those who understand binary and those who don't.

[ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated - More thoughts
    Authored by: drh on Saturday, November 15 2008 @ 02:42 AM EST
    From the first paragraph:

    "The beauty of software is that it is not machine dependent, so making it
    machine dependent in order to be protected is offensive..."

    It may be offensive, but the reality is that software is machine dependent.
    Without a machine to run the software on, the software could not exist, indeed
    it would have no reason to exist. In addition, software must be written to
    operate on the specific machine it is intended to run on. Instructions for a
    Motorola CPU will not work on an Intel CPU, they process instructions
    differently. It is a modern abstraction that allows humans to write software in
    a language they understand, and have a device that translates those human
    readable instructions into ones a SPECIFIC machine can understand.

    From the second paragraph:

    "If prosecution were more meaningful, what is the harm in granting software
    patents? I see none because there is none."

    One harm is exactly the prosecution. I am sure Mr.Quinn does not work for free,
    and I know most of his colleagues do not. The cost to litigate a patent dispute
    is astronomical, and well out of the reach of nearly all businesses. This has
    created the scenario that only the rich can afford to litigate, and as a lawyer
    I feel Mr. Quinn might agree that justice only for the rich is no justice at
    all.

    The fifth paragraph:

    I have read this, and pondered it, and wondered about it, and considered it, and
    I still fail to understand how his carpal tunnel experience relates to software
    patents...

    From the sixth paragraph:

    "I have struck a sour note in the mind of those open source advocates who
    are still reading, but whether you like it or not the open source model is
    contrary to human nature and will run its course in the not too distant
    future."

    History shows that what I recognize as the "open source model" has
    worked in many different cultures over many millenia. It is not the only model
    that has worked, but it has worked. Today, our sciences in ALL disciplines, rely
    on the open sharing of information. The computer the article was written on
    could never have been developed without open collaboration. Indeed one of the
    early major decisions relating to ownership of software code had to do with ATT
    vs UC Berkley over who owned UNIX (and it's variants). You know UNIX, the system
    that runs the internet?

    From the next to last paragraph:

    "I can look at what you did and do it in my own way to accomplish the same
    exact thing without ever violating a copyright."

    Welcome to the real world Mr. Quinn. This is exactly how progress is made. We as
    humans look at something, figure out how it is done, then go off and do it one
    better. This is one of the things Open Source advocates are fighting for,
    PROGRESS! As a lawyer you must understand this concept, laws in the United
    States are based in part on precedence, by looking at past decisions and
    applying them to the case at hand.

    We are but "Dwarfs standing on the shoulders of giants (Latin: nanos
    gigantum humeris insidentes) is a Western metaphor meaning "One who
    develops future intellectual pursuits by understanding the research and works
    created by notable thinkers of the past" (attrib: Wikipedia). We as human
    beings MUST have this or we will never progress, not ourselves, not our
    machinery, and most certainly not into the future.



    ---
    Just another day...

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: bprice on Saturday, November 15 2008 @ 02:46 AM EST
    From a conceptual standpoint why not allow for software to be patented. What is the harm?
    To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries [Constitution of the United States, Article I, Section 8, emphasis added] is the power under which patent may be granted. It's well known that, particularly in the case of software, patents inhibit the progress of science and useful arts, particularly in software. That is the most obvious harm. Others will of course, be able to give references. I've seen many of them, but I can't find them at the moment.
    I know many of you reading this have now gone into an apoplectic rage, but conceptually why should software be treated any differently? Isn’t the problem that patent offices, particularly the United States Patent Office, are increasingly doing a poor job of finding relevant prior art and weeding out what is new and non-obvious from what is old and obvious? If prosecution were more meaningful, what is the harm in granting software patents? I see none because there is none....
    It depends, of course, on whose ox is being gored. There is little harm to megacorporations with the resources to prosecute patent applications; nor is there harm to the patent bar, which comprises those resources; nor to the patent troll, who sees them as a source of free money. To the thousands of innovators outside of the megacorporation, the harm is the risk of using an obvious software construct that a megacorporation or patent troll wants to collect his patent tax on.
    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me.
    Your lack of understanding of the software arts and sciences is not binding on reality ;-). I've written software for over forty years; I've understood software for much of that time. It was only after years of writing software that I became aware of its mathematical nature: it took that long because I'm a natural mathematician (so say educated mathematicians, anyhow) and "it wasn't the fish that discovered water". Because of this experience, I can sympathize with your complaint.
    Do people who write software actually think they are sitting down and writing mathematical equations and stringing them together? It is absurd to have such a narrow view of software.
    Yes, it is absurd that you have such a narrow view of the mathematical nature of software. Mathematics is so much more than equations: it's ideas, and how they fit together: the idea of 'equation' is a very small part.
    When you write software you are trying to enable a device, such as a computer, to provide certain functionality given a certain stimulus. So you are writing instructions for a computer or other device and explaining how the computer or device needs to process information. You do not explain how to process information with mathematical equations.
    You are correct: I don't use many equations in the mathematics of my programming. I do, of course, use them in analysis of programs, and in the (mathematical) derivation of programs. I have never, in my years of composing programs, attempted to explain a program to a computer. I have explained programs to people--using the mathematics discussed below (and sometimes other mathematics, like graph theory or set theory). In these explanations, equations are quite helpful. Since you complain of such a vast misunderstanding of the nature of mathematics, computers and software, let me explain some of the critical notions.

    A computer is comprised of (a) a number of 'state elements' and (b) a means of modifying some or all of them as a function of some or all. A digital computer has, in addition, (c) a means of composing the modification functions to apply. (Notice that I have learned a bit of patentese over the years, largely from my own patents.) There are several caveats in the above statements:

    • The phrase 'state element' is a mathematical concept. It does not coincide with the idea of state that we learned in high-school chemistry (solid, liquid, gas) nor with the common extension of the state idea to physical ideas like shape, size, color, velocity, and the like. I do not know what the court has in mind when it issued its ruling mentioning "state of matter", but just the use of the word "matter" takes it out of the realm of mathematical ideas. Thus, the court isn't discussing these state elements.
    • The word 'function' is a mathematical concept, denoting a correspondence from one set (of 'state element' configurations, in this case) to another.
    • An equation is an application of a specific equality function to the notions on either side of the equal sign. It has a few interesting properties, some of which are fundamental to many fields of mathematics: that's all that makes it special, though. It's much more useful in deriving or analyzing a program than in the program itself.
    • Function theory is a branch of mathematics. Programming is a function-theoretic endeavor. However, the notation of function theory does not scale very well, so the programmer uses a different notation. This doesn't change the nature of anything. Electrical engineering uses notation that's different from physics, even when they're discussing the same phenomena. Big deal. What's handy notation for one is cumbersome for the other.
    • Some of the functions are pseudo-arithmetic in nature. These make it easy to pretend that the computer can perform arithmetic. With such a function, a small portion of the state-element set are modified such that a specific interpretation of that portion is equal to the sum (product, difference, etc) of the interpretations of certain other portions, within certain well-defined limits. No computer deals with arithmetic and numbers; they only deal with pseudo-arithmetic and pseudo-numbers.
    • Some of the state elements may have exposure outside the confines of the computer. Some portion of the state-element set may be interpreted as representing a set of glyphs on a display or a printer. This interpretation is performed by functions in the computer--yes, more functions, more math.
    • The most important mathematical idea in computing is function composition, often thought of in terms of sequencing of function application. This is the heart of the difference in notation between function theory and programming.
    The art of programming is the art of defining mathematical compositions of mathematical functions, nothing more and nothing less.


    Let's look at the computer by my desk, the one I'm using to write this with. It has on the order of 2.3×1015 distinct state elements. It has a state-modification applier (called a processor) that can modify about 100 of them per application: this figure includes the subset of the state-element set referred to as 'data' as well as the subset with which the function-composition is tracked. The functions I'm composing mess with less than 10-13 of them per application. Wouldn't you consider one in ten billion to be trifling, the kind of trifle that the law should not be concerned with?


    If you want to cling to software b[e]ing a mathematical language then you need to come to terms with the fact then that your position means that software cannot be copyrighted
    Why not? It is an expression of an idea. Expressions are the subject matter of copyright.
    and certainly not capable of being protected by trade secret. After all 1+1=2 is not something that is secret, and it is not original in any way.
    But your arithmetic equation has precious little to do with mathematics in general, and even less to do with programming. Arithmetic is really a trifling portion of mathematics; to suggest that it's all that mathematics has to offer is, let's say, a creative argument, but one with little resemblance to reality.

    But why, pray tell, should a particular expression of mathematics and the context in which it is special, known only to a well-controlled few, be immune from trade-secret protection?

    So if you want to go down this path then come to terms with the fact that what computer scientist and programmers do is not original or creative in any way, shape or form.
    I know of no one, save you, that's interested in going down this primrose path of stripping all the non-'1+1=2' ideas from mathematics. Mathematics, when you understand some of it, is a fertile field for expressing original ideas and for creating extremely useful compositions (e.g., of functions).


    A computer is an artifact of human creativity--the creativity of many humans, in fact. Its sole purpose has always been the mechanization of function composition, and the evaluation of such composites.

    The sole purpose of player pianos was to execute a piano roll. To suggest that software should be patentable is no different from suggesting that a player piano with a roll installed for a particular (copyrighted!) composition should be patented, or that the copyrighted roll itself should be patented.

    OK, let's be more modern: the sole purpose of CD players is to emit sound as specified by the (copyrighted) CD it's playing. Should the recorded CD be patented as well as copyrighted? Should the combination of a CD player and a particular recorded CD be patented?

    ---
    --Bill. NAL: question the answers, especially mine.

    [ Reply to This | # ]

    "You do not explain how to process information with mathematical equation"
    Authored by: ak on Saturday, November 15 2008 @ 02:46 AM EST
    He wrote
    You do not explain how to process information with mathematical equations.
    Maybe he should read a bit about declarative programming.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 02:48 AM EST
    Eben Moglen, the counsel for the FSF, can answer this better than most here I
    would guess.
    At one of the OSCON's I went to he gave a talk on this.
    I don't remember all of it, but he made two points that I do remember.
    a) The original purpose of patents back in the 18th century was a piece of
    immigration policy. Congress wanted to encourage skilled people to come to the
    US and invent there.

    b) To grant a patent on software means that anyone else is forbidden to even
    THINK about a similar idea.
    (To see why this is so, you would have to follow Eben's argument.)

    I have my own point to make also in regards to the benefit to society bit; in
    exchange for being granted a patent, the patent holder had to publish his
    invention for all to learn from and improve upon.
    This sounds like 'Open' to me, and is very much contrary to the way that
    software patents are currently granted; many software patents are granted
    without the code being published at all; in fact the desire to keep the code
    secret may be the reason that the patents are applied for not on the software,
    but on the underlying idea itself.

    pgmer6809

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 02:54 AM EST
    I was trained as a mathematician, have done research in mathematics which is of
    recognized quality and importance, and teach it for a living in a university.
    More recently, I am somewhat of a self-taught programmer. Admittedly, I know a
    bit less about the law. What I have to say is not meant to flame Gene Quinn.
    Rather, I hope that he will think about opposing opinions. Some points:

    1. Gene Quinn has claimed special knowledge of the law, which those who are not
    practitioners can not properly appreciate. I think that he needs to understand
    that my training was at least as rigorous, exacting, and lengthy as was his own.
    I get the impression that he knows very little of the nature of mathematics, nor
    of computer programming. Otherwise, he would be more inhibited from making such
    sweeping statements. Mathematics is a very large and diverse field. Some
    mathematics deals with numbers, and some does not. What is in common, I would
    say, is an attempt to organize conceptual frameworks, to develop structures and
    systems, to proceed by means of logical development. The first computer
    scientists were, as I recall, mathematicians. It is obvious to someone who has a
    foot in both of these fields that this did not happen by accident. Alas, I get
    the impression that this is may not be so obvious to practitioners of patent
    law.

    2. Even if he were correct about what the law says (and I suspect that he is not
    correct), then perhaps he really ought to think hard about what the law ought to
    say instead of what he believes that it says. For a beginning, the laws relating
    to patents ought to be more in accord with the goals and objectives of patent,
    as stated in the article of the Constitution which deals with same. If those
    laws as they are written and currently interpreted are not promoting those goals
    and objectives, but instead are doing obvious harm to an industry which is
    important for the entire economy and contributes heavily to the security of the
    country, then there is a problem for the whole nation. He really ought to think
    about that and try to look more objectively at his own (partially hidden and
    subconscious) assumptions about what is good for us. Need I mention that
    somewhat similar hidden assumptions about what the laws are supposed to mean and
    about what is good for us might be a significant contributor to the current
    economic situation?

    3. If he is still not convinced of the harm that has been occurring, and if he
    only wants to listen to other legal practitioners then there is not much that
    can said. However, if he is willing to listen to what a Captain of Industry --
    who is not an attorney but is the son of an attorney -- had to say about such
    weighty matters, then he ought to think carefully on that well known quotation
    of Bill Gates, from ca. 1991, referring to the computer and software industry:

    "If people had understood how patents would be granted when most of today's
    ideas were invented and had taken out patents, the industry would be at a
    complete standstill today. ... The solution is patenting as much as we can. A
    future startup with no patents of its own will be forced to pay whatever price
    the giants choose to impose. That price might be high. Established companies
    have an interest in excluding future competitors."

    I would ask Gene Quinn whether he will take the word of Bill Gates for this.
    For, the idea that patents can help to foster innovation in the computer
    industry is flatly contradicted. Rather, patents would have only served to
    stifle what progress had taken place until then. And further he says very baldly
    that "The solution is patenting as much as we can," which very clearly
    means from context an intent to use the patent system to bring everyone else but
    his own company to a standstill. And he sees that it is possible to do just
    that. Finally, I point out that the last sentence refers to the ability of
    "established" companies to exclude "future" competitors. I
    would very seriously ask Gene Quinn whether such a potential outcome was ever
    envisioned as the desirable goal of patents, either in the Constitution or in
    the law. If this is seen as a real possibility in an entire industry, then
    perhaps it does demonstrate that the industry is special, is not like others,
    and might deserve different treatment. Why, then, ought we to have software
    patents? And if we are forced to have them, then why ought we to believe that
    software patents are good? I mention this quotation because of Mr. Quinn's not
    quite articulated but not quite hidden assumption that patents are good for
    everybody and can only have beneficial effects. Mr. Quinn should, I think,
    reflect upon the fact that some rather fundamental things, such as the World
    Wide Web which allows this exchange of opinions to take place, would probably
    not exist if the computer industry had been "at a complete standstill"
    because of patents.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: webster on Saturday, November 15 2008 @ 02:59 AM EST

    Let me get my legal bias out in the open right away. I am a true believer in the patent system and I like the US approach to patentability, which is that everything is patentable...

    This response comes in the remote possibility that you can overcome your bias and take up a new livelihood. Let us first correct your error: In the US everything is not patentable. That is why there are cases like Bilski with lawyers like you fighting in them.

    ...I detest those who want to make the patentability decision a single-inquiry determination and say that there are things that should simply not qualify for patent protection because they just shouldn’t be patented. This single-inquiry determination is irrational at best and naive at worst. There is no need whatsoever to collapse the decision into a single binary inquiry. I see no justifiable rationale for determining software should not be patentable subject matter, and the Bilski decision that requires us to identify a machine forces us to all engage in intellectual dishonesty. The beauty of software is that it is not machine dependent, so making it machine dependent in order to be protected is offensive, particularly when this irrational approach is forced upon us because of some desire to maintain a 19th century patent system for a 21st century economy.

    Hardware should be patented. Software by name is abstract. It is language. What if someone patented the first programming language? Then everyone that created another programming language with similar commands would be violating the first patent on software. Software is just a way of talking to a computer. Fifty programmers can invent fifty different ways of telling that computer the same thing. Giving one person a patent on talking to a computer is stifling everyone else and giving one an unfair advantage. It prevents innovation.

    From a conceptual standpoint why not allow for software to be patented. What is the harm? I know many of you reading this have now gone into an apoplectic rage, but conceptually why should software be treated any differently?

    The problem with patenting software is the difficulty in determining exactly what is being patented. If it is the specific language, then it is limited but easily identified by its exactitude or literal copying. That makes it like copyright. The problem is that from the specific invention of a particular program the invention gets extended to what that program and the machine it is attached to does! Suddenly someone is saying that "any" programming language that does the same thing with the machine is violating the specific software "invention." They claim a patent violation even if the software is better or worse or in a different language as long as it does the same thing as the original software and machine. This creates a vague and over-broad extension of a specific program into a capture of the whole business method.

    Isn’t the problem that patent offices, particularly the United States Patent Office, are increasingly doing a poor job of finding relevant prior art and weeding out what is new and non-obvious from what is old and obvious? If prosecution were more meaningful, what is the harm in granting software patents? I see none because there is none. We should not tolerate intellectual dishonesty because it is expedient. The trouble is that patents are being granted on “inventions” that are not new or which are obvious. The problem is not that software presents an inherent evil.

    Not only is the Patent Office doing a bad job, but the process is stacked in favor of the patent applicant and holder. There is no due process. The Patent Office is blinded by statute and ignores fifty years of software history. About everything you can do with software to manipulate a computer has already been done. Just because someone applies it to new hardware doesn't mean there is anything new in computer language. When you start with the binary reality of "on and off," succeeding steps tend to be obvious applications of the speed and wonder of computers to life as we and history have known it.

    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me. Do people who write software actually think they are sitting down and writing mathematical equations and stringing them together? It is absurd to have such a narrow view of software. When you write software you are trying to enable a device, such as a computer, to provide certain functionality given a certain stimulus. So you are writing instructions for a computer or other device and explaining how the computer or device needs to process information. You do not explain how to process information with mathematical equations. You explain how to process information by defining instructions that are followed. Does it help to understand basic mathematical priciples, of course. But that does not mean that software code is a mathematical language. You don't tell the computer that 1 + 1 = 2, you explain to the computer how to process information so that 1 + 1 will consistently and predictably equal 2.

    This reads like a self refutation and leads one to question the intellectual honesty here --or giving the benefit of the doubt lay it to fundamental ignorance. The mathematical example above reminds us that all code must be reduced to a binary form because that is all that a computer can read. That is a reality, mathematical and otherwise. Patenting software that is reduced to computer readable binary "numbers" is an attempt to hijack business thoughts. The computer does not process information. The person that writes the software figures out how to process the information. He then puts it in a language that he understands. That language is then translated by a compiler, -- that someone mathematical invented, into a crude idiot, binary that the computer reacts to by flipping circuits on and off. So patenting the business methods behind specific software is an attempt to monopolize the application of the human imagination to a field of computer application.

    * * *

    Software is a tool and tools have always been patentable! The fact that software is a tool used by a computer ought to not render the tool unpatentable. When I was suffering from severe carpal tunnel and needed surgery typing was extraordinarily painful. In time my wrist stopped hurting and I was able to type again and even go back to the gym and sleep through the night without waking up with numbness. There are many individuals, however, that will not be able to seek a surgical fix and who will not be able to enjoy even basic use of a computer absent speech recognition software. If the goal of the patent system is to grant limited exclusive rights in exchange for knowledge, information and inventions that will assist society, then why not allow for patentability of software if it is new and non-obvious?

    Software is not a tool like a shovel or computer hardware. It is language. If you develop a program to have it toast bagels in Fortran, does that mean that someone that writes the same thing in C+ is violating your patent? If you assemble a new array of sensors, regulators, bells, and lights on your computerized bagel toaster should you get a patent for the hardware? If someone improves your bagel-toasting software, do they violate your patent? Speech recognition? What is patentable about that? People have been doing it forever. Reading the mathematical representations of sound has been going on for a while too. Speech recognition is improving with many people working on it. Patenting something so obvious, methodical, and mathematical would deprive all but one from improving it. It is not true that patentability is necessary for invention and a benefit to society. Software certainly thrived before State Street case and the error [and era] of software patents.

    The one thing that keeps coming up in the software world is that true believers of software advocate for free and open source and no proprietary rights. What a wonderful world it would be if that were reality, but in the real world investment follows market opportunity, and there cannot be market opportunity without proprietary rights. Again, I am sure I have struck a sour note in the mind of those open source advocates who are still reading, but whether you like it or not the open source model is contrary to human nature and will run its course in the not too distant future.

    There is some unrelated rant-bait in here. This is confused and misbegotten. Proprietary rights in software do not necessarily have anything to do with patentability. You can have proprietary rights without patentability. You can have proprietary rights with copyrights. Indeed open source is founded on the proprietary use of copyrights. There are some patents thrown in too. People are making money with open source. Ask Red Hat and IBM. In fact open source is becoming a way to develop software and avoid the litigation cost. The day will soon come when it is recognized as inexpensive and risk-averse compared to proprietary software. It will become essential to business.

    If you do not question the intellectual honesty of this article, if you do not consider this propaganda, reconsider the clause: "open source is contrary to human nature and will run its course in the not too distant future." Since when has "free" as in "beer" become contrary to human nature? This Ubuntu computer runs on free software updated for free whenever the fancy strikes. It runs without paying for anti-virus software to keep it from slowing down and popping screens. It doesn't crash. Open source will last forever unless it is destroyed by its competitors, patents or law. All of these are possible by the proprietary powers hat be. Indeed the open source movement exists because many have been beaten and locked out by the proprietors. Open source is the only way they can survive. It has a strength of community --sharing ideas. Human nature can accommodate both greed and bargains. The man has an ax to grind.

    Can anyone explain to me how it is possible to bring mass production products to market in an open source environment? If there are no proprietary rights then what would stop someone else from copying and redistributing?

    There are many mass produced products using open source --more and more like cell phones and computers. Embedded devices are rapidly going open source. They are even gettng into opening the hardware design specs. No one is stopping anyone from copying and redistributing. Look at all the netbooks sprouting up. It is good for the consumer. The manufacturers are adjusting. They have to innovate and provide good service. If they are using open source, they by definition are already copying others work. They have to pass on the benefits they get. Part of the price is sharing their improvements. They are not forced to do this. They are free to go proprietary.

    It has been suggested by anti-patent advocates that copyrights are fine to protect software. This is absolutely ridiculous. Copyrights protect only the identical express. I can look at what you did and do it in my own way to accomplish the same exact thing without ever violating a copyright. So copyrights provide little if any useful protection for software. The only protection they do provide is against those who are lazy and simply cut and paste. Given that is only costs $45 to obtain copyright protection you might as well do it so you can sue those lazy free riders, but a copyright does little else.

    As was explained above, when you patent particular computer language, it necessarily expands to the ideas and methods executed by that language. The ideas and methods are not necessarily innovative or non-obvious. Copyright was fine. You can invent many different ways to program a bagel-toasting machine.

    The real problem is that software patents do indeed cover a machine that operates in a certain way; but not just any machine, the machines that we all rely on every day – the computer and our cell phones. The arguments of the protesters and other anti-software patent crowd seems to be that software is far too important be patented, far too fundamental to daily life to deserve exclusive protection. But if that is the foundational starting point for the debate, then how is it possible to justify any patent at all? With this rationale it would seem that the more foundational and important an invention the less deserving of patent protection. This is not to say that software is as important as a cure for cancer or an AIDS vaccine, but not allowing patents simply because too many people would have to pay royalties seems virtually certain to lead to a patent system that rewards those who inch forward rather than those who leap. And that is simply bad policy.

    This is the patents are expensive argument. Obviously a one size fits all patent system is not working. There is too much litigation. Its too important for society to leave to the proprietors to exploit them. It is time to balance the scales.

    ~webster~

    [ Reply to This | # ]

    Software patents
    Authored by: Crayola on Saturday, November 15 2008 @ 03:08 AM EST
    Did a patent lawyer really say everything is patentable? I'd like to patent the
    color blue. That'll be $5 please.

    All software has a mathematical description. It's more cumbersome than your
    typical programming language, but it's not our (programmers) fault that Mr.
    Quinn never had that class.

    Fundamentally, programming is about converting a conceptual framework into a
    fixed form. Where have I head that before? Ah, writing and music, the subjects
    of copyright. I'd like to patent the detective novel.

    Which is where software patents (although couched in much more formal trappings)
    take us. By getting away from the speciic fixed form (copyright) and allowing
    software to edge into the realm of patents (abstract claims), you're actually
    hedging out the thinking that makes up software itself.

    And what's the average lifespan of software vs the life of a patent? One bad
    patent can cause damage for generations (all your bubble sort are belong to us).
    How likely are bad patents? Well, I wouldn't ask a lawyer. They often don't
    know the first thing about software.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: maztec on Saturday, November 15 2008 @ 03:08 AM EST
    There are three types of software in the law: patentable, copyrightable,
    neither.

    Patentable software is hardware dependent and nearly inseparable from the system
    it is connected to.

    Copyrightable software is not so much the software but the software's expressive
    results.

    Neither is where a lot of software, but not all, falls. It is mere
    instructions, formulations, a way to massage input into output. It is not a
    novel, unique, useful idea or a creative expression. It may be a container for
    these things, but it is not them.

    Ultimately, the problem is with the poor patent and copyright prosecution,
    evaluation systems in place. Better scrutiny would improve the quality of ideas
    that are protected. Until then, we suffer the results.

    What are those results? What is the harm? The harm is damage to the little man
    or woman, the garage programmer; who does not have the financial resources to
    protect him or her self from the gigantic oligopolies that reign the industry.
    Sure, you could argue this for other technologies, but the cost of patent
    litigation for software is tremendous in contrast to other industries. Why does
    it cost so much more? Because software is a process. Process patent litigation
    is expensive, always has been, always will be. This is fodder for why processes
    should not be patented - and recent cases are showing that the courts have
    started to agree with this thought.

    The problem is that inventors do need protection. Without it, the same
    corporations could steal your ideas without compensation as easily as they can
    patent your ideas without compensation.

    The correct answer may be to balance the burdens versus benefits and then seek
    solutions that maximize benefits while minimizing burdens.

    To this I say, good luck, time will tell.

    [ Reply to This | # ]

    Languages
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:16 AM EST
    Well, not all languages use letters. Some languages use syllable and others use
    whole words. Japanese is syllabic and Chinese uses whole words. Computer
    languages are more equivalent to Chinese than to French. Each word in a computer
    language is a complete idea, and not a letter.
    For example "If" represents a conditional test. Hence it encompasses a
    signal that an action will follow. As opposed to the letter "z" which
    by itself has no meaning. So comparing a computer language to an alphabet fails.
    However, an if then else statement is a complex logic statement. Logic can be
    represented symbolically and thus can be treated as a form of math. If logic is
    patentable then who will teach it in school? Is set theory a patentable subject?
    The problem with lawyers and laypersons is a lack of understanding of the scope
    and breadth of what is math, logic and programming languages; and the
    intertwining relationships and dependencies of them.

    [ Reply to This | # ]

    • Languages - Authored by: Wol on Saturday, November 15 2008 @ 06:24 AM EST
      • Rothschild - Authored by: Anonymous on Saturday, November 15 2008 @ 09:20 AM EST
      • Languages - Authored by: Anonymous on Saturday, November 15 2008 @ 01:25 PM EST
        • Languages - Authored by: Wol on Saturday, November 15 2008 @ 07:22 PM EST
    We have to start with the question : what is a program?
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:20 AM EST
    When computer scientist says a program is a "mathematical equation",
    that is an abstraction that most non-computer scientist will not understand, so
    let's put it into simpler terms.

    There are all kinds of software in the world : they will calculate the price of
    your grocery, run the ignition system in your car, allow you to chat online, and
    of course, running this website. When you boil it down, a software simply is a
    set of instructions that transform a set of input into a set of predetermined
    outputs. Behavioral scientist may call it a 'stimulus-response' pair. A software
    does not 'implement' the relationship, it 'describes' the relationship.

    Takes this as an example. You type the key 'A' on a keyboard (the keyboard is
    patentable), and then you see the character 'A' on your monitor (the monitor is
    also patentable). What a software does is to link the action 'typing on
    keyboard' to 'displaying the character A on the monitor'. The software describes
    the actions to be taken, but it's up to the hardware to implement it.

    Ideas are not patentable. A physical implementation of an idea is patentable.
    With software, they physical implementation is broken up into two parts : a
    description of the idea, and a machine that implements the description of the
    idea. The courts address this issue by including the 'machine test', which is
    nothing but a fig leaf. Once you have a machine that can implement idea as long
    as it's described in a certain way, there is no longer any distinction between
    an 'idea', or the 'implementation of an idea'.

    We need to sit back and look at the purpose of patent law in the first place.
    It's to promote scientific progress by rewarding inventors who publish their
    ideas. Would a software patent promote better software? The answer is
    resoundingly no. In fact, it may be time for us to scrap the idea of patent all
    together.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:26 AM EST
    Why would you ever ask computer scientists and programmers what is or is not patentable since they have no knowledge of the law?

    The fact that computer scientists and programmers mistakenly believe software to be mathematical merely demonstrates that they have learned absolut[e]ly nothing about software and what it is and does.

    The simple truth is that software is not a mathematical language. You write code to direct action. The source code is compiled into object code that can be understood by a computer. This object code explains to the machine what the machine needs to do.
    Oh, the incredible irony of these three paragraphs. Mr Quinn feels entitled to decry computer scientists as mistaken when we say that software is mathematics, yet he wants us to leave the question of what should and shouldn't be patentable solely to the patent lawyers since we have no knowledge of the law?

    As far as it goes, his description of software is actually pretty good. Software really is just a series of instructions that tell a computer what to do. Where Mr Quinn goes wrong however, is in thinking that this somehow makes software something other than mathematics.

    Firstly, it implies a very limited concept as to what actually constitutes mathematics. I'm sure many mathematicians would be surprised to discover that their field was now restricted solely to basic arithmetic with nary an algorithm to be seen.

    More importantly, however, it implies a complete failure to grasp the limitations on the kinds of instructions that a computer can understand.

    The fact is, the only language that computers can truly "understand" is mathematics, because the folks at Intel and AMD and Texas Instruments and the like built them to do that. All the software does is manipulate the mathematics that the underlying hardware understands in complex ways to translate a starting set of numbers into a final set of numbers. The computer doesn't care in the least what the numbers represent: it's just doing math.

    A lot of the mathematics involved in software is standardised and build into libraries, or sometimes even into hardware, and a lot of dedicated hardware to perform those standard tasks is itself patented. There are also plenty of real, meaningful patents covering the sensors and the effectors that translate between the software world and the real world.

    But the instructions themselves? Thats just mathematics, because mathematics is the only language that computers understand. The fact that we've written compilers and interpreters and all sorts of other things to make it easier for us to define the mathematics we want the computer to execute doesn't change the raw limitation that computers only know how to do one thing and one thing only: compute.

    If you allow pure software patents (as opposed to patents on the sensors, effectors, processors and other components that have a real physical existence), then you're allowing patenting of mathematics. Now, it may be that someone actually does want to argue that mathematics should be patentable. But don't try to argue that it is possible to allow software patents without allowing math patents. Anyone that thinks the two are different either doesn't understand software, doesn't understand mathematics, or doesn't understand either.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:29 AM EST
    First I think its import to make some concessions. Some parts of a program are
    not mathematical, nor algorithms. For instance the statement

    print "Hello world";

    is not an algorithm. It sits on top of a bunch of algorithms, for instance there
    is an algorithm to read the string and appropriately stop at its end, and put
    the appropriate data in the appropriate place. But the statement itself is not
    an algorithm. Similarly

    x = 129 + 33;

    is not an algorithm however again it requires the use a number of algorithms to
    achieve the required result. For instance the algorithm to translate a set of
    numbers (to modern ASCII/Unicode based language that statement is actually the
    number sequence 120, 32, 61, 32, 49, 50, 57, 32, 43, 32, 51, 51, 59) into a
    sequence of operations that actually performs the desired results is a
    collection of algorithms.

    In fact the area of compiler theory is so inherently algorithmic that nowadays
    one doesn't bother writing big chunks of it. Instead one uses programs which
    are designed to write programs which can. What once took teams of hundreds of
    programmers years to accomplish is now done by first year computer science
    students in a few hours, with most of that time learning the required definition
    language.

    Another part of that statement that requires an algorithm is the allocation of
    memory to store the variable. If it is "heap allocated" then an
    algorithm had to be performed to find some space on the heap. If it was stack
    allocated then an algorithm was used to determine where on the stack to look. If
    it was statically allocated then another algorithm had to determine where in
    static memory the variable would be stored.

    The thing is, the bits of a program which aren't algorithmic are almost always
    uninteresting and unlikely to be patentable simply because they clearly would
    fail the novelty test.

    The meat of a program however will be one or more algorithm's, because if it
    wasn't the program would not produce predictable results. So if Mr. Quinn wants
    to be able to patent buggy programs that do not produce predictable results then
    I say let him. But the useful stuff, like how to sort a set of numbers, how to
    convert the character sequence "12459" into binary, (or in other words
    how to convert the number sequence 49, 50, 52, 53, 57 into the binary sequence
    0011000010101011) is most certainly an algorithm.

    And the thing is, algorithms are math. Algorithmic analysis is completely
    mathematical. The process of proving an algorithm correct is mathematical.

    Mr. Quinn seems to think that mathematics is comprised of algebra and little
    else. He is completely wrong. The description of an arithmetic process which
    unfailingly produces the same results every time is a mathematical one. Now
    perhaps he might argue, "Whats the difference with a machine, like a cotton
    gin, that consistently produces the same results?" The difference is that
    an algorithm, by its nature CANNOT produce different results. A cotton gin can
    break. Its parts can wear, and over time it will fail. An algorithm however will
    never ever fail. Just as it will never ever be the case that the square of the
    square root of -1 will be anything but -1. It is in effect a mathematical truth.
    Always existing, always there to be discovered and utilized.

    Lets look at a fairly well known patented algorithm, the LZW compression
    algorithm. This algorithm is used to compress data. It involves the construction
    of a dictionary from the data to be compressed, and also constructing the
    dictionary from the compressed data. You can implement this algorithm on paper,
    on a machine, or on a programmable digital computer. Now I wouldn't mind if a
    mechanical machine that did this kind of compression was patentable. But the
    underlying algorithm itself is a mathematical truth. For all we know on another
    planet this algorithm is being used widely, on computers whose design we have no
    knowledge of. But the algorithm itself would be immediately recognizable. And
    would still be mathematical.

    http://en.wikipedia.org/wiki/Lempel-Ziv-Welch


    Not all of a program is an algorithm. Not all of a program is mathematical. But
    all the important bits are. And by the time you remove them you are left with
    nothing useful. And since its not useful its not patentable. And since
    algorithms are mathematical they aren't patentable either. The classic algorithm
    is Newtons method for approximating the square roots of a function:

    http://en.wikipedia.org/wiki/Newton-Raphson_Algorithm

    Mr. Quinn is essentially saying that when you put this algorithm on a computer
    it ceases to be mathematical. So I think the onus is on Mr. Quinn to explain why
    he thinks that algorithms are not mathematics.

    Not on US programmers to explain why we think that programs are not patentable.
    For hundreds of years algorithms have been acknowledged as an are of
    mathematics. Yet he says he knows better. The onus is on him to explain why.

    As an aside personally I think part of the problem here is that a main goal of
    human-computer interfacing in software design has been to hide the mathematical
    nature from the end user. Most users aren't very logical, or rational. They
    expect computers to behave in non-mathematical ways. Perhaps our success in
    masking this underlying nature has been our undoing. So as an example, I will
    reply to this post with the number sequence that this message is represented as
    in a modern common computer. Maybe he can explain how it is that squence message
    is transformed into the text you are reading without the use of any algorithms.


    [ Reply to This | # ]

    If software is patentable then so is
    Authored by: MadTom1999 on Saturday, November 15 2008 @ 03:39 AM EST
    any other similar process - like the legal system.
    If you can patent software - a process - then you can patent processes like
    'making money by taking people to court'.
    If you are allowed to patent software then you would have to allow the same in
    legal procedures.
    Imagine lawyers having to pay (or even check who owns what etc) for whatever
    they use in their court cases. Now do they pay the judge who sets a piece of law
    or do they pay the laywers involved in the case or do they pay the original
    claimer?
    The legal system would grind to a halt, we would notice after 20 years that the
    legal system has actually ground to a halt and the patenting of legal process
    qould be ridiculed and banned.
    The same should apply with software. NOW! before these idiots kill software.

    [ Reply to This | # ]

    Computers
    Authored by: Crayola on Saturday, November 15 2008 @ 04:00 AM EST
    If you get hold of a really old dictionary, you'll find the definition of
    computers: A person who computes, or calculates.

    From the Wikipedia (History of Computing): "Before the 1920s, computers
    (sometimes computors) were human clerks that performed computations. They were
    usually under the lead of a physicist. Many thousands of computers were employed
    in commerce, government, and research establishments. Most of these computers
    were women, and they were known to have a degree in calculus. Some performed
    astronomical calculations for calendars."

    Which part of what they did is patentable?

    [ Reply to This | # ]

    • Computers - Authored by: tiger99 on Saturday, November 15 2008 @ 07:19 AM EST
    • Computers - Authored by: Anonymous on Saturday, November 15 2008 @ 07:50 PM EST
    Sorry, Mr Quinn, you have to come with a reason FOR it
    Authored by: Anonymous on Saturday, November 15 2008 @ 04:42 AM EST
    Sorry, Mr Quinn, but it's not up to us to come up with a reason against software
    patents, it's up to you to come up with a reason for them (assuming you're
    actually in favour of them).

    Recall, if you will, what patents are supposed to do - what they are, and what
    they aren't. Specifically, they aren't property rights to which one has an
    entitlement in some way (any way); rather, they are a tool by which society
    secures progress, by creating an incentive for inventors: by making sure they
    don't have to worry about being able to profit from their invention (as opposed
    to having a competitor take their idea and their hard work and benefit from it),
    they are encouraged to, well, invent things.

    I see no reason why this would be necessary for software: certainly, innovation
    already abounds. Why should society pay such a price if it doesn't get anything
    for it in return?

    In fact, it very much seems to me that patents would be counterproductive when
    it comes to software, since much of the innovation and progress being seen in
    software would be stifled by patents. FOSS (free and open source software), for
    instance, which is a major source of innovation in software these days, would
    find it difficult at best to stay alive, but commercial software vendors would
    also suffer. One might argue that this is an unfortunate price that has to be
    paid in order for the advantage of software patents to be reaped, but there is
    no advantage: copyright, trade secrets (e.g. the source code of closed-source
    software) etc. already provide more than adequate protection for those who
    innovate.

    And also consider that programmers are already told by their companies' legal
    departments to not even do so much as look at any patents or search for patents
    on an idea of theirs they might want to implement, due to the fact that doing so
    would, in a patent suit, result in higher (treble, I believe) damages for
    willful infringement. While not being limited to software, this is a general
    problem that prevents precisely what patents were supposed to accomplish: it
    fails to protect inventors, as competitors will act as if the patents in
    question simply do not exist, and it also creates incalculable business risks
    for companies, as they cannot be sure that their competitors might not have
    patents on something they are, in good faith, implementing.

    I do not want to go into patents in general here, although I will say that I
    think they are a good idea gone wrong; but I think it's obvious that software
    patents would not only not be beneficial but, in fact, have a significant
    detrimental effect on the software industry (both commercial software vendors
    and FOSS) and innovation, and therefore society as a whole.

    [ Reply to This | # ]

    off topic
    Authored by: IMANAL_TOO on Saturday, November 15 2008 @ 04:47 AM EST
    Nothing that really fits

    ---
    ______
    IMANAL


    .

    [ Reply to This | # ]

    Because there is harm
    Authored by: shachar on Saturday, November 15 2008 @ 04:49 AM EST

    IANAL

    First, allow me to go over the basic premise behind patent law. The idea is to enrich the public domain by giving inventors an incentive to publish their work ("the stick"), by promising them limited time exclusivity over their invention for a limited time, even someone else would have come up with the same invention in a shorter time frame ("the carrot"). Since this is the trade off, when discussing harm that a certain patent ability area causes, we need to compare it to what would have happened to the public domain had patent law not exist in that same area. We are not interested in the harm it does or does not do to the actual inventor, as we'll take it as read that the inventor is always harmed if something become unpatentable (which we know in practice is not the case today).

    One immediate conclusion from the above is that patents on ANY public standard is 100% harm. A standard is, by definition, public, and therefor allowing someone to hold a patent over a standard shrinks the public domain rather than enrich it. We also see, through RAND policies, that most standard organizations sort of kinda understand this already.

    Here are the types of patents that one can hope to issue on software, as far as I can see them. We are assuming here that the patent office miraculously begins to diligently do its job:

    1. Patent an algorithm: I managed to create an algorithm that does what others before me did not manage to do. It compresses better and faster than existing tools, manages to encrypt like never before, and so on.
    2. Program task: I managed to think of a revolutionary new end that software was not, before, thought to have achieve. The first spread sheet, the first desktop publishing software etc.
    3. Implementation: I tailor specific algorithms in a specific way to turn the "what" into the "how".

    I just thought of this list, so feel free to complement it, if you like. Let's analyze the list so far:

    1. Algorithm

    As an inventor, my dilemma here is the classic one. Should I try to keep it a secret, keeping my competitive edge but keeping it away from the public? We see, here, that if the algorithm is truly innovative, then there actually is use in making it patent able. Now here's the catch - all truly innovative algorithms I can think of pass the "machine or transformation" test without blinking. This means that this case is covered even if we disallow "software patent", as can be evident by the fact that both RSA and LZW were granted patent protection before software patents were allowed. If you have counter examples, bring them up and we can discuss them.

    2. Program task

    The harm in allowing program task is two fold. The first is that keeping the program task secret is never an option for the inventor, which means we are granting them protection over something which they would have made public with it anyways. In other words, patents here shrink the public domain rather than expand it, counter to the patent law explicit promise. The second problem is that, economically, this means that any program that breaks new ground becomes an immediate monopoly in that new area for 17 years. This is direct economical harm. One might argue that without patent protection the innovation would not be published at all, but history shows that enough new areas (the two I mentioned above are examples) got published without patent protection to not make this a serious problem.

    3. Implementation

    The main problem with making implementation patentable is that it is near impossible to prove (non)obviousness over implementation. Many designs that seem non-obvious at first glance become obvious the moment you sit down with the requirements and start coding. Worse, since the implementation is often hidden deep inside the program's code, it is near impossible to have any meaningful prior art to speak of, certainly not searchable prior art. We present with the patent examiner, who we know is not living up to the task already, with an impossible task, which means we are begging her to make a mistake. The hurt from making a mistake is, as I'm sure you realize, tremendous.

    Another problem with patenting implementations is that they are not very useful for future generations. The amount of developers that read the patent charts to seek for exciting new ways to solve the same old problems is, pretty much, zero (as opposed to the number of lawyers). This means that even had software implementation patents been a net positive, they would still not have served their purpose.

    So my understanding of the software patents arena is that the only type of patents that have any potential for being useful is allowed even if we cancel the software patents provision, which to me means it should be canceled.

    Shachar
    IANAL

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: PeteS on Saturday, November 15 2008 @ 05:00 AM EST
    Other comments here allude to this, but I have a different angle:

    Full disclosure: I am an engineer who has designed ICs (both programmable and those that are made with a mask), PCBs, systems, written drivers, written apps and even distributed processes, so I definitely know how a processor does things.

    Within any processor, there is a unit known as the ALU, the Arithmetic [and] Logic Unit. This is where all data transformations take place. The details of what is available in the ALU varies by platform, but all the operations are mathematical in nature.

    Software written to make those data transformations is the algorithm to transform some input[s] to some other [hopefully] useful outputs.

    So logically, if all data transforms within a processor are mathematical (they are), then all programs, however written, must be capable of mathematical analysis (indeed, this is a requirement of functional languages), but if all programs may be analyzed mathematically, then they are an embodiment of mathematics.

    For Mr. Quinn's information, the ALU will support, at a minimum, add, subtract, shift operations with some 'flags' to indicate interesting features of an operation, such as overflow and result == 0, but needs nothing further to perform any transformation, although extra features may be necessary to do them in a reasonable amount of time ;)

    So I contend that all software running on a general purpose CPU must, by definition, be an embodiment of mathematics.

    My take is that to be patentable, one must invent a tangible thing, which software is not; the printout is tangible, but then it is merely words on paper, certainly copyrightable perhaps, but not patentable.

    PeteS

    ---
    Only the truly mediocre are always at their best

    [ Reply to This | # ]

    Algebra, calculation and mathematics.
    Authored by: Ian Al on Saturday, November 15 2008 @ 05:15 AM EST
    There is no doubt that the lowest layer of computing devices is the processor
    instruction set. If my memory serves me correctly, the key instructions are to
    add, subtract, multiply (shift left) and divide (shift right), together with
    boolean manipulations. I express those last two using human endianism.

    The majority of what is left is populating memory with data, taking specific
    values and placing them in registers, following program instructions to work on
    register contents and copying register contents back out to memory.

    The processor works with maths and boolean algebra. However, the applications
    programmer has not worked directly with that layer for many years. So, what is
    it that programmers do when they use programming languages and libraries? They
    are still doing the same thing. Variables are surrogate registers, there are
    tables of data loaded into memory, there are mathematical and algebraic
    instructions in the language and lots of real and virtual input and output of
    tables of data.

    What about the builder of the better mousetrap? (S)he uses derivations of lever
    theory (such as gears), pawls and catches in an inventive way. So the mechanism
    is still founded on mechanics in the same way that the program is based on
    mathematics and algebra. The better mousetrap can dispense with most of the
    lever theory basis by using electrical motors, sensors and an embedded computer
    to do the algebra and mathematics. The whole object is the invention. The motors
    and sensors on their own do nothing innovative and patentable. The computer on
    its own is not an invention. It is only the technical result of mouse catching
    by the whole invention that should be patentable under the Constitution.

    If someone rewrites the computer part and marries it up to the sensors and
    electrical motors is that violating the objective of the Constitution? Yes it
    is. The invention is the whole device and it is that which passes the tests of
    patentable innovation. If they don't marry it up with the sensors and electrical
    motors then they don't get the technical effect of the better mousetrap and that
    is what the Constitution wants to give limited protection to.

    If someone comes up with a program with inventive chunks in it, should they be
    able to protect their invention under the Constitution? The invention is an
    abstraction with no technical effect. Supposing one of the output parts of the
    invention puts something wonderful on the computer screen? Should it be possible
    to sue someone for patent violation when they print out their own results of
    your complex algebra on the internet? No? How about if they were so inspired by
    the results of your algebra that they used their own completely independently
    produced algebra to obtain similar results and put those on the internet? The
    results are an expression which may, or may not, be protectable by copyright.
    They should not be protectable by patent because the algebraic invention is not
    whole. The technical output on a display device or the Internet is a part of the
    whole invention and the whole does not make a protectable invention. Otherwise,
    the matter of displaying any algebraic results in any way may violate the
    patent.

    How about my invention for a better vulcanised tire? Essentially, I use a
    computer to control the precise amounts of sulphurous compounds, temperature and
    timing and the computer is the only way to make sure that the vulcanising
    machine produces the correct patentable substance. Someone else could write
    another program that gets it just as right and wire it into machinery like mine.
    The Constitution offers me the chance of protecting my invention to get a reward
    for it before the rest of the industry gets to use it. What about the computer
    part? Supposing it has a really inventive way of managing industrial processes
    in general? It's the management of industrial processes that is the technical
    effect and the program of itself is just inventive algebra and not protectable
    by patent. If the patent makes the invention whole with the bubbling vats and
    the computer it should be protectable. The components should not.

    Just because something does something does not mean it should be protectable.
    Otherwise, the old mousetrap would forever be prior art. So, just because a
    thing with an embedded computer does something doesn't qualify it as
    protectable. It is the manner in which the whole invention creates a real world
    technical effect which should be protectable. Major inventions usually comprise
    mundane components. As with a gearbox, they may depend on sciences and
    engineering such as mechanics. My better mousetrap might employ an IBM
    compatible personal computer and have an inventive program running in Windows
    98SE (have I given too much away?), but the PC and program should not be
    patentable by me.

    ---
    Regards
    Ian Al

    Linux: Viri can't hear you in free space.

    [ Reply to This | # ]

    Thoughts on Mathematicality
    Authored by: hikingpete on Saturday, November 15 2008 @ 05:31 AM EST
    OMG. I'm not sure whether to laugh or to cry. This guy
    clearly isn't familiar with Lisp (only slightly younger than
    FORTRAN), or Haskell (now that's functional!). Lisp's
    beginnings as a theoretical device highlight (to me) the
    connection between math and software. Haskell on the other
    hand, is anything but "...code to direct action."

    Borrowing a reference from wikipedia,
    en.wikipedia.org/wiki/Lisp_programming_language#cite_note-2
    explains what I'm referring to by the beginnings of Lisp.

    Of course, that's to completely ignore the words of St.
    Church. Er... Alonzo Church. Words which predate any modern
    programming language by around 20 years.

    I imagine this post is a duplicate (sorry about that, I
    didn't read any of the other posts). I felt the need to vent
    a little after reading that. I feel like asking this dear
    heart just how many math courses HE studied in the course of
    getting his degree, and how many languages he has programmed
    in. He asks programmers not to offer legal opinions as a
    prelude to giving a mathematical/computer science opinion.

    Actually, that 'computer science' bit makes me think of
    Dijkstra - could this all have been avoided had we heeded
    his advice in referring to programming as 'Computing
    Science', as opposed to 'Computer Science'. I've always
    considered him to be correct, but felt the matter to be of
    little importance.

    [ Reply to This | # ]

    Software is just a collection of pre-defined functions
    Authored by: Anonymous on Saturday, November 15 2008 @ 06:01 AM EST
    I don't want to even get started on the "Software is Maths" argument
    because I think this is ultimately misleading and irrelevant to the matter at
    hand. It is also problematic because few people are qualified to discuss on
    this matter.

    Intel offers free and open documentation on their processor architectures on
    their website.

    Please visit http://developer.intel.com/products/processor/manuals/index.htm for
    more information.

    Software is simply a collection of these functions. Nothing in a software
    running on one of these processors contains ANYTHING outside of this publicly
    available product documentation (Bugs in the software included).

    As such Software does not invent anything. It is not novel. It is simply a
    defined sequence of pre-defined individual functions. As such software does not
    "Tell the computer what to do" it tells the processor the order in
    which to perform a set of (pre-defined and openly documented) actions for which
    the processor was designed. We cannot invent a new instruction set via
    Software. The instruction set may be complex in itself, but it is limited and
    finite.

    A good old typewriter offers a very basic set of instructions (Each key of the
    typewriter performs a different, clearly defined action). Why then should I not
    be able to patent a book written on an old typewriter? Is it not analogous to
    software? But here we are (due to fewer levels of abstraction involved in the
    process) able to clearly recognise that copyright protection is the correct form
    of protection, not patent. The typewriter may be patentable, but not something
    produced on it.

    Shane.

    [ Reply to This | # ]

    Algorithmics is an ancient branch of mathematics
    Authored by: hawk on Saturday, November 15 2008 @ 06:13 AM EST

    Algorithms have been a branch of mathematics since the beginning. A couple of obvious examples comes to mind:

  • The Euclidian algorithm
  • The Sieve of Eratosthenes

    However, the way we do divisions on paper are algorithms too, and historically civilizations advanced together with such discoveries. A classic example is that the Babylonians discovered a way to solve a quadratic equation. I think this demonstrates that algorithms, and mathematics, have always been a tool. This was certainly the case when the original laws were created too.

    Also, if anyone would contest the mathematical nature of algorithms I would direct them to The Art Of Computer Programming by Dr. Donald Erwin Knuth. I think it is impossible to read these (and understand them), and continue to believe programming is anything but a mathematical discipline.

    Plug: I do agree that far too much "programming" is, unfortunately, divorced from mathematics. That is why our software is so crappy these days.

    I also agree that some algorithms are patent worthy; the psycho-acoustic model behind MPG3 compression is an example of pure mathematics that would be worthy in my mind. It takes much time to make such things and I would be OK with having incentives for things like that. However, I have yet to see a system where the bar for the inventive step has been even remotely reasonable. It is ridiculous that it is possible to patent something as trivial as "the use of x in context y". That is what software engineering does all day long.

    Perhaps something like the following can settle our differences: if software is the same as anything else, how about following the same laws as we do for anything else? If I buy a toaster and it turned out to have a factory defect, then the laws in Denmark says that I am entitled to get my money back within the first two years.

    I would like the same guarantee with my software. If I buy a copy of Office from Microsoft and I find a single flaw from the factory (i.e. it does not do what the manual says it does), then I want my money back.

    Immediately. No questions asked. You can get your media back, but I will not tolerate the burden of having to remove the factory-broken software from the computers I already installed them on.

    Do we have a deal?

    If we accept your software patents, will you then accept laws that will treat software and toasters the same? (I think this would be a win, actually. I could live with the existing patent system if all the software I bought was without flaws)

    Or, as an alternative, will you accept that software is really different from toasters? And, since they are fundamentally different, they do not fit in the patent system the same way as everything else?

    [ Reply to This | # ]

  • "...the folks who write software have no clue what software is."
    Authored by: tiger99 on Saturday, November 15 2008 @ 06:55 AM EST
    Yes, he is right about that. But only if he is speaking of a certain Monopoly......

    You don't really learn what software is from the contents of a dumpster, contrary to the vain imagination of a certain person.

    [ Reply to This | # ]

    The fundamental difference....
    Authored by: tiger99 on Saturday, November 15 2008 @ 07:06 AM EST
    ... between software and patentable things such as machines is nothing directly to do with mathematics but entirely to do with the way in which software is created.

    Anyone is free to write a book. They will inevitably incorporate ideas from things which they have seen before, as well as the work of their own imagination. The entry barrier to the process is low, typically the cost of a cheap computer and some possibly free word processing software.They will revise and edit their work until they are as satisfied as possible that it is correct, before anyone else sees it.

    Anyone is free to write software. They will inevitably incorporate ideas from things which they have seen before, as well as the work of their own imagination. The entry barrier to the process is low, typically the cost of a cheap computer and some possibly free editing and compiling software.They will revise and edit their work until they are as satisfied as possible that it is correct, before anyone else sees it.

    As far as the mathematics goes, there are rigourous rules of spelling, grammar and punctuation in both cases, which could be expressed as mathematics, although in neither case is the objective necessarily mathematical. In both cases the objective may be to make something that is attractive, useful, and interesting.

    Again, the book and the software are both adequately legally protected from blatant copying by copyright law, almost everywhere.

    So does this ill-informed patent troll lawyer want literary works to be patented too?

    [ Reply to This | # ]

    Patents or Copyright, PICK ONE
    Authored by: Anonymous on Saturday, November 15 2008 @ 07:16 AM EST
    I'd ask this lawyer "If you want software patented, why should it have
    Copyright protection also? Are you in favor of dropping copyright protection
    for software?"

    The obvious answer is no, software should have copyright protection, but if so,
    patenting is not necessary. But greedy people won't be satisfied with that
    answer.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney
    Authored by: njt on Saturday, November 15 2008 @ 07:19 AM EST

    Here is my best attempt at an answer. Other comments?

    Dear Gene,

    As far as the semantic arguments are concerned, I find them unconvincing - on both sides. I'm a mathematician and a programmer, and I find the argument that software is "just like" mathematics is absurd (turing completeness and lambda calculus notwithstanding). However, I also find it hard to directly compare software with the sort of physical inventions for which patents were originally intended.

    I think the more sensible approach is to consider software to be in a novel class, neither clearly in the category of pure ideas nor clearly in the category of physical inventions, and to weigh the costs and benefits of software patents on the merits.

    The damage that's been done in practice by allowing broad software patents is considerable. I would include the money spent prosecuting patents with the patent office; litigation costs; and settlements paid to patent trolls. The most important harm, however, is in the hard-to-measure cost of the things which might have been but weren't: the damage caused when a the inventor of a potential software product abandons the effort because someone who has come before has already "monopolized the space" without producing something of tangible value.

    I've been personally involved in this last situation -- a few friends and I were poised with an idea for an invention involving software which has the potential to make a big difference in the treatment of stroke, but we were unable to proceed because another party was granted an overly broad, obvious, and non-novel patent for a product which doesn't exist; in our final analysis, this patent was the determining factor in scaring away our potential investors.

    You and I both find the patent process as it stands to be at least somewhat broken. I think the reasons for the current state of affairs have a lot to do with the initiative and cleverness of patent lawyers such as yourself, and your obligation to place your clients' interests first, contrasted with the bureaucrats who must judge whether or not to grant a given patent -- I'll place my bets with you guys any day of the year.

    I submit that there is a viable alternative to patents for software: trade secret and copyright. While you are of course correct when you observe that programs must be published and are therefore subject to reverse-engineering, in practice this isn't feasible -- it's far easier to observe what a program does and to re-invent the details of how it does it. However, this takes time, and in my industry things like time-to-market and the natural monopoly enjoyed by the first player both matter.

    However, I don't know whether or not the patent process for software inventions can be "fixed" so that it "works well enough", i.e., the benefits outweigh the costs, and so I'd like to conclude with an invitation: would you like to collaborate on the design and possible advocacy of a modified patent process which won't grant the obvious or non-novel software patents which we both find so problematic?

    Best Regards, Nathaniel Thurston: mathematician, computer scientist, programmer, inventor, and business owner.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: jiri on Saturday, November 15 2008 @ 07:30 AM EST
    A philosophical reason, a couple of pragmatic ones, and one theoretical.

    1) Pretty much everyone actually producing software (whether individual or
    corporate) thinks software patents are a bad idea. Foisting a system of
    protection on people who don't actually want it is generally speaking a bad
    idea.

    2) The quality of software patents is not just poor, it is abysmal. Even
    software patents were a good thing in the abstract, there simply aren't enough
    resources to sort through the 100,000s of existing ones to find the 3 or 4 that
    should have been granted. At this point, the only plausible course of action is
    to toss them all out.

    3) Patents are intended to foster innovation. However, innovation was already
    pretty fast before software patents became prevalent - indeed, some would say
    too fast. On the other hand, there is little evidence that the introduction of
    software patents actually increased innovation (or prevented a decrease);
    indeed, it is widely believed to the contrary by people who actually produce
    software (see the Bill Gates quote elsewhere in the comments).

    4) Finally, algorithms are mathematical objects; it is in this sense that all
    software is mathematical. Indeed, "instructions that are followed" is
    a fairly decent informal description of an algorithm. (As an aside, claiming to
    know better than domain experts does you no credit.) To the extent mathematical
    objects can't be patented, this would apply to software.


    Jiri

    ---
    Please e-mail me if you reply, I usually read with "No comments".
    jiri@baum.com.au

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Steve Martin on Saturday, November 15 2008 @ 07:54 AM EST

    Mr. Quinn,

    First off, welcome. I'm sure there are others like myself, who welcome input from actual practicing attorneys.

    I sat down with your article and started to hammer out a rather lengthy post, then realized that everything I was writing all boiled down to a very simple concept:

    Contrary to your statement that software "is not machine dependent", software depends on the platform on which it runs.
    Without the platform, software in and of itself is not an invention. It has no existence, it has no value, it cannot "perform a process", it is not a "tool", it does not "promote the progress of ... useful arts", it is nothing. If one attempts to separate "software" from the machine on which it runs, then it becomes an abstract concept, like any other abstract concept, and abstract concepts are not patentable.

    Now, I am not a lawyer, and will admit so readily. However, I do have thirty-plus years hands-on experience with computers ranging from mainframes programmed with punchcards to modern Windows and Linux systems, as well as embedded systems, and I can state authoritatively that software absolutely is "machine dependent".

    ---
    "When I say something, I put my name next to it." -- Isaac Jaffe, "Sports Night"

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: servies on Saturday, November 15 2008 @ 08:10 AM EST
    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me. Do people who write software actually think they are sitting down and writing mathematical equations and stringing them together? It is absurd to have such a narrow view of software.
    I'm a software engineer and studied computer science. If software isn't a mathematical language then please explain me why my first year studying was roughly 60% mathematics, 10% social/economical studies and 30% programming. Software is mathematics. Mathematics is the foundation of software, software is nothing less than mathematics applied (logic, recurrence, linear algebra, set theory, graph theory etc. etc. It's possible to calculate/prove software, to see if it's correct, try that with the logic of most lawyers ;) How someone could argue that software is not mathematics is completely beyond me.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:12 AM EST
    My greatest concern is that this person, who evidently carries some degree of
    authority in patent circles, should be so misinformed about the nature of
    software. How has this come about? Why is it not a requirement for the practice
    of patent law, that one becomes educated in those areas of human endeavour which
    are intended to become the subject of patents?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: FrnchFrgg on Saturday, November 15 2008 @ 08:18 AM EST
    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me

    Tell that to Curry, Howard, Martin-Löf, Coquant, Krivine, and the like. There have been numerous research showing that there is a one-to-one mapping between programs and mathematical proofs.

    To keep it simple (and a bit over-simplified) standard simply typed lambda-calculus is intuitionnistic theory (maths without "excuded middle"), and imperative languages (with continuations and side-effects) can be linked with classical logic.

    Programs *are* proofs, and their types *are* mathematical statements.
    A computer, which is a machine that executes (reduces, in lambda-calc terms) a program, can be used as a proof checker.

    ---
    _FrnchFrgg_

    [ Reply to This | # ]

    This never was the strongest argument...
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:20 AM EST

    Whether "software is mathematics" is a fascinating philosophical debate, but such a non-falsifiable assertion is a pretty poor basis for a law with such important practical consequences. My impression is that in everyday life people relate to, and speak of (and swear at) pieces of software as if they were artifacts.

    The real problem is that the patent system has serious flaws and potential abuses (overworked and underqualified patent offices; over-broad claims; trolling; hijacking of standards; richest litigant wins) whatever the field, but that the software industry is disproportionately vulnerable.

    Unusual properties of the software industry are:

    • it has a history of serious monopoly problems, which patents can be (ab)used to perpetuate
    • it is already protected by copyright (which, with legislation harking back to player pianos and hand-engraved plates, also has its share of drawbacks) - so patents are a "double whammy".
    • software can be developed at little or no cost (assuming the developers are happy to work for free or on expectation of royalties) and, once developed, the marginal costs of manufacture and distribution are negligible* - so any imposition of royalties or legal liabilities is a major disruption to the business model.
    • Many apparently intelligent people (including patent examiners, lawyers, judges, jury members and politicians) suffer from a major wetware bug which makes their brains regress to a mental age of about 4 years at the mere mention of the word "computer". If you've ever done IT support, you'll have experienced this (its not just lack of knowledge, its like some people are proudly working for their boy scouts "I know nothing about computers!" badge...)

    Ultimately, I don't see any moral justification for the imposition of patents in any field - and as technology gets more complex, the patent system will only become less workable and move further from its original goals. The software industry is just the miner's canary.

    (* If you build a better mousetrap, you'll soon hit the point where you need to make enough to sell, which is when you have to sell your soul to investors in order to rent a factory, buy machines and employ workers. Write a bit of software and all you need is a few hundred bucks a year to set up a web shop - even pre-internet, "hand copying" a few dozen copies could raise enough cash to pay for disc duplication and printing).

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:30 AM EST
    You must understand that a computer is a math engine, hence the name computer.
    All it does is perform math.

    Take any computer, it has a fixed amount of data storage and data display. It
    would be a big number, but it is possible to specify every possible state in
    which the computer can operate. Just like a sudoku or a Rubiks cube there are a
    finite number of states. A computer program just specifies the mathematical
    transition from from one state to another, or more typically from one state,
    through millions, to another.

    You cannot deny the essential nature of a computer is finite state machine. It
    does math. And yes if you write math you can copyright it.

    [ Reply to This | # ]

    My Observation
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:33 AM EST
    This little statement sticks out to me (emphasis added):
    Why a series of instructions that are followed by a machine should not be patentable but a series of instructions that are followed by humans is patentable is beyond me. This is a distinction without a difference. If anything, a process that is followed by humans should not be patentable because you are taking away rights from a person and preventing them from doing something they had the right to do right up until the time a patent was granted.
    While he is using this statement to make the case for software patentability, I believe what he actually has done is make the case against both it, and method patents. Isn't this what the court has just essentially said as well?

    [ Reply to This | # ]

    • My Observation - Authored by: Anonymous on Sunday, November 16 2008 @ 04:17 PM EST
    Patent problems transcend software
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:57 AM EST
    Too many other people have presented as good, or better reasoning on the
    software/mathematics patent problem than I could. The problem with patents
    extend far beyond software. Process and composition of matter come to mind.

    Beyond software? I think one of the reasons why software is seeing this process
    patent problem, is that there are so many people who are capable of designing
    the process. With so many different backgrounds and points of view, it is
    almost impossible to find any process that is revolutionary. Hence, almost none
    are patentable. Certainly far less should be patented than are. Is it worth
    making patents available for the few situations where it idea is revolutionary?

    If one goes over to engineering (chemical, pharmaceutical, mechanical, ...) the
    number of people capable of designing a process is much smaller. However, I
    believe that those engineering processes are also beginning to suffer from the
    fact that there are too many people capable of designing processes, with
    different backgrounds and points of view, to allow many of them to be thought of
    as revolutionary. I suspect most processes patented these are obvious to one
    skilled in the art, it is only a matter of finding these people.

    And following on from things like Turing machines, we can construct machines now
    that will generate just about any composition of matter you could ever think of.
    There is no longer anything original about compositions of matter, be they
    alloys, ceramics or pharmaceuticals. In the future, we should be able to extend
    this to large proteins, such as DNA.

    ALL patent law will need to be rethought out at some point. How patent law in
    software develops only sets the stage for these other kinds of patent. It is my
    belief that in the not too distant future, patents will almost be unheard of.
    Their utility has almost disappeared, and their benefit to society is gone.

    [ Reply to This | # ]

    Explaining with a Simple Computer Program Example
    Authored by: Prototrm on Saturday, November 15 2008 @ 08:59 AM EST
    The difficulty many people have understanding computer programs is that the
    machines have become so complicated that it's difficult to see how very simple
    they really are. So, let me humbly offer you a simple computer program from a
    1980's era home computer by way of example. I could make this really twisted and
    mathamatically complex, but simple is best.

    The purpose of the program: Print the word "Hi" on the screen, without
    the quotation marks. I could use a longer word, but that would make the code
    needlessly tedious for this example.

    Target computer: A classic Commodore 64, an 8-bit computer that was very
    advanced for its time (early 1980's).

    Language: We're going to go right to the machine and program it directly,
    cutting out any middle-man, like Basic or Pascal.

    LDA #$48

    The first line of our program tells the "brain" to load one of its
    internal "scratch pad" locations (here, we're using something called
    "the accumulator") with a hexadecimal number representing a capital
    letter "H". Now, our computer doesn't know alphabets from apples.
    Everything is a number, and generally, it's common to use a base-16 number
    system, rather than the base-10 system we use everyday.

    STA $0401

    Okay, I'm working from memory here, so all you experts will have to forgive me
    if I've chosen the wrong address here. Anyway, in the second line of the
    program, I take the value in my accumulator and store it in a computer address
    (in hexadecimal again) representing the first column on the first row of the
    screen. This displays an "H" in the upper left corner of the display
    in the default color (light blue on dark blue). If I want to change the color
    scheme, I would follow the same procedure as the above to store specific values
    (depending on hardware specifications) into other locations in memory.

    LDA #$69

    The third line loads the accumulator with a lower-case letter "i".

    STA $0802

    And we store that letter on the next column in the same row of the display.

    That's pretty much it. If we want to display something on the next line, we add
    decimal 40 (28 in hexadecimal) to the address of the first column in the first
    row (this particular computer screen can only fit 40 characters on a single
    line), or $0429.

    Now if we want to use a fancy font, we can. It just takes loading and storing a
    lot more numbers (and a bigger area to store those numbers, but that's not
    important to our discussion). Then, if we want to superimpose that fancy font on
    top of an equally fancy background (which we stored on the display using a *lot*
    more numbers), we use mathematical functions known as "AND",
    "OR" and "Exclusive OR" to do so.

    My point is that computers don't understand "C", "C++",
    "PASCAL", or even, truth be told, the above example. It all gets
    translated into raw binary *numbers* by another computer program (either a
    "compiler", or in our case, an "assembler", and it is those
    numbers that are processed
    by the CPU to produce a result.

    As a professional carpenter seldom uses low-level tools to construct a house or
    office building, so too a professional programmer will avoid low-level assembly
    language like the above example, and instead uses high-level tools (on the
    Commodore 64, he/she would use the Basic command: PRINT "Hi") to
    construct a computer program. It doesn't change the nature of the thing that is
    "running" on the computer, nor does it change the fact that the actual
    processing being performed is simple and repetitive math.

    And math cannot be patented.

    ---
    "Find out just what any people will quietly submit to and you have found out the
    exact measure of injustice and wrong which will be imposed upon them."

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 09:21 AM EST
    Is this guy for real ? I mean he is in the sense that he's creating more future
    work for himself as patent attorney ...

    However he's insane in his arguments. He has wast knowledge gaps in the fiels of
    programing and computer science (and math past 1+1=2 level).

    Hey, think this way:

    A mouse trap is patentable. This promotes people to invent better mouse traps.
    One reason is cost (self made is cheaper than bought) and second reason is
    efficiency (original design may have flaws).

    The IDEA to catch a mouse is NOT patentable. It should be obvious why even to a
    lawyer.

    I have to thank all the people that tried to post constructive comments, not
    like my small rant here. I hope your effort will not bein vain. It seems to me,
    that the guy is doing this intentionaly. I refuse to believe a human being can
    be that stupid.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 09:31 AM EST
    <i>"Software is not a mathematical equation, nor is it a mathematical
    language. How anyone who writes software or professes to understand software
    could argue to the contrary is beyond me."</i>

    Not being an attorney, I often think that the law is an ass, and that I
    understand what the law should be better than those in the profession. But I
    also understand that law has a purpose beyond its application to immediate
    issues, and that it attempts to exist in a cohesive framework based on precedent
    so that individuals can have some reasonable basis for controlling their
    behaviors.

    As a part of this framework, the law creates abstractions of other fields that
    may be a useful means of manipulation of the field in terms of law, or may just
    be sophistries of immediate convenience. In either case, the abstract is not the
    fact, and that concept should be, but is often not understood.

    Mathematics is an extremely broad field, and includes many conceptual
    abstractions and processes that go beyond what a non-mathematician may
    understand as mathematics. Optimizations are but one of many classes of
    mathematical processes that are purely algorithmic rather than the stuff of
    equations. Think of the optimization of the well known "Traveling
    Salesman" problem which has no general solution, merely algorithms which
    can demonstrate a nearly optimal solution to any probability desired.

    Is a Mandelbrot a mathematical object? A Hilbert space (a Euclidean space of an
    infinite number of dimensions)? An LIE manifold? Mr Quinn has a limited concept
    of mathematics, and while he is entitled to an opinion, it is worth no more than
    my opinion on abstruse matters of maritime (or any other subject of) law.
    Actually, probably less in that law is a purely artificial philosophical
    construct whose "proofs" are all self referential, as opposed to
    mathematics whose proofs are capable of prediction and are falsifiable. I am not
    a mathematician either, but the above examples clearly demonstrate that Mr Quinn
    is incorrect in his premises.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 09:32 AM EST
    If you look at the nature of the software patents being granted, you'll see that
    most of them are trying to get around the "patenting pure mathematics"
    thing by never being specific about the actual processing of the data by the
    computer in the first place.

    These patents are usually of the form "A method for providing an end result
    from an input". They usually aren't specific enough to tell you what actual
    method is being employed within the computer to accomplish the end result, so
    they feel that they can sue anyone for patent infringement who creates a
    computer program that produces the same results.

    If they were specific enough to state the exact method that the computer
    accomplishes the results, then someone else could easily accomplish the same
    results with a computer progeram that did it in an entirely different way and
    would not violate the patent. Another result of specificity would be that they
    would have to describe a pure mathematical algorithm as at least part of the
    process, which would be a hinderance to patentability.

    [ Reply to This | # ]

    Mr Quinn needs to learn about trade secrets
    Authored by: ailuromancy on Saturday, November 15 2008 @ 09:50 AM EST
    If you want to cling to software b[e]ing a mathematical language then you need to come to terms with the fact then that your position means that software cannot be copyrighted and certainly not capable of being protected by trade secret.

    Mathematics can be a trade secret. Sir Isaac Newton used a secret branch of mathematics called fluxions to solve problems that other physicists could not. He had a big argument with Leibniz, claiming Leibniz's calculus was copied from notes Newton had shared with members of the Royal Society.

    Most of my past employers considered the source code to their software to be a trade secret. A programmer who cannot respect that is going to get a terrible reputation as soon as he is caught.

    (PS Mr Quinn: Your employers will get peeved if you tell them there was a cunning legal argument that allowed you to sell trade secrets about the new invention they planned to patent ;-)

    [ Reply to This | # ]

    Where is the harm? Here it is. (some of it)
    Authored by: PolR on Saturday, November 15 2008 @ 10:03 AM EST
    Gene Quinn writes:
    From a conceptual standpoint why not allow for software to be patented. What is the harm? ... The trouble is that patents are being granted on “inventions” that are not new or which are obvious. The problem is not that software presents an inherent evil.
    And he also writes:
    The one thing that keeps coming up in the software world is that true believers of software advocate for free and open source and no proprietary rights. What a wonderful world it would be if that were reality, but in the real world investment follows market opportunity, and there cannot be market opportunity without proprietary rights. Again, I am sure I have struck a sour note in the mind of those open source advocates who are still reading, but whether you like it or not the open source model is contrary to human nature and will run its course in the not too distant future.

    Can anyone explain to me how it is possible to bring mass production products to market in an open source environment? If there are no proprietary rights then what would stop someone else from copying and redistributing? It has been suggested by anti-patent advocates that copyrights are fine to protect software. This is absolutely ridiculous. Copyrights protect only the identical express. I can look at what you did and do it in my own way to accomplish the same exact thing without ever violating a copyright. So copyrights provide little if any useful protection for software. The only protection they do provide is against those who are lazy and simply cut and paste.

    These two quotes betrays so many huge misconceptions about how software works. I will assume Quinn really wants to know the answers to the questions he asks and tell him.

    Where is the harm he asks. Here is some of it.

    1. It is not needed.
    2. It is a hindrance to software development.
    Patents are not needed because even if copyright work exactly as Quinn says, it is sufficient. The main threat to proprietary software companies is the unlimited copying of the bits without paying the royalty. Copyright is enough to make this illegal. The most successful software companies have prospered with exactly this protection and still rely on it. When purchasing software, the license agreement is a copyright license, not a patent license.

    Software is a fast moving field. To force the competition to rewrite the code from scratch is a market advantage that is sufficient to promote investment. Patents are not needed to promote innovation. They establish monopolies with no incremental benefits to society over copyrights. According to economic theory, this is harm.

    Why are they a hindrance? Software is about abstraction. Programmers have to think of hundreds if not thousands of abstractions when writing a program. Every specification, every data structure, every function call interface, every object definition is an abstraction. This list is far from complete.

    Then there are these hundred of patents written in legalese no programmer could ever understand. They cover functionality in the abstract. The lawyer argue that legally it is the machine that is covered, not the software. From the point of view of the programmer, he cannot use the abstraction without infringing so there is no difference.

    Every time the programmer will need an abstraction, he risks infringing on some of these patents with no practical mean to verify if he actually does so. The programmer runs into this risk several time per day every day he writes code. There is no way he can perform his art without incurring this risk. This is harm. Submitting human beings to this sort of thing is evil. This makes software patents inherently evil.

    It doesn't help much to trim down the obvious and non novel patents. Oh there will be fewer land mines we could trigger, so this would be reduce the pain level. But valid patents would remain. The risk is reduced, it does not disappear. The evil I have just described would still be there.

    Quinn also has a huge misunderstanding of FOSS. It is barter economics. Sometimes people cannot write some complex software by themselves because it is too big a task. But when they band together, each of them can contribute a tiny part in a big cauldron. Then these parts are assembled and a working software goes out of the cauldron.

    Did you notice where the profit is? Everyone writes only a little part of the software and walks out with a complete working software. This is a very profitable activity. There is a difference in usage value between the parts and the working software. But it works ONLY WHEN NO MONEY CHANGES HANDS. It has to be barter. This is because FOSS needs to do unlimited reproduction of the software to give everyone a copy. Having to trade money for the bits curtails this barter.

    Corporations can build business model out of this barter. They just need to sell a product other than the software that is enhanced by the software. They get software worth lots of R&D dollars on the cheap and use it to add value to some other product they will trade for good money. Billion dollars industries have been built this way. Look at Red Hat, Novell, IBM, Sun Microsystem for a few of the more successful names. Their FOSS related business is profitable. They invest R&D in FOSS. Why should they stop?

    The argument that FOSS is contrary to human nature is laughable. FOSS participants profit from it in many ways. Besides it is ethically and morally better. The FOSS community members are not going to stop unless the law forces them. Why should the law do this?

    Patents do great harm because they are a legal attempt to curtail a legitimate barter. They are an attempt to force a monetary transaction for patent right clearance into the FOSS development cycle. Patent law in effect discriminates against software development models and the associated business model. A law meant to promote innovation should do no such discrimination. This is the opposite of promotion. It is a hindrance to innovation.

    [ Reply to This | # ]

    • Amen - Authored by: Anonymous on Monday, November 17 2008 @ 03:17 PM EST
    Back to basics
    Authored by: barbacana on Saturday, November 15 2008 @ 10:06 AM EST

    It seems to me that detailed analysis of the kind attempted here obfuscates the main point.

    The Contitutional justification for patents requires that they "promote the Progress of ... useful Arts". Patents in some domains may accomplish this; for example, it has been persuasively argued that drug patents encourage drug companies to develop new drugs.

    However, I have never seen any remotely plausible argument that software patents "promote Progress". Indeed, it is perfectly obvious that they do the opposite. The prospect of every software developer having to spend a substantial amount of time reading patents, and then having to clear all code written with a patent attorney, may well make patent attorneys salivate, but it is a nightmare to every business which develops software.

    If software patents do not "promote the Progress of ... useful Arts" then the United States has no Constitutional basis for permitting them.

    [ Reply to This | # ]

    • Back to basics - Authored by: Anonymous on Saturday, November 15 2008 @ 07:32 PM EST
    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: PeteS on Saturday, November 15 2008 @ 10:14 AM EST
    Putting aside all questions of whether software is mathematics, I have objections to software patents for other reasons.

    1. Software is not a thing; It produces nothing on it's own - for that it needs a host to process the stated algorithm. i.e. It can not be classified as tangible. The tangible part is the processing environment.

    2. Software patents are far too broad; they patent an algorithm, not a specific implementation of an algorithm. When James watt invented his steam engine, he was granted patents on the specific type of engine he had invented, not all engines that ran on steam.

    3. Pure manipulation of data is, by definition, abstract, and ultimately all software is involved with the manipulation of data. If the manipulations can be described, then it could be done in the same way (although much slower) by a person by following the steps [indeed a computer is one of the dumbest things in the world - it will do exactly what it is told, not necessarily what you wanted it to do].

    Those 3 items would point me to saying that software is not patentable per se, although I could see it as part of an indivisible system of hardware that does something new and non-obvious and requires some software because of it's implementation; that does not mean I would accept the fact it runs on commodity hardware to make it patentable - the hardware would have to be new as well.

    PeteS

    ---
    Only the truly mediocre are always at their best

    [ Reply to This | # ]

    Software is mathematics, a note on APL and VHDL
    Authored by: Anonymous on Saturday, November 15 2008 @ 10:56 AM EST
    In the early 1960's IBM hired Ken Iverson, whose PhD thesis was a new language
    for mathematical formalism. When he arrived, almost the first question he was
    asked was "Is there a compiler for your language?" The answer was no,
    but IBM soon had an interpreter for APL and this made IBM's design engineers
    very happy. Why? They were using APL to describe certain parts of the IBM360
    architecture, and having tools to check the validity of their equations was a
    huge help.

    You may say that the 360 architecture and implementation should be patentable.
    But APL was being used to define the programmer's view of the 360 ISA, and to
    check that the different 360 models all implemented the ISA identically.

    I have been involved in the development of Ada for almost 30 years now. Soon
    after the original ANSI standard was approved, a group was created to come up
    with a design language for semiconductor logic that would replace APL and other
    languages. They used Ada as a base and the result is VHDL. The maintenance of
    these languages has been separate, so modern VHDL is closer to the 1983 Ada
    standard than to the 2005 version. But converting a VHDL description of a
    semiconductor logic chip into Ada or vice-versa is no big deal.

    Does that mean that patenting a new computer logic chip design also patents the
    VHDL description of it? I hope not! The VHDL does not describe the
    implementation of the chip just the interface and timings. Designers of
    computers and other devices that use logic chips use VHDL to prototype their
    designs. Manufacturers of logic chips make VHDL descriptions of their chips
    available for anyone to use in such prototypes.

    Once the prototype is validated, the board manufacturer will make and populate a
    hardware version, again using the VHDL to insure that the right resistors go in
    the right place. ;-) So the chip designer sells his implementation of a
    particular logic chip, but gives away the VHDL specification. The semi vendors
    compete to make lower power chips or chips with relaxed timings that will fill
    the same holes, so the innovation is either designing completely new chips, or a
    "better" implemenation of a given VHDL specification.

    One another example. A few decades ago, ouch! I was teaching a segment of a
    programming languages course on APL. Ken Iverson in his book on APL had shown
    an 18 character program in APL that asked for a number (call it n) as input, and
    printed out all prime numbers less than or equal to that number. (I'd put the
    code here, but it would look like greek to anyone who doesn't know APL.) For
    those who do know APL the program created an nxn array of remainders from
    dividing every number less than or equal to n by all the other numbers (a dot
    product) then compared them to zero and summed the results. If there were
    exactly two zeros in a row, that number was prime.

    Obviously it takes a lot more than 18 characters to describe that. But I
    presented a 17 character version! This even executed faster because it used
    multiplication instead of division. A number is prime if it is not the product
    of two smaller numbers. ;-) I challenged the class to find a shorter version.

    Months after the class had ended, one of the other teaching assistants asked if
    I had any winners. I said no. I had toyed with using the fact that (n-1)! is
    congruent to 0 mod n iff n is a composite number. But the negation in there
    meant I was still at 17or 18 characters.

    Oh, he said, why not use Wilson's Theorem? Wilson's Theorem states that (n-1)!
    mod n is congruent to -1 if and only if n is a prime. A few minutes of work and
    we had a 16 character solution. It only worked on a computer implementation of
    APL up to the point where it switched to floating point for large numbers, but
    that was irrelevant to the number theory.

    If I patented that code, would I have a patent on Wilson's theorem? I can't see
    any way to get around it, since the code is a concise very statement of Wilson's
    theorem. If someone comes up with a shorter program, will it require a stronger
    theorem about prime numbers than Wilson's theorem? Almost certainly.

    [ Reply to This | # ]

    You do not explain how to process information with mathematical equations.
    Authored by: Anonymous on Saturday, November 15 2008 @ 11:22 AM EST
    He is absolutely, totally, completely, dead wrong.

    Most people think of mathematics as a way to model processes. With digital signal processing though, the mathematics is the process. The computer in your cell phone directly implements formulas.

    The cell phone receives a radio frequency signal and converts it to a low enough frequency that it can be digitized. All the processing is digital. Once the signal is processed, it is converted back to analog. The cell phone does as little as possible in the analog domain.

    The best illustration I can think of is a Matlab implementation of your WiFi card. pic ture The important thing is that each of the blocks shown in the picture is implemented as some kind of formula. Should you so desire, you can get the Matlab code and examine it. The RF link is simulated. The rest of the code is a direct implementation of the 802.11 standard. You could take the code, apply it to a real signal and it would work. The WiFi card works the same way. The modulation, demodulation, coding, error detection and correction, decoding, signal analysis and filtering are all done by directly implementing formulas.

    Here are a couple of illustrative links: FFT , convolutional codes

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: DaveAtFraud on Saturday, November 15 2008 @ 11:23 AM EST
    First, I'll state my credentials. I have both a B.Sc. and a M.Sc. in Mathematics (Ohio State: '78 and '80). I will also point out that one of my specializations for my masters was in the mathematical field of finite math (also known as combinatorics). My other field of specialization was abstract algebra. Without going into detail, a significant amount of my graduate level work involved finding optimal solutions to various problems. I used computers as tools to take the drudgery out of this work but the work was strictly mathematical.

    Since graduating, I have been involved in software development in a variety of developer, manager and technical lead roles. Some of my assignments included developing new algorithms and designing unique solutions to problems. I would argue that my education and experience put me in a unique position to comment on how "mathematical" software is.

    Now to Mr. Quinn's thesis:

    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me. Do people who write software actually think they are sitting down and writing mathematical equations and stringing them together?
    This comment demonstrates a complete lack of understanding of what is involved in designing and then building significant software. Yes, it's possible to develop some trivial software that is strictly linear in nature or that involves some simple control constructs that has very little to do with mathematics. Of course, a program this simple is also not what anyone would try to patent. A significant amount of mathematical analysis is involved in any serious software from doing simple things like sorting and searching (which sort or search algorithm is most efficient for the data?) to bin packing problems (where to load a program into memory) to Google PageRank determination (in the simple graph representing the web, which sites connect?) to the various encryption algorithms (hopefully, he won't claim that cryptography doesn't involve mathematics), etc.

    The majority of existing software patents don't pass the "duh! test" let alone a decent examination for non-obviousness. I would challenge Mr. Quinn to find a non-obvious software patent that does not include some significant mathematics as it's theoretical foundation. What ends up being patented is simply the software implementation of this pure mathematical foundation. And, as Mr, Quinn agrees, pure mathematics is not patentable.

    Cheers,
    Dave Miller

    ---
    Quietly implementing RFC 1925 wherever I go.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Tufty on Saturday, November 15 2008 @ 11:33 AM EST
    >
    The beauty of software is that it is not machine dependent, so making it machine
    dependent in order to be protected is offensive, particularly when this
    irrational approach is forced upon us because of some desire to maintain a 19th
    century patent system for a 21st century economy.
    <

    Software performs the same function as a technical drawing for a machine.
    Patenting software is the same as patenting a drawing.

    >
    What is the harm?
    <

    There have been too many uses of this justification in history. Because there is
    no harm something should be done? If there is no harm then please look at the
    case involving the Blackberry.

    >
    Isn’t the problem that patent offices, particularly the United States Patent
    Office, are increasingly doing a poor job of finding relevant prior art and
    weeding out what is new and non-obvious from what is old and obvious?
    <

    Well, they don't seem to be doing too good a job so why hand more over to them.

    >
    Do people who write software actually think they are sitting down and writing
    mathematical equations and stringing them together?
    <

    Yes. Never heard of boolean algebra?

    >
    You don't tell the computer that 1 + 1 = 2, you explain to the computer how to
    process information so that 1 + 1 will consistently and [predicably] equal 2.
    <

    The computer is BUILT to perform 1 + 1 = 2 you are simply asking it to that for
    you.

    >
    Software dictates a process, first in source code and then in object code that
    can be read by a machine. Every programmer writes code to direct the process and
    path that must be followed. You just write it for a machine to be able to
    understand.
    <

    Exactly it is merely a symbolic representation of your desire, it is an act of
    translation. If you are carrying out a CNC milling operation it is the part
    being produced that is patented, there is no purpose in the code being patented
    as the mere creation of the part, by another party, would be a violation.

    >
    Why a series of instructions that are followed by a machine should not be
    patentable but a series of instructions that are followed by humans is
    patentable is beyond me. This is a distinction without a difference. If
    anything, a process that is followed by humans should not be patentable because
    you are taking away rights from a person and preventing them from doing
    something they had the right to do right up until the time a patent was
    granted.
    <

    That is the point.

    >
    Software is a tool and tools have always been patentable!
    <

    Err, try patenting a hammer as a tool for hitting something. No way. A better
    DESIGN may be patentable. A specialist tool that only performs one specific
    function may qualify but is that not part of the object that it is functioning
    on?

    >
    When I was suffering from severe carpal tunnel and needed surgery typing was
    extraordinarily painful.
    <

    If the mere idea of carpal tunnel surgery was patented you might still have
    pain.

    >
    If the goal of the patent system is to grant limited exclusive rights in
    exchange for knowledge, information and inventions that will assist society,
    then why not allow for patentability of software if it is new and non-obvious?
    <

    No, it is to create a limited monopoly.

    >
    The one thing that keeps coming up in the software world is that true believers
    of software advocate for free and open source and no proprietary rights. What a
    wonderful world it would be if that were reality, but in the real world
    investment follows market opportunity, and there cannot be market opportunity
    without proprietary rights.
    <

    Red Hat doesn't seem to be doing too bad. Remind me again as to the OS on the
    worlds top supercomputers is.

    >
    Again, I am sure I have struck a sour note in the mind of those open source
    advocates who are still reading, but whether you like it or not the open source
    model is contrary to human nature and will run its course in the not too distant
    future.
    <

    Try a life without sharing and see how well you make out. You also seem to
    forget that not all reward for actions are either tangible or paid for in hard
    currency.

    >
    Can anyone explain to me how it is possible to bring mass production products to
    market in an open source environment?
    <

    Please contact Red Hat, IBM, Sony etc for details.

    <
    If there are no proprietary rights then what would stop someone else from
    copying and redistributing? It has been suggested by anti-patent advocates that
    copyrights are fine to protect software. This is absolutely ridiculous.
    Copyrights protect only the identical express. I can look at what you did and do
    it in my own way to accomplish the same exact thing without ever violating a
    copyright. So copyrights provide little if any useful protection for software.
    The only protection they do provide is against those who are lazy and simply cut
    and paste.
    <

    Try that with the latest Harry Potter and see how far you get. Do you not recall
    a recent case, or two, over Harry Potter? What about non-literal copying and
    obfustication, both of which are a no no?

    >
    The real problem is that software patents do indeed cover a machine that
    operates in a certain way; but not just any machine, the machines that we all
    rely on every day – the computer and our cell phones.
    <

    The machines are built to carry out the widest range of tasks that you request
    of them, they are general purpose machines. What difference does relying on
    every day make, that is true of just about anything and is so general that it is
    ridiculous. If that were the sole criteria then EVERYTHING that we interacted
    with would require the payment of a patent tax. Would we have to pay a patent
    royalty every time we blow our noses?

    >
    This is not to say that software is as important as a cure for cancer or an AIDS
    vaccine, but not allowing patents simply because too many people would have to
    pay royalties seems virtually certain to lead to a patent system that rewards
    those who inch forward rather than those who leap.
    <

    Yet many medical patents are simply used to block others creating treatments.

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

    Software is the expression of a function, it is NOT the function. It is a means
    of translation. Patenting software is about as meaningful as patenting the
    patent description of a wishbone strut where you should be patenting the strut
    itself.

    Software is a general purpose method that is taught with specific examples and
    methods. It grows by people learning off each other and combines solutions to
    produce results. It is a means to an end. Intellectual property, as such, is
    entirely worthless. It is only the application that produces wealth.

    The horse trading of ideas is an empty market. It is about time that business
    set about the task of producing and selling things at a price that is
    affordable. They gain business advantage by the direct competition of service,
    quality and cost. IP is not about a better product but rather locking out the
    competitor. The patent was designed to protect the inventor, the current patent
    market place does not do that. The one who profits is the current holder and the
    horse trading simply profits the holder not the inventor. Don't argue that the
    inventor profited from the sale of his patent because if the the idea is to
    protect the inventor then no further sale should be possible and all licenses
    should be paid to the inventor.

    By excluding patents for software the emphasis is on profiting from the
    application of a business not the horse trade. The software is a means to the
    end not the end itself. Software not protected by copyright? Go copy Microsoft
    Office then duck! Perhaps many other inventions would benefit from a copyright
    approach.

    Tufty


    ---
    Linux powered squirrel.

    [ Reply to This | # ]

    Some Observations about data, patentability, and a reductio ad absurbudum
    Authored by: grokpara on Saturday, November 15 2008 @ 11:41 AM EST
    1) The second computer I ever programmed was an IBM 1620 Model 1*. The 1620 was
    not actually a computer according to IBM (they should know) it was a "Data
    Processing System", so called for a very good reason. It had no in-built
    number calculating ability and was powerless to do arithmetic until addition and
    multiplication tables had been read into specific locations in its memory. 1+1
    evaluated to nothing more or less than what the table said. For conventional
    work, the table said 2, but could be easily modified to be whatever one liked.
    In any case, Quinn's statement that "You don't tell the computer that 1 + 1
    = 2" was wholly incorrect in this case.

    2) Von Neumann observed that there isn't any real difference between data and
    program; source code is nothing more than data which is acted upon by another
    program, which, in one way or another produces more data.

    3) Is data patentable?

    4) It was said about the original version of the recently discussed APL that
    every possible sequence of characters was an executable APL program (whether
    this was in fact true, or an exaggeration, I can't say.) True or not, I rather
    suspect that a language _could_ be defined in which the statement is true. If
    software is patentable, does that mean that every sequence of characters will be
    open potentially to be claimed by the first to file? How jolly that would be.
    Imagine the conflicts with copyright!

    *The interested reader will find the Wikipedia entry on the 1620 invaluable,
    especially U.S. Patent 3,199,085 - Computer with Table Lookup Arithmetic Unit
    Feature, which does go into replicable detail on how the table works.

    [ Reply to This | # ]

    The crux of his attack is that computer scientists and programmers as a group are not competent!
    Authored by: Anonymous on Saturday, November 15 2008 @ 11:46 AM EST
    This is a practice legal attack on potential expert
    witnesses.

    This guy is explaining to the world how computer scientists
    and programmers do not understand the legal basis of their
    lives' work.

    To counter all his attacks, clearly show he has no
    credentials in computer science. Poke holes in his examples.
    Better yet, his illogic is susceptible to logic ad
    absurdum counter examples.

    Distill and list his assumptions:
    1) computer scientists do not understand patents.
    2) computer scientists cannot be competent patent witnesses.
    3) no harm could ensue from patenting software.
    4) ...continue this list.

    One key to silencing these attacks:
    1) banish the concept of "software" as a legal edifice.
    2) focus exclusively on "computer program".
    3) take "running computer program" to the very next level
    of "symbolic algorithm" (i.e., formal reasoning).
    4) one cannot patent a "symbolic algorithm".
    5) one cannot patent a written "computer program".
    6) one cannot patent "software".
    7) one can document a patent using "algorithms", with some
    incidentally documented as "computer programs".

    In its import, this legal expert demands the right to
    patent linguistic thought as exemplified by algorithms.
    His argument that some algorithms can be implemented on a
    computer is a red herring argument, "undecidedly" going
    nowhere (Hint: a big club here).

    The direct consequence would be that all thought, human
    and machine and robot and artificial life, is subject to
    patent. Just look at serfs in the middle ages to see
    how far these people would reduce you to chattel.

    Another direct consequence is that all action, again by
    any actor, is subject to patent. Again all action is
    reducible to algorithm, coded in program, which is
    software. Patently absurd in its face!

    His biggest flaw derives from every computer
    architecture running
    different instructions derived from a single program. The
    next biggest disconnect stems from every compiler
    generating different
    instruction sequences for the same computer architecture.
    The final straw is legally defining "computer", and this
    is a socially redefining vulnerability looking to
    our future.

    Blinded by greed, some are eager to destroy society's
    commons.

    [ Reply to This | # ]

    Perhaps I do not understand patents
    Authored by: Anonymous on Saturday, November 15 2008 @ 11:54 AM EST
    The old saying is that if your build a better mousetrap...

    The software patent action is not about building a mousetrap, it is about saying
    that any method for catching a mouse is now owned by me. There are two reasons
    for that,

    The first is that there is so much available software in the wild, that ideas
    are patented without sufficient evaluation of what is obvious to reasonable
    software programmers. That problem is acknowledged.

    The second is that all software can be expressed mathematically. I am not
    saying that software is math (although I believe that it is) but that our
    processing architectures and methods are very limiting to the way that problems
    can be solved by software. The language of software is quite rigid and
    virtually all software language follows the exact same methods of function.
    What that means is that the latitude of expression is very constrained in what
    software can do. Software patents end up being more restrictive than patents in
    other areas.

    Between the poor patent granting process for software, and the restrictive
    nature of how software can work, software patents become a method of stifling
    all possible innovation, rather than promoting it.

    When you add to the mix the culture of software development, characterized by
    the open source model, we see that patents further restrict the free sharing of
    ideas, and code, that has always been a mark of pride among developers. The
    culture shift will also stall the innovation that has marked the software
    industry.

    Software patents add rents to an area that developed very strongly without them
    for a number of decades. Software has been a method for many to earn a
    reasonable income even when job markets have been poor. Small, or independent,
    consultants have been able to serve large sectors of our economy to the profit
    of all. The new rents of software patents tend to disable small consultant
    business because it is impossible (and foolish) to search all software patents
    for possible implications on the software written. This for mostly untested,
    and possibly unenforceable, patents.

    I do not agree that software patents are a good idea. However we both seem to
    agree that the mass of current patents, and pending patents, on software are a
    significant problem. I have seen that it takes 2 - 4 million dollars to defend
    against a patent suit, whether the patent is valid or not. That it can take
    $40,000 to respond to a patent infringement letter. With 200,000 software
    patents granted, that is a cost of ten of billions to trillions of dollars on
    our business community. What should we do to clean up the mess, and provide for
    only reasonable patents going forward?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: phands on Saturday, November 15 2008 @ 12:47 PM EST
    While I, too welcome the open debate, I also have issues with the assertion that
    software is not mathematics. Almost all programming languages are based on
    predicate calculus. That's also the toolset that Russell used in his (failed)
    quest to reprove all the axioms of arithmetic before Godel showed it was a
    fruitless quest.

    The point is that software can be thought of as expressions of predicate
    calculus, and this *is* mathematical equations.

    Nonetheless, the debate is a good one, but I wonder if the question being
    addressed is the right one. Like others, I wonder if it should a different one,
    like why allow software patents at all, based on analysis of the cost to benefit
    for society as a whole.

    [ Reply to This | # ]

    ALL math is code!
    Authored by: Anonymous on Saturday, November 15 2008 @ 01:08 PM EST
    As someone with a degree in mathematics, I take exception to this quote because it is factually inaccurate:
    You explain how to process information by defining instructions that are followed. Does it help to understand basic mathematical principles, of course. But that does not mean that software code is a mathematical language. You don't tell the computer that 1 + 1 = 2, you explain to the computer how to process information so that 1 + 1 will consistently and predictably equal 2.
    This misrepresents the nature of mathematics and shows an unfamiliarity with what mathematical proofs actuall are. All proofs are algorithms. Period. And we have proof.

    The fact that mathematics and code are equivalent is called Curry-Howard correspondence which can be simplified (as one person on Wikipedia so eloquently put it) "proofs can be represented as programs [...] proofs can be run."

    Yes, that means that all math is equivalent to code. You don't have to take my word for it. Go to Metamath and you can run the proofs yourself. So insofar as math is not considered equivalent to software, it is purely a legal fiction. Mathematicians know (and have proven) that there exists a correspondence.

    So in saying that software "isn't" math, you are not far removed from legislating the value of pi. If you allow the patenting of software, you allow the patenting of math and there can be no debate on that, because you end up legislating fiction that has no basis in math.

    [ Reply to This | # ]

    • ALL math is code! - Authored by: Anonymous on Monday, November 17 2008 @ 09:40 AM EST
    Don't think you'll ever convince this guy
    Authored by: sgtrock on Saturday, November 15 2008 @ 01:29 PM EST
    It's more than clear from reading his quotes that he's the worst kind of troll
    -- a True Believer. Worse, he's a True Believer because to be otherwise is to
    threaten his livelihood. No amount of patient analysis or polite discourse
    showing him where he's wrong will ever get through to him. He will never change
    his worldview.

    Nope, the _only_ benefit to responding in the comment thread on his site is to
    show the other readers of his blog where he's off base. Please remember the
    true audience for your comments when you do respond.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney
    Authored by: Anonymous on Saturday, November 15 2008 @ 02:10 PM EST
    "Why would you ever ask computer scientists and programmers what is or is
    not patentable since they have no knowledge of the law?"

    All things being equal, one could use the same logic and arrive at the following
    ....

    Why would you ever ask a lawyer about computer science since they have no
    knowledge of science or computers?"


    [ Reply to This | # ]

    • And don't forget - Authored by: Anonymous on Monday, November 17 2008 @ 03:37 PM EST
    Answering Gene Quinn, Patent Attorney - Do you know what BINARY is? What is DIGITAL (see answer)
    Authored by: Anonymous on Saturday, November 15 2008 @ 02:21 PM EST
    Mr Quinn,

    Yes, software is just MATH. But, that is not all it is! You sir, have been fooled by the "trickery of it all", the illusion. Why can't you see this? Because you don't know how the trick is done. And to those who don't know how the trick is done, then they are easily fooled.

    You sir, and others, so you are not alone, have been easily fooled (or if you are not fooled then you are instead blinded by greed). No offense intended by this statement, as it is only a simple and OBVIOUS fact.

    Your perception will be laughed at by future generations. You should really see the Brian Cantwell Smith "Library of Congress - CSPAN video" that was part of the Digital Future Series. It is here that we see the nuts and bolts, and that software is NOT nuts and bolts at all.

    http://www.c-span.org/co ngress/digitalfuture.asp
    Monday, January 31 Brian Cantwell Smith Please click and watch this selection: Monday, January 31 Brian Cantwell Smith, dean of the Faculty of Information Studies at the University of Toronto Smith, the author of "On the Origin of Objects," combines degrees in computer science and philosophy and is an expert on the interdisciplinary convergence brought about by digitization. His talk is titled, "And Is All This Stuff Really Digital After All?"

    So - according to Brian Cantwell Smith, with what is digital, not being OBVIOUSLY digital, and certainly not what we have been SOLD regarding what digital is..., then, unless you are a quick worded lawyer who takes digital and makes what is not real, suddenly real, then how can you patent something that is not really real, in the first place?

    Please start your understanding (beyond the math) of the issue in this link (takes you to several layers of reality) but, if you don't read every layer, you will miss the point (a point that you have missed already, maybe... and because of YOUR desire to use the PATENTS business as YOUR OWN business, is your own greedy point of view. Due to this personal economic point of view, you might be unable to see the forest thru the trees. Dicken's wrote about lawyers who use the law for only their own economic gain in "Bleak House". With the Software Patent mess, we have a wrong such as existed back in Dicken's day, that hopefully will be corrected with the abolishment of all software and business method patents (all around the world).

    So, start here, and end at all the other comments above and below:

    The chip design dictates what software can run (so by design, software is obvious). - Authored by: Anonymous on Friday, October 31 2008 @ 04:21 PM EDT

    " Simply put ---> Digital is pure trickery of the highest form.

    Those who perform magic can understand this concept quickly. For others, it might take until the next generation (who will never need to talk of the internet like they were full pipes), to understand. Hopefully, in the future, the next generations will not laugh too hard at us, our lawyer, and our judges. The courts could prevent this future laughing now. We shall see what the next level of the court can see the forest thru the trees and what they do with with this ruling next? Will they show their age (and be tricked by the digital myth), or will they show some wisdom?

    We can only ask this: Why is stuff that is digital (represented by software) so obvious? Why are so many tricked into thinking computers and software are some kind of NEW INVENTION (when it is trickery)? Yep - digital stuff... it is pure magic (however at the same time, what computers do... is not new, and is indeed obvious). Why?

    Because! Remember it is all math, and math is not patentable at all! Yep - All that software does it take analog actions, covert them to a math process involving BINARY digital code to run on a certain chip (as chips get faster we get results faster), then outputs again (sooner than if done by analog but the result is the same). In a digital output (that is usable in only an analog representation) the input, now output, is again useful for humans (good only because what we did is done faster). So, what is done by the computer, is not different from the original human action (analog) in the first place, it just is done quicker!

    READ THE REST OF THE LINK ABOVE and the links to that to get a full reading as to the WHY...

  • Smoke signals and Drumming on Logs, was binary! - Authored by: Anonymous on Saturday, November 01 2008 @ 09:26 AM EDT

    If you are looking for prior art for any patent on the Method and Concept of "any digital communications patent at all" then look no further than primitive communication. It was all Binary then. What is different today? Well, what is different is that we use today, chips and electronics - aka the real invention. No new CONCEPT at all. No new Method at all. Encryption, why that is just as old as sending messages either written or by changing the secret code of the digital binary smoke signal, to a new way to scramble the message. Nothing NEW. Nothing magical. Prior art is thousands of years old.

  • The devil is in the details, and by following all the links that lead to other Groklaw Posted Links, and by understanding all that the PROGRAMMERS (who are experts and know MATH as well) are indeed correct... you will understand why most people whose eyes don't glaze over at a cocktail party when the dicsussion of code and software comes up... are the ones that really know the details, and everyone else, well software to them seems like something that it is not.

    Can you patent magic?

    If you can, then you can patent software, because then software will be the same as magic, and no jury or judge in the world when ruling on an infringement case, will be be ruling correctly as they, a judge or jury, when listening to the arguements, will only be presented with an illusion, the one that the pro-software patent lawyers (think "Bleak House") want them to see. They will be tricked into thinking that something happened when in fact when you look at the detail... IT DID NOT and COULD NOT happen in the way it was explained in lawyer speak, because the copyrighted code is the only story, in the end, that means anything at all... Just a story.

    So, society is doomed to one end result with software patents: Unfair rulings and lawyers making money, but NO JUSTICE.

    I challenge you to come up with ONE software where you can point to the case of it's use being either a new Method or a new Concept... where, it is so new that in an analog world (maybe for thousands of years) that this was not done before (only slower), where all that digital did was speed things up (where chips and electronics, were indeed the invention, and the sofware... not a tool, but an illusion of something new... SO, in the end only one word fits: OBVIOUS.

    List for everyone a sample case where you think that a software patent should be granted. And ask the opinion of those that are not fooled, as what in that sample software should be granted a patent! And my guess is that you will be shown where you are simply being foolish.

    [ Reply to This | # ]

    Framing the debate
    Authored by: njt on Saturday, November 15 2008 @ 02:29 PM EST

    I would take it a step further, and argue that the entire debate about whether or not to allow software patents is premature:

    • Mr. Quinn seems to be open to the proposition that software patents, in the patent system as constituted today, are a bad idea. This, I think, should be the immediate focus; I agree with what I perceive to be just about all of the regular contributors here that in today's system it's a Bad Idea to allow software patents.
    • Mr. Quinn implies that he wants to have a patent system which doesn't grant bad patents. Fortunately, this is a falsifiable statement, and the way to test this claim is to ask him to spend some time and energy changing the patent system. I think we all can all agree that a better patent system would be a good thing.
    • Until such time as we have a patent system which doesn't grant bad patents, the prudent course seems to be to put a stay on the granting and enforcement of software patents.

    There's a detail which I'm surprised hasn't been noted by the community. Mr. Quinn writes:

    ...the open source model is contrary to human nature and will run its course in the not too distant future.
    Mr. Quinn: would you care to explain what it is about human nature that implies that causes you to be so sure that Groklaw and the rest of the open source movement will soon end?

    [ Reply to This | # ]

    Remix analogy?
    Authored by: The_Pirate on Saturday, November 15 2008 @ 02:31 PM EST
    I am not a lawyer, and a fairly lousy programmer. But, i'm a pretty good
    electronics nerd.

    Seen from my point of view:

    A microprocessor or CPU in any computer can - depending on type - only perform a
    limited number of different operations, from a few dozen to a few hundred. The
    so-called instruction set. And they all perform mathematical functions,
    hard-wired into the CPU.

    When a programmer writes a program, he only tells the computer to perform these
    instructions in a certain sequence. A different program is simply a
    re-arrangement of the sequence of specific instructions.

    He can never, ever make the machine do something that isn't in the instruction
    set.

    We have a common 'instruction set' - the alphabet. There is certain variations:
    as a Dane, i have 28 'instructions' - i guess the English speaking countries
    lack a few. On the other hand the Japanese have thousands...
    If i write a book, or like now, a email, i'm just changeing the succesion of
    'instructions' to convey a meaning, an idea. To convey another meaning, i simply
    have to re-arrange the 28 instructions.

    A programmer has only a fixed number of instructions. He can - as with the
    alphabet - do a 'remix' and get another result. And like a book, or a email, it
    can be protected by copyright. But patentable? That's ridiculous. Then, we
    should be able to patent books and emails as well.

    So, should we patent words? Then we would all need our own alphabet. Imagine the
    chaos...

    [ Reply to This | # ]

    Groklaw, changing the world one patent attorney at a time...n/t
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:38 PM EST
    .

    [ Reply to This | # ]

    He's describing the wrong system
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:47 PM EST

    Quinn writes:

    The simple truth is that software is not a mathematical language. You write code to direct action. The source code is compiled into object code that can be understood by a computer. This object code explains to the machine what the machine needs to do.

    His argument that code is written to direct action and is compiled into object code is valid, as far as it goes--but it doesn't go nearly far enough. It comletely skips over any consideration of the nature of those instructions, how they were created, and the nature of the compiler that converts them into object code. Look at that bit and one discovers the "simple truth" that software most definitely is a mathematical language.

    That part that his argument skips so blithely over is solidly based on mathematical logic: functions, set theory, Boolean algebra, etc. (That is distinct from the sylogistic logic of argument with which I expect he, as a lawyer, is much more familiar.) That might not seem obvious to a code dabbler writing a few lines of BASIC that add some numbers and print the result, but look at the code in a functional language that does the same thing and one sees a much closer relationship of code to math. For example, his "trivial" 1 + 1 = 2 works more like total = sum(1, 1), or more generally, y = F(x).

    I would challenge Mr. Quinn to create a working computer programming language without using the mathematical constructs that underlie all compilers. (I'm sure he would find it simple to do, since he evidently knows more about computer science than any of us!)

    Here's my take:

    • Build a language and compiler that conform to the mathematical principles that underlie computer science and you will be able to use it to write code that is interpreted exactly the same way every time, without ambiguity. You will have created a computer system.
    • Build a language that completely ignores those principles and you have something entirely different. In the absence of mathematical algorithms for processing statements in the language, no automated compiler is possible. Absent a compiler, the language is effectively an arbitrary description of how the system should work--one that can potentially be interpreted in many ways. Ambiguous, in short. In place of a compiler, you will need judges and advocates who can argue the meaning of that ambiguity ad infinitum without ever being able to reach a conclusion that can relied upon with absolute (read: "mathematical") certainty. You will have created a legal system.
    -Russ

    [ Reply to This | # ]

    Rumpelstiltskin patents
    Authored by: jpvlsmv on Saturday, November 15 2008 @ 03:48 PM EST
    Some people like analogies, some people don't. It's important to know when the
    analogy stops being relevant to the real example at hand. I am not a lawyer,
    nor a software developer, but I have a degree in computer science and am active
    in the computer industry. I think that covers the needed disclaimers.

    In the past, patents have been granted for novel machinery that accomplishes a
    useful transformation or action. For example, the cotton gin, which changed the
    manual process of separating cotton seeds from the useful materials. But the
    patent was restricted to only machines that are built in the same form, and the
    patent application was specific enough that a practitioner "skilled in the
    art" could learn from the invention, make improvements on it, and (once the
    exclusivity period of the patent expired) produce similar machines.

    I have no objection to these sort of patents, even if they are extended to
    computer software.

    The problem I see with most current software and business process patents is
    twofold. First, they do not describe the invention in sufficient detail to
    allow a skilled practitioner to learn or recreate the invention. The second
    problem is more fundamental to computers: the current patents do not reserve a
    particular way of accomplishing something, but rather the accomplishment itself.
    Amazon's 1-click patent was not restricted to only the 1-click process when
    involved with specific machines (or specific arrangement of machines) but rather
    granted a monopoly on the invention of "buying something with only one
    click". This is comparable to a patent on "separating cotton by
    machine", rather than "using this specific type of steam-powered
    machine to separate cotton".

    The Rumpelstiltskin analogy goes as follows: You remember Rumpelstiltskin? He
    was the fairy who could spin straw into gold, using a spinning wheel. This is a
    very useful skill (especially in these economic times) but one that he doesn't
    want everybody to use. So Mr. Rumpelstiltskin applies for a patent for the
    invention of "using a spinning wheel to convert straw into gold".
    Since this is a novel use of a machine to affect a useful transformation of
    matter, the patent office approves the application, and the fairy is safe in the
    knowledge that no one will be using his method for at least 17 years, and he can
    make enough profit in this time to ensure his safe retirement.

    But Merlin (being skilled in the alchemical arts) could read the patent, and
    discover that the same process could be accomplished using a weaving loom
    instead of the spinning wheel, and be confident that he could weave straw into
    gold without infringing on Rumpelstiltskin's patent.

    But imagine what happens if Rumpelstiltskin used, not a spinning wheel, but a
    "general purpose computer" -- let's say a Mac in this case, to convert
    straw into gold. There is not enough information in the patent for Merlin to
    learn about and improve on the process. And even if Merlin uses a different
    "general purpose computer" (a OLPC for example) and accomplishes the
    same transformation of straw into gold, he would probably be advised to pay to
    license Rumpelstiltskin's patent, since the non-infringement is nowhere near as
    clear as in the previous case.

    Of course, these are made up people, and made up inventions and processes.
    Maybe the patent office would not grant Rumpelstiltskin a patent on "using
    a general purpose computer to turn straw into gold" or would force him to
    narrow his claims to "using a Macintosh general purpose computer to turn
    straw into gold". But I haven't seen many cases where this has happened.

    The problem with patents in this (software) case is that they protect, not this
    specific invention, but all inventions that accomplish the same goal.

    --Joe

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 03:56 PM EST
    Some time a go a Groklawdian gave a link to a radio interview
    of a layer on his new book.
    Sorry, I did try to find the link but could not dig it up.
    But back then i took the time to listen to this interview;
    After every question he takes a deep breath and starts to lie.
    In short you will miss nothing on this book, except if you
    are a shrink or a anthropologist studying twisted minds.

    And now there is the comment of Mr. Quinn on Groklaw.
    He also sounds like a lazy patent lawyer how wane make
    money by patenting everything and his dog.

    If he took the time to read the comment of Judge Newman
    he will see how SHE is going through patent cases where in
    every step the law is stretched little bit more in the direction
    of madness.

    We are now at the point that if I invent a dustbin,
    Microsoft will patent a way to throw a Banana in it.
    And if the patent office will accept it, the copy cats will
    come and patent the orange, apple and whatever
    mankind can smash into the dustbin.
    The result will that you will only see someone walking to a dustbin
    if he is escorted by parade happy billing lawyers.

    It is like a class of the kindergarten where the boy's try to see
    how far the can go with the new nanny;
    And at one point the nanny will say "Enough is Enough".
    And that is what the nanny court just did!

    That is why i did and will keep shouting "No No" to every inch (2.54 cm),
    even some of our good groklaw folks, are willing give as an exception
    to make some kind of software patentable.
    It will only set the clock back ten years and the nice
    patent lawyers will start to stretch the law again to the point of madness.

    I think the law of Moore is applicable to software patents as well,
    Every 18 month's it gets insaner by a factor of two.

    /Arthur

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 04:01 PM EST
    The Instruction set of a processor is a predefined set of
    possible mathematical operations

    Software is tying these mathematical operations together,
    just as in mathematical equations/formula's.

    As an electronic engineer doing also software development,
    I see writing software not different from the work i have
    to do when i need to solve mathematical problems.

    I suggest to Mr Quinn that he takes a course in software
    development so that he really understands what software
    development is about.

    [ Reply to This | # ]

    Why shouldn't software be patented?
    Authored by: dwheeler on Saturday, November 15 2008 @ 04:42 PM EST
    Here are a few URLs that explain why software patents are a terrible idea:

    There are whole sites dedicated to ending software patents, such as

  • End Software Patents (it has a section for lawyers),
  • Stop Software Patents
  • FFII

    [ Reply to This | # ]

  • Answering Gene Quinn, Patent Attorney - Updated
    Authored by: elrond_2003 on Saturday, November 15 2008 @ 04:46 PM EST
    IANAL but

    This minimum requirement for patentable software is that the software to be
    patented must be disclosed. The the patent would apply to that specific
    implmentation. You cannot patent a program that you are not willing to disclose
    COMPLETELY. The claim is then the disclosed code, not every possible
    implementation that sounds like it can be mis-described as resembling the patent
    text.

    ---
    free as in speech.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 04:59 PM EST
    Software is expression, not invention.

    Just because the current Patent law might allow software patents, doesn't mean
    the law <i>should</i> allow software patents.

    [ Reply to This | # ]

    Why does the patent-system exist?
    Authored by: gumnos on Saturday, November 15 2008 @ 05:06 PM EST

    For a patent-minded fellow, Quinn seems to overlook the principle fact that the patent system was established to "promote invention through disclosure". As software goes, patents fail misrably.

    1. with software, innovation has happened and continues to happen at breakneck-pace without the need for patents
    2. with patents in the picture, innovation happens more slowly because it mires the innovative process with the dead-weight of the legal system and millions of incremental-yet-obvious-to-someone-skilled-in-the-art patents
    3. patents were intended to allow someone to take the patent and, after the patent has expired, follow the concrete steps defined therein and produce the described results. Almost all current software patents in the system are nebulous enough to inhibit their use for producing anything other than lawsuits.

    Patents are not an unalienable right — they are an artificial right imposed expressly for the purpose of furthering innovation and making it availble to the public after a fixed length of time. If software patents do not further innovation, they should not be granted. It is repeatedly shown that software patents hinder innovation and stifle competition, and ipso facto should NOT be granted.

    -gumnos



    [ Reply to This | # ]

    It is patently obvious why software should be expressly excluded from patentibility.
    Authored by: Anonymous on Saturday, November 15 2008 @ 05:09 PM EST
    Why shouldn't software be patentable?

    1) Algorithms are mathematical processes and as such should not be patentable.
    Most software patents are granted on mathematical algorithms. Software already
    has a tried and tested form of protection better suited to software and much
    cheaper and more practical to implement - copyright protection, which is better
    suited to creative processes like writing software.

    2) If patent protection is to be granted under law for software, then the prior
    art in software must be searchable to allow checking so as to ensure patents are
    not granted for things that are already part of known art. Unfortunately in
    software most existing code is proprietary and therefore secret and
    unsearchable. The method behind software is very abstract. Even if the code is
    available, reverse engineering the method from the code is too time consuming to
    make it practical to carry out a search for prior art. This guarantees that most
    software patents granted will be on methods that are known, and challenging
    these junk patents in court by searching for prior art as evidence even on
    issues that are common knowledge is so expensive that software patents will
    always be primarily a goldmine for patent trolls to extort huge sums from
    innocent parties, and a means for companies to block legitimate competition.

    3) The idea behind patents is that a limited monopoly is granted to an inventor
    in order to cover the cost of research, development, and marketing required to
    bring a product to market, for the benefit of society. Patent law is not
    intended to be a reward for simply having an inventive idea, nor is it a process
    of selling plots in an intellectual land grab to those who register them under
    patents as many seem to be portraying it. The underlying basis of patents in
    law is to address the injustice and unfairness of somebody who has spent time,
    effort, and money researching, developing, and marketing an invention, only to
    see someone else who has not spent any time, effort, or money parasitise his/her
    efforts and cut him/her out of the market to profit from it. Intellectual
    property is a misnomer since ideas or mental processes cannot be owned like
    property - instead patents are a time limited artificial monopoly granted on
    inventions (which are a very specific and narrow subset of ideas). One problem
    with software patents is that software develops very much more rapidly than in
    other fields of endevour. Software which was novel ten years ago is obsolete
    now. The 20 year monpoly granted by the patent system is supposed to grant a
    monopoly of the invention for only a fraction of its total useful life, for a
    sufficient time to allow recovery of research, development, and marketing costs,
    before allowing others to enter the market. The requirement for full disclosure
    in patents underlines this. In the case of software a 20 year monopoly grants a
    monopoly which extendes more than twice the useful life.

    4) In order to answer the question of why software should not be patentable at
    its most basic level, it is necessary to ask why we allow other things to be
    patented. Should we for example allow patents to be taken out on business
    methods, novel plots (say the "girl meets boy, girl looses boy, girl finds
    boy" plot) or ideas for birthday presents? The answer to that would be an
    overwhelming no from pretty well everybody (apart from patent attorneys and
    others who would gain personally from such an abberation). Having established
    that patents should not be granted for certain things, let us examine why. The
    reason why the previous examples should not be patentable in most people's eyes,
    and most people have an intuitive sense of why allowing them to be patented is
    wrong has to do with their sense of justice, fair reward, and benefit to
    society. The easy part of of the above is thinking up a business method, novel
    plot, or the idea for a birthday present - that only takes a couple of minutes
    and virtually no investment in effort. On the other hand, running a business,
    writing the novel, or saving up for the birthday present takes a huge amount of
    effort. Allowing somebody to patent business methods, novel plots, or birthday
    gift ideas creates an unnatural artificial mechanism by which parasitic
    freeloaders are legally sanctioned to extort disproportionate and unwarranted
    amounts from those who actually put effort and investment into developing
    businesses, writing novels, and saving up to buy gifts, to the detriment of
    society and the hardworking businesses, writers and individuals who contribute
    to society. This is inherently unjust, and most people (patent attorneys and
    other vested interests apart) instinctively recognise this. That is a judge in
    his infinite wisdom recently ruled that business methods cannot be patented.
    With regard to software patentibility, the same thing applies. The thinking up
    of algorithms (software methods and processes) and patenting them is a quick and
    easy process. The difficult process is actually coding and marketing the
    software, and establishing it in the market. This is absolutely clear from the
    patent trolling that is so prevalent in the software market - players who have
    no intention of investing the time and money to code software and market it, are
    extorting money from those who have made the effort and investment, and that
    others are using software patents to lock out legitimate competitors from the
    market.

    The bottom line is that the law specifically excludes the vast majority of what
    constitutes ideas and mental processes from patentibility, regardless if it can
    be should to be novel or clever, and for very good reason. Patent attorneys have
    been using the argument that software has novel ideas and is creative as a
    justification for patentibility - however it is clear that business method,
    novels and gift ideas are also more often than not, novel and creative, and they
    are most certainly not patentible, making that argument bogus. Besides,
    copyright is a far better way of protecting creative works like software and one
    that has unlike patents worked well for over 40 years, and continues to work.
    There should be a blanket exclusion from patentibility for software the very
    same reasons that business methods, novels, and gift ideas are not patentible.

    When patent attorneys start talking about patent law, they should not forget
    that laws are about justice, that they are there for a reason beyond simply
    creating a source of income for them from litigation. Why should we listen to
    the general public, and software developers, instead of just patent attorneys?
    Because the ability of the law to grant a monopoly on intellectual property
    affects all of us. Because software developers understand exactly what is
    obvious and what is novel to a software developer skilled in the art, and what
    is easy and what is onerous in terms of effort in terms of having an idea,
    coding it, and marketing it, something parent attorneys are clueless about.

    [ Reply to This | # ]

    Defeats the purpose of patents.
    Authored by: DMF on Saturday, November 15 2008 @ 05:25 PM EST
    Patents are explicitly justified "to promote the useful arts" [parap.] But software patents generally do exactly the opposite.

    First, software is generally invisible as are the results of the vast majority of processes going on inside the computer. Is there value to each newly obtained "machine state"? Unlike a the process for a better tire, the pure product of software - i.e. data - is not obviously "better". It is just different.

    Second, they place an undue burden on creators of new software to avoid infringement. I've written patentable (and patented) software processes [word-for-hire] that I had no idea were patentable - and thus potentially infringing - until someone else submitted them. Think of the converse situation. I write a process: what if it's already patented? How do I find out? Do I need a staff of patent attorneys to review and research all my code? This is hardly "promoting a useful art". My program would never get written.

    Third, it is the rare patent holder indeed that wants to license his patent to others. They would much rather ambush someone who has stumbled onto the process. Or just flat-out refuse to license to competitors. No necessity here but plenty of empirical experience.

    Instead, only the holders of unassailable patent portfolios would be able to create new software. Good for them; bad for everyone else.

    Fourth, hardware drives software. Software with a potentially patentable product, e.g. a GUI (think Xerox Parc) would have been impossible and unthinkable without the CRT and mouse. Once a free-field CRT and pointing device exist, the software to support them are pretty obvious barring other constraints such as existing proprietary software.

    In essence, patented software is self-expanding and self-perpetuating. Corollary: the 17-year (or whatever) limit is meaningless for software patents.

    [ Reply to This | # ]

    Two somewhat relevant points
    Authored by: irvingprime on Saturday, November 15 2008 @ 05:51 PM EST
    1. First thing:
      Why would you ever ask computer scientists and programmers what is or is not patentable since they have no knowledge of the law?

      Because if you want people to obey the law, you had better make sure it makes some kind of sense to them. People ignore speed limits because they think of them as arbitrary and annoying. They copy and swap music files because it seems unreasonable to them that something that requires no effort and takes nothing physical away from someone else can be considered stealing (not meaning to start this particular debate - just illustrate an attitude).

      It's all well and good to talk about protecting intellectual property, but if people think that you're protecting something that should not be protected and 10 million of them decide to use it anyway, your protection has failed. You can't sue them all no matter how hard you try. Lawyers might see this as job security, but from a societal point of view it's anarchy and bad.

    2. Thing two: I currently work as a software developer/system admin/web technology researcher for a large company. The division I am in could be regarded as a patent factory. Producing patentable work is such a part of the job that how many inventions a person, project or research area has produced, and how many of them have been approved for patenting, is one of the most important metrics used in judging success or failure.

      I see lists of patents approved and applied for every week (rarely software related, btw. The company makes actual physical stuff. The section I'm in is very small and very new). There are hundreds generated every year. The majority of them will never find their way in to the company's products. Probably, most of them should not. Some of them may be licensed to other companies, but not very much of that happens (at this company) in practice.

      Why have the patents then? Because it keeps our competitors from using those same ideas. And the way patents are written (I had a conference with one of the lawyers on this about two weeks ago), you may have also stopped the competitors from using anything even vaguely related.

    3. Bonus thing three: Some of us have quite a bit of knowledge of the law. Compared to some of the math we had to take to learn about computers, it's not that hard, though the "logic" involved is often bizarre. And we've had to study up on law related to privacy and intellectual property (oh yeah, and computer intrusion and such) in sheer self defense. Saying we have no knowledge of the law is a false assumption, unworthy of honest debate.

    Software patents serve the purpose of my second point: They stifle competition without necessarily benefiting anyone. This situation makes no sense to a software engineer who looks at almost any application and thinks, "I could do that. No problem."

    Software patents make sense to lawyers and corporate executives who think in terms of strategy and deep pockets. Those of us who think in terms of good to society (as described in the Constitution) or who just want to get on with our work, don't see it as making that much sense.

    [ Reply to This | # ]

    Computer programs are like music scores
    Authored by: Anonymous on Saturday, November 15 2008 @ 05:54 PM EST
    Music scores also encode a series of instructions that a human or a machine can
    read and process into sounds that eventually are sufficiently pleasant for
    calling them music.
    Like computer programming, creating music is non trivial task requirring
    intellectual effort.

    Music scores have been well protected by copyright law, why should computer
    programs need to be treated differently?

    [ Reply to This | # ]

    "they have no knowledge of the law"
    Authored by: IANALitj on Saturday, November 15 2008 @ 06:14 PM EST
    Mr. Quinn asks, "Why would you ever ask computer scientists and programmers
    what is or is not patentable since they have no knowledge of the law?"

    Ad hominem arguments do not always lead to false conclusions, but leading off
    with ad hominem claims can cast doubt on the wisdom of whatever follows.

    At one end of the continuum of legal knowledge, does Mr. Quinn expect us to
    believe that because Eben Moglen is described in Wikipedia as someone who
    "started out as a computer programming language designer[footnote
    omitted]" he has no knowledge of law? On the other end, when I was a
    Senior Programmer at Sinclair Oil Corporation forty years ago, did I lose my
    programming skills when I enrolled at Columbia Law School? My managers didn't
    think so; I earned enough working summers at my old job to pay my tuition and
    live inexpensively in Greenwich Village until I took a pay cut and became a
    litigation associate in a small Wall Street firm.

    Yes, some computer programmers have no knowledge of law. That does not mean
    that those who are computer programmers are ipso facto disqualified from
    discussing legal issues.

    [ Reply to This | # ]

    Computation Theory 101 (all software is math)
    Authored by: Anonymous on Saturday, November 15 2008 @ 06:31 PM EST
    I may not understand various aspects of law, but this lawyer doesn't understand
    the theory behind computing.

    Any piece of software implements an algorithm. Computation theory tells us that
    any algorithm that can be implemented on a "Turing machine" (think of
    an elementary computer) is equivalent to a "language", where
    "language" is defined as a subset of all possible strings over some
    alphabet.

    Any algorithm you can think of (that can be implemented in software) can be
    represented by a subset of strings - even algorithms to pick stocks or to
    remember a customer's previous choices within an electronic shopping cart.

    Cook's Theorem proves that string subsets corresponding to real-world problems
    that can be solved in a "reasonable" time can all be mapped into
    gigantic combinatorial circuits (AND, OR, and NOT gates), the expression of
    which falls into a field called "discrete mathematics".

    All of you with a BS or higher degree in Computer Science hopefully saw this at
    some point in college. For further references, see "The Design and
    Analysis of Computer Algorithms" [Aho], "Elements of the Theory of
    Computation" [Lewis], or "Introduction to Algorithms" [Cormen].

    Thus, all software is (discrete) mathematics.

    Some may argue that the cleverness in coming up with an algorithm should be
    rewarded with a patent. There are arguments as to whether patents advance or
    retard the field of software development. But in the end, all software is
    math.

    Jim Harford

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 06:40 PM EST
    This little statement sticks out also to me:
    Why a series of instructions that are followed by a machine should not be patentable but a series of instructions that are followed by humans is patentable is beyond me. This is a distinction without a difference. If anything, a process that is followed by humans should not be patentable because you are taking away rights from a person and preventing them from doing something they had the right to do right up until the time a patent was granted.

    Now i hope Mr. Quinn means instructions to make something! Like:take a little of this a a little of that and mix it for 5 minutes.
    The result is maybe patentable because there is a transformation of materials and the result is tangible.

    If the instructions are something like:
    Put the object on the center of the table and walk two times a round the table while singing "cash cash cash".
    sorry this is not patentable; It misses the test by 50%.

    And then:

    Isn’t the problem that patent offices, particularly the United States Patent Office, are increasingly doing a poor job of finding relevant prior art and weeding out what is new and non-obvious from what is old and obvious
    Yes.... but not only increasingly or lately.
    As an exercise please read the works of Herons, Leonardo Da Vinci or Old Chinese Inventions
    Now try to find some overlap with the patents granted,
    No don't try to find all of them... just some without getting tears in your eyes.

    And not only the patent office is faulty.
    The total system is wacko;
    If you need a patent lawyer to file for a patent or else ....
    It's the first sign the patent is questionable

    /Arthur

    [ Reply to This | # ]

    patent abuse
    Authored by: Anonymous on Saturday, November 15 2008 @ 06:45 PM EST
    Software is being used and abused in direct contravention of their intended
    purpose.
    A whole industry has sprung up centered around owning patents and squeezing
    money out of companies.
    Typically these patent portfolio companies have acquired their patents from
    others and therefore have no research infrastructure investments outside of the
    fixed price of the patent.
    They have no intention of making use of the patent in their own production (they
    have none).
    The patent may or may not be kosher, but it was granted and even a cursory look
    at its validity costs too much for it to be a viable alternative to just paying
    the patent holder (which the holder knows and relies on)
    In fact, the process of *applying* for a patent costs enough to take it out of
    the realm of possibilities of all but the largest companies.
    These same large companies have grown into serial patent appliers.
    Patents are being used as 'dirty' weapons by issuing C&D/TRO through the
    courts in an effort trip up competitors.
    All this is abuse and it goes largely unsanctioned.
    The harm comes when the victims of these abuses have no financial resources to
    try and seek justice because justice costs too much.
    The harm comes when some are seen as successfully gaming the system for their
    own gain, which makes a mockery of justice.
    A patent lawyer promoting such a system may, however unintentional, run the risk
    of appearing self-serving.

    ---
    The law in its majestic equality forbids the rich as well as the poor from
    begging for bread and sleeping under bridges. (Novalis)

    [ Reply to This | # ]

    Software patents are evil in practice
    Authored by: Anonymous on Saturday, November 15 2008 @ 06:58 PM EST

    Patents exist to encourage innovation. If you have a wonderful idea, you can get protection against me copying your work and thereby reducing your ability to benefit from it.

    But what if I have the same idea independently, without knowing anything about your work? Then your patent prevents me from benefiting from my work, which is as unfair to me as me stealing your idea would be to you. The requirement for an idea not to be obvious reduces the risk of this happening, but it doesn't eliminate it. The patent system can't be perfect, in my opinion, but on the whole it's supposed to do more good than harm.

    But does it? That depends on the patent office's ability to make good judgements. Technology and science are far more advanced then they were when patents were invented. It seems to me that making good judgements has become much more difficult. It requires the ability to oversee massive amounts of knowledge in a huge number of fields, it requires the ability to process enormous amounts of information and to judge which information is relevant. Is it still possible nowadays to accomplish this? I have my doubts. I remember reading somewhere that the scientists themselves can't keep up with the amount of scientific research being done and unnecessarily replicating research as a consequence. How can a patent office keep up? I read about inventors not recognising their own inventions after lawyers have decided how to formulate them in patent applications. How can a patent office work with that?

    Gene Quinnn writes in his blog:

    The trouble is that patents are being granted on “inventions” that are not new or which are obvious. The problem is not that software presents an inherent evil.

    Software patents - or any type of patent - aren't an inherent good either. I don't consider the patent system itself to be perfect, as I explained above, so as far as I'm concerned it's taking things a bit too far to assume there can be inherent good or evil involved in patents. How the system works out is what matters. Does it encourage or discourage innovation?

    If software patents are being granted when they shouldn't on a regular basis then then the patent office obviously is not able to make correct judgements in this field. This discourages innovation. As long as that is true software patents are evil in practice.

    [ Reply to This | # ]

    Confusion between speech and speaking
    Authored by: Reven on Saturday, November 15 2008 @ 07:11 PM EST
    The problem with copyright and patent law as they have been applied to computer program is a fundamental disconnect in the way people think of a computer is doing, how it does it, and why it is doing it. This may be fairly long, so I'll spit out my conclusion right now, and that is that copyright is not the appropriate concept to apply to software, and patents are.

    Let's start out with what a computer is. A computer is a configurable machine. It is no different from early sewing and embroiders machines that had card readers which could sew patterns based on what was on the cards. In essence, software turns a computer into a factory. It's an information factory, moving around snippets of data. This is no more copyrightable than the layout of an actual factory is. The fundamental fact is that there is no difference between a computer with a program loaded into it, and a machine that is single-purpose constructed to accomplish the same goal. A calculator is no different than my computer with a calculator program. If I built a cash register, and then wrote a computer program that did the exact same thing, right now I could copyright the computer program but could not copyright the internal workings of my cash register. This is because of that disconnect.

    The disconnect occurs for a few reasons. One reason is that people confuse speech - which is copyrightable - and speaking, which is mechanical. Computers can speak, so make them do this and patent the method you use. But because they are capable of rendering copyrightable elements, it does not make the software that does this itself copyrightable any more than my larynx is copyrightable when it speaks, or my hand is when it paints.

    Another reason for the disconnect is due to the fact that modern computers are two-part machines. This is further complicated by the fact that one of the parts is not really tangible. By design, one part is useless without the other part. If I took the guts out of my cash register, I wouldn't copyright this and call it speech. It's nothing but the guts for a patentable machine. Software is nothing but the guts for a patentable machine. Computers are the precursors to truly morphable machines and we are experiencing the beginnings of what will occur when nanotech becomes a reality. What do you call a lump of grey goo that can form itself into a sweater one moment and a gun the next? I imagine that the first morphable nanotech will be "hard-coded" with its different forms. Much like the first computers were hard-coded with their different programs. If I sold you a pocket knife that used nanotech to morph into the different blades and tools, one would expect this to be patentable. So if I sold you nanotech that could morph into anything, suddenly the instructions on how to make it morph becomes copyrightable? Because the mechanical elements are small and can take new shapes and new functionality does not change the fact that it is still a machine. We patent machines, we do not copyright them.

    The last reason for the disconnect is something I alluded to with my speech/speaking comparison. One of the major reasons why we confuse software with something that is copyrightable is the fact that software can contain genuinely copyrightable elements. Music, speech, movies, art of all sorts - these are almost always incorporated into software nowadays. These are genuinely copyrightable, and should be protected as such. The music a tape recorder plays is copyrightable, but the machine that plays it is not. Computer games are the same way - they are entertainment machines no different from movie projectors. People mix them up because software and a lot of the art that accompanies it are both intangible when inside the computer. They both are just bits and bytes, and the way the computer stores them is almost identical. So people began to think of them as being the same, and this is incorect. As much as it is possible to incorporate copyrightable elements into the machine, and as much as sometimes it might be difficult to separate where the copyrightable element ends and the machine performing it begins, they are still different. It is interesting to note that software and the data software works on were indeed handled identically in memory on early general-purpose computers. It is interesting because increasingly this is not the case any more. The machine instructions are now stored in memory that is then told to write-lock, and data is stored in memory that is then told to forbid execution. As security has become more important, so has this separation between the machine and the data containing copyrightable elements the machine is "playing" become. So the computers themselves are getting the distinction straight - now we just need to follow suit.

    Computers are wonderful general purpose tools, but separating out the part with instructions for how to accomplish a goal from the part that acts on those instructions doesn't magically turn those instructions into something that they are not. It doesn't suddenly take the guts of a cash register and turn it into art. Artists have taken machines and made them into art, and this is useful and copyrightable. If I were to take a printout of some source code and use that in some sort of artistic montage, then great. Call it art and copyright it. But beyond that computers still just move bytes from one area to another, and the instructions for when and what circumstances to do that in still just go together with the hardware to make an interesting machine.

    ---
    Ex Turbo Modestum

    [ Reply to This | # ]

    single intellectual property fallacy.
    Authored by: Anonymous on Saturday, November 15 2008 @ 07:44 PM EST
    software ip rights are appropriately protected by copyright and trademark, which
    almost provide more, longer-lived protections than a patent. a wrench is
    patentable, a book describing its most efficient use is copyrightable. a
    computing device is patentable, a method of efficient use of that device is
    copyrightable. this is an applicable analogy, right?

    [ Reply to This | # ]

    Simple Explanation of Why Software is nothing but Mathematics
    Authored by: Anonymous on Saturday, November 15 2008 @ 07:49 PM EST
    I have read through the previous posts and only one person has come close to providing a simple and understandable explanation of the mathematical nature of a computer program. Many concepts and analogies have been thrown around regarding this topic, some more relevant than others of course, but the relevant and basic concepts have either been taken for granted, misunderstood or overlooked. So here is my attempt at clarity.

    Lets start with this statement of Mr.Quinn's

    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me.

    It has already been mentioned by others that the a general purpose computer is only capable of performing a limited set of mathematical operations such as basic arithmetic and boolean algebra. In addition such a computing platform is capable of performing these operations in an arbitrarily defined sequence. This sequential nature can be expressed as a finite state machine and mathematically modeled as described in Wikipedia.

    W iki - Finite State - Mathematical Model

    A deterministic finite state machine is a quintuple (Σ,S,s0,δ,F), where:
    * Σ is the input alphabet (a finite, non-empty set of symbols).
    * S is a finite, non-empty set of states.
    * s0 is an initial state, an element of S.
    * δ is the state-transition function: delta: S times Sigma rightarrow S. In a Nondeterministic finite state machine, delta: S times Sigma rightarrow mathcal{P}(S), δ returns a set of states.
    * F is the set of final states, a (possibly empty) subset of S.
    :
    :

    So that's it! The only thing a computer can do is perform basic mathematical operations in an arbitrarily defined sequence, where the sequential operation is itself defined and governed by a mathematical model of a finite state machine.

    Mr.Quinn makes several attempts at defining the act of creating a computer program as something other than mathematical in nature when he says this:

    So you are writing instructions for a computer or other device and explaining how the computer or device needs to process information. You do not explain how to process information with mathematical equations. You explain how to process information by defining instructions that are followed.

    What he fails to understand or attempts to deny is the fact that the instructions to which he refers are nothing more than collections of basic arithmetic and boolean operations and that the sequential relationships between instructions are just a set of mathematical rules (i.e. Finite State Machine). When he says "You do not explain how to process information with mathematical equations." he is almost completely wrong. I say almost because because he uses the restrictive term "mathematical equations" rather than the more general term "mathematical operations".

    Further if you look at the entirety of MR. Quinn's paragraph above, especially when hes says things like "... defining instructions that are followed. " he is clearly describing an algorithm. I think it would be instructive to lookup the word algorithm in the dictionary.

    al⋅go⋅rithm (Dictionary.com Unabridged (v 1.1))
    a set of rules for solving a problem in a finite number of steps, as for finding the greatest common divisor.

    algorithm (The American Heritage Science Dictionary)
    A finite set of unambiguous instructions performed in a prescribed sequence to achieve a goal, especially a mathematical rule or procedure used to compute a desired result. Algorithms are the basis for most computer programming.

    According to this Wiki article "In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....".

    Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me.
    Software is a collection of mathematical operations organized by mathematically defined sequential relationships. All programming languages are mathematical in nature in that their respective language elements are conceptual abstractions comprised of collections of mathematical operations organized by mathematically defined sequential relationships. Although these abstractions do not necessarily resemble the mathematical constructs of third grade arithmetic or rigorous mathematical proofs they certainly do symbolically represent mathematical operations just as surely as plus '+" and equal '=' do.
    Just to answer some of mr. Quinn's other questions ...
    Can anyone explain to me how it is possible to bring mass production products to market in an open source environment?


    First of all I would just like to say that I am a devout free market capitalist. OpenSource software is the new software industry's infrastructure just as highways, gas stations, and Motel-6 are the freight transportation industry's infrastructure. In the 1800s if you wanted to get in business hauling freight you would have to design your own locomotive, build factories to cast, machine, and assemble your locomotives and rolling stock. You would have to aquire land, manufacture rails and ties, and lay down 1000s of miles of track.. You would need to build wharehouse, maintenance, accommodations, etc at regular intervals along your line. In other words you would have to create the entire infrastructure required for such a venture.

    Today you only need to purchase a suitable truck/tractor from a number of models and manufacturers from which you could choose. The hotels, gas stations, roadways, maintenance facilities, etc are already in place. The huge investment required in the 1800s is no longer necessary. Most individuals could afford to finance a truck/tractor with little or no trouble and immediately be in the freight hauling business.

    OpenSource software is now doing the same thing for the software industry. Small companies can now provide solutions for their clients that only a few short years ago could only be provided by very large companies at great expense to their clients. Large companies with an army of engineers and programmers were required because they had to do everything, all the drivers, all the libraries, everything.

    Now it's not just more players chasing after the same piece of pie either. Since it's now less costly to provide solutions, great savings can be passed on to customers. This means that more customers are able to afford software solutions that were previously beyond the constraints of their budgets.

    Here are a couple of real world examples that illustrate my point.

    Firefox Firefox is an open source browser that currently has a 20% share of the market. Is this what you mean by "mass production products"? if not then please elaborate.

    OpenOffice OpenOffice is a full featured Office Suite competing with MS office all over the world. Currently they have 135,000,000 users and are adding about 1.2M every week. Perhaps this is what is meant by "mass production products"?

    SourceForge SourceForge is yet another example. They currently have 1.9 million registered users, a high percentage of which are software developers, and are currently hosting more than 180,000 open source software projects. This is just what's happening one website. There are many others.

    Adventure Game Studio Is an Integrated Game Development Environment that makes it easy to create point and click adventure games and other types of games as well. It was created by one guy in the late 1990s and made freely available on the internet. He claims that his motivation was that he likes to play games and thought that if he made a programming tools people would use it to makes games he could play. Since then about a thousand games have been produced and also made freely available ion the internet. There have also been a couple of comercial successes and there is current one startup company based in New York City (WadjetEye Games) with a number of publishing and distribution contracts for it's current and future products. There are over 4000 registered members of the forum, comprised mostly developers,artists, muwscicians, and programmers. There are currently about a 1000 games in active development and more projects are started every day.

    AutoIT AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. There are 24,366 registered members of their forum who have made a total of 569,113 posts.

    I could go on and on but most of the people here on Groklaw know the list is huge. If you don't yet get the point I don't think more examples would help so there is not much point in going further.

    The real problem is that software patents do indeed cover a machine that operates in a certain way; but not just any machine, the machines that we all rely on every day – the computer and our cell phones. The arguments of the protesters and other anti-software patent crowd seems to be that software is far too important be patented, far too fundamental to daily life to deserve exclusive protection.
    The real problem is that the open source development model is thriving and out producing it's proprietary rivals at a pace they could never ever hope to equal. Software patents and patent threats are a means of killing that model.

    I think it's a real stretch to use the machine embodiment to justify software patents. The computer is a general purpose tool that is only capable of performing mathematical operations. It does not in and of itself transform any physical quantities or really have any effect on the physical world. It seems to me this is where the courts are headed and rightly so.

    Someone earlier asked what's the difference between audio data and tax data. The difference is that the audio data is a representation of a physical entity, namely a sound. That data could be sent to a device that could produce the sound wave which the data represents. IMHO, such a machine comprised of transducers, computer, and software is potentially patentable, because it has the ability to act upon the physical world. I think this is similar to how things used to be and where they ought to go.

    I must say Mr.Quinn, with all due respect, I am a bit surprised at the quality of your writing. I am accustomed to attorneys who are very careful and precise with their language and conservative with their claims. The best that can be said is that you seem to lack an understanding of computers, mathematics, and software. Were I cynic, I would perhaps believe that you in fact do have an in dept understanding of the subject matter and that your article deliberately misstates facts and employs fallacious logic in an attempt to bamboozle all of us unwashed masses.

    Best Regards

    Rick

    [ Reply to This | # ]

    Let's look at this another way
    Authored by: Tufty on Saturday, November 15 2008 @ 07:51 PM EST
    What if case law was patentable. A world where each case could be patented. You
    want to use half a dozen cases as examples in your brief. You would need to
    research who held them, then try and negotiate a license to use them. You win a
    nice case and get a couple of billion for your client then another company comes
    along and says 'oh, we patented the legal argument you used to win your case,
    that will be a billion, please'. If BSF had a humdinger of a patented case would
    they license it to Mofo? Law builds on the cases that have gone before. Programs
    build on the programs that have gone before.

    Tufty


    ---
    Linux powered squirrel.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:02 PM EST
    I'll take just one single sentence:

    Quoting: "You do not explain how to process information
    with mathematical equations"

    Response: Sorry, but that is precisely what you do in
    software:

    i = i + 1;

    We use a well-described and very restricted subset of all
    mathematical expressions. An early programming language
    was verry accurately named FORTRAN: FORmula TRANslator.

    So: software does not qualify for patent protection.

    And: All patents, written in gobbedygook and/or legalese
    are a gross violation of the foundation of the patent
    principle: an exchange of disclosure for privilege.
    For any software patent to be readable/(re-)usable by
    someone 'skilled in the art', a minimum requirement would
    be that the actual patented 'process' be described in the
    form of the full source code of the patented 'process'.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: gishzida on Saturday, November 15 2008 @ 08:12 PM EST
    The problem appears that Mr. Quinn does not understand what a computer is and how it is programmed.

    Let's make a clear and very simple definition of software:

    Software is speech.

    Bare with me here as I'm not exactly a wiz-bang thinker or programmer (It's been over 20 years since I was paid to program in a commercial environment).

    Speech has been codified to benefit its users. We call this codification "language". Language has precise rules that define the relationship and usage of it components. Those relationships can be shown to be "mathematical" in the broadest sense of the term (Logic, relational, syntactic, discrete, geometric, arithmetic) rather than just simply arithmetic (which Mr. Quinn appears to have chosen to ignore).

    Regardless of the level at which you look at (the machine level in silicon, programmer source code, or runtime object code software it retains its quality as "codified speech" or language.

    The relationship between man and computing devices is the same as between (if you'll forgive the foray into folktales) Rabbi Loew and the Golem.

    The Rabbi fashioned a "golem" that would do anything the Rabbi told it to do. The golem could do nothing unless it was commanded to do so. So the rabbi spoke and told the Golem what it was to do.

    Computers are nothing more than this. They need to "hear" the "speech" of the code to make them work.

    Mr. Quinn makes the simplified (and erroneous) assumption that software is nothing more than a "tool" and therefore patentable.

    Is speech is a tool? Certainly. The fundamental question is: Is speech patentable? How about the parts of speech? The letters of the alphabet?

    Speech is the medium by which ideas are communicated. Programs (and source code) like speech and music is always tangible, but the meaning the program conveys is and always will be an intangible "speech" of ideas that can only be found meaningful to the machine that "hears" it.

    No speech is not "patentable", neither are the parts of speech nor are letters of the alphabet even though they are "tools" to achieve the end of their users.

    This is purpose of copyright law: to protect the expression of ideas and not the algorithms / rules / relationships which speech is built upon.

    To allow software patents is to put a choke hold on speech of all kinds.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: chrishiggins on Saturday, November 15 2008 @ 08:14 PM EST
    If we wrote a computer program that allowed a computer to "breath".
    (it had a set of artifical lungs, and the mechanism to move the air in and out,
    and some mechanism to extract oxygen)

    For those who believe that "software" is patentable, could I now
    patent "breathing", and charge every human a small licencing fee ?

    If I can't patent this - why should anything else I do in software be any
    different ?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:25 PM EST
    Disclaimer: I am a professional developer in Europe, who stands a lot to lose
    should software become patentable.

    I believe you are falling for a common fallacy about programming - that it
    involves merely creating a set of instructions for a computer to follow. While
    that description is true, it is only true in a very narrow sense and does not
    really encompass the true nature of software.

    I can write a program to perform a set of actions: for example, to move a cursor
    around a screen drawing lines, turn left, turn right etc, allowing me to draw,
    say, a flower. It can be hard to see how that program is really a mathematical
    construct, especially when you see it written in a human readable programming
    language.

    Imagine then, that after writing a few flower drawing programs, I see a pattern
    whereby the code I'm writing does the same thing over and over again, so I
    abstract those operations and give them a code. For example, 0 = turn left, 1 =
    move forward 1 unit, etc. I can now represent my flower drawing code (and many
    other types of drawings) as a sequence of numbers, with a simpler program that
    merely interprets them following the actions they represent. Should that list of
    numbers (my original program) be patentable?

    I can go further down: I can read that list of numbers and generate machine code
    (more numbers) that has the effect of drawing the original figure. I can
    transform those encoded instructions into any other language I want.

    I can go further up: I can write a program that 'breeds' those lists of numbers
    by mathematically splicing them together and adding some randomness, and asking
    the user to choose the prettiest of the 'children' produced. Should any of the
    resulting 'evolved' programs be patentable? Should the program that allows you
    to generate them? I don't think its reasonable to allow patents on numeric
    encodings.

    The art of programming is in abstraction. Copyright protects the expression of
    an idea in software in the same way as for a book, and that fits perfectly with
    where the creativity in software lies. Patenting software makes as much sense as
    patenting lists of words.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: mosborne on Saturday, November 15 2008 @ 08:31 PM EST
    Software is merely a sequence of instructions (drawn from a finite set) for a
    machine. A machine can be physical or it can be virtual (ie, the Java VM, the
    .Net VM, a VMWare VM, etc.) There are many examples of both types.

    A mp3 file is merely a list of instructions for an MP3 virtual machine. A pdf
    file is a list of instructions for a pdf rendering machine. Even an html file is
    merely a list of instructions for a an html rendering machine. By Quinn's logic,
    each of those those things should be patentable.

    The legal quagmire would get quite depp in a hurry.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 08:53 PM EST
    The "intellect" in "Intellectual Property" is not a machine
    but comes from a person's thought.

    Intellectual Property in software is this century's form of indentured servitude
    and slavery.


    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 09:02 PM EST
    I will start by stating that some of his points are indeed valid--that it
    doesn't seem necessarily illogical to patent a series of
    instructions to a machine, and that much of the problem is that patent offices,
    certainly the USPTO, have done a very poor job with
    evaluating applications.

    However, his assertion that "software is not a mathematical equation"
    is simply wrong. He says "How anyone who writes software or
    professes to understand software could argue to the contrary is beyond me."
    Well, let me explain how: the equivalence proof is one of
    the foundations of computer science and something that every CompSci major
    learns as part of the undergraduate curriculum. Further,
    to his question "Do people who write software actually think they are
    sitting down and writing mathematical equations and stringing
    them together?" Why yes, we do. And in fact mathematics, pure mathematics,
    comes into play quite often while we're stringing together
    our instructions to the machine. Will the algorithm terminate? How will its
    memory usage and run time scale with larger data sets? I
    deal with both inductive & deductive proofs, granted on an informal basis,
    almost every day--while writing ordinary commercial
    workflow software.

    Finally, as to the statement "It is absurd to have such a narrow view of
    software." Yes indeed, however it is HIS view of software that is
    absurdly narrow. He sees a mere stream of instructions, without any
    understanding of how they come to be put together, without any
    understanding of their logical foundations or analysis. The statement "You
    do not explain how to process information with
    mathematical equations." betrays a profound ignorance of the subject as
    indeed, it is exactly mathematical equations that are used
    whenever one needs to process information in a rigorously specified manner.

    Of course what really prompted me to write was this: "The fact that
    computer scientists and programmers mistakenly believe software
    to be mathematical merely demonstrates that they have learned absolut[e]ly
    nothing about software and what it is and does." No, sir!
    That statement is astoundingly arrogant and foolish! How exactly does someone
    with no formal education in software and no
    experience developing it have the gall to tell those of us immersed in it that
    we have learned absolutely nothing about it? How does he
    come to think that his superficial understanding of the subject exceeds that of
    experts in the field? Such patronization is astonishing!

    What would Mr. Quinn think if I wrote an essay that included a passage:
    "The fact that patent attorneys mistakenly believe patents to
    be [something or other] merely demonstrates that they have learned absolutely
    nothing about the law and what it is and does." Huh?
    Think he would find me arrogant for that? Foolish, even?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 10:17 PM EST
    Mr. Quinn's 1 + 1 = 2 is computationally incorrect (for a computer). What is
    correct is 1 + 1 = 0.

    And that is math. Period.

    krp

    [ Reply to This | # ]

    Gene Quinn capable of learning
    Authored by: Gringo on Saturday, November 15 2008 @ 10:22 PM EST

    I was Googling Gene Quinn and I ran across an article he wrote about patent trolls.

    This articles demonstrates that Mr. Quinn is capable of growing and learning. After reading this, I feel much encouraged that the effort of all those who gave of their precious time and knowledge to help Mr. Quinn fill in the gaps on the subject of software was not in vain.

    Mr. Quinn says in his article...

    "Up until now I have been criticized in many corners for taking the side of so-called patent trolls." ... "Up until now I have not been willing to advocate for the overthrow of patent trolls..." ... "Things are different for me now though and I have a lot of reasons to point for my change in attitude."

    "What we need to focus on are those that are taking from the patent system without returning anything to the patent system. ... These innovation vampires grab hold of as many patents as they sink their teeth into a company and begin to suck the life right out by holding the company, and often times the entire industry, hostage."

    "This massive redistribution of wealth without an iota of benefit to society must stop!"

    Any enemy of patent trolls is a potential friend of mine. Even if his ideas about software patents are a little strange, there is always hope that he will come to a fuller understanding on that issue too.

    [ Reply to This | # ]

    Why software is different
    Authored by: Anonymous on Saturday, November 15 2008 @ 11:41 PM EST
    Mr. Quinn asks why software is different from other areas of engineering in a
    way that makes patents less beneficial than they are for those other areas.

    This question takes as a given that patents are beneficial in some areas,
    which is itself open to debate, but it is reasonable for a patent lawyer to
    believe some patents are beneficial, so for now I will take as given that
    patents are beneficial in, say, mechanical engineering.

    So what makes software different? The fact that the overhead costs of
    turning an idea into a productive, useful device are so low. Suppose I have a
    new idea in how to write a program to, say, sort numbers into order. I simply
    have to describe the sorting method in a formal language (i.e. a
    programming language) and I have a useful "device" - a program that I
    can
    use for sorting things.

    Compare this with, say. a new idea for a device to extract corks from wine
    bottles. I can draw up the blueprints but they will not uncork any actual wine

    bottles. I have to actually manufacture the device to use it. I also have to
    worry about things like materials, dimensions, strengths, loads, etc.

    The result is that it costs much less in time and money to produce one usable
    software "device" than the equivalent mechanical device. A typical
    programmer could not work for more than a hour without producing
    something that calls for a patent search to make sure no patent was being
    violated.

    The cost of doing such searches would would multiply the cost of writing a
    program by at least a factor of 10. (Assume 8 hours per patent search, and
    lawyers cost at least 1.25 times what programmers cost.) This is far more
    overhead than many other areas of engineering.

    So in fact as far as I know there is not one single programmer in the US who
    checks to make sure his daily output does not violate someone's patents.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 11:43 PM EST
    The idea that programs define action as opposed to mathematics is where Mr.
    Quinn gets it fatally wrong.

    The microprocessor is a device which has some particularly fine tuned control of
    the flow of electricity through its various parts. Depending upon the degree to
    which electricity is or isn't flowing, we treat these states as either a 0 or a
    1. Once we've reached that point, we're looking purely at numbers, and the
    microprocessor is nothing but a very complicated numerical/computational device.
    Even the stuff which looks like it's not math, like controlling the flow of a
    program, is, ultimately, controlling the flow of electricity -- which makes it
    0's and 1's. Each byte of memory has a numerical address associated with it.
    Program flow is nothing more than adding to or subtracting from (or just
    substituting a new number for) the numerical address that the processor is
    reading instructions from.

    Instructions are just numbers whose meaning is dictated by the microprocessor
    manufacturer -- or, more precisely, a pattern of electrical flows that we
    represent with 1's and 0's -- again, just numbers to me, the programmer.

    Once we leave the realm of the internals of the microprocessor and get to
    interacting with devices -- "performing actions" -- we're still
    dealing with numbers. We direct the processor to send specific flows of
    electricity to various places. We represent all of these flows as numbers. The
    hardware itself is designed to react to the flows of electricity that we send to
    perform actions. The patent belongs in the hardware that does something, not to
    the programmer that sends the numbers to it.

    One obvious example is displaying pixels on the screen. All we're doing, at the
    bottom level, is putting numbers in memory somewhere that another device reads
    to determine what intensity to make the beam that strikes the phosphor that
    corresponds to that particular bit of memory.

    Sound is similar. All we're doing is vibrating the speaker using numbers to
    represent the positions of the cone in the speaker. We send the numbers, and a
    device converts it into electrical signals to vibrate that cone. Again, it's
    just numbers to us programmers.

    Encryption? Just doing the math. Applying a filter to an image? Just doing
    the math. Searching through text? Just doing the math.

    The text I'm writing right now is represented by a series of numbers. What
    makes it text is that we've agreed on the meaning of the numbers to be text.
    Capital A is usually represented by the value 65. To make a capital letter a
    lowercase letter, we just add 32 to it. Math, math, math...

    So, meaning, actions, doing stuff? These are all agreed upon in committees
    and/or dictated to us by the creators of the devices. As a programmer, however,
    it's just about doing the math.

    All software is math.

    [ Reply to This | # ]

    Questioning and Answering Gene Quinn, Patent Attorney - Updated
    Authored by: ScaredDeveloper on Saturday, November 15 2008 @ 11:55 PM EST
    Mr. Quinn, how exactly is patenting software different from patenting pure ideas?

    I'm a believer in patents, but as a software developer, I find it interesting that over-broad software patents can prevent you from accomplishing a given result by any means, even those that aren't described in the patent. Often they describe abstract ideas, such as "receiving an email on a mobile device," not the direct implementation of such a thing (which could be implemented in an almost infinite number of possible ways). How is that different from just patenting an abstract idea?

    The goal of a patent attorney is to obtain a patent that is as broad as possible, is it not? Oftentimes that ends up ensnaring people who are implementing something "obvious" and/or "mundane," which is part and parcel of all software development.

    As a software developer, I am constantly "inventing" ways of doing things. Many of which have been "invented" by other software developers at one time or another. Sometimes in a similar way. Why should someone be able to claim 1+1=2, and I can't arrive at the same answer without paying them royalties for 20 years? Assuming they find out, and sue me (even though I had no former knowledge of their claim of exclusivity to 1+1=2)? How can the patent office assume that nobody else ever thought of 1+1=2?

    If software patents were so "necessary" for innovation, then how is it that Microsoft, Apple, IBM, etc. were able to innovate before they were allowed? Now they exist only to stifle innovation, and be cross-licensed between giant companies in a game of mutual assured destruction.

    The patent term was designed in a time when they could only refer to mechanical inventions, which take a long time to bring to market, and have significantly longer life cycle. Software is a very fast-moving field, with generations measured in years, not decades. The Patent term as written is not anywhere near a comparable amount of time relative to the useful life of software (vs. a mechanical invention). It is excessive. If you are going to allow patents on something as abstract as software, they should probably only be good for a few years (5 at the most).

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 15 2008 @ 11:56 PM EST
    All I see in the article is scare tactics. He doesn't want to lose 90% of his
    business so he's drumming up the FUD to sway the vast majority who listen to the
    loudest voice and hope it's right. There's nothing to see here folks, for all
    his education he's still no better than a politician trying to keep his seat by
    yelling the world will end if he isn't in charge of saving it. And disrespecting
    judges is low, even for a lawyer.

    [ Reply to This | # ]

    My answer to Gene Quinn
    Authored by: hAckz0r on Sunday, November 16 2008 @ 12:45 AM EST
    Let me set the picture so that he can understand the flaw in his own thinking. I propose the following scenario:

    What if, every time Geane sat down and wrote a new and original legal document he got sued for plagiarism and copyright infringement? This would be solely because there was a single dusty law book on somebody else's book shelf whom he does not even know, and this book contains a single sentence almost exactly the same as one he just wrote. Even though he had complete knowledge of that subject matter and his thoughts were clearly (to him at the time) originally derived. It is likely an impossible task to write a lengthy legal document on almost any subject which has not in some way tapped into at least one "idea" previously written about by some other lawyer.

    As a software engineer I can tell you that no matter how original your own ideas seem to be at the time for solving your problem at hand, you will use at least one piece of logic that someone has used or written before, simply because you both thought out the same logical process. We build software on a foundation of other software methodologies and no single program or algorithm is an island unto itself. To solve certain types of problems it requires logic of a certain kind. Any seasoned programmer will logically duplicate, as original thought, the same solutions most of the time when given the same general situation.

    Yes there are unique solutions, but they always rely on algorithms and software design methodologies to make the program as a whole work. If you were to make these very foundations of software design to be off limits via patents then no software could ever be written.

    Not only that but its also quite impossible to know if someone else ever had the same "idea" since there is no way to search for a "thought process", only a hand full of key words that might or might not describe similar concepts within that same thought process of solving that particular problem.

    ---
    DRM - As a "solution", it solves the wrong problem; As a "technology" its only 'logically' infeasible.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 12:51 AM EST
    If the price of real estate goes up and the Interest rate goes down,
    you did not make a profit that you can turn into cash,
    You only found a opportunity to increase you debt...

    Oops, sorry wrong thread, that's a other valuing system that wend berserk.
    /Arthur

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: DaveAtFraud on Sunday, November 16 2008 @ 01:11 AM EST
    After reading enough of the other replies that my eyes were becoming bleary, I
    thought of yet another response to Mr.Quinn's contention that programming is not
    mathematical. There is one branch of mathematics that is very intimately tied
    to computers and that is fractals; especially as they relate to computer
    generated imagery (CGI). The mathematics of fractals stands as a discipline on
    its own. On the other hand it takes the computer application of fractals to
    fully visualize what fractals are capable of representing.

    What makes fractals an excellent example in the current discussion is that the
    mathematics of fractals is a fascinating field of theoretical study in and of
    itself. That is, the various equations are well known and different ways of
    generating fractals have been analyzed, explored and postulated over for years.
    Fractals are pure mathematics and thus are not something subject to patents.

    Now consider the application of fractals to CGI. The programmer of the graphics
    platform takes this wonderful mathematical theory and applies it via the
    computer to create scenes, creatures, impossible worlds, life like animations
    and anything else he or she can imagine.

    So, here we have a very large and very visible case where the computing cannot
    exist without the underlying mathematics. Further, the computing only applies
    known mathematics using known methods to create CGI animations. But the
    graphics programmer has to have a deep understanding of the fractal generation
    being used in order to exploit what the dry mathematical formula is capable of
    generating. That is, the computer program and the mathematics are virtually
    identical and inseparable. You cannot render the visual without the underlying
    mathematics and you cannot truly visualize the mathematics without a computer
    program. So much for the blanket statement that programming isn't a
    mathematical endeavor.

    What's interesting is this example gets even better when applied to patents. As
    noted above, the original invention of fractals was pure mathematics. The best
    known application of fractals is software for CGI animations. This software
    isn't patentable since the only non-obvious part of it is the mathematics behind
    fractals.

    But there are applications of fractals to creating tangible inventions and these
    inventions are patentable. As an example, most cell phones include an antennae
    that uses fractal geometry to pack a lot of antennae into very little space.
    The method for generating the antennae design isn't patentable since it is pure
    fractal mathematics; only the implemented design for the antennae as expressed
    as a tangible item can be patented. Mr. Quinn would have us believe that
    applying a mathematical formula in a program should be patentable and the patent
    extends to the method itself while applying the same mathematical formula to the
    design of some tangible item only results in the final item being patentable.
    This is inconsistent.

    There was a recent episode of NOVA on PBS that explored fractals, CGI, etc. I
    strongly suggest that Mr. Quinn take the fifty minutes required to watch the
    episode to see how intimately programming and mathematics can be intertwined.

    Link to Nove episode web site:

    http://www.pbs.org/wgbh/nova/fractals/

    Cheers,
    Dave

    ---
    Quietly implementing RFC 1925 wherever I go.

    [ Reply to This | # ]

    Better Mousetrap - Part Deux
    Authored by: Ian Al on Sunday, November 16 2008 @ 05:20 AM EST
    I have been very worried that I might have revealed too much about my better
    mousetrap, earlier in the discussion, but now I am now even more worried that it
    cannot be patented at all. I am going to let you know more about it in order to
    seek your advice. Don't give a soul the details of my invention before I get to
    run down to the patent office.

    The original patent mousetrap was a wooden square platform supporting a
    spring-loaded, U-shaped wire held back by a catch. The catch was triggered by
    the mouse standing on the tray with the cheese bait and the mouse then got
    thwacked on the back by the U-shaped wire. It was unkind to mice.

    The humane mousetrap is just the same in that the trap is triggered by the mouse
    treading on the bait tray, but the trap is in the form of a square profile tube
    and the trigger lets a trapdoor fall, capturing the animal. The key part of the
    invention is the one-way trapdoor.

    My better mousetrap comprises a square profile tube with three sensing points. A
    small candle is placed behind each sensing point. The first point is just inside
    the entrance to the tube, the second is toward the closed end and the third is
    just before the bait tray. A spring-loaded trapdoor trigger is operated by a
    string that runs from the entrance to the operator.

    Obviously, the householder cannot lie in wait all night long for a mouse so this
    is a business mousetrap. The operator follows the following business process
    flow-chart.

    1. Observe the candle light at sensor point one at regular intervals. If the
    light disappears and reappears, go to process step two.

    2. Observe the candle light at sensor points one and two at regular intervals.
    If sensor point two stays on and sensor point one goes off then on, return to
    step one. If sensor point two goes off and on and sensor point one does not go
    off go to process step three.

    3. Observe the candle light at sensor point three at regular intervals. If it
    goes off, pull the string and trigger the trap door.

    4. Humanely dispose of mouse.

    It occurs to me that my invention is almost the same as the old humane trap with
    the addition of a non-patentable business process. For that reason, I have
    implemented process points 1-3 in a computer program running on a personal
    computer using the Windows 98 SE operating system. Now I can patent the computer
    program. What is more, I can also use the computer program to deal with shunting
    model trains into sidings. So, that's patented as well. In fact, anything that
    needs to detect a something fully entering into a something else and doing
    something is covered. It does not matter if someone uses a different program on
    a different computer with a different processor and a different operating system
    and different hardware, it's all my invention. That process flow chart is mine,
    all mine. Profit!

    I am very worried that the USPTO is going to say the invention part is a
    business process and not patentable. How can I convince them that the invention
    is a computer program produced from a programming flow chart? That's completely
    different, isn't it. My worry is that the moment you concentrate on any one of
    the three steps, the source code looks like a lump of anyone elses software. How
    can I convince them that those three general purpose steps in my special order
    is a wonderful invention? It's a better mousetrap, isn't it?

    Any advice you can give me on patenting the program would be welcome.

    ---
    Regards
    Ian Al

    Linux: Viri can't hear you in free space.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: muswell100 on Sunday, November 16 2008 @ 05:25 AM EST
    I would hazard to suggest to Mr Quinn that he is almost certainly mistaken, not
    just about the law concerning the issue of the patentability of software but
    also the simple common sense concerning why software is not a patentable asset.
    By this, I don't mean that software cannot be protected from rampant plagiarism;
    that's what copyright law is for.

    If you consider for a moment what a computer does when given software to run,
    you realise that the bottom line is that you are providing material for the
    machine to produce something which is ultimately for human consumption, whether
    informational or physical. When authors typed manuscripts on typewriters, did
    the fact that a typewriter (a machine) was being fed instructions, albeit
    manually, mean that those instructions (the manuscript) became patentable? Of
    course not. When you provide digital input in the form of a CD into your CD
    player (a machine) to hear the music on the disk, does the music become
    patentable? The music and the manuscript in both cases are works composed by an
    author in exactly the same way that the software composed by the programmer is
    and, like software, they produce a product from instructions provided by a
    human. Simply saying that a computer changes the entire paradigm is selectively
    ignoring the obvious. CD players contain much of the same technology that
    computers do for that matter. Does this mean that the music produced on these
    machines become patentable?

    The only winners in such a system which allows ideas to become patented
    commodities are the big software players and the lawyers they hire to protect
    their interests. It could be argued that even the big software players lose, if
    you consider how such a practice discourages and suppresses innovation. Who
    would choose to write software in the knowledge that they would fall foul of at
    least half a dozen bigger boys who patented the 'if...then...else' statement
    first?

    Consider too, that in the current economic climate suppressing software
    development in this way does not help the state of the world. It would stifle
    new businesses and just contribute to the general malaise in the world stock
    markets. And then there's the moral argument, but I think I've already mentioned
    this a previous post some time ago...

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 06:49 AM EST
    Hi, there.

    A little Background on myself:
    I am an analysis engineer who is in the profession of calculatig the mechanical strength of car engine parts. In doing this job I have to use enhanced CAE computer programs, and have to write some code myself. I therefore also consider myself a novice programmer.

    Now to the arguments of Mr. Quinn:
    He asks us, why should a chemical process, or manufacturing process be patentable, whereas a computer process be not patentable.

    Simple answer: Because when you invent a chemical or manufacturing process, you HAVE to consider the hardware.

    I explain:

    Let us invent a process to make pure water from letting oxygen and hydrogen react with each other.
    First try: Put one liter of oxygen and 2 liters of hydrogen into a bottle, ignite the stuff. Result? KABOOOOM! Seems like we got some water, but the whole thing needs some more tweaking. OK, let us make the walls of the bottle thicker. Still KABOOM, but at least I can use the bottle for one year. The inventive step here is, that I now have a working process, and I had to consider what the process does in the physical world, even if I only did it on paper. For other chemical processes I have to try, if the chemical reaction I thought would happen by putting a couple of ingredients together, will really give me the desired reaction. Even the best chemists cannot predict with 100% certainty what the results will be, because ALL forecast models of physical and chemical processes are somehow flawed.

    Let's look at software: I write the "Hello world" program in python. I take this program and can now let it run on any machine from supercomputer to cell phone which can run a python interpreter. How should this even remotely be similar to a chemical or production process? The programmer does not even know what the hardware does, which registers are set, etc. He did not jet have to make the step from either mathematics or writing to invention. The programmer knows that the result of 1+1 will be 2 if the hardware does it's part, whatever it might be, correctly. There is mathematical prooveability in what he does, he does not need to be inventive to get the desired results. The type of program where I could reluctantly agree to being invention would be driver development or other close-to- hardware programs where the patent would have to mention how the hardware is interacting with the software (which registers are set to which state for which reason, ...).
    For example: Patent for cooking eggs on a XEON processor: Write program which constantly causes all registers to flip bits and all buses to transfer data back and forth, which causes the processor to become so immensely hot, that you can use it for cooking purposes.

    Purely algorythmical stuff like compression or sorting or file format algorythms are not patentable because the innovation happens purely in math (there it is not an invention but a discovery), and the transformation of the math into software is not inventive but descriptive. This comment is dedicated to the public domain. Do with it as you please.

    [ Reply to This | # ]

    A specific example of software tied to hardware
    Authored by: PeteS on Sunday, November 16 2008 @ 07:17 AM EST
    This takes a little explaining, so bear with me.

    Back in 1992 or so, I had a need to do high precision analog to digital conversions for a proposed battery analyser. At that time, a converter capable of the precision I needed running on fixed references was beyond my budget, so I looked at the options and found a processor that had a ratiometric ADC [Analog to Digital Converter].

    The device was a [then] Motorola MC68HC805B6.

    A ratiometric converter has both high and low references as inputs, so I could select the range of voltages to convert against. The utility is that a single conversion step (1 least significant bit) is given by Vrange / [2^^n] where n is the converter resolution in bits; I can get better conversions by either increasing n or decreasing Vrange - using a ratiometric device permitted me to reduce Vrange.

    So far, so good, but it's merely an idea at this point, and there's nothing new in the above, other that [perhaps] a discovery of a new way to use the device.

    My issue was I needed to make this standalone, so I used the two PWM D-A (Pulse Width Modulated Digital to Analog) ports fed into separate external integrators that I designed to meet my needs (low pass filters).

    The code set the references (the filtered outputs of the D-A ports) at max range, and then iteratively calculated the best range to get the highest precision reading, taking into account settling time.

    The total circuit was new, and the code used had one purpose - to control the hardware to analyse a physical effect.

    I contend the entire system (code + hardware) may have been patentable for my specific implementation, as the code was targeted at a very specific, non-commodity piece of hardware.

    The code, on it's own, made no sense without the hardware and could therefore pass the test.

    For what it's worth I wrote an application note, complete with code, for Motorola, on the grounds that passing on the knowledge of my discovery was in the better interests of the engineering community.

    PeteS

    ---
    Only the truly mediocre are always at their best

    [ Reply to This | # ]

    What is mathematics? See the 'Mathematics Subject Classification'
    Authored by: macliam on Sunday, November 16 2008 @ 07:28 AM EST

    A disagreement concerning what should or should not be considered to be mathematics presumably cannot be resolved on the basis of subjective opinions concerning the boundaries of the subject. For a reasonably authoritative classification of what is considered to be mathematics by the international mathematical community, one might do worse than consult the 2000 Mathematics Subject Classification. This includes a number of areas that also fall within Computer Science, and include topics that concern the Theory of Data.

    I note that many software developers posting above describe the explicitly mathematical nature of their work, whereas others do not regard exercises such as the design of GUI interfaces using Java as explicitly mathematical. Presumably software development exhibits a continuum with regard to the ostensible mathematical content of the software at the higher levels. But if the US patent system is to function effectively, the Patent Office and the Federal Courts presumably need a clear dividing line between inventions that (on the basis of previous Supreme Court decisions) are unpatentable as being merely the implementation of some mathematical algorithm on a general-purpose computer, and other inventions that are considered patentable but that may involve the use of a programmed computer. The Bilski 'machine or transformation' test seems to be formulated with that objective in mind, and hopefully future decisions may clarify matters.

    And finally, I suggest that people might consider whether a computer program determines a well-defined physical process when run on a multi-tasking general-purpose computer. It seems to me that, when CPU time is being switched from process to process, and when stuff in memory is being swapped out onto disk and back again, there is no clear definite relationship between the algorithmic process specified in the computer program and the physical process involving the flow of electrons around the network of silicon chips and wires and other material that constitutes the computer hardware. Running a high-level program on a computer would seem to involve putting in a request for the computer to carry out some particular computation somehow, along with the hundred-and-one other tasks that it is charged with performing at around the same time. Running a software programme on a general-purpose computer does not therefore seem to me to convert the computer to a special-purpose machine designed to carry out some process that can be specified in purely physical terms, involving the flow of electrons around circuits.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 07:36 AM EST
    This is what I write to Gene Quinn

    >Software is not a mathematical equation, nor is it a >mathematical
    language. How anyone who writes software or >professes to understand software
    could argue to the >contrary is beyond me. Do people who write software
    >actually think they are sitting down and writing >mathematical equations
    and stringing them together?

    Yes, we do know without any possible of doubt that what every program we write
    is a mathematical expression. This we know since there has been absolute
    mathematical proofs of that our activity is only math.

    Programmers without any real programming education might have the delusion that
    they are not doing math, but on the other hand their program often turns out
    buggy and fails to deliver the wanted results reliable since they just write
    down code without any plan. Your assertion that math equals mathematical
    equations (I assume you mean arithmetic ones) is btw fundamentally flawed.

    It seems that the largest problem without your reasoning is that the you fail to
    understand the distinction between an abstract algorithm and a physical process
    that uses an algorithm.

    If you ask any practitioner in chemistry if what they are doing is math they
    will most likely respond "yes, it is mostly math". That does not mean
    it is _all_ about math. The difference is very important. If you try to solve
    the chemical reaction formulas with pure math then you will fail in any non
    trivial situation because genuine knowledge in chemistry (or very advanced
    physics) is needed to tell what chemical reactions that can happen. A patent on
    how to achieve the necessary environment for a reaction to take place is fair
    since it a genuine difficult engineering problem.

    The same apply to constructing computer hardware. The logic operation of the
    hardware is just one side of the reality. When designing the hardware you need
    to pay attention to the fact that quantum mechanics will make electrons to jump
    through solid barriers. The engineering problem is further complicated by the
    demand that clock pulses must reach all their destinations at the exact same
    moment no matter that some components is located closer on silicon. To make
    things even worse the operation of semi conductors is only well defined at
    normal temperatures, failure to dispense heat directly will result is massive
    system failure and incorrect operation. A patent to protect the massive research
    needed to build hardware is sensible.

    There are a number of cases when the line is hard to draw. For instance we can
    look at the MP3 patents. These are things entirely done in software, but they
    build on real research of how the human mind experience sound. It is clearly not
    pure math since you can not with math alone recreate the right encoding
    mechanism. My only real objection here would be that many of the actual patents
    granted on MP3 is too broad. A proof of this is that a number of companies claim
    to patent the MP3 even though logic suggest that one of them must been first to
    implement it. The best for the society would probably be if there was a
    technique to end patents early when revenue has surpassed the actual development
    cost by a certain margin like have happened for MP3 audio.

    Another case when the line turns hard to draw is video data. This is an area
    that on the math level has been understood for many years before any computer
    could perform the algorithms on time. Patents granted on hardware for playing
    video data on a too slow computer is obviously fair game. These patents become
    obsolete when general purpose computers can perform the same algorithm in
    software, but that is the way of life.

    >Can anyone explain to me how it is possible to bring mass >production
    products to market in an open source >environment?

    You are pulling a straw man. Software is perfectly well protected by copyright
    and you know that so why do ask about software not being protected by anything?


    Even more important Open Source software is already mass market products in some
    areas. Even Microsoft agree that 60% of the internet servers run open source
    GNU/Linux, if you argue that 60% of the market is not mass product then you are
    being disingenuous.

    Another good metric is if Open Source companies make money without falling back
    on actually using their patents. What about Red Hat that let's you use their
    code for free and only hold patents to defend themselves from patent abuse. How
    many millions do they need to earn before you contend that copyright is totally
    enough to protect software?

    >Copyrights protect only the identical express.

    This is simply not true, you can not change passages and claim that you wrote
    something original. Furthermore we can, in case of software, use math to prove
    if you did write the code from scratch or rewrote an existing program provided
    we have access to the source code or the binary data.

    >but not allowing patents simply because too many people >would have to
    pay royalties seems virtually certain to >lead to a patent system that
    rewards those who inch
    >forward rather than those who leap.

    That is not a problem for software since software by its concept should not be
    possible to patent in the first place. Even more important is that hard facts
    prove you false. The most remarkable about the hyped 3-d-accelerated interface
    in Vista is that Microsoft did not manage to get this to work until so many
    years after the Open Source challengers. Innovation happen in the field of
    software development every day, but very seldom by companies that develop closed
    source.

    Finally it might also be good to point out that even the binary instructions to
    a computer is not tied to any particular machine. Many people without education
    live in the delusion that the source code or the algorithm of a program is
    independent of the machine while the compiled binary program is tied to the
    particular target computer. This is not something that is true. Any general
    purpose computer can be programmed to emulate any other general computer and
    thus any program can be run on any other computer. This is not normally desired
    since there is a performance problem with emulating another computer, but it has
    been done in practice for decades.

    [ Reply to This | # ]

    Why Quinn Is Wrong On Copyright
    Authored by: Anonymous on Sunday, November 16 2008 @ 07:36 AM EST

    Mr Quinn appears to be very confused about copyright; perhaps he has been concentrating too hard on patents and has lost his grasp on other aspects of the law. I would go so far as to say that his lack of respect for American copyright law is disgraceful in someone who claims to support the rights of creators.

    He writes:

    It has been suggested by anti-patent advocates that copyrights are fine to protect software. This is absolutely ridiculous. Copyrights protect only the identical express. I can look at what you did and do it in my own way to accomplish the same exact thing without ever violating a copyright. So copyrights provide little if any useful protection for software.

    This is simply not true in any useful way. If I look at your code (source code or object code) and reimplement it, then you most certainly can sue me for copyright violation, and you will probably win, because it will be very difficult for me to prove that I did not copy your code. In fact, I probably will have copied your code, even if I tried not to. There's a reason why, for example, the WINE project refuses to accept contributions from anyone who has ever been exposed to any Microsoft source code, and it's not because they want to make their lives needlessly difficult.

    Reverse-engineering can only be safely carried out if there is a rigorous separation between the people who examine the program being copied, and the people who implement the copied version. In short, this requires the people implementing the copied version to do all the work required to work out how to implement the features: they must reinvent everything themselves. Having done so much work to create a program from scratch -- why, Mr Quinn, do they not deserve to benefit from the fruits of their labours?

    It's so much work, indeed, that most people don't bother to do it at all. It's simpler to create their own software. Of course, that becomes risky because they might infringe a software patent, even though they have not set out to copy anything at all. So creativity and innovation are stifled. But I suppose it's too much to hope that a patent attorney would ever accept that.

    But wait, there's more! If you do not wish even this form of copying to be possible, you can trivially prevent it with a handy tool called an "EULA". It's simple: you require anyone who uses your program to agree to a contract which stipulates that they will not reverse engineer it! Then the only ways they can copy your software are those that Congress has explicitly decided to permit. (I presume you agree that it is acceptable for software to be copied in ways that the democratically-elected representatives of the people decide to allow it to be copied?)

    In short, software is protected by a copyright law that is strong and effective, and can then be further protected by contract law. That's not one but two protections. Why does software need patents as well? What good do they do?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 08:31 AM EST
    On the general assumption that all software is equivalent to non-patentable
    equations: Bah!

    For example: a compiler. It transforms a user expressed language into a code
    which a processor executes.

    There are definitiely patent abuses in terms of software, but there are
    legitimate situations wherein a software system does something which is not
    previously invented.

    So: some legitmate (in my personal opinion) bits of software which may be
    patentented or not:
    The analysis tool: PIN. http://rogue.colorado.edu/pin/

    It is an incredibly powerful, capable (and technically unique) research toolkit
    to understand application behavior.
    That is, it can instrument executables in such a way as to provide information
    about how to improve the hardware design of future processors.


    P.S. - no I am not an Intel employee, or one of the inventors of PIN.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 08:32 AM EST

    (A little late to the game, but here goes for what it' worth, and this is not based on reading any of the previous comments (no time, sorry)):

    Actually, I agree 100% with the principles he's stated as quoted in the article.

    While there are plenty of exceptions, most software doesn't satisfy the "you are just describing nature" issue with not being able to patent math. We are creating machines, just virtual ones. I don't think even the use of XOR to implement a screen cursor would fail this test. A good edge case to think about might be compression systems.

    My arguments against (most) software patents are purely pragmatic:

    It would take unthinkable reforms plus some new processes for the patent office to do a good job of approving software patents. E.g. published sources are entirely inadequate, the XOR one mentioned above was well known and used when it was patented, but it was never to anyone's knowledge published. The field is too broad for any one patent examiner to be sufficiently aware of the state of the art. (I'd go on, but it's incumbent upon people who believe software should and can be patented to propose a granting system that would work.)

    In terms of what patents are supposed to do for society, starting with the #1 idea here is that they are good since they put things out into the public in return for a limited duration monopoly instead of forcing you to protect something indefinitely by trade secret:

    1. The field moves way too fast for the current 17 year monopoly period.

    2. As they are currently written, they do not advance the field. No one in the software field reads about a patented invention, develops an improvement based upon it, and then both companies cross license for mutual benefit.

    3. (and very much related to my first point) The field is just too big and complex. Way too many patentable concepts are incorporated in every bit of software of even moderate size for someone to be able to play by the rules. The author can't know all the patents that he's infringing, nor could he afford to pay for them at even RAND rates.

    4. There is absolutely no evidence whatsoever that software needs patents to encourage the field. It was very healthy and mature before they were allowed.

    Just because you can, in principle, do something doesn't mean it's wise.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: eric76 on Sunday, November 16 2008 @ 08:58 AM EST
    To me, writing good software has always seemed to be like proving a theorem in
    mathematics using a constructive proof.

    [ Reply to This | # ]

    Cooperation is contrary to human nature and will run its course in the not too distant future:NT
    Authored by: attila_the_pun on Sunday, November 16 2008 @ 10:23 AM EST
    Need I say more?

    [ Reply to This | # ]

    Gene doesn't understand copyright law.
    Authored by: Anonymous on Sunday, November 16 2008 @ 10:23 AM EST
    He is very very ignorant.

    Mathematics is routinely copyrightable. "1+1=2" may not be, but a
    complex proof is. Software is copyrightable just like math is. There are many
    ways to express an underlying mathematical truth, or an algorithm.

    Patents are another matter. Patents on software or mathematics are like patents
    on plotlines in books. All of Gene's arguments for patenting software apply to
    book plotlines as well. Does the first person to write an novel about a grand
    jury investigating on its own get exclusive rights to the concept? No way. But
    that plot gimmick is a "tool" of the trade of writing, which can be
    used practically by the practical writer.

    Incidentally, Gene is also arguing that methods of swinging on a playground
    swing should be patentable. And that methods of mental computation should be
    patentable.

    I claim priority to the mental method of arguing that "everything under the
    sun" is patentable, with no subject matter restrictions. This is novel as
    all previous types of patent law have recognized subject matter limitations of
    one form or another; it is nonobvious because it is so stupid that no
    pratictioner of ordinary skill in the art would come up with it. I will be
    filing a patent shortly. Gene, I expect you to pay me $10,000,000,000 in
    damages, based on my rough estimate of the monetary value of this argument
    should I be able to use it successful.

    Perhaps Gene may begin to see how insane it is to allow essentially
    non-industrial, abstract concepts to be patented?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 11:23 AM EST
    I perceive the biggest problem with software patents to be their instant onset. Computer science had developed for five decades without software patents. Those five decades represent a massive amount of prior art that cannot be properly considered when evaluating the "novelty" and "unobviousness" of a patent application. None of that prior art will appear in a search for previous patents. Much had been published only in obscure or extinct journals, and more was published as source code: a language that fully discloses the method to those "skilled in the art", but a foreign tongue to those who are not. All this makes accurate software patent reviews impossible.

    In sum, this allows present-day rent seekers to extort payment for the work of another long forgotten. "Thief" is such a nasty word, but if the show fits...

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 12:12 PM EST
    Thank you PJ for this article.
    I have enjoyed many of the comments in here, good stuff.

    The USA is in trouble, we have become what we revolted from in our past,
    Britian, who sought to tax and control the world.
    The USA has become very perverse in many ways, the last 8 years have been
    pathetic.

    The only thing the rules is the ability to force negotiation and promote
    expansionism, at the same time, while being efficient and stable. IT is rapidly
    becoming such a force. Use this for good.

    Those who wait for legal justice in IT, will have squandered the greatest
    revolution possible, and perhaps the last revolution possible. Beware the
    Copyright Cops and international 'law.'

    [ Reply to This | # ]

    perhaps a halfway solution
    Authored by: LaurenceTux on Sunday, November 16 2008 @ 01:25 PM EST
    1 declare any and all software only patents currently on the books null and void
    (retain patents for software that is part of a unique widget like the firmware
    for a device)

    2 in recognition that computer years are faster than human years divide all
    expiration periods by say 10 (or 90 days whichever is greater)

    3 require that actual compilable source code for the program/library be filed
    (in a sealed disc) for all software patents (when the patent expires you release
    the source)

    [ Reply to This | # ]

    News Picks
    Authored by: Alan(UK) on Sunday, November 16 2008 @ 01:43 PM EST
    I know that this started as Members Only but can I claim a record for the lateness in completing the Canonical Three?

    ---
    Microsoft is nailing up its own coffin from the inside.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: stegu on Sunday, November 16 2008 @ 02:41 PM EST
    the open source model is contrary to human nature and will run its course in the not too distant future
    I think this quote says a lot about the mindset and opinions of the author. "Open source is not primarily driven by raw greed, and is therefore unnatural." I feel sad for anyone who cannot - or chooses not to - see that there is actually a whole lot more to human nature than that.

    [ Reply to This | # ]

    Bad Premise
    Authored by: CustomDesigned on Sunday, November 16 2008 @ 03:26 PM EST
    "Software is not a mathematical equation, nor is it a mathematical language."

    Well, as a matter of fact, that is *exactly* what software is. No wonder this attorney is confused. Long before the earliest computers, there was mathematics and algorithms. We still use those first discovered by the Ancient Greeks and Romans.

    The invention from a patent standpoint was machines capable of automatically executing the mathematical steps without direct human intervention. (And before that, machines like Pascals analytical engine or Thomas Fowlers wooden ternary accounting machine implemented mathematics with human help.)

    Software is a form of literature, just like the written works of Euler or Newton. Software patents are like patenting character or plot stereotypes. Software is properly protected by copyright. That doesn't mean that there is no gray area for lawyers to make a living on. Consider movies based on a book. The movie is an entirely new creative work. And yet, it is considered enough of a derivative work that the book author is compensated. Determining when software is a derivative work or a new work is often very tricky, with plenty of lawyer livelihood.

    There have been several fantasy novels about magic that brings stories to life, like Myst and Inkheart. If someone invents a machine that can make that a reality, like computers did for mathematics, will we then start patenting plots?

    [ Reply to This | # ]

    • Bad Premise - Authored by: PJ on Sunday, November 16 2008 @ 03:31 PM EST
    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 03:38 PM EST
    "The fact that computer scientists and programmers mistakenly believe
    software to be mathematical merely demonstrates that they have learned
    absolut[e]ly nothing about software and what it is and does."

    I'm sure that Kernighan, Ritchie, MatLAB authors, Octive authors and MANY others
    are either rolling on the floor or flaming mad. (Of course this doesn't even
    count the people who write the processor microcode. They've gone to get their
    pitchforks!!)

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: ine on Sunday, November 16 2008 @ 05:49 PM EST
    Patents are a grant of monopoly. They conflict directly with the notion of a
    free market, and they distort that free market, bringing about less than optimal
    outcomes. They are intrinsically harmful - all patents are.

    That does not mean that patents cannot ever be useful. The situation is rather
    like the medical use of drugs. Drugs are harmful, but they can deliver more
    advantages than harm in some circumstances. But even when doing good, they are
    also doing some harm. So drugs are only allowed when there is a clear case of
    advantages outweighing harm.

    Same for patents. Patents are intrinsically harmful to the economy. They are an
    economic drug, if you like, that distorts the free market. They should only be
    allowed where they prevent a worse problem or create advantages greater than
    their intrinsic harm. For example, patents are supposed to reveal knowledge of
    some technology which would otherwise remain secret (i.e. allow the greater
    circulation of knowledge, which is a public good). If some area of patents does
    not increase the total stock of useful public knowledge, then where is the
    public benefit of patents to outweigh their manifest costs?

    Patents may work for machinery and the like, where considerable private research
    takes place. But they don't seem to provide any useful increase of public
    knowledge in the realm of software. The software industry is not heavily based
    on private research the way that (say) aeronautics or pharmaceuticals are.
    Microsoft's vast investment in research does not seem to give it a huge
    advantage over Apple, in terms of innovation.

    Among other things, software relies heavily on open protocols, because it is
    heavily focussed on communications (networking). It is also "art" - a
    combination of fashion and marketing: guessing or intuiting what the consumer
    will want to buy (see iPhone and iPod for examples). As soon as these devices
    are marketed the "secret" is already known: we don't need a patent to
    reveal the "secret sauce" in the ipod. There is a simple copyright
    issue here: are other firms allowed to take one look and say "Oh, I get
    it." And make their own clone. patents do not increase knowledge here, but
    they do bolster monopoly.

    The software industry will flourish more without patents. Bill Gates himself
    acknowledged that the software industry would not have grown nearly as well as
    it has if there had been a patent regime back then like the one today. Microsoft
    itself flourished because of the lack of patents. Now it wants to use patents to
    prevent competition. Why help them? That would be economic suicide, or at least
    self-harm.

    So I must ask: Where is the public benefit in software patents? Not some private
    benefit to those who want to profit from patents, like existing monopolies. What
    *public benefit* is there in software patents?

    [ Reply to This | # ]

    Aren't Software Patents 'Self-Invalidating'?
    Authored by: Anonymous on Sunday, November 16 2008 @ 06:02 PM EST
    One of the requirements stated was that the software method must be
    "non-obvious". Having been queried by our lawyers at work about
    possible breaches of patents and prior art (I am assuming that the basics of
    patents here in Australia are similar to the US), it occurred to me that the
    biggest fear of the software designer is the inadvertant breach.

    If software developers independently create algorithms that breach patents,
    having had no dealings with a patent holder and having never seen their code,
    doesn't that prove that the original patent was not "non-obvious"? The
    only genuinely "non-obvious" patents are the ones that are never
    inadvertantly breached.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 08:21 PM EST
    Sorry guys, you're all wrong. Including Mr Quinn.

    It's all magic, my IT person told me so when I let the magic smoke escape from
    my PC, and that's why it doesn't work anymore.

    I must say though, that I am impressed my Mr Quinn's willingness to stand up in
    front of the world and accuse a professional body of people of not understanding
    the workings of their own profession. Thus re-enforcing our opinion that those
    in the legal profession have no interest in reality, just how much they can bill
    you for. I'm surprised he's not charging us $2.50 a word to read his blog.

    On the subject of patents, I had an idea a while ago that this is best resolved
    by looking at two operating systems, Linux and NetBSD.

    Both of these operating systems are widely ported across CPU architectures, so
    fundamentally, while the hardware they run on is very dissimilar, they can both
    perform the same tasks.

    To wit, both of them are POSIX compliant, so just about any POSIX compliant code
    can be run on them with just a recompile. Taking a look at what code is
    available to both, you'll note that there's a large amount of cross over, in
    fact, just about everything that has been written for one, has been made to run
    on the other, and yet structurally, the kernels of these operating systems are
    very different, and written completely independently.

    The software available on both is also very comprehensive, web browsing, word
    processing, email, compression, encryption, maths, science, graphics, it's all
    there.

    So, fundamentally different hardware, fundamentally different kernels, and yet
    the software that runs on top is all the same.

    Every Computer Science student writes his own kernel at some point. There is
    nothing special in any of this, the only reason someone else didn't invent
    something before someone else, is because when the first person thought of it,
    they were being paid to do something else.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 09:20 PM EST
    The simple truth is that mathematics is not a mathematical language. You write
    equations to perform calculations. The equation is compiled into object code
    that can be understood by a computer. This object code explains to the machine
    what the machine needs to do. So we can patent mathematics.

    Calling software a mathematical language is like calling the English language a
    letter language. A book is not just a combination of letters; a program is not
    just combination of instructions. Like software, all books should be patented.

    /sarcasm

    [ Reply to This | # ]

    • Uh-oh - Authored by: Totosplatz on Sunday, November 16 2008 @ 09:40 PM EST
    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 16 2008 @ 11:42 PM EST
    A computer can only do a few things. These things are controled for the most
    part by software:

    They can move data from point(address) A to point(address) B.

    They can add two values together.

    They can change the sign of a value.

    They can roll the bits that make up a value left or right.

    All these functions are obvious to any computer science student and threfore not
    patenable.

    [ Reply to This | # ]

    At low level - math: no matter how you look at it
    Authored by: richardpitt on Monday, November 17 2008 @ 01:10 AM EST
    Ok – I'll take a stab at refuting Mr. Quinn's (and other pro-patent people)
    protestations that software is or should be patentable and “is not mathematics”
    (one of the definitions of things that are not inherently patentable in most
    jurisdictions – hopefully including Canada)

    I started programming computers many years ago at the binary/bit level. At that
    level the processor deals directly in boolean logic (a branch of Algebra) and
    binary arithmetic, add/subtract/multiply/divide. At that level, the program is
    very obviously a mathematical construct, containing such verbs as: ADD, ADC (add
    with carry), SUB, SBB (subtract with borrow), DAD (double add), INR (increment)
    and other low-level mathematical instructions. There are, to be sure,
    instructions to MOV numbers from one place to another and such but fundamentally
    the functionality is to achieve mathematical results from mathematical input.

    This includes things like doing what from the point of view of mere humans are
    character-based operations: compare, sort, merge, etc. - the fact is that the
    representation of characters is numeric (see the ASCII table and other newer
    similar mappings of characters to numbers) and the operations are 100%
    mathematical.

    Today's computer systems hide the underlying machine instructions behind an ever
    increasing set of layers of interpretation and compilation of the human-readable
    terms to take them back to the lowest and only real machine-level details – the
    1s and 0s of the binary world in the computer core – that the computer actually
    does its work with.

    Show me a computer that does NOT use binary encoded values (and there are such
    beasts – they are “analog”) and I'll grant you that such a computer may in fact
    be dealing with a process that is patentable; certainly the first such analog
    computers I worked with contained such items as potentiometers and moving-coil
    meters and such – devices that moved something larger than electrons. The fact
    is that today there are almost no analog computers – certainly none used to do
    research – they've all been replaced by ever-increasingly accurate binary
    algorithms (mathematical constructs expressed as computer programs) run on
    ever-faster digital computers.

    Just the traditional name of what we now think of as the only type of computer,
    “DIGITAL COMPUTERS” (to distinguish them from the analog computer) shrieks of
    the fact that these are mathematical instruments.


    Let's take this from another point of view – show that the computer program is
    in fact a written work – and that copyright is a far more applicable legal arena
    for it.

    I write a computer program – and feed it to the appropriate computer (where, if
    it is written in a high-level language, it is turned into the binary
    instructions the underlying CPU requires). Its output can take one of two forms:

    1.printed (or the equivalent display on a screen) information such as bank
    balance, pie chart, picture, video or other form that is traditionally seen as a
    work that can be copyrighted. I could have used a calculator or abacus or my
    fingers to figure out the result, and I could have used a typewriter to print
    out the results - but the fact is that the results are printed and look
    identical to things that we have come to consider fodder for the copyright
    legislation. Am I to consider a work of fiction, created 100% through the use of
    word processing software on a digital computer, a patentable item??? Same thing
    goes for a novel way of creating a sales order (one click) or other business
    process output - they all come down to entries on a ledger sheet and are
    COPYRIGHT!

    2.Direction of a device which transforms some material (a block of metal or
    wood for example via a CNC (computer numerical controller – there's that
    reference to numbers/mathematics again – numerical) machine and it produces a
    THING – which may or may not be patentable, depending on whether it is a
    fundamental machine (lever, ramp, wheel, etc.) or a truly new device – but the
    fact is that the same object could have been created by a suitably skilled
    machinist without the computer intervention.
    I could just as easily (in the case of the CNC instructions) have written
    instructions in English for the machinist, along with suitable drawings – both
    of which (the written word and the drawings) would have been covered by
    copyright, even if they defined a device that qualified for patent! It is the
    device itself that is patented, not the description.

    Put that in your pipe Mr. Quinn – mathematics IS computing and vice versa.

    [ Reply to This | # ]

    Instead of answering Gene Quinn we should ask ...
    Authored by: Anonymous on Monday, November 17 2008 @ 01:21 AM EST
    ... who Gene Quinn really is and for whom he works? What are his motivations for this travesty in front of a really large audience which he tries to alienate as much as possible? Can someone please shed an illuminating light on this person, please?

    And: please stay kind; proper information only!

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 04:02 AM EST
    Consider the different types of software we have and the exposure that most
    people have to software.

    Operating Systems
    Business software (word processor, database, web-browser etc...)
    Analysis software (spread-sheet, matlab, etc...)
    Games
    Scientific
    Map display software.

    The list goes on forever.

    However most lawyers will only use the basic Business software and as such it is
    difficult for them to see or understand that this type of software is not
    particularly complex and does not contain large amounts of complex algorithms.
    Almost everyone forgets the OS :>>

    When you move onto my last four types of software you start to enter the realm
    of complex algorithms. You just need to pick up any decent graduate level book
    on any of these subjects and math's is the foundation of almost all the
    techniques and effects.

    I know to my cost that this is so because I had to go back to University and get
    another degree in Math's to stay in my chosen field of expertise (real-time
    graphics).


    Damian Dixon, BSc (Hons), BSc(Hons), BSc, FRGS

    [ Reply to This | # ]

    An abbreviation came to mind...
    Authored by: Minsk on Monday, November 17 2008 @ 05:13 AM EST
    In mechanisms and process, math models the underlying reality.

    In software and computing, reality models the underlying math.

    [ Reply to This | # ]

    software are algorithms
    Authored by: Anonymous on Monday, November 17 2008 @ 06:24 AM EST
    software is the description of an algorithm, given in a formal language. I don't
    know how anybody can claim that is outside of the scope of maths.

    [ Reply to This | # ]

    Put yourself in their shoes
    Authored by: Anonymous on Monday, November 17 2008 @ 06:39 AM EST
    If software should be subject to patents, why should legal arguments not be
    subject to patents? They are equally abstract.

    Imagine paying each time you reference 'Bilski' in a case; or being prevented
    from referencing it because the law firm owning the rights didn't want to give
    them to you, or because you ran out of money licensing all the other authorities
    for your case? What if you find what you believe to be a new legal argument
    only to discover after the fact it was already owned by another firm - who sues
    you for damages.

    In a hundred years imagine how difficult it would be to practice your
    profession?

    This sort of stupidity is exactly what is being foisted on software engineers
    today - against their wishes. It may be less obviously stupid to lawyers with a
    tangential understanding of software, but to software engineers it is every bit
    as stupid.

    [ Reply to This | # ]

    Mathematicians are not creative
    Authored by: Anonymous on Monday, November 17 2008 @ 06:44 AM EST
    "If you want to cling to software b[e]ing a mathematical language then you
    need to come to terms with the fact then that your position means that software
    cannot be copyrighted and certainly not capable of being protected by trade
    secret. After all 1+1=2 is not something that is secret, and it is not original
    in any way. So if you want to go down this path then come to terms with the fact
    that what computer scientist and programmers do is not original or creative in
    any way, shape or form."

    1+1=2 was extremely creative in its day. It literally took thousands of years
    for humanity to develop this notation alone, especially the step of 10+10=20 was
    difficult. Music can also be considered an aspect of mathematics, yet no one
    questions the creativity of musicians.

    Mathematics is a highly creative field, and while math itself is not and should
    not be subject to copyright, derivatives such as software and music certainly
    should be subject to copyright. The reason that patents should not be allowed
    is that they cover not only the expression as software but the underlying
    mathematics as well.

    [ Reply to This | # ]

    Who can qualify the legal aspects of software?
    Authored by: Anonymous on Monday, November 17 2008 @ 07:15 AM EST
    I love the idea that the folks who write software have no clue what software is.
    I maintain a human body and keep it running. That does not qualify me as a physician.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 07:29 AM EST
    Shouldn't this be treated like music.

    The trumpet is patentable, like the computer
    however the musical notes are not.
    therefore the song and likewise the programs should be copyrighted not patented.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 07:32 AM EST
    and surely chords, progressions are mathematic asbtract ideas, just like
    algorithmns

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 07:32 AM EST
    He asks:

    "What is the harm?"

    What if you were an architect, designing a building. You have the basic
    conceptual requirements of what the building should do, for example an apartment
    building, that houses so many people, and provides access through elevators,
    stairs and ramps. You know you have to provide plumbing, and electrical
    services.

    Now imagine every time you added a line to your architectural drawing you had to
    search 400,000 vague documents to see if your line infringed a patent.

    Of course this is silly, and it is not being done because it is not practical.
    Likewise, when a programmer is writing code to satisfy a set of requirements, he
    or she doesn't search those four hundred thousand patents because it is simply
    impractical.

    As a result, after putting a concept like a shopping cart into production code
    and making it available to consumers world wide, you have someone come along and
    say "I have a patent on that, you owe me millions of dollars in
    royalties." The person with the patent made no effort to use the
    invention, or make it known at the time the product was rolled out, but waited
    until it became an embedded way of doing business before claiming royalties.

    You can't run a business when you have to look over your shoulder all the time
    to see if someone with an obscure patent is going to use the legal system to
    milk your hard work. The mass of software patents being accumulated by some
    individuals with no other purpose than to pounce on someone who does all the
    work to make an idea work and steal their money is simply wrong.

    It is also wrong to say I have your data, but you can't have it unless you use
    my patented method of getting at it.

    The amount of harm that has already been caused by Software Patents, is
    immeasurable, and very likely, if left un-checked likely to do much, much
    greater harm.

    In this day and age where un-precedented challenges face all humanity, this
    stifling of innovation must not be permitted to continue.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 07:40 AM EST
    The patents system I'm vaguely familiar with was set up to
    support and protect inventors. If you can't ask an
    inventor what should and should not be patentable then the
    system is broken. At no point was the patent system set up
    to support lawyers and asking a lawyer what should and
    should not be patentable is patently stupid. Lawyers exist
    to support the patent system and the patent system supports
    inventors (computer scientists and programmers in your
    limited understanding). Why would any intelligent person
    conclude that you should ask a lawyer what should and
    should not be patentable? Shouldn't the inventors tell the
    lawyers what is desired and then the lawyers set up a
    system that implements that goal?

    How about the cost of the patent system? Isn't that a harm
    or is economics not something they teach in law school?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated - is fundamentlly wrong.
    Authored by: Anonymous on Monday, November 17 2008 @ 08:04 AM EST
    "You do not explain how to process information with mathematical
    equations."

    Mr. Quinn is fundamentally wrong in his statement above. The general purpose
    computer is an invention that allows you to do precisely that.

    The basic computer allows you to store a representation of a number, and perform
    operations on that number. It implements a method of using the equations.

    contents of address 100 = 50
    contents of address 101 = 51
    contents of address 102 = contents of address 101 plus contents of address 100

    Mathematical equations, granted simple ones, being strung together a vast array
    of sequences, is precisely what software is in today's world. The fact that the
    equations can be used to activate robot arms, and so on is a product of the
    invention that allows those equations to manipulate the arm. It is that
    invention that should be patentable, not the equations being used.

    Yes, I know you can tune an equation to modify backlash and so on in the arm.
    But again, it is not the equation that is the invention, but the hardware the
    software talks to. Patent you disk drive mechanisms, your liquid crystal
    displays, and the other "things". But draw the line at the software.
    If you can fix a thing with a software patch, then that tells you the patent on
    the thing is more limited than originally thought.


    [ Reply to This | # ]

    The fact that lawyers mistakenly believe software to be fundamentally different from mathematics
    Authored by: Anonymous on Monday, November 17 2008 @ 09:16 AM EST
    ... merely demonstrates that they've learned absolutely nothing about software
    and what it is and does.

    Mr Lawyer, many computer programmers are in fact mathematicians and know very
    well how mathematics correspond to software algorithms. Do not insult our
    intelligence by presuming you know more about us than you do.

    Do you know what the "Curry-Howard" correspondence is? If you don't,
    I suggest you look it up. It is and I quote "the direct relationship
    between computer programs and mathematical proofs. Also known as Curry-Howard
    isomorphism, proofs-as-programs correspondence and formulae-as-types
    correspondence, it refers to the generalization of a syntactic analogy between
    systems of formal logic and computational calculi that was first discovered by
    the American mathematician Haskell Curry and logician William Alvin
    Howard." Furthermore look up "Lambda calculus". Originally
    introduced as part of an investigation into the foundations of mathematics, it
    can be thought of as a minimalistic programming language capable of expressing
    *any* algorithm (even though it's a formal mathematical system!!) Most
    programming languages are in fact directly rooted in lambda calculus, where it
    provides the basic mechanisms for procedural abstraction.

    So you see Mr. Lawyer, software programs are directly equivalent to mathematical
    proofs, contrary to your uninformed laymens understanding of software, and your
    arrogant and insulting comments towards programmers/mathematicians therefore
    merely unmasks your ignorance of Computer Science, Maths and software in
    general.

    [ Reply to This | # ]

    What protection does the patent add?
    Authored by: Anonymous on Monday, November 17 2008 @ 09:25 AM EST
    Calling software a mathematical language is like calling the English language a letter language. After all, every word is made of letters, so all any language is is just letters. This is absurd. You put letters together to form words, then sentences, then paragraphs. So a book is not just a combination of letters. We use letters to form the words that lead to concepts and make it possible to convey meaning in the form of communicating what is in the mind of the author to the minds of the readers.

    OK, so the argument is that software is NOT a mathematical language. Let's assume he's correct for a moment and address the English analogy.

    Consider the case if (counter to fact) works in English were patentable. It conveys concepts, and can even convey instructions for building a device if we want...

    One day, Joseph Conrad comes up with a story about a man who goes insane in the jungle, and the journey of another man to find the insane man. This was a novel idea. He wrote an expression of it. That expression is certainly copyrightable. But let's say he also gets a patent on the expression.

    The question, now, is what Conrad holds a patent on? Is it just the actual text of Heart of Darkness? Or is it the underlying idea of the story about the journey to find the insane man in the jungle?

    Now Francis Ford Copala comes along and makes Apocalypse Now. Is this an infringement of Conrad's patent? He's clearly working from the same underlying idea, though with a different expression of it. Has he fallen afoul of Conrad's patent?

    If he HAS fallen afoul of the patent (which, by the way, is the way software patents pre-Bliski were enforced), then I have a problem with software patents, because now we're patenting ideas, not implementations.

    If he has NOT fallen afoul of the patent, because Copola used a different expression of the same ideas, then what did the patent accomplish? If changing the expression gets around the patent, then the patent appears coterminal with the copyright on the original work. It provides no additional protection, as far as I can see (if someone wants to tell me how it would, please do).

    This is my problem with the original argument in a nutshell. It's theoretical. The author asks "what's the harm of some software being patentable?" There's already a thread on "what's the benefit to society?" But I'd like to ask "In what situation would a patent convey additional protections that the copyright does not?"

    Looking at those situations would, IMO, make the discussion useful. Let's look at a case where copyright does NOT provide enough protection, where patent protection WOULD provide useful protection, and we've got a "sane" patent that protects implementation and not ideas. I would challenge the author to provide such an example.

    * If the change of medium from literature to film bothers you in my example, substitute the novel "A Bend In The River" for "Apocalypse Now".

    [ Reply to This | # ]

    The fact that lawyers mistakenly believe software to be fundamentally different from mathematics
    Authored by: Anonymous on Monday, November 17 2008 @ 09:39 AM EST
    ... merely demonstrates that they've learned absolutely nothing about software
    and what it is and does.

    Mr Lawyer, many computer programmers are in fact mathematicians and know very
    well how mathematics correspond to software algorithms. Do not insult our
    intelligence by presuming you know more about us than you do.

    Do you know what the "Curry-Howard" correspondence is? If you don't,
    I suggest you look it up. It is and I quote "the direct relationship
    between computer programs and mathematical proofs. Also known as Curry-Howard
    isomorphism, proofs-as-programs correspondence and formulae-as-types
    correspondence, it refers to the generalization of a syntactic analogy between
    systems of formal logic and computational calculi that was first discovered by
    the American mathematician Haskell Curry and logician William Alvin
    Howard." Furthermore look up "Lambda calculus". Originally
    introduced as part of an investigation into the foundations of mathematics, it
    can be thought of as a minimalistic programming language capable of expressing
    *any* algorithm (even though it's a formal mathematical system!!) Most
    programming languages are in fact directly rooted in lambda calculus, where it
    provides the basic mechanisms for procedural abstraction.

    So you see Mr. Lawyer, software programs are directly equivalent to mathematical
    proofs, contrary to your uninformed laymens understanding of software, and your
    arrogant and insulting comments towards programmers/mathematicians therefore
    merely unmasks your ignorance of Computer Science, Maths and software in
    general.

    (Apologies for any repetitions of what's already been said - I've not read all
    the posts but just had to get that off my chest)

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 09:39 AM EST
    "From a conceptual standpoint why not allow for software to be
    patented."

    Computer science is like exact science rather than applied science.

    "What is the harm?"

    Monopolies harm society.

    Fundamental contract: You get monopoly, you share your idea so others may use it
    in 20 years. In computer science contract useless, nothing will be relevant in
    20 years.

    Patents does least amount of damage in sectors which already have high capital
    requirements, final products use relatively few patentable ideas and relatively
    few actors in the sector.

    Software is on the opposite end of the scale in all 3 respects, therefore
    software sector suffers imensely if software patents are allowed.

    [ Reply to This | # ]

    Do patents give diminishing returns as opportunity cost goes down ?
    Authored by: Garick on Monday, November 17 2008 @ 10:17 AM EST
    I am not an economist, but ... I wrote a rather long comment to Bilski, part 4 that echos a lot of the arguments I see here about how patents must provide a societal utility to be valid and just. I also made some arguments about how I think the generally lowering opportunity costs makes patents more harmful as technology progresses because it protects abstract ideas and not concrete expressions of ideas like copyright. I think perhaps counter-intuitively if opportunity costs are too low patents won't work to the benefit of society. In that case patents become just a roadblock to innovation rewarding patent holders at the expense of everyone else. I think perhaps if patents are going to exist the length should perhaps be adjusted periodically based on actual measurements of industries. Perhaps, opportunity cost is even a decent metric for how long a patent should last. Maybe software patents might even be feasible/just if they were for a short enough period of time (less than a year).

    [ Reply to This | # ]

    What's a tool?
    Authored by: Anonymous on Monday, November 17 2008 @ 10:20 AM EST
    Software is a tool and tools have always been patentable!

    A simple example.
    * Someone invents a CNC-controlled milling machine This is a tool, and the milling machine is almost certainly patentable. In fact, there are hundreds of patents in this space.
    * Someone writes a set of instructions for the milling machine to make it produce a given object. This is software. I'll get to it in a second.
    * The milling machine produces an object. The object produced may be a patentable object (a complex part for a new car) or may be something mundane and unpatentable (a fine-threaded stainless steel bolt)

    In this case, we need to look at the second piece here--the set of instructions that guide the tool. Are they patentable? Are they really a "tool"?

    I'd argue that the milling machine is the patentable tool. The instructions are a process, not a tool. They're a way of using the tool to produce a certain useful outcome. There may only be one way to produce an output, or there may be many.

    A few things to note if we consider software part of the "tool" and NOT an abstract process:
    * If the instructions are a "tool," then it doesn't matter whether I'm making something novel or something mundane. Because "tools are always patentable" even if they're tools to make things in the public domain. So, for software patents, I assume you'd argue that a new way to make dialog boxes appear is patentable, even if dialog boxes are public domain.
    * If the instructions are a "tool," would similar instructions for a different CNC machine be covered by the same patent? The other CNC machine might have different bits, and require different instructions. This is the "general purpose computer" argument attacked in Bliski.
    * Does the number of possible instruction sets that can produce the same object matter? Let's say on my machine there are 20 ways to produce a metal cube. Clearly, a metal cube (the output) is not patentable, but should my way to produce it be patentable? Now let's say there's only one sane way to produce a sphere. Should that be patentable? It's a very similar "process" using the same "tools", so if one is patentable, the other should be. Now, however, I'm able to shut other people out of making metal spheres. Does this make sense?

    [ Reply to This | # ]

    I want to pattent Multiplication!
    Authored by: Eeyore on Monday, November 17 2008 @ 10:44 AM EST
    Based on his assumptions, multiplication is patentable! Remember, it's just
    repeated addition:

    2 X 3 is just short hand for adding 2 to itself 3 times or 2+2+2.

    A lot of math is just a list of "lesser" instructions performed in a
    specific order - isn't that the definition of a process?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 10:48 AM EST
    609 (and counting) comments is too much for me to work through (sorry therefore
    if I repeat someone else's point), but it seems to me the whole paradigm for
    software patentability is wrong. Software is written in a LANGUAGE
    (mathematical (e.g., APL) or otherwise (COBOL)). As such, surely copyright is
    the more appropriate way to protect it. I can express a lot of trivial ideas in
    software, the same way innumberable authors have written the same lines of
    dialogue (how many ways can you say "Good Morning", after all), but
    copyright does not protect tiny granules of sentences, but rather the assemblage
    of a significant number of sentences into a recognizable work. Why wouldn't
    that work for software?

    [ Reply to This | # ]

    Interesting comment from G-20 meeting
    Authored by: Anonymous on Monday, November 17 2008 @ 10:58 AM EST

    seems appropriate:

    "Regulators must ensure that their actions support market discipline, avoid potentially adverse impacts on other countries, including regulatory arbitrage, and support competition, dynamism and innovation in the marketplace."

    http://online.wsj .com/article/SB122677642316131071.html

    [ Reply to This | # ]

    His Letters/Book Analogy
    Authored by: Anonymous on Monday, November 17 2008 @ 11:12 AM EST
    Guess what, Gene. Apparently books are only copyrightable. Not patentable.
    The analogy is bad and doesn't support your argument.

    [ Reply to This | # ]

    Embodied in a Physical Device
    Authored by: Anonymous on Monday, November 17 2008 @ 12:35 PM EST
    I was reading through and responding comments on Mr. Quinn's article. They seem to be hanging their hats on the fact that abstract ideas are patentable when they are "embodied in a physical device". I think the key to this debate to determine the precise meaning of the phrase "emodied in a physical device" and would invite everyone to think on this.

    Here is some of what I posted on Mr. Quinn's blog. Perhaps some attorneys, scientists, colleagues, or word smiths over here would care to comment on this aspect of the debate.

    Btw, from a lawyer's point of view what do you think is the significant difference, if any, between the term "embodied in a physical device" and the term "embodied in a device"?

    I have taken the liberty of looking up the individual words on dictionary.com and have listed them below.

    http://dictionary.reference.com/browse/physical
    phys⋅iY 01;cal -
    1. of or pertaining to the body: physical exercise.
    2. of or pertaining to that which is material: the physical universe; the physical sciences.
    3. noting or pertaining to the properties of matter and energy other than those peculiar to living matter.
    4. pertaining to the physical sciences, esp. physics.
    5. carnal; sexual: a physical attraction.
    6. tending to touch, hug, pat, etc.; physically demonstrative: a physical person.
    7.requiring, characterized by, or liking rough physical contact or strenuous physical activity: Football is a physical sport.

    If we can agree that definitions 1,5,6,7 aren't relevant then we are left with "pertaining to the physical universe, properties of matter and energy, and the physical sciences, especially physics".

    http://dictionary.reference.com/browse/device
    de⋅vice -
    1. a thing made for a particular purpose; an invention or contrivance, esp. a mechanical or electrical one.
    2. a plan or scheme for effecting a purpose.
    3. a crafty scheme; trick.
    4. a particular word pattern, figure of speech, combination of word sounds, etc., used in a literary work to evoke a desired effect or arouse a desired reaction in the reader: rhetorical devices.
    5. something elaborately or fancifully designed.
    6. a representation or design used as a heraldic charge or as an emblem, badge, trademark, or the like.
    7. a motto.
    8. Archaic. devising; invention.

    Now let's take a look at device. It appears to me that the only relevant definition is #1, "a thing made for a particular purpose, a contrivance especially a mechanical or electrical one."

    http://dictionary.reference.com/browse/embodied
    em·bod·ied, em·bod·y·ing, em·bod·ies -
    1. To give a bodily form to; incarnate.
    2. To represent in bodily or material form.
    3. To make part of a system or whole.

    http://en.wiktionary.org/wiki/embody
    embody -
    1. To represent in a physical form;
    2. To include or represent, especially as part of a cohesive whole

    http://en.wiktionary.org/wiki/embodiment
    embodiment -
    a physical entity typifying an abstraction

    Except for the first and second "bodily form" definitions all of the above seem to be relevant. Would it be fair to summarize by saying that there are three possibilities that are relevant?

    1. to give an abstraction a material form
    2. to make part of a system or cohesive whole
    3. 1 and 2

    With regard to patent law which if any of these would be the most correct interpretation? How would an attorney or judge see it?

    As an engineer here is how I would interpret "embodied in a physical device". In the very least the term embodied means to give material form to something that didn't previously have one. So then what is this something? One of the definitions above suggests that it is an abstraction, which is defined in the dictionary as an abstract or general idea.

    http://dictionary.reference.com/browse/abstraction
    abstraction -
    1.an abstract or general idea or term.

    Now "physical" would mean "pertains to the physical universe, mater, and/or energy" and a "device" is a contrivance made for a particular purpose as opposed to something made for general purposes. In the context of "physical device" the only useful way "pertains" could be interpreted is as something along the lines of "connected to", "affects", "transforms"

    So putting it all together "embodied in a physical device" would mean something like "to give an abstract idea a material form that has a particular purpose and that has an affect on the physical universe, matter, and/or energy."

    It seems to me that claiming that something is "embodied in a physical device" is an admission that that something is an abstract idea. So if software can be embodied in a physical device, (i.e. given material form) that would mean that it does not itself posses material form and is therefore an abstraction or an abstract idea.

    It also seems to me that a physical device is more than just a copy of something that is fixed in a tangible medium. According to the dictionary a device is ta manufactured thing, having a specific purpose. In everyday usage, that is any reasonable person, understands also that a device is something that is able to interact with the environment in some way. For example a photograph hanging on a wall would not be thought of as a device. Although it's made for a particular purpose it doesn't do anything.

    I understand that legal adversaries could argue over this last point particular if "device" was not preceded by the adjective "physical". I think the adjective "physical" explicitly requires some kind of interaction with the physical universe.

    So that all kind of brings us back to what you say we aren't discussing. Where do you agree and/or disagree with my analysis? I am certain that you have a different take and I would like to understand the reasoning behind your interpretation.

    Sorry for the long post but I sincerely would like to know how you or a judge would parse the phrase "embodied in a physical device" and the legal implications.

    Thanks
    Rick

    As stated in the above quote claiming that software is embodied in a physical device seems to be an admission that software is an abstract idea(s).

    Abstract ideas become patentable when "embodied in a physical device" so there is not much point in going on further about how software is abstract thought or mathematical algorithms ect, etc.

    What is needed now is focus on the idea of embodiment in a physical device and exactly what that means. I don't think merely copying something to a tangible medium is the same thing. Also dose the term physical device require interaction with the physical universe? Does the term device refer to a thing that has a specific purpose and preclude things that have a general purpose.

    I guess what I'm asking is this "can a general purpose device truly embody a unique abstract idea?". For example suppose I write a program that calculates an individual's income tax in such a way as to reduce every individual's tax obligation by 90%. The case is being made that when the program is loaded on to a computer and executed that the computer is a device that embodies an abstract idea that is my program and is thus patentable.

    However I would pose the question "For what purpose was the device made (i.e. the computer)?". It was made for the sole purpose of performing rudimentary mathematical operations in a sequential manner defined by an arbitrary list and displaying or storing the results of those operations.

    Now a list of operations is supplied to the device. It was still made for the same purpose and it still operates the same as it always has (usually ;( ). It wasn't suddenly remade because a list was supplied to it. How can a device possibly embody an abstract idea that wasn't known until well after the device was designed and manufactured. And if the device did somehow manage to embody such an abstract idea before anyone thought about it would that not constitute prior art?

    Anyway I think you all can see what I'm talking about. Please feel free to refine or critique these ideas. I am curious what others may think and how they would fare in a legal argument.

    Thanks

    Rick

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 12:51 PM EST
    Mr. Quinn appears to not understand what "software" truly is. When he
    says that software is not mathematics he does not understand that in the end all
    programs are eventually executed as a series of operations in Boolean algebra.
    Boolean algebra is of course a form of mathematics. It is not quite like 1+1=2
    but it is still math.

    Software is like a book that describes how to do something. So to patent
    software is to patent to a book.

    Suppose I write a book that describes how to rebuild a Toyota hybrid engine.
    This book's subject matter has not been written in a book before as it covers
    new technology. Can I patent this book? Can that patent be used to keep you
    from writing a book on rebuilding a Honda hybrid engine? Both books are a
    description of a series of steps to accomplish a task, rebuild a hybrid engine.

    Now suppose I have a versatile robot that can rebuild the engine. I write
    software that instructs this robot to rebuild the engine. Should that software
    be patented any more than the book for the human rebuilder? I would hope the
    answer is no.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: azzivar on Monday, November 17 2008 @ 01:01 PM EST
    Perhaps the most simple argument is this: I'm sure that in doing his job, Mr.
    Quinn goes through many processes to perform the duties and responsibilities of
    his business, such as securing clients, performing legal research and analyzing
    what merits a case may have or even to express to his clients their probability
    of winning a case. Would he like to pay another lawyer (or any other
    individual) who beat him to the patent office for any of those processes? I
    think not.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 01:14 PM EST
    the worst problem is copyright of software, and the problem is the time. I
    believe the length of time on software should be closer to 15 years, and
    software patents should expire after 10 years. Otherwise the field moves so
    rapidly, there is no benefit to society. (by the time the copyright / patents
    expire, there is no residual value).

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 01:22 PM EST
    Programming has several elements:
    - Architecture
    - Algorithm
    - Implementation details

    Of these, both the architecture and the implementation details seem to me to be
    copyrightable, but unpatentable. (Note well: I did not say that an
    architecture could be copyrighted so that nobody else could ever use a similar
    architecture.) The architecture is how the code is organized. There's no
    actual functionality there, so it's pretty hard to patent. The implementation
    details are too low-level to be patented; it's like patenting tightening screws
    as part of mechanical assembly.

    That leaves the algorithm. Should that be patentable? The problem here is that
    the algorithm, by itself, is just a series of steps. As others have pointed
    out, an algorithm can be carried out as a purely mental process, which is
    clearly unpatentable under current law. (I could actually accept the position
    that some breakthrough algorithms - LZW, for instance - should be patentable,
    but an algorithm by itself is not patentable subject matter under current law.)

    There are two remaining positions that are possible. The first is that
    algorithms by themselves should not be patentable, but the algorithm encoded in
    a computer program should be. The problem is that, given any reasonable
    description of the algorithm, implementing the program is obvious "to one
    ordinarily skilled in the art", so it isn't patentable. If anything were
    to be patentable, it would have to be the algorithm rather than the program.

    The second possible position is that the architecture isn't patentable, the
    algorithm isn't patentable, and the implementation details aren't patentable,
    but the combination is. This seems to me to be the most defensible possibility
    (the arrangement of non-patentable items may be patentable). But it still seems
    to me to fall short. Not every arrangement becomes patentable just because it
    is an arrangement; the arrangement has to do something that is patentable
    subject matter. Just modifying the arrangement of bits inside memory or on disk
    is not patentable subject matter. Start adding sensors and actuators so that it
    can interact with the real world, and software becomes part of something
    patentable. That still doesn't make the software patentable, but the larger
    machine is.

    MSS2

    [ Reply to This | # ]

    Other disciplines need to be allowed to enjoy the benefits of patents!!!
    Authored by: Jose on Monday, November 17 2008 @ 03:08 PM EST
    Please help us sell the virtues of patents to the following industries.

    [1] In an effort to promote law and reward innovation, I advocate that we empower those that think they are the very first to discover/invent a good approach to law with the right to prevent everyone else from piggy-backing. Sure, the majority of lawyers will lose many potential clients because of an inability to aggressively represent them in a growing number of scenarios. Sure, many lawyers will be sued by other law firms after successful trials which were won using techniques and approaches to which they didn't have a license. Sure, much investment in learning laws will be for naught as most discover that they can't proceed to the very end of the logic path in a legally licensed manner. Sure, in practice, a mockery will be made of "being legal" because most pirates lawyers will choose to think of their stomachs and families ahead of dotting the i's and crossing the t's. Sure, most of them contributed to the profession with a mind towards growth and betterment of it while the patent trolls worked feverishly to enclose them all in. ...but so what? Those other lawyers should have spent less time invested in their clients only to win money and then lose it and more time carving up their portion of the lawspere writing up the patents.

    [2] In an effort to promote science and reward innovation, I advocate that we empower those that think they are the very first to discover/invent a new piece of useful science with the right to prevent everyone else from piggy-backing. Sure, the trolls' "number of times referenced" count will drop dramatically and science will slowly but surely grind to a halt as these patents block off all possible ways of moving forward. Sure, most let the trolls piggy-back while the trolls didn't reciprocate, but so what? Those other scientists should have spent less time innovating and implementing and more time writing up the patents.

    Now here is where you dear reader can help. Please finish these off, add some more, or just improve any part.

    [3] In an effort to promote comedy and reward innovation, I advocate that we empower those that think they are the very first to discover/invent a creative and entertaining delivery of humor with the right to prevent everyone else from piggy-backing....

    [4] In an effort to promote healthy human interactions and role models and reward innovation, I advocate that we empower those that think they are the very first to discover/invent a healthy human interaction or role model to prevent everyone else from piggy-backing....

    Some points that may be useful if you decide to roll up your sleeves to look for human interactions to bless:

    • Does this field currently have a lack of inventors inventing?
    • Are inventions forthcoming or should we alter the free markets with government enforced monopolies?
    • Is it terribly costly to invent?
    • Does the profession/hobby depend on collaboration and standing on the shoulders of prior giants or not?
    • Are these monopolies likely to gum up the system in any (other) way?
    • Would the freedom to interact of very many be restricted/delayed if we dump in the monopolies?
    • Are there reasonable ways to make a buck on an "invention" outside the safety of a monopoly?

    Remember, we must "promote the progress of science and useful arts" and reward ingenuity. Please triple check your notes if you come to the conclusion that patent monopolies would not work for some or other field of endeavor.

    And if in doubt, go with the patent. Surely, there is probably not too much harm in giving out the patents.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 03:47 PM EST
    I'll tell you why software should not be patentable.

    Patents were supposed to benefit society. In an exchange for publication of an invention, the inventor would get a time limited monopoly on the invention. The publication was to create more inventions and increase the state of art.

    Then things went wrong. Patents are written in such a way that it is not fathomable to the practicioner in the art how an invention is supposed to work. The exchange doesn't work anymore. One Microsoft employee stated on his blog that as a software developer you shouldn't even try to find out what a patent is about, since he didn't even understand the claims in _his own_ patent once the lawyers were through with it.

    So now society is left with the limited monopoly in exchange for nothing. But things are worse: Patents become so vague that nobody knows what is patented, so everything infringes unwittingly on some patent. And the patent, instead of protecting the inventor, is used as a weapon against anyone. And the more vague the patent is, the better, because the purpose of a patent is not protection of an invention anymore, but blackmail.

    And now finally why software should not be patentable: Because for all we have seen, in software anything however banal and trivial is declared to be an invention, put into the most obscure words, and can be used for blackmail. Patent examiners look for prior art. They won't find it, because what is patented is so uninteresting that nobody has ever dared boring his readers by writing about it. So everything gets patented. Patents can get rejected in court once reason sets in, but that is a very expensive thing to do and doesn't reduce there usability for blackmail by much. So software patents are for blackmail, nothing else. There is no redeeming use. Everyone except patent lawyers and blackmailers will be happier without software patents.

    [ Reply to This | # ]

    Why Patents can not Apply to Software
    Authored by: BitOBear on Monday, November 17 2008 @ 04:01 PM EST
    NOTE: I will re-coin a few words here, the exact meaning should be obvious in
    the descriptive parts.

    (1) Covariance.

    A patent is supposed to describe the invention, and the invention covered must,
    by definition, follow the patent.

    But software (source) is, by definition, the expression of how the process is to
    be performed in the exact level of specificity necessary to uniquely implement
    the process.

    It therefore follows that if the patent claims cannot be run through a compiler,
    they describe something more theoretical and more general than a specific
    invention. Now this position is extreme, in that a patent for a particular cam
    describes the cams funtion, but not its size, weight, material, etc. But it is
    not completely beyond the pale that the patent is less specific than the actual
    model. (thin again, didn't they used to have to supply a fully working model of
    a device to patent it?)

    So anyway, the patent is broader than the implementation.

    But the implementation isn't fixed to the details of the patent. Software is
    notoriously changeable, with whole-scale replacement of geometries happening
    during development and again during support. Loops are replaced by recursion or
    vice versa; arrays replace by databases or vice versa; procedures replaced by
    independent tasks or vice versa. In short, the levers are often replaced by
    cams, and the shafts are often replaced by slots.

    Now in a real-world invention, the the inventor invents and patents a lever on a
    shaft, and delivers a cam in a grove, it would be clear that the cam-in-grove
    implementation is not covered by the lever-on-shaft patent.

    So if we start with a prototype piece of software and a "description of the
    invention" sent through the patent system, we are certain that the patent
    lawyers will adjust the language for patentability even as the programmers are
    changing the code.

    The end result of both the patent process and the software process are
    guaranteed to be "covariant" to the process described in the patent.
    If you find this hard to believe look how hard it is to keep in-the-code
    comments consistent with the source code _right_ _there_ it is supposed to
    define.

    Any patent with claims that cover the initial design and the final
    implementation of any software must be so over-broad as to describe any number
    of similar (and probably radically dissimilar) unique processes.

    (2) Aspecificity. (<== new-word warning 8-)

    Any one patent claim, which is limited to a sentence or four, can reasonably be
    expected to cover a similar unit of work in the invention described.

    That is, a single patent claim will describe, say, a lever with particular
    features. The next claim will cover the shaft. With the primary (fist) claim
    being the combination of the unique lever on the unique shaft. In the physical
    world this is reasonable. That is, the rule is pretty much "one component
    or one assembly is one claim".

    In software the reasonable size of "a component" is "one
    procedure" and "one assembly" is "one class or
    module".

    But if you read the average software patent "an invention" made up of
    dozens or hundreds of software components and assemblies is described in a scant
    handful of claims.

    This means that when a skilled professional in the field reads a software patent
    what he sees lacks specificity to any degree. That is "a system comprising
    a database and terminal such that..." has the same meaning of scope as
    "a city comprised of buildings and roads".

    (3) Aspecificity revisited...

    Most of the words used in the software arts are deliberately vague and
    reasonably bereft of specific legal meaning. This isn't to obfuscate the field,
    its in recognition of the facts of the field. Its _necessary_ to the art to be
    able to talk in "delimited generalities".

    Consider "Big O" [e.g. http://en.wikipedia.org/wiki/Big_O_notation ]
    which is a way to discuss computational magnitude without consideration of
    "how difficult" any one pass through the computation might be. We
    (software professionals) needed, and so invented, a notation and conceptual set
    that covers this domain of information. But if I come to you and ask you to
    chose between two routines, one of O(n) is n times long(n), and another of n
    times log(n) over n squared you can make a decision which to pursue without
    having to see a bunch of code.

    So the above is _obvious_ as something that has no legal meaning (we hope) but
    lots of every-day seeming words used in software have no concrete bounds that
    would be appropriate to a legal patent-worthy and specific definition. Don't
    beleive me? Consider:

    WAN, technically W. A. N. for Wide Area Network, which lives in opposition to
    LAN (Local Area Network) and a Backbone. The only legal definition of the
    difference between LAN and WAN is your definition of "wide" with
    respect to "area" and so a WAN boundary might be "room"
    "floor" "building" or "campus".

    Database, which makes most non-computer-scientist people think of what we call a
    "database management package" and the associated storage it manages.
    In the _art_, however, any collection of data is a database. This includes
    things like a "word processing file" or a "flat file" or all
    the arrays kept in memory in a bunch of coordinated computers. That is, this
    sounds like a word with a particular meaning that, in the art, has no particular
    meaning what so ever.

    Heck what is "a computer"? If I have two cpu's in a
    non-uniform-memory-architecture (NUMA) machine, is that one or two comptuers?
    What if I can unplug one of the numa nodes and move it into another rack with a
    different "other CPU" while retaining its contents? What about four
    separate boxes connected by a private LAN running cluster software? Now I have
    four computers acting as one computer. This isn't a conflicting idea in the art,
    but it is legally meaningless to use the phrase "a computer".

    If I am running an X-Server (which is the what the application (client) uses to
    display things to the user, because the "service" being provided is a
    keyboard, pointer(mouse) and screen, and the "client" is the program
    that wants to display the information etc.) So there can be an application
    server, and a display server with a client application in between them, and all
    this can be running on from one to five cpus in one to three enclosures using
    zero to two networks _before_ you have even decided to get "complex".
    Leading us to realize that "client" and "server" are
    completely dependent on context. That is, there is no such thing as "a
    server", there are only "a (something) server". Without the
    spesific defined protocol and service calling a machine a server has no meaning
    or technical merrit.

    The list goes on an on od infinitum. I have been through the exercise in real
    life.

    So "A system comprising a server with a dataase and a client" isn't
    devoid of meaning, but in comptuer technology its the most meager of hints. I
    have never yet encountered a software patent who's primary claim(s) contained
    sufficient detail for me to actually be able to (re)produce "the invention
    described" because it was like reading the technical equivalent asking a
    ship yard to build a ship from plans that just say "what is described is a
    big floaty thing that holds people and can be used to move them from place to
    place, composed of a floaty part and a means of propulsion." All the words
    have meaning, but in those combinations they don't have specific meaning. Is
    that Tom Sauyer's raft or the Queen Elizibeth II?

    So software patents don't describe "an invention" they describe an
    area of technical pursuit

    (4) Encompassment.

    Every software patent I have read proports to invent nothing but a purpose.

    Consider that the average distributed system patent talks about servers and
    clients and a network etc, but the patents don't pretend to be the invention of
    any of those things. That is, they don't "invent" the database, the
    computer, the network, the protocol, the client, the web browser etc. They just
    proport to invent combining those elements, unchanged, for a particular
    purpose.

    This encompassment is already struck down by the Supreme Court. The relevant
    case (citation needed) is the one about putting a conveyor belt next to a cash
    register. Since neither device had changed its mode of operation, mere
    aggregation of the two was not patentable.

    So look at the imfamous "one click shopping" patent. Nothing was
    invented. That is there was already servers and browsers and buttons and on-line
    shopping. We already knew that a client could establish standing means for
    payment on an account. We all knew that a client could establish a standing
    means and destination for shipping goods. We already had credit cards and web
    forms. And yet we end up with the same "put this on my tab" one-action
    purchase to be executed between previously, mutually known vendor and client,
    publicly "invented" by Amazon as if it were "novel". The
    only reason that everybody didn't do this all the time before that is most
    businesses cannot afford to soak up the cost of mis-clicks. (technically Amazon
    can't either, look at their profitability) Lets face it, removing "are you
    sure?" from a process isn't much of an invention since someone had to add
    the "are you sure?" step originally.

    but that seems obvious, right?

    Well what about the DesqVeiw patent. One of the first computer software related
    patents. It patented using the memory virtualization features of the 286/386 to
    intercept writes to video memory (common on dos programs) to a non-video buffer,
    so that windows could be composted onto the screen from various programs. But
    DesqView didn't _invent_ the virtual memory circuitry, or video access or
    anything, they just chose to divert a particular block of memory for a
    particular purpose. Intel already ahd the patent on the virtualizaiton of that
    memory, it was part of the CPU. Heck it was a major selling feature. DwesqView
    just added "for displaying windows on screen". Not a statement of
    invention, just a statement of purpose.

    AT&T patented "backing store" in 1985 (or so) which was the
    technique of reading what was on the screen before popping up a window, so that
    the screen contents could be restored when the window was withdrawn. I'd seen
    junior high students "backing store" screen contents for popups on a
    TRS-80 in 1978 or so. Giving someone a patent for the use of memory to remember
    particular memories is just ridiculous.

    When analyzed, software patents are written to encompass a volume of purposes.
    The companies are laying claim to things like "using more than zero
    computers on a network to sell tickets" or "play video" or who
    knows what else.

    They are grabbing market segments with vague claims to own the idea of using
    existing techniques to preform ill-defiend tasks.

    In short they do nothing but attempt to carve up markets for tasks.

    The act of trying to encompass a purpose can not, and should not, be patented.

    Which is something else we've seen before (movies in teh early 1900's,
    stationers guilds, etc od-nausium).

    But so far nothing novel nor promoting of the useful arts and sciences yet. All
    _those_ patents were issued to the people who invented the CPUs and the Memory
    chips, and the various real articles which computers are comprised of.

    Having those computers perform a subset of their designed operation for a
    particular purpose is not patentable.

    If it is, I claim a patent of using a sewing machine to embroider flowers on a
    tee-shirt "to make people happy." Yea, I don't own the sewing machine,
    nor the auto-embroidery, nor did I invent the tee-shirt or thread, but nobody
    thought of making people happy before so I ge.. wait... using existing
    technology in accordance with its instructions isn't novel or patentable... I'll
    just have to add "using a computer on the internet" and I bet the
    patent will issue.

    What means nothing can be twisted to seem to mean anything. Just look at the
    lawsuits, threats, and dissimilar (wholly unique) implementations of stuff that
    already fall afoul of the issued software patents.

    [ Reply to This | # ]

    Summary of the debate so far
    Authored by: barbacana on Monday, November 17 2008 @ 04:22 PM EST

    The Free Software community:

    "Here are references to factual studies (some by economists) concluding that software patents are damaging to innovation, and hence to the US economy. The only people who would benefit from software patents would be patent attorneys."

    Gene Quinn, patent attorney:

    "I don't see any problem with that!"


    I think that anyone hoping to persuade Gene Quinn of anything is suffering from near-terminal naivety.

    [ Reply to This | # ]

    Software is nothing but mathematics
    Authored by: JJSg on Monday, November 17 2008 @ 04:54 PM EST
    I have a Bachelor's in Computer Science. Over the past 20 years, I have coded
    in assembler, C, and higher level languages such as GPSS (General Purpose
    Simulation System). As part of the course work for my degree, I had to take a
    year long mathematics course that covered the areas of mathematics that relate
    specifically to computer science and programming.

    The first, most obvious, mathematical discipline used in programming is Boolean
    Algebra or Logic. The most basic functionality of the CPU is built from simple
    AND, OR, XOR, and NOT gates. The computer has no awareness of a concept such as
    1 + 1 = 2. The computer only knows that binary 0 AND binary 0 results in binary
    0. Likewise, b0 AND b1 -> b0, b1 AND b0 -> b0, and b1 AND b1 -> b1.
    From these simple gates, all code is built using the rules of Logic.

    Once the basic instructions are functional, they can be combined according to an
    algorithm. This is mathematically defined as a sequence of finite instructions
    for completing a task which will, when given an initial state, proceed through a
    well-defined series of successive states, eventually terminating in an
    end-state.

    Logic is also incorporated into assembler languages, in the form of branch on
    condition instructions. While much of the rest of assembler is data movement,
    between memory locations and registers, modern CPUs have some more complex
    instructions that are essentially calculators for speeding up frequently used
    algorithms, such as checksum. But these are just well-known mathematical
    algorithms implemented in hardware.

    In higher level languages, Logic is also featured in the conditional statements,
    such as if and while. However, at this level, other mathematical disciplines,
    such as set theory, graph theory, and modular arithmetic, are frequently used by
    programmers. In graphics processing, Matrix Algebra is heavily used. The Fast
    Fourier Transform algorithms have made extremely complex data and pattern
    analysis possible.

    The granddaddy algorithm of them all, sort, has been mathematically analyzed
    nearly to death. The variations on the sort algorithm each have a function
    which determines the upper limit on the number of iterations required to sort a
    given set of values.

    This is just a partial list of the mathematics required (as opposed to being
    merely useful) for programs to function. The fact that the mathematical nature
    of code has been simplified to allow a lay person (even a lawyer ;-) to write
    useful programs is strong evidence that no coding is accomplished without
    building on a vast body of mathematical prior art.

    Later . . . Jim

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 05:02 PM EST
    One of the problems is that people write their own programs.

    1) If you build a car and one kind of bolt used in the car is patented, you
    probably bought the bolt from a bolt supplier rather than making it yourself.
    The bolt manufacturer includes the licensing fee in the cost of the bolt. This
    forces the fee to be reasonable; the patent holder can't demand 1% of the price
    of the car, since that fee would drastically outweigh the cost of a bolt.

    2) Since the carmaker didn't make the bolts himself, he doesn't have to worry
    about their patent status. The bolt patent holder can't surprise the carmaker
    by suddenly insisting that his bolts are patented; he has to complain to the
    boltmaker instead. Software writers make a lot of little pieces by themselves.

    3) Since the car is made by a large company, the company can afford to hire
    patent lawyers. A single person writing software by himself has no access to
    patent lawyers.

    And then of course is the problem that a huge number of software patents patent
    things that are obvious in the everyday sense.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 05:09 PM EST
    OK, I'll give it a try. I am a surgeon by profession, but I have also been a
    pretty serious programmer for over fifteen years and maintain a couple of
    well-known OSS projects (I strongly considered a computer science career before
    going to medical school).

    The reason I believe software should not be patentable is that software is
    nothing more than writing, and that copyright provides the appropriate
    protection from plagiarism. fwiw, I actually agree that the "software is
    just math" argument is not very compelling.

    I think software has more in common with other types of writing than it does
    with inventions, the traditional realm of patents. It would seem very unnatural
    to grant patents on things like the five-paragraph expository theme, a limerick,
    a sonnet, or a type of plot line for a novel, but that is just what software
    patents do. For example, J.K. Rowling can legitimately prevent other authors
    from publishing novels about Harry Potter and Hogwarts (trademark and copyright
    law), but she should not be able to stop publication of all novels involving
    training of young wizards (patent law). The latter is indeed a close parallel
    to the effects of software patents on programmers, except that there are
    thousands of software patents, and they are both overly broad and inconsistently
    enforced.

    You may say that patents are necessary, because it is trivial for a competitor
    to work around copyright by re-implementing code as needed. Well, so what.
    That is what programming is - writing code as needed. Patents are supposed to
    promote bringing products to market, not to guarantee profitability.
    Competition exists.

    The reason that software patents exist is not that they are fair, or just, or
    anything like that. They exist because companies have been allowed to get them,
    and they can offer a cost-effective way of preventing competition.

    The way software patents are actually used is very revealing. We normally think
    of patents as a way to keep others from "ripping off" our ideas. The
    implicit assumption is that the patent protects a brilliant, non-obvious central
    concept, and that by "ripping off" that concept, a competing product
    can be trivially created. Well, software doesn't work that way. There are
    hardly any brilliant central concepts that perhaps deserve patent protection.
    The whole thing is about details, the prolonged and tedious implementation,
    testing, and refinement that finally results in a program that people will want
    to use. Patents simply try to shut off the types of code that others can
    *independently* write. The result is that it is not possible to write any
    non-trivial program without numerous patents being arguably infringed. It is
    somewhat Orwellian - just like in 1984, where the government passes laws that
    cannot be obeyed, so that anyone can be arrested at any time. Here, the
    counterpart is that large software companies try to obtain patents that cover
    all software, so that any competitor can be sued at any time.

    Really, most of our population and most of our lawmakers don't understand any of
    this. As a result, bad practices like software patents become widespread, and
    they go on until enough people realize they are a bad idea and get the laws
    changed. You probably are appalled that the average person cannot explain the
    difference between copyright and patent. I am similarly appalled that the
    average person thinks of a computer program as a "thing", rather than
    as specialized writing.

    David Bruce

    [ Reply to This | # ]

    Math and functionality
    Authored by: Anonymous on Monday, November 17 2008 @ 05:10 PM EST
    Mr. Quinn agrees that math isn't patentable. But at the same time he wants to
    patent the functionality of a program, not just the code.

    So Ted writes a piece of code to switch which player is up in a two player
    game...

    If (Current_Player = Player_A)
    then Current_Player = Player_B
    Else
    If (Current_Player = Player_B)
    then Current_Player = Player_A
    End

    Well, it still looks a bit like math to me, but for sake of argument I'll say
    that's pretty loose for math, call it a process instead, and grant him a patent
    on it. (And we're ignoring obvious for the moment)

    But if we consider the patent to be on the functionality, what happens when
    George writes the following...

    Current_Player = (Current_Player = Player_A)+1

    Hmmmm, that's a pure boolean equation - math all the way. But functionally, it
    does exactly the same thing, and therefore infringes Ted's patent.

    So George would be denied a patent on his code because it's pure math, while at
    the same time, he is forced to pay Ted for infringment because his code
    accomplishes the same functionality, EVEN THOUGH GEORGE'S CODE IS NOTHING LIKE
    TED'S, AND IS MORE EFFICIENT!

    That's your harm, and why copyrights are the proper answer for software.

    [ Reply to This | # ]

    Not Mathematical?
    Authored by: Anonymous on Monday, November 17 2008 @ 05:36 PM EST
    "Software is not a mathematical equation, nor is it a mathematical
    language. How anyone who writes software or professes to understand software
    could argue to the contrary is beyond me. Do people who write software actually
    think they are sitting down and writing mathematical equations and stringing
    them together? It is absurd to have such a narrow view of software."

    I am sure this has been done to death by others but -

    Before you had "programmers" and "computer science degrees"
    there were mathematicians with mathematics degrees. Programming languages
    abstracted the mathematics somewhat so that those of us who didn't have mad
    skills in the opaque world of pure mathematics could also use computers.

    [ Reply to This | # ]

    I (sort of) agree with him.
    Authored by: Filias Cupio on Monday, November 17 2008 @ 05:56 PM EST
    I kind of agree. In a few cases (such as the RSA public key cyrptography
    algorithm) the algorithm is so new and different it warrants patent protection.

    I see the real problem as *bad* software patents. If, presented with the
    problem, at least 10% of programmers would come up with the solution being
    patented, then the solution is obvious enough that it should not get a patent -
    but that isn't what the current system is doing.

    Any system that allows software patents will let some bad ones through -
    obviousness is hard to judge. For me, the question is, is the damage done by the
    "bad" patents which get through outweighed by the benefits of the
    "good" patents? With the system as it is, the answer is a resounding
    "no", but maybe the system could be fixed.

    (I am a non-lawyer scientist/programmer.)

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: dwhitbeck on Monday, November 17 2008 @ 06:29 PM EST
    To quote Quinn, "Calling software a mathematical language is like calling
    the English language a letter language. After all, every word is made of
    letters, so all any language is is just letters. This is absurd. You put letters
    together to form words, then sentences, then paragraphs. So a book is not just a
    combination of letters. We use letters to form the words that lead to concepts
    and make it possible to convey meaning in the form of communicating what is in
    the mind of the author to the minds of the readers."

    Yes, but we don't patent books do we? I don't believe we get patents on plots or
    phrases either. Should I be able to get a patent on "It was a dark and
    stormy night?" Maybe the owner of the patent could sue Snoopy.

    [ Reply to This | # ]

    A software product is an implementation of a single algorithm
    Authored by: Jose on Monday, November 17 2008 @ 06:35 PM EST
    Here is one definition of "algorithm" with which most of us would
    agree.
    >> A step-by-step problem-solving procedure, especially an established,
    recursive computational procedure for solving a problem in a finite number of
    steps. [ http://www.answers.com/algorithm ]

    Every software program is an implementation of a single intricate algorithm.

    Generally, such an algorithm would be expressed in a suitable language and
    processed with software tools so that something like a PC or some digital gadget
    will behave exactly according to that algorithm (from that point onward or until
    the instructions are changed again).

    [ Reply to This | # ]

    Math is to software ...
    Authored by: Anonymous on Monday, November 17 2008 @ 06:38 PM EST
    Math is to software ...

    Mathematics (arithmetic and logic) is to software as written language (leters,
    words, sentences and paragraphs) is to a novel.

    Mathematics is to software as notes are to music (a song or an opera).

    Even though an opera is more than a mere assembly of notes, and a novel is more
    than a mere assembly of words and sentences, nevertheless one cannot patent a
    novel, nor can one patent an opera.

    One can copyright an opera or a novel, sure, but not patent.

    This means that it is not OK for someone else to write a new song about an
    "achey breaky heart", but there is nothing at all wrong with someone
    writing a new song about a "stolen, broken and aching heart". The fact
    that these songs convey exactly the same message is irrelevant, the second song
    is clearly not a copy of the first, and hence it does not break copyright law.
    People write songs about broken and aching hearts all the time. Hence one cannot
    have a patent covering "songs about aching and broken hearts". There
    is only copyright, which prevents literal (ie word for word) copying of the
    stanzas, phrases an lyrics of the original.

    Remember also, as words and notes are for novels and songs, so are arithmetic
    and logic to software programs.

    The crunch question then becomes this: Since one cannot patent a song or a
    novel, why on earth should one be able to patent a software program?

    [ Reply to This | # ]

    What the harm is
    Authored by: Anonymous on Monday, November 17 2008 @ 06:47 PM EST
    Software should not be patentable beause software patents are harmful. Speaking
    as a professional software engineer, I can tell you that there simply is no
    upside: software patents actively hinder the development of science and the
    useful arts, and no party is immune to these harmful effects (except, arguably,
    pure patent trolls).

    The problem is that software patents are economically unworkable. Anyone
    writing a program of commercially significant size and function is likely to
    violate multiple existing patents, simply in the course of solving their own
    problems. Even the time necessary to search the patent archives in a sincere
    effort to comply with patent law would slow development to such a crawl as to be
    completely impractical; once found, the administrative effort alone would make
    licensing all such patents economically unfeasible -- never mind the actual
    license fees.

    In practice, of course, no developer -- proprietary or otherwise -- is foolish
    enough to do this; instead, they ignore patent law and write software anyway.
    This mitigates the harm that software patents do -- to the extent that patent
    law is unenforcable and can be ignored, the software industry can still be
    productive.

    Unfortunately, this is not always the case: in those rare instances where a
    software patent covers some novel, substantive algorithm, and where its use
    cannot be disguised as a purely internal mechanism, the practical result is to
    greatly hinder its use. The term of art for such algorithms is
    "encumbered", and developers avoid their use like the plague. It is
    true that open source is particularly vulnerable due to its transparency and its
    economics, but even for proprietary developers, the transaction costs alone are
    a primary inhibiting factor.

    Ultimately, software patents are harmful because they are a bad match for the
    economics of software development, which are a consequence of the nature of
    software itself. If algorithms were like chemical engineering, where
    development of a single process takes billions in capital and thousands of
    man-years in labor, then patents would be appropriate. However, they are not:
    software development moves extremely fast, takes minimal capital, and uses
    hundreds of different processes.

    As a consequence, better "weeding out" of trivial software patents
    will not help. Better enforcement of software patents would be catastrophic.
    The whole idea of software patents is hopelessly broken. The only useful thing
    to do is revert the scope of US patent enforcement to its historical norm and
    exclude software from it.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: minkwe on Monday, November 17 2008 @ 07:33 PM EST
    Question for Gene Quinn,

    Why not Book patents? Or story-line Patents? Since a book is not just the
    letters.

    ---
    "Corporate views on IP law might be described as similar to a 2-year-old's
    concept of who gets to play with all the toys regardless of who brought them" --
    PJ

    [ Reply to This | # ]

    Computer Languages as Mathematical Languages
    Authored by: Anonymous on Monday, November 17 2008 @ 08:03 PM EST
    It would definitely be interesting if patent attorneys took a second and scoped
    out what is happening in cutting edge mathematical scholarly work associated
    with formal proofing. There are several specific examples of computer languages
    being expressly designed as formal mathematical languages in order to do
    traditional scholarly mathematics...to prove theorems.

    This is a very good read:
    http://www.eurekalert.org/pub_releases/2008-11/ams-pbc110608.php

    "Only in simple cases can one feed a statement to a computer proof
    assistant and expect it to hand over a proof. Rather, the mathematician has to
    know how to prove the statement; the proof then is greatly expanded into the
    special syntax of formal proof, with every step spelled out, and it is this
    formal proof that the computer checks. It is also possible to let computers
    loose to explore mathematics on their own, and in some cases they have come up
    with interesting conjectures that went unnoticed by mathematicians. We may be
    close to seeing how computers, rather than humans, would do mathematics.

    And for a more concrete example look at ACL2:
    http://www.cs.utexas.edu/users/moore/acl2/

    which is used in this paper:
    http://www.springerlink.com/content/ydygr1el79p2pg75/


    Formal mathematics languages which are expressed as a software language do
    exist. These software languages are in fact used to understand and prove the
    existence of complicated mathematical concepts.

    I think it would be an interesting challenge to mathematical scholars in the
    audience to formally prove that all software languages which are Turing complete
    are equivalent in their ability to be used as formal mathematical proofing
    systems.
    http://en.wikipedia.org/wiki/Turing_complete

    Okay maybe that's not actually a challenge. How about this instead. Be able to
    prove that in a language that patent attorney's understand.

    [ Reply to This | # ]

    Can sheet music be patented?
    Authored by: Anonymous on Monday, November 17 2008 @ 08:28 PM EST
    There's not a lot of difference between sheet music and software on a conceptual
    level. One tells a band what to do, another tells a computer what to do. If
    you can patent software, you ought to be able to patent sheet music, especially
    when computers can play that music directly (as could player pianos).

    And algorithms (which he appears to think are "processes" that are not
    a part of math) came from mathematics to computers, not the other way around.
    Algorithms have always been a part of mathematics. Anyone who says otherwise is
    badly misinformed. They're even taught at the level of geometry, which I took
    back in high school, so I'm not sure how one can miss that fact if they had a
    rigorous education.

    Frankly, the whole attempt at a distinction is due to fuzzy thinking. Computer
    science is simply a branch of mathematics that uses computers.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: DanielBerinson on Monday, November 17 2008 @ 09:05 PM EST
    Hi Gene,

    I draw your attention to On the Interplay Between Mathematics and Programming, one of many articles penned by one of the illustrious founders of modern computer science, E. W. Dijkstra.(*)

    Dijkstra says:

    As I have once put it "Programming is one of the hardest branches of applied mathematics because it is also one of the hardest branches of engineering, and vice versa". Why the programming task has such a strong mathematical flavour is something I shall indicate later.

    After some solid reasoning for which he is justifiably famed, Dijkstra states:

    So much for the care needed to keep the arguments manageable: we can summarize it by stating that in programming mathematical elegance is not a dispensable luxury, but a matter of life and death.

    Dijkstra remarks that:

    The programmer applies mathematical techniques in an environment with an unprecedented potential for complication; this circumstance makes him methodologically very, very conscious of the steps he takes, the notations he introduces etc.

    Not making any distinction between mathematician and programmerr, he envelopes them under the same cloak:

    Much more than the average mathematician he is explicitly concerned with the effectiveness of this argument, much more than the average mathematician he is consciously concerned with the mathematical elegance of his argument.

    As is reasonably obvious to an experienced programmer or to a reasonably objective observer:

    He simply has to, if he refuses to be drowned in unmastered complexity.
    The notion is reinforced by the Wikipedia entry on programming which says, "The process of writing source code requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms and formal logic," of which algorithms and formal logic are essentially mathematical in nature.

    You almost makes this argument for yourself while struggling to refute it, "You don't tell the computer that 1 + 1 = 2, you explain to the computer how to process information so that 1 + 1 will consistently and predicably equal 2." Perhaps this is what was really meant by that old cartoon with computers in the classroom looking up at the teacher. :-)

    Regards,
    Daniel

    [ Reply to This | # ]

    standing
    Authored by: Anonymous on Monday, November 17 2008 @ 10:10 PM EST
    How anyone who writes software or professes to understand software could argue to the contrary is beyond me.
    To answer your real insinuation, why we shouldn't leave it up to the lawyers: How software is treated by law affects me, therefore I deserve a say regardless of whether or not I am a patent lawyer. Rather more so than a patent lawyer, since it is my field of expertise at issue.

    And what I say is that patents on software actively hinder my ability to perform my basic job function. I, like the rest of the software industry, innovated just fine under the copyright regime before patents were introduced. Since then, patents have not helped, but instead have hindered.

    I can reason just fine from basic principles. Both pragmatically and constitutionally, software patents much stop.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 17 2008 @ 10:57 PM EST
    Every program can be described by a (suitably complex) lambda calculus.
    Therefore, every program is equivalent to a mathematical equation.

    The man should stick to law. He knows very little about software.

    [ Reply to This | # ]

    The legal implications of the Church-Turing thesis: no bright lines
    Authored by: Anonymous on Tuesday, November 18 2008 @ 12:17 AM EST

    I work as a physicist, computer programmer, and applied mathematician, and I studied the theory of computation as an undergraduate. So I am qualified to comment on the question of whether (or to what extent) computer programs are mathematics. But this ground has been well covered by the comments above. What I am going to comment on instead is the possible implications for the legal system of the theory of computation - specifically for the formulation of tests for patentability. Since my only special knowledge of the law comes from spending too much time reading Groklaw, I am definitely not qualified to talk about this, but no one else seems to have covered this angle, and I suspect few lawyers know or understand the relevant math, so I am going to go ahead anyway. This is done with the attitude of putting an idea out where it might trigger thought or be taken further by someone with more knowledge of the law than me. Before I get to that though, I am going to provide some background by going through the mathematics of computation and the practicalities of computer programming, which makes this a long post and repeats a lot of what was said above. Please bear with me.

    First I am going to describe some of the conclusions of computation theory in words. This is sloppy and ambiguous and may lead to misinterpretation - anyone interested in this subject who feels they could learn and understand the math should do so as it is much clearer. I would not describe it as difficult, as mathematics goes. Turing's papers in particular are very readable. The wikipedia article on the Church-Turing thesis gives lots of references.

    What the Church-Turing thesis says is that for any mathematical function that could, in principle, be calculated by some mechanical process, it is possible to design an abstract machine made up of simple parts arranged in a formalised way (a Turing machine) which does the calculation. This is Turing's formulation: in Church's formulation the lambda calculus plays a similar role to the Turing machine. The Turing machine is a mathematical analogue for a special purpose computer. Going further, it is possible to come up with a Turing machine that takes the formal definition of any other Turing machine (suitably coded) and calculates the same function as the encoded machine. This universal Turing machine (or just universal machine) is a mathematical analogue for a general purpose computer. The encoding of the original Turing machine is a mathematical analogue of a computer program. The claim is that a universal machine can calculate anything that can possibly be calculated. These universal Turing machines are not complicated - the simplest could be fully described on the back of a postcard, a more reasonable version would fit on a single page of ordinary paper. The surprise here was (and is) the universality of computation - nearly anything that can be said to compute could (in principle) compute everything that can be computed.

    Next I am going to talk about how this might apply to the real world of hardware, computer programs, and computer programmers. All applied mathematics is a simplified model of reality. Two ways of assessing how good the model is are checking against experience, and examining the analogies between mathematical and real world objects to see how close they are. The Church-Turing thesis is a piece of mathematics describing transformations and equivalencies between one set of mathematical objects (general mathematical functions) and another (Turing machines or lambda functions). It is a thesis rather than a theorem because the notion of 'computable' functions that it applies to is difficult to tie down mathematically. But everyone agrees that the computable functions are a large and useful set, even if they cannot be defined exactly.

    The concept of a general mathematical function covers a lot more ground than Gene Quinn seems to think it does (though in fairness he talks about equations not functions). Roughly speaking anything where the inputs and outputs are formally described and the same input leads to the same output is fully analogous to a mathematical function. Experience shows computer programmers and system analysts spend a lot of time (more than they would like) formally describing inputs and outputs - computer languages are formal languages so the inputs and outputs have to be described formally before the program will compile or run. Experience also shows that computer programs in practice do exactly the same thing in (exactly) the same circumstances - where they do not the problem is usually traceable to an unplanned input of some type (such as an uninitialized or twice allocated memory location). Based on this, my view is that a general mathematical function is a very good analogy for the sorts of problems solved by computers and computer programs.

    General purpose computers are closely related to the mathematically ideal universal machines. By assuming any particular general purpose computer is performing exactly to its claimed specifications and that memory and time are unlimited you get a slightly idealised machine that is provably equivalent to a universal Turing machine. In practice computer hardware is very reliable - in 28 years of computer programming I have encountered only two instances of 'bugs' which I was able to trace to a hardware fault. Also in practice available memory and computer power/time is usually adequate to the task at hand. I would say that the analogy between a modern general purpose computer and a universal Turing machine is near perfect - as good as that between money and numbers for example. You might not have as much computer time as you would like (just as you might not have as much money as you would like), but that does not mean that a universal machine is a bad model for your computer (or that numbers and arithmetic are a bad way of doing your accounts).

    The last part of the mathematical analogy, between encoded Turing machines and computer programs, breaks down quite badly, but does so in an interesting and revealing way. Computer programs, as pointed out in many of the comments above, do more that simply program the machine. A computer language defines a virtual machine (also a universal machine in the mathematical sense, but not implemented in hardware) which is much easier for a human being to deal with than the real physical machine. A programmer then writes a program designed to both get this virtual machine to do something useful and to communicate the meaning and intent of the program to a human reader (another programmer, or him/her self at a later date), allowing the program to be de-bugged and later modified, and be incorporated into a larger program or system. All computer languages are designed to facilitate this. This human communication side of the program is not covered by the mathematical model, but experience shows it to be an important part of what a programmer does, arguably more important than the mechanical or algorithmic part of programming. This has been covered extensively in the comments above, but I will give some quick examples. The free/open source method of producing software, which is built around a community and emphasises communication between programmers, continues to be highly successful despite predictions to the contrary. The proprietary method of producing and selling software protects the source code as a trade secret while releasing the object code widely. Whatever is in the source code but not in the object code (i.e. the secret being protected) has nothing to do with driving the hardware or producing any technical effect, yet has great economic value to the company because without it the program could not be fixed, modified, or extended. Computer science courses at universities emphasise structured programming, modular and object oriented design, software engineering, comments and documentation - all assists for human understanding of programs and communication between programmers rather than directly getting the program to do something. Algorithms and data structures are also taught, but make up a smaller part of the typical course.

    But what of the part of a computer program that does instruct the virtual machine, and is translated by the compiler or interpreter (and perhaps through other steps) until it becomes the instructions followed by the hardware and something useful happens? This mechanical aspect of the computer program is directly analogous to the encoded Turing machine in the mathematical model. It has to be because the hardware and the virtual machines built on top of it are so close to universal Turing machines.

    In conclusion then, the aspect of a software and hardware system that has a practical or useful effect seems to be linked by very tight analogies to the mathematics of the Church-Turing thesis, suggesting that the conclusions of Church-Turing are likely to apply to this aspect of computer programming. But this may well not be the part of a computer programming that requires the largest part of a programmers time, training, or experience, or the part of a computer program with the largest economic value.

    Finally, on to my tentative ideas on the implications of all this for the legal system, based on my shaky legal knowledge gleaned from Groklaw. It seems to me that the human communication aspect of programming is covered and protected by copyright, human-to-human communication being the sort of thing that copyright has traditionally (and successfully) been used for. While the mechanical or algorithmic aspect of programming, that has the useful effect and might be regarded as a tool rather than as speech, is the part that is arguably protectable by a patent. But this is also the aspect that seems to map very closely to the mathematical model of the Church-Turing thesis, wherein lies a problem or two.

    Mathematical theorems, like physical laws, have a nasty habit of working whether you know about them or not, and whether you believe in them or not. PJ has explained how the law likes to work slowly, in small incremental steps. But if I am right about the Church-Turing thesis applying to the potentially patentable aspects of software, it means that software patents are likely an all or nothing affair. Any attempt to limit their range of application by a logical or in principle test will just see all software mapped into the protected range by clever patent lawyers - Church-Turing guarantees the existence of a mathematical mapping, which is ultimately just a form of logic, which a good lawyer can presumably get across to the court. This may be what has already happened - the courts extend patent coverage to software under (what they hope) are very limited and specific circumstances, and suddenly all software becomes patentable. Likewise a logical or in principle test for non-patentability (like the one in Bilski) arguably renders all software non-patentable. A human carrying out a set procedure is in principle a universal machine, in principle capable of executing any piece of software. In practice this is nonsense of course, but if another court interprets the Bilski test as a practical one (in the context of an argument over software patents for instance), this might re-open the possibility of business method patents, since most businesses in practice use computers to help implement their procedures. And so it could go on, back and forth, with the courts genuinely and honestly trying to find some middle ground, only to give the appearance of constant flip-flopping. It seems to me that a legal test that could effectively draw a line among software would have to rely heavily on what PJ calls the 'squishy' aspects of the law. It would have to depend on external practicalities rather than logic. Such a test would likely go out of date rapidly as technology advanced. To sum up, I think the legal meaning of the Church- Turing thesis is 'no bright lines beyond this point'.

    The second problem, already talked about by many computer scientists and mathematicians in the comments above, is that the Church-Turing thesis strongly implies that the aspect of a computer program that has a useful effect is an abstract, mathematical object. Church-Turing not only demonstrates the universality of computation, it provides a prescription for accessing that universality: a particular universal machine can be encoded to run on another (the encoded machine becomes a virtual machine). This isn't just theory, it is a technique used extensively in practice - compilers, interpreters, and operating systems, all virtual machines, provide the programmer with an environment far removed from the raw hardware. Computer hardware becomes for most practical purposes a commodity - what matters is the speed, memory capacity, and reliability, not the details. This is not to belittle the superb work of the hardware engineers, only to point out that Church-Turing provides a way to decouple programming from the hardware, and this is what is nearly always done. So what is the part of a computer program that survives translation after translation, to produce the same useful effect on all machines virtual or real? And how would you describe or characterise it? Church-Turing seems to imply the existence of something that is not tied to any real or imagined machine. Computer scientists call this thing an algorithm, and it can only be described by pure mathematics.

    Any copyright in this post is licensed under the same terms as PJ's articles.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 12:35 AM EST
    I have not read thru all of the comments but of what I have read they are
    missing the real problem. The problem is he sees only high level programing
    languages and they use human readable words ie Print "Hello World".
    He does not understand in order for a computer to do what it needs it must first
    convert those word into numbers which it can understand. He sees words like that
    and says where is the math, he does not have any concept that computer only
    understand yes/no/on/off/1/0

    [ Reply to This | # ]

    Software Should Not Be Patentable - My Reasoning
    Authored by: Naive on Tuesday, November 18 2008 @ 01:15 AM EST
    Why should software not be patentable? To answer that lets take what a program
    is, step by step, using an analogy. Software is like a novel.

    Novels are formed from letters that when put into specific combinations form
    words. Putting words into a structure called sentences, following rules know as
    grammar, we form concepts. Taking these concepts and grouping them into
    structures called paragraphs we form conceptual steps. When all of these steps
    are compiled together and interpreted a novel is created. That is the basic
    process for creating a novel, and the process for writing a program.

    Now why shouldn’t and can’t a novel be patented. First, a novel is just one
    expression of an idea, as ideas are not patentable thus a novel is not
    patentable. Second, individual expressions of an idea are already covered under
    a law know as copyright. Third, as just an expression of an idea, it is clear,
    that others with the same idea can create substantially different instances of
    that idea, and that those individual expressions are equally worthy of
    protection as each expression furthers the arts and, though coincidentally,
    sometimes the sciences. Finally, software like a novel must be interpreted by a
    very specific machine. In the case of the novel -- a human that understands the
    language. For a program -- the computer. Now as humans are not patentable and
    computers are already patented we see the real problem of software patents come
    into focus. A program like a novel is worth nothing without the interpreter. The
    interpreter can understand and do amazing things with its input, but in the end
    it does nothing not already within the interpreters functionality. It just makes
    it do what it was meant to do!

    Software can never make a computer get up and walk. Software can never change a
    computer into a portal. Just like a novel can not physically transport a person
    to other places. A program only allows a computer to do what it already had the
    ability to do. Patenting software is like allowing duel patents on computers.
    And, at the same time, allowing them to be copyrighten too.

    Programs are nothing more than a single expression of an idea. Unlike processes
    that make something or inventions that do something new and novel; programs just
    ease the use of an existing technology. An existing and *patented* technology.

    [ Reply to This | # ]

    Software are mathematical proofs. Nothing more, nothing less.
    Authored by: Jose on Tuesday, November 18 2008 @ 01:21 AM EST
    >> Software is not a mathematical equation, nor is it a mathematical
    language.

    Allow me to explain. In fact, a software program is no more no less than a
    family of mathematical proofs written in computer language (the binary bits)
    waiting to be instantiated into a specific proof to be solved by the CPU once
    the input values are known ..at which point, we have the boundary conditions
    (the givens, the assumptions, the axioms ...) in place so that the CPU can fill
    in the missing details of that instance of the proof, in particular, by
    providing the results, or the "output" values we want.

    Writing a software program is the solving of a mathematical problem in
    parameterized form in a way where the computer can process the solution and
    return the result in a way where humans can understand it.

    In different words, writing a software program is (a) the modeling of a real
    world problem as mathematics givens/assumptions and (b), after giving the set of
    parameters for that particular variation of the problem, allowing the computer
    to solve the problem using mathematics and have the result be presented in a way
    the user of the program can easily make sense of the resulting answer.

    The solving of the problem is done with/on a computer instead of on paper. This
    entails that we program the symbol manipulation portion of the mathematical
    problem using a language and instructions the computer understands (vs. the more
    loose syntax and layering of the symbols on paper that a human with mathematical
    experience would be able to recognize and would expect). The computer program is
    actually more precise mathematics than a written proof for human consumption
    because the audience for the program is a computer and not a human who knows how
    to infer context without having to have it explictly and precisely stated every
    time and can make sense of ambiguous English prose.

    We must find computer "words" to fit the precise context of that
    mathematical problem so that the computer can understand our question/problem.
    Ideally, we'd have a general way to convert into computer language straight from
    English, but English is very ambiguous and very complex (based on state of the
    art computer tools), so that writing an English description of a parameterized
    problem could not be convertible to the correct computer language description
    using our current compilation technology so that the computer would think it is
    solving the problem we intend for it to solve. Similarly, giving the computer an
    eye (optical character recognition + "brain") is even more difficult
    because the world around us is even more varied and complex than the English
    language. In short, we have to do much of the tayloring of each problem by hand.
    We effectively write a proof for computer consumption that is much longer than
    the human proof.

    A key point is that this proof for the computer is almost always parameterized.
    This means that this program isn't an actual proof until we fill in the missing
    blanks, ie, replace the parameters with actual values, ie, decide on the precise
    set of given mathematical assumptions. This is exactly what we do to solve a
    mathematical problem in human English for human consumption (eg, for a
    mathematical journal, for a mathematics professor, etc) except that, to get more
    bang for buck, we generalize the proof in extra steps so as to solve potentially
    many mathematical problems from this same template depending on what the initial
    (boundary) conditions (or axioms) we fill in later.

    Experience has taught us parameterizing heavily is the best approach to take
    with computer-destined proofs. In some cases, the parameters serve the role of
    variables in algebra. In other cases, we are parameterizing the proof body (eg,
    branch statements in computer programming could be used this way) because we
    find this convenient as we expect the computer will ultimately be used to solve
    many many many instances of very related problems. Humans bore of solving
    (recomputing) a few similar problems, but computers thrive at solving
    (recomputing) very similar problems millions and even billions of times.

    So we have parameterized inputs that must be entered at some point to solve an
    actual instance of a family of related mathematical problems. This implies that
    the proof likely has some outputs (result details we are interested in) that
    cannot be known from the template. These must be computed. A human proof is not
    done in so much of a template fashion, generally. If we, as humans (engineers,
    unsophisticated students, or even as seasoned mathematicians), have to solve a
    similar problem, we frequently just recopy our earlier work making the changes
    here and there to fit the new boundary conditions or assumptions. But a computer
    was made for a purpose: to do this repetitive work for us and do so much more
    efficiently. The cost is we have to be more detailed and precise in writing up a
    (parameterized) proof for computer consumption. The payoff is that we can now
    solve many related problems over and over with no extra effort on our part
    simply upon entering the new set of initial conditions/assumptions/axioms/etc.
    The computer does the work.

    To recap so far: We write a parameterized template proof in a way the computer
    understands (high precision and verbosity compared to a proof written for human
    consumption). We fill in the parameters (the "inputs"). The computer
    at this point has a precise proof to solve a precise problem.

    At this point the computer is unleashed to logically deduce the variable
    outputs. These are the values we want. These are the answers to this particular
    problem (for the particular conditions given). A human could do this instead of
    a computer, but we would skip the long program and use a shorter English version
    on paper instead, and we would have to perform all intermediate calculations or
    reasonings to take the new set of initial conditions (the parameters when filled
    in) onto their resulting mathematical implications. Contrast again to us humans
    who would save time by studying and copying a similar proof but with the new
    inputs (think of this as solving a new algebra problem by reusing your old work
    but putting in new values and doing the intermediate calculations yourself --
    you would already have a setup of the solved problem when we did a similar
    problem/proof).

    Now what is all this about mouses, menus, text processing, sound files, web
    browsing, etc? Are these really mathematics problems being solved?

    Of course!

    In many of these cases, the mathematics problem is the means but not the
    destination. We aren't usually interested in the raw binary answer to such an
    evaluated proof. What we want as the answer is the set and order of symbols
    after they have been processed further. Think of this further processing as
    mathematical statements in a proof that turn some raw computations into a
    different rearrangement so that you see a picture when you view all the bits of
    the answer side by side or in some other arrangement on the paper. Another
    possible function of symbol mapping and manipulation is to achieve the following
    equivalent for paper human proofs, we know where to write the next line that
    follows logically and where to put the new notation and how to adjust it from
    the prior line in a human paper proof. There is even flexibility in how we do
    this because other humans can infer the logical step even if we write it in
    various ways. A computer is not nearly as tolerant. First, we have to precisely
    define all of these things done on 2-d paper into a conceptual stream of
    instructions. Secondly, we have to be clearly unambiguous (if possible.. if we
    want the correct result), to a higher level than is necessary when submitting
    our proofs in mathematics class.

    If so far this sounds extravagant and complex, it most definitely is. I am not
    talking about "x+1=6; solve for x". I am talking about many many
    people working long hours for days over many years to create a sophisticated
    body of inter-related templated proofs where a button click on some webpage
    achieves the effect of sending that computer's outputs as inputs to another
    machine which then feeds another and another. The end of the chain-reaction is
    that some other mathematical proof/program on the other side of the Internet
    eventually results in outputs that effectively mean that your order for the lamp
    on ebay was processed and it will get shipped to your home address. To get your
    input there, many mathematics problems are solved along the way. Each set of
    outputs serves as inputs and sends off the next computer down the line (in the
    Internet path) to perform it's computation (ie, evaluate that newly instantiated
    proof for its desired output variables) and get its outputs which become the
    next inputs.. until we get to the very last server that processes your name and
    credit card information as inputs. Actually, the fun doesn't stop there. Fed Ex
    and many others also have their proofs solved with precise symbols and ordering
    that when re-arranged/post-processed even more, as their programmers determined,
    result in labels with your name written in English getting printed up, etc. The
    symbols representing how much you have on your credit card charge account at
    some bank end up getting reworked as well depending on the results of those
    proof evaluations (after being instantiated with inputs) all through the very
    precise resolving of precise mathematical proofs whose inputs are then known.
    Note that some components of this system are humans. Other components are analog
    and mechanical machines. Others are the digital CPUs and other components of a
    computer. The point is that the hardware eventually figures out which are the
    proofs that must be solved as stored in particular places in memory. Also, don't
    forget that the results of the proofs are frequently just numbers that are
    apparently meaningless but might be processed by other hardware to form pictures
    that we humans recognize when on a display or printer. [Research ASCII and image
    binaries for more clues if you don't see how simply numbers as solutions to
    mathematics can be mapped to electricity in ways to produce output on a display
    we understand.]

    So every single input to a computer that is turned on and is running modern
    software, leads to these proofs being instantiated implicitly by the input
    values and being solved to yield outputs that sometimes end up driving some
    other proof as inputs and other times simply lead to numbers (representative of
    symbols) being added to these things we call "files" and
    "documents" and "pictures" etc.

    It's all very well controlled (though many errors exist.. so-called
    "bugs"). The only reason this is all possible is because of the
    surreal speed and precision that digital computers of today can process the
    almost limitless number of simple steps required of these proofs. These steps,
    in computer language, are things like: move value around (eg, take from this
    equation and put it into that one); perform some math on them; figure out what
    is the next step to execute depending on already computed values; stall waiting
    for more input; send some outputs to a device attached to the computer; etc.
    Also, the only reasons humans can build these huge proof templates required by
    the computers is because we have built tools that helped us build more tools
    that helped us build even more tools, etc. This is what OS, GUI, compilers, are
    frequently for. They are tools to help us create more proof templates but using
    higher level languages (even like dragging things around within an application)
    in an easier fashion. No human ever sees all the machine language instructions
    involved. Just like math, we know that we have proved Theorem X or Y in the past
    and we simply invoke it as appropriate in the future. Over enough iterations, as
    individual humans, we really can't appreciate all the complexity, even in the
    apparently simplest of programs/proofs.

    Yet here again computers come to the rescue. What we can hold in our heads when
    doing a math proof is much less than what a computer can handle. The catch is
    that many proofs we can figure out as creative humans, we have not figured out
    how to provide to the computer parameterized well enough so as to solve future
    "ingenious" yet similar-enough proofs. Where we have discovered how to
    word proofs, however (usually of the simpler kind), the computer has excelled
    beyond imagination (almost to perfection and at super speeds).

    I don't expect non computer people (and even computer people) to necessary
    believe everything I just wrote. An important point is that I was not using an
    analogy of a computer program to a mathematical proof. The programs are actual
    proofs. What makes these proofs odd-looking relative to what you find in a
    mathematics text is that they must be much more detailed and use the particular
    language of the machine that will process it rather than the simpler English of
    the human. We pay up front in more elaborate proofs, but then the payoff is the
    computer is so fast and precise and can tirelessly handle the ensuing titanic
    workloads. Another key item is that we don't actually write the proofs. We use
    tools on top of tools (remember, even these tools/software are incorporated as
    proves waiting to be solved) to process our high level instructions ultimately
    into the machine level templated proofs. "Templated" or
    "parameterized" is also just short-hand for saying that we take
    advantage of the large memory and organization of computers and take advantage
    of existing software (ie, "tools", ie, "templated-proofs"
    waiting to be solved) so that we actually don't produce isolated proofs but
    produce a template proof which would be solved as a specific proof with specific
    results (outputs) once the specific boundary conditions (inputs) are given.
    [Existing computer resources of the past help us manage today's more complex
    templates, and the improved systems we build today, will help us manage
    tomorrow's even more complex templating.]

    All of this is an interconnected system. One proof feeds another which feeds
    another.. almost without cease, both within a computer, and across network cards
    when it's "time to talk to other computers".

    To conclude:

    Yes, it is all mathematical proofs. A family of (parameterized) proofs are coded
    up by the software developers in a high-level language. These are processed and
    reprocessed several times to arrive at the machine instruction templated proof.
    This then must be solved for a specific problem once the specific inputs are
    given. The result is frequently a set of numbers that are interpreted by more
    hardware (like graphics cards) to produce things on screen that humans can
    understand easily. The programmers also build up the parts of the mathematical
    proofs that are symbol manipulations. This would be akin to a human math proof
    being done where the person creating the proof must decide constantly how to
    arrange the symbols so as to convey logical steps in the proof as understood by
    another human mathematician reading the proof. For computers, we must be much
    more careful because they are super humans in repeatability but otherwise
    "stupid". They don't understand English proofs; they can't solve
    English parameterized proofs once we give them the English inputs. They don't
    understand proofs laid out in 2D. And yes, humans also need post-digesting of
    the resulting solutions to the problems (the instantiated proofs with output
    variables resolved) so that the symbol arrangements and numbers makes sense. In
    other words, the ultimate answers have to be made into pretty things on the
    screen for us to derive value [Remember that frequently the solutions to these
    programs, to these proofs, are meaningless quantities except after symbol
    mappings and other manipulations likely done by different hardware for screen
    rendering or for storage on disks in what we like to call "documents"
    or "music files".] Yes, this is all very complex. No single human
    grasps it all for any real run of a PC session, but, collectively, we do grasp
    the ways and means to put all the independently built components together to
    produce this marvel.

    Yes, software programs are (parameterized) mathematical proofs but written
    especially for computer consumption (which can efficiently instantiate a
    specific proof and evaluate its resulting desired quantities that were dependent
    on the inputs to the parameters). "Parameterized proof" is just my
    short-hand for expressing that many proofs to many related problems can be
    created at once by leaving key portions blank. A mathematics professor could
    take such a "parameterized" mathematical proof handed in and put in
    the values for the problem (eg, an axiom or a variable value) but would prefer
    the student submit the more digested form that solves the specific problem
    assigned. [Then again, we thrive on solving few times but very differing
    problems; whereas, a computer thrives on solving very fast, accurately, and
    repeatedly only the problems we were able to break down into bite-sized proof
    steps for it to understand unambiguously. These proofs we know how to break down
    for the computer, we know how to parameterize ad nauseum in minor ways, ways we
    wouldn't tackle in real life but just love to give to a computer to do for us.]

    Yes, software is math. Software are mathematical proofs written in a precise
    language computers understand and which get resolved for variables during
    program run. The "process" or "functionality" that patent
    writers claim is software (as per the language of Title 35), is nothing but a
    different wording of what is a mechanical hardware system solving these proofs:
    (a) moving inputs from the users onto the proof slots and evaluating the proofs
    for the outputs; (b) using these outputs as inputs to more proofs; etc;
    ultimately, deferring to other hardware to produce visual output to correspond
    as the final answer to the input (eg, to the mouse movement or keyboard strike)
    or as data placed on (eg) disk drives.

    Yes, software is math. Calling it "processes" or a part of a new
    "machine" invention or anything else doesn't change this fact. I'm a
    "male", yet you can call me a "human", or better yet,
    "Jose_X", or even "persistent" if you really want.

    [See also
    http://www.groklaw.net/comment.php?mode=display&sid=20081114205538108&ti
    tle=Copyrights%2C+not+patents%2C+cover+inventions+whose+%26quot%3Bfunctionality%
    26quot%3B+is+distinct+from+the+machine.&type=article&order=&hideanon
    ymous=0&pid=736816#c736898 for brief discussion on wording patents to try
    and claim scope over virtually anything: eg, over literature.]

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 02:22 AM EST
    As others have said his question: "what harm is there in it?" (if the
    principles of novel and non-obvious where diligently and competently applied) is
    horribly misguided. There is harm in any law which is imposed without a clear
    and over-riding benefit to society.

    Laws restrict freedom. Thus they should be imposed only where they mitigate
    some real harm to others ... or where the benefits to society at large greatly
    outweigh the damage done to personal liberty.

    He also asserts that programmers, with no knowledge of law, should have any say
    in whether their domain of expertise should be patentable. I would ask why we,
    as members of society, should consider delegate such matters to lawyers?
    Certainly lawyers benefit most from the existence of such laws. They also
    benefit, I would argue unjustly, from the virtual monopolies that are imposed on
    the practice of their profession by most states and from the ever increasing
    complexity of laws, court and filing procedures, and so on.

    The transition of personnel in the U.S. Patent Office, from engineers towards
    lawyers, in fact has led to the current "mess."

    Foxes guarding the hen house.

    [ Reply to This | # ]

    non-obvious
    Authored by: phulshof on Tuesday, November 18 2008 @ 05:27 AM EST
    1) Patents need to be new and non-obvious in order to qualify for patent
    protection.
    2) Due to the enormous amount of software patents and the judicial implications
    involved, software developers do not check for patents.
    3) If a software developer, without knowledge of a patent, comes to the same
    (obvious) solution as to violate said patent, then the patent was not
    non-obvious, and as such should not have qualified for patent protection.

    In the software industry, patent protection does not make sense. Due to the time
    to market and life time cycle requirements of the industry, combined with the
    mathematical and language nature of software, copyright protection is the
    correct protection layer for software.

    [ Reply to This | # ]

    Turing
    Authored by: Anonymous on Tuesday, November 18 2008 @ 10:32 AM EST
    Today is November 18th.
    A good time to read on Turings Universal Machine. Do that, please.

    The Deterministic Turing Machine is basically what you see, when you look at a computer. That's pure math.
    And this 71 year old math explains why you can compute - i. e. derive by using mathematics - everything with a computer that can possibly be computed deterministically.
    If you followed me up to here you will have noticed two restrictions.

    The first one was "basically".
    The restriction here is that modern world computers only have finite storage. So math even wins on this. A practical infinite storage may be welcomed by everybody, but so is a Perpetuum Mobile. And both would be no method.
    In Computer Science, knowledge about this machine is used to explain to our clients that the question may very well be valid, but may take to long or may be to costly to answer it. Or both.
    A Computer Scientist that can't do that is a failure.

    The second was "deterministic".
    Deterministic here means that the computation yields the same result on the same input. Which is highly desirable in the field of engineering, but absolutely uninteresting in the field of computer science. In layman terms Non-Deterministic Turing Machines deliver different, but fitting answers on the same input. Here Non-Deterministic Turing Machines are really interesting only because of two reasons.
    First, Computer Scientists still have to prove their suspicion that Deterministic Turing Machines can not implement Non-Deterministic Turing Machines.
    Second, a Computer Scientist is trained to find an analog of the request to deliver a different, but fitting answers on the same input. Talking undiscerning clients out of such requests is well beyond the patentable realm.

    BR

    Christian Seidel

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 10:44 AM EST
    Forget about Maths, think about Law.

    Law and Computer Programming are both ways of communicating very precisely, using specialized languages. If you allow patents for one, you must allow patents for both.

    Lawyers who succeed and set a precedent have just as much right to patent their tactics as computer programmers to patent their code. Both, or neither. giafly.

    [ Reply to This | # ]

    General Praise
    Authored by: riodeg242 on Tuesday, November 18 2008 @ 11:37 AM EST
    I wish I had more time to participate, discuss, help and all. For the most part
    I see great comments and thoughts; respectful concise and constructive. It
    makes me feel good in two ways, there are people like me out there, and hopeful
    that the world is still becoming a better place. The FOSS community is such a
    beautiful thing.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 12:00 PM EST
    Having just given my weekly lecture on computer organization and architecture, I
    find myself with just 10 minutes to reply to Gene's question! Why should
    software NOT be patentable? Let's hope brevity of the answer makes for
    pithiness.

    Firstly, the perception of what a computer program is as embodied in Gene's
    article is just plain wrong. It reminds me of the proverb of the blind man
    feeling the elephant's trunk and announcing that an elephant is just a noisy
    snake.

    Gene seems to have the view that a computer program is just a piano roll that
    works the hammers on the keys. His point is that yes, it can be described by
    maths, but it isn't maths, it's a piano roll.

    Unfortunately that view of what a computer program is is way out of touch. It's
    a naive view and it's not even right. It stopped being right at the point when
    the modern stored program computer got invented. It was right before then, up
    till round about 1934.

    Since then, all computer programs have been able to write computer programs
    (it's just bits in memory), which are then executed to write other programs,
    which ... etc. So we no longer can speak of unalterable rolls of piano paper
    working keys. Computer programs change one pattern of bits into another pattern
    of bits. The interpretation in terms of flinging piano keys up and down is
    something that happens in hardware way down only sometimes, and the same bits
    can be interpreted different ways by different computers. Even then, the bitwise
    interpretation of a 1 in THIS register at THAT time is not something that other
    than the most close-to-the-metal systems programmer will know about (I don't,
    and I am a systems programmer of some repute ...).

    No. Us programmers are concerned with translating one mathematical structure
    into another mathematical structure. We do it when we translate greek text into
    english text, or a list of circtuit connections into a circuit diagram, or we
    write a top-down recursive n-lookahead parser. We can't even guarantee that our
    algorithms will be interpreted the way we think they will be interpreted by the
    language we are writing in or the hardware it is working on. The only thing we
    can be sure of is our mathematical model. And that's what we work with.

    I write translators from one language to another. That's what all programmers
    do, even the ones writing "piano rolls". They're writing a translation
    from a musical score to a time-register map of 1s and 0s. The translation has to
    make sense, and programmers make it make sense in terms of teh mathematical
    model they are working with. The interpretation of 1s and 0s is up to the
    hardware, not the programmer.

    And yes, many computer languages work just fine with `equations', i.e.
    statements of what is, not how it is to be achieved.

    So I reject the characterization of computer programs given. Yes, it is maths.
    No, maths can't be patented.

    Peter Breuer

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: richardpitt on Tuesday, November 18 2008 @ 12:04 PM EST
    In continuing his theme, he argues thus:

    "You explain how to process information by defining instructions that are followed. Does it help to understand basic mathematical priciples, of course. But that does not mean that software code is a mathematical language. You don't tell the computer that 1 + 1 = 2, you explain to the computer how to process information so that 1 + 1 will consistently and predicably equal 2."

    Herein lies the crux of the problem - his lack of understanding that the hardware of the computer is constructed so that 1 + 1 = 2 ALWAYS

    And that is why we use it to solve mathematical equations (software)

    Yes, the layers of interpreters and compilers that today take our human representation of a problem and (using the computer, which gives 100% predictable and consistent results given the same input) turn it into what the computer finally works with to solve the base problem may have built into them logic and "soft" interpretations of human constructs of language - but each layer, given the exact same input, will give the exact same output - a mathematical necessity and a part of the design of the underlying mathematically precise machine architecture.

    The point is that each of these interpreters and compilers in the chain between our "human framed question" and the actual chain of commands that resolve the question to an answer is itself a deterministic program that itself resolves to a chain of machine-level commands that give a deterministic answer; a computer interpreter's answer may be pseudo code that is executed by a pseudo machine that itself is the result of compiling code that results in machine code that is directly acted upon by the CPU's Artithmetic-Logic Unit (ALU), expressed in byte-code that is made up of 1's and 0's. It is this layering and Quinn's failure to understand how it evolved that leads to his eroneous conclusion:

    Lazyness is the mother of invention - why keep crafting 1's and 0's by hand when you can (using hand-crafted 1's and 0's) create a program called an assembler that will turn human readable direct one-to one op code Mnemonics (MOV, ADD, etc.) to machine language?
    Why craft all the op codes when a Macro-Assembler (itself written originally in Assembler) can replicate repeated loops and constructs with a single command that inserts a set of machine codes into the output?
    Why craft Macro-Assembler when a compiler (itself crafted originally using a Macro-Assembler) can interpret mathematical formulae (FORTRAN for example) into machine-level 1's and 0's?
    Why use a simple forumula translator when you can use a rule-based and format-based program (written originally using a compiled language) to do your bookkeeping (COBOL)?
    And so on... through the various iterations of advancement in computer-human interaction.
    Today I sit at a graphical console with 5 screens across my desk hooked to a system with a 4-core 64-bit CPU and 8 Gigabytes of RAM, 4 graphic cards (each with its own highly capable CPU and more RAM) a mother board with special-purpose CPUs that handle the input/output by interpreting commands issued by the main CPUs - which take command themselves from not only my keyboard but a mouse with buttons and scroll-wheel - and meld them all into a visual representation of my now almost non-existant physical desktop.

    BUT!!!Every single keystroke and mouse movement - every incoming e-mail message, network packet, and other input to my computer is eventually rendered into a stream of 1's and 0's that cause the CPU at its heart to perform a mathematically precise calculation and return a deterministic result. If it were not so then the windows I look at would quaver and shake and break - the movements of my mouse would cause things to happen that I didn't expect or want, and my keystrokes on the keyboard would yield garbage.

    From the initial re-pluggable direct logic units of some of the first "programmable" computers that could not store any program except by the use of actual re-wiring of the logic, to the latest "Artificial Intelligence" programs that take human text and answer in human terms, the fact is that underlying all such advancements in the past 50 or so years is the basis that any program, at any time, given exactly the same input will generate exactly the same mathematically defined string of 1's and 0's that run through the CPU to give exactly the same answer.

    Again, the fact that Mr. Quinn seems to miss is that today's computers operate so fast, and so seldom on "exactly the same data" that the results seem to the untrained eye to be at odds with the concept of underlying mathematics - but if Mr. Quinn were trained in the science of computers as well as he seems to be trained in the craft of law, he would be able to see that, stripped of its speed and multiple layers of machine-driven (but mathematically proven) programmatic aids, at heart even the most powerful computer systems on Earth are in fact working with 1's and 0's in a parade of instructions to Arithmetic-Logic Units in computer chips of all makes and sizes and speeds - but all (but a very few specialty ones we won't get into here) implementing mathematically precise and crafted algorithms with deterministic answers.

    It is mathematics, therefor it is NOT patentable!!!

    [ Reply to This | # ]

    A good point - Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 01:05 PM EST
    I think Gene Quinn has a good point when he writes:

    "If anything, a process that is followed by humans should not be patentable
    because you are taking away rights from a person and preventing them from doing
    something they had the right to do right up until the time a patent was
    granted."

    [ Reply to This | # ]

    unpatentable "processes"
    Authored by: Jose on Tuesday, November 18 2008 @ 03:09 PM EST
    >> Why a series of instructions that are followed by a machine should not
    be patentable but a series of instructions that are followed by humans is
    patentable is beyond me. This is a distinction without a difference. If
    anything, a process that is followed by humans should not be patentable because
    you are taking away rights from a person and preventing them from doing
    something they had the right to do right up until the time a patent was
    granted.

    G Quinn is using the definition of "process" that I think the recent
    ruling majority opinion ruled out.

    You can't, for example, patent the mental "process" by which a person
    teaches himself to execute a particular magic trick "successfully".
    You can't patent the "process" of writing a good Limerick or a good
    Recipe that would likely be accepted by "Home Cooking for Dummies".

    I believed that a process (per US patent law) is for building a tangible item.

    In this case, software is not sufficient, and a software "process"
    can't be patented.

    Instead, you can patent a process for producing the item, and then in one
    implementation you may decide to use digital electronics (w/ software) to
    control a specialized robot so that the end result (when you consider the
    various materials and other details) is this particular manufactured item
    specified in the patent.

    The software itself can be used within a computer simulation or it can just run
    and run but achieve nothing if the robot or the materials or any of many other
    items aren't present or if there are problems somewhere.

    In other words, implementing a portion of the full patented process is not a
    violation, and patentable process are processes that drive the creation of some
    tangible good.

    IANAL.

    Patent laws were written with physical materials in mind. To update the laws,
    you would have to specifically include software and/or resolve some odd
    language. If we wrote software into the laws, however, we'd then have to deal
    with all the problems that come with this as many have described in numerous
    comments here and elsewhere.

    [ Reply to This | # ]

    explaining vs instructing
    Authored by: Jose on Tuesday, November 18 2008 @ 03:50 PM EST
    explain: To make plain or comprehensible.
    instruct: To give orders to; direct. but also: To provide with knowledge,
    especially in a methodical way. See synonyms at teach.

    Quinn might argue that "instructing" is (or should be) patentable (a
    "process") and that "explaining" might not be patentable
    (eg, copyrighted material). Then he might say or imply that all computer
    software programs "instruct" and not "explain" to a
    computer.

    First, we can "explain" to a computer. It's all in how you define the
    programming language or even in how you build the computer. Most practical
    computers in use today do, at the lowest level, appear to work by what one might
    define as "instruct", but this is not even necessary, just practical.

    At the lowest level of understanding for humans, "explaining" is
    turned into something like "instructing". We don't "explain"
    to neural cells, rather they are "instructed" to fire or to adjust
    themselves. [I am not going to attempt to go into an in depth discussion of life
    or the mind or the physical world or anything like that.]

    Also, remember that to "instruct" a human is not to
    "instruct" a computer. There are at least shades of differences in
    meaning here because humans and computers are so distinct in many ways. English
    words approximate our understanding of things and offer short-cuts, but more
    context than a word or a sentence or ... is always necessary to understand
    something better and better.

    Does a terse recipe instruct or explain? Does a mathematical proof instruct or
    explain or perhaps guide? [I won't attempt to answer beyond what I have already
    said.]

    A typical digital computer requires no gray area (in fact, we specifically went
    to digital to eliminate the gray areas of analog machinery). Hence, the most
    accurate way to describe how we "explain" or "write" for a
    computer audience is as "instructing" them (at least at the lowest
    level after the many translations to arrive at final machine language).
    Computers are more demanding than we. Their hardware "neurons" don't
    move around. Fuzziness doesn't work. We can model fuzziness models as software.
    We can also build it into hardware, but I'm limiting myself to the most
    practical computer models widely used today.

    People should not let words control. Words are secondary. Especially a small
    number of words can miss a ton of context. Words themselves aren't even
    definable except through the examples a person accumulates over life. We try,
    but dictionaries fail because it is all circular. We must "bootstrap"
    a certain amount of understanding through experience. Words are not the end all
    by any means. Even grouped in bunches (to help describe extra context), they
    would still fall short, though approach accuracy. In the end, we must all rely
    on simple Pavlov's dog types of responses and patterns built up on our brain for
    using and "making sense" of language. Mathematics is not ideal, it's
    just more efficient.. closer to the metal if you will.

    [It seems I did get a little carried away trying to define "life"]

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 04:45 PM EST
    Calling software a mathematical language is like calling the English language a letter language. After all, every word is made of letters, so all any language is is just letters. This is absurd. You put letters together to form words, then sentences, then paragraphs. So a book is not just a combination of letters. We use letters to form the words that lead to concepts and make it possible to convey meaning in the form of communicating what is in the mind of the author to the minds of the readers

    You Got IT... Nailed it extremely well. This is exactly what software is. Just like a book, the message or concepts it contains are put together by stringing paragraphs; paragraphs of stringed together words; words of stringed together letters.

    To Follow the your logic to its logical conclusion, Math has function. Math has a reason. We could not find the volume of a liquid that a particular cylinder can hold unless we string together mathmatical concepts to get there.

    So... A computer program has only the function created by its methods and concepts and a reason (usually accounting for "something"), using math to get there. This is nothing more than a book having methods and concepts and a reason (to educate, persuade, entertain), using words to get there.

    Oh... and by the way, that type of stuff is already covered under a copyright law. I just don't understand what is "so absurd" about it.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Marc Mengel on Tuesday, November 18 2008 @ 05:43 PM EST
    Well, at the risk of repeating others posts, I find I must respond, in particular, to the very basis (as I see it) of Mr. Quinn's argument, to wit:

    "Software is not a mathematical equation, nor is it a mathematical language. How anyone who writes software or professes to understand software could argue to the contrary is beyond me."

    This sentence crystalizes in its purest form his utter and fundamental misunderstanding of both mathematics and computer science. First of all, the first phrase of the first sentence is not only wrong, it is backwards. The correct statement is:

    Mathematical equations (in closed form) are software.
    or more to the point, mathematical equations are a subset of software. Take for example the solved forms of the quadratic equation:
    x = (-b + sqrt(b*b - 4*a*c))/(2*a)
    x = (-b - sqrt(b*b - 4*a*c))/(2*a)
    These are mathematical equations which are also, at the same time, executable statements in at least a dozen programming languages (with the addition of a colon or a slightly different spelling of the square root function). Yet Mr. Quinn would try to claim that these equations, found in any high school algebra textbook, become somehow patentable when they are typed into a C compiler and compiled.

    Now lets look at algorithms. The word itself comes from the title of a book by Khwārizmī, ("Al Khwārizmī") dating from 825 AD. Classic algorithms used today in computing date back to Euclid, circa 300 BC, including the algorithm used to compute Least Common Denominator. These algorithms have expressed how to process data, using paper and pencil, or using just your mind, for over 3000 years.

    Similarly, anyone who has developed any noticable amount of software has learned how to desk-check their software -- that is to "run" a program either on paper, or in their head. This is a standard, and basic, exercise for learning what software means, and where one may have made a mistake in their software. That is to say, software does not, in fact, require a computer to run -- programmers routinely perform the alogorithms encoded in their software in their heads.

    Software always has been, and remains, an expression of an algorithm, only superficially different than Euclid's 3000 year old description of finding the least common denominator.

    So you cannot make software patentable without, in the process of doing so, making mathematical formulas patentable, as they are, by their very nature, software. And since mathematics is the quintessential example of what is beyond the scope of patentability, software is clearly and unequivocably excluded.

    [ Reply to This | # ]

    Mathematics is not just solving equations
    Authored by: macliam on Tuesday, November 18 2008 @ 06:50 PM EST

    There is a new post on Gene Quinn's blog, entitled Musings on Software Patents and Innovation

    It includes the following:

    I do not agree that software is the expression of a mathematical algorithm, and I suspect I am never going to be able to change any minds on that point. To me software is primarily the expression of step-by-step instructions, and step-by-step instructions have always been patentable provided that the process defined is both new and nonobvious. I do certainly understand that an algorithm contained within software code does in many ways act like a mathematical equation in that variables are defined, relationships are identified and information exchanged in an effort to resolve the cycle. The similarity is undeniable, but yet I do not see it as a mathematical expression because to me mathematical expressions are solvable. I just don't see there being any ability to solve a line of code or even an algorithm the same way that one can solve a mathematical expression. But then again, algorithms can be reduced from long, brute force, hard coding into eloquent code. Yet I am unable to deviate from the purpose of the code, which is to cause a manipulation given a certain set of parameters. This manipulation is a step in a greater process that brings about functionality and under the patent laws such things have always been patentable. I just don't understand why software, which admittedly needs to be turned into machine readable binary form takes a series of instructions aimed at creating a predictable procedure, should be considered unpatentable subject matter simply because the device needing to implement it must break down the instructions into a series of 1s and 0s.

    Of course mathematics involves more than solving mathematical equations. Consider for example the following truth of mathematics:

    The fundamental group of the annulus is isomorphic to the group of integers under addition.

    This truth can be presented in words, as above, or purely symbolically. Let us consider the nature of this truth, and whether or not it could be considered as an 'expression' or 'equation' that is capable of 'solution'.

    An 'annulus' can be defined as the region of the plane enclosed between two concentric circles. You might think in terms of a circular racetrack, with the sides of the racetrack being the circles in question. In order to define the fundamental group of the annulus, we pick a point of it to serve as a basepoint, and we consider loops, contained wholly within the annulus, that start and end at the basepoint. Each single element of the fundamental group corresponds to a collection of loops in the annulus that start and end at the basepoint: two such loops represent the same element of the fundamental group if and only if one loop may be continuously deformed to the other through loops that themselves start and end at the chosen basepoint. The mathematical result stated above corresponds to the fact that the element of the fundamental group represented by any given loop is determined by the winding number of the loop. This winding number represents the number of times that the loop winds around the annulus: one can continuously deform one loop starting and ending at the basepoint into another such loop if and only if the two loops have the same winding number. Thus the elements of the fundamental group can be represented by integers, where the integer representing an element of the fundamental group is equal to the winding number of the loops that are associated with this element. There is some additional structure that is preserved, but the mathematical statement above basically states that the fundamental group of the annulus has the same algebraic structure as the group of integers under addition.

    Thus we have an example of a mathematical relationship that is not expressed in an 'expression' or 'equation' that can be 'solved' for some quantity. It is not atypical in this regard.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Tuesday, November 18 2008 @ 09:45 PM EST
    Using Mr. Quinn's logic about language and the letters that make it up - you
    can't patent a story, but you can copyright it. Software represents a concept,
    an idea, a function. I didn't notice if Mr. Quinn believes that business ideas
    are patentable. I'll take it that he does and that is why he believes that
    software should be patented. And it doesn't really have anything to do with who
    knows what software is or does.

    [ Reply to This | # ]

    Economist Critic of Software Patents gets Nobel Prize
    Authored by: Anonymous on Tuesday, November 18 2008 @ 10:20 PM EST
    http://press.ffii.org/Press_releases/Economist_Critic_of_Software_Patents_gets_N obel_Prize

    Economist Critic of Software Patents gets Nobel Prize
    "Brussels, 17 October 2007 -- The FFII congratulates Eric S. Maskin, an economist who has long criticised the patenting of software, for receiving the 2007 Nobel Prize for Economics. Prof. Maskin and two colleagues receive the Prize for research into the optimal design of economic mechanisms. By applying his theory to the IT sector, Maskin demonstrated "that in such a dynamic industry, patent protection may reduce overall innovation and welfare.

    LINK HERE

    I guess that others think that software patents are very bad for us all too.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Dave Lynch on Wednesday, November 19 2008 @ 01:51 AM EST
    Mr. Quinn is correct in his assertion that Software is not fundamentally
    different from those things that are patentable. He is incorrect in
    characterizing software as different from mathematical language.

    I appreciate that the Law struggles valiantly to claim otherwise but patents
    are an attempt to take ownership of ideas. If a patent is not about the
    underlying idea, then it has no value, the law would not care an neither would
    software developers. One of the key problems with Intellectual property law is
    the presumption that there is nothing that the law can not construct a way to
    own. I am sure that lawyers could construct a framework that would allow me to
    auction off my heartbeats. There are still places where you can own another
    person. The fact that the law has or can create ownership rights in something
    does not mean it should. Ideas have attributes that are fundimentally different
    from most everything else that we allow to be owned. That alone should raise
    serious questions as to the wisdom of creating property rights in ideas.

    I am aware that I am questioning two centuries of law. But Mr. Quinn raises a
    valid question - why is software different. And I believe he is right - it is
    not. Software is not different from those things that are patentable - but it
    also is not different from those things that are not. The critical attribute of
    software is that it reduces the distance between patentable machines and
    unpatentable laws of nature and mathematics to a single point. As in many other
    areas it is not a case of technology outpacing the law, but of technology
    demonstrating that the underlying premise for the law is fiction. Nor is
    technology ceasing to advance. Neural networks and quantum computing are in
    their infancy but they are on their way. Whether these lead to "artificial
    intelligence" or not, they take programming to levels of abstraction and
    non-determinism indistinguishable from the most advanced mathematics, and
    physics.

    Mr. Quinn also seems to believe that all software is a simple state machine,
    a given set of inputs always producing a given set of outputs. Most people have
    brown eyes - but we do not presume they all do. In many instances software is
    completely indistinguishable from mathematics. I can construct a mathematical
    proof and a program, and lawyers, judges juries, even programmers and
    mathematicians would be as likely to be able to tell which was which based on
    flipping a coin as by inspection.

    Our founding fathers rightly called intellectual property monopolies. They are
    an attempt to convert abundance into artificial scarcity so that it will have
    value.


    Mr. Quinn has a very narrow view of software.
    In mathematics 1 + 1 = 2 because we define it to be so. We do so because the
    system where 1 + 1 = 2 is useful. 1 + 1 = 2 in a computer for exactly the same
    reason. If Mr. Quinn constructs notes outlining his goals and the process he
    intends to use in a given case - is that patentable ?

    DNA is rightly called the code of life, it is the program that directs the
    operation of all living cells. Yet presumably we can not patent the processes of
    life. Anyone working with fractals grasps how the combination of relatively
    simple math, and a simple sequence of instructions results in unbelievably
    complex ordered chaos with a certain correlation to nature.

    Software is the sequence of instructions that executes on computers, thoughts
    and ideas are the sequence of instructions that execute within the human mind,
    similarly the laws of nature are the instructions that execute on the machine of
    the universe.


    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: rdean400 on Wednesday, November 19 2008 @ 07:24 PM EST
    The purpose of patents is to promote progress in scientific innovation, by
    producing a financial incentive (a time-limited monopoly) for inventors to
    disclose their works to public view.

    What is essential for patents to be useful is that the invention is uniquely
    innovative and that the patent process is the only mechanism by which the
    invention will be legitimately contributed to public view.

    I believe the problems for patenting software (and processes, for that matter)
    are as follows:

    1) Software development is fundamentally a task of skillful ordering of building
    blocks, to express a process for turning inputs into outputs. This doesn't, in
    and of itself, bar software from being innovative, but it means that the process
    is less about creating the new than it is about creating a new arrangement of
    the old.

    2) There are very few ideas in software development that are beyond the reach of
    the ordinary programmer. Highly skilled programmers are plentiful.
    Patent-ensured disclosure is not required for the state of the art to progress.

    Even if the view that patents are worthwhile held true, the USPTO is neither
    skilled nor staffed enough to give patent applications their proper vetting.
    The cost required to do so would exceed the value of the patent system in the
    first place.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Thursday, November 20 2008 @ 06:26 PM EST
    I see the mathematics types asserting that a program is a methematical
    expression or at least reduceable to that. And I guess that there's a
    mathematical theory that backs this all up.

    I approach the programming task as distilling an expression of desire into a
    sequence of statements that will use existing information to produce a useful
    result.

    The real problem with making a patent out of a programmable task is that any
    competent programmer given a mandate to produce a certain result out of a set of
    inputs will write a program to do just that.

    Software patentability means that the first guy who gets the job can stop
    anybody else from doing the same job.

    [ Reply to This | # ]

    Attack of the patent orcs
    Authored by: Jose on Thursday, November 20 2008 @ 10:58 PM EST
    How to torture humans...

    For this reply, I'll keep the subject abstract, in other words, we could be
    talking about how to achieve and specify some process related to software,
    business, rocket science, snail eating, practicing law, etc. No matter the
    subject, the pattern doesn't change.

    I should also warn that I don't write or read patents (though I have glanced
    over arbitrary ones in my lifetime). This reply was inspired by this other
    comment:
    http://www.groklaw.net/comment.php?mode=display&sid=20081114205538108&ti
    tle=Problem%20with%20your%20arguments&type=article&order=ASC&hideano
    nymous=0&pid=735915#c735988 .

    Once we skim over the comment link just mentioned, we might agree that a patent
    won't be made to keep people from performing action X, but a patent might be
    made to keep people from achieving X through a particular step by step process
    under patent protection.

    What is X? Well, X can be at any scope that the patent writer finds valuable and
    thinks he (assume a male patent writer) can acquire a strategic toll/stop
    bridge.

    Let's look at some possibilities, but first a quick definition.

    A patent orc is a person that rummages through humanity's contributions in order
    to find locations where strategic toll/stop bridges can be erected. There is a
    cost in time and money per bridge, but the payoffs can be huge.

    OK. World+dog is researching and developing in some arbitrary representative
    field. A patent orc can identify a particular goal/functionality that would be
    very useful to others studying and practicing in this field. Let's see what the
    options are for our orc.

    World+dog has come up with a way to achieve X in the following steps and
    substeps:
    -- goal accomplished in 3 steps;
    -- step 1 has a-c substeps; step 2 has a-e substeps; step 3 has a-b substeps.
    -- 1.a has 2 steps; 1.b has 3; 1.c has 2; 2.a has 4; 2.b has 2; 2.c has 5; 2.d
    has 3; 3.a has 6 3.b has 1;
    -- 1.a.1 has 1; 1.a.2 has 2; 1.b.1 has 1; 1.b.2 has 3; 1.b.3 has 2; 1.c.1 has 1;
    1.c.2 has 3; 2.a. ....etc

    Alright. This is the basic picture. Orc focuses on a particular goal X. That
    goal can be broken down into steps, substeps, yet more substeps, etc. Orc can
    pick any (sub)step and find a "new" way to accomplish a new series of
    substeps.

    We can also talk about goal Y if we wanted to. Goal Y might be another useful
    goal. In fact Y might be very similar to X. Alright, let's focus on X now.

    Looking at the example above, the orc might try to pick any of these substeps to
    try and re-specify.

    The later the orc arrives to the party, the more spectacular an engineering feat
    must be accomplished in breaking down the substeps so as to qualify for a useful
    patent. Note that the orc can pick any substep to try to re-define and patent.
    The higher the level (eg, step 1, 2, or 3) the more folks will want to go
    through that bridge, but the greater the chances that the courts might rule
    orc's patent is too general and the greater the chances prior art will exist.
    Despite appearing more limited in scope, there might be very strategic gem at
    say substep 2.c or even 3.b.4. The right balance is somewhere in the middle of a
    substep expansion tree.

    What else can patent orc look for? Well, looking at goals Y, Z, etc. Orc might
    find that there are some substeps that are very very common across many goals or
    at least across many related goals. Trying to find a better way to do such a
    general substep (and it might simply take a month's worth of thought at the
    dinner table to come up with it) would mean a very large bridge indeed.

    For example, and as an analogy representative of something common in some given
    field: everyone basically has to get up each morning. Some people sleep during
    the day or on trees or in some other nontraditional way that would not be
    describable by this hypothetical process the orc is dreaming up, but a great
    many processes needed by people during their business day would qualify. If the
    orc could be the first to patent such a general substep, perhaps in anticipation
    of a new style of bed or of a new style of house or a new government (or
    standard body) law that might be passed, then orc would nail down the patent and
    force the industry to do things very inefficiently to bypass the patent. There
    is always more than one way to skin a cat or get up in the morning because you
    can almost always find a *longer less efficient* path, and unfortunately for
    humans, the most efficient path is sometimes the most obvious (hence, many orcs
    will say "eureka"). So say the process patented is of sitting up in
    the bed soon after sunrise. Well, people would need to bypass the patent by
    dropping out of bed, springing into the air and clearing the end of the bed to
    land on the ground, etc.

    Remember too that while some processes/algorithms appear very difficult to lay
    people and even to many of those practicing, it might be the most efficient way
    to do a key step. This might *be obvious* to tens of experts collectively
    developing this new area of some field. It's the experts, not Engineer Jack,
    that will bring this to the rest of humanity. How unfortunate that one of these
    experts decides to patent what would be obvious to those that count, those
    working to develop this new improved practice, the experts.

    The point of this silly example and of this post which I will end soon is to
    show that in any field one can specify processes and, according to Quinn and
    others, these should all be patentable. Clearly though there are many many
    general substeps that exist in every field that are difficult -- but
    "possible", the orcs might shout out -- to bypass. All it takes if for
    the anti-human orcs to stay atop the news looking for these gems and then be the
    first to present a written-down process and fill out the patent for it. Orc even
    has a full year (in the US, iirc) to think over and tune this process to really
    make sure it is almost unavoidable except with pain from the humans.

    We all know that many cases exist that are not worthy of bringing humanity down.
    Some orc or other will always be the first. Many times humans can imagine these
    things as well, but they don't dream of attempting to stop their productive
    lives to detail it out and file the orc patent.

    Patents for software and for many other areas, I am sure (perhaps including
    law), are a plague on these industries. It is too easy for many orcs to come up
    collectively with enough patent so that almost any useful complex process will
    violate one or more patents. For FOSS, in particular, this can be detrimental
    because the option for royalties is probably impractical. And the patent threat
    is very real because we know that all orcs can turn into or sell out to trolls.
    And we certainly have some trolls that have FOSS in their line of fire.

    So stay safe, brush your teeth every day, don't be an orc in any field that can
    be crippled just because the government allows you, and write to your
    representatives in government expressing your serious dissatisfaction with the
    enabling of orcs .. at least in the software profession if not in the legal
    profession.

    PS. For sofware, the steps/substeps could correspond to modules or
    functions/procedures.

    PS2. Note that I almost assumed that the patents were quality patents.
    Naturally, a general enough or easy enough patent can block off almost all of
    world from walking their dogs. Hopefully, these patents would all be struck down
    in court, and we would have nothing to fear from them. When describing the
    substeps, an orc will try to avoid as much specificity as possible to be as
    inclusive as possible. Ex, step 2 might be re-specified as some a, b, and c but
    leave these substeps general to include all ways of doing step 2 that follow a,
    b, and c. [Those with patent experiences can probably correct this post and/or
    provide more insight.. things might actually be worse for the humans than
    suggested in this comment.]

    PS3. Patents can be used to block "interop" because interop of a
    complex enough software product has many many opportunities for patents and
    these can be optimized so that avoiding at least some of them would involve the
    equivalent of walking on your hands to work.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Thursday, November 20 2008 @ 11:01 PM EST
    I see the mathematics types asserting that a program is a mathematical
    expression or at least reduceable to that. And I'll take their word that
    there's a mathematical theory that backs this all up.

    I approach the programming task as distilling an expression of desire into a
    sequence of precise statements that will use existing information to produce a
    useful result.

    The real problem with making a patent out of a programmable task is that any
    competent programmer given a mandate to produce a certain result out of a set of
    inputs will write a program to do just that.

    Software patentability means that the first guy who gets the job can stop
    anybody else from doing the same job.

    [ Reply to This | # ]

    Can the gist of legal arguments be patented?
    Authored by: chrism on Friday, November 21 2008 @ 01:05 PM EST
    Mr. Quinn:

    How would you like it if the gist of legal arguments were patentable subject
    matter? That's why most programmers don't like the idea of software patents.

    Emotion aside, the main reason I (a programmer) think software should not be
    patentable is that patents are being granted for obvious stuff. In your piece,
    you suppose that the problem of sorting the obvious from the non-obvious is
    solvable.

    I contend that it is no more solvable for software than for legal arguments,
    story plots, and other works of art. I challenge you to explain why you think
    it is solvable for software and why you (presummably) don't think it is solvable
    for legal arguments.

    Even if it were solvable, however, I would have another objection. Let's pick
    one an algorithm we can all agree is non-obvious and required world class
    research to invent: RSA. I think RSA, and other algorithms just as hard to
    invent, are invented all the time without patent protection being offered or
    used.

    We gain nothing by extending patent protection to them and stand to greatly slow
    the rate of progress by granting patent protection.

    Here's my prediction as to how this is going to play out: software patents will
    either be rendered useless through open source patent pooling strategies and
    other efforts, or they will allowed to become so stifling and cause so much
    damage to the economy that everyone will realize the only way forward will be to
    have no software patent protection at all.

    I would be curious to know if you can shed any light on how often software
    patents are effectively invoked. I'll bet if you honestly plotted the
    effectiveness of software patents over time you would see that they have been in
    decline for the last 10 years.

    What do I mean by effectiveness?

    An effective patent enforcement event would be one where a patent-holder is able
    to take legal action to stop a competitor, or it would be an event in which a
    competitor is deterred from competing with the patent holder to such a degree
    that the patent holder enjoys an observable advantage in the marketplace and
    thus redeems the dream that R&D sunk costs will be more justifiable in the
    presence of a patent system than in its absence.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Saturday, November 22 2008 @ 08:07 AM EST
    Having said all that:
    Did you remember to patent your statements here
    so they could not be used in the court bye some patent lawyer
    as his arguments? Without paying your some licence fees?
    Otherwise, as someone said (me):
    Court cases are notoriously using older cases for their own benefit, isn't that
    plagiarism?

    How about the wheel?
    If it was patented: would the rest of the world have to use a square one, or
    maybe some odd shaped one?
    Perhaps, we would have to continue walking, because the idea of having something
    that turns on a shaft would infringe on the patent of the wheel. And, how do we
    know that the idea, as it happens most of the time, wasn't "picked" up
    somewhere else?

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Sunday, November 23 2008 @ 03:06 PM EST
    Many many responses have been concerned with arguing that software is
    mathematics and as such cannot be patented. These arguments don't strike me as
    particularly compelling unless one is willing to extend the argument to
    hardware. Here's why: Consider an an (IP) firewall such that you can buy from
    Cisco, Juniper, Checkpoint, ... etc. Ignore for a moment how the firewall is
    implemented and consider whether it should be possible to patent the concept of
    firewall. One would hope the answer is no, such as it was not possible to
    patent the idea of a supermarket. So, the next question is whether it should be
    possible to patent a particular implementation of a firewall. If we carry on
    with the supermarket example then the answer is yes, it should be possible to
    patent a particular implementation. The critical question being how specific is
    that implementation? An applicant will want the patent to be as broad as
    possible to try and cover (minor) variations whereas others working in the same
    area would like the Patent Office to ensure that patent to be as narrow as
    possible so that they do not infringe. Since I can implement a firwall using an
    ASIC, FPGA or software on a general purpose CPU then unless the argument here is
    that I should not be able to patent the ASIC/FPGA version then any argument that
    I should not be able to patent the software version does not hold water since
    there is nothing special about the software version. Thus the issue isn't
    software patents per se, but rather the inability (for whatever reason) of the
    Patent Office to reject or severely restrict applications that effectively try
    and patent a concept rather than an implementation.

    Personally I'd prefer that there were no "software patents" or at the
    very least the period was reduced to say 5 years since I see little value in
    obtaining one except as a defensive measure to fend off claims from those that
    do.

    However going back to the firewall example, how can I justify blocking a patent
    on a firewall implemented in software at the same time as allowing a patent on a
    firewall implemented as an ASIC? Until I can see an argument for that or an
    argument for not allowing the ASIC patent then short of abandoning the patent
    process entirely then it only seems fair to allow software based patents.

    [ Reply to This | # ]

    Answering Gene Quinn, Patent Attorney - Updated
    Authored by: Anonymous on Monday, November 24 2008 @ 10:25 PM EST
    I have a CE/CS hardware and a software background backing this statement:
    computers are currently all Boolean Algebra processing machines -- a form of
    mathematics that is directly translated to electronics, via transistors.
    Therefore, anything they can ever run is math in series, no matter how complex.
    The power of such simple logic is that it can be abstracted to almost any
    representation, but that does not change the fact that all that is being done is
    MATH.

    That a lawyer believes he can interpret this fact properly into legalese,
    without a background in the sciences involved, shows hubris more than
    knowledge.

    [ Reply to This | # ]

    Groklaw © Copyright 2003-2013 Pamela Jones.
    All trademarks and copyrights on this page are owned by their respective owners.
    Comments are owned by the individual posters.

    PJ's articles are licensed under a Creative Commons License. ( Details )