Software Patents PRELIMINARY FINDINGS OF A TRUDGE THROUGH THE OFFICIAL JOURNAL OF THE INDIAN PATENT OFFICE Methodology Patent website Browsers SQL Security certificates Patent Search(es) Patent Search 18 month search Controller’s decisions search Patent journals Outside resources Software Patents in India Group discussions BigPatent.com website Bhaven Sampet, Mailman School of Public Health, Columbia University, with funding from Ford Foundation Some Statistics Total granted ~300 Total applied for 895 233 Microsoft 1012 (including “a novel method for chromatographic finger printing and standardization of single medicines and formulation”) Points to remember Abstracts need to be more descriptive so that they are challengeable Subject matter Prior art Weasel words Vigilant civil society organizations reviewing such patent applications Persons skilled in the art Existing system 0003/DEL/2004 - 10/02/2006 - Journal No. 06/2006 MICROSOFT CORPORATION CONFIGURATION OF USER INTERFACES Configuration of user interfaces is described. In an implementation, a method includes receiving a query from a device. The query is for a user interface (UI) from a client. A processing of the request determines whether the execution by the client of the control function is permitted. The processing is performed at a head end by using client state data. The hardware and/or software capabilities of the device to execute the UI are detected. The UI is configured based on the hardware and/or software capabilities of the device. [This seems to allude to something like a conditional template/stylesheet/theme.] Existing system 0270/DEL/2005 - 09/02/2005 - Journal No. 52/2006 MICROSOFT CORPORATION UPDATE DISTRIBUTION SYSTEM ARCHITECTURE AND METHOD FOR DISTRIBUTING SOFTWARE A hierarchical software update distribution system and method for distributing software updates is presented. The update distribution system includes a root update service node and at least one update service node. In an update distribution system, each update service node, except the root update service node, has one parent update service node. Each update service node may function as parent update service node to child update service nodes. [Seems like apt-get / yum, etc.] Anti-circumvention? 1043/DELNP/2008 - 04/07/2008 - Journal No. 27/2008 SECURED DIMENSIONS LTD. METHOD FOR PREVENTING SOFTWARE REVERSE ENGINEERING, UNAUTHORIZED MODIFICATION, AND RUNTIME DATA INTERCEPTION A method for preventing the unauthorized modification of a software or unauthorized modification of runtime data. According to this method ‘a converter, which is capable of converting the software into a generalized machine code is provided’. The converter is designed such that it cannot be reverse engineered, by using a conversion process that causes data loss. An interpreter, which the knowledge of its process method is kept restricted, is also provided. The interpreter interprets the general machine code into a specific machine code, while reconstructing the lost data during the interpretation process. Purely Algorithmics/Software 0577/DELO/2005 - 16/03/2005 - Journal No. 35/2007 METHOD AND SYSTEM FOR LIMITING SOFTWARE UPDATES MICROSOFT CORPORATION A method of detecting pirated software includes receiving a request for a software update by a client computer and providing to the client computer a test to be performed. The test is performed on the client computer against the client software application. The client computer may be denied a software update as a result of the test finding an illegitimate copy of the client software. The invention may be practiced in a network environment where a server transfers a test program for a client to execute upon request of a software update. The test performs an integrity cheek and denies the request for a software update if the client software is found to be illegitimate. [The core of the ‘method’ is the integrity check, which is a) (algorithmic) cryptographic hashing, b) performed by software.] Existant 02287/DELNP/2003 - 20/01/2006 - Journal No. - 3/2006 CONTENTGUARD HOLDINGS, INC METHOD AND APPARATUS FOR SUPPORTING MULTIPLE TRUST ZONES IN A DIGITAL RIGHTS MANAGEMENT SYSTEM A digital rights management method and system for items having usage rights. A first activation device defines a first trust zone. A first license device associated with the first trust zone generates an open license having usage rights associated with a first item. A second activation device defines a second trust zone and is adapted to issue a software package that enforces usage rights. A user device associated with the second trust zone is adapted to receive the software package from the second activation device, to receive the open license associated with the first item, and to use the first item in accordance with the open license. In addition, a method is provided for enforcing a license granting usage rights associated with a protected item, and for classifying a license, the license being an open license or a closed license. Purely Software 0251/DEL/2005 - 29/12/2006 - Journal No. 52/2006 MICROSOFT CORPORATION SCALABLE PRINT SPOOLER An exemplary scalable print spooler efficiently prints data on a printer and is most effective in use with a dedicated print server. One use of the invention is with a print server that services a large number of client computers having applications programs having a need to print data. These could include, but are not limited to, word processing applications programs. A server computer has software that implements a server print spooler for co-ordinating the printing of data sent to the print server by the client computers. A number of printers are coupled to the server computer for printing under direction of the server print spooler. Client calls to the print spooler are accomplished by asynchronous procedures that communicate by means or an remote procedure call channel. A thread pool at the print server services these calls without unreasonable context switching between client requests. 0284/DEL/2005 - 29/12/2006 - Journal No. 52/2006 MICROSOFT CORPORATION TAG-BASED SCHEMA FOR DISTRIBUTING UPDATE METADATA IN AN UPDATE DISTRIBUTION SYSTEM A tag-based structure for communicating software update metadata information to client computers and to update service nodes is presented. An update metadata file includes: an identifier tag including a software update identifier that uniquely identifies the software update; zero or more general properties tags that carry general property information relating the software update; zero or more localized properties tags that carry localized property information organized according to language; zero or more relationship tags that identify dependency relationships the current software update, as described in the update metadata, has with other software updates; zero or more applicability rules tags that carry information for determining the applicability of the software update to a client computer; zero or more files tags that carry information relating to the software update's payload files; and handler specific data tags that carry information directed to the software handler for installing the software update. 0529/DEL/2005 - 12/01/2007 - Journal No. 02/2007 MICROSOFT CORPORATION FILE LOCKER AND MECHANISMS FOR PROVIDING AND USING SAME A file locker manages the storage and use of protected data for software objects. A protected environment maintains the cryptographic and isolative infrastructure to support sealing of data items for use by a trusted agent. The file locker uses the protected environment's sealing functionality to seal data items for the file locker's exclusive access. The file locker seals, to itself, files received from software objects, and provides those files upon request, and upon sufficient proof of the requestor's trustworthiness, authenticity, and/or identity. The file locker may be used to extend the protected environment's sealing functionality to legacy applications, without the legacy applications having to implement agents that can run in the protected environment and access the sealing functionality directly. 0870/DEL/2005 - 05/01/2007 - Journal No. 01/2007 CISCO TECHNOLOGY, INC. METHOD AND SYSTEM FOR CODE COVERAGE A method, a native library and a java Virtual Machine Debugger interface agent for providing code coverage for programs coded in a computer language are described. The method involves determining the classes for which the code coverage is desired. The runtime environment for the computer language generates software events for several events that take place in the environment, such as preparing a class for loading and breakpoints. Handler functions for the events corresponding to events such as preparing a class for loading and breakpoints are registered with the runtime environment. The method further involves receiving breakpoints for one or more executable units in the classes for which the code coverage is desired. On receiving the breakpoint event, a line hit counter is incremented, which enables determination of the lines of code which are exercised and which are not. The native library and Java Virtual Machine Debugger Interface agent contain instructions that implement the method. 0926/DEL/2005 - 01/12/2006 - Journal No. 48/2006 MICROSOFT CORPORATION EFFICIENT PATCHING A facility for augmenting software in a target computer system is described. The facility receives and augmentation specification in the target computer system. The augmentations specification specifies; (a) a function to be augmented, (b) a parameter of the function to be tested, (c) a test to apply to the specified parameter, and (d) and modification to perform to the behaviour of the function if specified test is not satisfied by the specified parameter. When the specified function is invoked on the target computer system, if the specified tested is not satisfied by the specified parameter, the facility performs the specified modification to the behaviour of the specified function. Intuitive 10063/DELNP/2007 - 20/06/2008 - Journal No. - 25/2008 AB INITIO SOFTWARE CORPORATION MANAGING MEMORY PAGES A method, and corresponding software and system, is described for paging memory used for one or more sequentially-accessed data structure. The method includes providing a data structure (200) representing an order in which memory pages are to be reused; and maintaining the data structure according to a history of access to a memory page associated with one of the sequentially-accessed data structures. A position of the memory page in the order depends on a transition of sequential access off of the memory page. Purely Software 10085/DELNP/2007 - 20/06/2008 - Journal No. - 25/2008 NOKIA CORPORATION SHOWING TOOLTIPS FOR PAGE SEGMENTS AND GENERATING CONTENT FOR THE PAGE SEGMENT A method, system, device, and software product are presented for describing to a user a section of a page on a small display, such as a mobile phone display. A section selection signal indicates a section of the page, and then a tooltip describes content of that section of the page. The tooltip is superimposed on at least part of the page. Then a larger version of that section of the page can be displayed. [Insufficient details.] Purely Software 10184/DELNP/2007 - 20/06/2008 - Journal No. 25/2008 MICROSOFT CORPORATION IMMUNIZING HTML BROWSERS AND EXTENSIONS FROM KNOWN VULNERABILITIES An exemplary computer-implementable method (300) transforms or "immunizes" information to reduce or eliminate risk of exploitation of a known vulnerability of a software service and includes receiving information (304) in response to a request, transforming the information (308) to produce transformed information and sending the transformed information (312). An exemplary firewall server (112) includes server software (144, 148) that allows the firewall server (112) to receive information from a resource (104, 108) via a network and to send information to a client computer (114) and an immunization component (264, 268) for immunizing the information to prevent exploitation of a vulnerability of browser software (154) on the client computer (114). Various other exemplary methods, devices, systems, etc., are also disclosed. Standard 1036/DEL/2005 - 31/08/2007 - Journal No. 35/2007 MICROSOFT CORPORATION GENERIC USB DRIVERS Techniques are disclosed to provide generic USB drivers. More particularly, a generic USB device driver architecture is described which enables development through a user-mode USB library that accesses a generic kernel-mode driver. In a described implementation, a method includes loading a kernel-mode generic device driver in response to a plug-in event of a device. A user software component accesses the device by utilizing routing provided by the generic user- mode library (e.g., a dynamic link library (DLL) that communicates with the generic device driver). [This shows that it is very difficult to interpret “software per se” narrowly, as all software is meant to interact with hardware.] Misleading 1043/DELNP/2008 - 04/07/2008 - Journal No. 27/2008 SECURED DIMENSIONS LTD. METHOD FOR PREVENTING SOFTWARE REVERSE ENGINEERING, UNAUTHORIZED MODIFICATION, AND RUNTIME DATA INTERCEPTION A method for preventing the unauthorized modification of a software or unauthorized modification of runtime data. According to this method a, converter, which is capable of converting the software into a generalized machine code is provided. The converter is designed such that it cannot be reverse engineered, by using a conversion process that causes data loss. An interpreter, which the knowledge of its process method is kept restricted, is also provided. The interpreter interprets the general machine code into a specific machine code, while reconstructing the lost data during the interpretation process. [Possibly refers to cryptography, which isn’t patentable either, under section 3(k), as it would be an algorithm.] Purely software 0003/DEL/2004 - 10/02/2006 - Journal No. 06/2006 MICROSOFT CORPORATION CONFIGURATION OF USER INTERFACES Configuration of user interfaces is described. In an implementation, a method includes receiving a query from a device. The query is for a user interface (UI) from a client. A processing of the request determines whether the execution by the client of the control function is permitted. The processing is performed at a head end by using client state data. The hardware and/or software capabilities of the device to execute the UI are detected. The UI is configured based on the hardware and/or software capabilities of the device. [Not tied down to particular hardware, and seems to be aimed at competitor control, rather than innovation.]