decoration decoration
Stories

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

Gear

Groklaw Gear

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


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

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

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Logic is a fundamental branch of mathematics | 1347 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Programming is just math? Software patent examples
Authored by: PolR on Wednesday, June 13 2012 @ 04:54 PM EDT
You have never seen in math a definition by case? There are math functions which
are defined to take one value when some condition is true and some other value
when the condition is false. This is an If in math.

There is a branch of mathematics which doesn't look like calculus at all which
is called computation theory. This part of mathematics is one of the
mathematical foundation of computer science. This is the part of mathematics
where the concept of algorithm is defined and studied. The ability to make
conditional decisions is one of the elementary notions. In particular it is
required to established Turing completeness which is one of the most important
concept in the math of software.

I am afraid that without software patents the protection you seek won't be
available. For most of us, this is considered a good thing.

[ Reply to This | Parent | # ]

This is a common problem: Significant invention, lives in software, no protection available.....
Authored by: Anonymous on Wednesday, June 13 2012 @ 05:36 PM EDT
That is, the inventions discussed are methods involving real inputs and
instructions for creating real outputs doing real things for utilitarian
purposes....software/math...

I am on the fence: Inventors of such things (such as myself -- thinking about
how to virus-proof computer systems) DESERVE some help. But the system doesn't
create justice -- 15+ years for Novell vs Microsoft, and counting....so maybe we
need to toss the patent system.

Moi: The patent office is clearly incompetent at this, so are the courts. How
about a specific, limited (2-3 year) software/algorithm patent category,
preferably with high standards of non-obviousness and a completely different set
of examiners?

Oh, and one more thing: If you put it into a recognised public standard,
(H.264, etc) that's a license for the public. [Don't get me started on ANSI/ISO
standards and their fees!!!!!]

(Christenson)

[ Reply to This | Parent | # ]

software patents through and through
Authored by: Anonymous on Wednesday, June 13 2012 @ 06:26 PM EDT
I had a look at the claims of US Patent 5,454,069.

Claims 1-12 are "method claims" that cover nothing but a mathematical algorithm plus one step at the end that says "produce a physical object using the output from this algorithm".

Claim 13-15 start with the magic words "An apparatus", but then proceed to describe the same math algorithm as Claim 1 using clauses that begin with "Means for ...". The first clause is "means for acquiring and storing the series of serial section images" and the last clause is "means for producing the physical three-dimensional model of the object from the plurality of vectors representing pixels of the object". Between those two, are approximately a dozen other "means for" clauses which just describe mathematics used in Claim 1.

I think this is a great example of a "software patent". I think it should be considered a junk patent. There's nothing innovative or novel or non-obvious in it except for the mathematics, which is not supposed to be patentable.

This patent effectively prevents ANYBODY from using this particular pile of mathematics if they then proceed to make a physical object using the results of the algorithm. What this patent covers is basically "do a bunch of math on some numbers, and then send the result to a standard output device". The output device might be interesting enough to deserve a patent, but I don't see why we should let anybody patent doing math and then sending the results to an output device, that's just stupid (and dangerous). I don't care how narrowly tailored it is, this is still a patent on mathematics and that is just unacceptable.


Okay, on to US Patent 7,986,859.

Claims 1-5 of this one are "method" claims, and claims 6-10 are "system" claims. All of these claims just describe math performed on RGB values, except that the RGB values must be "sensor values" from "[..] a Bayer array of pixel elements".

So similar to the first one you cited. This is a patent on "get numbers from input device, do some math on the numbers", which is ridiculous (and dangerous). Mr. Fischer now owns a patent on some standard image-processing math. Photoshop probably infringes, if you can prove that it ever gets used on images that came from a Bayer array of pixel elements. Yay.

Claim 11 of this patent starts with the magic words "An apparatus comprising:" and then lists (1) "a memory holding [.. RGB] sensor values output by a Bayer array of pixel elements .." and (2) "a processor configured to" [do all of the math described earlier in the patent].

So I'd say Claim 11 is even more offensive to me than the first ten, because it reads on a general-purpose computer whose memory holds both the "sensor values.." and executable program code that performs this standard image-processing mathematics.


See, this is why software patents are so dangerous! I propose that we fix the problem by (1) locking all patent lawyers at the bottom of an elevator shaft, and (2) dumping printed copies of software patents on top of them until they are crushed or suffocate. We have to stop these parasites from locking up mathematics and making it unusable, before it's too late (and all our innovators flee to countries where they can use mathematics without risk of a life-ruining lawsuit).

[ Reply to This | Parent | # ]

    Programming is just math? Software patent examples
    Authored by: Anonymous on Wednesday, June 13 2012 @ 06:37 PM EDT
    Do you think that there should not have been any patent, because it is just math?
    Yes
    I say the program is making decisions and that puts it outside of pure math.
    Sorry, but that's nonsense. Everything the program does is math, including any "decisions" it might make. Moreover, all it does is manipulate symbols in some particular way.

    The "meaning" we assign to those symbols is not part of the mathematics and plays no part of the calculation. This is a problem, because the last step of the patent (5,454,069) is basically "use these numbers to make a physical object". But that requires that the physical machine that makes the physical object, interpret the mathematical symbols in some way -- numbers (abstract mathematical symbols) are fed into the machine, and a physical object comes out. (Inside the machine, the numbers are used in some way to control physical devices--motors, etc. which are doing something in the physical world as the object gets made... so thats what I mean by "interpret" the numbers, and its very low-level and mundane.)

    Anyway, here is where the problem comes in: Suppose I want to make my own device which also produces some kind of physical object at the end, even in a very different way from the one in the patented invention? It can't use this patented mathematics now.

    So this patent doesn't cover just a specific invention (a specific physical machine that I made) or equivalent machines that make a physical object at the end. It covers ALL POSSIBLE SOLUTIONS TO THIS PROBLEM that involve this patented math and end with making a physical object. That makes it a barrier to innovation rather than an encouragement.

    [ Reply to This | Parent | # ]

    Logic is a fundamental branch of mathematics
    Authored by: Tkilgore on Wednesday, June 13 2012 @ 07:17 PM EDT
    Sorry, I am going to rant a little bit, too. Don't take it personally.

    > I only got through calculus, but I do not recall an "If" in
    math.
    Most of programming is just math, but the "If" allows decisions to be
    made. I think this is a profound difference between math and programming.

    Wow. This is your problem, right here. And, alas, it seems to be a fundamental
    problem with the legal system and the patent system, too.

    I am a research mathematician. I do that for a living and get paid for it. I
    also work in a university where I teach calculus among other things, which my
    colleagues usually lump together in the category of "service courses."
    What do we do in "service courses"? Speaking from the point of view of
    someone with inside knowledge of the field of mathematics, what we do in such
    courses is to provide the pre-digested and regurgitated results of real
    mathematics, which took a lot of people a long time to discover and put
    together, and we do this for a large audience of people who are actually not
    interested in what we do, where any of this came from, what the logical
    underpinnings are, nothing like that. They just want some quickie results and
    formulas and/or they have to take those courses because they think they want to
    be scientists, engineers, or MBAs and some administrator or academic counselor
    has explained to them that certain of our courses are a prerequisite.
    Mathematicians spend their actual time at work on mathematics with *proving*
    things. This can not be done without serious application of logical thinking and
    without, sometimes, very long chains of argument and analysis which are filled
    with if-then statements from one end to another. Pages and pages in articles,
    whole books filled with it -- which students who only learn to do a bit of
    differentiation and integration never see and for the most part don't want to
    see. From experience any one of us could tell you that the most unpopular parts
    of those courses, the parts which the students think are "hard" and
    which they complain about the most and learn the worst are such things as
    infinite series, their convergence, divergence, and their relationship to
    functions by way of such methods as Taylor and Maclaurin series. Oh, and I did
    not even mention that much of the rest of what we do is to construct algorithms.


    We mathematicians often fear the consequences on society of the half-knowledge
    that the system forces us to pass along. We fear decisions made at the top of
    the social pyramid by people who think they know our subject because they were
    vaccinated against it at a very superficial level in a calculus course. We fear
    that the shortcuts we are forced to take by the system, which demands from us
    the mass education of large numbers of students, will come back and bite us.

    I have also written a good bit of code. I have even, for example, been involved
    in writing a Bayer demosaicing algorithm myself. It is in the Gphoto project.
    Mercifully, as far as I know not all methods for carrying out Bayer demosaicing
    are patented, and the algorithm used was based upon something which was
    published in a journal article. So I do not believe it would have been patented.
    Needless to say, I certainly hope not.

    The bayer demosaicing problem is one of the fundamental problems of digital
    imaging, given the way that digital cameras are constructed. The Bayer array for
    collecting the data is patentable. It is a physical device which has
    microsensors all over it. That is understandable. But a patent on methods of
    processing the data which comes out of a Bayer array, which is a standard piece
    of hardware in the digital camera industry, is definitely not funny.

    Alas, your ignorance of what I have been doing for a living for the last 35
    years or so seems to be equal to the ignorance of what programmers do for a
    living, on the part of judges, attorneys, and patent examiners. Sorry again if
    this seems harsh. As I said, I do not mean it personally.

    [ Reply to This | Parent | # ]

    • I love this part - Authored by: Anonymous on Wednesday, June 13 2012 @ 10:08 PM EDT
    Boolean logic
    Authored by: Wol on Wednesday, June 13 2012 @ 07:52 PM EDT
    I'll ignore the argument about whether philosophy is a subset of mathematics, or
    mathematics is a subset of philosophy.

    But philosophy is all about logic. And logic most definitely is part of
    mathematics.

    And without boolean, if-then-else type logic, you cannot reason. You cannot be
    logical. YOU CAN'T DO MATHS.

    The "if" statement is at the heart of mathematics. Without it,
    mathematics could not exist.

    Cheers,
    Wol

    [ Reply to This | Parent | # ]

    Programming is just math? Software patent examples
    Authored by: Wol on Wednesday, June 13 2012 @ 08:04 PM EDT
    Taking the C code and rewriting it in another language is a derivative work. If
    you can show that somebody else saw your work and re-implemented it, then they
    copied it. Plain and simple.

    Whether they copied it enough to infringe copyright is another matter, but if
    they used your work as a reference then that is a pretty clear infringement.

    If they used your work as an "oh - it's possible - I'll work out how to do
    it my way" then it's not a copyright violation, and even if the patent were
    valid (and if it's software it's not) it *shouldn't* be a patent violation. And
    if the method isn't obvious, then I shouldn't come up with the same method so it
    won't be a patent violation anyway.

    But the problem with ALL software patents is that once you successfully define
    the problem, the solution is *always* trivial, and *usually* obvious. Is your
    method "obvious in hindsight"? I'll be surprised if you say no.

    Cheers,
    Wol

    [ Reply to This | Parent | # ]

    Programming is just math? Software patent examples
    Authored by: Anonymous on Wednesday, June 13 2012 @ 10:54 PM EDT
    Here is my response to your comments.

    I would like to see congress step in with real patent reform. Part of that
    reform needs to be a definition of math for patents. Do they mean all math
    including computation theory, or the lay definition of just formulas. If
    congress does not do it, the Supremes will. Other parts of the reform need to
    include getting rid of submarine patents, but that is another post.

    The problem of over claiming is real and part of every patent I have ever looked
    at. For 5,454,069 and 7,986,859, I know what was sent to the patent lawyer, and
    how it expanded. Both started off with just one claim (a method for finding
    unsupported objects in 3D images and a method for converting a Bayer filter
    image to an RGB image with an intermediate step of converting the image to HSI).
    Part of the problem lies with the patent office not rejecting enough claims and
    some form of punishment for over claiming. Not sure how you do that, but it
    needs to be done.

    I posted my math education to show that I have the typical math knowledge of a
    programmer. I agree that most programmers do not care about understanding the
    math they use. I would even say a lot of programmers (myself included
    sometimes) do not even know how to do the mechanics of the math they use. We
    have enough knowledge to know that what we need can be done, and the skill to
    pray to Google to find a routine that does it. An example would be finding the
    vessel edges in an angiogram. I can look up and find that the edges are 2/3 of
    the way between the peak of the first and second derivatives. Now I just need
    to find a function that calculates derivatives from real data and tells me the
    peak between two points.

    Yes, I think the solution in both example patents is obvious after finding it.
    I think that is true for almost any patent (ever see a drawing of variable valve
    timing?). Once you know how to do something it is easy. As was stated in
    another reply, some of the math that we take for granted took a long time to
    discover and prove. It was not obvious until it was done.

    If the cost of getting rid of bad software patents is the end of all software
    patents, then so be it. I agree that the bad patents are killing innovation and
    small companies (like me). I would like to give it one more try to fix the
    patent system as Dr. Michael Risch has suggested, but if it cannot be done or
    fails, kill it.

    [ Reply to This | Parent | # ]

    Programming is just math? Software patent examples
    Authored by: Anonymous on Thursday, June 14 2012 @ 07:47 PM EDT
    I only got through calculus, but I do not recall an "If" in math. Most
    of programming is just math, but the "If" allows decisions to be made.
    I think this is a profound difference between math and programming.

    You are wrong precisely because your experience of "math" is limited
    to that small field known as "calculus" or "real analysis".
    It is "set theory" that deals with predicates.

    The "profound difference" you see is between "calculus" and
    "math", not between "calculus" and "programming."

    Or, perhaps more fundamentally, MATH IS NOT ABOUT NUMBERS! NOT AT ALL!

    It is about formal sets. It just happens that one of the most simplistic of the
    interesting formal sets around, is the set of all counting numbers. (More
    complex sets include, well, complex numbers...integers, real numbers, imaginary
    numbers, etc. )

    What did your calculus course say about, say, prime numbers--a most fascinating
    set in many fields of mathematics! or mstrices ... or manifolds ... or integer
    division rings ... or sequences (beyond, of course, the distinction between
    "converging" and "nonconverging" and a warning that the
    latter are toxic)?

    The list is (literally) endless.

    Math is not numbers. Software is not numbers. It's just that, for various
    reasons, numbers provide a useful shorthand for representing a number of
    interesting sets. And so computers are built with an inherent bias towards
    interpreting specific bit patterns based on numeric relationships. But there is
    nothing inherently "numeric" about any bit pattern: "Hello
    World" is a valid, non-numeric value that would be treated as a sequence of
    arbitrary elements (characters), possibly part of a "language" (a most
    interesting kind of non-numeric set!), possibly even part of a
    "program" (again, a most interesting kind of non-numeric set, also
    subject to formal kinds of analysis).

    Math is not "numbers". Math is "sets" upon which interesting
    formal relationships ("logic") can be defined. And I've heard more
    than one mathematics teacher decry the fact that logic is not taught before
    arithmetic in elementary schools.

    Nobody is saying programming is calculus. It is not.

    What mathematicians are saying is: there is more to math than is dreamt of in
    your calculus syllabus.

    [ Reply to This | Parent | # ]

    Groklaw © Copyright 2003-2013 Pamela Jones.
    All trademarks and copyrights on this page are owned by their respective owners.
    Comments are owned by the individual posters.

    PJ's articles are licensed under a Creative Commons License. ( Details )