Computer Ethics, Spring 2011

Corboy 301
Week 11, April 13





Software Patents

Again, here are four categories of software-patent issues:


Reading original patent descriptions

You can look them up online. Follow uspto.gov -> patents -> patft (uspto.gov/patft). Or go directly to the search-by-patent-number page:
      http://patft.uspto.gov/netahtml/PTO/srchnum.htm

Some software patents

Here's an interesting list of some software patents, supposedly "random" though some particularly famous ones are sprinkled in:
    http://bat8.inria.fr/~lang/hotlist/free/licence/patents.html

Another list can be found at: http://www.textfiles.com/law/softpat.txt

XOR cursor, patent 4197590 (more below under Heckel's paper)
Method for dynamically viewing image elements stored in a random access memory array

cpu Stack Pointer register, patent 3794980, to George Cogar, 1971. Supposedly, though I can't find the source, this was purchased by DEC [?] and eventually placed in the public domain. Or not enforced. Or, possibly, it was in fact licensed by Intel/motorola/everyone_else.

ATT setuid-bit patent, # 4135240, invented by Dennis Ritchie, applied for in 1972 and later placed by AT&T in the public domain.

British Telecom patent on the hyperlink, files 1976, granted 1989. Patent number 4,873,662. In 2000 they attempted to sue a large number of websites. The patent itself apparently refers to a system in which multiple remote users can access "blocks" of data on a central computer.

Altavista patents on "web searching". Altavista did have several such patents on basic web "crawling". Most were predated by the "archie" archive-searcher for ftp sites, developed by Alan Emtage in 1989. Altavista was purchased by CMGI, which some claim is a patent troll.


RSA encryption: patent 4405829

Choose primes p and q.
Reveal n=pq
Find e and d so xed = x mod n (this is not hard) Common values for e: 3, 5, 17, 257, 65537. Note (xe)d = xed.
(n,e) is the public key, d is the private key

RSA uses standard high-precision arithmetic in its calculations; the underlying number theory has been well-known for centuries. The patent was for the APPLICATION of these standard methods to encryption. That application was certainly novel.

The RSA patents finally expired, after much controversy. Part of that controversy was self-induced; the patent owner at one point appeared to grant a general license for noncommercial use, but then backed away from that.

The RSA idea is not "obvious-in-context". In fact, RSA is, for many people, the classic Good Example for why software patents are needed.

Compton 1989 patent on multimedia, despite Apple Hypercard in ~1987.

Steir patent 5,060,171 on artificially adding hair to a person's image [Garfinkel article; obvious-in-context]

Eolas v Microsoft: About a way for running "applets" in a browser window. See below.

NTP v RIM: the blackberry patent

mp3: lots of development went into this

Lempel-Ziv / LZW compression, patents 4464650 [?], 4558302

This is the compression scheme in GIF file formats. The gif format was developed by CompuServe in 1987. A year later, they noticed that the algorithm was patented, and that the patent was currently held by Unisys. Allegedly, Unisys told Compuserve at that time that they would not need to pay royalties.

In 1999, Unisys demanded that some noncommercial websites pay a $5000 fee for hosting files in the gif format (an interesting strategy, given that the sites were not themselves rendering the images). Some commercial sites were asked for even more. It's not clear whether anyone paid it; most affected sites rapidly switched to .jpeg or .png. Some observers were especially offended by the fact that Unisys allowed the use of the GIF format as a free standard until it became well-established, and then demanded fees.

There's some question as to whether this was the only or even the dominant reason for the shift to PNG format; the latter does offer more features (especially alpha and gamma) than GIF, and is a lossless format unlike JPEG.

Note that LZW compression is not "obvious-in-context"; you can realize you need compression and still work very hard to develop LZW.

Natural-order recalculation in spreadsheets:

Patent 4398249
More below following Heckel's paper

Cell A depends on B if A needs B's value in its formula
Rule: Before calculating A, calculate all cells A depends on.
Duh.
The algorithm is called "topological sort"; published in the CS literature in 1963.

Rene K. Pardo and Remy Landau filed for a patent in 1971: U.S. Patent 4,398,249. This was an important case in allowing software patents (initially their request was denied as an "algorithm")

Spreadsheets were a brilliant idea (Dan Bricklin, VisiCalc?), but not order of recalculation.


MS has patented the FAT disk format. Here is a summary of the events from the Public Patent Foundation, which had challenged that patent:

In April 2004, the Public Patent Foundation filed a formal request with the United States Patent and Trademark Office to revoke Microsoft Corporation's patent on the FAT File System, touted by Microsoft as being "the ubiquitous format used for interchange of media between computers, and, since the advent of inexpensive, removable flash memory, also between digital devices." In its filing, PUBPAT submitted previously unseen prior art showing the patent, which issued in November 1996 and is not otherwise due to expire until 2013, was obvious and, as such, should have never been granted. The PTO granted PUBPAT's request in June 2004 and provisionally rejected the patent in September 2004. In response to the rejection, Microsoft made amendments to the patent's claims. The PTO proceeded to allow the amended form of the patent. PUBPAT had no right to appeal that decision.

The fact that PubPat can't appeal or even respond to the decision is a serious due-process issue. If you are sued by Microsoft for using the FAT format, you will be allowed to respond to Microsoft's post-2004 amendments to the patent claims. But you will probably not.

Microsoft is now actively licensing the format to flash-card manufacturers. Why not switch to the free ext2 filesystem? Because that just is impossible, that's why.

It is unclear which patents Microsoft is most interested in pushing. While there are legitimate reasons for thinking that FAT itself might not be patentable, Microsoft later introduced a strategy for supporting both long filenames and also "8.3" filenames (8 char name, 3 char extension). The patent that covers the dual-name strategyis less vulnerable to "obviousness" or "prior art" challenges.

Microsoft sued the TomTom people (http://arstechnica.com/microsoft/news/2009/02/microsoft-sues-tomtom-over-fat-patents-in-linux-based-device.ars), because TomToms, although they are based on linux, use the FAT filesystem internally. The suit was settled two months later, after TomTom agreed to cut the FAT.

FAT is a good example of an idea that is obvious to anyone presented with the problem of how to create a simple filesystem suitable for small devices. However, there is the added problem of it's being standard (although an unofficial one); you can't just implement a workaround.



PTO (Patent & Trademark Office) problems:

ignorance is no defense: "submarine" patents
The entire process is secret: you can be making good-faith effort to be noninfringing and get hit with a huge verdict.

Infringement is considered willful if you had advance notice of infringing. Your belief that the patent was invalid is NOT a defense. Damages automatically triple.

Three groups of stakeholders:

Where do we fit in?

How large corporations manage:

small inventors:

Open source: voip

Legal advantage of small inventor: somewhat diminished with rise in legal fees & increased ambiguity

But small inventors can still sell to patent-holding companies.

Legal situation of large corporations:



Eolas v Microsoft

Patent 5838906: Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document, filed in 1994.

The alleged invention is about a way for running "applets" in a browser window. Is this really an "invention" at all?

Back in 1992, browsers just displayed images and static text. However, it was clear by then that applications could display content in windows created and "owned" by other applications; for example, MS Word could at that time display an Excel subwindow.

What was not foreseen was that browsers would become universal viewers of just about everything.

Microsoft v Eolas (+ Univ of California, as part of UCSF):
MS lost this case in 2004; was ordered to pay $521 million.  They then won the right to a new trial, but settled in 2007 before the beginning of the new trial.

Patent covers

a system allowing a user of a browser program ... to access and execute an embedded program object [or small computer program, often referred to as "applets" or "plug-ins"]

Patent filed 1994, granted 1998, USPTO review 2004, upheld 2005

See http://cse.stanford.edu/class/cs201/projects-99-00/software-patents/hypermedia.html

"Viola" prior art: may or may not be relevant: see http://www.viola.org

The Viola browser project was found by the district court to have been "abandoned", but the circuit court found that Viola version 1.0 was "abandoned" only in the sense that it was replaced with version 2.0.

Part of the technical issue was about the meaning of the term "executable application". The court allegedly gave this broad meaning. Microsoft claimed it only meant "standalone applications".

Eolas started by Michael Doyle, faculty member of UCSF. UC Berkeley is apparently the owner of the patent.

Doyle certainly had some early ideas, that came before Java applets.

Had the Eolas patent been more aggressively enforced, it would have been a huge impediment to the world-wide web.

2007: MS has claim they invented it; this loses in Sept, but Eolas & MS settle in August

October 2009: Eolas has launched a major lawsuit against just about everyone: press release. The list of defendants includes lots of sites that use web-embedded objects: amazon, apple, eBay, and youtube.

View 1: Eolas developed some early web-embedding technology, and got really lucky
View 2: Eolas patented Microsoft's 1990 Object Linking and Embedding idea, and got a 20-year license to fleece us
View 3: Eolas may control a "critical" piece of the web standards.


Consider the actual Eolas patent claim again. They have allegedly patented the idea that an applet could be displayed automatically within a browser window. In a sense, they have patented the idea that browsers can display certain kinds of content.

(Actually, their claim oscillates between the idea of displaying an applet, and the idea of displaying it automatically. This is a tricky issue.)

Who had the idea that browsers could display any content, and thus that that was all you really needed? One version of VMware used a browser plugin to view your virtual machine's console!

Maybe the deepest problem with the Eolas patent is that the whole idea of embedding one window in another is trivial. It might not have been trivial back in 1994, but only because browsers weren't well understood. Normally, if you patent a technique or machine, it will almost always become at least somewhat obvious in retrospect, but here the issue is a little stronger. It's that the idea here was inevitable, once browsers grew to the point that they were used to view all sorts of things. It's as if someone tried to patent a handful of general browser strategies, without developing them, in the hopes that one of them would pan out and they could collect licensing fees. (Eolas did generate a working version of their embedding idea, but they didn't do anything to popularize it as part of the web.)

To try to put it another way, advances in software often lead to radical changes in how we use the software. Consider browsers, or wireless, for example. Radical change in use patterns often leads to demands for obvious new features, that previously were either impractical or simply irrelevant.

Here's the PTO review upholding the Eolas '906 patent in 2005.

One of the things to get out of this document is the sense in which the PTO process favors the inventor; they are legally bound to interpret the inventor's claims in the most favorable light.

See Page 3 (p 7 of the pdf) for a discussion of "obviousness".

See also Page 11 (15) for a discussion of the Toye reference, in particular the discussion on Page 13 of an early X-windows version of Object Linking and Embedding. The NoteMail viewer could display active content: "any application that displays through an X-server can insert its output ... dynamically onto a notebook page through an embedded 'virtual window'". The patent re-examiner then asks whether NoteMail is "equivalent to" a browser.

Further on (Page 17/21) it is stated that

MediaMosaic does enable interactive control and manipulation of objects embedded in what arguably may be construed to be a "browser-controlled window," BUT ONLY AFTER USER INTERVENTION, such as by making a selection with a mouse. [capitals in original -- pld]

In other words, Eolas apparently has a patent on having something happen without having to click the mouse; their patent is for "zero-click" operation (one better than Amazon!). This was an important issue in 2003 as well. It is not a triviality. However, it is difficult to see how the invention of not having to click the mouse can be seen as deep. We're no longer talking about the idea of embedding applets; we're talking about automatically launching them.

Is not clicking the mouse worth half a billion dollars? That's more than the cost of every mouse in the US!



i4i xml patent, #5787449

Filed 1994, granted July 1998. Here is what the patent claims:

A system and method for the separate manipulation of the architecture and content of a document, particularly for data representation and transformations. The system, for use by computer software developers, removes dependency on document encoding technology. A map of metacodes found in the document is produced and provided and stored separately from the document. The map indicates the location and addresses of metacodes in the document. The system allows of multiple views of the same content, the ability to work solely on structure and solely on content, storage efficiency of multiple versions and efficiency of operation.

The great mystery is what this has to do with XML. Virtually all flavors of xml use embedded tags, <foo>like this</foo>. The whole point of the i4i patent is that it doesn't use embedded tags.

Except that there are suggestions that Microsoft did in fact develop a format for creating "custom XML schemas" that used the i4i method. Any xml schema that lets you set the tag values in one place and one place only, as opposed to doing a global search-and-replace, could be said to violate the spirit of the i4i patent.

Still, it is a stretch, to say the least, to believe that the i4i patent covers all custom XML schemas.

The following is from the blog of an Office product manager at Microsoft, Brian Jones, http://blogs.msdn.com/brian_jones/archive/2005/11/04/integrating-with-business-data-store-custom-xml-in-the-office-xml-formats.aspx.

XML Data Store

In Office 12, we've introduced a new feature to the formats that we're currently calling the XML data store, and the way it works is really simple. As you should all know by now, the new format consists of a ZIP file with a bunch of XML parts (files) inside. Up until now we've talked about all the parts that we in Office have defined to create our documents. You as a developer also have the ability to add your own parts though. You can take any XML file and put it inside the ZIP package. Then all you need to do is create a relationship from the main document part to your XML part, and the Office applications will roundtrip your XML with the file, which means:

Roundtripping your data: The ability to put your XML in the ZIP package means that you now have a place to store any data your solution may need. The data will travel with the document, but will always be stored as a separate XML part in the ZIP package. This means it's really easy to get to and modify without dealing with any of the application's data....

Separating data from the document: As well, because the information is stored in the data store, you benefit from the fact that the user cannot directly edit your data by editing the document (they can’t accidentally delete part of your data, since it’s stored separately.

This is kind of vague, but note that it may allow a separate XML area that is connected to the main document only via tags. However, the original i4i patent appeared to involve using the separate area for tag values; the Microsoft strategy on the face of it is for a separate area for entire XML files. The last paragraph is all about the real-world importance of separating the tags and storing them elsewhere.

See also Joe Wilcox's article at www.betanews.com/joewilcox/article/Is-Microsoft-violator-or-victim-in-i4i-patent-dispute/1250119565, in which he suggests that the Microsoft customers most interested in this new Office feature were those in the pharmaceuticals industry, which is exactly what i4i writes software for.

At the page www.afterdawn.com/news/article.cfm/2009/08/13/update_microsoft_knew_about_i4i_s_xml_patent, there is an alleged quote from Microsoft "newly leaked emails":

"We saw [i4i's products] some time ago and met its creators. Word 11 will make it obsolete," said one email from Martin Sawicki, a member of Microsoft's XML for Word development team.

That would make the '449 a defensive patent: one where the purpose is not to be a patent troll, but instead to allow you to launch defensive attacks against competitors that horn in on your market. This does not legitimize the patent completely, but does put it in a different context.

An excellent technical blog on the '449 patent is at http://broadcast.oreilly.com/2009/08/mircrosoft-and-the-two-xml-pat.html. There's a good example of what metacodes are all about, but also a somewhat cryptic discussion of point tags (like <b> in html) versus range tags (like <title> ... </title>, strictly hierarchical).


More on I4I v Microsoft and patent 5787449

First, here is what the patent claims:

A system and method for the separate manipulation of the architecture and content of a document, particularly for data representation and transformations. The system, for use by computer software developers, removes dependency on document encoding technology. A map of metacodes found in the document is produced and provided and stored separately from the document. The map indicates the location and addresses of metacodes in the document. The system allows of multiple views of the same content, the ability to work solely on structure and solely on content, storage efficiency of multiple versions and efficiency of operation.

Despite the italicized phrase, it is clear that at the time of invention the I4I claim was all about a perceived improvement on the existing practice of mixing tags and content inline:

For manual production of documents the intermingling of the markup codes with the content is still the best way of communicating structure. For electronic storage and manipulation it suffers from a number of shortcomings.

Yet further, there is a difficulty of resolving the markup codes from the structure. Markup codes have to be differentiated from the content stream they are a part of. This involves designating `special` characters or sequences of characters which should be identified and acted upon. This complicates the task of any routine which must work on the document.

This is incredibly basic. It is fundamentally not an issue. The only claimed improvement for the I4I approach is processing speed:

The present invention provides also for efficiency of operation on the document. The invention allows document operations to be much more efficient. It is no longer necessary to parse the entire document to locate the embedded codes. Differentiating codes from content is obviously no longer a problem since they are held in different areas. This also allows more efficient coding strategies to be developed without the restriction of ensuring that all codes are clearly differentiated from any possible content.

A further patent claim highlighting the concept of separation.

Thus, in sharp contrast to the prior art the present invention is based on the practice of separating encoding conventions from the content of a document. The invention does not use embedded metacoding to differentiate the content of the document, but rather, the metacodes of the document are separated from the content and held in distinct storage in a structure called a metacode map, whereas document content is held in a mapped content area.

It appears that I4I has managed to inflate their patent claims in court to cover any editing of xml, in such a way as to preserve some form of "original structure". I4I's patent is basically about how to maintain the "metacodes" (XML markup tags) separately from the document content, for efficiency reasons.

It is admittedly a logical chain from the idea of separating data and tags to the idea of separate editing of data and tags. But that chain is not in the patent.

I4I did indeed "invent" something. But what they invented was essentially the idea that some customers wanted to edit text documents that had an underlying XML structure. Once you realize that customers might pay for that, the creation of the actual product is obvious. This is very similar to the NTP v RIM case.

MS information on how the editing works: http://msdn.microsoft.com/en-us/library/aa212889%28office.11%29.aspx.

It appears to be true that Microsoft intended to take I4I's broader idea -- supporting the structural editing of XML-based documents -- and thus to take over I4I's business niche.

Somehow, I4I convinced a jury in East Texas that their patent covers any editing of XML, so as to preserve the structure. This is what Office 12 did.



After the jury verdict, Microsoft petitioned the District Court for a "Judgement as a Matter of Law" (JMoL), meaning that they wanted the judge to declare that the jury verdict contradicted the existing law in the case; that is, to find "there is no legally sufficient
evidentiary basis for a reasonable jury to find as the jury did." A high standard has to be met here, but this is indeed the appropriate avenue if the jury misunderstood the patent. However, the judge also misunderstands the patent; he wrote (in http://cs.luc.edu/pld/ethics/i4i_v_microsoft_district_jmol.pdf)

The ‘449 patented invention created a reliable method of processing and storing content and metacodes separately and distinctly. The data structure primarily responsible for this separation is called a “metacode map.” According to the patent, the “metacode map” allows a computer to manipulate the structure of a document without reference to the content. [p 2]

The metacode map is a data structure that once upon a time might have saved some computing resources, but which is trivial to work around by leaving the tags "in place" in the document. The metacode map has nothing to do with the idea of manipulating the XML structure without referring to the content, except in that it might suggest one possible way to do that.

However, here's the district court opinion on data structures:

First, Microsoft argues that i4i presented no evidence that the accused WORD products created “a data structure” as required by the Court’s construction of the claim term “metacode map.” The Court construed and instructed the jury that “metacode map” and “map of metacodes” in the ‘449 patent meant “a data structure that contains a plurality of metacodes and their addresses of use corresponding to mapped content.” The Court further construed “mapped content” as meaning “the content of a document corresponding to a metacode map.”

Essentially, I4I managed to claim that any way of storing "metacodes", including embedding them in the body of the document, amounts to storing them in a "data structure" as covered by the patent. Even though the stated point of the patent was that this data structure be "separate".

During trial Dr. Rhyne, one of i4i’s technical experts, explained that the meaning of “a data structure” was “a physical or logical relationship among data elements designed to support specific data manipulation functions.”

The issue, then, appears to be that I4I has figured out how to expand their original claims. The expanded claim is clearly still tied to the invention, and so the court elected to uphold it, but the expansion so waters down the original idea as to turn it into something genuinely obvious.

Maybe Microsoft's core problem is that they were not able to find a short and comprehensible way to say the following:

    embedded codes are prior art.



News update: the Supreme Court has agreed to hear this case, Nov 29 2010

From http://www.patentlyo.com/patent/2011/03/microsoft-v-i4i-shifting-weight-of-evidence-versus-shifting-burden-of-proof.html:

The issue is whether the District Court and Federal Circuit erred in holding that Microsoft was required to prove its invalidity defense by clear and convincing evidence "even though the prior art on which the invalidity defense rests was not considered by the Patent and Trademark Office prior to the issuance of the asserted patent."

The constitutional issue is whether overturning a patent requires the "clear and convincing evidence" standard rather than the "preponderance of evidence" standard. In particular, MS claims that the easier evidentiary standard should apply to prior art that the USPTO never reviewed in the first place, but should have.


Patent infringement suits

Note that we do not generally have much access to the judge's reasoning in these cases. There may be a written opinion, but often not, and in any event we generally don't have ready access to many of the documentsoffered in evidence.

(Some of the documents, though not all, are available from the Law Library.)


Photoshop and patents

It might seem reasonable that such a complex program as Adobe Photoshop has been effectively protected by patents. However, I can find no evidence that this is the case. I did find the following:

Macromedia has sued Adobe for patent infringement over some Photoshop options (http://www.managingip.com/Article/1327272/Macromedia-claims-Photoshop-patent.html)

The leading open-source alternative to Photoshop, gimp, may have had more trouble with Microsoft patents than Adobe's. In general, there are lots of notes out there from gimp developers discussing their patent woes. (I lost my specific reference, though.) Gimp has had to struggle with the LZW patent on the gif format (US expiration 2003, Europe 2004), and the possible jpeg patent.



State Street Bank case, and Business-Method patents

Patent 5193056

decided 1998; patent filed 1993
Basic outcome: financial-services software containing an algorithm is patentable. From the 1998 Federal Circuit decision:

(...) the transformation of data, representing discrete dollar amounts, by a machine through a series of mathematical calculations into a final share price, constitutes a practical application of a mathematical algorithm, formula, or calculation, because it produces 'a useful, concrete and tangible result' -- a final share price momentarily fixed for recording and reporting purposes and even accepted and relied upon by regulatory authorities and in subsequent trades.

Until then, business methods that contained software or algorithms could not be patented (to be more precise, this "business-methods exception" to patentability was an oft-stated maxim, but the courts had never ruled directly on it). The USPTO had trouble with this rule, in determining whether software was patentable, and at some point dropped their rule that software was unpatentable if it involved business methods. State Street Bank was granted a patent, and the case came as SSB apparently sued another bank which then tried to use the business-methods exception as a defense.

The State Street Bank case introduced the rule that a business method could be patented if it involved computers and "it produces a useful, concrete, and tangible result".

Once the USPTO began patenting software as part of a business process, it became too difficult to distinguish between sofware-as-algorithmic-invention and software-as-business-method. So the USPTO also reversed its longstanding refusal to grant patents purely for software (until then, software patents had to list some hardware involvement, although that was mostly a formality in practice).

This case opened the door to a huge influx of business-method patents, including Amazon's "one-click" method (below). For a while, the USPTO required business-method patents to involve computers (specifically, to have some connection to "the technological arts"), but even that was eventually thrown out in 2005 as too hard to enforce. However, there remains a great deal of overlap between business-method patents and software patents.

Exhibit A: Amazon "one-click" patent, # 5960411, granted 1999. Twenty-three days later, Amazon got an injunction against Barnes & Noble, and eventually won their case. BN had to stop using their "ExpressLane" shopping method.

The essential feature of the 1-click patent appears to be that you don't have to go through the usual multi-screen checkout process; you can just click "send me this stuff the usual way", and it will remember all your previous entries.

Paul Barton-Davis, one of Amazon's founding programmers, called the 1-Click patent "a cynical and ungrateful use of an extremely obvious technology" [emphasis added]. By "ungrateful", Barton-Davis apparently meant that Amazon had benefitted enormously from public-domain software ideas.

Other examples:
Several more-mundane patents on online shopping carts

IBM[?]'s patent on suggesting new purchases based on past ones

Things MAY be reined in by the recent Bilski case.


Stallman article: why software is different


1. There's no advance warning (but isn't this true of any patent?)

2. There is no easy way to read them. They are deliberately obscure. And, for software, this is directly tied to the fact that the algorithms are very general.

3. Some patents are just plain inappropriate, but fighting them is exhorbitant.

4. chicken-and-egg problem with converting from .gif to .png: how can you get browsers to support this? (This is partially resolved by browser plug-ins.)

5. "prior art" is very hit-or-miss; sometimes (often!) it was considered too obvious to document. More specifically, ideas ruled by the PTO to be patentable were often "CS folklore" but too obvious to publish.

6. Software tends to use many ideas per application, and so one software project might require licensing of many diffferent pieces. This makes incremental innovation difficult, for anyone. (Even microsoft.) This problem exists for software because writing software is in some sense much easier than traditional engineering, and so you can afford to put more ideas in.

7. Software licensing terms tend not to take into account the fact that projects use many ideas, and a given patented piece should be only a small part of the total.

8. Open source.

9. Patented standards are a large social cost.

10. It is not possible to search the patent database before the patent is granted

11. Tremendous software progress is often made with negligible investment; we don't need patents to encourage development.

12. Computing has a high rate of radical, as opposed to incremental, change.

An issue that Stallman doesn't address directly is that 20 years is a very long time in the software industry, and that locking an idea up for that long has the practical effect of stifling growth, not encouraging it. Software patents have had the effect of postponing adoption until patent expires (cf James Gosling's first language) (hint: his second language was Java).

A related issue is that weak patents can have HUGE social costs, by blocking core technologies that everyone needs.

And basic ideas are still being patented for a new use (eg the Steir hair patent)

Finally, another issue is the obvious-in-context problem I mentioned above, that does seem to be a special issue with software: often an idea is an immediate, trivial corollary of some later development, or of some more abstract way of looking at the situation. However, some earlier out-of-context patent may still apply. The XOR-cursor and Eolas patents may be of this type. It's not that embedded applets is an innovative idea, per se, it just takes a critical mass of web sites to become relevant.

Is software legitimately a special case?




Paul Graham

This would be a good time to take a quick look at the Paul Graham paper. Graham is both a venture capitalist and a software engineer (and a Lisp programmer!). One of his first points is the following:

One thing I do feel pretty certain of is that if you're against software patents, you're against patents in general. Gradually our machines consist more and more of software. Things that used to be done with levers and cams and gears are now done with loops and trees and closures. There's nothing special about physical embodiments of control systems that should make them patentable, and the software equivalent not.

Here are a few more, based largely on his experience as a venture capitalist. Patents, he feels, don't matter much to software startups, unlike physical-machine startups.
Graham has three reasons why patents don't matter:
  1. Software is complicated; the real issue isn't the software but developing -- and designing -- it. However, this argument also works the other way; if you have an idea, then you are better off pursuing patent enforcement than development, because development is hard. But also note Graham's point that if a big company tries to copy a little company's patents, there will be a "thousand little things the big company will get wrong".
  2. Startups seldom compete head-to-head with big companies; they "change the paradigm". You don't go into the word-processing business; you invent Writely (now part of Google Apps?). And, "big companies are extremely good at denial". They will go to great lengths to pretend that you don't exist, to "keep you in their blind spot". Suing a startup would mean you realized they were dangerous. He cites IBM as an example; it would have been demeaning for them to sue microcomputer developers. Also, for Microsoft to sue web-app developers (or smartphone developers) would be to admit that Windows is fading.
  3. Hacker opinion is against big patent lawsuits. If you're a big high-tech company, you'll lose a lot of your best people if you're seen "doing evil". This might be true for Google; it's less clear at Microsoft (though the employees there do care about principles). It's probably not true at Eolas.
What do you think of these? How does the Eolas case fit in?

The argument is sometimes made that patents have real value for startups, so that they can cross-license if accused of violating other patents. Is this a legitimate argument in favor of patents?


And here's a student project from Stanford, dated 2000:
http://cse.stanford.edu/class/cs201/projects-99-00/software-patents
The authors are Carr, Gray, Watkins and Yang, and the patents they consider in depth are




MP3 patents and lawsuits

The MP3 idea was not obvious, and remains fairly complex. Alcatel-Lucent v Microsoft: Alcatel-Lucent won $1.5 billion in an infringement suit about mp3 decoders Feb 22, 2007

MS countersued for other patents

The judge eventually set aside the damages, and the appellate court agreed.


Aug 6, 2007: MS won new trial

MS is now suing A-L for other patents.

check out mp3licensing.com (Thompson) Royalty Rates: basic mp3 decoder: $0.75/unit

mp3 was published in 1991. Will all US mp3 patents expire in 2011? Original holder: Thompson Consumer Electronics & Fraunhofer Institute. These still hold the "core" mp3 patents.

MP3 Patent claimants:

To date, (some) patent holders have announced that no action will be taken against open-source decoders.

The mp3 compression algorithm is admittedly a deep idea. Part of it involves the use of wave decomposition to store the information more efficiently; part of it involves "psychoacoustics" to identify parts of a sound file that are "unhearable" and so can be deleted.



Note that patents are for the use of an idea in a specific context:

Patent problems:

submarine patents: you don't hear about them until too late!

prior art: hard to find, hard to document, trivial ideas were never written down!
This problem, at least, will go away with the passage of time.

non-obviousness: difficult to contest many ideas go into one program! Technology evolves extremely rapidly Violates settled expectations (important part of law!) What's patented seems to be more a matter of chance than anything else.

ignorance is no defense: "submarine" patents entire process is secret: you can be making good-faith effort to be noninfringing and get hit with a huge verdict.

wilful: you had advance notice of infringing. Your belief that the patent was invalid may NOT be a defense, although it has been accepted as a defense in some cases. Damages automatically triple.


Europe

EU Parliament voted in July 2005  648-14 AGAINST the EPO (European Patent Office) directive.

March 17, 2009: European Patent Office has asked the EU's "Enlarged Board of Appeal" to decide on the exclusion of software from patentability. The EPO has long been pushing for software patentability, and this is seen by some as an attempt to bypass the European Parliament.
See http://lwn.net/Articles/324022
Also http://press.ffii.org/Press_releases/EPO_seeks_to_validate_software_patents_without_the_European_Parliament.
Also http://www.ffii.org/EPOReferral. Note especially Q3, under Questions. Under some earlier rulings (T163/85 and T190/94), patentability required "a technical effect on a physical entity in the real world". However, other rules did not include this requirement.

European patent law is similar to the Diamond v Diehr standard: machines that use software are patentable, but not software that stands alone. However, in the US the Diehr standard evolved into software patentability; in Europe software remains unpatentable as such.

Here's an article from FFII.org entitled, "Why are Software Patents so Trivial?", in which they suggest that this is a fundamental problem: http://eupat.ffii.org/analysis/frili.


Who are the stakeholders in software patents? Are we stakeholders? Compare pharmaceuticals. http://www.pbs.org/cringely/pulpit/2005/pulpit_20050818_000863.html: "Do you feel helped by patent reform?"

If the Eolas patent had succeeded earlier in the game, Firefox might never have been started, and then Internet Explorer would still likely lack tabs, plug-ins, and other core features.

WHY does the situation seem so different from pharmaceuticals?


Role of "patent trolls", or patent licensing firms
("troll" as in "the troll under the bridge, demanding tolls", not "trolling" as in fishing for "flames")

Note that the established-company-versus-established-company defense of a "patent bank" is useless here.


Patents and standards-setting

Company A participates in creation of a standard; they suggest solution S for a particular issue. After the standard is widely adopted, company A announces that they have patented S, and that they will license it for a significant fee.

N-Data patent on ethernet speed autonegotiation:

http://arstechnica.com/news.ars/post/20080123-ftc-defends-ethernet-forces-patent-troll-back-under-bridge.html



Barriers to entry

Patent Trolls: companies that have no assets but patent claims, and don't attempt to produce anything but simply collect. Is this bad? Or are such companies just creating a market for small inventors to sell their inventions?

I4i is not such a company; they did produce an XML-based product.



Patent and open source

The open-source community is a strong proponent of eliminating software patents.

Is the open-source community entitled to:

Is the open-source community entitled to the asterisk phone switch?

Does MS intend to destroy or hobble or marginalize linux through patents?

It is very well documented that the patent process can have a very NEGATIVE impact on open-source development, and on generally accepted software adoption.

So if the purpose of software patents is to aid technological process, and it doesn't do that, are software patents a good idea?

What happens if the software in question is made available through a site in Europe, which (as of now) doesn't have strong software-patent laws? Should the site warn visitors from the US?

Is this at all like thepiratebay.org?



Patents: are the right ideas being patented? Or are patents being granted to trolls for peripheral ideas?
xor:   trolls?
rsa:   good
spreadsheets:   trolls?
eolas:   trolls?



Heckel Paper

Paul Heckel wrote Debunking the Software Patent Myths for the June 1992 Communications of the ACM. Heckel approaches software patents as a small inventor who has sued Apple over Hypercard and is in general very strongly pro-patent. He was actually faced with huge software-development debts and no future market because Apple had reproduced his idea. He makes several claims.

4197590
One is that the XOR patent, 4197590, is really about patenting what Heckel calls "largely the invention of the frame buffer". However, the concept of a frame buffer, or memory-mapped display (in which the video screen is memory-mapped into a location in RAM, so that writing to the screen is as simple as writing to memory) was apparently prior-art. The patent application claims that they invent a way for a small (eg 416x312) graphics window to allow viewing of a larger 2048x2048 virtual display, and panning across. That is a significant invention. However, there is a reasonable body of evidence that Cadtrak attempted to enforce the XOR-cursor portion of the patent alone.

From the patent abstract:

A computer graphics display system including random access raster memory for storing data to be displayed, a raster memory control unit for writing data into the raster memory, a video control unit for causing such information to be displayed on a CRT display screen....An XOR feature allows a selective erase that restores lines crossing or concurrent with erased lines. The XOR feature permits part of the drawing to be moved or "dragged" into place without erasing other parts of the drawing.

It seems to me that a major claim of this patent, and the only relevant claim past the 1984 introduction of the Macintosh, is the XOR feature.

4398249
Another is the natural-order-recalculation patent, 4398249. This was an invention of Rene K. Pardo and Remy Landau in 1970. Heckel claims that what Pardo and Landau really invented was the spreadsheet, although (apparently) in primordial form not recognizeable by later spreadsheet pioneers such as Dan Bricklin (VisiCalc); Bricklin is generally recognized as the inventor of the spreadsheet. Heckel does not name any software product Pardo and Landau produced. There was indeed an important legal case regarding the patentability of the idea; initially their request was denied by the PTO as an "algorithm. It is now considered to be an "early" software patent. Here's the idea:

Cell A depends on B if A needs B's value in its formula
Rule: Before calculating A, calculate all cells A depends on.
Duh.

The algorithm is called "topological sort"; published in the CS literature in 1963.

Spreadsheets were a brilliant idea (Dan Bricklin, VisiCalc?), but not order of recalculation.

Pardo and Landau sold the patent to the company Refac, which Heckel characterizes as "a white knight in the fight against the patent pirates". However, note the following line from the appellate court in Refac v Lotus, at http://www.ll.georgetown.edu/Federal/judicial/fed/opinions/95opinions/95-1350.html:

The district court did not abuse its discretion in holding that the '249 patent is unenforceable on the ground of inequitable conduct. [emphasis added]

Apparently Pardo and Landau were told by the USPTO that their patent was not fully disclosed; specifically

[T]he disclosure is not deemed of the level which would enable one with ordinary skill in the art to make and use the invention. The flow diagram which applicants represent in figure 2 is not of the detailed level which a programmer would need in order to write a program from.

They presented three supposedly disinterested witnesses who each submitted an affidavit that, yes, they could implement the desired program from the patent description. However, one of the three, Robert F Bullen, had a previous business relationship with Landau, that neither of them disclosed.

So much for "white knights".

There remains the broader concern that Pardo and Landau did not in fact appear recognize that they had a "spreadsheet", and that Dan Bricklin was the first to grasp that concept, and that what Pardo and Landau did have was just the idea of using topological sort when evaluating a large number of expressions with dependencies.

Here's the abstract of Pardo & Landau's patent, slightly edited, for compiling a set of formulas when some formulas may depend on the values of other formulas:

A process and apparatus (compiler program) carried out on a digital computer for converting a source program into an object program. The source program [consisting of a set of formulas] is entered into a first storage area of a computer. ... The compiler program then examines each formula to determine whether it has been defined [that is, whether it has no dependencies on as-yet-undefined formulas]. If the first formula has been defined, it is removed from the first storage area; placed in a second storage area; and marked as being defined. if the first formula examined has not been defined, it is retained in the first storage area. The compiler program repeats this process for each formula in the first storage area. After the formulas in the first storage area have been examined, the compiler program determines whether any formulas have been added to the second storage area. If so, the compiler program repeats the examination of the individual formulas still retained in the first storage area. The compiler program repeats the process until all formulas have been defined; added to the second storage area; and marked as being defined. The content of the second storage area is an object program which is executable by the computer.

2009 is a little later than 1972, and some of these ideas are now somewhat standardized, but without being familiar with this specific algorithm I was able to come up with it "on my feet" in class once. I see no evidence here of any spreadsheet-like package.



Heckel's own patent was 4736308. It wasdescribed as covering the display of two or more strings toghether on the screen (apparently scrolling with two or more subwindows). The argument was made that if scroling was prior art, and subwindows were prior art, how could a trivial combination of them be patentable? Heckel's claim is that his patent actually covers a Hypercard-like product (hypertext plus button-activated scripts).