KR20210082727A - Semantic linking of natural language words with columns and tables in databases - Google Patents
Semantic linking of natural language words with columns and tables in databases Download PDFInfo
- Publication number
- KR20210082727A KR20210082727A KR1020190174967A KR20190174967A KR20210082727A KR 20210082727 A KR20210082727 A KR 20210082727A KR 1020190174967 A KR1020190174967 A KR 1020190174967A KR 20190174967 A KR20190174967 A KR 20190174967A KR 20210082727 A KR20210082727 A KR 20210082727A
- Authority
- KR
- South Korea
- Prior art keywords
- database
- natural language
- word
- words
- column
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007519 figuring Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/258—Heading extraction; Automatic titling; Numbering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법에 관한 것으로, 더 상세하게는 자연어에 대한 데이터베이스의 인터페이스 실현이 용이하도록 하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법에 관한 것이다.The present invention relates to a method of associating natural language words with columns and tables of a database, and more particularly, to a method of associating natural language words with columns and tables of a database to facilitate realization of a database interface for natural language.
일반적으로, 자연어를 SQL 질의로 번역하는 문제는 전문 지식이 없는 사람이 관계형 데이터베이스에 질의할 수 있다는 점에서 중요한 문제이다. 최근 SQL 질의 번역 문제를 푸는 많은 규칙 및 신경망 기반 방법들이 제안되었다. In general, the problem of translating natural language into SQL queries is an important issue in that a person without specialized knowledge can query a relational database. Recently, many rules and neural network-based methods for solving SQL query translation problems have been proposed.
"Diptikalyan Saha, Avrilia Floratou, Karthik Sankaranarayanan, Umar Farooq Minhas, Ashish R Mittal, Fatma zcan : ATHENA: An Ontology-Driven System for Natural Language Querying over Relational Data Stores PVLDB 9(12): 1209-1220 (2016)(선행문헌1)"에서는 자연어를 SQL 질의로 변환하는 규칙 기반 기술 ATHENA를 제안하였다. ATHENA는 전문가가 사전 정의한 온톨로지(ontology) 및 텍스트의 단어와 온톨로지의 개체를 매핑하는 사전을 이용해 자연어의 단어들을 온톨로지의 개체들에 매핑한다. 이렇게 매핑된 개체들 및 자연어를 이용해 OQL(Ontology Query Language) 질의를 생성하고, 다시 이를 SQL 질의로 변환하는 방법으로 SQL 질의 번역을 수행한다. "Diptikalyan Saha, Avrilia Floratou, Karthik Sankaranarayanan, Umar Farooq Minhas, Ashish R Mittal, Fatma zcan : ATHENA: An Ontology-Driven System for Natural Language Querying over Relational Data Stores PVLDB 9(12): 1209-1220 (2016) (Prior Document 1)” proposed ATHENA, a rule-based technology that converts natural language into SQL queries. ATHENA maps words in natural language to objects in ontology using an ontology predefined by experts and a dictionary that maps words in text and objects in the ontology. Using these mapped objects and natural language, OQL (Ontology Query) Language) The SQL query is translated by creating a query and converting it back to an SQL query.
이러한 방식은 온톨로지 및 사전을 전문가가 미리 만들어 주어야만 동작하는 문제가 있으며, 데이터베이스 스키마가 바뀌면 온톨로지 및 사전을 수정해야 하는 문제가 있다.This method has a problem in that the ontology and dictionary need to be created by an expert in advance to operate, and there is a problem in that the ontology and dictionary must be modified when the database schema is changed.
신경망 기술의 발전과 SQL 질의 번역 데이터가 발표되어 신경망 기반 SQL 질의 번역 기술이 활발히 연구되고 있다. 최근의 신경망 기반 연구들은 크게 슬롯 채우기(slot filling)와 문맥 자유 문법 기반 방식으로 나눌 수 있다.With the development of neural network technology and the publication of SQL query translation data, neural network-based SQL query translation technology is being actively studied. Recent neural network-based studies can be largely divided into slot filling and context-free grammar-based methods.
슬롯 채우기 방법은 특정 템플릿을 갖는 단순한 SQL 질의를 가정하여 템플릿의 각 슬롯을 신경망을 통해 채우는 방식으로, "Victor Zhong, Caiming Xiong, Richard Socher: Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning CoRR abs/170900103 (2017)(선행문헌2)"와 "Tao Yu, Zifan Li, Zilin Zhang, Rui Zhang, Dragomir R Radev : TypeSQL: Knowledge-Based Type-Aware Neural Text-to-SQL Generation NAACL-HLT (2) 2018 : 588-594(선행문헌3)"이 있다.The slot filling method assumes a simple SQL query with a specific template and fills each slot of the template through a neural network. "Victor Zhong, Caiming Xiong, Richard Socher: Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning CoRR abs/ 170900103 (2017) (Prior Document 2)” and “Tao Yu, Zifan Li, Zilin Zhang, Rui Zhang, Dragomir R Radev: TypeSQL: Knowledge-Based Type-Aware Neural Text-to-SQL Generation NAACL-HLT (2) 2018 : 588-594 (Prior Document 3)”.
선행문헌2는 특정 템플릿을 갖는 단순한 SQL 질의와 자연어 및 데이터베이스의 세 쌍으로 이루어진 데이터셋인 WikiSQL을 발표하였다.
선행문헌 3은 WikiSQL에서의 SQL 질의 번역을 처음으로 슬롯 채우기 문제로 보아 TypeSQL이라는 신경망 기반 방법을 제시했다.Prior Document 3 presented a neural network-based method called TypeSQL, considering the SQL query translation in WikiSQL as a slot filling problem for the first time.
하지만, WikiSQL에서와 같이 슬롯 채우기 방식을 적용할 수 있는 SQL 질의는 매우 간단하여 현실적으로 사용되기에는 무리가 있다. 예를 들어, 슬롯 채우기 방식들은 다양한 키워드(ORDER BY, GROUP BY 등)를 가정하지 않고, 중첩 질의를 처리할 수 없다.However, as in WikiSQL, the SQL query to which the slot filling method can be applied is very simple, so it is difficult to use it realistically. For example, slot filling methods do not assume various keywords (ORDER BY, GROUP BY, etc.) and cannot process nested queries.
또한, 문맥 자유 문법 기반 방식의 예로는 "Wonseok Hwang, Jinyeung Yim, Seunghyun Park, Minjoon Seo: A Comprehensive Exploration on WikiSQL with Table-Aware Word Contextualization CoRR abs/190201069 (2019)(선행문헌4)"와 "Pengcheng He, Yi Mao, Kaushik Chakrabarti, Weizhu Chen : X-SQL: reinforce schema representation with context CoRR abs/190808113 (2019)(선행문헌5)"가 있다.In addition, examples of the context-free grammar-based method include "Wonseok Hwang, Jinyeung Yim, Seunghyun Park, Minjoon Seo: A Comprehensive Exploration on WikiSQL with Table-Aware Word Contextualization CoRR abs/190201069 (2019) (Prior Document 4)" and "Pengcheng" He, Yi Mao, Kaushik Chakrabarti, Weizhu Chen: X-SQL: reinforce schema representation with context CoRR abs/190808113 (2019) (Prior Literature 5)”.
위의 선행문헌4 및 선행문헌5는 많은 자연어로 사전 학습된 신경망에서의 전이 학습을 이용하는 SQLova 및 X-SQL을 제안하여 WikiSQL에서 약 90%의 높은 정확도를 얻었다.
문맥 자유 문법 기반 방식은 SQL 질의와 같은 프로그래밍 언어의 문맥 자유 문법을 기반으로 신경망을 통해 최좌단 유도(leftmost derivation)하는 방식으로 최종 문장을 생성해 내는 방식으로, 미리 정의한 문맥 자유 문법이 생성할 수 있는 모든 SQL 질의를 생성할 수 있어 슬롯 채우기 방식의 한계를 극복할 수 있다.The context-free grammar-based method generates the final sentence by leftmost derivation through a neural network based on the context-free grammar of a programming language such as SQL query. All SQL queries can be created, overcoming the limitations of the slot filling method.
"Tao Yu, Michihiro Yasunaga, Kai Yang, Rui Zhang, Dongxu Wang, Zifan Li, Dragomir R Radev : SyntaxSQLNet: Syntax Tree Networks for Complex and Cross-Domain Text-to-SQL Task EMNLP 2018 : 1653-1663(선행문헌6)"은 문맥 자유 문법 기반 방식으로 SQL 질의 번역을 하는 첫 연구이다. "Tao Yu, Michihiro Yasunaga, Kai Yang, Rui Zhang, Dongxu Wang, Zifan Li, Dragomir R Radev: SyntaxSQLNet: Syntax Tree Networks for Complex and Cross-Domain Text-to-SQL Task EMNLP 2018: 1653-1663 (Prior Document 6) )" is the first study to translate SQL queries in a context-free grammar-based method.
또한, "Jiaqi Guo, Zecheng Zhan, Yan Gao, Yan Xiao, Jian-Guang Lou, Ting Liu, Dongmei Zhang : Towards Complex Text-to-SQL in Cross-Domain Database with Intermediate Representation ACL (1) 2019 : 4524-4535(선행문헌7)"는 규칙 기반으로 데이터베이스 스키마와 자연어의 단어들을 연결하는 방법을 제안하였고, 또한 중간 언어인 SemQL을 제안하여 자연어에서 SemQL 질의로 번역하는 신경망 방식과 SemQL 질의를 SQL 질의로 번역하는 규칙 기반 방법을 통해 SQL 질의 번역을 수행한다.Also, "Jiaqi Guo, Zecheng Zhan, Yan Gao, Yan Xiao, Jian-Guang Lou, Ting Liu, Dongmei Zhang: Towards Complex Text-to-SQL in Cross-Domain Database with Intermediate Representation ACL (1) 2019: 4524-4535 (Prior Literature 7)” proposed a rule-based method for linking database schema and words in natural language, and also proposed a neural network method to translate SemQL queries from natural language by proposing an intermediate language, SemQL, and to translate SemQL queries into SQL queries. SQL query translation is performed through a rule-based method.
도 1은 일반적인 관계형 데이터베이스에 대한 자연어 처리 흐름도이다.1 is a flow chart of natural language processing for a general relational database.
도 1을 참조하면 (a)와 같이 자연어 질의의 입력에 따라 (b)와 같이 SQL 질의로 변환하고, 그 변환된 내용을 (c)와 같이 관계형 데이터베이스에서 검색하여 그 결과를 자연어로 출력하게 된다.Referring to FIG. 1, according to the input of a natural language query as shown in (a), it is converted into an SQL query as shown in (b), and the converted content is searched in a relational database as shown in (c) and the result is output in natural language. .
데이터 베이스 시스템의 자연어 인터페이스를 만드는 문제는 비전문가들이 데이터베이스에 쉽게 질의를 할 수 있도록 한다는 점에서 중요한 문제다. 데이터베이스 시스템 중 가장 널리 쓰이는 관계형 데이터베이스에 대한 질의는 SQL 프로그래밍 언어로 이루어진다. The problem of creating a natural language interface for a database system is an important issue in that it allows non-experts to easily query the database. The most widely used relational database among database systems is made in the SQL programming language.
따라서 자연어 질의를 SQL 질의로 번역함으로써 관계형 데이터베이스에 대한 자연어 인터페이스를 만들 수 있다.Thus, by translating a natural language query into a SQL query, a natural language interface to a relational database can be created.
자연어 질의를 SQL 질의로 번역하는 문제의 큰 어려움 중 하나는 자연어 질의가 데이터베이스의 어떤 컬럼 및 테이블을 참조하는지 알아내는 것이다. 이것이 어려운 이유는 데이터베이스의 컬럼 및 테이블 이름이 자연어 질의에 그대로 등장하는 것이 아니라 의역되어 나타나거나 직접적으로 나타나지 않을 수 있기 때문이다. 또한, 데이터베이스 스키마에 비슷한 이름을 가진 컬럼 및 테이블들이 여러 개가 존재할 수 있어 정확하게 SQL 질의에 쓰일 컬럼 및 테이블들을 찾아내는 것은 어려운 문제이다.One of the great difficulties of translating a natural language query into a SQL query is figuring out which columns and tables in the database the natural language query refers to. The reason this is difficult is that the column and table names of the database do not appear as they are in natural language queries, but may appear paraphrased or may not appear directly. In addition, it is difficult to accurately find columns and tables to be used in SQL queries because there may be multiple columns and tables with similar names in the database schema.
기존의 규칙 기반 SQL 질의 번역 방법들은 전문가가 사전에 매핑 사전을 만들어 주는 방식을 사용했지만, 이는 사전에 고려되지 않은 단어가 등장하거나, 데이터베이스 스키마가 달라지는 상황 등에서 문제가 생긴다. 또한, 모든 데이터베이스마다 전문가의 큰 노력이 드는 근본적인 문제가 있다.Existing rule-based SQL query translation methods used a method in which an expert creates a mapping dictionary in advance, but this causes problems in situations where words not considered in the dictionary appear or the database schema changes. In addition, every database has a fundamental problem that requires great effort by experts.
특히 실제 데이터베이스는 자연어에는 일반적으로 등장하지 않는 특정 도메인의 단어들이 많이 등장할 수 있기 때문에 모든 상황에 대하여 매칭 사전을 만들거나 기계학습을 통해 미리 학습 시키는 방법은 매우 어려운 일이다.In particular, it is very difficult to make a matching dictionary for all situations or to learn in advance through machine learning because a lot of words from a specific domain that do not normally appear in natural languages can appear in the actual database.
따라서, 자연어 단어와 데이터베이스 컬럼 및 테이블을 매칭시키는 새로운 방법이 요구되고 있다.Therefore, a new method of matching natural language words with database columns and tables is required.
본 발명이 해결하고자 하는 기술적 과제는, 자연어 문장에 등장하는 단어 여러개가 매칭되거나, 단어의 일부만이 매칭되거나, 단어가 여러 컬럼 및 테이블에 매칭되는 등 단어와 컬럼 및 테이블의 의미적 연결이 어려운 케이스에 대하여 매칭을 수행할 수 있는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법을 제공함에 있다.The technical problem to be solved by the present invention is a case in which it is difficult to semantically connect a word with a column and a table, such as when several words appearing in a natural language sentence are matched, only a part of a word is matched, or a word is matched to several columns and tables An object of the present invention is to provide a method of linking natural language words that can be matched with columns and tables of a database.
상기와 같은 과제를 해결하기 위한 본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법은, 본 발명은 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법에 관한 것으로, 마이크로컴퓨터를 포함하는 컴퓨팅 장치를 이용하여 자연어 문장의 단어와 데이터베이스의 컬럼 및 테이블을 매칭시키는 방법으로서, a) 자연어 단어들이 데이터베이스의 컬럼 또는 테이블 이름과 일치하는지 확인하고, 일치하는 컬럼 또는 테이블을 해당 단어에 매칭시키는 단계와, b) 상기 a) 단계에서 매칭되지 않은 단어들이 있는 경우, 컬럼 또는 테이블 이름이 단어와 부분적으로 일치하는지 확인하고, 부분적으로 일치하는 경우 매칭시키는 단계와, c) 상기 b) 단계에서 부분적으로도 일치하지 않는 자연어 단어가 있는 경우, 데이터베이스의 값들과 일치여부를 확인하여 일치하면 매칭시키고, 일치하지 않으면 매칭에서 제외하는 단계를 포함한다.The present invention relates to a method of linking natural language words with columns and tables of a database for solving the above problems, and the present invention relates to a method of linking natural language words with columns and tables of a database, Computing device including a microcomputer A method of matching a word in a natural language sentence with a column and table of a database using b) if there are words that do not match in step a), checking whether the column or table name partially matches the word, and matching if it partially matches, c) also partially matching in step b) If there is a natural language word that does not match, check whether it matches with the values in the database, match if they match, and exclude from matching if they do not match.
본 발명의 실시예에서, 상기 a) 단계에서 자연어 단어들은, 자연어 문장에서 표제어 추출을 통해 추출된 것일 수 있다.In an embodiment of the present invention, the natural language words in step a) may be extracted through headword extraction from a natural language sentence.
본 발명의 실시예에서, 상기 a) 단계에서 컬럼 또는 테이블과 매칭된 단어는, 상기 b) 단계의 부분적 동일성 판단을 수행하지 않을 수 있다.In an embodiment of the present invention, the word matching the column or table in step a) may not perform the partial identity determination in step b).
본 발명의 실시예에서, 상기 a) 단계와 상기 b) 단계에서 컬럼 또는 테이블과 매칭된 단어는, 상기 c) 단계의 데이터베이스 내부 값과의 비교를 수행하지 않을 수 있다.In an embodiment of the present invention, the word matched with the column or table in steps a) and b) may not be compared with the internal database value in step c).
본 발명의 실시예에서, 상기 c) 단계는, c-1) 단어와 데이터베이스의 내부 값의 일치 여부를 판단하는 과정과, c-2) 상기 c-1) 과정의 판단결과 일치하는 경우, 해당 단어가 사전 정의된 데이터베이스 내부 값으로 적당하지 않은 단어이면 매칭하지 않는 과정을 포함할 수 있다.In an embodiment of the present invention, the step c) includes the steps of c-1) determining whether the word matches the internal value of the database, and c-2) if the result of the c-1) match, the corresponding If the word is a word that is not suitable as a predefined database internal value, a process of not matching may be included.
본 발명의 실시예에서, 상기 c-2) 과정은, 데이터베이스 내부의 값과 일치하는 단어의 품사 분석을 통해 사전 정의된 데이터베이스 내부 값으로 적당하지 않은 단어인지 판단할 수 있다.In an embodiment of the present invention, in step c-2), it may be determined whether a word is not suitable as a predefined database internal value through part-of-speech analysis of a word that matches an internal value in the database.
본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법은, 컬럼 및 테이블의 이름과 데이터베이스의 레코드들을 종합적으로 판단하여, 여러 단어가 매칭되거나 단어의 일부만이 매칭되거나, 단어가 여러 컬럼 및 테이블에 매칭될 때에도 효과적으로 연결 가능한 효과가 있다.The method of linking a natural language word to a database column and table of the present invention comprehensively determines the name of the column and table and records in the database, so that several words are matched or only part of a word is matched, or a word is entered in several columns and tables Even when matched, there is an effect that can be effectively connected.
도 1은 일반적인 관계형 데이터베이스에 대한 자연어 처리 흐름도이다.
도 2는 본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법의 순서도이다.
도 3은 매칭 과정의 예시도이다.1 is a flow chart of natural language processing for a general relational database.
2 is a flowchart of a method of associating natural language words with columns and tables of a database according to the present invention.
3 is an exemplary diagram of a matching process.
이하, 본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법에 대하여 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, a method of linking natural language words of the present invention with columns and tables of a database will be described in detail with reference to the accompanying drawings.
본 발명의 실시 예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 제공되는 것이며, 아래에 설명되는 실시 예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시 예들로 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 발명을 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.Embodiments of the present invention are provided to more completely explain the present invention to those of ordinary skill in the art, and the embodiments described below may be modified in various other forms, The scope is not limited to the following examples. Rather, these embodiments are provided so as to more fully and complete the present invention, and to fully convey the spirit of the present invention to those skilled in the art.
본 명세서에서 사용된 용어는 특정 실시 예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는"포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다. The terms used herein are used to describe specific embodiments, not to limit the present invention. As used herein, the singular form may include the plural form unless the context clearly dictates otherwise. Also, as used herein, “comprise” and/or “comprising” refers to the presence of the recited shapes, numbers, steps, actions, members, elements, and/or groups thereof. and does not exclude the presence or addition of one or more other shapes, numbers, movements, members, elements and/or groups. As used herein, the term “and/or” includes any one and any combination of one or more of those listed items.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되지 않음은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열을 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.Although the terms first, second, etc. are used herein to describe various members, regions and/or regions, it is to be understood that these elements, parts, regions, layers and/or regions are not limited by these terms. . These terms do not imply a specific order, upper and lower, or superiority, and are used only to distinguish one member, region or region from another. Accordingly, a first member, region, or region described below may refer to a second member, region, or region without departing from the teachings of the present invention.
이하, 본 발명의 실시 예들은 본 발명의 실시 예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시 예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.Hereinafter, embodiments of the present invention will be described with reference to drawings schematically illustrating embodiments of the present invention. In the drawings, variations of the illustrated shape can be expected, for example depending on manufacturing technology and/or tolerances. Therefore, the embodiment of the present invention should not be construed as limited to the specific shape of the region shown in the present specification, but should include, for example, a change in shape caused by manufacturing.
또한, 본 발명은 자연어를 SQL 질의로 번역(변환)하는 방법에서 컬럼 및 테이블과 자연어 단어를 연결(매칭)하는 방법에 관한 것으로, 이러한 방법의 동작 주체는 통상의 연산이 가능한 제어기와 저장장치 및 데이터의 임시 저장 가능한 메모리를 포함하는 컴퓨팅 장치이며, 예를 들어 퍼스널 컴퓨터 또는 서버를 사용할 수 있다.In addition, the present invention relates to a method of linking (matching) columns and tables with natural language words in a method of translating (converting) natural language into SQL queries, and the operating subject of this method is a controller and a storage device capable of normal operation, and A computing device including a memory capable of temporarily storing data, for example, a personal computer or a server may be used.
도 2는 본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법의 순서도이고, 도 3은 매칭 과정의 예시도이다.2 is a flowchart of a method of associating natural language words with columns and tables of a database according to the present invention, and FIG. 3 is an exemplary diagram of a matching process.
도 2와 도 3을 각각 참조하면 본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법은, 자연어 문장에서 표제어를 추출하여 매칭할 단어를 결정하는 단계(S21)와, 상기 단어와 컬럼 또는 테이블 이름과 비교하여 동일한지 판단하는 단계(S22)와, 상기 S22단계의 판단결과 동일하면 해당 단어와 컬럼 또는 테이블을 매칭시키는 단계(S26)와, 상기 S22단계의 판단결과 동일하지 않으면 해당 단어가 컬럼 또는 테이블의 이름과 부분적으로 동일한지 판단하여, 부분적으로 동일하면 상기 S26단계를 수행하는 단계(S23)와, 상기 S23단계의 판단결과 동일하지 않으면 해당 단어가 데이터베이스 내의 값과 일치하는지 확인하는 단계(S24)와, 상기 S24단계의 판단결과 일치하지 않으면 단어와 컬럼 및 테이블을 연결하지 않는 단계(S27)와, 상기 S24단계의 판단결과 일치하면, 해당 단어의 품사를 확인하여 데이터베이스에서 사용되는 단어이면 S26단계를 수행하고, 사용되는 단어가 아니면 S27단계를 수행하는 단계(S25)를 포함한다.2 and 3, the method of linking natural language words with columns and tables of a database according to the present invention includes extracting headwords from natural language sentences and determining words to match (S21), the words and columns or tables Comparing the name with the name (S22), if the result of the determination in step S22 is the same, matching the word with the column or table (S26), and if the result of the determination in step S22 is not the same, the word is the column Alternatively, determining whether the name of the table is partially identical to the name of the table, and if partially identical, performing step S26 (S23), and if not identical as a result of the determination in step S23, checking whether the corresponding word matches a value in the database ( S24) and the step S27 of not linking the word, column and table if the determination result of step S24 does not match, and if the determination result of step S24 matches, check the part-of-speech of the word and if it is a word used in the database Step S26 is performed, and if the word is not used, step S27 is performed (S25).
이하, 상기와 같이 구성되는 본 발명 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법의 구성과 작용에 대하여 보다 상세히 설명한다.Hereinafter, the structure and operation of the method of linking the natural language words of the present invention configured as described above to the columns and tables of the database will be described in more detail.
먼저, S21 단계와 같이 자연어 문장에서 표제어를 추출하여 매칭할 단어를 결정한다.First, as in step S21, a word to be matched is determined by extracting a headword from a natural language sentence.
이때, 자연어 문장은 텍스트 입력, 음성의 입력, 필기체 입력 등 다양한 방식의 입력일 수 있으며, 이미지 입력에서 텍스트를 추출한 결과일 수 있다.In this case, the natural language sentence may be input in various ways, such as text input, voice input, or cursive input, and may be a result of extracting text from image input.
도 3에는 "Show the names of republican people, and how many times they were at negative side?"라는 자연어 문장이 입력된 것을 예로 들었으며, 이 중 names, republican, people, negative를 표제어로 추출하여 매칭할 단어를 선택한 예를 나타낸다.In Figure 3, the natural language sentence "Show the names of republican people, and how many times they were at negative side?" is taken as an example, of which names, republican, people, and negative are extracted as headwords, and words to be matched is shown as an example of selection.
그 다음, S22단계에서는 상기 S21단계에서 선택된 단어를 데이터베이스의 컬럼 또는 테이블 이름과 비교하여 동일한 컬럼 또는 테이블이 있는지 판단한다.Next, in step S22, the word selected in step S21 is compared with the column or table name of the database to determine whether the same column or table exists.
상기 S22단계의 판단결과 특정한 단어가 컬럼 또는 테이블의 이름과 동일하면 S26단계와 같이 해당 단어와 동일한 이름의 컬럼 또는 테이블을 서로 연결한다.As a result of the determination in step S22, if a specific word is the same as a column or table name, as in step S26, a column or table with the same name as the corresponding word is connected to each other.
도 3에는 자연어 문장에서 선택된 단어와 데이터베이스의 연결관계를 나타낸다.3 shows a connection relationship between a word selected in a natural language sentence and a database.
좀 더 구체적으로 자연어 문장에서 선택된 단어인 'people'은 데이터베이스의 테이블 이름인 'people'과 일치하며, 따라서 해당 단어와 테이블을 서로 연결한다.More specifically, the word 'people' selected in the natural language sentence matches the table name 'people' in the database, thus linking the word and the table to each other.
이때의 비교는 선택된 모든 단어와 데이터베이스의 모든 컬럼 및 테이블을 순차적으로 비교하게 되며, 단어 people에 대해서 테이블 이름이 people인 테이블이 연결된다.In this comparison, all selected words and all columns and tables of the database are sequentially compared. For the word people, the table with the table name people is connected.
또한, 자연어 문장에서 선택된 단어 'negative'는 테이블 이름이 debate_people인 테이블의 컬럼 중 하나인 'negative'와 일치되며, 따라서 단어 'negative'와 컬럼 'negative'를 서로 연결한다.Also, the word 'negative' selected in the natural language sentence matches 'negative', which is one of the columns of the table whose table name is debate_people, and thus the word 'negative' and the column 'negative' are connected to each other.
그 다음, 상기 S22단계의 판단결과 동일하지 않으면 해당 단어가 컬럼 또는 테이블의 이름과 부분적으로 동일한지 판단한다.Next, if the result of the determination in step S22 is not the same, it is determined whether the corresponding word is partially identical to the name of a column or table.
이때, 이미 컬럼 또는 테이블과 연결된 단어인 'people'과 'negative'에 대해서는 다시 부분적 동일 여부를 판단하지 않는다.At this time, it is not determined whether the words 'people' and 'negative', which are already connected to a column or table, are partially identical again.
상기 S22단계의 판단결과 부분적으로 동일한 컬럼 또는 테이블이 있으면 S26단계를 수행하여, 특정 단어와 부분적으로 동일한 컬럼 또는 테이블을 매칭시킨다.If there is a partially identical column or table as a result of the determination in step S22, step S26 is performed to match the partially identical column or table with a specific word.
도 3에서 단어 'names'는 이름이 people인 테이블의 컬럼 'name'과 부분적으로 동일하며, 따라서 S26단계를 수행하여 단어 'names'는 컬럼 'name'에 매칭한다.In FIG. 3, the word 'names' is partially identical to the column 'name' of the table whose name is people, and thus the word 'names' matches the column 'name' by performing step S26.
그 다음, 상기 S23단계의 판단결과 동일하지 않으면 S24단계와 같이 해당 단어가 데이터베이스 내의 값과 일치하는지 확인한다.Then, if the determination result in step S23 is not the same, it is checked whether the corresponding word matches the value in the database as in step S24.
이때, 앞서 동일성과 부분적 동일성의 판단에 의해 매칭이 이루어진 단어에 대해서는 데이터베이스 내의 값과 일치하는지 확인하지 않는다.In this case, it is not checked whether the word matches the value in the database for the previously matched word by the determination of identity and partial identity.
즉, 'people', 'negative' 및 'names'에 대해서는 데이터베이스 내의 값과 일치 여부를 확인하지 않는다.That is, 'people', 'negative' and 'names' are not checked against values in the database.
상기 S24단계의 판단결과 일치하지 않으면 단어와 컬럼 및 테이블을 연결하지 않고 종료한다.If the determination result in step S24 does not match, the word, column, and table are not connected and the process is terminated.
반대로 상기 S24단계의 판단결과 특정한 단어와 데이터베이스의 내부 값이 일치하면, S25단계와 같이 해당 단어의 품사를 확인하여 데이터베이스에서 사용되는 단어이면 S26단계를 수행하고, 사용되는 단어가 아니면 S27단계를 수행한다.Conversely, if a specific word matches the internal value of the database as a result of the determination in step S24, the part-of-speech of the corresponding word is checked as in step S25, and if it is a word used in the database, step S26 is performed. do.
상기 S25단계는 데이터베이스 내의 값으로 적당하지 않은 단어를 사전에 정의하여, 값이 일치하더라도 연결하지 않도록 하는 것이다.In step S25, words that are not suitable as values in the database are defined in advance so that they are not connected even if the values match.
예를 들어 'determiner', 'preposition' 등 데이터베이스에서 사용하는 값들은 자연어 문장에서 추출한 단어와 일치되더라도 의미가 없는 것으로, 이를 단어와 데이터베이스의 연결관계로 판단하지 않도록 함을 의미한다.For example, values used in the database such as 'determiner' and 'preposition' have no meaning even if they match words extracted from natural language sentences.
도 3에서 자연어 문장에서 추출된 단어 'republican'은 이름이 'people'인 테이블의 'party' 컬럼의 데이터 값이며, 따라서 단어 'republican'과 데이터베이스 값 'republican'을 상호 연결한다.The word 'republican' extracted from the natural language sentence in FIG. 3 is a data value of the 'party' column of the table named 'people', and thus the word 'republican' and the database value 'republican' are interconnected.
이와 같은 과정을 통해 본 발명은 자연어 문장에서 추출한 단어가 컬럼 및 테이블의 이름과 데이터베이스의 값들과의 연관성을 종합적으로 판단할 수 있으며, 여러 단어가 매칭되는 것을 피하고, 단어의 일부만이 매칭되는 경우에도 단어와 테이블 또는 컬럼을 상호 연결할 수 있는 특징이 있다.Through such a process, the present invention can comprehensively determine the correlation between the names of columns and tables and the values of the database for the words extracted from the natural language sentences, avoid matching multiple words, and even when only a portion of the words are matched There is a feature that can interconnect words and tables or columns.
또한, 단어가 여러 컬럼 또는 테이블에 매칭되는 것을 방지하여 자연어 단어들이 의미를 정확하게 찾아낼 수 있다.In addition, by preventing the word from being matched in multiple columns or tables, natural language words can accurately find meaning.
본 발명은 상기 실시예에 한정되지 않고 본 발명의 기술적 요지를 벗어나지 아니하는 범위 내에서 다양하게 수정, 변형되어 실시될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어서 자명한 것이다.It is obvious to those of ordinary skill in the art that the present invention is not limited to the above embodiments and can be variously modified and modified within the scope without departing from the technical gist of the present invention. will be.
Claims (6)
a) 자연어 단어들이 데이터베이스의 컬럼 또는 테이블 이름과 일치하는지 확인하고, 일치하는 컬럼 또는 테이블을 해당 단어에 매칭시키는 단계;
b) 상기 a) 단계에서 매칭되지 않은 단어들이 있는 경우, 컬럼 또는 테이블 이름이 단어와 부분적으로 일치하는지 확인하고, 부분적으로 일치하는 경우 매칭시키는 단계; 및
c) 상기 b) 단계에서 부분적으로도 일치하지 않는 자연어 단어가 있는 경우, 데이터베이스의 값들과 일치여부를 확인하여 일치하면 매칭시키고, 일치하지 않으면 매칭에서 제외하는 단계를 포함하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법.A method of matching words in a natural language sentence with columns and tables of a database using a computing device including a microcomputer, the method comprising:
a) checking whether natural language words match a column or table name of a database, and matching the matching column or table to the corresponding word;
b) if there are words that do not match in step a), checking whether the column or table name partially matches the word, and matching the partially matched words; and
c) If there is a natural language word that does not even partially match in step b), check whether it matches the values in the database, match it if it matches, and exclude it from matching if it does not match the database column and how to associate it with a table.
상기 a) 단계에서 자연어 단어들은,
자연어 문장에서 표제어 추출을 통해 추출된 것을 특징으로 하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법.According to claim 1,
In step a), the natural language words are
A method of linking natural language words extracted from natural language sentences through headword extraction with columns and tables of a database.
상기 a) 단계에서 컬럼 또는 테이블과 매칭된 단어는,
상기 b) 단계의 부분적 동일성 판단을 수행하지 않는 것을 특징으로 하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법.According to claim 1,
The word matched with the column or table in step a) is,
A method of linking natural language words with columns and tables of a database, characterized in that the partial identity determination of step b) is not performed.
상기 a) 단계와 상기 b) 단계에서 컬럼 또는 테이블과 매칭된 단어는,
상기 c) 단계의 데이터베이스 내부 값과의 비교를 수행하지 않는 것을 특징으로 하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법.According to claim 1,
The word matched with the column or table in step a) and step b) is,
A method of linking natural language words with columns and tables of a database, characterized in that the comparison with the database internal values of step c) is not performed.
상기 c) 단계는,
c-1) 단어와 데이터베이스의 내부 값의 일치 여부를 판단하는 과정; 및
c-2) 상기 c-1) 과정의 판단결과 일치하는 경우, 해당 단어가 사전 정의된 데이터베이스 내부 값으로 적당하지 않은 단어이면 매칭하지 않는 과정을 포함하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법.According to claim 1,
Step c) is,
c-1) a process of determining whether a word matches an internal value of the database; and
c-2) When the result of the c-1) process matches, if the corresponding word is a word that is not suitable as a predefined database internal value, a natural language word including a non-matching process is linked with the columns and tables of the database. Way.
상기 c-2) 과정은,
데이터베이스 내부의 값과 일치하는 단어의 품사 분석을 통해 사전 정의된 데이터베이스 내부 값으로 적당하지 않은 단어인지 판단하는 것을 특징으로 하는 자연어 단어를 데이터베이스의 컬럼 및 테이블과 연결하는 방법.6. The method of claim 5,
The c-2) process is
A method of linking natural language words with columns and tables in a database, characterized in that it is determined whether a word is an inappropriate word with a predefined database internal value through part-of-speech analysis of a word that matches an internal value in the database.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190174967A KR102345568B1 (en) | 2019-12-26 | 2019-12-26 | Semantic linking of natural language words with columns and tables in databases |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190174967A KR102345568B1 (en) | 2019-12-26 | 2019-12-26 | Semantic linking of natural language words with columns and tables in databases |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210082727A true KR20210082727A (en) | 2021-07-06 |
KR102345568B1 KR102345568B1 (en) | 2021-12-31 |
Family
ID=76860850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190174967A Active KR102345568B1 (en) | 2019-12-26 | 2019-12-26 | Semantic linking of natural language words with columns and tables in databases |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102345568B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230081594A (en) | 2021-11-30 | 2023-06-07 | 포항공과대학교 산학협력단 | Apparatus and method for processing natural language query about relational database using transformer neural network |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010107111A (en) * | 2000-05-25 | 2001-12-07 | 서정연 | Natural Language Question-Answering System for Integrated Access to Database, FAQ, and Web Site |
US20030069880A1 (en) * | 2001-09-24 | 2003-04-10 | Ask Jeeves, Inc. | Natural language query processing |
US20130151572A1 (en) * | 2008-06-19 | 2013-06-13 | BioFortis, Inc. | Database query builder |
US20150324422A1 (en) * | 2014-05-08 | 2015-11-12 | Marvin Elder | Natural Language Query |
KR101582929B1 (en) * | 2012-11-12 | 2016-01-07 | 페이스북, 인크. | Grammar model for structured search queries |
KR20160060821A (en) * | 2014-11-20 | 2016-05-31 | 한국전자통신연구원 | Question answering system and method for structured knowledge-base using deep natrural language question analysis |
KR101678787B1 (en) * | 2015-07-15 | 2016-12-06 | 포항공과대학교 산학협력단 | Method for automatic question-answering and apparatus therefor |
WO2018213530A2 (en) * | 2017-05-18 | 2018-11-22 | Salesforce.Com, Inc | Neural network based translation of natural language queries to database queries |
JP2019109782A (en) * | 2017-12-19 | 2019-07-04 | 富士通株式会社 | Query generating program, query generating method and query generating device |
KR20190080234A (en) * | 2017-12-28 | 2019-07-08 | 포항공과대학교 산학협력단 | English text formatting method based on convolution network |
US10430423B1 (en) * | 2015-07-31 | 2019-10-01 | Priceline.Com Llc | Attribute translation and matching from a plurality of data records to create consolidated data records |
-
2019
- 2019-12-26 KR KR1020190174967A patent/KR102345568B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010107111A (en) * | 2000-05-25 | 2001-12-07 | 서정연 | Natural Language Question-Answering System for Integrated Access to Database, FAQ, and Web Site |
US20030069880A1 (en) * | 2001-09-24 | 2003-04-10 | Ask Jeeves, Inc. | Natural language query processing |
US20130151572A1 (en) * | 2008-06-19 | 2013-06-13 | BioFortis, Inc. | Database query builder |
KR101582929B1 (en) * | 2012-11-12 | 2016-01-07 | 페이스북, 인크. | Grammar model for structured search queries |
US20150324422A1 (en) * | 2014-05-08 | 2015-11-12 | Marvin Elder | Natural Language Query |
KR20160060821A (en) * | 2014-11-20 | 2016-05-31 | 한국전자통신연구원 | Question answering system and method for structured knowledge-base using deep natrural language question analysis |
KR101678787B1 (en) * | 2015-07-15 | 2016-12-06 | 포항공과대학교 산학협력단 | Method for automatic question-answering and apparatus therefor |
US10430423B1 (en) * | 2015-07-31 | 2019-10-01 | Priceline.Com Llc | Attribute translation and matching from a plurality of data records to create consolidated data records |
WO2018213530A2 (en) * | 2017-05-18 | 2018-11-22 | Salesforce.Com, Inc | Neural network based translation of natural language queries to database queries |
JP2020520516A (en) * | 2017-05-18 | 2020-07-09 | セールスフォース ドット コム インコーポレイティッド | Neural network based translation of natural language queries into database queries |
JP2019109782A (en) * | 2017-12-19 | 2019-07-04 | 富士通株式会社 | Query generating program, query generating method and query generating device |
KR20190080234A (en) * | 2017-12-28 | 2019-07-08 | 포항공과대학교 산학협력단 | English text formatting method based on convolution network |
Non-Patent Citations (2)
Title |
---|
K. Javubar Sathick and A. Jaya, Natural language to SQL Generation for Semantic Knowledge Extraction in Social Web Sources, Indian Journal of Science and Technology, Vol 8(1),01-10, January 2015. 1부. * |
정윤기 등, "자연어를 활용한 SQL문 생성을 위한 합성곱 신경망 기반 칼럼 예측 모델", 정보과학회논문지 46(2), pp 202-207 (2019.02.) 1부.* * |
Also Published As
Publication number | Publication date |
---|---|
KR102345568B1 (en) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8910120B2 (en) | Software debugging recommendations | |
US9448995B2 (en) | Method and device for performing natural language searches | |
US20120254143A1 (en) | Natural language querying with cascaded conditional random fields | |
US20220245353A1 (en) | System and method for entity labeling in a natural language understanding (nlu) framework | |
CN110727839A (en) | Semantic parsing of natural language queries | |
CN105701253A (en) | Chinese natural language interrogative sentence semantization knowledge base automatic question-answering method | |
US12182514B2 (en) | Automatic synonyms using word embedding and word similarity models | |
CN104657440A (en) | Structured query statement generating system and method | |
CN110276080B (en) | Semantic processing method and system | |
US12197869B2 (en) | Concept system for a natural language understanding (NLU) framework | |
US12141179B2 (en) | System and method for generating ontologies and retrieving information using the same | |
KR20210082726A (en) | Column and table prediction method for text to SQL query translation based on a neural network | |
US20220245361A1 (en) | System and method for managing and optimizing lookup source templates in a natural language understanding (nlu) framework | |
US12175193B2 (en) | System and method for lookup source segmentation scoring in a natural language understanding (NLU) framework | |
CN111159381B (en) | Data searching method and device | |
CN110909126A (en) | Information query method and device | |
CN112507089A (en) | Intelligent question-answering engine based on knowledge graph and implementation method thereof | |
CN114625748A (en) | SQL query statement generation method and device, electronic equipment and readable storage medium | |
CN117251455A (en) | Intelligent report generation method and system based on large model | |
JPWO2014002774A1 (en) | Synonym extraction system, method and recording medium | |
US12299391B2 (en) | System and method for repository-aware natural language understanding (NLU) using a lookup source framework | |
US20220245352A1 (en) | Ensemble scoring system for a natural language understanding (nlu) framework | |
US20220229986A1 (en) | System and method for compiling and using taxonomy lookup sources in a natural language understanding (nlu) framework | |
US12265796B2 (en) | Lookup source framework for a natural language understanding (NLU) framework | |
KR102345568B1 (en) | Semantic linking of natural language words with columns and tables in databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20191226 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20210721 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20211223 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20211227 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20211228 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |