I feel like we are separated by different view points which obscure the
communication. I also we are making progress. We learn from each other. You are
giving up the discussion too soon.
Here are a few points where I have
something to add.
The hardware only follows the instructions
present in the software. For mathematic/algorithm based patents to be valid they
need to be a part of a possibly real machine; they must transcend from the pure
theoretical into the real. So my focus has been on how software is an extension
or customization of the characteristics that the hardware can
exhibit.
Then I must mention this: mathematical algorithms are
intended to be executed. By intended I don't mean the intention of the
programmer. I mean the intention behind the very definition of the concept of
algorithm. When Alan Turin, Alonzo Church, Kurt Godel, Stephen Kleene and many
others developed the foundational concept of computation theory their intention
was to define what is a computational procedure which could be actually carried
out to solve problems. This was in the 1920s and 1930s, well before the
invention of the computer.
You don't need to argue the programmer's or
user's intention. You can go directly to the fundamental notions of algorithm
and computation and show the intentions of the mathematicians who have
discovered the mathematical foundations of computer science.
If you wish I
suggest you consult some references. This article in the
Stanford Encyclopedia of Philosophy reports where to find quotations of Alan
Turing which indicates this intention. Or you may read the PDF
file of his seminal article (downloadable at the link). This is the article
where he first present both the Turing machine and the universal Turing machine.
The text is in mathematical language but if you go directly to section 9 you
will find a plain English justification of why he defined the Turing machine the
way he did. The intention of being executable is apparent. Does this
help?
My understanding is that contents are likely never
patentable, they may be copyrightable though. Hence my focus has not been in
consideration of content. I don't believe software is to be considered as
content as far as patents should be concerned.
Please explain why.
My article brings all the ingredients necessary to prove software is
contents.
From your post it seems that utility is a sticking point. Is
contents useful? I think that in many cases it can be useful. A phone book is
useful. Pictures at a crime scene or used to support insurance claims are
useful. I don't think utility distinguishes contents from a patentable
invention.
No I didn't overlooked utility. I believe mathematics and
contents are not patentable even though they could be useful. This is reflected
in my argument about the intention of the mathematicians. It shows that the idea
that abstract mathematics isn't meant to be useful is a myth. Computations are
meant to be carried out to solve problems. I believe useful is not the opposite
of abstract.
I would not consider the operands for such
instructions to be a component of materials you may categorize as contents all
the time. It's very possible that these instructions may be called with operands
that have been previously set by software during the execution of prior
instructions. In this case, the operand is merely part of the existing machine
state, and not a part of content.
What is the difference between
machine state and contents? Operands are bits. They are symbols. We can inspect
them with a debugger and ascertain their meanings. What you call machine states
is symbolic data which has meanings. Contents doesn't stop being contents just
because the end user doesn't watch it. Cuneiform tablets were contents even
during these centuries where they were buried in the sand and nobody knew the
language.
I think you should look again at the concept of universal
algorithm. The instructions are data. They are symbols. They are input to an
algorithm which is executed. Why would this input be different from other
inputs? All data is a machine state in some sense.
You should also consider
the situation where the universal algorithm is not the hardware instruction
cycle. Why would a bytecode be something other than data? How about programs for
language which don't follow the imperative paradigm? These programs are not
instructions. The notion of a program directing the hardware is not applicable
in these cases.
One of the reasons I brought the abacus, the user
and the instructions (on paper) into my first post was to simplify the computing
system and bring things to it's very basics so that what software does exactly
may become more obvious.
You have simplified some aspects of the
issue. But in doing so you have evacuated the notion of universal algorithm.
Your analysis is not complete until you have taken this into account. The
existence of the universal algorithm is key in showing why software is contents
because it is what distinguishes a stored program computer from a dedicated
circuit. You can't account for the general purpose character of the computer
without this notion. Actually, without it you don't have software. You just have
a computation.
[ Reply to This | Parent | # ]
|