Skip to main content

Software Patent

👉 Protection of computer-implemented inventions, as a technical solution realized by software

What is software?

Software and hardware are the two main components of a computer system. They differ fundamentally in the following points:

  • Hardware
    Hardware is the physical component of a computer system. It consists of electronic and mechanical parts that can be touched and seen. Examples of hardware include processors, hard drives, memory, keyboards, and monitors.
  • Software
    Software is the intangible component of a computer system. It consists of programs and data that are not physically tangible. Software can be stored and run on hardware.

Software encompasses various aspects of a solution, including:

  • Programs and applications
    These control the computer and allow the user to perform various tasks. Examples include operating systems, word processors, web browsers, and games.
  • Data
    Data is information that is processed by programs. This includes text, numbers, images, videos, and audio.
  • Documentation
    The documentation describes how software works and how to use it.

Software can be divided into different categories, such as:

  • Operating System / System software
    System software is the basis for all other software programs. It manages the computer’s resources and provides basic functions such as memory management, file management, and device drivers.
  • Application Software
    Application software is designed for specific tasks, such as word processing, spreadsheets, web browsers, and games.
  • Programming languages
    Programming languages are used to create new software programs.

Obviously, the concept of software encompasses much more than just the pure code of a computer program. However, computer programs are a central component of software.

Program code, often referred to simply as code, is a collection of instructions and sets of instructions written by a programmer in a specific programming language. This code is then interpreted or compiled by a computer to perform a specific task.

Software is more than just the program code or simply code. Beyond the code, the software includes:

  • Architecture and Design
  • Planning of functionalities
  • User Interaction and User Experiences
  • Interaction of different components and system components
  • Dealing with errors
  • Updating and maintenance

The terms software and code are closely related, but should not be equated. Software is the umbrella term that encompasses everything that is required to perform tasks on a computer. Code is the part of the software that consists of the instructions that the computer executes.

What is an algorithm?

An algorithm is a rule used to solve a problem. It describes a set of clear and well-defined steps that must be taken in order to achieve a specific result. Algorithms can be used in various fields, such as mathematics, computer science, biology, economics, and engineering.

Algorithms and software are closely linked. Algorithms are the basis for software, i.e. software is the implementation of algorithms in a computer system. The interplay between algorithms and software can be described as follows:

  • Algorithms
    An algorithm describes the steps required to solve a problem. However, it is not tied to a specific programming language or computer system.
  • Software
    Software, on the other hand, is the implementation of an algorithm in a programming language so that it can run on a specific computer system.

Properties of algorithms are in particular:

  • Accuracy
    The individual steps of an algorithm must be precisely defined.
  • Finiteness
    An algorithm must be completed after a finite number of steps.
  • Generality
    An algorithm must return a result for all input data that satisfies the scope of the problem.
  • Efficiency
    An algorithm should be as efficient as possible, i.e. it should use as few resources (e.g., time and storage space) as possible.

In engineering, a variety of algorithms are used to solve various tasks. Here are some examples:

Search algorithms:

  • Search engines: Search large amounts of data to find information that meets the user’s needs.
  • Web Browsers: Find websites and resources on the Internet.
  • File Systems: Find files on a computer.

Sorting algorithms:

  • Arrange data in a specific order, such as alphabetically, numerically, or by date.
  • Improve the efficiency of data processing processes.

Compression algorithms:

  • Reduce the size of data, such as images, videos, and audio files.
  • Save disk space and bandwidth.

Cryptographic algorithms:

  • Encrypt data: Protect sensitive information from unauthorized access.
  • Decrypt data: Allow access to encrypted information.

Other algorithms from technical applications are:

  • Image Editing Algorithms: Edit and enhance images.
  • Speech recognition algorithms: Convert speech to text.
  • Machine learning algorithms: Enable computers to learn from data and make predictions.

What is a software patent?

The issue of patent protection for software is complex, and the correct answer may vary from country to country. Software is a comparatively fuzzy term that ranges from background music recognition (EP 2 483 889) to a ledger protocol to incentivise commerce (non-technical). For the patent protection of software, the question must be asked: Which software is patentable?

Software as such, in the sense of the program code, is not directly accessible to patent protection. The exclusion from patentability for software only means that no patents are granted for bare source code. For the abstracted sequence of an algorithm or for a processor on which a certain computer program runs, on the other hand, it is.

However, inventions that are implemented by means of a computer are open to patent protection, which is then also referred to as “computer-implemented inventions” (CII). In this case, it is often referred to as a “software-related invention” or the corresponding patent as a “software patent”.

Patent law is there to protect technical solutions as long as they are new, inventive and industrially applicable. A patent does not protect the written computer program, the code, but rather the technical solution that is achieved and implemented by the software – hence the term “computer-implemented invention”.

Software patents are patents granted on computer-implemented inventions. They provide the patentee with legal protection for their invention and allow them to control the use, sale, or manufacture of the patented software by other parties. Software patents can be granted for various types of software, including operating systems, application software, middleware, and firmware.

What software can be patented?

Computer programs as such cannot be patented. However, if the execution of a computer code achieves a technical effect and is the solution to a technical problem, a patent can be granted.

In order to successfully apply for patent protection, it is necessary that the solution is unique (absolutely new) and based on an inventive step. An inventive step, in this context, means that the novel addition or feature in the software must be of value and not just a trivial addition.

This means that inventors can patent their software inventions, provided that all the characteristics of a patentable invention are given, and that is, among other things, that the software is a solution to a technical problem.

Patenting software can come with some challenges. Here are some of the biggest challenges:

Patentability:

  • Software is not generally patentable. There are certain requirements that must be met in order for software to be patented. These conditions vary from country to country.
  • In Europe and the USA, for example, software is not patentable as such. However, it may be possible to patent software as part of a computer-implemented invention (CII).

Novelty:

  • The software must be new, i.e. it must not have been published before.
  • This can be especially problematic with open-source software.

Inventive step:

  • The software must be based on an inventive step, i.e. it must not be obvious.
  • This can be difficult because software is often based on techniques that are already known.

Technical Teaching:

  • The software must contain a technical teaching, i.e. it must solve a technical problem.
  • This can be tricky because software is often seen as an abstract idea.

Costs and duration:

  • The patenting process can be lengthy and expensive.
  • This can be challenging, especially for small businesses and startups.

Legal uncertainty:

  • Case law on the patentability of software is constantly evolving.
  • This can lead to legal uncertainty and make it more difficult to enforce software patents.

In addition, there are some other practical challenges:

  • Different jurisdictions in the individual countries
    The patentability of software is regulated differently in the individual countries. This can lead to difficulties if software is to be patented in several countries.
  • Software complexity
    Software is often complex and it can be difficult to identify the patentable features of a piece of software.
  • Rapid software development
    The software is evolving rapidly. This can cause software patents to quickly become obsolete.

If you want to patent software, you should seek advice from a knowledgeable patent attorney. The latter will first check whether the software is patentable.

Software patents in the U.S. and Europe?

The legal framework for software patents varies by jurisdiction. For example, the rules on software patents are different in the US and Europe.

USA: In the United States, software patents are governed by the U.S. Patent Act, specifically the 35th U.S. Code § 101, which states that any “new and useful process, machine, article of manufacture, or composition of materials, or any new and useful improvement thereof” is patentable. In the U.S., the U.S. Patent and Trademark Office (USPTO) allows algorithms to be patented under certain conditions, namely when the algorithm is part of a computer-implemented invention and not just an abstract idea.

Europe: In Europe, the patentability of software is governed by the European Patent Convention (EPC) and the national laws of the Member States. Article 52 EPC states that “new inventions which are subject to industrial applications and involve an inventive step” are patentable. However, Article 52(2)(c) EPC excludes “programs for data processing equipment” as such from patentability. Nevertheless, software patents can be granted in the EU if the invention is a technical solution to a technical problem. If a technical effect is achieved by executing an algorithm and is the solution to a technical problem, a patent can be granted.