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. Links 22/8/2014: Linux Foundation LFCS, LFCE

    Links for the day



  2. UPS Burned by Microsoft Windows, Gives Away Massive Number of Credit Card Details

    UPS is the latest victim of Microsoft's shoddy back door with software on top of it (Windows); attempts to blame FOSS for data compromise actually divert attention from the real culprit, which is proprietary software



  3. Microsoft's Funding of ALEC and Other Systemic Corruption

    Microsoft role in writing of laws by proxy, via groups such as ALEC



  4. Microsoft is Still Preying on British Taxpayers, Playing Politics

    Some news from the UK showing how Microsoft uses politics to extract money out of taxpayers, irrespective of their preferences



  5. Microsoft's Patent Troll Intellectual Ventures is Collapsing as 20% of Staff Laid Off

    More good news regarding the demise of patents as Microsoft's leading patent proxy is collapsing more rapidly than anyone ever imagined and software patents too are collectively doubted



  6. Links 21/8/2014: Conferences of Linux Foundation, Elephone Emerges

    Links for the day



  7. Links 20/8/2014: Linux Event, GNOME Milestone

    Links for the day



  8. Corruption Watch: Microsoft Lobbying Designed to Kill Chile's Free Software Policy and Promote Microsoft With Subsidies, More Dirty Tricks Emerge in Munich

    icrosoft is systematically attacking migrations to GNU, Linux and Free software, using dirty tricks, as always



  9. Vista 8 Such a Disaster That Even Microsoft Cannot Cope With It, Vapourware Tactics Start Early

    Microsoft's Windows-powered services are failing and Windows gets bricked by Microsoft patches, whereupon we are seeing yet more of Microsoft's vapourware tactics (focusing in imaginary, non-existent versions of Windows)



  10. On BlackBerry and Other Patent Trolls

    A roundup regarding patent trolls, starting with the bigger and latest joiner, BlackBerry's new patents apparatus



  11. Links 19/8/2014: Humble Jumbo Bundle 2 Betrayal, Mercedes-Benz Runs GNU/Linux

    Links for the day



  12. BlackBerry -- Like Microsoft Nokia -- Could be the Next Patent Proxy Troll

    BlackBerry is restructuring for patent assertion (i.e. trolling) in the wake of some alliances with Microsoft



  13. After Microsoft's Soft Bribe Some Non-Technical Deputy Does Not Like Free Software, Microsoft-Linked Media Responds to This Non-News by Making Bogus Claims of Munich Leaving GNU/Linux (Updated)

    The subversive forces that have secretly been attacking Munich over its migration to GNU/Linux (Microsoft press, Gartner, and even HP) are back to doing it while China and Russia follow Munich's lead



  14. Gates Foundation CFO Quits and Debate About Revolving Doors Recalled Amid Systematic and Shrewd Bribery of Public Officials

    More officials step out of the Gates Foundation and their destination is not known yet; Gates continues to corrupt the public sector with his money so as to increase personal gain at taxpayers' expense



  15. Links 19/8/2014: GNU/Linux Raves and Alternative to Proprietary Voice Chat

    Links for the day



  16. Links 18/8/2014: Linux 3.17 RC1, Escalation in Ferguson

    Links for the day



  17. Gartner Group Advocates Using Defective Software With Back Doors

    Despite strong evidence that Microsoft has been complicit in illegal surveillance, Gartner continues to recommend the use of Windows and other espionage-ready Microsoft software



  18. The Microsoft Patent Trolls: Android Extortion, Vringo Versus Google, and Intellectual Ventures

    Roundup of news about patent aggression by Microsoft and some of its proxies



  19. Links 16/8/2014: Microsoft Linux, US Government Turns to Free Software

    Links for the day



  20. Links 15/8/2014: Reiser4 in Headlines Again, GNOME and KDE Events Finish

    Links for the day



  21. Links 14/8/2014: Kernel Summit Coming, KMix on KDE Frameworks 5

    Links for the day



  22. Shameless Microsoft Spin is Blaming China for Microsoft's Misconduct and Back Doors While Justifying Massive Losses in Hardware (Made in China)

    A new look at how Microsoft-friendly media takes negative Microsoft news and turns that news into some kind of scandals where Microsoft is the victim



  23. Microsoft Spin in the Media Evokes 'New Microsoft' and New Back Doors

    Some new examples of Microsoft boosters rewriting history, characterising Microsoft as a FOSS champion, and generally weak/shallow reporting on Microsoft's audio/video surveillance software



  24. Links 13/8/2014: GNU/Linux as Winner, New Snowden Interview

    Links for the day



  25. Reader's Article: Skype Spying Reaches New Levels of Blatant

    Forced 'upgrades' of Skype give useds [sic.] of Skype more than they asked for



  26. The Problem is Software Patents (and Scope), Not Patent Trolls Who Abuse Them Just Like Large Corporations

    Reminder of the dangers of losing sight of the real patent problem, which is the patents themselves, not necessarily those who use them



  27. Fraud in the USPTO and CAFC Helped Apple Launch Frivolous Patent Lawsuits Against Linux/Android, Based on New Withdrawals

    Inherent corruption in the US system has aided Apple's assault on east Asian electronics giants that use Linux at the core of their products



  28. Investigation Reveals That USPTO is Corrupt, Time to Abolish It or Annul Nearly a Million Patents

    Corruption is found at the heart of the USPTO and the USPTO works hard to hide it, despite attempt by whistleblowers to bring this corruption to light



  29. Links 13/8/2014: Red Hat Enterprise Linux 6.6 Beta, Tizen in Watches

    Links for the day



  30. Links 12/8/2014: Chromebooks Surge, OpenGL in the Headlines

    Links for the day


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