|
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.
|
|
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 | # ]
|
|
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 | # ]
|
- He asks the wrong question - Authored by: kenryan on Friday, November 14 2008 @ 10:18 PM EST
- The right question is the right answer - Authored by: Anonymous on Saturday, November 15 2008 @ 02:42 AM EST
- He asks the wrong question - Authored by: Ian Al on Saturday, November 15 2008 @ 03:59 AM EST
- He asks the wrong question - Authored by: wvhillbilly on Saturday, November 15 2008 @ 05:25 PM EST
- And in the US, it's even more specific - Authored by: Anonymous on Saturday, November 15 2008 @ 06:11 PM EST
- Would a book fit Quinn's definition? - Authored by: kawabago on Sunday, November 16 2008 @ 01:51 AM EST
- He asks the wrong question - Authored by: kjs on Sunday, November 16 2008 @ 11:37 AM EST
- He asks the wrong question - Authored by: Anonymous on Sunday, November 16 2008 @ 05:09 PM EST
- Bessen & Meurer Paper on value of patents - Authored by: Anonymous on Monday, November 17 2008 @ 11:21 AM EST
- We answer the wrong question - Authored by: Anonymous on Monday, November 17 2008 @ 04:07 PM EST
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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: Anonymous on Saturday, November 15 2008 @ 12:06 AM EST
- Maths 101 - Authored by: l2718 on Saturday, November 15 2008 @ 03:20 AM EST
- Maths 101 - Authored by: Anonymous on Saturday, November 15 2008 @ 04:09 AM EST
- Maths 101 - Authored by: Anonymous on Sunday, November 16 2008 @ 12:58 AM EST
- Maths 101 - Authored by: Anonymous on Saturday, November 15 2008 @ 07:31 AM EST
- Maths 101 - Authored by: coats on Saturday, November 15 2008 @ 09:55 AM EST
- Maths 101 - Authored by: Anonymous on Saturday, November 15 2008 @ 10:38 AM EST
- Why 2s complement? - Authored by: yscydion on Sunday, November 16 2008 @ 12:14 PM EST
- Slightly OT - Authored by: marcosdumay on Monday, November 17 2008 @ 05:17 PM EST
|
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 | # ]
|
|
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
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
- Fifth paragraph - Authored by: Anonymous on Saturday, November 15 2008 @ 03:55 AM EST
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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
- Computers - Authored by: Anonymous on Saturday, November 15 2008 @ 07:53 PM EST
- Computers - Authored by: Anonymous on Sunday, November 16 2008 @ 03:38 PM EST
- Computers---a bit of pedantry - Authored by: Anonymous on Monday, November 17 2008 @ 04:59 AM EST
|
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 | # ]
|
|
Authored by: IMANAL_TOO on Saturday, November 15 2008 @ 04:47 AM EST |
Nothing that really fits
---
______
IMANAL
.[ Reply to This | # ]
|
|
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:
- 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.
- 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.
- 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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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.
- It is not needed.
- 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
|
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
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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
|
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 | # ]
|
|
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
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: Anonymous on Saturday, November 15 2008 @ 03:38 PM EST |
. [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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.
- with software, innovation
has happened and continues to happen at breakneck-pace without the need for
patents
- 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
- 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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: irvingprime on Saturday, November 15 2008 @ 05:51 PM EST |
- 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.
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.
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
Authored by: attila_the_pun on Sunday, November 16 2008 @ 10:23 AM EST |
Need I say more? [ Reply to This | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
- Don't forget... - Authored by: Anonymous on Monday, November 17 2008 @ 07:58 AM EST
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
- Here's a thought - Authored by: Anonymous on Tuesday, November 18 2008 @ 10:19 AM EST
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
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 | # ]
|
|
|
|
|