Hacker News new | comments | show | ask | jobs | submit login
Patent #7028023: Linked List (google.com)
90 points by yen223 1832 days ago | hide | past | web | 62 comments | favorite



I posted it on http://askpatents.com if you'd like to list prior art. http://patents.stackexchange.com/questions/738/prior-art-for...

Even an issued patent can still be invalidated. http://patents.stackexchange.com/questions/587/if-a-patent-h...


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.

[1] https://github.com/TheJare/SpeedHasteSrc/blob/master/game/th...


You would need to have been storing cdrs as well as cars for it to be considered valid prior art.


This is a bit more general than either a doubly-linked list or a skip list, but it seems a pretty straightforward extension of those ideas.


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.

However that's still fringing on patent trolls.


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.


> 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.

People are lazy, news at 7.

> If he'd titled it "the wheel", would it be accurate to claim that a patent was granted on the wheel?

No, because the scope of the patent is based entirely on the claims. Nothing else has legal significance.


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.


In the patent-law sense, an implementation is a manifestation in hardware that performs some function.


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.


Sounds like a skip list, first described in 1990: http://en.wikipedia.org/wiki/Skip_list


I am stunned. Seriously, seriously stunned.

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".

http://news.ycombinator.com/item?id=4153732

...


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>

Patent Troll!


The only sorts of patents that should be granted are ones where you fire giant snowballs into the desert in order to irrigate it.

http://worldwide.espacenet.com/publicationDetails/biblio?CC=...


Somewhat like a Skiplist, which is introduced in a 1990 paper: http://en.wikipedia.org/wiki/Skip_list

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.


By the same author:

"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."

http://www.google.com/patents/US20120144069


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."


"How do you get a patent ..."

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.


Patent examiners actually take pride in their high rejection ratio.


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!



Hey, if you have solid prior art, post it to patents.stackexchange.com

Someone has already started:

http://patents.stackexchange.com/questions/738/prior-art-for...


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


Damn, guess I have to step it up one more level and put a fourth pointer on there...


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.


The closest solution for this is the SHIELD act. Write your elected officials and rally support!


So, unless it s open source software, how would they know who implements their patented list?


There are many companies who make a living by finding software patent infringement for their clients, sometimes through analyzing decompiled source code.


Java LinkedList: http://docs.oracle.com/javase/6/docs/api/java/util/LinkedLis...

Since J2SE 1.2 (December 8, 1998)


I believe linked lists are much older than that though.


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.

What a mess!


This guy has to have some massive balls to do this.


Why? He has nothing to lose. If it's rejected, it's rejected. But if it's accepted.. well you have something going now don't you?

As long as there's a legal way you can exploit something, someone will do it.


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.


I think we need to coin a new acronym: Yet Another Bogus Patent.


Isn't this basically what e.g. MySQL secondary indexes are?


It's a troll patent. Is it owned by a patent troll?


Anyone know the cost of getting a patent like this?


It varies based on claims and size of the filing entity. There's a fee list here:

http://www.uspto.gov/web/offices/ac/qs/ope/fee100512.htm

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.


The examinators should probably be fired.


Examiners and the filers should be exiled to Zimbabwe with one day of water and bread crumbs.


What makes you think there is no food in Zimbabwe?


Wow what a load.


Awesome




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: