SAFE Banner

JUNE 2009


Software Scan

The President's Column

Should software be patentable? Or is patenting software like patenting a mathematical equation, a law of nature, or a thought (none of which is patentable)? Since the Supreme Court has decided to revisit the Bilski case, I decided that the Scanning IP section should revisit software patents. I give some history about software patents in the U.S. and the world, and I present some of my thoughts on the topic. In the Scanning Tools section I discuss how to use the filtering features of CodeSuite to narrow your focus and improve your results.

Send me your comments and critiques. I'm always interested in hearing from you.


Bob Zeidman
President, SAFE Corporation

Scanning IP

Software Patents -- Good or Bad?
The idea that software can be patentable is a fairly recent one, and still a somewhat controversial one. The US Patent and Trademark Office (USPTO) considers patents to cover processes, machines, articles of manufacture, and compositions of matter but not scientific truths or mathematical expressions. In the 1970s, the USPTO gave no protection for an invention that used a calculation made by a computer. In the 1980s, the US Supreme Court ruled on the case Diamond v. Diehr where a process implemented one of its steps using a computer program. This forced the USPTO to accept that some computerized inventions are patentable. In the 1990s, the US Federal Circuit Court ruled in State Street Bank & Trust v. Signature Financial Group that almost all software is patentable. Given that methods have always been patentable, this seems to be a reasonable conclusion because software is a method implemented on a computer.

The patentability of software varies from country to country. In the United States any kind of software is patentable, though the recent case of Bilski v. Doll requires that a patent meet the "machine-or-transformation test." In other words, the patent must explicitly state that the method is implemented on a machine or must transform data in some way. Just this week, though, the Supreme Court agreed to hear the Bilski case, so stay tuned for further changes to U.S. patent law.

In the European Union software that solves technical problems is patentable but not software that solves business problems. In Japan software is patentable if it solves technical problems in a non-obvious way (though non-obviousness is a requirement for patentability of an invention in any country). In India, a change was proposed to the patent system to allow software patents, but it was killed by the Indian Parliament in April 2005. In Australia, like the United States, any software that solves technical problems or business problems is patentable.

There are a number of arguments put out by a number of groups for and against software patents. The debate is heated, and many groups are pushing for laws in the United States to disallow software patents, among several other proposed "reforms." My own opinion is that the United States is the most innovative country in the world and the patent system, in effect since the founding of this country, needs only minor tweaking. The best solution would be to make patent examination more efficient in order to quickly eliminate bad patent applications and quickly issue good ones.

Advanced Tools to Detect Software Plagiarism and IP Theft

A sophisticated set of tools for analyzing software source code and object code including:

Check binary object code for plagiarism.

Cross check source code for plagiarism.

Compare source code to find differences and measure changes.

The premiere tool for pinpointing copying.

Scour the Internet for plagiarized code.

Turbo charge your analysis on a supercomputer grid.

Get Smart

SAFE offers training at our facility or yours. Contact us to make arrangements:

MCLE credit in software IP

CodeSuite certification

Your New Office

Remember that you can now have your own secure office at the SAFE facility for storing proprietary software, running CodeSuite, analyzing the results, and getting on-site support. We're located at

20863 Stevens Creek Blvd.
Suite 456
Cupertino, CA 95014
(408) 517-1194

Scanning Tools

Filtering your results
Once you've run CodeMatch, CodeDiff, BitMatch, or CodeCross to compare two sets of source code, what then? Typically even independently created software will have a lot of common elements. While these functions help you narrow down your examination, there's still typically a lot left to examine. That's where filtering comes in. When you start examining the files, you'll find that certain elements are just not important -- things like open source files, common identifier names, etc. CodeSuite allows you to filter out statements, comments, strings, identifiers, files, and folders. It also allows you to change the threshold settings. After filtering, a new CodeSuite database is generated and the correlation scores are adjusted accordingly. By using filters, you can focus in on the relevant code elements, if any, in very short time.

If you want to see how filtering can be used to make more useful search engines, check out my article in Dr. Dobb's Journal or my more technical paper on the subject in the Journal of Systemics, Cybernetics and Informatics.

This newsletter is not legal advice. Views expressed herein should be checked for accuracy and current applicability.
Copyright 2009 Software Analysis & Forensic Engineering Corporation