Judy arrays are patented(en.wikipedia.org) |
Judy arrays are patented(en.wikipedia.org) |
Patents use their own specific, strange language. The claims, as modified by other precedents, only apply in certain specific situations which may be different than what a casual reading would imply. And, for any of dozens of reasons the holder may not be interested in ever trying to enforce the patent.
So simply by raising the possibility, causing attention to be drawn, and uninformed discussions to be spawned, people's time is being wasted. If they become uneasy, or start spending engineering effort to 'work around' something that they hardly understand and that may never be enforced, more time is wasted.
And by getting more eyes on the fuzzy patent, you may have put more people/projects at risk of treble damages for 'willful infringement', in the rare case where the patent is actually enforced later, or undermined their ability to make a case for obviousness (because many teams came up with the same approach without seeing the patent).
The better policy is to ignore such "appears to be patented" reports, unless and until there's a credible threat from the holder(s) to enforce in specific ways, as checked by experts. Let these patents (and panicked overbroad interpretations) wither away in unenforced obscurity.
Patenting a data structure sounds ridiculous, but it's a little less ridiculous once you consider how complex the underlying algorithms actually are.
Patent law is a black-on-white subject, either you support it or not. It's impossible to grant some patents under subjective premises and be fair at the same time.
Is that not the job of patent examiners?
I can tell you mathematically how a windmill grinds corn but that does not make my description into a windmill. On the other hand, laying down the mathematical description of a Judy Array IS the array itself!
http://en.wikipedia.org/w/index.php?title=Judy_array&dif...
"Removed speculation that this subject is related to the referenced patent. Wikipedia is not a crystal ball or a place to discuss how the law MAY be applied."
tl;dr: patent was done for defensive reasons.
http://preshing.com/20130107/this-hash-table-is-faster-than-...
(yes, this hash table is vulnerable to timing attacks; point is, for many workloads Judy brings in considerable complexity but is actually inferior to other solutions).
See http://nothings.org/computer/judy/ for a more thorough analysis of Judy arrays (at 20 kLoC) versus straightforward hash tables (at 0.2 kLoC).
You can't patent an algorithm, at least not in the U.S. The expression of an algorithm can be patented. Patent lawyers often tell people to replace an algorithm with a system, which is an expression of the algorithm.
Which brings me to my point : imho the chances that humans are capable of real original thought is nil. Don't get me wrong, humans are very capable of creatively combining ideas from very different disciplines and non-human sources to arrive at surprising insights and works. But I'm pretty sure humans are not in fact capable of creating something out of nothing, even when it comes to intellectual works.
For instance, just off the top of my head, consider this: "OK, you can distribute the source all you want, but as soon as you compile it, you've created a patented product, the binary of which you can't distribute."
After all, the patent itself is supposed to give all the description one needs of how to implement the patented invention, it's when you fix the patent into something real that you violate the patent.
Edit: What drove me to mentioning the separateness of patents and copyright was some of the discussion around GPLv3, e.g. http://fsfe.org/campaigns/gplv3/patents-and-gplv3.en.html#Ex...
If a separate implementation is NOT a derived GPL work, then patent licensing may be a factor.(IANAL etc.)
The idea behind patents is protecting the innovator. How does patent law protect anyone when it's trivial to argue a patent shouldn't have been granted in the first place (because it's not novel, or it's just math, blah blah)? You could say that about all patents ever filled.
It defeats the whole purpose behind patents. Whoever has the biggest patent pool and deepest pocket wins, not the little guy on the sweatshop. The only people to benefit from patents are lawyers.
Unfortunately, IP law today is a perversion of this original principle.
How is that true? Isn't a description a model [1], never the thing itself?
JPEG met the novelty, non-obviousness, and usefulness tests, as did LZW. That they're considered nearly trivial these days is because they were such influential algorithms that they've become part of the programming canon.
That said, please don't represent my stance as a matter of a cutoff. Many things in this world, including the question of patentability, are fuzzy distinctions that require some subjective "good judgement." Common law legal systems are bad at handling this, which is partly why judicial philosophy is so complex.
If I oppose patenting an algorithm/data structure, it's because I don't think patent protection is necessary in order for people to push the state of the art forward.
It is considered trivial because it is trivial: http://rosettacode.org/wiki/LZW_compression#Clojure
If it were trivial when the patentability question came up, it wouldn't have been a published paper in the IEEE Transactions on Information Theory and an active area of publication for at least the next six years.
Whether or not it's trivial today, this was the cutting edge of computer science when the patent was granted.
JPEG was patented. I can understand why. It was novel, it was not obvious, and it was useful. That trio makes a pretty good case for patentability, ignoring whether algorithms can/should be patented in general.
From what I've read, Judy arrays are novel, not obvious (moreso than JPEG, in my subjective opinion), and useful. So it doesn't seem far fetched to patent Judy arrays, ignoring whether algorithms can/should be patented in general.
Which is why I said "a little less ridiculous". This has nothing to do with complicated math, even though both data structures/algorithms involve complicated math.
You could say the same of the Pythagorean theorem, or FFT. Thankfully in the case of the later, IBM's patent lawyers exhibited sanity.
JPEG and wavelet compression in practice is surprisingly simple math. But the theory that explains why and how it works is far from trivial.
Any equation that you can make will merely describe a Wenkel engine, not be one. Equations for mathematical concepts are those concepts (expressed in a particular format).
Seriously, read that.
You're calling it trivial with over 30 years of advancements in computer science behind you.
Yes, of course I fucking can. The ability to do that is part of what makes a "person having ordinary skill in the art" an important concept. Even 30 years ago LZW represented an incremental improvement on the current state of the art.
Regardless of the novelty of the idea, LZW has always been trivial to implement.
> it wouldn't have been a published paper in the IEEE Transactions on Information Theory and an active area of publication for at least the next six years.
I am not arguing that it fails the usefulness test, nor that it was not important.
Your "this looks like a pain in the ass to implement" defense of the patent is absurd. You clearly would support the patent regardless, since you seem to be fine with the LZW patents.
I'm talking about patents. You're answering that LZW is trivial today. Yes, it is, but the time difference is huge when you're talking about a patent that is 30 years old and now public domain, especially when you're talking about a "person having ordinary skill in the art" regarding a patent application.
The great thing about threads like this is that we probably agree on the key points, but it becomes a disagreement the moment you escalate your language.
I am not saying that LZW patents were bad patents because LZW is or was trivial. I am saying that defending Judy array patents because of Judy arrays are hard to implement is foolish because no such defense can be mounted for LZW.
The reason both should be unpatentable is that they are both algorithms.
If I write out a book parametrization a Wankel engine and describing the chemistry and physics of the system necessary to make it turn, I have not implemented a Wankel engine, and I am in violation of no patents. It is a description of the engine, not an engine.
A mathematical description of an algorithm can be executed. It is the algorithm. The description is an implementation and any implementation is the description. There is literally no line between the two, the only thing that you can change is the notation in which you write it.
If you don't see the difference, you are just being obtuse. The difference is as plain the difference between physics and mathematics.