Patenting software algorithms

    Products in the field of information technology (hereinafter - IT) in general contain several components, the legal protection of which is implemented in different ways.


    The architecture, the algorithmic solution, the hardware of the IT product and the graphical part of the user interface are protected as objects of patent law.

    The peculiarities of patenting architectural and hardware solutions are worthy of a separate discussion and therefore are not considered here.

    The code of computer programs that implement the algorithm and the user interface is registered as an object of copyright (that is, as a literary work), respectively, only the text form is protected, and not the algorithm. The graphical part of the user interface can be patented as an industrial design. At the same time, the registration of the code of computer programs and the patenting of the graphical part of the user interface can be considered, rather, as an auxiliary tool for ensuring legal protection in the IT industry.

    The most reliable and therefore the main mechanism for protecting the interests of a software developer is the patenting of computer program algorithms as inventions.

    Fundamental patentability

    There are fundamental limitations to the patenting of inventions. They are generally similar in different jurisdictions, although there may be differences that, in most cases, are cosmetic.

    According to paragraph 1 of Art. 1350 of the Civil Code of the Russian Federation, as an invention, among other objects, a technical solution is protected in any area related to a method characterized as a process of performing actions on a material object using material means.

    According to paragraph 5 of Art. 1350 of the Civil Code of the Russian Federation, are not inventions mathematical methods, rules and methods of games, intellectual or economic activities, as well as solutions consisting only in the presentation of information, while excluding the possibility of classifying these objects as inventions only when the application for issuing a patent concerns these facilities per se.

    In Russia, the invention does not patent, for example, the plot-role part of a computer game algorithm (gameplay), the mathematical part of an information processing algorithm without being tied to material objects or a new way of accounting.

    In the US, some of these decisions may be patentable as “business methods” ( covered-business-methods), however, the practice of patenting such decisions is unstable.
    However, in any jurisdiction, the inventions may include compression or encryption algorithms for storage on the media or for transmission on the communication channel, multifactor authentication algorithms, server load balancing algorithms, image recognition algorithms, etc.

    Algorithm Descriptions


    To ensure an adequate scope of protection of the invention and sufficient resistance of the patent to revocation, it is important to correctly describe the algorithm in order, on the one hand, to fulfill the requirement of a description of the invention in the application, revealing its essence with a sufficient amount of knowledge of the invention by a person skilled in the art 2 (2) of article 1375 of the Civil Code of the Russian Federation in Russia; Article 83 EPC in Europe; 35 USC 112 (a) in the United States), and on the other hand, not to suggest to potential competitors ways to circumvent the patent.

    In addition, if necessary, the description should provide a basis for the introduction of features into the claims during an examination or patent dispute.

    In the description of the invention, the logical chain “purpose of the invention - features of the invention - technical result” i.e. the connection of the technical result with the features of the invention (at least with the features contained in the claims) must be demonstrated.

    In contrast to mechanical structures, in “computer methods” this connection itself may not be obvious, and it must be indicated in the description explicitly.

    The technical result should be technical in nature and should be formulated in a form that provides its measurement or direct observation.

    Typical for some jurisdictions the concept of "useful effect" of an invention ( advantageous effect) does not completely coincide with the concept of "technical result". In particular, the cheaper product (goods or services), improved usability, improved appearance, etc. may be a “beneficial effect”, but will not be recognized as a technical result.

    If a “wide” formulation is used in the claims, for example, means plus function (means for ...), then the description should contain a sufficient number of practical examples of the function justifying the use of such a formulation. The lack of specifics can lead to both complications at the examination stage and a decrease in the chances of a patent to resist when trying to cancel it ( Bilski vs. Kappos, 2010 ; Alice Corp. vs. CLS Bank International, 2014 , etc.) [1].

    If the range of numerical values ​​of parameters is used in the claims, then the description should contain a sufficient number of examples or theoretical justifications confirming the achievement of the stated technical result in the whole range.

    At the same time, often all that can be achieved from the program developer as the source material for drafting a patent application is an incomplete block diagram of the algorithm, the code listing of this program and confusing explanations like “read here, not read here, here is a stub , but here and there - crutches, they also do not look. "

    Therefore, it is important for the originator of a patent application for an algorithm to grasp the essence of the patented algorithmic solution and to present it correctly, translating the functions and operators of the programming language into technical and mathematical language and simultaneously complementing the description of the invention with possible options for its practical implementation, which developers usually do not have time for they consider this work below their dignity.

    Example: a fragment of real code in the C ++ programming language and a fragment of the description of the invention based on it




    Graphic illustrations of algorithms


    As graphic illustrations of computer program algorithms, flowcharts of algorithms are most often used.

    When preparing figures containing flowcharts of algorithms, it is advisable to adhere to one of the most common graphic notation systems - GOST 19.701-90 (ISO 5807: 1985) [2] or a unified modeling language UML [3].

    Alternative ways of visualizing algorithms, such as the visual language of DRAGON, pseudocode, Nassi-Schneiderman diagrams, etc., are also applicable, but they are less convenient for this purpose because of their limited fame.

    An example of a flowchart of the algorithm according to GOST 19.701-90



    Complicated algorithms with a high degree of detail usually do not fit on one sheet of A4 format with compliance with the requirements for the drawings of patent applications. Therefore, they are presented on several sheets - either using the principle of cascade decomposition, when a block diagram of the upper level is placed on the first sheet, and on the subsequent sheet - block diagrams that reveal the composition of the blocks from the first sheet, or immediately in a detailed form using connectors that allow the scheme started on one sheet, continue on the next sheets. Perhaps the combination of these two methods.

    An example of the use of connectors



    Some types of algorithms, mainly related to telecommunications, can be successfully visualized using message flow diagrams .

    An example of a message flow chart



    Other types of algorithms, for example, related to the so-called. “Business methods,” it is convenient to illustrate using IDEF family diagrams.

    Sample IDEF0 Chart



    Invention formulas for algorithms


    Generic concept for claims related to algorithms for computer programs, it is advisable to choose a method. The choice as a generic concept of a device (a computing device running a program, or a storage device storing a program) is applicable only in the additional independent claims, and even then not in all jurisdictions.

    In particular, in the United States, characterizing a device as a feature of a method can cause patent revocation ( HTC Corp. vs. IPCom GMBH & Co., KG, 2010 ) [4].

    An independent claim must contain a description of the purpose of the invention and features of the invention, ensuring the achievement of the technical result indicated in the description. At the same time, the use in the claims of a “wide” formulationmeans plus function for the only distinguishing feature can also cause the revocation of a patent in the United States ( In re Hyatt, 1983 ) [5].

    Typically, “computer methods” are patented in several countries that are target markets for products protected by a patent. When drafting the claims of such patent applications, it is advisable to focus not on Russian criteria of unity of invention, but on the criteria of unity adopted in these countries, or on the criteria of unity in accordance with the PCT (Patent Cooperation Treaty), if patenting is planned on the basis of the international application.

    The formula is made using speech constructions that are traditional for patenting: in Russian - elliptical verb tense in the third person plural ( transmit, accept, process, calculate, compare, make decision ), in English - impersonal gerundal turn ( transmitting, receiving , processing, comparing, judging ).

    Example formulation of a dependent

    claim. The method according to claim 27, wherein clarifying the value of at least one of the pitch, roll and yaw angles comprises the following steps:

    (b1) initialize the numeric array and the variable;
    (b2) read the readings of the magnetometer, accelerometer and gyroscope;
    (b3) calculate the values ​​of the angles of pitch, roll and yaw and the speed of rotation of the first terminal device;
    (b4) calculate the difference between the value of at least one of the pitch, roll and yaw angles, calculated on the basis of the readings of the magnetometer, and the value of the same angle, calculated on the basis of the readings of the gyroscope; ...

    In the formulas of IT inventions, sometimes there are information carriers containing a program code that implements the algorithm according to the invention. The popularity of such claims has been declining in recent years, but if the applicant insists on including such a clause in the formula, it should be remembered that in some jurisdictions (primarily in the US) the information carrier in the application must be presented as a machine-readable physical information carrier (non-transitory computer readable medium ) - as opposed to electrical and electromagnetic signals in communication channels, acoustic signals and other ripple effects.

    The emergence of this term is associated with the so-called. " 35 USC §101 rejection problem " - frequent refusals in the United States on applications containing the indication " computer readable medium " in the claims without indicating its physical nature.

    Disclaimers and spells


    In patent applications for computer program algorithms, it is reasonable to use remarks (disclaimers) regarding the sequence of steps of the algorithm, for example:
    ... the sequence of actions in the description of the method is illustrative and in different embodiments of the invention this sequence may differ from that described provided that the function performed is saved and achieved result.

    In patent applications for software and hardware, you can also use disclaimers regarding the combination of features related to software and hardware solutions, for example, of the form:
    ... devices and their parts mentioned in the description are software and hardware means, while the hardware parts of some devices may differ, partially coincide or completely coincide with the hardware parts of other devices, unless otherwise specified in an explicit form;
    ... hardware parts of devices may be located in different parts of other devices, unless otherwise specified explicitly;
    ... software modules can be implemented as software code contained in a storage device.


    In addition, in patent applications intended for foreign patenting, primarily in countries of the British or American patent tradition, it is advisable to use specific formulations of disclaimers and other legal spells, often looking bizarre or meaningless in the Russian legal field with its prescriptive effect of the rules of patent law, but traditionally used in these countries. This applies, for example, to comments of the form:
    ... a document of such and such, the entire contents of which are incorporated herein by reference;
    ... these examples do not limit the scope of the claimed invention;
    ... the reference to a publication in the prior art given in the description is not an admission that this publication is part of well-known knowledge in this field.


    Despite successes in harmonizing the patent laws of the leading industrial countries, rudimentary traditions inherited from the 18th – 19th centuries persist in a number of jurisdictions.

    In addition, some of these traditions may be related to the case law of the law in the respective jurisdictions, others are due to the peculiarities of local law enforcement practice, and this should be taken into account when drafting patent applications.

    Conclusion


    The patenting of computer software algorithms requires special qualification and thoroughness in work from the originator of the application. In addition, with regard to applications for foreign patenting, it is necessary to take into account patent traditions and law enforcement trends in the jurisdictions of the main markets for high-tech products, primarily the United States and Europe.

    Since foreign judicial practice in relation to “computer methods” changes frequently and sometimes radically, the main trends should be constantly monitored and, if possible, taken into account when drafting applications.

    For the USA, for example, it is convenient to use a regularly updated encyclopaedia on the compilation of patent formulas [5], for European countries a periodic review of the practice of patent disputes [6].

    Literature
    1. P. Andrew Riley, Jonathan RK Stroud, and Jeffrey Totten. The New Way to the Challenge of Patent. - The Columbia Science & Technology Law Review, Vol. XV, Spring 2014, pages 235–292.
    2. GOST 19.701-90 Unified system for program documentation. Schemes of algorithms, programs, data and systems. Conventions conditional and rules of execution. - M .: Standards Publishing House, 1991.
    3. Grady Butch, James Rumbaugh, Ivar Jacobson. UML language. User's manual. Second edition. - M .: DMK Press, 2007.
    4. Bradley C. Wright. Functional Claiming and Functional Disclosure. Presented: 6th Annual Advanced Patent Law Institute, January 20–21, 2011, Alexandria, VA.
    5. Robert C. Faber. Faber on Mechanics of Patent Claim Drafting - Seventh Edition (Release # 3, November 2016). - New York: Practicing Law Institute, 2016.
    6. Patent Litigation in Europe. EPC contracting states - Fourth Edition. - European Patent Academy, EPO, 2016.

    This publication uses the materials of the report made by the author at the St. Petersburg Collective Readings - 2018 patent conference on June 27, 2018. The report was addressed to patent specialists, most of whom are far from IT technologies, therefore some information from the publication may seem to Habr's readers well-known and obvious. The author encourages readers to treat this with understanding.

    Also popular now: