
Authored by: OpenSourceFTW on Saturday, November 24 2012 @ 02:13 PM EST 
Um, so what else does software consist of other than algorithms? Meaning that if
I removed all the algorithms from a piece of software, what would be left?
Resources (i.e. stored data, possibly copyrighted, but not patentable), and what
else?
Libraries are simply collections of algorithms and resources. And hardware is
not software, so electronic mechanisms don't count.
Asking this as a programmer.[ Reply to This  Parent  # ]


Authored by: Tkilgore on Saturday, November 24 2012 @ 05:14 PM EST 
> Software patents cover algorithms, nothing more
No. There are lots of software patents on _doing_ something, with no algorithm
at all involved, at least not in any obvious way. If I can be so free with
words, I think that these would be called "bad" patents by those who
would like to fix up the system, and perhaps "even worse" patents by
those who think that all software patents are bad.
A nonexhaustive list with just two items follows.
Stallman has an old paper called "Anatomy of a trivial patent" in
which he (quite properly) lambasted a patent on the use of a RAID array (not
patented) to preserve the data on a website (not patented) which exists to
stream audio (also not patented). It was the _combination_ of using a RAID array
on a website which streams audio, which received the patent. Where is the
algorithm? I don't exactly see one.
More recently, I understand that someone is going around suing practically the
whole industry about using encrypted connections to websites. No specific
encryption algorithm, so no algorithm here. But if you have a website which
allows encrypted connections to be set up  so it is argued  you are a
violator.
These kind of things are just as bad as it would have been if someone, say back
in 1920, had been allowed to get a patent on using this new thing called an
automobile  to go to and from the grocery store. And there are a few too many
of such patents.
[ Reply to This  Parent  # ]


Authored by: Wol on Saturday, November 24 2012 @ 05:54 PM EST 
No. Software IS just one big algorithm. It instructs the hardware (the computer)
what to do. But it itself is just an algorithm.
ChurchTuring tells us that any program can be mechanically (mathematically)
converted to any other. Lambda calculus (used as a programming language) is
provably maths.
Therefore software is maths. Maths is algorithms. A program IS an algorithm. End
of! It tells the computer how to compute a function.
Cheers,
Wol[ Reply to This  Parent  # ]


Authored by: Anonymous on Saturday, November 24 2012 @ 08:35 PM EST 
Quite literally. I guess you've never studied Computer Science.
But as another commenter noted, most of these patents aren't even patents on
algorithms (which are illegal under the Supreme Court's standards)  most of
these bogus patents are "any method of doing X" patents, which are if
anything even more illegal, since they fail to "reduce to practice".
Most of the rest are obvious combinations of preexisting parts.
It's clear that big money has been involved in creating a large number of
unconstitutional "letters patent".[ Reply to This  Parent  # ]


Authored by: IANALitj on Saturday, November 24 2012 @ 11:23 PM EST 
I am a retired programmer, and think of myself primarily as such, not as a
retired lawyer.
There is a great deal more to computer programming than devising algorithms,
unless one takes the extreme position that any computer program that meets some
minimal qualifications is an algorithm. Most people, when they are talking
about algorithms, mean a more substantial mathematical rule.
Let me take a simple example, from a numerical analysis course I took about
fifty years ago. (A quick googling reports that the first department of
Computer Science in the United States was established at Purdue University only
in October, 1962.) Suppose one wishes to find the roots of a quadratic equation
that has two real roots. Using the familiar notation, one is solving ax*x + bx
+ c = 0 for x (where a, b, and c are real constants, a is nonzero, x is a real
variable, and I am using x*x for xsquared to avoid the inconvenient
superscript). The constraint that the two roots are real is satisfied when b*b
is greater than or equal to 4ac. If those two quantities are equal, there is
only one value of the root of the equation (which is considered a double root),
and that value is b / 2a.
For convenience, designate by d the positive square root of b*b  4ac. The two
roots of the equation are then (b + d) / 2a and (b  d) / 2a .
That's the familiar algorithm from our high school years. However  and this
is my point  if one simply puts this algorithm on a computer, one gets a
fairly rotten computer program in some cases.
The problem is one of computers, not theoretical mathematics. When two floating
point numbers of close magnitudes and opposite signs are added on a computer (or
subtracted if the signs match) there will be a great loss of precision. As an
easy example, the square root of 10 is approximately 3.1623, to five significant
figures. Pi is 3.1416, also to five significant figures. However, the
difference is 0.00207, and this is accurate only to three significant figures,
not five. (In contrast, the two numbers can be added with no particular loss of
precision.)
Thus a sound computer program for finding the real roots of a quadratic equation
will use the one of the two forms
(b + d) / 2a and (b  d) / 2a
where there is an addition, rather than a subtraction, to find the first root.
This can be done without loss of precision. The program will then use another
method to find the second root (most easily that the product of the roots is c /
a ). This also permits the second root to be computed without loss of
precision, when the first root and the coefficients are known.
I submit that there is more to writing a good computer program to find the roots
of the quadratic equation than knowing the traditional algorithm. Most of the
time that a programmer spends writing programs is choosing from innumerable ways
of saying approximately the same thing (in the language being used) so as to get
the simplest program giving the best result.
[ Reply to This  Parent  # ]


Authored by: Ian Al on Sunday, November 25 2012 @ 02:17 AM EST 
It is true that you can see all those abstract ideas expressed in the source
code. That's why Richard Stallman raised Diehr, which is the Supreme Court
making that point about patents. The abstract ideas cannot be protected by
patents. The abstract ideas cannot be protected by copyright, either. It is not
the ideas expressed in a book that are protected by copyright, but the creative
expression, itself.
As far as software is concerned, you can patent the algorithms you string
together, as long as the algorithms are patentable subject matter or you can
protect the creative expression in the source code that you fix in a medium like
a computer text file, with copyright.
With patents, the string of software algorithms may be seen to be based on the
abstract ideas of the author in much the same way as you can see the ideas of a
machine inventor in the arrangements of components in a patented machine.
However, the law says that it is the arrangement of the components which is the
protectable invention. If the arrangement of components in your invention is not
a major innovation in its own right (i.e. without the abstract thoughts being
taken into consideration) then it is not patentable.
With copyright, the same barrier has to be overcome. Unless the arrangement of
words and phrases fixed in the medium are demonstrably expressions newly created
by you, then they are not protected by copyright. The ideas behind the
expression are unprotectable. Just because there are abstract ideas expressed in
software source code, it does not mean that those abstract ideas are protected
by copyright.
There is, of course, a whole body of US court cases where the law, as stated
above, has been completely ignored. Oracle were awarded a patent on when a
software writer decides to resolve a textbased label to code. There were not
even any algorithms in what they succeeded in patenting.
It did not protect programs which did particular things. It protected the
abstract idea of resolving textbased labels to executable code any time that
was part of imagining a virtual computer machine.

Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid![ Reply to This  Parent  # ]




