26 comments

[ 3.6 ms ] story [ 74.0 ms ] thread
(comment deleted)
Interesting read. I also believe that software patents reduce your own flexibility in work. If you spend the time and money to patent your software, you won't be changing it any time soon, even if you eventually discover that there is a better way to design your product.
Why wouldn't you just patent the new method and even further raise the barrier to entry for competitors?
> If you spend the time and money to patent your software, you won't be changing it any time soon, even if you eventually discover that there is a better way to design your product.

How does that follow?

It certainly isn't true with physical device patents, like automatic transmission mechanisms, so why would software be any different?

I stopped reading here:

> I doubt whether our software could be patented anyway, but if you can patent a [linked list](http://www.google.com/patents/US7028023), perhaps it could be after all

If this guy knows so little about patents that he thinks the title of that patent defines what it protects, and apparently has not even looked at the claims, then why should I listen to his opinion about them?

The claims are very closely aligned with the title.

Claim 1 - Linked list with two traversal orders Claim 2 - Linked list with three traversal orders Claim 3 - Method of traversing the lists in claim 1 and 2 Claim 4 - A device (computer) to traverse the lists in claim 1 and 2

What is claimed is very clearly not just a standard linked list. We can argue about whether this patent should have been granted, and whether its claims are invalid... but there can be no dispute about whether this person has "patented a [scratch that, the] linked list."
But they have patented "a linked list". They haven't patented all linked lists and they haven't patented the standard trivial singly-linked list, but "a linked list" is what they seem to have a patent on.
That's pretty pedantic, and I can't imagine a single person actually understood my comment to mean what you said. But I've edited it, just the same.
It's not pedantic, because I think you are misrepresenting the author. You're edited "quote" is not actually what he said, but you justify not reading the article using your misreading of the sentence you quoted.
I don't think so. Every patented invention is also an instance of a broader, unpatentable class. Patent a novel electric motor that gets better efficiency than anything ever made before? Well, obviously the examiners don't know what they're doing, because you just patented an electric motor.

See what I mean?

Very clearly my ass. From the patent:

> The present invention overcomes the disadvantages and limitations of the prior art by providing a system and method for traversing a list using auxiliary pointers that indicate the next item in a sequence.

The "invention" here is called a sentinel, and have been used in conjunction with linked lists since time immemorial. For "prior art" I would refer you to CLRS.

Go ahead and downvote me. Please.

Like I said, we can argue about prior art. But are you really saying that these claims cover a standard linked list?

Also,

> Go ahead and downvote me. Please.

Yawn. And you can't downvote someone's reply to your own post, btw.

> But are you really saying that these claims cover a standard linked list?

That's exactly what I'm saying. For all the patent's talk of primary, tertiary, and secondary pointers, the "invention" here is a standard linked list with sentinels. If I hired a patent attorney to write patents against the programs I wrote for my freshman-year data structures course, the results would be much the same.

I don't read these claims as referring to a sentinel node. Could you explain how you got there? (Note: I'm not really a programmer... I just tinker a little bit. So I could be wrong about that.)

And I don't have any agenda here, other than to promote intelligent discussion about patents in a place where that happens too little.

No, the invention here is not a sentinel. It's having a bunch of things each of which has two or more next-item pointers so that you can traverse the list in two or more different orders. For instance, this would cover any doubly-linked list.

... Which is pretty strange, actually, since the patent itself references prior art involving doubly-linked lists. Maybe that's why they had a separate claim for a list with three "next" pointers in each node. I have no idea why claims 1, 3 add 4 weren't thrown out by the examiner given that everything they describe is done by every doubly-linked list implementation anywhere ever. (Claim 2 looks obviously not novel to me, but it's not quite such a slam-dunk as the others.)

So, anyway. The patent is preposterous. It isn't a patent on The Linked List. It doesn't involve sentinels. It doesn't cover any singly-linked list. It does cover any doubly-linked list (which is one reason why it's preposterous). The author of the OP is right about the patent's preposterousness but wrong to describe it as "patent[ing] a linked list". monochromatic is right that the patent isn't a patent on the linked list, but arguably wrong to think this proves the original author is a twit (perhaps s/he knows perfectly well what the patent purports to cover, but preferred terseness to precision). rtperson is wrong to say that the patent is about "a standard linked list with sentinels", wrong to be obnoxious about it, but probably right that there's prior art in CLRS at least for claims 1,3,4.

(comment deleted)
It patents a multiply-linked list, for 2 and 3 links. I don't think most programmers would make the distinction because it's a natural extension to the linked list. The idea is trivial, and theoretical computer science literature is full of much more complicated graph-based data structures, of the form node + n pointers, each pointer having a different type/color/characteristic.

There is no functional difference between the patented data structure and 2 or 3 separate linked lists, other than storage space and ease of altering node data that's shared between lists. No mention is made of traversal using varying types of link/edge depending on internal state; the patent describes traversal using [one set of] the auxiliary pointers exclusively.

Although you may have a point that this patent does not cover the canonical 1-pointer linked list, LSI nevertheless patented a very small subset of common graph structures, which were well known (not novel), trivial, and which I think most programmers still call "linked lists".

> In the end, I doubt owning a patent on something will have any impact on our ultimate success or failure.

How I wish that were the case. Unfortunately, there are hundreds of patent trolls out there that would love to use their patents to extract value from your company. When the trolls come knocking (and they will), having a patent of your own may literally be the only defense.

Everyone who wants to understand just how incredibly corrupt the US patent system is needs to do themselves a favor and listen to the "When Patents Attack" episode of NPR's This American Life. Then you'll understand why neatly-reasoned arguments are, in this instance, entirely besides the point.

Patent trolls are by definition non-practicing entities. How does having your own patent defend against them, if they're not actually producing anything that would infringe it?
Again, the error you're making is mistaking patent law with the insane way patent law is actually enforced. Listen to "When Patents Attack," and you'll understand that non-practicing entities have been very successful lately in filling their pockets at the expense of the genuinely productive.

Patents are also not supposed to overlap each other. However -- and again this was made startlingly clear by NPR -- they do, and by the tens of thousands.

You're making the mistake of believing yourself to be in a world where reasonableness prevails.

You're not responding to what monochromatic said at all. He(?) asked how having a patent portfolio of your own is supposed to protect you from trolls' suits, since you can't very well countersue them for patent infringement (as non-practicing entities by definition don't actually make anything). Your response, that patent trolls do successfully sue people, just seems to strengthen monochromatic's point.
I think you missed my point.
I apologize for doing so. I think my idea of holding your own patent was not for the ability to counter-sue, but (and I am quite obviously not a lawyer) so you have a legal basis to petition for dismissal of the patent troll's suit. If there were any effective way to savage non-practicing entities, I'm sure we'd have fewer trolls out there.

It would be a weak form of defensive patent aggregation (http://en.wikipedia.org/wiki/Patent_troll#Defenses), but it would still be better than nothing.

My larger point is that, by vocally opting out of the patent game, the author of the original article has practically painted a bullseye on himself. Averring yourself to be above the fray seems to me to be a sure-fire way to be victimized yourself.

Defensive patent aggregation is about the ability to cross-license. If a troll isn't making anything, they don't need to license your patents.

Now, your own patent could in some circumstances be used as prior art against the patent troll... but if that's all you're using it for, why not just publish everything you're doing? Publications are prior art just as much as patents are.

> I think my idea of holding your own patent was not for the ability to counter-sue, but (and I am quite obviously not a lawyer) so you have a legal basis to petition for dismissal of the patent troll's suit.

What, exactly is this "basis"?

Note that a given thing can be covered by multiple patents, owned by different people.

Yes, patents can be prior art against other patents, but you don't need to own a patent to use it as prior art.