The Minimalist Inventor         Home


  Software Patents

What the self-employed Coder should know about software patents

The Alice Decision


How to Proceed

The Alice Decision

It is simply not possible to discuss the issue of software patents without mentioning the word 'Alice', since it pertains a recent watershed moment in the history of US patent law, which will have a direct impact upon anyone who might be in a position file a software patent application.

Complicating the issue even more, the software field is now divided into two distinct
categories of business: proprietary software, and open source software. Microsoft and Apple are the foremost examples of the first category; Mozilla may be a prime example of the open source category. These categories are two radically distinct forms of business strategies. We'll leave the discussion of the roots and development of the open source movement to another time. For now, it is important to note that open source software and proprietary software are not totally incompatible. Nonetheless the independent software developer (or coder) who invents an original software product must choose carefully between releasing the software as a proprietary executable or as open source code, along with a conditional copyright notice.
Taking the added step of seeking a patent is not an everyday approach, especially for a lone coder or small software business. This step should only be taken when something of commercial value has been created that should be treated as proprietary to ensure that the inventor is allowed to be fairly rewarded. This is a concept which the open source community should endeavor to accept. That choice of taking a particular path is left up to the coder's personal needs and desires. But the choice must be made after having all the information required to reduce the potential risk to the minimum.
It should be understood that it would be impossible to adequately cover all that needs to be explained in this topic in a single article such as this. This is just an attempt at preparing the groundwork for a more thorough investigation. So let's start by suggesting a few caveats:

An interesting issue is how do you determine if the app, codec, or system you have created should be treated as an invention and therefore to be patented, instead of simply compiled into an executable, and sold subject only to a conventional user licence. This is a business decision to be made by the owner or team depending on the monetizing strategy of the developr company. Having chosen this approch, the next issue to be addressed is that of patentability.

A patent attorney may provide some advice on issues such as potential patentability of a specific software invention. But this bit of information is just the tip of the iceberg, and not be enough to make a decision.
Software coding uses many old well-known functional blocks or bits of code pieced together to provide functional classes or modules. These are mostly items in the public domain. An application is a combination of a number of such modules. The innovative element may be limited to a single module that perfoms the novel functionality. This is a bit like adding a revolutionary propulsion system on a conventional aircraft body. Assuming that all other elements in the software are in the public domain, it may be useful to provide the novel component in the form of  a replaceable add-on feature. This step can serve legal and marketing purposes. It can be used to provide a free version, which can be upgraded to a commercial version. On the legal side, this method may serve to remove potential ambiguity in identifying novel functionality. The coder should use care to identify and remove any functional elements that might be deemed to 'read on' and potentially infringe proprietary functionality owned by others, or to have been released with open source licence provisions that may be breached by selling the product. If such functionality is essential to the performance of the product, rigorous attempts should be made to employ public domain alternatives.

Ideally, you need to have a good grasp on the following issues as they relate to your invention:
What is new in a proprietary application and can be used in an infringement suit is not contained within the source code per se, but in the function being performed, as it has been expressed in the claims of the patent in question. It is easily possible to provide new functionality by combining well-known blocks of code. It may be insufficient to replace one code block with another while retaining equivalent functionality. Often functional code blocks are proprietary codecs with names: MP3, WMA, etc.

1. What is the origin of the source code in your new product? Is any of the code tied to proprietary code that may affect your right to use it inside your new product? Is any of the code sourced from open source and may come with contractual obligations which might prohibit its use in a commercial product to be sold for profit? In general, the act of infringing will apply to appropriating entire applications, classes, modules, or algorythms that provide complete functionality.

2. If any part of your invention includes some elements which originate in proprietary or open source applications, are there any work-arounds which may be applied to remove such liabilities? A coder will understand that if source code originates a language such C#, it can easily be translated to C++ or java.   Lines of code with specific functionality might be rephrased while retaining the drsired functionality.  It needs to be determined if a bit to bit translation would constitute infringement of proprietary open source code. In general, it would probably require more than using a line or two of code from an app downloaded from the internet. But where do you draw the line; the quantity which could constitute infringement or violation of an open source license needs to be verified .

3. Read the license provided with any software purchased or downloaded to find out the conditions which the buyer/user agrees to by acquiring the application. It would be highly unlikely that any single application can comprise solely proprietary code. Software applications are built on platforms of well-known code snippets that combine to provide functional blocks. The user must commit to agreeing with licensing terms before software becomes useable. Open source licensing generally permits the use and improvement of the source code, but prohibit its use in commercial products. Commercial software does not supply source code, but its licences prohibit decompiling the executable, and copying of the source code for any purpose. However, in each case, there may well be source code which is not or could not be protected by a licensing agreement. Its location
needs to be verified

A 2014 Supreme Court ruling Alice v. CLS Bank clarified what may be ineligible to be patented in the field of software. The court held that abstract ideas (such as those of many software patents) are not made patentable simply by being performed by a computer. But this ruling does not clarify just what sort of software inventions were novel enough to warrant patentability. The main thing which can be taken away with  confidence is that not all software is ineligible to be patented. It should also come as a relief to the coder that the era of all-encompassing patents  is over, trivia, business formulas diguised as software are gone, along with much bogus litigation initiated by NPEs (patent trolls) against bona fide software firms.

For the coder who is also a 'minimalist inventor', the following excerpts from the new USPTO training guidelines for examiners will provide some excellent perspectives on just what can and cannot be patented.

(Interim Eligibility Guidance) for USPTO personnel to use when determining subject matter eligibility under 35 U.S.C. 101 in view of recent decisions by the U.S. Supreme Court, including Alice Corp., Myriad, and Mayo. The Interim Eligibility Guidance supplements the June 25, 2014 Preliminary Examination Instructions issued in view of Alice Corp.




The following are examples of claims used to illustrate subject matter which would be acceptable, and not acceptable under the patentability criteria which illustrate abstract subject matter.

Example of Acceptable Claim:
1.A computer-implemented method for protecting a computer from an electronic communication containing malicious code, comprising executing on a processor the steps of:
receiving an electronic communication containing malicious code in a computer with a memory having a boot sector, a quarantine sector and a non-quarantine sector;
storing the communication in the quarantine sector of the memory of the computer, wherein the quarantine sector isisolated from the boot and the non-quarantine sector in the computer memory, where code in the quarantine sector is preventedfrom performing write actions on other memory sectors;
extracting, via file parsing, the malicious code from the electronic communication to create a sanitized electronic communication, wherein the extracting comprises scanning the communication for an identified beginning malicious code marker, flagging each scanned byte between the beginning marker and a successive endmalicious code marker,
continuing scanning until no further beginning malicious code marker is found, and
creating a new data file by sequentially copying all non-flagged data bytes into anew file that forms a sanitized communication file;
transferring the sanitized electronic communication to the non-quarantine sector of the memory; and
deleting all data remaining in the quarantine sector
Claim 1:  Eligible.
The method claim recites a series of acts for protecting a computer from an electronic communication containing malicious code.  Thus, the claim is directed to a process, which is one of the statutory categories of invention (Step 1:  YES).
The claim is then analyzed to determine whether it is directed to any judicial exception. The claimed invention relates to software technology for isolation and extraction of malicious code contained in an electronic communication.  The claim is directed towards physically isolating a
received communication on a memory sector and extracting malicious code from that communication to create a sanitized communication in a new data file.  Such action does not describe an abstract concept, or a concept similar to those found by the courts to be abstract,such as a fundamental economic practice, a method of organizing human activity, an idea itself (standing alone), or a mathematical relationship.  In contrast, the invention claimed here is directed towards performing isolation and eradication of computer viruses, worms, and other malicious code, a concept inextricably tied to computer technology and distinct from the types of concepts found by the courts to be abstract. Accordingly, the claimed steps do not recite an abstract idea.  Nor do they implicate any other judicial exception.  Accordingly, the claim is not directed to any judicial exception (Step 2A: NO).  The claim is eligible. 

Example of Unacceptable Claim:

10. A method of generating a device profile that describes properties of a device in a digitall image reproduction system for capturing, transforming or rendering an image, said method comprising: generating first data for describing a device dependent transformation of color information content of the image to a device independent color space through use of measured chromatic stimuli and device response characteristic functions; generating second data for describing a device dependent transformation of spatial information content of the image in said device independent color space through use of spatial stimuli and device response characteristic functions;  and
combining said first and second data into the device profile.


The claimed method simply describes the concept of gathering and combining data by reciting steps of organizing information through mathematical relationships.  The gathering and combining merely employs mathematical relationships to manipulate existing information to generate additional information in the form of a ‘device profile,’ without limit to any use of the device profile. similar to the basic concept of manipulating information using mathematical relationships (e.g., converting numerical representation in Benson), which has been found by the courts to be an abstract idea.  Therefore, the claim is directed to an abstract idea (Step 2A:
The claim does not include additional elements beyond the abstract idea of gathering and combining data. Therefore, the claim does not amount to more than the abstract idea itself (Step 2B:  NO).  The claim is not patenteligible.

Claim 1. (abbreviated) A system for managing a game of Bingo which comprises:
(a) a computer with a central processing unit (CPU) and with a memory and with a printer connected to the CPU


The  claim recites program elements (i) through (viii) that describe the steps of managing a game of Bingo, including for example inputting and storing two sets of Bingo numbers, assigning a unique player identifier and control number, and verifying a winning set of Bingo numbers.  Managing the game of Bingo as recited in the claim can be performed mentally or in a computer and is similar to the kind of ‘organizing human activity’ at issue in Alice Corp. Although the claims are not drawn to the same subject matter, the abstract idea of managing a game of Bingo is similar to the abstract ideas of managing risk (hedging) during consumer transactions (Bilski) and mitigating settlement risk in financial transactions (Alice Corp.)  Claim 1 describes managing the game of Bingo and therefore is directed to an abstract idea.


How to Proceed
The above examples should give the coder a reasonably good idea about proceeding to prepare and file a patent application which should have a reasonably good chance to pass muster on the issue of acceptability of subject matter.

Preparing an application

Insofar as preparing the text of a patent application, some points on the subject are covered in the article titled
'Prepare and file your own patent application'. The main distinction between mechanical, electrical and software patent categories, apart from specific subject matter, lies in the drawings. Examples of software drawing formats are provided.
Any inventor who is considering preparing and filing his/her own patent application should realize that there is little or no downside to doing this on your own behalf if choosing the path of a
provisional application. You have the benefit of using the filing date to establish the  date of filing of the full utility application, should you wish to proceed along this path. Best of all, the provisional application is never examined, nor made public. So you can, if you choose, abandon the project without fanfare.




copyright 2015- All Rights Reserved.   The contents of this website are solely the opinions of the author or provided as illustrative examples, and are not intended to be taken as legal opinions, nor to be considered to be applicable to any particular case. These contents are provided without warranty for accuracy or fitness for use. Use of the contents is at the reader's  discretion, and no attorney/client  relationship is established thereby