EditorsAbout the SiteComes vs. MicrosoftUsing This Web SiteSite ArchivesCredibility IndexOOXMLOpenDocumentPatentsNovellNews DigestSite NewsRSS

02.04.09

Guest Post: Watch Out for “Patented API” Traps, by Jose X

Posted in Free/Libre Software, GPL, Patents at 4:08 am by Dr. Roy Schestowitz

The Trap in a Nutshell

A patented API is short-hand for saying that an API (a software interface) is defined to parallel a patent so that using the API to build applications creates patented material unavoidably.

This is a trap API. Use it, and infringe.

The story:

  • A person writes up a patent and designs a matching API.
  • You use their trap API to write a program.
  • Your application violates the patent because the API gave your application properties that match the patent.
  • Fix the problem only by dumping the API, redesigning, and re-coding the application itself. There are no short-cuts.

Q: Can I “work around” the patent?
Q: Can I re-implement the API libraries so as not to have to redesign and recode all apps?
Q: Can I map or translate the app automatically into something safe?

A: In general, no, you can’t, if the trap is a good one.

This covers the trap in a nutshell.

[The disclaimer: I am not a lawyer, and I have never written a patent application. But.. I do know how software works, and I have developed more than just half a clue about how patents work (in the US).]

Further Basic Discussion

For those that want a little more explanation, we have this link.

..as well as a hypothetical “Tetris” Patent Trap example.

Visual Basic function

“Tetris” Patent Trap

Patent Tetris
Patent CoolDraw
API Tetris
API CoolDraw

We have two patents and two API. One patent and one API are high-level (Tetris). The other patent and API are low-level (CoolDraw). The high-level patent and high-level API are designed together as a trap as mentioned above. Ditto for the low level ones.

Let’s look at a few more details on the patents and on the APIs. Then, we’ll cover the four main scenarios. Do note the interplay of high-level with low-level. When the levels are the same (and matching), we have stepped onto the trap.

– Patent Tetris: patents any tetris like game.

– Patent CoolDraw: patents a cool way to draw on the screen from computer memory.

– API Tetris: a createTetris function produces a tetris game when you input things like block size, colors, number of rows, time, etc.

– API CoolDraw: a doCoolDraw function uses a cool algorithm to move values onto the screen.

Case 1:
– Patent Tetris
– API Tetris.

In this scenario, if we use API Tetris within our app so that a tetris game is created, we violate Patent Tetris, guaranteed.

Case 2:
– Patent Tetris
– API CoolDraw.

In this scenario, if we use API CoolDraw within our app so that we draw to the screen, we do not violate Patent Tetris unless we write a lot more code so as to create our own tetris game. It would take many lines of code to violate Patent Tetris.

Case 3:
– Patent CoolDraw
– API Tetris.

In this scenario, if we use API Tetris within our app so that a tetris game is created, we may violate Patent CoolDraw ..or not. It depends on how API Tetris was implemented. Does createTetris write to the screen the way described by Patent CoolDraw?

Case 4:
– Patent CoolDraw
– API CoolDraw.

In this scenario, if we use API CoolDraw within our app so that we draw to the screen, we violate Patent CoolDraw, guaranteed.

Quick Analysis

Case 1 (and Case 4) patent and API are at the same level (and matching). This is a trap. To avoid infringement, you have to redesign and re-code the application using a different API.

Case 2 is the case when people consider “working around” the patent. It’s an odd event. You have to write many lines of code in order to possibly be infringing. If you are, you then try to code around it, perhaps by building something a little different than tetris. [In general, avoid infringement by make sure some of the properties of the patent claim are not met.]

Case 3 is the case where if a violation were to exist in the API implementation, you can try to re-implement the libraries and this way avoid re-implementing each and every single app as would be required for Cases 1 and 4.

The reason Case 3 allows you to re-implement the libraries and avoid re-coding up every application is fundamentally because you can re-implement the API but keep fixed the same interfaces and specifications enshrined in the API contract and assumed by the applications. This is not possible in Case 1 and Case 4 because any re-implementation of the same specification, for these cases, will infringe in the same exact way as with the original implementation since it’s the specification itself (not any implementation of any part of it) that parallels the patent.

The reason Case 2 does not result in automatic infringement as happens with Case 1 and Case 4 is that the API interface and patent requirements don’t match. It’s that simple. Case 2 is where the application could possibly end up violating if you code enough with that API or with another. The Case 2 patent is high-level while the API is low-level. Case 3 is different in that the patent is low-level while the API is high-level; thus, Case 3 contrasts with Case 2 because in Case 3 the potential violations would not happen within the application (as with Case 2) but rather within the library.

In short, Case 1 and Case 4 are the only cases (of the four) where any API usage, by definition, specifies that the application will acquire all the properties of the matching patent claim. These are the traps.

Random APIs will not shadow any given patent as occurred in Case 1 and in Case 4. Developers normally would not have to worry. They can expect a Case 2 or a Case 3, if anything. However, Case 1 and Case 4 can be designed on purpose when the patent author and API designer are the same entity. Why would this author create this trap for developers? Well…

– The patent author is determined to file lawsuits as necessary (maybe via proxies) in order to slow down many and/or key competing applications (eg, FOSS applications).

“You can be given a patent license and even GPL code for the core API, but not for the patented API extensions.”If you are using an API designed by such a vendor (regardless of who implemented the libraries), beware. I see lots of redesigning and re-coding in your future, just to get back to the same point (on a per app basis). Remember that the patent might still be in the pipeline, have been sold to a proxy, or have been developed through a partnership under a different company or alias.

The above nutshell and sample analysis omit many details. There are many corner cases and things are not cut and dried. In a second article to follow (possibly), we will look closer into many details of the trap scenario.

Finally, there is a more insidious trap that exists. You can be given a patent license and even GPL code for the core API, but not for the patented API extensions. You may then find that you can create only simple applications safely (with that core API), even if you decide not to use the patented extension API but build your own. This is more insidious because the patent and copyright licenses given for the core API give the illusion of safety (a green light to proliferate), and is insidious and dangerous all the more so since you might purposely avoid the patented extensions. The trap happens if you use the “safe” core with any extension whatsoever (since the extended patented properties can be very general in nature). The details of this extended insidious trap may form the subject of a third article later on. It’s also described further here.

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • co.mments
  • DZone
  • email
  • Google Bookmarks
  • LinkedIn
  • NewsVine
  • Print
  • Technorati
  • TwitThis
  • Facebook

If you liked this post, consider subscribing to the RSS feed or join us now at the IRC channels.

Pages that cross-reference this one

11 Comments

  1. Jose_X said,

    February 4, 2009 at 9:38 am

    Gravatar

    Thanks for posting this Roy. It took a while to find the right balance. Hopefully, parts 2 and 3 will be forthcoming.

    I hope developers and users supporting APIs **designed** by companies that have much to gain or to preserve by holding FOSS hostage with patents when the right moment comes (when the poison has spread deeply) do re-evaluate their position and dump these APIs and all the applications that depend on them, the sooner the better. No API or platform is worth even 10% of the trouble this may create for everyone.

    Add your great contributions to applications built on more sound foundation. This way your contributions are much less likely to be wasted.

    Also, ask those developers implementing APIs designed by aggressive companies/monopolies, to fork, to deviate significantly from the path laid out carefully before them by the antisocial API-patent designers.

    To any FOSS developers that might be implementing such a risky API: the few interesting bits of such a platform/API can be adopted by virtually every other API out there so that nothing or little that is good is left behind. That’s the best of all worlds.. So contribute your great bits of innovation or what you like to APIs/platforms that are much less likely to sink you down the road.

    Redesigning and re-coding just to end back where you started is not an option I’d ever exercise, and users would be left stranded.

    Whatever. People will always take long-term risks for a short-term high.

  2. Shane Coyle said,

    February 4, 2009 at 9:55 am

    Gravatar

    People will always take long-term risks for a short-term high.
    Jeez, we’re not really gonna talk about Michael Phelps here, too, right?
    ;^ )

  3. David Mohring (NZheretic) said,

    February 4, 2009 at 3:44 pm

    Gravatar

    I made the same argument in detail back in April 25th, 2003 with Miguel De Icaza responding.

  4. Roy Schestowitz said,

    February 4, 2009 at 4:07 pm

    Gravatar

    it’s the familiar defence of “see the FAQ” (OpenSUSE/Novell do this too):

    NZHeretic keeps posting this standard template everytime he sees the word Mono. You would think he would have given up and read the Mono FAQ that addresses his question.”

    Miguel”

    These FAQs are always damage control. They are PR.

    http://meandubuntu.wordpress.com/2008/12/16/the-opensuse-faq-touched-me-in-a-bad-place/

  5. Jose_X said,

    February 4, 2009 at 4:40 pm

    Gravatar

    David Mohring (NZheretic), yes, I just read it. Great. Maybe you will receive more support this time around in pushing this info out.

    For me, this is somewhat new in the sense that I generally believed this could be done (took it for granted it could), but had not looked at it too closely until this past year. When you actually look at some patents, in conjunction with things like this http://en.wikipedia.org/wiki/Claim_(patent) , it shocks that patenting would have such loopholes. Any new combination, at any high-level, can be argued to be “innovative”, etc, and hence cover almost anything ..in that special new combo way.

    Now fabricate an API to match and get people to follow it closely, and they are screwed and you’d almost have to say they deserve it given Microsoft’s patent talk and position in the market (wrt FOSS). ..except that many that use and install mono and maybe some that code it perhaps are a bit confused.

    Large vendors can ultimately (at a real cost in some cases to their competitive position) negotiate with Microsoft, but I don’t think people want to keep giving Monopolysoft such powerful freebies. You keep doing that, the game won’t change.

    If you want to contribute any worked out examples (real or fabricated) on this thread over time go ahead since that helps communicate the message. It actually took me many attempts to write the above because I couldn’t manage to reach a balance between getting the point across to nondevs while providing enough info to be at least half-convincing (or get the serious attention) of devs.

    For part two, I want to focus on the more subtle arguments and display many examples to show all of this.

    Part 3 is also what you were talking about in that once you are stuck using the core, you can’t step anywhere (while tied down to that core) because of how easy it is to patent all around that core for almost anything useful you would want in an application.

    Thanks for pointing to your post. Now, let’s find more such older posts and see if we can push this again. Today, mono has taken on a much larger role than back in 2003. Not accidentally, these years of slow mono growth gave Microsoft much time to patent any and everything under the sun that would extend from mono core.

    ..To repeat a point before ending this… It’s a major loophole in patenting, and you’d expect no one to fall into that trap *accidentally* because all the components already exist and some of the precise semantics of this new Monopolysoft mix are almost arbitrary (a bit like accidentally writing a modest size essay that violates copyright.. the odds are tiny). Yet.. yet, probably out of ignorance to some extent, you actually find people stepping on the **same exact path**. And once you go deep enough into the path, it’s very costly to turn back and everywhere you step, boom, step on a mine. An analogy: People using mono are basically doing the equivalent in copyright law of significantly copying verbatim someone not willing to give you a FOSS compatible copyright license. Only by this blind copying could you manage to get yourself deep enough into this particular minefield. Mono and it’s spread is a HUGE asset to Monopolysoft.

  6. Jose_X said,

    February 4, 2009 at 5:43 pm

    Gravatar

    From this link
    >> http://meandubuntu.wordpress.com/2008/12/16/the-opensuse-faq-touched-me-in-a-bad-place/

    >> There is no general strategic alliance. Novell continue to be fierce competitors of Microsoft, which should be evident by the openSUSE and SUSE Linux Enterprise products.
    >> Novell even has ongoing litigation against Microsoft.

    They take very seriously how their partnership will be viewed. They need the proxy effect without getting antitrust officials riled up.

    Novell is quite an asset to Microsoft. Antitrust laws are being violated.

    >> Having many of the greatest free software developers on their payroll making sure they can focus on writing free software.

    Reserving opinion on the adjective “greatest” as used here, Novell is trying to use talent to get mono and MS protos spread far and wide,and in general to manage Monopolysoft’s Linux play. Why would they seek out “mediocre” developers? How is this good news?

    >> Novell continue to be fierce competitors of Microsoft, which should be evident by the openSUSE and SUSE Linux Enterprise products.
    >> [Novell] would not do anything that they thought would harm Linux in general

    “Linux” is just a product. FOSS is what is being harmed or threatened — not to mention the most FOSS-dependent commercial players, as Novell aims their sights on Linux players (with Monopolysoft’s help) more vigorously than competing with Monopolysoft today.

    Doesn’t Novell have a life-sustaining contract with Monopolysoft? Why yes they do. That’s just how “aggressive competitors” do their competition with each other … just like how a subsidiary competes vigorously with the parent.

    Monopolysoft needs a Linux branch (“partner”) to handle those sales that would defect to (eg) Red Hat.

    This is the role Novell is playing today in action.

    Antitrust antitrust antitrust antitrust.

    >> There can be absolutely no doubt that Novell is one of the most significant contributors to open source software, ever.

    Read: Monopolysoft (through proxies) jumped in with both feet when buying FOSS and when trying to spread their poison.

    Novell saw value to Monopolysoft, they made the acquisitions, and they “partnered” with Monopolysoft afterwards.. (this is a generous interpretation that assumes the components did not see value to Monopolysoft from way back when (eg, mono)).

    Even if Novell was a decent player once, it sure didn’t take them too long to turn the net asset into a net liability.

    >> Novell has also created or is among the top sponsors of projects such as

    I don’t think anyone will deny that many people employed by Novell today or in the past have made significant contributions at some point in time. Novell is a fairly large company, and they have gone on a buying spree of contributors.

    Not lost is that some of the projects mentioned are helping to spread what I will call the mono poison.

    [Note, "Monopolysoft" communicates more in short space than would "Microsoft .." or "the company that...".]

    >> Ted Haeger: I removed the statement about my departure having nothing to do with the deal. It was a false statement made without consulting me. I did not want to make my departure a statement about the deal, but by using my name in this way on this page, it forces me to state a correction. My departure did have something to do with the Novell-MS deal. I would likely still be at Novell if it had not happened. I prefer to focus on the positive side of why I left, so please do not cite my departure as unrelated to the MS-Novell deal.

    Nice quote.

    >> The interopability features cannot be included in other distributions
    >> Again, this is untrue. Other distributions have already seen the software benefits from this deal

    Spreading the poison is a negative not a positive.

    >> Yes, Ballmer has said many disparaging things about Linux, but (i) this was never part of the original deal, (ii) Novell have, in an open letter to the Community, challenged those statements.

    Wow, a letter that “challenges” through “in no way an acknowledgment that Linux infringes upon any Microsoft intellectual property”.

    Actions speak louder than (weak) words. Spreading mono and Monopolysoft based technologies despite the patent risks and mind share losses speaks louder than “in no way an acknowledgment that Linux infringes upon any Microsoft intellectual property”.

    >> the GPLv3 “grandfathers” in such agreements

    Wow. Monopolysoft’s Linux arm (as long as they remain legally separate from the main body) gets a monopoly on a bypass mechanism to the GPLv3. Why am I not surprised they pulled this one off?

    >> Novell even has ongoing litigation against Microsoft.

    Some would call this money laundering.

    Of course, even if Novell is out to help their leverage with momma relative to the siblings.. or to help keep antitrust authorities at bay.. how is this consolation?

    ***

    There is no reason to assume bad intent on Novell’s part (as fun as that might be). The evidence may strongly suggest such possibilities, but the bottom line is that, independent of intention, Novell is in practice aiding Monopolysoft’s strategic position within the FOSS community and general market place. That is their contract, and all the nice talk doesn’t change that. And Monopolysoft continues to do what they have to do to protect their empire and position. This doesn’t mix with FOSS in any way beneficial to the wider community (especially to end users).

    Some people have come on here and suggested Novell is independently simply trying to better their position and not abuse the community.

    However, if they need.. if they are accepting the big dollars from this particular partner.. if they are taking actions that hurt the community.. if for years people have been pointing out the patent risks in spreading MS API but they continue to push that….

    Intent doesn’t matter for this discussion [though antitrust authorities likely do care about intentions]. Results matter. What is and will Novell do?

  7. Jose_X said,

    February 4, 2009 at 5:44 pm

    Gravatar

    Cross linking: http://boycottnovell.com/2009/02/03/jeff-waugh-direction-change/#comment-59345

  8. Jose_X said,

    February 4, 2009 at 5:52 pm

    Gravatar

    Another cross-link.. this one about how Novell can potentially make a great go at Microsoft market share without hurting the community: http://boycottnovell.com/2009/01/11/ms-maintaining-gap-vs-linux/#comment-58215

    It’s easy to give Novell a free pass by saying they might secretly be working towards this goal. This is called wishful thinking, and the evidence that this fantasy will become reality doesn’t look good. Anyway, I prefer to leave secrets and intentions out and focus on current actions and positioning.

  9. Roy Schestowitz said,

    February 4, 2009 at 5:54 pm

    Gravatar

    Good catch there about Ted. Somehow I missed it.

  10. Jose_X said,

    February 4, 2009 at 6:08 pm

    Gravatar

    David Mohring (NZheretic), the main post at the top didn’t much go into what you actually discussed in that link wrt a unique combo/mix being patented. Part 2 will look more carefully at that. Patents on combos, where all or almost all parts are common (but perhaps never expressed in just that way), are given in reality and likely make up the vast bulk of patents. The patent industry actually depends on this laxity since it leads to many more “inventions”. [Real inventions can be kept as trade secrets to give more bang for buck.] Plus, who is to judge otherwise since most that might be judges either don’t care about patents, don’t want to work for free, or are busy exploiting the system?

  11. Jose_X said,

    February 4, 2009 at 6:20 pm

    Gravatar

    Roy that topic came up here before. That a person doesn’t explicitly make a public statement saying they were against the deal certainly doesn’t imply they were for it or unaffected by it. Most customers, when they switch brands, they don’t write a letter to the old company stating they are switching for reason X or Y. They let their feet do the talking. For reason X or Y, are people not leaving Novell? It would make sense to lay people off if management thinks these employees aren’t gung-ho about the direction of the company, for example. They could be seen as dead weight that might be accepting a paycheck as long as they can. Maybe they had already refused (or failed to show enthusiasm) for job assignments working on mono or related. [OTOH, I'd be careful about moles-to-be leaving the ship.]

    [The context I’m remembering had to do with Compiz. As if the break from it (beryl) and the waning interest in that project today (eg, including post the re-merger with beryl) didn’t speak to this effect even if no one said anything publicly… maybe this is one of the links: http://boycottnovell.com/2009/01/02/amd-novell-friction/#comment-57230 ]

What Else is New


  1. Microsoft Windows Unsafe at Any Speed, by Design

    More timely reminders that Windows is simply not designed to be secure, irrespective of version, status of patching, etc.



  2. After Moonlight Dies and Even Microsoft Abandons Silverlight, the Abusive Monopolist Keeps Pushing for Other Microsoft Lock-in, Injecting OOXML Traps Into Free Software (Moodle)

    Despite a long history of Microsoft formats being proven guarantee of digital obsolescence, Moodle allows itself to become Microsoft prey and a Trojan horse for OOXML in classrooms (for children)



  3. Links 4/7/2015: Mostly (Geo)Political Catchup

    Links for the day



  4. Links 3/7/2015: KDE Applications 15.04.3, Ubuntu-Flavored Compute Stick

    Links for the day



  5. Patent Lawyers and Their Firms, Still Desperate to Protect the Status Quo, Manipulate the Media

    Patent lawyers are besieged by gradual tightening of patent scope and recklessly fight back (e.g. by saturating the media) to secure their revenue sources, derived from (and at the expense of) actual scientists and true market producers



  6. Amid Controversy, Political Scrutiny and Increased Media Pressure Željko Topić and Benoît Battistelli Allegedly Cancel Today's Trip to Zagreb (Croatia) Where Topić Faces Many Criminal Charges

    The Croatian press comments on the recent declaration from the Council of Europe and Topić's not-so-sterling status in his home country, where he is wanted for alleged crimes



  7. Microsoft Gradually Embraces, Extends, Extinguishes Linux Foundation as a Foundation of GNU/Linux

    By liaising with (or hijacking) existing members of the Linux Foundation, as well as by paying the Linux Foundation, Microsoft turns the Linux Foundation into somewhat of a Windows advocacy group



  8. Microsoft India Still Lobbies and Lies About Free Software in Order to Knock Down Policy That Favours Free Software

    Microsoft continues to bully Indian politicians who merely 'dare' to prefer software that India can modify, maintain, extend, audit, etc.



  9. Patent Lawyers and Corporate Media Nervous About New Patents Barrier/Reality (Less Patents on Software and Business Methods)

    The rich and the powerful, as well as their lawyers (whose job is to protect their money and power by means of government-enforced monopoly), carry on whining after the Alice case, in which many abstract patents were essentially ruled -- by extension -- invalid



  10. Translation of Pierre-Yves Le Borgn' Speech Against EPO Management and New Parliamentarian Interventions

    More political fire targeting the EPO's management, adding up to over 100 parliamentarians by now



  11. Links 2/7/2015: KDE Plasma 5.3.2, antiX 15

    Links for the day



  12. Links 1/7/2015: OpenDaylight Lithium, OpenMandriva Lx 2014.2

    Links for the day



  13. Munich Press, Münchner Merkur, Slams the Munich-based EPO

    Pressure on Benoît Battistelli to leave (or be fired) grows as the cronies whom he filled his office with have become a huge public embarrassment to the decades-old European Patent Office



  14. The Shameless Campaign to Paint/Portray Free Software as Inherently Insecure, Using Brands, Logos, and Excessive, Selective Press Coverage

    Some more FUD from firms such as Sonatype, which hope to make money by making people scared of Free/libre software



  15. National Insecurity and Blackmail, Courtesy of Microsoft

    British members of parliament (MPs) outsourced their communication to the number one PRISM company and they are paying the price for it; The US Navy's systems continue to be unbelievably insecure (Windows XP), despite access to the world's biggest nuclear arsenal



  16. Microsoft Keeps Shrinking

    As the era of shrink-wrapped software comes to an end so does Microsoft, whose effort to become a 'cloud' company with online operations has been miserable at best



  17. They 'R' Coming: More Microsoft Money for the Linux Foundation

    The problem with having Microsoft in a Linux Foundation initiative, the R Consortium



  18. Speculations About the EPO's Possible Role in DDOS Attacks

    Readers' views on who might be behind the attacks on this site amid confirmation that it's on the 'targets' list of the EPO



  19. Links 30/6/2015: Linux Mint 17.2, OpenMandriva

    Links for the day



  20. Techrights Confirmed as a Target of EPO Surveillance, With Help From Control Risks Group (CRG)

    Unveiling the cloak of secrecy from long-term surveillance by the European Patent Office (EPO) and a London-based mercenary it hired, bypassing the law



  21. Google's Fight to Keep APIs Free is Lost, Let's Hope Google Continues Fighting

    SCOTUS refuses to rule that APIs cannot be considered copyright-'protected', despite common sense and despite Java (which the case is about) being Free/libre software



  22. Patent Trolls in the Post-Alice World

    A round-up of news about patent trolls in the United States, some of whom are are doing well and some of them not as well



  23. DDOS Attacks Against Techrights

    Information about some of the most recent DDOS attacks against this Web site and the steps to be taken next



  24. The Patent System Not What it Used to be, Large Corporations and Patent Lawyers the Principal Beneficiaries

    A look at some recent patent stories and what can be deduced from them, based on statistics and trends



  25. After Intervention by the Council of Europe Comes a Detailed Summary of the Situation in the European Patent Office (EPO)





  26. IRC Proceedings: May 31st - June 27th, 2015

    Many IRC logs



  27. Links 28/6/2015: Manjaro Linux Cinnamon 0.8.13, VectorLinux 7.1

    Links for the day



  28. Williamson v. Citrix Online (at CAFC) Reinforces Alice v. CLS Bank (at SCOTUS) in Crushing Software Patents

    More patent news from the United States, again serving to indicate that software patents over there are getting weak (harder to defend in court or acquire from the patent office)



  29. Proskauer Rose LLP is Cherry-Picking Cases to Make Software Patents Seem Eligible Despite Alice v. CLS Bank

    Naming and shaming those who are trying to reshape the consensus despite a rather consistent pattern of software patents being rejected



  30. IAM Biased: How IAM 'Magazine' Glorifies Patent Stockpiling

    A look at the bias of one of the most overzealous sites for and by patent lawyers


CoPilotCo

RSS 64x64RSS Feed: subscribe to the RSS feed for regular updates

Home iconSite Wiki: You can improve this site by helping the extension of the site's content

Home iconSite Home: Background about the site and some key features in the front page

Chat iconIRC Channel: Come and chat with us in real time

CoPilotCo

Recent Posts