And, as presented in this patent, its a trivial enhancement on a conventional linked list. This is a patent for a data structure. There is no implementation there. Hell, there is no algorithm there. Its just someone who said, "Hey, I can put two forward pointers in each element of a linked list!" and wrapped a bunch of legalistic crap around it. This patent doesn't need prior art to be invalid.
> its a trivial enhancement on a conventional linked list.
Indeed it is. The patent should not have been granted, and from previous discussions about this, there is ample evidence of prior art.
However, exaggerating this patent by claiming it is a "linked list" patent diminishes the conversation around patents. It doesn't make patents sound worse. It makes those who are anti-patent seem disingenuous. This patent is bad enough on its own merits without implying that someone was granted a patent for the linked list concept as a whole. If Subaru were issued a patent for a new method of fuel injection, would it be appropriate to claim that they were issued a patent for the internal combustion engine?
> This is a patent for a data structure. There is no implementation there.
What is a data structure if not an implementation?
> However, exaggerating this patent by claiming it is a "linked list" patent diminishes the conversation around patents.
The title of the patent is "Linked List". How is that an exaggeration?
> If Subaru were issued a patent for a new method of fuel injection, would it be appropriate to claim that they were issued a patent for the internal combustion engine?
I think you misunderstand my point. I did not claim that this person patented linked lists. I claimed this person patented a trivial enhancement to a conventional linked list, and did not provide any implementation detail (which is really what makes it trivial).
On the subject of implementation, I do not see a data structure description as an implementation, any more than I see an algorithm as an implementation. Being an electrical engineer I am biased towards thinking of implementation as an actual, functional system (not necessarily hardware). I know there are many patents where this definition of implementation doesn't hold, but that is why I am uncomfortable with software and business method patents in general, and think chemical and drug patents should be a special category.
> The title of the patent is "Linked List". How is that an exaggeration?
Now you are being disingenuous. The title has no legal significance. The only thing that has legal significance is the list of claims, and the are to be read as a conjunction (A & B & C...)
I don't think he ever claimed Linked Lists were patented. The title of the post is "Patent #7028023: Linked List". That's entirely factual based on the number and title of a patent.
At no point in his comments do I see him say "A linked list has been patented" or something similar.
> The title of the patent is "Linked List". How is that an exaggeration?
So it's a poorly titled patent. All that tells me is that the inventor was too unoriginal to even come up with a better name. If he'd titled it "the wheel", would it be accurate to claim that a patent was granted on the wheel?
>I think you misunderstand my point. I did not claim that this person patented linked lists. I claimed this person patented a trivial enhancement to a conventional linked list, and did not provide any implementation detail (which is really what makes it trivial).
I actually think you misunderstand my point. I agree that this is trivial and obvious. However, that doesn't justify exaggerating the actual claims ("linked list patented!"). People who are already dead-set against software patents might enjoy this, but they're just being self-congratulatory, and there's no real point.
People who are in favor of software patents or on the fence will instead recognize the exaggeration and dismiss the argument as disengenuous. Worse, they may take this as evidence that the anti-software-patent movement has no real basis, because the movement demonstrates that it has to exaggerate in order to even make its point.
You don't seem to understand the patent system in the US. Title and summary of a patent tend to mean shit. When a judge is ruling on a patent violation, they will only take the claims of the patent into account.
> What is a data structure if not an implementation?
The patent is a cartoon of a half-baked idea. It does not even describe how to implement element addition or removal. (Unless the caller maintains some special structure, many O(1) list operations become O(N). Removal is delicate because you need all incoming pointers.). It's unclear whether the "inventor" ever implemented the data structure.
First, it should be obvious that I was not defending this patent. Attacking the patent as "a cartoon of a half-baked idea" is pointless, and doesn't answer my question at all.
Second, the patent describes an implementation that allows multiple traversals. That it doesn't cover addition or removal seems irrelevant. The patent is for the structure that allows the traversals. You could build up the structure in a number of ways, but the end result would be the same.
"The implementation of a data structure usually requires writing a set of procedures that create and manipulate instances of that structure." (http://en.wikipedia.org/wiki/Data_structure)
If you gloss over construction and modification details, this "invention" is entirely covered by "Fortran-style" linked lists which have been in common use since the 1950s. (Store the primary list in an array, then have one or more integer arrays containing the index of the next node. Relative to storing the "aux_next" pointer inside the node, this allows dynamically creating and destroying an arbitrary number of indices.)
I don't think the patent office or judicial system generally refers to Wikipedia for what constitutes an implementation.
This invention is obvious and trivial and there seems to be lots of prior art. I'm not sure why you still seem to think I'm defending it. Regardless, describing how these lists should be constructed would not make this any less trivial or obvious.
The original point made by vonmoltke was that the patent text does not define an implementation in any meaningful sense. My wikipedia link was merely corroborating my opinion that an implementation of a data structure involves the fundamental operations on that data structure. If a data structure implementation can be complete without such details, then an AVL tree is equivalent to a red-black tree.
Ironically, what you're asking for is not a more complete implementation, but more algorithms. If I patent a mechanical device, it's not expected that I describe how to build the device. That's not the invention, and it's not the implementation (it's an algorithm for producing an implementation). Likewise, if the patent is on the in-memory structure that allows for multiple list traversals, then describing how to build that structure is pure algorithm, not implementation, and outside the scope of the patent claims.
Sure, but "system and method" is a sham to get past the "can't patent math rule". Software patents by necessity describe an abstract implementation. Rarely do software patents describe the hardware in any meaningful fashion.
Honestly, patents on data structures seem more in line with patent law than patents on algorithms. They're supposed to cover physical devices, like a vegetable peeler or something. Patenting an algorithm usually works by saying "a computer that implement this algorithm"; patenting a virtual object seems a lot cloaer to the spirit of patents than patenting a procedure by embedding it in a general-purpose physical object.