Multiple internal storage linked lists should be a prime example. I was using them on my 1995 racing game [1], where each car was contained in a global list of cars (for game logic and rendering), a list of cars for each sector of the track (for driving AI), and a list of cars for each map tile (for collisions).
Not sure if this is formally valid prior art, as each list a car is part of can be considered different lists (i.e. different set of members), not different sequences on the same set.
Frankly, I'd rather see this abomination be dismissed on the grounds of being obvious.
Not only straightforward, but also not novel. For example such lists have been described (with source code) in this textbook (published in 1994): Taming C++: Pattern Classes and Persistence for Large Projects by Jiri Soukup. Here's a picture taken from this book illustrating the concept: http://community.moertel.com/~thor/blog/pix-20061201/soukup-...
This has been discussed before, it is not just a linked list.
It is a list which has elements that not only point to the next element, but the element after it, and so on. (As to provide a recovery method if one element is to be destroyed, or to ease implementation for removal etc.
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.
I've complained about patents once before, and I think this sort of patent is a perfect example of something that wouldn't be worth a single day of patent protection. It's a colossal over-payment. Does it really make sense for our society to "pay" 20 years of protection for an idea that is so trivial to most of the practitioners in the art?
It's like a street magician selling the secret to their cup and ball routine for $100,000. It's not a mystery, and it isn't worth the price. But for some reason, the USPTO reasons, "well, I haven't seen your cup and ball routine before, so here's the check." They have far too low a standard, and we are paying far too high a price for the vast majority of patents. We can't keep doling out decades of protection for such common-place "inventions".
This guy is amazing... he invented everything.. from air purifiers and supplementary bicycle handlebars, shoe tongue securing devices to linked lists (as early as 2002!!!)
</sarcasm>
I'm certain that at least one older algorithms text I own mentions skiplists, and there is no doubt much other prior art here, seems like the kind of thing that might find its way into kernel scheduling queues.
"A method includes addressing, through a command generated by an application executing on a computing platform, one or more device(s) in storage communication with the computing platform based on an appropriate communication link. The method also includes accessing, based on the addressing, a physical register of the one or more device(s) through an appropriate interface therein. Further, the method includes obtaining statistical information associated with a performance of the one or more device(s) at the computing platform through the access of the physical register."
How do you get a patent regarding "A method includes addressing, through a command generated by an application [...] based on an appropriate communication link" to be issued?
All I read was "This patent regards using a software-controlled computer to communicate with another computer in an arbitrary manner which can allow for data statistics and performance tracking. Oh, wait, that's not specific... Hmm... Oh wait! Yes, and you have to get the data from a register."
The only way I can make sense of these ridiculous patents is if the patent examiners are under pressure to grant patents as part of their yearly performance metrics.
And yet the environment in which they work encourages more granted patents, as the new patent examination facilities being promoted by the administration imply (to me). Obama's/admin's stated reasons are to grant more patents faster.
Their rejection rate by women? Seriously, we keep seeing these brain dead patents. If the patent examiner doesn't understand linked lists, they shouldn't be examining the patents!
So this is a linked list that's ordered in two different ways? If I create a third pointer to reorganize the same data in a third way, can I patent that on top?
Nope, Claim 2 is for a tertiary pointer as well. Your attempt to patent a triply-sequenced linked-list would be rejected as insufficiently innovative. Unlike the patent in question. cough
I am a strong supporter of the patent system, and in general an advocate for software patents. This, however, is a likely example of an error. We accept a certain error rate in any process, and if the USPTO is expected to be infallible, then fees would skyrocket and people would complain that patents cost a million dollars. Anyone who tried to enforce this patent would more likely than not have it invalidated in court or on re-exam. Apparently the assignee (LSI Logic, hardly a 'troll') has chosen not to enforce this patent on Google and Microsoft because it is so weak. So before we grab the pitch forks, remember that the "system" as a whole has worked here, even if the PTO let one through. The tech world has not come crumbling down, Google was not shut down, and everybody who has ever modified a linked list has not been sued out of oblivion. If you have a much better method, I'm genuinely interested to hear it.
It doesn't matter. The non-zero probability of having to defend against this turd patent is real. Maybe the "owner" of the patent is reasonable and decides not to enforce it, maybe not. Maybe they sell it later and it is enforced. There is still a nonzero cost to this patent. The greater problem is companies see the PTO is willing to let shit like this through and therefore patent everything in sight. The "system as a whole" failed utterly here.
There are many companies who make a living by finding software patent infringement for their clients, sometimes through analyzing decompiled source code.
I believe that doublely linked lists are described by Knuth in the Art of Computer Programming volume (something). My recollection is that it may have been in a problem or note. They are definitely used in UNIX for the run queue where rapid traversal was necessary. I recall them from an internals course I took at UNIX expo back in the mid '80's.
Additional pointers are trivially implied so I don't think that this patent should not stand.
I am a former employee of LSI, and I actually had a chance to participate in a meeting with one of the patent lawyers at the company. This patent was specifically talked about in that meeting.
1) LSI is not a patent troll. They generate a small portion of their revenue through patents, but most of that is through its purchase of Agere (cell phone tech patents).
2) The patent in-question is near impossible to prove that it is being used by anyone unless the code is available to look at. And even then would require going over their code to find the issue. Most lawyers don't want to put in that much work to find a violation, they would rather have more broad patents to litigate or monazite with.
3) As there is a good chance that there is prior art to this patent, it probably won't be used by LSI. Worst-case is LSI hits financial troubles and sells the patent to a troll that tries to use it.
In my opinion, it should be obvious to anyone skilled in the art that this patent should not have been issued and those who filed it and approved it have participated in a fraud against the US legal system.
Sadly, that's not how the patent system is setup in the US. It rewards companies who try to file as many patents as possible and see if they can get those patents granted. It falls on the USPTO to validate and grant those patents.
As the USPTO is underfunded and understaffed, a lot of possibly invalid patents are granted.
Of course those are just the filing fees, most filers will file using patent attorneys which bring the ~$500-ish dollar cost up to $5k-10k per application.
Even an issued patent can still be invalidated. http://patents.stackexchange.com/questions/587/if-a-patent-h...