In August 2015 Indian Patent Office Patent Office released guidelines for CRIs and these were opposed by iSPIRIT and others. In Feb 2016 Patent office came out with revised guidelines.
The main Difference:
1. August 2015 guidelines has illustrated examples of claims which are patentable, where as Feb 2016 guidelines completely dropped the list.
2. The August guidelines carry a checklist on what is not excluded under section 3(k) of the patent act taking a liberal view of technical contribution. The February guidelines restated the known position leaving it to interpretation of examiner.
While there is no ambiguity of computer program, which is not patentable in India, the ambiguity is about combined software and hardware invention.When the technical contribution is on a process which is carried on outside computer, patents were allowed. Expanding the non-exclusive list to computer programmes making the computer a better computer is opposed and dropped.
Section 3(K) of India’s Patents Act proscribes the patenting of “a mathematical or business method or a computer program per se or algorithms”. Until last week, the most recent guidance on that question was a set of guidelines for examination of CRIs released in 2013. These, many contend “seem to encourage novelty in hardware to overcome rejections”. The guidelines now contain illustrative examples of claims that are patentable.
The following are examples (illustrative but not exhaustive) of some of the granted
claims by Indian Patent Office:
Example 8.1: An apparatus (610, 650) for eigenvalue decomposition and singular
value decomposition of matrices in wireless communications comprising:
plurality of transmitters ( 622a; 622ap );
plurality of receivers ( 622a; 622ap );
a controller (630) configured to receive traffic data and generating data symbols;
a transmit (TX) data processor (614) coupled to said controller (630);
a receive (RX) data processor (642) coupled to said controller (630);
a channel processor (628) coupled to said controller (630);
wherein said channel processor (628) and said controller (630) performs a plurality
of iterations of Jacobi rotation on a first matrix of complex values with a plurality of
Jacobi rotation matrices of complex values, wherein, for each of the plurality of iterations, said channel processor (628) and said controller (630) is configured to
form a submatrix based on the first matrix, to decompose the submatrix to obtain
eigenvectors for the submatrix, to form a Jacobi rotation matrix with the
eigenvectors, and to update the first matrix with the Jacobi rotation matrix, and to
derive a second matrix of complex values based on the plurality of Jacobi rotation
matrices, the second matrix comprising orthogonal vectors; and a memory (632)
coupled to the said channel processor (628, 630) and said controller (678, 680).
Example 8.2: A method for granting an access to a computer-based object,
wherein
- a memory card having a program code processor is provided, with at least one
public and one private key assigned to the memory card being stored thereon,
- an item of license information which comprises at least one license code encrypted
by means of the public key assigned to the memory card is provided at a computing
device controlling the access to the computer-based object,
- a symmetric key which is made available to the memory card and the computing
device is generated from a first random number generated by the memory card and
from a second random number provided by the computing device,
- the encrypted license code and a specification, provided with a hash value
encrypted using the symmetric key, of a function that is to be executed by the
memory card for decrypting the license code are transmitted to the memory card,
- the encrypted hash value is decrypted by the memory card and checked for
agreement with a hash value computed for the specification of the function to be
executed by the memory card,
- if the result of the check is positive, the function for decrypting the license code is
executed by the memory card and a decrypted license code is transmitted to the
computing device,
- the decrypted license code is provided at least temporarily for accessing the
computer-based object.
Example 8.3: A method of controlling an electronic device (1) comprising a touch
sensitive display (11) the method comprising:
displaying a plurality of graphical items (43) on the touch sensitive display (11)
where each graphical item (43) has an identity (44);
detecting a coupling, formed by a user, of at least two graphical items (43), the
coupling comprising, a trace on the touch sensitive display (11) between the at least
two graphical items (43); and,
performing an action dependent upon the identity (44) of the coupled graphical
items (43),
Page 16 of 21
characterized in that when characterized in that when the user begins to make the trace, an indication is
displayed to indicate the item ( 43) on which the trace began.
Example 8.4: A computer-implemented method comprising:
identifying one or more person names in a set of one or more documents, with each
identified person name more likely to refer to a single person in a profession than
other person names in the document:
identifying descriptive language from one or more documents, based on the
identified names; and
identifying within one or more documents other person names that refer to persons
in the profession, based on one or more portions of the identified descriptive
language.
Example 8.5: A method for providing a network bridge in UDP multicast traffic, the
method being executed by a multicast repeater (108a; 708a) on a host computer
system (104a, 704a) on a network 102a; 702a), the method comprising the steps of:
holding information about one or more other multicast repeaters ( 108a; 708a)
which have been discovered, each multicast repeater (108a; 708a) being arranged
on a separate network (102b; 702b) that is separated from the network (102a;
702a) including a host by at least one network device that is not configured to route
UDP multicast addressing; and
at each time when a UDP multicast request packet (320; 720) is received via
multicast, extracting a globally unique packet ID from the UDP multicast request
packet (320; 720);
determining whether or not the multicast repeater (108a; 708a) has previously
forwarded the UDP multicast request packet (320; 720) by searching an ID cache for
the packet ID;
ignoring the UDP multicast request packet (320; 720) in a case where the multicast
repeater (1 08a; 708a) has previously forwarded the UDP multicast request packet
(320; 720); and
in a case where the multicast repeater (108a; 708a) has not previously forwarded
the UDP multicast request packet (320; 720), transmitting the UDP multicast request
packet (320; 720) to the one or more other multicast repeaters (108a; 708a) which
have been discovered, and recording the packet ID in the ID cache, wherein the
method comprises determining whether or not a UDP multicast request packet corresponding to a UDP multicast response packet (320; 720) has originated in the
network (102a;702a) whenever the UDP multicast response packet is received.
Example 8.6: A method for estimating a length of time required to download one
or more application programs on a wireless device over wireless network, said
method comprising operations of:
the wireless device exchanging one or more data files with server, said data files
including at least information representing a size of the one or more application
programs available for downloading onto the wireless device;
during the exchanging, at least one of the server and wireless device measuring one
or more data transfer rates for the exchanging operation;
receiving user input of one or more application programs to download;
at least one of the server and wireless device:
utilizing the one or more measured data transfer rates and the size of the selected
one or more application programs to estimate a length of time required to download
the one or more application programs onto the wireless device and the wireless
device providing an output of the estimated time.
Example 8.7: A method for tracking a mobile electronic device using instant
messaging (IM), the method comprising the steps of:
determining whether a currently inserted subscriber identity module (SIM) card is
different from the SIM card stored in a memory of a mobile electronic device;
stealthily initiating a live voice call over an instant messaging (IM) message to a
predefined IM identity of a user; and
automatically sending IM message along with the live voice call, location and IMSI
number of the currently inserted SIM card to the predefined IM identity of the user
via an IM server if the currently inserted SIM card is different from the SIM card
stored in the memory of the mobile electronic device.
Example 8.8: A method of creating Tunnel End Points for a IPv6 over IPv4 tunnel
using simple network management protocol (SNMP) in a system having Dual-Stack
Border Router as v4/v6 nodes, the method comprising steps of:
selecting at least one v4/v6 node as SNMP manager and the rest as SNMP agent
configuring the tunnel configuration pertaining to the new node (cloud) at the SNMP
manager whenever a new v4/v6 node is added to the v4 network; sending an SNMP SET request to the new v4/v6 node with the tunnel configuration
information of all the nodes by the SNMP manager;
processing the SNMP SET request by the said new v4/v6 node and configuring the
tunnel configuration information of all the nodes if the attempt succeeds;
sending a response to the SNMP manager indicating success or failure of the
configuration;
configuring existing SNMP agents and the new node in order to effect incorporation
of tunnel configuration information of new v4/v6 node.
Example 8.9: IPAB Decision relating to CRI
While dealing with a patent application having title “Method for controlling a wind
turbine and a wind turbine”,
IPAB observed:
“This is normally a computer operated or computer controlled technical
instrumentation processing of the utilities to achieve the target in an automatic
fashion and this technical process control associated with or directed to a computer
set up to operate in accordance with a specified program (whether by means of
hardware or software) for controlling or carrying out a technical process control such
as the above, cannot be regarded as relating to a computer program per se or a set
of rules of procedure like algorithms and thus are not objectionable from the point of
view of patentability, more so when the claims do not claim, or contain any
algorithm or its set of rules as such, but only comprise of some process steps to
carry out a technical process or achieve a technical effect finally the maximum
power output by controlling the wind turbine. Hence the objection that invention is
not patentable under section 3(k) fails or not valid.”