How to Patent Software
Software patents are not an "official" type or class of patents. They are regular patents that claim a method that is performed by a computer program rather than a traditional method such as a chemical process. Software patents should have all the same requirements and pieces that a regular (non-software) patent has. To learn more about how to patent software, see my post on how to file a patent but note the following differences. The main difference between a software patent application and a non-software patent application will be in the figures and the claims.
The figures for a software patent should show each step that the software process goes through during its operation. This is best accomplished as a flow chart or flow diagram. The chart should show each decision point as
as diamond or circle which is conventional for these types of charts. See an example from Apple to the right.
The claims of a software patent are unique in the sense that they should always contain two things; a reference to a machine or a computer and a multiple steps. An example of this would be something like:
- A method of syncing two or more audio tracks to a video stream using a computer, the method comprising;
- adding at two audio tracks to a digital library;
- processing the audio tracks with a data processing algorithm;
- adding a video stream to the digital library;
- syncing said video stream to said audio tracks using a media syncing algorithm
Very crude example but you get the point. The patent claim above would protect a software program that can sync multiple audio tracks to a video stream using some unique algorithm that you should define elsewhere in your application. You would also need to make sure you define each of these terms and the key steps in your specification (the detailed description of your invention).
Update: I have updated our paid members only section to include training videos and examples for software patents. To become a member please click here.
Link to the free Patent Template is shown below: