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 2/6/2015: Black Lab Linux Releases, Krita Fundraiser

    Links for the day



  2. IRC Proceedings: May 17th - May 30th, 2015

    Many IRC logs



  3. Sharp Drop in Microsoft Patents, But Not in Patent Assaults, Coordinated Attacks on Android/Linux, and Googlebombing

    Using patent blackmail (antithetical to the original goal of patents) and other forms of blackmail, Microsoft is desperately trying to crush GNU/Linux and Android, all while Windows 'sales' fall and investors lose confidence



  4. EPO Reluctantly (and Privately) Confirms Giving Public Money for Military-connected 'Control Risks' to Spy on Journalists and Their Sources While Techrights is Under Fresh DDOS Attacks

    The EPO President -- or anyone who is referred to as 'appointing authority' -- finds himself even deeper in a scandal as he silently attacks the very same people whom he pretends to negotiate with by contracting spies from London (to maliciously target British journalists)



  5. Links 1/6/2015: wattOS R9, Tanglu 3

    Links for the day



  6. Supreme Failure: With SCOTUS Approval of Patent Trolls and a Push by Justice Department to Reinforce Copyright on APIs (at SCOTUS Level) the Future Looks Gloomy

    The patent system goes wild in terms of scope, the nature of the plaintiff (merely purchasing patents), and the extension of patents to monopolies on named APIs (by virtue of deranged interpretation of copyright law)



  7. McAfee Associates Free Software and Anonymity With Crime

    Insecurity firm McAfee, whose record on Free software is appalling (it is Windows-centric for its business), continues years of tradition by slinging mud at Tor



  8. The EPO Still Wastes Public Money on Publicity Stunts and 'Reputation Management' Campaigns

    The European Patent Office (EPO) is misusing public funds to manufacture self-congratulatory publicity for itself whilst attacking those who write negative commentary



  9. The Lessons of Stuxnet: Never Use Microsoft Windows

    Windows is sufficiently 'NSA-compatible' for remote compromise and physical damage (sabotage) to highly sensitive, high-risk equipment



  10. Links 30/5/2015: Wine 1.7.44, Berry Linux 1.20

    Links for the day



  11. White House Intervention Harms Android and Every Software Developer on the Planet

    US Solicitor General Donald Verrilli urges the Supreme Court (SCOTUS) to let APIs be covered by copyrights, rendering almost every program a potential copyright violation



  12. Microsoft Lobbying in India Shoots Down or At Least Weakens Free/Libre Software Policy

    Microsoft's covert efforts (lobbying with the help of public partners like NASSCOM) to eliminate an India-leaning software policy in India is finally paying off



  13. Propaganda Mode for UPC Agreement Whilst EPO Increasingly Grants Patents on Software

    In order to make the Unitary Patent a reality (towards a 'no place to hide' patent approach) misleading claims are being made



  14. Patents Are Not Source Code

    Ford is once again misleading regarding Open Source, mischievously associating a patent pledge with Open Source



  15. Links 29/5/2015: ALT Linux 7.0.5, Google I/O 2015

    Links for the day



  16. Links 28/5/2015: SourceForge Hijack, RIP Marco Pesenti Gritti

    Links for the day



  17. Censorship on Reddit Has Gotten (Condé) Nasty and Silent, Even Actively Silenced

    Condé Nast has turned Reddit into a platform of censorship after the acquisition



  18. The Supreme Court of the United States Helps Patent Trolls

    In an unforeseen kind of ruling, the same court which slapped down a lot of software patents last year is now legitimising the actions of a patent troll



  19. Patent Lawyers Fight Hard for the Future of Software Patents

    Media that is dominated by patent lawyers and targets an audience of patent lawyers refuses to accept the post-Alice reality



  20. Fortune Glorifies Patent Troll Jay Walker (Patent Utility)

    Jay Walker, a patent troll, creates a Web-based trolling/'licensing' service and the corporate media helps him



  21. Stealing Android's Thunder, Making It All About Apple and Microsoft During Google I/O

    Misleading articles and conjoined media/analyst attacks on Android coincide with Google's event where major Android announcements are being made



  22. British Government May be a Step Closer to GNU/Linux (on the Desktops, Not Just Servers)

    The British government stops paying the criminal company that blackmails its members, thereby increasing the possibility of complete escape from proprietary software



  23. Microsoft's Patent Allies LG and Sony Agree to Put Microsoft Inside Android

    LG and Sony (of Rockstar Consortium) follow Samsung and Dell in Microsoft's campaign to turn Android into 'Microsoft Android' using patents-induced pressure/leverage



  24. Yet Another Major Security Deficiency in UEFI

    UEFI is inherently insecure, more so than the alternatives which it strives to replace, including Free/libre ones



  25. Links 27/5/2015: Fedora 22 is Out, Mandriva Liquidated

    Links for the day



  26. Patent Scope at the EPO is Totally Out of Control, UPC Will Make Things Worse

    A look at the practical issues with the EPO, where patent scope and litigation scope have been vastly extended so as to benefit multinational corporations and possibly patent trolls



  27. Links 26/5/2015: Reviews of Kubuntu 15.04, Linux 4.1 RC5

    Links for the day



  28. Süddeutsche Zeitung Says Talking Helps While EPO Management Back-stabs Other Side of the Table

    German media gives the impression that there is peace and harmony now that Benoît Battistelli and his circle of power speaks to staff, but nothing is said about simultaneous (albeit covert) attacks against that staff



  29. Large Corporations Call the Shots in US Patent Reform

    A reminder of where we stand on the issue of patent 'reform' in the US and who is controlling or shaping it



  30. Microsoft Puts Proprietary Windows and Hyper-V Inside the Free Software-Centric OpenStack

    OpenStack, which celebrates rapid growth in this month's event in Canada, is facing a proprietarisation threat from Microsoft


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