Sign In to Follow Application
View All Documents & Correspondence

A Computing System For Providing An Interface For A Computer Program Involving Multiple Native Languages

Abstract: METHOD OF PROVIDING AN INTERFACE FOR A COMPUTER PROGRAM INVOLVING MULTIPLE LANGUAGES AND A COMPUTING SYSTEM THEREOF A method of providing an interface for a computer program involving multiple languages is disclosed. The method includes receiving in a user interface, input values specifying a native language, a computer programming language, and a language associated with the computer programming language; maintaining a mapping data indicating word-meaning pairs with each word-meaning pair includes a keyword of the computer programming language and a single word in the native language of choice having a closest match to the keyword, receiving in an input data file, a corresponding plurality of text lines in the native language, generating using the mapping data, a first file includes the plurality of text lines with keywords in the programming language in place of the corresponding words in the plurality of text lines and generating an output file based on the first file in the language associated with the programming language of choice. FIG. 1

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
14 July 2021
Publication Number
43/2021
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2023-03-13
Renewal Date

Applicants

SAANKHYA LABS PVT. LTD
EMBASSY ICON, FLOOR-3, NO:3, INFANTRY ROAD, BANGALORE - 560001, KARNATAKA, INDIA.

Inventors

1. Shridhar Vadiraj Savadatti
3rd floor, Embassy Icon, Infantry Road, Bangalore, Karnataka, India – 560001

Specification

Claims:I/We Claim:

1. A method of providing an interface for a computer program involving multiple languages, wherein the method comprising:
receiving (502) in a corresponding user interface, corresponding input values specifying a native language of choice, a computer programming language of choice, and a language associated with the computer programming language of choice;
maintaining (504) mapping data indicating word-meaning pairs with each word-meaning pair comprising a keyword of the computer programming language of choice and a single word in the native language of choice that has the closest match to the keyword;
receiving (506) in an input data file, a corresponding plurality of text lines in the native language, wherein the plurality of text lines together represents instructions comprised in a corresponding computer program;
generating (508) using the mapping data, a first file comprising the plurality of text lines from the input data file with keywords in the programming language in place of the corresponding words in the plurality of text lines; and
generating (510) an output file based on the first file with text representing any of name of a variable, a function replaced with corresponding word in the language associated with the programming language of choice.


2. The method as claimed in claim 1, wherein the method performs the steps of:
parsing (602) each of the plurality of text lines of the input data file in identifying the single word that is equivalent in meaning to the one or more words comprised in each of the plurality of text lines; and
determining (604), based on the identified single word, the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines in generating the first file.


3. The method as claimed in claim 1, wherein the generating an output file comprises performing the steps of:
identifying (702) distinct strings of non-ASCII characters comprised in the first file;
assigning (704) an identifier value to each of the identified distinct strings of non-ASCII characters to form a corresponding key-value pair;
parsing (706) the first file in determining based on the key-value pair and replacing the corresponding one of the strings of non-ASCII characters in the first file with corresponding identifier value in generating the output file.


4. The method as claimed in claim 1, wherein the user interface comprises a programming editor that supports editing using any language including English in creating the input data file.


5. A computing system (100) for providing an interface for a computer program involving multiple languages comprising:
a processor (101);
a memory (103) coupled to the processor (101), wherein the memory (103) has stored in thereon computer program involving multiple program languages;
a user interface (102) configured for:
receiving in input values specifying a native language of choice, a computer programming language of choice, and a language associated with the computer programming language of choice;
a data mapping module (108) configured for:
mapping data indicating word-meaning pairs with each word-meaning pair comprising a keyword of the computer programming language of choice and a single word in the native language of choice that has the closest match to the keyword;
a first data parser module (112) configured for:
receiving in an input data file, a corresponding plurality of text lines in the native language, wherein the plurality of text lines together represent instructions comprised in a corresponding computer program; and
generating using the mapping data, a first file comprising the plurality of text lines from the input data file with keywords in the programming language in place of the corresponding words in the plurality of text lines; and
a second data parser module (116) configured for:
generating an output file based on the first file with text representing any of name of a variable, a function replaced with corresponding word in the language associated with the programming language of choice.


6. The system (800) as claimed in claim 5, wherein the first data parser module (112) is further configured for:
parsing each of the plurality of text lines of the input data file in identifying the single word that is equivalent in meaning to the one or more words comprised in each of the plurality of text lines; and
determining, based on the identified single word, the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines in generating the first file.


7. The system (800) as claimed in claim 5, wherein the second data parser module (116) is further configured for:
identifying distinct strings of non-ASCII characters comprised in the first file;
assigning an identifier value to each of the identified distinct strings of non-ASCII characters to form a corresponding key-value pair;
parsing the first file in determining based on the key-value pair and replacing the corresponding one of the strings of non-ASCII characters in the first file with corresponding identifier value in generating the output file.


8. The system (800) as claimed in claim, wherein the user interface (102) further comprises a programming editor (104) configured for editing the input source code data using any language including English in creating the input data file.


9. A non-transitory computer readable medium storing a computer program having instructions that were compiled by the method of claims 1-4. , Description:BACKGROUND
Technical Field
[0001] The embodiments herein generally relate computer programming systems and methods and more specifically to a system and method for providing a programming interface for a computer program involving multiple languages.
Description of the Related Art
[0002] In a multilingual country like India, it is observed that the younger children in rural places are not quite comfortable with English. Since most of the popular programming languages are written in English, there are high chances of those children being deprived of learning computer programming only because of their limited exposure to the English language.
[0003] Natural Language Programming (NLPr) refers to a type of programming performed in a human's naturally spoken or written language (e.g., English, Hindi or other natural language) that can be analyzed and converted to machine-executable code. For instance, a sentence or a paragraph written in a native language (as opposed to a formal programming language) may be parsed and understood as a computational program. If NLPr is successful, the impact can be far-reaching. Not only can it significantly increase productivity in software development, but it can also provide enormous innovations in software design, execution, and understanding. In terms of computing education, NLPr can help eliminate the inherent fear and frustration of learning the conventional computer programming language. But, the ambiguity and nuances of the native language can make NLPr extremely challenging.
[0004] Accordingly, there remains a need for a system and method for enabling programmers to write the computer programs in native languages to alleviate the above-described deficiencies in conventional systems.
SUMMARY
[0005] In view of the foregoing, an embodiment herein enables a programmer to write computer programs in any programming languages of choice, inclusive of the native languages.
[0006] According to an embodiment herein, a method of providing an interface for a computer program involving multiple languages is disclosed. The method includes receiving in a corresponding user interface, corresponding input values specifying a native language of choice, a computer programming language of choice, and a language associated with the computer programming language of choice. The method further includes maintaining mapping data indicating word-meaning pairs with each word-meaning pair comprising a keyword of the computer programming language of choice and a single word in the native language of choice that has the closest match to the keyword. The method further includes receiving in an input data file, a corresponding plurality of text lines in the native language. The plurality of text lines together represents instructions included in a corresponding computer program. Further, the method includes generating using the mapping data, a first file includes the plurality of text lines from the input data file with keywords in the programming language in place of the corresponding words in the plurality of text lines and generating an output file based on the first file with text representing any of name of a variable, a function replaced with corresponding word in the language associated with the programming language of choice.
[0007] Thus the embodiments herein enable to translate programming codes written in any non-English language to the required programming languages.
[0008] In some embodiments, the method includes parsing each of the plurality of text lines of the input data file in identifying the single word that is equivalent in meaning to the one or more words included in each of the plurality of text lines; and determining, based on the identified single word, the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines in generating the first file.
[0009] In some embodiments, generating an output file includes performing identifying distinct strings of non-ASCII characters included in the first file, assigning an identifier value to each of the identified distinct strings of non-ASCII characters to form a corresponding key-value pair, and parsing the first file in determining based on the key-value pair and replacing the corresponding one of the strings of non-ASCII characters in the first file with corresponding identifier value in generating the output file.
[0010] In some embodiments, the user interface includes a programming editor that supports editing using any language including English in creating the input data file.
[0011] Embodiments herein further disclose a computing system comprising a processor, a memory coupled to the processor. The memory has stored in thereon computer program involving multiple program languages and a user interface. The user interface is configured for receiving input values specifying a native language of choice, a computer programming language of choice, and a language associated with the computer programming language of choice. The User interface includes a data mapping module configured for mapping data indicating word-meaning pairs with each word-meaning pair comprising a keyword of the computer programming language of choice and a single word in the native language of choice that has the closest match to the keyword. The user interface further includes a first data parser module configured for receiving in an input data file, a corresponding plurality of text lines in the native language, wherein the plurality of text lines together represents instructions included in a corresponding computer program and generating using the mapping data, a first file comprising the plurality of text lines from the input data file with keywords in the programming language in place of the corresponding words in the plurality of text lines. The user interface further includes a second data parser module configured for generating an output file based on the first file with text representing any of name of a variable, a function replaced with corresponding word in the language associated with the programming language of choice.
[0012] In some embodiments herein, the first data parser module is further configured for parsing each of the plurality of text lines of the input data file in identifying the single word that is equivalent in meaning to the one or more words included in each of the plurality of text lines and determining, based on the identified single word, the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines in generating the first file.
[0013] In some embodiments herein, the second data parser module is further configured for identifying distinct strings of non-ASCII characters included in the first file, assigning an identifier value to each of the identified distinct strings of non-ASCII characters to form a corresponding key-value pair, parsing the first file in determining based on the key-value pair and replacing the corresponding one of the strings of non-ASCII characters in the first file with corresponding identifier value in generating the output file.
[0014] In some embodiments herein, the user interface further includes a programming editor (104) configured for editing the input source code data using any language including English in creating the input data file.
[0015] Embodiments herein further disclose a non-transitory computer readable medium storing a computer program having instructions that were compiled by the method disclosed herein.
[0016] The method and the computer system enable programmers who are not well-equipped to grasp English, to program in any language of their choice, thereby removing language barrier to learn Computer Programming. The method and the computer system support as many native languages as UNICODE script supports. The UNICODE standard may support 154 languages (can increase). The method and the computer system enable that a program can be written in any of these languages.
[0017] These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof, and the embodiments herein include all such modifications.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
[0019] FIG. 1 illustrates a systematical block diagram of a computing system, according to some embodiments herein;
[0020] FIG. 2 illustrates a method of keyword mapping between two text files, according to some embodiments herein;
[0021] FIG. 3 is an exemplary user interface view that depicts a programming source code editor in a native language, according to an example embodiment herein;
[0022] FIG. 4 is a flow diagram that illustrates a method for providing an interface for a computer program involving multiple languages, according to some embodiments herein;
[0023] FIG. 5 is a flow diagram that illustrates a method for generating a first file using mapping data, according to some embodiments herein;
[0024] FIG. 6 is a flow diagram that illustrates a method for generating an output file based on the first file, according to some embodiments herein; and
[0025] FIG. 7 is a schematic diagram of a computer architecture in accordance with the embodiments herein.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0026] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
[0027] The embodiments herein disclose a File-Mapping-based Two-Pass technique, which enables the programmers to write the program code in any language. The source file contains the words in the native language. The source file is then parsed in two stages to translate the source code in the native language to English. After both the passes, the program in the native language is completely translated to the required Compilable / Interpretable language.
[0028] Referring now to the drawings, and more particularly to FIGS. 1 to 7, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments.
[0029] FIG. 1 illustrates a systematical block diagram of a computing system 100, according to some embodiments herein. The computing system 100 includes a processor 101, a memory 103, and a user interface 102. The memory 103 is coupled to the processor 101. The memory 103 has stored in thereon computer program involving multiple program languages. The user interface 102 includes a program editor module 104, a data mapping module 108, a first data parser module 112, and a second data parser module 116. The user interface 102 is adapted to receive input values 106 specifics to a native language of choice, a computer programming language of choice, and a language associated with the computer programming language of choice of the user. The data mapping module 108 maintains mapping data which indicates word meaning pairs. Each word-meaning pair comprising a keyword of the computer programming language of choice and a single word in the native language of choice that has the closest match to the keyword. The user programming editor module 104 supports editing using any language including English to create the input data file.
[0030] The first data parser module 112 receives an input data file 110 corresponding to a plurality of text lines in the native language. The plurality of text lines together represents instructions included in a corresponding computer program. The first parser module 112 parses each of the plurality of text lines of the input data file to identify the single word that is equivalent in meaning to the one or more words included in each of the plurality of text lines. Based on the identified single word, the first parser module 112 determines the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines. The first data parser module 112 then generates a first file 114 which is then passed on to the second data parser module 116.
[0031] The second data parser module 116 identifies distinct strings of non-ASCII characters present in the received first file. The second data parser module 108 assigns an identifier value to each of the identified distinct strings of non-ASCII characters to form a corresponding key-value pair. The second data parser module 116 then parses the first file based on the key-value pair and replaces the corresponding one of the strings of non-ASCII characters in the first file with the corresponding identifier value and generates the output file 118.
[0032] Accordingly, the file mapping based two stage data parsing method enables programmers to write the program code in any language. The source code contains the words in the native language. The source code is then parsed through the first data parser module 112 and the second data parser module 116 to translate the source code in the native language to English. After both the parsing stages, the program in the native language is completely translated to the required Compilable or interpretable language.
[0033] FIG. 2 illustrates a method of keyword mapping between two text files, according to some embodiments herein. As shown in FIG. 2, a block 202 includes keywords in native language, for instance in Kannada and a block 204 includes relevant words in a programming language in English. The relevant words in the block 204 include keywords, directives, special function names, and the like, associated with the programming language. Each of the keywords in the native language in the block 202 is mapped against the corresponding words in the programming language in English in the block 204, thereby creating word-meaning pairs. These words meaning pairs are then used as an input for generating the first file.
[0034] FIG. 3 is an exemplary user interface view that depicts a programming editor module in a native language, according to an example embodiment herein. In the example of FIG. 3, Hindi is selected as the native language. The programming editor module 110 provides for editing of the source code includes a list of keywords in Hindi to choose from and a list of all the elements of the required alphabet in Hindi. The user can choose the required elements by clicking or touching the list of all elements of the required alphabet in Hindi and then writing the code in Hindi.
[0035] In an example embodiment, an input data file in the native language is shown below. The input data file includes a plurality of text lines in the native language, for example, Hindi. The plurality of text lines herein together represents instructions included in a corresponding computer program. The programming source code editor then maps the keyword of the programming language and the meaning of the single word in Hindi to generate a word-meaning pair. The single word in Hindi is chosen as the word that has the closest match to the keyword. The programming source code editor then processes the input data file and generates a first data file.
[0036] The input data file in the native language:
पूर्णांक संख्याएँ_जोड़ें ( पूर्णांक संख्या1 , पूर्णांक संख्या2 )
{
वापसी संख्या1 + संख्या2 ;
}
पूर्णांक मुख्य ()
{
पूर्णांक संख्या1 = 4;
पूर्णांक संख्या2 = 6;
पूर्णांक योग = संख्याएँ_जोड़ें ( संख्या1 , संख्या2 ) ;
वापसी 0;
}
[0037] In an example embodiment, a first data file in the native language is shown below. In a first translation process, each of the plurality of text lines of the input data file is parsed to identify the single word that is equivalent in meaning to the one or more words included in each of the plurality of text lines. Further, based on the identified single word, the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines is determined, based on which the first file is generated.
[0038] The first data file in the native language:
int संख्याएँ_जोड़ें ( int संख्या1 , int संख्या2 ) {
return संख्या1 + संख्या2 ;
}
int main () {
int संख्या1 = 4;
int संख्या2 = 6;
int योग = संख्याएँ_जोड़ें ( संख्या1 , संख्या2 ) ;
return 0;
}
[0039] In an example embodiment, an output file obtained in a programming language of choice is shown below. In a second translation process, the variable and function names are translated from the native language to the target programming language in English. Here, the first file is parsed for identifying distinct strings of non-ASCII characters. Each of the identified distinct strings of non-ASCII characters is then assigned with unique identities. Thus key-value pairs are formed with Non-ASCII strings as keys and their identities as the values. The key value pairs are then searched in the first file in the second parsing. If the key value pairs are found, replace the corresponding one of the strings of non-ASCII characters in the first file with corresponding identifier value in the generated output file. The generated output file herein is a fully Compilable or interpretable program.
[0040] The output file obtained in the programming language of choice:
int patentTestCase_var0 ( int patentTestCase_var1 , int patentTestCase_var2 ) {
return patentTestCase_var1 + patentTestCase_var2 ;
}
int main () {
int patentTestCase_var1 = 4;
int patentTestCase_var2 = 6;
int patentTestCase_var3 = patentTestCase_var0 ( patentTestCase_var1 , patentTestCase_var2 ) ;
return 0;
}
[0041] FIG. 4 is a flow diagram that illustrates a method for providing an interface for a computer program involving multiple languages, according to some embodiments herein. At step 402, the user interface receives corresponding input values specifying a native language of choice, a computer programming language of choice, and a language associated with the computer programming language of choice. At step 404, the user interface maintains mapping data indicating a plurality of word-meaning pairs. Here each of the word-meaning pairs comprising a keyword of the computer programming language of choice and a single word in the native language of choice that has the closest match to the keyword. At step 406, an input data file, a corresponding to a plurality of text lines in the native language is received. The plurality of text lines together represents instructions included in a corresponding computer program. At step 408, a first file is generated using the mapping data. The first file comprising the plurality of text lines from the input data file with keywords in the programming language in place of the corresponding words in the plurality of text lines. At step 410, an output file is generated, based on the first file with text representing any of name of a variable, a function replaced with corresponding word in the language associated with the programming language of choice.
[0042] FIG. 5 is a flow diagram that illustrates a method for generating a first file using mapping data, according to some embodiments herein. At step 502, each of the plurality of text lines of the input data file is parsed to identify the single word that is equivalent in meaning to the one or more words included in each of the plurality of text lines. At step 504, based on the identified singled word, it is determined, the corresponding keyword of the programming language to use in place of the corresponding one or more words in each of the plurality of text lines in generating the first file.
[0043] FIG. 6 is a flow diagram that illustrates a method for generating an output file based on the first file, according to some embodiments herein. At step 602, distinct strings of non-ASCII characters included in the first file are identified. At step 604, a corresponding key-value pair is formed by assigning an identifier value to each of the identified distinct strings of non-ASCII characters. At step 606, the first file is parsed, based on the key-value pair and replacing the corresponding one of the strings of non-ASCII characters in the first file with corresponding identifier value in generating the output file.
[0044] The embodiments herein may include a computer program product configured to include a pre-configured set of instructions, which when performed, can result in actions as stated in conjunction with the methods described above. In an example, the pre-configured set of instructions can be stored on a tangible non-transitory computer readable medium or a program storage device. In an example, the tangible non-transitory computer readable medium can be configured to include the set of instructions, which when performed by a device, can cause the device to perform acts similar to the ones described here. Embodiments herein may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer executable instructions or data structures stored thereon.
[0045] Generally, program modules utilized herein include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types. Computer executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
[0046] The embodiments herein can include both hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc.
[0047] A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
[0048] Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
[0049] A representative hardware environment for practicing the embodiments herein is depicted in FIG. 7, with reference to FIGS. 1 through 6. This schematic drawing illustrates a hardware configuration of a server/computer system/ user device in accordance with the embodiments herein. The computing system 100 includes at least one processing device 10 and a cryptographic processor 11. The special-purpose CPU 10 and the cryptographic processor (CP) 11 may be interconnected via system bus 14 to various devices such as a random access memory (RAM) 15, read-only memory (ROM) 16, and an input/output (I/O) adapter 17. The I/O adapter 17 can connect to peripheral devices, such as disk units 12 and tape drives 13, or other program storage devices that are readable by the system. The computing system 100 can read the inventive instructions on the program storage devices and follow these instructions to execute the methodology of the embodiments herein. The computing system 100 further includes a user interface adapter 20 that connects a keyboard 18, mouse 19, speaker 25, microphone 23, and/or other user interface devices such as a touch screen device (not shown) to the bus 14 to gather user input. Additionally, a communication adapter 21 connects the bus 14 to a data processing network 26, and a display adapter 22 connects the bus 14 to a display device 24, which provides a graphical user interface (GUI) 30 of the output data in accordance with the embodiments herein, or which may be embodied as an output device such as a monitor, printer, or transmitter, for example. Further, a transceiver 27, a signal comparator 28, and a signal converter 29 may be connected with the bus 14 for processing, transmission, receipt, comparison, and conversion of electric or electronic signals.
[0050] The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the appended claims.

Documents

Application Documents

# Name Date
1 202141031731-STATEMENT OF UNDERTAKING (FORM 3) [14-07-2021(online)].pdf 2021-07-14
2 202141031731-PROOF OF RIGHT [14-07-2021(online)].pdf 2021-07-14
3 202141031731-POWER OF AUTHORITY [14-07-2021(online)].pdf 2021-07-14
4 202141031731-FORM FOR SMALL ENTITY(FORM-28) [14-07-2021(online)].pdf 2021-07-14
5 202141031731-FORM FOR SMALL ENTITY [14-07-2021(online)].pdf 2021-07-14
6 202141031731-FORM 1 [14-07-2021(online)].pdf 2021-07-14
7 202141031731-EVIDENCE FOR REGISTRATION UNDER SSI(FORM-28) [14-07-2021(online)].pdf 2021-07-14
8 202141031731-EVIDENCE FOR REGISTRATION UNDER SSI [14-07-2021(online)].pdf 2021-07-14
9 202141031731-DRAWINGS [14-07-2021(online)].pdf 2021-07-14
10 202141031731-DECLARATION OF INVENTORSHIP (FORM 5) [14-07-2021(online)].pdf 2021-07-14
11 202141031731-COMPLETE SPECIFICATION [14-07-2021(online)].pdf 2021-07-14
12 202141031731-FORM-9 [14-10-2021(online)].pdf 2021-10-14
13 202141031731-MSME CERTIFICATE [20-10-2021(online)].pdf 2021-10-20
14 202141031731-FORM28 [20-10-2021(online)].pdf 2021-10-20
15 202141031731-FORM 18A [20-10-2021(online)].pdf 2021-10-20
16 202141031731-FER.pdf 2022-01-31
17 202141031731-OTHERS [31-07-2022(online)].pdf 2022-07-31
18 202141031731-FER_SER_REPLY [31-07-2022(online)].pdf 2022-07-31
19 202141031731-CLAIMS [31-07-2022(online)].pdf 2022-07-31
20 202141031731-US(14)-HearingNotice-(HearingDate-20-12-2022).pdf 2022-12-01
21 202141031731-Correspondence to notify the Controller [09-12-2022(online)].pdf 2022-12-09
22 202141031731-FORM-26 [16-12-2022(online)].pdf 2022-12-16
23 202141031731-FORM-26 [19-12-2022(online)].pdf 2022-12-19
24 202141031731-Correspondence to notify the Controller [19-12-2022(online)].pdf 2022-12-19
25 202141031731-Annexure [19-12-2022(online)].pdf 2022-12-19
26 202141031731-Written submissions and relevant documents [03-01-2023(online)].pdf 2023-01-03
27 202141031731-PatentCertificate13-03-2023.pdf 2023-03-13
28 202141031731-IntimationOfGrant13-03-2023.pdf 2023-03-13
29 202141031731-RELEVANT DOCUMENTS [27-09-2023(online)].pdf 2023-09-27
30 202141031731-POWER OF AUTHORITY [04-12-2024(online)].pdf 2024-12-04
31 202141031731-FORM-16 [04-12-2024(online)].pdf 2024-12-04
32 202141031731-ASSIGNMENT WITH VERIFIED COPY [04-12-2024(online)].pdf 2024-12-04
33 202141031731-PROOF OF ALTERATION [31-12-2024(online)].pdf 2024-12-31
34 202141031731-Response to office action [04-04-2025(online)].pdf 2025-04-04

Search Strategy

1 202141031731E_29-01-2022.pdf

ERegister / Renewals

3rd: 11 May 2023

From 14/07/2023 - To 14/07/2024

4th: 11 May 2023

From 14/07/2024 - To 14/07/2025

5th: 11 May 2023

From 14/07/2025 - To 14/07/2026

6th: 11 May 2023

From 14/07/2026 - To 14/07/2027

7th: 11 May 2023

From 14/07/2027 - To 14/07/2028

8th: 11 May 2023

From 14/07/2028 - To 14/07/2029

9th: 11 May 2023

From 14/07/2029 - To 14/07/2030

10th: 11 May 2023

From 14/07/2030 - To 14/07/2031