WO2024085715A1 - Document creation device, method, computer program, computer-readable recording medium, server and system, which have function of automatically generating text by using natural language generation mode - Google Patents

Document creation device, method, computer program, computer-readable recording medium, server and system, which have function of automatically generating text by using natural language generation mode Download PDF

Info

Publication number
WO2024085715A1
WO2024085715A1 PCT/KR2023/016360 KR2023016360W WO2024085715A1 WO 2024085715 A1 WO2024085715 A1 WO 2024085715A1 KR 2023016360 W KR2023016360 W KR 2023016360W WO 2024085715 A1 WO2024085715 A1 WO 2024085715A1
Authority
WO
WIPO (PCT)
Prior art keywords
text
document
document creation
management unit
user
Prior art date
Application number
PCT/KR2023/016360
Other languages
French (fr)
Korean (ko)
Inventor
유장현
Original Assignee
주식회사 아이팩토리
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 주식회사 아이팩토리 filed Critical 주식회사 아이팩토리
Publication of WO2024085715A1 publication Critical patent/WO2024085715A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services

Definitions

  • the present invention relates to a document writing device, method, computer program, computer-readable recording medium, server, and system having the function of automatically generating text using a natural language generation model.
  • NLP Natural Language Process
  • NSG Natural Language Generation
  • a document writing device, method, computer program, computer-readable recording medium, server, and system having the function of automatically generating text using a natural language generation model according to an embodiment of the present invention are provided to solve the above problems. It is proposed for this purpose and aims to automatically generate high quality text content that requires special purposes or expertise.
  • a screen configuration unit that configures a document creation screen for creating a document and provides it to the user through an input/output interface; a keyword management unit that receives and manages keywords that can be included as text in the content of the document from the user through the input/output interface; a text input element management unit that manages text input elements provided on the document creation screen to receive document content from the user; a text extraction unit that extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit from the text input into the text input element through the text input element management unit; and a text generation unit that generates text containing the keyword by providing the texts extracted by the text extraction unit as input values to a text generation model learned based on natural language processing.
  • a document writing device may be provided. .
  • Document writing devices, methods, computer programs, computer-readable recording media, servers, and systems that have the function of automatically generating text using a natural language generation model according to an embodiment of the present invention are for special purposes or require expertise. It has the effect of automatically generating text content with high quality.
  • FIG. 1 is a diagram showing a document creation system according to an embodiment of the present invention.
  • FIG. 2 is a diagram schematically showing the configuration of the document creation device and the document creation server of FIG. 1.
  • FIG. 3 is a diagram showing an example of the configuration of a processor of the document creation device and the document creation server of FIG. 2.
  • FIG. 4 is a flowchart explaining the process of creating a document by the document writing device of FIG. 1.
  • FIG. 1 is a diagram showing a document creation system 1 according to an embodiment of the present invention.
  • a document writing system 1 may include a document writing device 10 and a document writing server 20.
  • the document writing device 10 and the document writing server 20 may be connected to transmit and receive data with each other through the network 30.
  • the document creation system 1 is provided so that the user can create a document, and the user can quickly and accurately create a document using the document creation system 1.
  • a patent document is used as an example to be described as a document created through the document creation system 1.
  • the idea of the present invention is not limited to this and can be applied regardless of the type of document.
  • the document creation system 1 can provide various functions for document creation to the user through the document creation device 10, and such functions can be provided to the user through any one of the document creation device 10 and the document creation server 20, Alternatively, it may be implemented by interaction between the document creation device 10 and the document creation server 20.
  • the document creation system 1 provides a service that allows a user to create a document in a first language or a second language in a format specified by the Patent Office, or a document written in the second language or first language is provided to the first language.
  • the document preparation system 1 provides a service for writing a patent specification in a first language, a service for writing a patent specification in a second language, and a translation specification for translating a patent specification written in the first language into a second language.
  • One or more services among a writing service and a service for writing a translation specification that translates a patent specification written in a second language into a first language may be provided to the user.
  • document preparation service may be understood as being provided by one or more of the document preparation system 1, the document preparation device 10, and the document preparation server 20.
  • document writing service can be understood as a function or set of functions provided to the user through the input/output interface (FIGS. 2, 19) of the document writing device 10 so that the user can create a document. .
  • case can be understood as a unit of object that a user creates to create one document.
  • Cosmetic information can be understood to include basic information related to a document and information entered during the creation process of the document. For example, the user creates a case for writing a patent specification through the document creation system (1) and enters basic information such as the case's management number, client, deadline, etc. and data that must be entered as the contents of the patent specification. You can enter it.
  • the document creation system 1 may provide the user with the created document as a file that can be read by the customer who requested the document creation using a predetermined program or submitted directly to the Korean Intellectual Property Office.
  • the document creation system (1) may be a file with the doc or docx extension that allows the user to read the created document with Microsoft's "Word" program, or a file in a specific format that can be submitted to the Korean Intellectual Property Office (e.g., the Korean Intellectual Property Office). It can provide the ability to download as an xml-based hlt or hlz extension file that can be read by electronic document writing software, PDF file, html file, etc.
  • the document creation system 1 provides an example of providing a service for creating patent specifications and patent translations.
  • the service for creating a patent specification is referred to as a first service
  • the service for creating a patent translation is referred to as a second service. That is, the document creation system 1 according to this embodiment can provide both the first service and the second service.
  • the spirit of the present invention is not limited to this, and the document creation system 1 may provide only the first service or only the second service.
  • the document preparation system 1 may provide a service for creating documents other than the patent specification or patent translation, for example, an opinion or a correction.
  • the document preparation system (1) may provide a service that translates documents issued by the Korean Intellectual Property Office (e.g., opinion submission notice, rejection decision, etc.), writes review opinions thereon, or translates review opinions. It may be possible.
  • the document writing system 1, the document writing device 10, and the document writing server 20 may selectively include only necessary components among the components described below depending on the service provided.
  • the document writing device 10 is a device provided so that a user can input the contents of a document, and may be a stationary terminal implemented as a computing device or a mobile terminal.
  • the document writing device 10 may be a computer, laptop, tablet PC, smartphone, mobile phone, wearable device, etc.
  • the spirit of the present invention is not limited to this example, and the document creation device 10 may be any terminal that has a function that allows a user to input information necessary for creating a document and displays it to the user.
  • content explained using the user as the subject may be understood as content explained using the document writing device 10 as the subject.
  • the document creation server 20 communicates with the document creation device 10 through the network 30 to enable users to create documents, and provides commands, codes, files, data, content, services, etc. to the document creation device 10. ) or may be a computing device provided to the document writing device 10.
  • the document creation server 20 may be implemented as either a virtual server or a physical server or a combination thereof, and the type of server does not limit the scope of the present invention.
  • the document creation server 20 may be implemented as a virtual server host (Virtual Private Server).
  • the document creation server 20 can store, process, and process data transmitted from the document creation device 10, and deliver the results to the document creation device 10. Additionally, the document creation server 20 may perform a predetermined operation based on data transmitted from the document creation device 10 and then transmit the result to the document creation device 10. Additionally, the document creation server 20 may provide data, content, services, etc. requested by the document creation device 10. Additionally, the document preparation server 20 may perform a role such as performing a predetermined function requested by the document preparation device 10 or transmitting a command to enable the document preparation device 10 to perform a predetermined function. Additionally, the document creation server 20 may communicate data with another server provided by a third party at the request of the document creation device 10 and then transmit the results to the document creation device 10.
  • the document creation device 10 and the document creation server 20 may communicate through the network 30 using wireless or wired communication methods. Additionally, the document writing device 10 may be provided to communicate with another document writing device 10 or another document writing server 20 through the network 30 . Additionally, the document creation server 20 may be provided to communicate with another document creation device 10 or another document creation server 20 through the network 30 .
  • the network 30 serves to connect the document creation device 10 and the document creation server 20 to enable data transmission and reception, and the communication method or type of network 30 is not limited.
  • the network 30 may provide a connection path so that the document creation device 10 can connect to the document creation server 20 and then transmit and receive data.
  • the document creation device 10 may include an application (hereinafter referred to as “document creation application”) provided to enable the user to create a document, or may run the document creation application. That is, the document writing device 10 can provide a document writing service to the user through a document writing application.
  • the document creation application may be provided as an operating system installed in the document creation device 10, a function of an operating system, an application runnable by the operating system, or a function of an application runnable by the operating system.
  • the document creation application may be installed from a computer-readable recording medium, or may be downloaded and installed from the document creation server 20.
  • the document creation server 20 stores files or program sources for installing the document creation application and may provide them to the document creation device 10 when there is a request from the document creation device 10.
  • the document creation application may not be installed independently but may be implemented as an operation mode of an application that can be installed on the document creation device 10.
  • a document writing application is a web browser or any application that can display a web page implemented based on HTML, and can output screens that provide a document writing service to the user.
  • the document creation application may be a web application.
  • the document creation server 20 provides a static web page and/or a dynamically generated web page in a format that can be output by a document creation application to the document creation device 10 according to a request from the document creation device 10. can be provided to.
  • a web page output by the document writing device 10 may include a script for providing a document writing service.
  • the document writing application may be a word processor, and the document writing function may be built into the word processor or provided in the form of an add-in program.
  • the document creation server 20 stores an add-in program that can be installed on the document creation device 10 and provides it to the document creation device 10 when there is a request from the document creation device 10. You can.
  • the functions of the document creation device 10 or functions related to document creation described below may be understood as being implemented by a document creation application even if there is no special explanation.
  • the document creation device 10 is a communication terminal capable of using a web service in a wired or wireless communication environment
  • the document creation server 20 allows the document creation device 10 to access a specific URL in a wired or wireless communication environment.
  • the document creation application is described as an example of a web application that can be executed through an application capable of web browsing, such as a web browser.
  • the user can access a specific URL assigned to the document creation server 20 using a web browser installed on the document creation device 10, and the document creation device 10 can access the web browser installed on the document creation server 20.
  • the web page for document creation provided by the server can be loaded and provided to the user as a document creation application.
  • a web browser can function as a document creation application. Therefore, in this embodiment, the document creation application can be understood as a web browser that loads a specific web page provided by the document creation server 20.
  • the document creation device 10, the document creation server 20, and the document creation application can be configured in various ways, and the scope of the present invention is limited to the above implementation. It is not limited by example.
  • the document writing application of the document writing device 10 may be implemented offline by using a web browser but storing data in the document writing device 10.
  • the document creation server 20 provides a web page that can function as a document creation application, and the web page may be a responsive web page or adaptive web page that can implement a screen of a corresponding type when accessed from various types of devices. May include web pages.
  • the document creation server 20 may provide a document creation application in the form of a mobile native application or hybrid application.
  • the document writing device 10 may be provided to run a document writing application provided as desktop application software. Depending on the embodiment, the document writing device 10 may be driven independently without communicating with the document writing server 20. Additionally, the document creation device 10 may simply perform the function of displaying a screen, and all data storage or processing may be performed in the document creation server 20. In this way, the document creation device 10, the document creation server 20, and the document creation application can be configured in various ways within the scope of maintaining the characteristic spirit of the present invention.
  • FIG. 2 is a diagram schematically showing the configuration of the document creation device and the document creation server of FIG. 1.
  • the document creation device 10 and the document creation server 20 include processors 100 and 200, memories 14 and 24, communication modules 18 and 28, and input/output interfaces 19 and 29. It can be included.
  • the processors 100 and 200 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processors 100 and 200 from memories 14 and 24 or communication modules 18 and 28. In addition, commands may be provided to the processors 100 and 200 through a bus, which is a communication channel between each component of the document creation device 10 and the document creation server 20.
  • the processors 100 and 200 can perform various functions such as input and output of data required for document creation, data processing, data management, and communication using the network 30. Specific components will be described later with reference to the drawings. Components of these processors 100 and 200 may be functional modules implemented with program codes stored in the memories 14 and 24.
  • the memories 14 and 24 are computer-readable recording media that include perishable recording devices such as RAM (Random Access Memory) and non-permanent mass storage devices such as ROM (Read Only Memory) and disk drives. It can be included. At least one program code that can function as an operating system or document creation application may be stored in the memories 14 and 24.
  • the processors 100 and 200 may load program codes stored in the memories 14 and 24 to implement a document creation service. These program codes can be loaded from a recording medium (e.g. DVD, memory card, etc.) readable by a separate computer, or transmitted from another device through the communication modules 18 and 28 and stored in the memories 14 and 24. there is.
  • the memories 14 and 24 may be provided with databases 140 and 240 that can store data necessary for providing document preparation services. That is, the memories 14 and 24 may be understood to include the databases 140 and 240.
  • the databases 140 and 240 may be not only databases independently constructed in terms of software, but also any type of storage capable of storing data.
  • the databases 140 and 240 may be installed as part of an application or may be data storage linked to a specific application.
  • the database 160 is a database provided by a web browser, for example, Web Storage, Web SQL Database, and Index DB provided with the HTML5 function.
  • Web DB One or more of the Indexed Databases
  • the database 140 of the document writing device 10 may further include additional data storage other than the web DB.
  • the databases 140 and 240 may be provided in the form of independent files, and data may be managed only through a specific application or specific protocol.
  • the database 140 of the document writing device 10 will be described as an example that includes a web DB.
  • a web DB can store as little as a few megabytes (Mbytes) or as many as tens of megabytes, so it can store enough data needed to create documents.
  • the document creation device 10 can effectively manage technical features that need to be kept confidential to be included in the document within the document creation device 10 without transmitting them to the document creation server 20 through the network 30. You can.
  • data that needs to be kept confidential can be understood as data that can affect the patent registration of a document, and, for example, can be understood as data that, if disclosed, can affect the judgment of novelty and inventive step of a patent specification. there is.
  • the document creation application can store data in the document creation device 10 without using the network 30, providing users with substantially the same security performance as conventional word processors such as Microsoft's "WORD". can do.
  • the document writing device 10 can encrypt technical features that require confidentiality and store them in a web DB, and in this case, it can provide users with more excellent security performance than a word processor.
  • the databases 140 and 240 may have various configurations capable of storing data necessary for document creation, and may be implemented as one or more tables or a combination of tables in one or more databases. Depending on the embodiment, the databases 140 and 240 may be implemented in such a way that data is stored as a combination of key data and value data. Specific components of the databases 140 and 240 will be described later with reference to the drawings.
  • a plurality of memories 14 and 24 may be physically provided, or may be provided as a physical device integrated with the processors 100 and 200. Additionally, the memories 14 and 24 may be physically or logically independent devices. It may be provided as a device and connected to a device equipped with a processor 100 or 200 to form a single device 10 or 20 as a whole.
  • the document creation device 10 and the document creation server 20 are not limited to the physical or logical configuration of the processors 100 and 200, memories 14 and 24, and other devices.
  • the communication modules 18 and 28 may provide a function for the document creation device 10 and the document creation server 20 to communicate with each other through the network 30, and may provide a function for communication with other devices or other servers.
  • data input from the user through the document creation device 10, a request generated by the processor 100 of the document creation device 10, a response to a request received from the document creation server 20, etc. are communicated. It can be transmitted to the document creation server 20 through the module 18.
  • the input/output interfaces 19 and 29 are components that receive data from the user or output data provided from the processors 100 and 200, memories 14 and 24, and communication modules 18 and 28 to the user. It can be understood as including both a hardware interface on the physical side and a software interface on the logical side.
  • the input/output interfaces 19 and 29 may include devices such as a keyboard, mouse, microphone, and camera as input devices, and may include devices such as speakers and displays as output devices.
  • the input/output interfaces 19 and 29 may include a device that integrates input and output into one, such as a touch screen, or an input tool such as a touch pen.
  • the user checks data entered by the user through the input/output interfaces 19 and 29, especially the input/output interface 19 of the document writing device 10, or checks data provided from the processor 100 or memory 14, You can enter data to create documents.
  • the input/output interfaces 19 and 29 can receive data for document creation from the user or output data for document creation to the user.
  • FIG. 3 is a diagram showing an example of the configuration of a processor of the document creation device and the document creation server of FIG. 2.
  • the processor 100 includes a screen configuration unit 101, a data management unit 102, a case management unit 103, a keyword management unit 104, an auto-complete list creation unit 105, and a text It may include one or more of the input element management unit 106. Keyword extraction unit 107, text extraction unit 108, text generation unit 110, and data communication unit 113.
  • the screen configuration unit 101 can configure the structure and content of the screen shown to the user through the document creation application.
  • the screen configured through the screen configuration unit 101 may be provided to the user through the input/output interface 19.
  • the structure of the screen can be understood as dividing the web page into a plurality of areas, and the content consists of multimedia information such as text, images, videos, etc. and web elements (web components) to be displayed on the entire screen or in each area. It can be understood.
  • the content may provide multimedia information to the user, may receive data or commands from the user, and may include a UI that allows the user to perform certain operations on the screen.
  • the UI may be understood as including components provided so that a user can recognize information through a document creation application and input data or issue commands through the document creation application.
  • UI can be understood as any component that can be included in a web page, for example, GUI (Graphic User Interface), TUI (Text User Interface) ), WUI (Web User Interface), etc.
  • the screen configuration unit 101 may be provided as a function of a web browser. Additionally, the screen composition unit 101 may receive files and data from the document creation server 20 or read files or data stored in the memory 14 to configure the screen.
  • the screen constructed through the screen composition unit 101 may be a static web page or a dynamic web page, and the screen composition unit 101 may refer to files and resources required to implement the web page.
  • each area included in the screen displayed through the screen configuration unit 101 may be defined in advance.
  • the screen composition unit 101 may configure the screen with a preset structure in which a navigation area, a sidebar area, a main area, etc. are arranged.
  • the content included in each area can be preset or generated by input from the user.
  • content displayed in the navigation area and sidebar area may be preset, and in the main area, preset information and information input by the user may be displayed together.
  • the web page constructed through the screen configuration unit 101 includes a script that provides a UI that allows the user to adjust the structure of the screen or set or change the type, content, location, and form of content displayed on the screen. You can. That is, the screen configuration unit 101 may be provided so that the user can change the configuration of the web page.
  • a web page provided through the screen configuration unit 101 includes a plurality of areas, and has a function that allows the user to select an area to be displayed on the screen or to adjust one or more of the location and size of the area.
  • a UI may be provided. These UI functions can be implemented in a program language such as javascript that can dynamically control web pages.
  • the screen configuration unit 101 can basically configure a “document creation screen” where the user can input the contents of the document using the input/output interface 19.
  • the structure and content of the document creation screen may be configured differently depending on the service provided. That is, the document creation screen for the first service and the document creation screen for the second service may be configured differently. Specific details related to this will be described later.
  • the document creation screen constructed by the screen configuration unit 101 may include one or more text input components through which the user can input information including text as the content of the document.
  • “Text input element” can be understood as a UI provided to the user through a document creation application so that the user can input text, and when the document creation application is implemented as a web application as in this embodiment, an HTML form element It may be a (form component) or a tag that allows data input.
  • a text input element may consist of input, textarea, div tags, etc.
  • some text input elements may be provided to receive non-text data such as tables and pictures.
  • non-text data such as tables and pictures.
  • a UI that can perform functions such as drawing tables, inserting special characters, entering formulas, entering chemical formulas, entering sequence information, and inserting pictures is a text input area window in the form of a toolbar.
  • a text input element provided on one side of the (input window) may be included.
  • such a UI may be placed separately from the text input element.
  • the data management unit 102 manages data necessary for document creation and may function as a data input/output interface of the database 140.
  • the data management unit 102 may provide functions to store data in the database 140, read stored data, modify stored data, or delete stored data.
  • the data management unit 102 may be provided as a function of a web browser.
  • the data management unit 102 may be a program source, file, library, etc. that can be loaded or referenced in a web browser.
  • the database 140 is a web DB provided by a web browser and may include one or more of web storage, web SQL database, and index DB. These web DBs have different characteristics such as support and storage capacity depending on the type and version of the web browser.
  • the data management unit 102 checks the information of the web browser used to run the document creation application so that the user can use the document creation function using any web browser of his or her choice, and then checks one or more of the web browsers normally supported by the web browser.
  • Web DB can be used.
  • the type of web DB used for each web browser may be preset and stored in a web page or script.
  • the data management unit 102 can enable web storage to be used as the database 140 when the web browser used is Internet Explorer 11, which does not normally support index DB, and Chrome, which normally supports index DB.
  • the web browser used is Internet Explorer 11, which does not normally support index DB, and Chrome, which normally supports index DB.
  • an index DB supporting a larger storage capacity can be used as the database 140.
  • the data management unit 102 may be provided to be interoperable with the other types of storage.
  • Components included in the document writing device 10 can manage data by linking with the database 140 through the data management unit 102.
  • one or more of the components included in the document writing device 10 may independently interface with the database 140.
  • the components of the document creation device 10 are linked with the database 140 through the data management unit 102.
  • the data management unit 102 can encrypt and process data when linked with the database 140. Specifically, the data management unit 102 can encode data input by the user through a preset encryption algorithm and store it in the database 140, and read the data stored in the database 140 and decode it through the same encryption algorithm to input and output the data. It can be output to the user through the interface 19. At this time, the encryption algorithm used by the data management unit 102 can use a key value dependent on user account information, thereby further improving the security performance of documents created through a document creation application.
  • the data management unit 102 may be provided to interoperate with the database 240 of the document creation server 20 as well as the database 140 of the document creation device 10.
  • the data management unit 102 can transmit a predetermined data processing request to the document creation server 20 through the data communication unit 113, which will be described later, and receive the processing result provided from the document creation server 20.
  • the above-described linking method between the data management unit 102 and the database 140 can be applied between the data management unit 102 and the database 240 in substantially the same way.
  • the data management unit 102 may be provided to be linked with one or both of the database 140 of the document creation device 10 and the database 240 of the document creation server 20.
  • the case management unit 103 can manage cases created by users to create documents. Information on cases managed by the case management unit 103 may be input from the user or may be generated according to preset rules. For example, case information may include information such as management number, case name, deadline, client, technical field, document format, storage method, and translation language information, depending on the related service.
  • the screen configuration unit 101 can configure a screen for managing such information (hereinafter referred to as a “case management screen”) and provide it to the user.
  • the case management screen may be provided as an independent web page, as a part of a web page, as a hidden or foldable area on the web page, or as a pop-up page or window.
  • the management number is a value set to distinguish the case from other cases, and can be input by the user through the case management screen or automatically assigned by the case management unit 103 according to preset rules. At this time, the management number can be managed and used as a unique value for each case, and the case management unit 103 can perform a process to verify the uniqueness of the management number.
  • the case name is a value entered arbitrarily so that the user can recognize the case by distinguishing it from other cases, the deadline is the date by which work on the case must be completed, the client is the person who requested the case from the user, and the technical field is the relevant case. It can be understood as a type of technology that is highly related to (e.g., information and communications, machinery, chemistry, etc.).
  • the document format can be understood as the basic structure that the document to be written must have. Specifically, in the case of a patent specification, the format designated for each patent office is different, so the case management screen can be configured so that the user can select the format of the patent specification that he or she wishes to write.
  • the document format may include "KR", "US”, “JP”, “PCT”, etc., and if the user selects "KR", it corresponds to the patent specification format required by the Korean Intellectual Property Office.
  • a screen may be provided to the user.
  • the database 140 may store essential input information or file templates corresponding to each document format, and the processor 100 may provide the corresponding screen or file to the user.
  • the storage method can be understood as selecting whether to store and manage information input related to the case in the document creation device 10 or the document creation server 20.
  • the case management screen may provide the user with the options of "Local Database” and “Cloud Database”, and if the user selects the former, the information of the case is stored in the database 140 and selects the latter.
  • the information of the case may be transmitted to the document creation server 20 through the network 30 and stored in the database 240.
  • security performance at the same level or higher than that of a word processor running independently in the document writing device 10 can be provided.
  • only some information may be stored in the database 140 and the remaining information may be stored in the database 240 of the document creation server 20.
  • the translation language information may be the language of the original text to be translated (second language) and the language of the translated text (first language), and may be used when the case is a case for a second service.
  • the keyword management unit 104 can manage keywords included in the content of the document.
  • “keyword” may be understood as referring to a specific object that can be included in the content of the document and can be described in text.
  • “components” that refer to specific entities that can be included in the content of a patent document and that can be described in text are managed by the keyword management unit 104 as keywords.
  • a keyword may not constitute an invention or may be a part of text that expresses or explains a specific object.
  • “keyword information” refers to one or more information related to the keyword (e.g., name of the keyword, identification number (e.g., drawing symbol) corresponding to the keyword, translation of the keyword, whether the keyword is used, number of times the keyword is used, etc. ) can be understood to include.
  • a document may include content describing a plurality of components constituting an invention, and these components constituting the invention may be managed by the keyword management unit 104.
  • the invention includes components such as a motor, shaft, and gear, and the identification numbers referring to them are set to 10, 20, and 30, respectively, for example, "motor”, “shaft”, and “gear” , “10”, “20”, “30”, etc. can be managed as component information.
  • the document is a translation created by a second service
  • the translation of the information of each component can also be managed as component information.
  • the second language is English and the first language is Korean
  • "motor” for "motor”, “rotation shaft” for "shaft”, and “gear” for “gear” are the respective components. It can be managed as information.
  • the components managed by the keyword management unit 104 may not be included in the invention, but may refer to specific objects used to describe the content of the invention.
  • driving may also be managed by the keyword management unit 104.
  • the keyword management unit 104 can manage a plurality of pieces of information describing one component as one set. For example, if the name of the component and an identification number referring to the component are set as component information, the keyword management unit 104 creates a unique name corresponding to the set of the name and identification number of the component. One key value can be assigned, and the information of the corresponding component can be managed based on the set key value.
  • the keyword management unit 104 has one each of “motor” and “10” and “motor”, “shaft” and “20” and “rotation axis”, and “gear” and “30” and “gear” respectively. It can be managed as a set, and each set can have a unique key value set.
  • the keyword management unit 104 can block duplicate component information from being stored in order to form a unique key value for a set of components. In other words, the keyword management unit 104 can block the formation of a plurality of component sets containing the same component information.
  • the screen composition unit 101 can configure a screen for managing component information (hereinafter referred to as “component management screen”) and provide it to the user.
  • component management screen may be provided as an independent web page, as a partial area of the web page, as a hidden or foldable area on the web page, or as a pop-up page or window.
  • the keyword management unit 104 transfers the component information before and after the change to the auto-complete list creation unit 105 and the text input element management unit 106 to create the auto-complete list. It can be updated, or the auto-complete text or auto-complete block, which will be described later, can be updated.
  • changing the information of a component will be understood to include inputting new component information, updating information on a previously entered component, or deleting information on a previously entered component. You can.
  • the auto-complete list generator 105 may generate an auto-complete list provided to minimize the time required for text typing when creating a document.
  • the auto-completion list generated by the auto-completion list generator 105 can be provided to and used by the text input element management unit 106.
  • the autocomplete list may include one or more items created based on text entered by the user. Some items included in the auto-completion list may be managed by unique key values set by the auto-completion list generator 105, and items with unique key values may be managed by the text input element management unit 106, which will be described later. Functions such as batch update can be applied.
  • the auto-complete list generator 105 loads data from a preset data source to generate a data set containing all items that can be included in the auto-complete list, and then generates You can extract items corresponding to the text entered by the user from within the data set and construct an auto-complete list to be displayed on the screen.
  • the auto-complete list generator 105 may search for items in a data source using the text entered by the user as a search term, and then construct an auto-complete list with the search results.
  • the auto-complete list generator 105 may receive text from the user, extract data corresponding to the input text from a preset data source, and configure an auto-complete list with the extracted data.
  • the data source may include components managed by the keyword management unit 104.
  • each of the components managed by the keyword management unit 104 may be included in the auto-complete list as one item.
  • all or part of the information included in one set of components can be used as one item of the auto-completion list.
  • the autocomplete list includes "motor”, “shaft”, “gear”, “motor 10”, “shaft 20”, “gear 30”, “motor”, “rotation shaft”, and “gear”.
  • “Motor (10)”, “Rotation Shaft (20)”, “Gear (30)”, etc. may be included as items.
  • the form of including the identification code in the item may be preset.
  • a screen where the user directly sets a form for including an identification code in an item may be provided through a document creation application.
  • the auto-complete list creation unit 105 is configured to input translations of components among the components managed by the keyword management unit 104. You can create a data source by extracting only elements. That is, among the components managed by the keyword management unit 104, only components for which translations have been entered may be included in the auto-complete list as items. At this time, if the component for which the translation is input also includes identification code information, the auto-completion list generator 105 displays an item consisting of only the translation of the component and the translation and identification code together in the auto-completion list. All items can be included.
  • each item may have a unique key value of a combination of component information formed by extracting from a set of corresponding component information.
  • “motor10”, “shaft20”, “gear30”, etc. can be used as unique key values for the corresponding item.
  • the data source may include data stored in the database 140 or provided from the document creation server 20.
  • expressions frequently used in document creation may be stored in the database 140 or database 240, and the auto-complete list generator 105 loads them or sends them to the document creation server through the data communication unit 113. It can be provided from (20) and included as an item in the auto-completion list.
  • the auto-complete list generator 105 can create an auto-complete list by mixing information on components managed by the keyword management unit 104 and data provided from the database 140 or the document creation server 20. there is.
  • Items included in the auto-complete list generated by the auto-complete list generator 105 may have attribute values representing the attributes of the item.
  • the attributes of the item include the source of the data that creates the item (e.g., whether it is data provided from the database 140 or data provided from the database 240), and the purpose for which the item is used (e.g., to create a component). whether it is for auto-completion, whether it is for auto-completion of idiom words, etc.), the type of data contained in the item (for example, the type of language used, whether it contains numbers, whether it contains special characters). (whether or not, etc.), the composition of the data included in the item (e.g., whether drawing symbols are included, the format in which the drawing symbols are displayed, whether translations are included, etc.), etc.
  • an attribute value of an item the value corresponding to the item used to auto-complete the information of the components of the invention and the value corresponding to the item used to auto-complete the repetitive expression regardless of the component are different from each other. It can be set and used differently.
  • items with the former value will be referred to as “component items,” and items with the latter value will be referred to as “idiom items.”
  • component items can be used to auto-complete the components of the invention
  • idiom items can be understood as being used to auto-complete expressions that can be used repeatedly and frequently.
  • “idiom” may be understood to include not only one word but also a phrase or clause containing multiple words.
  • component items may be created from components managed by the keyword management unit 104, and idiom items may be created from data provided from the document creation server 20. Accordingly, security can be strengthened by managing component items that are related to the core content of the invention and can be used only within a specific case in the document writing device 10. In addition, convenience of use can be improved by managing idiom items that are not related to the core content of the invention and can be used universally in all cases in the document creation server 20.
  • the auto-complete list generator 105 can update the information and identification value of the item created based on the component with the changed information.
  • the auto-complete list creation unit 105 You can change the information of the corresponding component from “10” to “100”. Accordingly, the autocomplete list may include "motor 100" as an item instead of "motor 10", and the identification value of the item may also be changed from "motor10" to "motor100”.
  • the auto-complete list creation unit 105 may add the corresponding component as a component item in the component list. Additionally, when information on a component managed by the keyword management unit 104 is deleted, the auto-complete list generator 105 may delete the item created based on the component.
  • the auto-complete list generator 105 may arrange component items in ascending or descending order of the component name text, or in ascending or descending order of the identification number text.
  • the auto-complete list generator 105 can arrange the component items of the component list in ascending order of the identification number text. As a result, the component item corresponding to the number of identification numbers typed by the user can be selected first, thereby improving convenience of use.
  • the auto-complete list creation unit 105 can create a component list with "mobile phone 1", “motor 10", and "main body 100" in ascending order of the identification number text.
  • the user who wants to input 'mobile phone' will only type "1", and as a result, all three component items above will be displayed in the autocomplete list, but "mobile phone 1” will be displayed first.
  • the user can immediately select “mobile phone 1” to autocomplete. If “mobile phone 1” is not displayed first, the user must perform additional operations to select “mobile phone 1”, which reduces usability.
  • a user who wants to input motor will type "10". In this case, an autocomplete list will be displayed with "motor 10" displayed first, excluding “mobile phone 1", so the user will type "motor 10" immediately. You can select to auto-complete.
  • the data set or auto-complete list generated by the auto-complete list generator 105 may have a structured text document format such as json or xml.
  • the text input element management unit 106 can manage text input elements included in a web page. As described above, the screen composition unit 101 can configure the screen so that the document creation screen includes one or more text input elements, and the text input element management unit 106 is included in the document creation screen by the screen composition unit 101. You can control text input elements.
  • the text input element management unit 106 can manage the format of text input into the text input element.
  • the text input element management unit 106 stores generally known text properties such as size, font family, and color of the text input to the text input element, as well as properties to be added to the text such as underline, bold text, and italics. The possible effects can be managed.
  • This format management can be performed on all texts entered into the text input element at once, or only on some of the text selected by the user. Additionally, format management may be performed automatically by the text input element management unit 106 according to preset conditions, or may be performed manually by the user. In the latter case, the text input element may include a UI that allows the user to change the format.
  • editing text may be understood to include not only changing the content of the text, but also modifying or changing the formatting applied to the text.
  • the text input element management unit 106 may allow one text input element to have a different format from other text input elements.
  • the text input element management unit 106 can detect an event occurring in a text input element and perform a set operation accordingly.
  • Events that occur in text input elements include keyboard events (e.g., key down, key press, key up, input, etc.), mouse events (e.g., click, double click, mouse down, etc.), and events from a web browser or operating system. It can include any other events that occur.
  • events occurring in text input elements can be understood to include changes in data values (addition, modification, deletion, etc.). In the following description, reference to “event” without special elaboration may be understood to include all keyboard events, mouse events, other events, and data changes.
  • the text input element management unit 106 may edit all or part of the text entered into the text input element according to preset rules according to events occurring in the text input element. For example, when a specific keyboard event occurs, the text input element management unit 106 may extract part of the text entered into the text input element and determine whether the extracted text meets preset conditions. Such an operation may be performed by a mouse event that operates in a preset manner (for example, right-clicking the mouse to open a pop-up menu and then left-clicking to select a preset item from the pop-up menu). The text input element management unit 106 may edit the text extracted according to the judgment result according to preset rules and then replace the extracted text with the edited text and output it to the text input element.
  • preset rules for example, when a specific keyboard event occurs, the text input element management unit 106 may extract part of the text entered into the text input element and determine whether the extracted text meets preset conditions. Such an operation may be performed by a mouse event that operates in a preset manner (for example, right-clicking the mouse
  • the text input element management unit 106 may input the first letter of the input word if the input word is the first word of the sentence and the first letter is not a capital letter. You can change it to uppercase and output it to the text input element instead of the entered word. Specifically, if the user enters "this” as the first word of the sentence in a text input element and then presses the space bar on the keyboard, the text input element management unit 106 extracts "this", changes it to "This", and then inputs the text It can be output to the input element.
  • the text input element management unit 106 determines whether the particle of the input word when the input key is the space bar is used to match the consonant of the last letter of the word located in front of the particle. Check , and if the particle is not used correctly, you can change it to the correct particle and output it to the text input element instead of the entered word. At this time, if the word located in front of the particle includes a part indicating a drawing symbol, the text input element management unit 106 determines whether the particle is used correctly based on the consonant of the last letter excluding the part indicating a drawing symbol. You can check .
  • the text input element management unit 106 changes “object word” to "object word”. , “Object (100)” can be changed to “Object (100)” and output to a text input element.
  • the text input element management unit 106 can provide an auto-completion function when a user inputs text through a text input element.
  • autocomplete is understood as allowing the user to input only part of the word or phrase (hereinafter referred to as “full phrase”) that the user wants to input and then input the entire phrase by performing a preset key input or mouse input. It can be.
  • the text input element management unit 106 outputs an autocomplete list to the screen when a keyboard event (for example, an input event such as a, b, c, 1, 2, etc.) for inputting text in a text input element occurs.
  • a keyboard event for example, an input event such as a, b, c, 1, 2, etc.
  • An autocomplete function can be provided by having the user select the desired item. Each item included in the autocomplete list can be used as a full phrase.
  • the auto-completion list output by the text input element management unit 106 may be generated and provided by the auto-completion list creation unit 105.
  • the auto-complete list generated by the auto-complete list generator 105 may include a plurality of items, and the plurality of items may include component items or idiom items, so the user utilizes the auto-complete function to complete the document. The time required to write can be reduced.
  • the text input element management unit 106 can extract the cursor position where the event occurred. Additionally, the text input element management unit 106 can extract the text surrounding the extracted cursor position (hereinafter referred to as “extraction position”) according to preset conditions. For example, the text input element management unit 106 may extract text corresponding to one word located in front of the extraction position. As an example, the extracted text can be recognized as a single word according to the language-specific text input method provided by the operating system and document creation application, such as an identifier located in front of the extraction location (e.g., newline character, tag, space bar, etc.) It may be a string that exists up to the location of the text or code set to be there.
  • extraction position the text surrounding the extracted cursor position
  • the text input element management unit 106 may extract text corresponding to one word located in front of the extraction position.
  • the extracted text can be recognized as a single word according to the language-specific text input method provided by the operating system and document creation application, such as an identifier located in front of the extraction
  • the text input element management unit 106 may extract the cursor location and text using the selection object of the window object of the web browser.
  • a “string” may be understood as a set of one or more consecutive letters, numbers, symbols, or space characters, and a unit constituting a string may be collectively referred to as a character.
  • the text input element management unit 106 can provide an auto-completion function even when text is input in the middle of a continuous string.
  • the text input element management unit 106 separates the text written before the extracted text (hereinafter referred to as “front text”) and the text written after it (hereinafter referred to as “back text”), respectively. You can save it.
  • the front text and back text may be text up to the html tags located ahead and behind the extracted text.
  • the front text and back text are stored independently and explicitly within a function or method that implements the function of the text input element management unit 106, or are automatically generated by a library or script referenced by the text input element management unit 106. It can also be managed.
  • the text extracted by the text input element management unit 106 can be used as a keyword to create an autocomplete list.
  • the auto-complete list generator 105 uses the text extracted by the text input element management unit 106 as a search term, and contains or corresponds to text extracted from a preset data source or data set. You can search for possible data and create items to be included in the autocomplete list.
  • the text extracted by the text input element management unit 106 and used to create the auto-completion list in the auto-completion list creation unit 105 will be referred to as an “auto-completion keyword.”
  • the auto-complete list generator 105 may generate an auto-complete list based on the auto-complete keyword and provide it to the text input element management unit 106, and the text input element management unit 106 may generate an auto-complete list based on the auto-complete keyword.
  • the autocomplete list provided from can be output at the cursor position where the event occurred.
  • the autocomplete list output by the text input element management unit 106 may include one or more items and allow the user to change the selected item using the mouse or keyboard.
  • the auto-complete list is a block with a preset size and is created as an independent layer by the text input element management unit 106, and when called by the text input element management unit 106, it may be provided in a form that appears on the screen. .
  • the direction in which the auto-completion list appears can be set so that the auto-completion list of a size set based on the cursor position can be completely included on the screen.
  • the text input element management unit 106 can read the size and position of the text input element provided by the web browser, the position of the cursor, etc., and determine the direction in which the auto-completion list is output. For example, if the position of the cursor is biased to the left of the text input element, the auto-completion list may be output to the right of the cursor, and if the position of the cursor is biased to the right, the auto-completion list may be output to the left of the cursor.
  • the text input element management unit 106 When the user selects the desired item from the output auto-completion list and then performs a preset key input (for example, tab key or enter key) or mouse input, the text input element management unit 106 enters the auto-completion keyword into the user. You can change the content of the selected item and output it to the text input element. In other words, the selected item can be output to the text input element as an auto-completed entire phrase.
  • auto-complete text the entire phrase displayed in the text input element, replacing the auto-complete keyword
  • the text input element management unit 106 can configure the auto-complete text in different forms depending on the input key value. For example, auto-completion may be performed by entering a first key and entering a second key different from the first key, and the text input element management unit 106 may print the entire phrase as is when the first key is entered. It is output as auto-complete text, and when a second key input is input, the first letter of the entire phrase can be changed to a capital letter and output as auto-complete text. As another example, when a second key input is input, the text input element management unit 106 may change the entire phrase into a singular expression or a plural expression and output it as an auto-complete text.
  • the text input element management unit 106 may output only the name of the component as an auto-complete text, excluding the reference numerals included in the entire text.
  • key input can be understood to include not only any single key input but also a combination of key inputs.
  • the text input element management unit 106 When a user enters text in the middle of a continuous string, the text input element management unit 106 combines the front text in front of the selected item in the auto-completion list and the back text in the back of the selected item to create the text input element. You can keep other contents entered in . As a result, an auto-completion function can be provided even if text is entered at any position of the text input element.
  • the text input element management unit 106 can enable the user to smoothly continue inputting text by positioning the cursor immediately after the autocomplete text.
  • This function can also be implemented by extracting the cursor position and text using the selection object of the web browser's window object, and then replacing the autocomplete keyword with the autocomplete text using the range object.
  • the text input element management unit 106 can apply a preset format to the auto-complete text so that the auto-complete text can be recognized separately from other parts, and cause the text with the format applied to be output to the text input element.
  • the text input element management unit 106 creates auto-complete text with a tag that can format the text within the text input element (for example, a span tag or div tag with different colors, fonts, sizes, etc.). After wrapping, it can be output to a text input element.
  • the autocomplete texts within the text input element can be recognized separately from other texts by the text input element management unit 106.
  • the setting value for formatting or the tag itself may already be included as the content of the auto-completion list item, or may be set as an attribute value of the auto-completion list item.
  • the text input element management unit 106 may allow different formats to be applied depending on the properties of the item selected from the auto-completion list.
  • the auto-complete list generator 105 can ensure that items included in the auto-complete list have attribute values, and when applying formatting to the auto-complete text, the auto-complete list generator 105 creates the Different formats can be applied depending on the property value. For example, when the selected item is a component item, the text input element management unit 106 may format the autocomplete text to be displayed in a first color that can be distinguished from other texts.
  • the text input element management unit 106 causes the auto-complete text to be displayed in a second color different from the color of the other text and the first color, or to display the autocomplete text in the same color as the color of the other text. It can be done as much as possible.
  • the text input element management unit 106 may omit formatting for idiom items so that the autocomplete text is displayed in the same format as that of other texts.
  • the text input element management unit 106 can prevent the auto-complete text from being arbitrarily edited by the user.
  • the contents of the autocomplete text may be set to be uneditable.
  • the text input element management unit 106 may surround the auto-complete text with a predetermined tag such as a span tag, but may specify the contenteditable attribute of the tag as false. As a result, the area surrounded by the tag cannot be arbitrarily modified by the user, thereby preventing the user from arbitrarily changing the autocomplete text.
  • the text input element management unit 106 may set the auto-complete text to be non-editable if the selected item is a component item, and set to editable if the selected item is an idiom item.
  • this embodiment can prevent errors in description under the patent law from occurring due to incorrect or arbitrarily changing components that require unity of expression within a document, and at the same time, the user can freely use idioms unrelated thereto. Because it can be edited, convenience of use can be improved.
  • the text input element management unit 106 may detect an event and, when a deletion event for the auto-complete text (for example, key input such as backspace or delete) is detected, delete the auto-complete text at once.
  • a deletion event for the auto-complete text for example, key input such as backspace or delete
  • the autocomplete text can be deleted by a single event.
  • the text input element management unit 106 can surround the auto-complete text with a predetermined identifier or tag, and upon inputting a deletion event, completely deletes the part wrapped with the identifier or tag, so that the auto-complete text can be created with a single key input. You can implement the deletion operation with .
  • the text input element management unit 106 may use the selection object of the windows object of the web browser to designate the autocomplete text as a range and then delete the designated range at once when a deletion event occurs. This can further reduce the time required for text editing, thereby further improving the productivity of document creation.
  • Whether or not the function to delete autocomplete text as a one-time event is provided can be set differently depending on the properties of the item selected in the autocomplete list. For example, when the selected item is a component item, the text input element management unit 106 deletes the auto-complete text in a single event, and when the selected item is an idiom item, the individual characters constituting the auto-complete text are deleted. It can be set to enable. As a result, it is possible to prevent errors in description under the patent law from occurring due to incorrect or arbitrarily changed components that require unity of expression within the document. At the same time, unrelated idioms can be freely edited by the user, so they can be used. Convenience can be improved.
  • the autocomplete text can be managed by being wrapped in HTML tags, and based on this, the text can be formatted, cannot be edited, deleted with a one-time event, etc.
  • the function may be provided.
  • the autocompletion text wrapped in tags is referred to as an “autocompletion block.” That is, the text input element management unit 106 can provide an auto-completion function by adding an auto-completion block when a user inputs text into a text input element.
  • the document creation application may not be a web application that operates based on HTML, but may be independent application software implemented in an arbitrary programming language.
  • the auto-complete text can be displayed in a format that is distinct from other parts of the text input element, managed to prevent it from being arbitrarily edited, or implemented to be deleted in a single event, and the auto-complete text implemented in this way can be automatically It can be understood as a completion block.
  • the text input element management unit 106 can assign an identification value to the auto-complete block and manage the auto-complete block based on the identification value. For example, when the autocomplete block uses a span tag, the identification value given by the text input element management unit 106 may be set as the id value of the span tag, and the text input element management unit 106 may set the id value. You can control autocomplete blocks based on this.
  • the identification value given to the auto-complete block by the text input element management unit 106 may be determined according to the item in the auto-complete list that creates the corresponding auto-complete block. That is, autocomplete blocks created by any one item in the autocomplete list may have the same identification value.
  • the identification value of an auto-complete block generated by the text input element management unit 106 may be a unique key value of an item corresponding to the auto-complete block.
  • the text input element management unit 106 may generate a separate identification value based on the data of the item, rather than the unique key value of the item in the auto-complete list.
  • the autocomplete list includes the items “motor 10", “shaft 20”, and “gear 30", and the key values of each item are “motor10", “shaft20”, and "gear30".
  • all autocomplete blocks created when the user selects "motor 10" from the autocomplete list have the identification value "motor10”
  • all autocomplete blocks created when the user selects "shaft 20” have the value " It can have an identification value of “shaft20”.
  • the text input element management unit 106 can automatically change the value of the auto-complete block created based on the item corresponding to the component. .
  • the user can change the text corresponding to the component auto-completed in the text input element at once by changing the information of the component through the keyword management unit 104.
  • This type of function is called “bulk update.”
  • the keyword management unit 104 requests the text input element management unit 106 to update the autocomplete block corresponding to the component whose information has been changed. You can.
  • the request transmitted from the keyword management unit 104 to the text input element management unit 106 may include information before and after the change of the corresponding component.
  • the text input element management unit 106 receives an update request for an auto-complete block, it searches the identification value of the corresponding auto-complete block based on the information before the change and changes the data of the auto-complete block based on the searched identification value. It can be updated with later information. At this time, if necessary, the identification value of the corresponding auto-complete block can also be changed based on the information after the change.
  • the text input element management unit 106 enters “motor10,” which is the unique value of the corresponding item. After searching all the autocomplete blocks set with this identification value, you can change the autocomplete text of the searched autocomplete block to "motor 100" and at the same time update the identification value to the changed "motor100".
  • the text input element management unit 106 can only change the text included in the auto-complete block within the text input element.
  • the user must When the identification number of "motor” is changed from “10” to "100” in (104), the plain text "motor 10” will not change, but the autocomplete block "motor 10" will change to "motor 100". You can.
  • this embodiment can indirectly force the user to manage component information through the keyword management unit 104 and create a document using the auto-complete function, and can improve the user's proficiency in the system. there is.
  • the text input element management unit 106 targets only the entire text or auto-complete blocks entered into the text input element and the string before the change. Changed component information can be reflected in the text input element by replacing with the changed string.
  • the text input element management unit 106 shows the user in advance the parts to be changed within the text input element as needed, receives the user's confirmation of the entire change, and performs the entire change, or allows the user to confirm the entire change. You can also make sure that only selected parts are changed.
  • the text input element management unit 106 changes the autocomplete block generated based on the item corresponding to the component to a simple autocomplete text. You can. For example, the text input element management unit 106 may delete tag information that provides formatting and attributes from the auto-complete block corresponding to the information of the deleted element, leaving only simple text information. As another embodiment, when information on a specific element managed by the keyword management unit 104 is deleted, the text input element management unit 106 may delete the corresponding autocomplete block included in the text input element.
  • the text input element management unit 106 determines whether the text corresponding to the information on the corresponding element is included in the text input element, and then determines whether the text input element contains the corresponding text. You can also change it to an autocomplete block.
  • the text input element management unit 106 can provide formatting in units of auto-completion blocks, non-editability, deletion in a single event, and batch update functions, so the user can more clearly understand the contents of the document he or she is writing. Since you can recognize and create documents and at the same time edit quickly and accurately, documents can be created more accurately and quickly.
  • the text input element management unit 106 may output an auto-completion list only when a preset trigger character is input and characters are input consecutively to the trigger. For example, when "@" is set as a trigger character, the text input element management unit 106 can provide the above-described auto-completion function only when a character following "@" is input into the text input element. In this case, the text input element management unit 106 may output the trigger character to the text display area with the trigger character removed when the auto-complete keyword is replaced with the auto-complete text.
  • the text input element management unit 106 may add an antecedent to refer to the automatically completed component item when the component item is entered through the autocomplete function. For example, if the auto-completed component item has already been used in the corresponding text input element or another preset text input element, the text input element management unit 106 may use "above” or "above” when the component item is auto-completed. Antecedents such as "the” can be added automatically. At this time, the added antecedent may be included as part of the autocomplete text and placed within the autocomplete block.
  • Whether or not to automatically add an antecedent when autocompletion of component items can be managed as a setting value and can be provided for the user to select in the settings management screen, which will be described later.
  • the text input element management unit 106 may provide a string insertion function that adds a preset string to the text input element.
  • the preset string entered by the string insertion function (hereinafter referred to as “inserted string”) may not include components managed by the keyword management unit 104, and may not be entered in advance by the user in connection with the creation of the document. It may be a string stored in the database 140 or the database 240.
  • the inserted string may be content related to the case, such as the name of the invention, background technology, problem to be solved, effect of the invention, brief description of drawings, and claims, etc. entered by the user when creating the case.
  • case-related content may be stored in the database 140.
  • the inserted string is content that is not dependent on the case, and is a sentence or expression that can be used repeatedly regardless of the type of case when creating a document, or is repeated regardless of the type of case when explaining a specific technical term. It may contain idiomatic content such as explanatory sentences that can be used as a text. In this embodiment, such repeatedly used sentences, expressions, and idiomatically used explanatory sentences will be referred to as “idiomatic phrases” to distinguish them from the above-mentioned idioms. In other words, an idiom can be understood as an idiomatic expression used as an item in an auto-completion list, and an idiom can be understood as an idiomatic expression used as an inserted string.
  • Idioms can be stored in the database 240, and the text input element management unit 106 can receive the stored idioms through the data communication unit 113. Additionally, case-related content among the inserted strings may be stored in the database 140 of the document creation device 10, and idioms may be stored in the database 240 of the document creation server 20. The location and method for storing such idioms are provided as examples, and the spirit of the present invention is not limited thereto.
  • Idiomatic phrases are expressions used idiomatically when describing a technical field, expressions used idiomatically when explaining prior art, expressions used idiomatically when describing a problem to be solved, and expressions used idiomatically when describing the effect of an invention. It may include expressions used in simple descriptions of drawings, idiomatic expressions used in simple descriptions of drawings, and expressions used idiomatically when indicating a cited claim in a claim. Such idioms may include a replacement portion that can be replaced with other text.
  • the replacement part may include a boundary identifier indicating the boundary of the replacement part (for example, a character that can indicate the start and end of the area to be replaced) and an indication identifier indicating the text to be replaced and inserted.
  • the instruction identifier is text to be replaced and may indicate the name of the invention or the number of the claim.
  • the replacement part can be inserted by replacing it with another preset text. Specifically, when inserting an idiom into a text input element, the text input element management unit 106 determines whether the idiom includes a replacement part or whether the text input element into which the idiom is input contains a substitution part. Awareness can be determined. If it is determined that replacement of the replacement part is necessary, the text input element management unit 106 reads the text already entered in another text input element according to the contents of the instruction identifier, or reads the text configured according to the information provided by the user or the user's selection. After changing the replacement part to text, it can be output to the corresponding text input element.
  • the replaced part output to the text input element is configured like the auto-complete block described above, and can have block-by-block formatting, non-editability, deletion in a one-time event, and batch update functions.
  • the screen configuration unit 101 may configure a screen for the user to select a string to be added to a text input element (hereinafter referred to as an “insertion string selection screen”) and provide the screen to the user.
  • the insertion string selection screen may be provided as an independent web page, as a partial area of the web page, as a hidden or foldable area on the web page, or as a pop-up page or window.
  • the insertion string selection screen can be configured independently depending on the type of insertion string.
  • the insertion string selection screen can be called through UI such as buttons provided around the text input element.
  • the text input element management unit 106 can insert the selected string into the text input element.
  • the position where the selected string is inserted may be the cursor position when the user calls the insertion string selection screen, and for this, the text input element management unit 106 determines the cursor position when the call event of the insertion string selection screen occurs. You can save it. If the cursor is not located in the text input element, the insertion string selection screen can be controlled not to be called.
  • the text input element management unit 106 can store text information input into the text input element in the database 140 in real time.
  • “real-time” can be understood as processing immediately or at very short time intervals when an event related to data change occurs.
  • the text input element management unit 106 operates the database 140 through the data management unit 102. ), or data stored in the database 140 can be updated.
  • the data management unit 102 matches the text input element managed by the text input element management unit 106 with the data storage unit formed in the database 140, and an event in the matched text input element is input to the text.
  • the data storage of the database 140 can be automatically updated.
  • the text input element management unit 106 may store data entered into the text input element at preset time intervals or may be provided to store the data in the database 240.
  • the text input element management unit 106 can allow data input to one text input element to be used as is in another text input element. Specifically, when data "A” is input into one text input element, the text input element management unit 106 stores the data of the other text input element so that "A" is included as part of the data in the other text input element. can be set. At this time, when "A” is changed by the user to another value, for example, "AA", the text input element management unit 106 can change "A" entered in another text input element to "AA". .
  • the text input element management unit 106 can provide this function similar to the auto-completion function described above. Specifically, the text input element management unit 106 can wrap “A” with a tag, give the tag a unique key value, and then add it as data for another text input element. Afterwards, when an event occurs that changes "A” to "AA", the text input element management unit 106 searches for a tag corresponding to the unique key value included in another text input element and then records the contents as " You can change from “A” to “AA”. At this time, the text input element management unit 106 provides formatting, non-editable, one-time event deletion, and batch update functions, similar to the above-described auto-complete block, through a tag surrounding “A” entered in another text input element. can do.
  • data input to the text input element controlled by the text input element management unit 106 may be provided by an input/output interface 19 other than the keyboard or mouse.
  • the document writing device 10 may further include a microphone as the input/output interface 19, and the text input element management unit 106 converts voice data collected through the microphone into text data and then converts the voice data collected through the microphone into text data. You can also input converted text data into the text input element.
  • the text input element management unit 106 may be equipped with a function to convert voice data into text data.
  • the external service linking unit 111 may be used to convert voice information into text.
  • the text input element management unit 106 provides voice data collected through a microphone to a third party through the external service linking unit 111, and text data converted by a service provided by a third party is provided to an external service. It can be transmitted through the interlocking unit 111.
  • the text input element management unit 106 may convert it into an auto-completion block and output it to the text input element.
  • the text input element management unit 106 changes the text into the corresponding auto-complete block and inputs the text. It can be output to an element. Through this function, the user can input the contents of the document by voice without using the keyboard and even use the auto-complete function, greatly improving usability.
  • the text input element management unit 106 may control other text input elements based on events occurring in one text input element. For example, data entered into one text input element may be referenced as the contents of another text input element, and when the data of the referenced text input element changes, the text input element management unit 106 The contents of text input elements can be automatically updated. As a specific example, when the data of the category input element of the independent claim provided on the claim creation screen to be described later is changed, the text input element management unit 106 may change the data of the category input element of the dependent claims citing the corresponding independent claim. .
  • the external service linking unit 111 can transmit data to an external service provided by a third party that provides services not provided by the document preparation device 10 or the document preparation server 20 or receive the results of processing the data.
  • services provided by third parties may include patent-related information inquiry services, voice-to-text conversion services, translation example provision services, machine translation services, dictionary services, card payment services, and bank transfer services.
  • the external service linking unit 111 may call a service API provided by a third party, transmit data to the third party, receive the processing result, and provide it on the document creation screen.
  • the functions performed by the components of the processor 100 of the document creation device 10 described above may also be performed by the processor 200 of the document creation server 20.
  • the processor 200 of the document creation server 20 includes the screen configuration unit 101, data management unit 102, case management unit 103, keyword management unit 104, and auto-completion list of the document creation device 10.
  • the description of transmitting data to the document creation server 20 or receiving data from the document creation server 20 and using it corresponds to It will be understood that the components of the processor 200 transmit data to the document creation device 10, receive data from the document creation device 10, or use data stored in the document creation server 20. You can.
  • the description of using data stored in the document creation server 20 means that the corresponding components of the processor 200 are the document creation device. It can be understood as receiving and using data stored in (10) or using data stored in the document creation server (20).
  • Each corresponding component of the processor 100 of the document creation device 10 and the processor 200 of the document creation server 20 is the processor 100 of the document creation device 10 and the document creation server 20. It may be provided to both processors 200, or may be selectively provided to any one of the processor 100 of the document creation device 10 and the processor 200 of the document creation server 20. If any one component is provided to both the processor 100 of the document creation device 10 and the processor 200 of the document creation server 20, the function of the component is limited to the processor of the document creation device 10 ( 100) and the processor 200 of the document creation server 20, some functions may be performed by the processor 100 of the document creation device 10, and other functions may be performed by the processor 200 of the document creation server 20. It may be carried out separately.
  • the components of the processor 100 of the document creation device 10 collect data from a document creation application or a document creation screen and transmit it to the corresponding components of the processor 200 of the document creation server 20.
  • the function of outputting data transmitted from the corresponding component of the processor 200 of the document creation server 20 to a document creation application or a document creation screen can be performed.
  • the components of the processor 200 of the document creation server 20 are based on the data transmitted from the corresponding components of the processor 100 of the document creation device 10.
  • the functions performed by the corresponding components of the processor 100 may be performed, and the performance results may be transmitted to the corresponding components of the processor 100 of the document writing device 10.
  • the components of the processor 200 of the document creation server 20 include the memory 14 and database 140 of the document creation device 10 as well as the memory 24 of the document creation server 20 for data management. and database 240 may also be used.
  • one component may be provided only to the processor 100 of the document creation device 10 or may be provided only to the processor 200 of the document creation server 20.
  • the component can perform its function independently.
  • a component provided only to either the processor 100 of the document creation device 10 or the processor 200 of the document creation server 20 is a component provided without transmitting or receiving data to or from another device through the network 30. It can perform the data management and data processing functions required.
  • Components provided to the processor 200 of the document creation server 20 may receive data required to perform its function from the document creation device 10 and process it.
  • the processor 200 of the document creation server 20 may receive data input through a document creation application or a document creation screen from the document creation device 10 and process it.
  • the components provided to the processor 200 of the document creation server 20 are provided to the user through a document creation application or document creation screen, or provide data necessary to perform the function of the document creation application or document creation screen. It can be delivered to the device 10.
  • the data transmitted by the processor 100 of the document creation device 10 to the processor 200 of the document creation server 20 is data input through a document creation application or a document creation screen, or is transmitted by the processor 100 of the document creation device 10. It may be data processed by the processor 100. Additionally, the processor 100 of the document creation device 10 may transmit data stored in the memory 14 or processed data to the processor 200 of the document creation server 20. Additionally, the processor 100 of the document creation device 10 may provide document creation device 10 side data requested from the processor 200 of the document creation server 20. Additionally, the processor 100 of the document creation device 10 may provide data provided by a third party or processed data to the processor 200 of the document creation server 20. Additionally, the processor 100 of the document creation device 10 may provide the results of combining and processing the above data to the processor 200 of the document creation server 20.
  • Data transmitted from the processor 200 of the document creation server 20 to the processor 100 of the document creation device 10 is transmitted from the processor 200 of the document creation server 20 to the processor 100 of the document creation device 10. It may be the result of processing or processing data received from ). Additionally, the processor 200 of the document creation server 20 may transmit data stored in the databases 140 and 240 or processed data to the processor 100 of the document creation device 10. Additionally, the processor 200 of the document creation server 20 may provide document creation server 20 side data requested from the processor 100 of the document creation device 10. Additionally, the processor 200 of the document creation server 20 may provide data provided by a third party or processed data to the processor 100 of the document creation device 10. Additionally, the processor 200 of the document creation server 20 may provide the results of combining and processing the above data to the processor 100 of the document creation device 10.
  • Data is transmitted between the document creation device 10 and the document creation server 20 as described above through the communication module 18 of the document creation device 10 and the communication module 28 of the document creation server 20. It can be performed and controlled by the data communication unit 113 of the document creation device 10 and the data communication unit 213 of the document creation server 20. Additionally, each component can transmit and receive data directly or using the data communication unit 113 of the document creation device 10 and the data communication unit 213 of the document creation server 20.
  • FIG. 4 is a flowchart explaining the process of creating a document by the document writing device 10 of FIG. 1.
  • the document creation device 10 includes a screen configuration unit 101 that configures a document creation screen for creating a document and provides it to the user through the input/output interface 19; a keyword management unit 104 that receives and manages keywords that can be included as text in the content of the document from the user through the input/output interface 19; a text input element management unit 106 that manages text input elements provided on the document creation screen and receiving document content from the user; A text extraction unit 108 that extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit 104 from the text input into the text input element through the text input element management unit 106; and a text generator 110 that generates text containing keywords by providing the texts extracted by the text extraction unit 108 as input values to a text generation model learned based on natural language processing.
  • the text generation model uses keywords extracted from a sentence or paragraph and the properties of the sentence or paragraph (e.g. definition, function, relationship with other components, etc.) as input data, and a map with the sentence or paragraph data as the result data. It can be a trained or unsupervised model.
  • the text generation model is provided to the document creation server 20, which is provided to communicate with the document creation device 10, and the text generation unit 110 is sent to the document creation server 20 through the data communication unit 113.
  • the text extracted by (108) is transmitted to the document creation server (20) along with the keyword information managed by the keyword management unit (104), and the text creation unit (110) is sent to the document creation server (20) through the data communication unit (113). You can receive text generated by the text generation model from 20).
  • the keywords extracted by the keyword extractor 107 are displayed to the user, and a keyword selection screen in which one or more keywords are selected by the user is provided to the user through the input/output interface 19, and the text extractor 108 selects the keywords.
  • the text of the sentence or paragraph containing the keyword selected by the user can be extracted through the screen and provided to the text generator 110.
  • the document created by the document creation device 10 includes a first part and a second part different from the first part, and the keyword extracting unit 107 and the text extracting unit 108 contain the first part. and a keyword and text are extracted from one of the first part and the second part, and the text generator 110 may generate text that matches the attributes of the other one of the first part and the second part.
  • the text generation unit 110 generates a plurality of texts
  • the screen composition unit 101 displays the plurality of texts generated by the text generation unit 110 to the user
  • the text selection function allows the user to select the desired text.
  • the screen is provided to the user through the input/output interface 19, and the text input element management unit 106 can output the text selected by the user through the text selection screen to the text input element.
  • first part and the second part may be prepared according to different rules by law.
  • the document may be a patent specification
  • the first part may be one of the description and claims
  • the second part may be the other one of the description and claims.
  • a method of creating a document using a document writing device (10), comprising: providing a screen for creating a document configured by the screen configuration unit (101) to a user through an input/output interface (19) (S1); A step (S2) of receiving a command for registering, deleting, or modifying keyword information that can be included as text in the content of the document from the user through the keyword management unit 104, and storing the keyword information in the database 140 according to the command; A step (S3) in which the text input element management unit 106 receives text including a keyword as the content of a document from the user through a text input element; A step (S5) in which the text extraction unit 108 extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit 104 from the text input into the text input element (S5); and a step (S6) in which the text generation unit 110 provides the texts extracted by the text extraction unit 108 as input values to a text generation model learned based on natural language processing to generate text containing keywords.
  • a keyword selection screen is provided to the user by the screen configuration unit 101, and a step S4 may be performed in which the user selects a desired keyword.
  • the text extraction unit 108 may extract text using the keyword selected by the user.
  • the text generator 110 can automatically generate a plurality of texts, present them to the user, and then select the desired text from the user and output it to the text input element (S7).
  • Embodiments according to the present invention described above may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program may be recorded on a computer-readable medium.
  • Computer-readable media may include program instructions, data files, data structures, etc., singly or in combination.
  • Program instructions recorded on the medium may be specially designed and configured for the above-described embodiments, or may be known and available to those skilled in the art of computer software.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
  • Examples of program instructions include machine code such as that created by a compiler, high-level language code that can be executed by a computer using an interpreter, etc.
  • the above-described hardware device may be configured to operate with one or more software modules to perform the operations of the embodiments, and vice versa.
  • the software of embodiments of the present invention may include a computer program, code, instructions, or a combination of one or more of these, and may configure a processing device to operate as desired or independently. Alternatively, processing units may be commanded collectively.
  • Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave.
  • Software may be distributed over networked computer systems and stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer-readable recording media.
  • embodiments of the present invention may be implemented with hardware components, software components, and/or a combination of hardware components and software components.
  • devices and components described in embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), etc. , may be implemented using one or more general-purpose or special-purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions.
  • ALU arithmetic logic unit
  • FPGA field programmable gate array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Tourism & Hospitality (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • Technology Law (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)

Abstract

The present invention relates to a document creation device, method, computer program, computer-readable recording medium, server and system, which have a function of automatically generating text by using a natural language generation model. According to one embodiment, provided is the document creation device comprising: a screen configuration unit, which configures a document creation screen for creating a document, so as to provide same to a user through an input/output interface; a keyword management unit for receiving, from the user, through the input/output interface, a keyword that can be included as text in document contents and managing same; a text input component management unit for managing a text input component, which is provided on the document creation screen so as to receive the document contents from the user; a text extraction unit for extracting, from text that is input into the text input component by means of the text input component management unit, text of a sentence or paragraph including the keyword managed by means of the keyword management unit; and a text generation unit, which provides, as input values, the text extracted by means of the text extraction unit to a text generation model trained on the basis of natural language processing, so as to generate text including the keyword.

Description

자연어 생성 모델을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템 Document writing device, method, computer program, computer-readable recording medium, server, and system having the function of automatically generating text using a natural language generation model
본 발명은 자연어 생성 모델을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템에 관한 것이다.The present invention relates to a document writing device, method, computer program, computer-readable recording medium, server, and system having the function of automatically generating text using a natural language generation model.
최근 자연어 처리(Natual Language Process, NLP) 기술이 각광을 받으면서, 여러가지 다양한 기술들이 제안이 되고 있다.Recently, Natural Language Process (NLP) technology has been in the spotlight, and various technologies have been proposed.
예를 들어, 텍스트로 이루어진 콘텐츠를 작성할 때 자연어 생성(Natural Language Generation, NLG) 기술을 이용하는 기술이 제안된 바 있다.For example, a technology that uses Natural Language Generation (NLG) technology has been proposed when creating text content.
또한, 텍스트로 이루어진 콘텐츠를 자연어 처리를 이용하여 요약하는 기술도 제안된 바 있다.Additionally, technology for summarizing text content using natural language processing has also been proposed.
그런데 이러한 기술들은 일반적으로 일상 생활에서 사용하는 표현을 기초로 학습된 결과를 바탕으로 하는 것으로서, 특정 목적을 갖거나 전문적인 내용이 담겨야 하는 텍스트 콘텐츠에 대해 적용하기는 어렵다는 문제가 있다.However, these technologies are generally based on results learned based on expressions used in daily life, and there is a problem in that it is difficult to apply them to text content that has a specific purpose or must contain specialized content.
예를 들어, 특허법에서 정한 기재요건에 따라 작성되어야 하는 문서(예: 특허 명세서, 의견서, 보정서 등)는 신규성(novelty) 및 진보성(inventive step)을 만족할 수 있도록 기술 내용을 설명해야 하는 문서로서, 위와 같은 일반적인 자연어 처리 기술로는 유의미한 성과를 내는 것이 어렵다.For example, documents that must be prepared in accordance with the description requirements set forth in the Patent Act (e.g., patent specification, opinion, amendment, etc.) are documents that must explain the technical content to satisfy novelty and inventive step. It is difficult to achieve meaningful results with the above general natural language processing technologies.
또 다른 예로서, 논문이나 저널, 소장/준비서면 등의 법률문서 등, 전문성이 요구되는 요구되는 텍스트 컨텐츠의 처리에도 일반적인 자연어 처리 기술은 사용하기 어렵다.As another example, it is difficult to use general natural language processing technology to process text content that requires expertise, such as legal documents such as papers, journals, and filings/preparations.
본 발명의 일 실시예에 따른 자연어 생성 모델을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템은 상기와 같은 문제를 해결하기 위해 제안된 것으로서, 특수 목적이나 전문성이 요구되는 텍스트 콘텐츠를 높은 품질로 자동 생성하는 것을 목적으로 한다.A document writing device, method, computer program, computer-readable recording medium, server, and system having the function of automatically generating text using a natural language generation model according to an embodiment of the present invention are provided to solve the above problems. It is proposed for this purpose and aims to automatically generate high quality text content that requires special purposes or expertise.
일 실시예에 따르면, 문서를 작성하기 위한 문서 작성 화면을 구성하여 입출력 인터페이스를 통해 사용자에게 제공하는 화면 구성부; 문서의 내용에 텍스트로 포함될 수 있는 키워드를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 키워드 관리부; 상기 문서 작성 화면에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소를 관리하는 텍스트 입력요소 관리부; 상기 텍스트 입력요소 관리부를 통해 상기 텍스트 입력요소에 입력된 텍스트 중 상기 키워드 관리부에 의해 관리되는 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하는 텍스트 추출부; 및 상기 텍스트 추출부에 의해 추출된 텍스트들을 입력 값으로서 자연어 처리를 기반으로 학습된 텍스트 생성 모델에 제공하여 상기 키워드가 포함되어 있는 텍스트를 생성하는 텍스트 생성부를 포함하는 문서 작성 장치가 제공될 수 있다.According to one embodiment, a screen configuration unit that configures a document creation screen for creating a document and provides it to the user through an input/output interface; a keyword management unit that receives and manages keywords that can be included as text in the content of the document from the user through the input/output interface; a text input element management unit that manages text input elements provided on the document creation screen to receive document content from the user; a text extraction unit that extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit from the text input into the text input element through the text input element management unit; and a text generation unit that generates text containing the keyword by providing the texts extracted by the text extraction unit as input values to a text generation model learned based on natural language processing. A document writing device may be provided. .
본 발명의 일 실시예에 따른 자연어 생성 모델을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템은 특수 목적이나 전문성이 요구되는 텍스트 콘텐츠를 높은 품질로 자동 생성할 수 있다는 효과가 있다.Document writing devices, methods, computer programs, computer-readable recording media, servers, and systems that have the function of automatically generating text using a natural language generation model according to an embodiment of the present invention are for special purposes or require expertise. It has the effect of automatically generating text content with high quality.
도 1은 본 발명의 일 실시예에 따른 문서 작성 문서 작성 시스템을 보여주는 도면이다.1 is a diagram showing a document creation system according to an embodiment of the present invention.
도 2는 도 1의 문서 작성 장치와 문서 작성 서버의 구성을 개략적으로 보여주는 도면이다.FIG. 2 is a diagram schematically showing the configuration of the document creation device and the document creation server of FIG. 1.
도 3은 도 2의 문서 작성 장치와 문서 작성 서버의 프로세서의 구성의 일 예를 보여주는 도면이다.FIG. 3 is a diagram showing an example of the configuration of a processor of the document creation device and the document creation server of FIG. 2.
도 4는 도 1의 문서 작성 장치에 의해 문서가 작성되는 과정을 설명하는 순서도이다.FIG. 4 is a flowchart explaining the process of creating a document by the document writing device of FIG. 1.
도 1은 본 발명의 일 실시예에 따른 문서 작성 시스템(1)을 보여주는 도면이다.1 is a diagram showing a document creation system 1 according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 문서 작성 시스템(1)은 문서 작성 장치(10)와 문서 작성 서버(20)를 포함할 수 있다. 문서 작성 장치(10)와 문서 작성 서버(20)는 네트워크(30)를 통해 서로 데이터를 송수신할 수 있게 연결될 수 있다.Referring to FIG. 1, a document writing system 1 according to an embodiment of the present invention may include a document writing device 10 and a document writing server 20. The document writing device 10 and the document writing server 20 may be connected to transmit and receive data with each other through the network 30.
본 실시예에서, 문서 작성 시스템(1)은 사용자가 문서를 작성할 수 있도록 제공되는 것으로서, 사용자는 문서 작성 시스템(1)을 이용하여 문서를 빠르고 정확하게 작성할 수 있다.In this embodiment, the document creation system 1 is provided so that the user can create a document, and the user can quickly and accurately create a document using the document creation system 1.
본 실시예에서, 문서 작성 시스템(1)을 통해 작성하는 문서로 특허 문서를 예로 들어 설명한다. 그러나 본 발명의 사상은 이에 한정되지 않으며, 문서 종류에 관계없이 적용될 수 있다.In this embodiment, a patent document is used as an example to be described as a document created through the document creation system 1. However, the idea of the present invention is not limited to this and can be applied regardless of the type of document.
이하의 설명에서, 특허 문서는 특허법에서 정한 기재요건에 따라 작성되어야 하는 문서로서, 특허 명세서, 의견서, 보정서 등을 포함하는 것으로 이해될 수 있다.In the following description, a patent document can be understood as a document that must be prepared in accordance with the description requirements set forth in the Patent Act, and includes a patent specification, written opinion, amendment, etc.
문서 작성 시스템(1)은 문서 작성을 위한 다양한 기능을 문서 작성 장치(10)를 통해 사용자에게 제공할 수 있으며, 이와 같은 기능은 문서 작성 장치(10) 및 문서 작성 서버(20) 중 어느 하나, 또는 문서 작성 장치(10)와 문서 작성 서버(20)의 상호 작용에 의해 구현될 수 있다.The document creation system 1 can provide various functions for document creation to the user through the document creation device 10, and such functions can be provided to the user through any one of the document creation device 10 and the document creation server 20, Alternatively, it may be implemented by interaction between the document creation device 10 and the document creation server 20.
예를 들어, 문서 작성 시스템(1)은 사용자가 제1 언어 또는 제2 언어로 특허청에서 지정한 양식에 맞는 문서를 작성할 수 있는 서비스를 제공하거나, 제2 언어 또는 제1 언어로 작성된 문서를 제1 언어 또는 제2 언어로 번역할 수 있는 서비스를 제공하거나, 두 서비스를 모두 제공할 수 있다. 구체적인 예로서, 문서 작성 시스템(1)은 제1 언어로 특허 명세서를 작성하는 서비스, 제2 언어로 특허 명세서를 작성하는 서비스, 제1 언어로 작성된 특허 명세서를 제2 언어로 번역한 번역 명세서를 작성하는 서비스, 제2 언어로 작성된 특허 명세서를 제1 언어로 번역한 번역 명세서를 작성하는 서비스 중 하나 이상의 서비스를 사용자에게 제공할 수 있다.For example, the document creation system 1 provides a service that allows a user to create a document in a first language or a second language in a format specified by the Patent Office, or a document written in the second language or first language is provided to the first language. You can provide translation services in one language, a second language, or both. As a specific example, the document preparation system 1 provides a service for writing a patent specification in a first language, a service for writing a patent specification in a second language, and a translation specification for translating a patent specification written in the first language into a second language. One or more services among a writing service and a service for writing a translation specification that translates a patent specification written in a second language into a first language may be provided to the user.
이하의 설명에서 "문서 작성 서비스"는 문서 작성 시스템(1), 문서 작성 장치(10) 및 문서 작성 서버(20) 중 하나 이상에 의해 제공되는 것으로 이해될 수 있다. 예를 들어, "문서 작성 서비스"는 사용자가 문서 작성을 수행할 수 있도록 문서 작성 장치(10)의 입출력 인터페이스(도 2, 19)를 통해 사용자에게 제공되는 기능 또는 기능들의 집합으로 이해될 수 있다.In the following description, “document preparation service” may be understood as being provided by one or more of the document preparation system 1, the document preparation device 10, and the document preparation server 20. For example, “document writing service” can be understood as a function or set of functions provided to the user through the input/output interface (FIGS. 2, 19) of the document writing device 10 so that the user can create a document. .
또한, 이하의 설명에서 "케이스"는 사용자가 하나의 문서를 작성하기 위해 생성하는 객체의 단위로서 이해될 수 있다. "케이스 정보"는 문서와 관련된 기본 정보 및 해당 문서의 작성 과정에서 입력되는 정보를 포함하는 것으로 이해될 수 있다. 예를 들어, 사용자는 문서 작성 시스템(1)을 통해 특허 명세서 작성을 위한 하나의 케이스를 생성하고, 해당 케이스의 관리번호, 의뢰인, 마감일 등과 같은 기본적인 정보 및 특허 명세서의 내용으로서 입력되어야 하는 데이터를 입력할 수 있다.Additionally, in the following description, “case” can be understood as a unit of object that a user creates to create one document. “Case information” can be understood to include basic information related to a document and information entered during the creation process of the document. For example, the user creates a case for writing a patent specification through the document creation system (1) and enters basic information such as the case's management number, client, deadline, etc. and data that must be entered as the contents of the patent specification. You can enter it.
한편, 문서 작성 시스템(1)은 작성된 문서를 문서의 작성을 의뢰한 고객이 소정의 프로그램을 이용하여 읽을 수 있거나 특허청에 직접 제출될 수 있는 파일로 사용자에게 제공할 수도 있다. 예를 들어, 문서 작성 시스템(1)은 사용자가 작성된 문서를 Microsoft의 "Word" 프로그램으로 읽을 수 있는 doc 또는 docx 확장자의 파일, 특허청에 제출할 수 있는 특정 포맷의 파일(예를 들어 한국의 "특허청 전자문서 작성 S/W"에서 읽을 수 있는 xml 기반의 hlt 또는 hlz 확장자의 파일), PDF 파일, html 파일 등으로 다운로드 할 수 있는 기능을 제공할 수 있다.Meanwhile, the document creation system 1 may provide the user with the created document as a file that can be read by the customer who requested the document creation using a predetermined program or submitted directly to the Korean Intellectual Property Office. For example, the document creation system (1) may be a file with the doc or docx extension that allows the user to read the created document with Microsoft's "Word" program, or a file in a specific format that can be submitted to the Korean Intellectual Property Office (e.g., the Korean Intellectual Property Office). It can provide the ability to download as an xml-based hlt or hlz extension file that can be read by electronic document writing software, PDF file, html file, etc.
본 실시예에서, 문서 작성 시스템(1)은 특허 명세서와 특허 번역문을 작성할 수 있는 서비스를 제공하는 것을 예로 들어 설명한다. 설명의 편의를 위해, 이하의 설명에서 특허 명세서를 작성하는 서비스를 제1 서비스, 특허 번역문을 작성할 수 있는 서비스를 제2 서비스라고 한다. 즉, 본 실시예에 따른 문서 작성 시스템(1)은 제1 서비스와 제2 서비스를 모두 제공할 수 있다. 그러나 본 발명의 사상은 이에 한정되지 않으며, 문서 작성 시스템(1)은 제1 서비스만을 제공하거나, 제2 서비스만을 제공할 수도 있다. 또한, 문서 작성 시스템(1)은 특허 명세서나 특허 번역문 외의 다른 문서, 예를 들면 의견서, 보정서를 작성하는 서비스를 제공할 수도 있다. 또 다른 예로서, 문서 작성 시스템(1)은 특허청에서 발행한 문서(예를 들어, 의견제출통지서, 거절결정서 등)를 번역하거나, 이에 대한 검토 의견을 작성하거나 검토 의견서를 번역하는 서비스를 제공할 수도 있다.In this embodiment, the document creation system 1 provides an example of providing a service for creating patent specifications and patent translations. For convenience of explanation, in the following description, the service for creating a patent specification is referred to as a first service, and the service for creating a patent translation is referred to as a second service. That is, the document creation system 1 according to this embodiment can provide both the first service and the second service. However, the spirit of the present invention is not limited to this, and the document creation system 1 may provide only the first service or only the second service. Additionally, the document preparation system 1 may provide a service for creating documents other than the patent specification or patent translation, for example, an opinion or a correction. As another example, the document preparation system (1) may provide a service that translates documents issued by the Korean Intellectual Property Office (e.g., opinion submission notice, rejection decision, etc.), writes review opinions thereon, or translates review opinions. It may be possible.
또한, 문서 작성 시스템(1), 문서 작성 장치(10) 및 문서 작성 서버(20)는 제공하는 서비스에 따라 이하에서 설명하는 구성요소들 중 필요한 구성요소만을 선택적으로 포함할 수 있다.Additionally, the document writing system 1, the document writing device 10, and the document writing server 20 may selectively include only necessary components among the components described below depending on the service provided.
문서 작성 장치(10)는 사용자가 문서의 내용을 입력할 수 있도록 제공되는 장치로서, 컴퓨팅 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 예를 들어, 문서 작성 장치(10)는 컴퓨터, 노트북, 태블릿 PC, 스마트폰, 휴대폰, 웨어러블 기기 등일 수 있다. 본 발명의 사상은 이러한 예에 한정되지 않으며, 문서 작성 장치(10)는 사용자가 문서의 작성에 필요한 정보를 입력할 수 있고, 이를 사용자에게 표시할 수 있는 기능을 갖는 임의의 단말일 수 있다. 이하에서, 사용자를 주체로 하여 설명하는 내용은 문서 작성 장치(10)를 주체로 하여 설명하는 내용으로 이해될 수 있다.The document writing device 10 is a device provided so that a user can input the contents of a document, and may be a stationary terminal implemented as a computing device or a mobile terminal. For example, the document writing device 10 may be a computer, laptop, tablet PC, smartphone, mobile phone, wearable device, etc. The spirit of the present invention is not limited to this example, and the document creation device 10 may be any terminal that has a function that allows a user to input information necessary for creating a document and displays it to the user. Hereinafter, content explained using the user as the subject may be understood as content explained using the document writing device 10 as the subject.
문서 작성 서버(20)는 문서 작성 장치(10)와 네트워크(30)를 통해 통신하여 사용자가 문서를 작성할 수 있도록 하는 것으로서, 명령, 코드, 파일, 데이터, 콘텐츠, 서비스 등을 문서 작성 장치(10)로부터 제공받거나 문서 작성 장치(10)에게 제공하는 컴퓨팅 장치일 수 있다. 문서 작성 서버(20)는 가상 서버와 물리 서버 중 어느 하나 또는 이들의 조합으로 구현될 수 있으며, 서버의 종류는 본 발명의 권리범위를 제한하지 않는다. 일 예로, 문서 작성 서버(20)는 가상 서버 호스트(Virtual Private Server)로 구현된 것일 수 있다.The document creation server 20 communicates with the document creation device 10 through the network 30 to enable users to create documents, and provides commands, codes, files, data, content, services, etc. to the document creation device 10. ) or may be a computing device provided to the document writing device 10. The document creation server 20 may be implemented as either a virtual server or a physical server or a combination thereof, and the type of server does not limit the scope of the present invention. As an example, the document creation server 20 may be implemented as a virtual server host (Virtual Private Server).
문서 작성 서버(20)는 문서 작성 장치(10)로부터 전달되는 데이터를 저장, 처리, 가공할 수 있으며, 그 결과를 문서 작성 장치(10)에게 전달할 수 있다. 또한, 문서 작성 서버(20)는 문서 작성 장치(10)로부터 전달되는 데이터를 기초로 소정의 동작을 수행한 후 그 결과를 문서 작성 장치(10)에게 전달할 수도 있다. 또한, 문서 작성 서버(20)는 문서 작성 장치(10)에서 요청하는 데이터, 콘텐츠, 서비스 등을 제공할 수도 있다. 또한, 문서 작성 서버(20)는 문서 작성 장치(10)가 요청하는 소정 기능을 수행하거나, 문서 작성 장치(10)가 소정 기능을 수행하도록 명령을 전달하는 등의 역할을 수행할 수도 있다. 또한, 문서 작성 서버(20)는 문서 작성 장치(10)의 요청에 따라 제3 자가 제공하는 다른 서버와 데이터 통신한 후, 그 결과를 문서 작성 장치(10)에 전달할 수도 있다.The document creation server 20 can store, process, and process data transmitted from the document creation device 10, and deliver the results to the document creation device 10. Additionally, the document creation server 20 may perform a predetermined operation based on data transmitted from the document creation device 10 and then transmit the result to the document creation device 10. Additionally, the document creation server 20 may provide data, content, services, etc. requested by the document creation device 10. Additionally, the document preparation server 20 may perform a role such as performing a predetermined function requested by the document preparation device 10 or transmitting a command to enable the document preparation device 10 to perform a predetermined function. Additionally, the document creation server 20 may communicate data with another server provided by a third party at the request of the document creation device 10 and then transmit the results to the document creation device 10.
이러한 문서 작성 장치(10)와 문서 작성 서버(20)는 무선 또는 유선 통신 방식을 이용하여 네트워크(30)를 통해 통신할 수 있다. 또한, 문서 작성 장치(10)는 네트워크(30)를 통해 다른 문서 작성 장치(10) 또는 다른 문서 작성 서버(20)와도 통신 가능하게 제공될 수 있다. 또한, 문서 작성 서버(20)는 네트워크(30)를 통해 다른 문서 작성 장치(10) 또는 다른 문서 작성 서버(20)와 통신 가능하게 제공될 수 있다. 본 실시예에서 네트워크(30)는 문서 작성 장치(10)와 문서 작성 서버(20)가 데이터 송수신 가능하게 연결하는 역할을 수행하는 것으로서, 통신 방식이나 네트워크(30)의 종류는 제한되지 않는다. 예를 들어, 네트워크(30)는 문서 작성 장치(10)가 문서 작성 서버(20)에 접속한 후 데이터를 송수신할 수 있도록 접속 경로를 제공할 수 있다.The document creation device 10 and the document creation server 20 may communicate through the network 30 using wireless or wired communication methods. Additionally, the document writing device 10 may be provided to communicate with another document writing device 10 or another document writing server 20 through the network 30 . Additionally, the document creation server 20 may be provided to communicate with another document creation device 10 or another document creation server 20 through the network 30 . In this embodiment, the network 30 serves to connect the document creation device 10 and the document creation server 20 to enable data transmission and reception, and the communication method or type of network 30 is not limited. For example, the network 30 may provide a connection path so that the document creation device 10 can connect to the document creation server 20 and then transmit and receive data.
한편, 문서 작성 장치(10)는 사용자가 문서를 작성할 수 있도록 제공되는 애플리케이션(이하 "문서 작성 애플리케이션"이라 한다)을 포함하거나, 문서 작성 애플리케이션을 구동할 수 있다. 즉, 문서 작성 장치(10)는 문서 작성 애플리케이션을 통해 사용자에게 문서 작성 서비스를 제공할 수 있다. 문서 작성 애플리케이션은 문서 작성 장치(10)에 설치되어 있는 운영체제 또는 운영체제의 일 기능 또는 운영체제에 의해 구동 가능한 애플리케이션 또는 운영체제에 의해 구동 가능한 애플리케이션의 일 기능으로서 제공될 수 있다.Meanwhile, the document creation device 10 may include an application (hereinafter referred to as “document creation application”) provided to enable the user to create a document, or may run the document creation application. That is, the document writing device 10 can provide a document writing service to the user through a document writing application. The document creation application may be provided as an operating system installed in the document creation device 10, a function of an operating system, an application runnable by the operating system, or a function of an application runnable by the operating system.
예를 들어, 문서 작성 애플리케이션은 컴퓨터로 판독 가능한 기록매체로부터 설치되거나, 문서 작성 서버(20)로부터 다운로드 받아 설치되는 것일 수 있다. 이 경우, 문서 작성 서버(20)는 문서 작성 애플리케이션의 설치를 위한 파일이나 프로그램 소스를 저장하고 있다가, 문서 작성 장치(10)로부터 요청이 있는 경우 문서 작성 장치(10)에게 제공할 수 있다. 또는, 문서 작성 애플리케이션은 독립적으로 설치되는 것이 아니라 문서 작성 장치(10)에 설치 가능한 애플리케이션의 하나의 동작 모드로서 구현되는 것일 수도 있다.For example, the document creation application may be installed from a computer-readable recording medium, or may be downloaded and installed from the document creation server 20. In this case, the document creation server 20 stores files or program sources for installing the document creation application and may provide them to the document creation device 10 when there is a request from the document creation device 10. Alternatively, the document creation application may not be installed independently but may be implemented as an operation mode of an application that can be installed on the document creation device 10.
예를 들어, 문서 작성 애플리케이션은 웹 브라우저(Web Browser) 또는 HTML을 기반으로 구현된 웹 페이지를 표시할 수 있는 임의의 애플리케이션이고, 문서 작성 서비스를 제공하는 화면들을 사용자에게 출력할 수 있다. 일 예로, 문서 작성 애플리케이션은 웹 애플리케이션(Web Application)일 수 있다. 이 경우, 문서 작성 서버(20)는 문서 작성 애플리케이션으로 출력할 수 있는 형태의 정적 웹 페이지 및/또는 동적으로 생성된 웹 페이지를 문서 작성 장치(10)로부터의 요청에 따라 문서 작성 장치(10)에게 제공할 수 있다. 문서 작성 장치(10)에 의해 출력되는 웹 페이지는 문서 작성 서비스를 제공하기 위한 스크립트를 포함할 수 있다.For example, a document writing application is a web browser or any application that can display a web page implemented based on HTML, and can output screens that provide a document writing service to the user. As an example, the document creation application may be a web application. In this case, the document creation server 20 provides a static web page and/or a dynamically generated web page in a format that can be output by a document creation application to the document creation device 10 according to a request from the document creation device 10. can be provided to. A web page output by the document writing device 10 may include a script for providing a document writing service.
또 다른 예로서, 문서 작성 애플리케이션은 워드 프로세서일 수 있고, 문서 작성 기능이 워드 프로세서에 기본적으로 탑재되거나 add-in 프로그램 형태로 제공될 수 있다. 후자의 경우, 문서 작성 서버(20)는 문서 작성 장치(10)에 설치 가능한 add-in 프로그램을 저장하고 있다가, 문서 작성 장치(10)로부터 요청이 있는 경우 문서 작성 장치(10)에게 제공할 수 있다.As another example, the document writing application may be a word processor, and the document writing function may be built into the word processor or provided in the form of an add-in program. In the latter case, the document creation server 20 stores an add-in program that can be installed on the document creation device 10 and provides it to the document creation device 10 when there is a request from the document creation device 10. You can.
이하에서 설명되는 문서 작성 장치(10)의 기능 또는 문서 작성과 관련된 기능들은 특별한 설명이 없는 경우에도 문서 작성 애플리케이션에 의해 구현되는 것으로 이해될 수 있다.The functions of the document creation device 10 or functions related to document creation described below may be understood as being implemented by a document creation application even if there is no special explanation.
본 실시예에서, 문서 작성 장치(10)는 유무선 통신 환경에서 웹 서비스를 이용할 수 있는 통신 단말이고, 문서 작성 서버(20)는 유무선 통신 환경에서 문서 작성 장치(10)가 특정 URL로 접속할 수 있도록 하는 웹 서버 프로그램이 실행되는 서버인 것을 예로 들어 설명한다. 그리고, 본 실시예에서 문서 작성 애플리케이션은 웹 브라우저 등 웹 브라우징이 가능한 애플리케이션을 통해 실행될 수 있는 웹 애플리케이션인 것을 예로 들어 설명한다. 구체적으로, 사용자는 문서 작성 장치(10)에 설치된 웹 브라우저를 이용하여 문서 작성 서버(20)에 할당된 특정 URL로 접속할 수 있으며, 문서 작성 장치(10)는 문서 작성 서버(20)에 설치된 웹 서버에 의해 제공되는 문서 작성을 위한 웹 페이지를 로딩하여 문서 작성 애플리케이션으로서 사용자에게 제공할 수 있다. 다시 말하면, 웹 브라우저가 문서 작성 애플리케이션으로 기능할 수 있다. 따라서, 본 실시예에서 문서 작성 애플리케이션은 문서 작성 서버(20)에서 제공하는 특정 웹 페이지를 로딩한 웹 브라우저로 이해될 수 있다.In this embodiment, the document creation device 10 is a communication terminal capable of using a web service in a wired or wireless communication environment, and the document creation server 20 allows the document creation device 10 to access a specific URL in a wired or wireless communication environment. This will be explained using an example of a server running a web server program. Also, in this embodiment, the document creation application is described as an example of a web application that can be executed through an application capable of web browsing, such as a web browser. Specifically, the user can access a specific URL assigned to the document creation server 20 using a web browser installed on the document creation device 10, and the document creation device 10 can access the web browser installed on the document creation server 20. The web page for document creation provided by the server can be loaded and provided to the user as a document creation application. In other words, a web browser can function as a document creation application. Therefore, in this embodiment, the document creation application can be understood as a web browser that loads a specific web page provided by the document creation server 20.
위와 같은 예는 본 발명의 일 실시예일 뿐이고, 상술한 것처럼 문서 작성 장치(10), 문서 작성 서버(20), 문서 작성 애플리케이션은 다양하게 구성될 수 있는 바, 본 발명의 권리범위는 위의 실시예에 의해 제한되지 않는다. 예를 들어, 문서 작성 장치(10)의 문서 작성 애플리케이션은 웹 브라우저를 이용하되 문서 작성 장치(10)에 데이터를 저장하여 오프라인 구동이 가능하게 구현될 수도 있다. 또한, 문서 작성 서버(20)는 문서 작성 애플리케이션으로서 기능할 수 있는 웹 페이지를 제공하되, 웹 페이지에는 다양한 형태의 기기에서 접속하면 그에 대응되는 형태의 화면을 구현할 수 있는 반응형 웹 페이지나 적응 형 웹 페이지가 포함될 수 있다. 또한, 문서 작성 서버(20)는 모바일 네이티브 애플리케이션 또는 하이브리드 애플리케이션 형태로 문서 작성 애플리케이션을 제공할 수 있다. 또한, 문서 작성 장치(10)는 데스크톱 응용 소프트웨어로 제공되는 문서 작성 애플리케이션을 구동하도록 제공될 수도 있다. 실시예에 따라 문서 작성 장치(10)는 문서 작성 서버(20)와 통신하지 않고 독립적으로 구동될 수도 있다. 또한, 문서 작성 장치(10)는 단순히 화면을 표시하는 기능만 수행하고 데이터 저장이나 처리는 문서 작성 서버(20)에서 모두 이뤄질 수도 있다. 이처럼 문서 작성 장치(10), 문서 작성 서버(20), 문서 작성 애플리케이션은 본 발명의 특징적인 사상이 유지되는 범위 내에서는 다양하게 구성될 수 있다.The above example is only an embodiment of the present invention, and as described above, the document creation device 10, the document creation server 20, and the document creation application can be configured in various ways, and the scope of the present invention is limited to the above implementation. It is not limited by example. For example, the document writing application of the document writing device 10 may be implemented offline by using a web browser but storing data in the document writing device 10. In addition, the document creation server 20 provides a web page that can function as a document creation application, and the web page may be a responsive web page or adaptive web page that can implement a screen of a corresponding type when accessed from various types of devices. May include web pages. Additionally, the document creation server 20 may provide a document creation application in the form of a mobile native application or hybrid application. Additionally, the document writing device 10 may be provided to run a document writing application provided as desktop application software. Depending on the embodiment, the document writing device 10 may be driven independently without communicating with the document writing server 20. Additionally, the document creation device 10 may simply perform the function of displaying a screen, and all data storage or processing may be performed in the document creation server 20. In this way, the document creation device 10, the document creation server 20, and the document creation application can be configured in various ways within the scope of maintaining the characteristic spirit of the present invention.
 
도 2는 도 1의 문서 작성 장치와 문서 작성 서버의 구성을 개략적으로 보여주는 도면이다.FIG. 2 is a diagram schematically showing the configuration of the document creation device and the document creation server of FIG. 1.
도 2를 참조하면, 문서 작성 장치(10)와 문서 작성 서버(20)는 프로세서(100, 200), 메모리(14, 24), 통신 모듈(18, 28) 및 입출력 인터페이스(19, 29)를 포함할 수 있다.Referring to FIG. 2, the document creation device 10 and the document creation server 20 include processors 100 and 200, memories 14 and 24, communication modules 18 and 28, and input/ output interfaces 19 and 29. It can be included.
프로세서(100, 200)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(14, 24) 또는 통신 모듈(18, 28)로부터 프로세서(100, 200)로 제공될 수 있다. 그 외에 명령은 문서 작성 장치(10) 및 문서 작성 서버(20)를 구성하는 각각의 구성요소들 간의 통신 채널인 버스(bus)를 통해서도 프로세서(100, 200)로 제공될 수 있다.The processors 100 and 200 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processors 100 and 200 from memories 14 and 24 or communication modules 18 and 28. In addition, commands may be provided to the processors 100 and 200 through a bus, which is a communication channel between each component of the document creation device 10 and the document creation server 20.
프로세서(100, 200)는 문서 작성을 위해 필요한 데이터의 입출력, 데이터의 처리, 데이터의 관리, 네트워크(30)를 이용한 통신 등의 다양한 기능을 수행할 수 있으며, 이를 위한 프로세서(100, 200)의 구체적인 구성요소들은 도면을 참조하여 후술하겠다. 이러한 프로세서(100, 200)의 구성요소들은 메모리(14, 24)에 저장된 프로그램 코드로 구현되는 기능적 모듈일 수 있다.The processors 100 and 200 can perform various functions such as input and output of data required for document creation, data processing, data management, and communication using the network 30. Specific components will be described later with reference to the drawings. Components of these processors 100 and 200 may be functional modules implemented with program codes stored in the memories 14 and 24.
메모리(14, 24)는 컴퓨터에서 판독 가능한 기록매체로서 RAM(Random Access Memory)과 같은 소멸성 기록장치와, ROM(Read Only Memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 메모리(14, 24)에는 운영체제나 문서 작성 애플리케이션으로서 기능할 수 있는 적어도 하나의 프로그램 코드가 저장될 수 있다. 프로세서(100, 200)는 메모리(14, 24)에 저장된 프로그램 코드를 로딩하여 문서 작성 서비스가 구현되도록 할 수 있다. 이러한 프로그램 코드는 별도의 컴퓨터에서 판독 가능한 기록 매체(예를 들어 DVD, 메모리 카드 등)로부터 로딩되거나, 다른 장치로부터 통신 모듈(18, 28)을 통해 전달되어 메모리(14, 24)에 저장될 수 있다.The memories 14 and 24 are computer-readable recording media that include perishable recording devices such as RAM (Random Access Memory) and non-permanent mass storage devices such as ROM (Read Only Memory) and disk drives. It can be included. At least one program code that can function as an operating system or document creation application may be stored in the memories 14 and 24. The processors 100 and 200 may load program codes stored in the memories 14 and 24 to implement a document creation service. These program codes can be loaded from a recording medium (e.g. DVD, memory card, etc.) readable by a separate computer, or transmitted from another device through the communication modules 18 and 28 and stored in the memories 14 and 24. there is.
또한, 메모리(14, 24)에는 문서 작성 서비스 제공에 필요한 데이터를 저장할 수 있는 데이터베이스(140, 240)가 제공될 수 있다. 즉, 메모리(14, 24)는 데이터베이스(140, 240)를 포함하는 것으로 이해될 수 있다. 데이터베이스(140, 240)는 소프트웨어적으로 독립적으로 구축된 데이터베이스뿐만 아니라, 데이터를 저장할 수 있는 임의의 형태의 저장소일 수 있다. 예를 들어, 데이터베이스(140, 240)는 애플리케이션의 일부로 탑재되거나 특정 애플리케이션과 연동되는 데이터 저장소일 수도 있다. 구체적으로 문서 작성 장치(10)의 경우, 데이터베이스(160)는 웹 브라우저에서 제공하는 데이터베이스로서, 일 예로 html5 기능으로 제공되는 웹 스토리지(Web Storage), 웹 SQL 데이터베이스(Web SQL Database), 인덱스 DB(Indexed Database) 중 하나 또는 그 이상(이하, "웹 DB"라고 한다)을 사용할 수 있다. 또한, 문서 작성 장치(10)의 데이터베이스(140)는 웹 DB 이외의 추가의 데이터 저장소를 더 포함할 수도 있다. 또한, 데이터베이스(140, 240)는 독립된 파일 형태로 제공될 수도 있으며, 특정 애플리케이션 또는 특정 프로토콜을 통해서만 데이터 관리가 가능한 것일 수도 있다.Additionally, the memories 14 and 24 may be provided with databases 140 and 240 that can store data necessary for providing document preparation services. That is, the memories 14 and 24 may be understood to include the databases 140 and 240. The databases 140 and 240 may be not only databases independently constructed in terms of software, but also any type of storage capable of storing data. For example, the databases 140 and 240 may be installed as part of an application or may be data storage linked to a specific application. Specifically, in the case of the document writing device 10, the database 160 is a database provided by a web browser, for example, Web Storage, Web SQL Database, and Index DB provided with the HTML5 function. One or more of the Indexed Databases (hereinafter referred to as “Web DB”) can be used. Additionally, the database 140 of the document writing device 10 may further include additional data storage other than the web DB. Additionally, the databases 140 and 240 may be provided in the form of independent files, and data may be managed only through a specific application or specific protocol.
본 실시예에서는, 문서 작성 장치(10)의 데이터베이스(140)는 웹 DB를 포함하는 것을 예로 들어 설명하겠다. 이와 같은 웹 DB는 적게는 수 메가바이트(Mbyte), 많게는 수십 메가바이트를 저장할 수 있으므로, 문서 작성에 필요한 충분한 데이터를 저장할 수 있다. 이에 의해, 문서 작성 장치(10)는 문서에 포함되어야 하는 비밀 유지가 필요한 기술적 특징을 네트워크(30)를 통해 문서 작성 서버(20)로 전달하지 않고, 문서 작성 장치(10) 내에서 효과적으로 관리할 수 있다. 본 실시예에서 비밀 유지가 필요한 데이터는 문서의 특허 등록에 영향을 미칠 수 있는 데이터로 이해될 수 있으며, 예를 들어 공개되면 특허 명세서의 신규성, 진보성 판단에 영향을 미칠 수 있는 데이터로 이해될 수 있다.In this embodiment, the database 140 of the document writing device 10 will be described as an example that includes a web DB. Such a web DB can store as little as a few megabytes (Mbytes) or as many as tens of megabytes, so it can store enough data needed to create documents. As a result, the document creation device 10 can effectively manage technical features that need to be kept confidential to be included in the document within the document creation device 10 without transmitting them to the document creation server 20 through the network 30. You can. In this embodiment, data that needs to be kept confidential can be understood as data that can affect the patent registration of a document, and, for example, can be understood as data that, if disclosed, can affect the judgment of novelty and inventive step of a patent specification. there is.
또한, 문서 작성 애플리케이션은 네트워크(30)를 사용하지 않고 문서 작성 장치(10)에 데이터를 저장할 수 있으므로, 종래에 사용되던 Microsoft의 "WORD" 등의 워드 프로세서와 실질적으로 동일한 보안 성능을 사용자에게 제공할 수 있다. 또한, 문서 작성 장치(10)는 비밀 유지가 필요한 기술적 특징을 암호화하여 웹 DB에 저장할 수도 있으며, 이 경우 워드 프로세서보다도 더욱 뛰어난 보안 성능을 사용자에게 제공할 수 있다.In addition, the document creation application can store data in the document creation device 10 without using the network 30, providing users with substantially the same security performance as conventional word processors such as Microsoft's "WORD". can do. In addition, the document writing device 10 can encrypt technical features that require confidentiality and store them in a web DB, and in this case, it can provide users with more excellent security performance than a word processor.
데이터베이스(140, 240)는 문서 작성을 위해 필요한 데이터를 저장할 수 있는 다양한 구성을 구비할 수 있으며, 하나 또는 그 이상의 데이터베이스에 하나 또는 그 이상의 테이블 또는 테이블들의 조합으로 구현될 수 있다. 실시예에 따라 데이터베이스(140, 240)는 키(key) 데이터와 밸류(value) 데이터의 조합으로 데이터가 저장되는 형태로 구현될 수도 있다. 데이터베이스(140, 240)의 구체적인 구성요소들은 도면을 참조하여 후술하겠다.The databases 140 and 240 may have various configurations capable of storing data necessary for document creation, and may be implemented as one or more tables or a combination of tables in one or more databases. Depending on the embodiment, the databases 140 and 240 may be implemented in such a way that data is stored as a combination of key data and value data. Specific components of the databases 140 and 240 will be described later with reference to the drawings.
한편, 메모리(14, 24)는 물리적으로 복수 개가 제공될 수도 있고, 프로세서(100, 200)와 통합된 물리적 장치로 제공될 수도 있다, 또한, 메모리(14, 24)는 물리적 또는 논리적으로 독립된 장치로서 제공되고 프로세서(100, 200)가 장착되어 있는 장치에 연결됨으로써 전체적으로 하나의 장치(10, 20)를 구성할 수도 있다. 문서 작성 장치(10)와 문서 작성 서버(20)는 프로세서(100, 200)와 메모리(14, 24) 및 기타 다른 장치의 물리적 또는 논리적 구성에 제한되지 않는다.Meanwhile, a plurality of memories 14 and 24 may be physically provided, or may be provided as a physical device integrated with the processors 100 and 200. Additionally, the memories 14 and 24 may be physically or logically independent devices. It may be provided as a device and connected to a device equipped with a processor 100 or 200 to form a single device 10 or 20 as a whole. The document creation device 10 and the document creation server 20 are not limited to the physical or logical configuration of the processors 100 and 200, memories 14 and 24, and other devices.
통신 모듈(18, 28)은 네트워크(30)를 통해 문서 작성 장치(10)와 문서 작성 서버(20)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 장치 또는 다른 서버와 통신하기 위한 기능을 제공할 수 있다. 일 예로, 문서 작성 장치(10)를 통해 사용자로부터 입력 받은 데이터, 문서 작성 장치(10)의 프로세서(100)에 의해 생성된 요청, 문서 작성 서버(20)로부터 전달받은 요청에 대한 응답 등이 통신 모듈(18)을 통해 문서 작성 서버(20)로 전달될 수 있다. 또한, 문서 작성 서버(20)의 프로세서(200)에 의해 생성된 데이터, 문서 작성 서버(20)의 프로세서(200)에 의해 생성된 요청, 문서 작성 장치(10)로부터 전달받은 요청에 대한 응답 등이 통신 모듈(28)을 통해 문서 작성 장치(10)로 전달될 수 있다.The communication modules 18 and 28 may provide a function for the document creation device 10 and the document creation server 20 to communicate with each other through the network 30, and may provide a function for communication with other devices or other servers. can be provided. For example, data input from the user through the document creation device 10, a request generated by the processor 100 of the document creation device 10, a response to a request received from the document creation server 20, etc. are communicated. It can be transmitted to the document creation server 20 through the module 18. In addition, data generated by the processor 200 of the document creation server 20, a request generated by the processor 200 of the document creation server 20, a response to a request received from the document creation device 10, etc. This can be transmitted to the document writing device 10 through the communication module 28.
입출력 인터페이스(19, 29)는 사용자로부터 데이터를 입력 받거나, 프로세서(100, 200)나 메모리(14, 24), 통신 모듈(18, 28) 등으로부터 제공되는 데이터를 사용자에게 출력하는 구성요소로서, 물리적 측면의 하드웨어 인터페이스 및 논리적 측면의 소프트웨어 인터페이스를 모두 포함하는 것으로 이해될 수 있다. 예를 들어, 입출력 인터페이스(19, 29)는 입력 장치로서 키보드, 마우스, 마이크, 카메라 등의 장치를 포함하고, 출력 장치로서 스피커, 디스플레이 등과 같은 장치를 포함할 수 있다. 다른 예로서, 입출력 인터페이스(19, 29)는 터치스크린과 같이 입력과 출력이 하나로 통합된 장치, 터치 펜 등의 입력 도구를 포함할 수도 있다.The input/ output interfaces 19 and 29 are components that receive data from the user or output data provided from the processors 100 and 200, memories 14 and 24, and communication modules 18 and 28 to the user. It can be understood as including both a hardware interface on the physical side and a software interface on the logical side. For example, the input/ output interfaces 19 and 29 may include devices such as a keyboard, mouse, microphone, and camera as input devices, and may include devices such as speakers and displays as output devices. As another example, the input/ output interfaces 19 and 29 may include a device that integrates input and output into one, such as a touch screen, or an input tool such as a touch pen.
사용자는 입출력 인터페이스(19, 29), 특히 문서 작성 장치(10)의 입출력 인터페이스(19)를 통해 자신이 입력한 데이터를 확인하거나 프로세서(100) 또는 메모리(14)로부터 제공되는 데이터를 확인하면서, 문서 작성을 위한 데이터를 입력할 수 있다. 다시 말하면, 입출력 인터페이스(19, 29)는 사용자로부터 문서 작성을 위한 데이터를 입력 받거나, 사용자에게 문서 작성을 위한 데이터를 출력할 수 있다.The user checks data entered by the user through the input/ output interfaces 19 and 29, especially the input/output interface 19 of the document writing device 10, or checks data provided from the processor 100 or memory 14, You can enter data to create documents. In other words, the input/ output interfaces 19 and 29 can receive data for document creation from the user or output data for document creation to the user.
 
도 3은 도 2의 문서 작성 장치와 문서 작성 서버의 프로세서의 구성의 일 예를 보여주는 도면이다.FIG. 3 is a diagram showing an example of the configuration of a processor of the document creation device and the document creation server of FIG. 2.
도 3을 참조하면, 프로세서(100)는 화면 구성부(101), 데이터 관리부(102), , 케이스 관리부(103), , 키워드 관리부(104), , 자동완성 리스트 생성부(105), , 텍스트 입력요소 관리부(106) 중 하나 이상을 포함할 수 있다.키워드 추출부(107)텍스트 추출부(108)텍스트 생성부(110)데이터 통신부(113)Referring to FIG. 3, the processor 100 includes a screen configuration unit 101, a data management unit 102, a case management unit 103, a keyword management unit 104, an auto-complete list creation unit 105, and a text It may include one or more of the input element management unit 106. Keyword extraction unit 107, text extraction unit 108, text generation unit 110, and data communication unit 113.
화면 구성부(101)는 문서 작성 애플리케이션을 통해 사용자에게 보여지는 화면의 구조 및 콘텐츠를 구성할 수 있다. 화면 구성부(101)를 통해 구성된 화면은 입출력 인터페이스(19)를 통해 사용자에게 제공될 수 있다. 여기서, 화면의 구조는 웹 페이지를 복수 개의 영역으로 나누어 배치한 것으로 이해될 수 있고, 콘텐츠는 화면 전체 또는 각각의 영역에 표시될 텍스트, 이미지, 동영상 등의 멀티미디어 정보 및 웹 요소(web component)로 이해될 수 있다. 또한, 콘텐츠는 사용자에게 멀티미디어 정보를 제공할 수도 있고, 사용자로부터 데이터 또는 명령을 입력받을 수도 있고, 사용자가 화면에 대해 소정의 조작을 수행할 수 있는 UI를 포함할 수도 있다. 본 실시예에서, UI는 사용자가 문서 작성 애플리케이션을 통해 정보를 인식할 수 있고, 문서 작성 애플리케이션을 통해 데이터를 입력하거나 명령을 내릴 수 있도록 제공된 구성요소를 포함하는 것으로 이해될 수 있다. 본 실시예에서와 같이 문서 작성 애플리케이션이 웹 애플리케이션으로 제공되는 경우, UI는 웹 페이지에 포함될 수 있는 임의의 구성요소로 이해될 수 있으며, 예를 들어 GUI(Graphic User Interface), TUI(Text User Interface), WUI(Web User Interface) 등을 포함할 수 있다.The screen configuration unit 101 can configure the structure and content of the screen shown to the user through the document creation application. The screen configured through the screen configuration unit 101 may be provided to the user through the input/output interface 19. Here, the structure of the screen can be understood as dividing the web page into a plurality of areas, and the content consists of multimedia information such as text, images, videos, etc. and web elements (web components) to be displayed on the entire screen or in each area. It can be understood. Additionally, the content may provide multimedia information to the user, may receive data or commands from the user, and may include a UI that allows the user to perform certain operations on the screen. In this embodiment, the UI may be understood as including components provided so that a user can recognize information through a document creation application and input data or issue commands through the document creation application. When the document creation application is provided as a web application as in this embodiment, UI can be understood as any component that can be included in a web page, for example, GUI (Graphic User Interface), TUI (Text User Interface) ), WUI (Web User Interface), etc.
화면 구성부(101)는 웹 브라우저의 일 기능으로서 제공되는 것일 수 있다. 또한, 화면 구성부(101)는 문서 작성 서버(20)로부터 파일 및 데이터를 제공받거나, 메모리(14)에 저장된 파일 또는 데이터를 읽어와 화면을 구성할 수 있다. 화면 구성부(101)를 통해 구성된 화면은 정적 웹 페이지 또는 동적 웹 페이지일 수 있으며, 화면 구성부(101)는 웹 페이지 구현을 위해 필요한 파일 및 리소스를 참조할 수 있다.The screen configuration unit 101 may be provided as a function of a web browser. Additionally, the screen composition unit 101 may receive files and data from the document creation server 20 or read files or data stored in the memory 14 to configure the screen. The screen constructed through the screen composition unit 101 may be a static web page or a dynamic web page, and the screen composition unit 101 may refer to files and resources required to implement the web page.
화면 구성부(101)를 통해 보여지는 화면에 포함된 각각의 영역의 기능 및 역할은 미리 정의되어 있을 수 있다. 예를 들어, 화면 구성부(101)는 내비게이션 영역, 사이드 바 영역, 메인 영역 등이 배치되어 있는 미리 설정된 구조로 화면을 구성할 수 있다. 각각의 영역이 포함하는 콘텐츠는 미리 설정되어 있거나, 사용자로부터 입력받아 생성될 수 있다. 예를 들어, 내비게이션 영역과 사이드 바 영역에서 표시되는 콘텐츠는 미리 설정되어 있고, 메인 영역에는 미리 설정되어 있는 정보와 사용자가 입력하는 정보가 함께 표시될 수 있다.The function and role of each area included in the screen displayed through the screen configuration unit 101 may be defined in advance. For example, the screen composition unit 101 may configure the screen with a preset structure in which a navigation area, a sidebar area, a main area, etc. are arranged. The content included in each area can be preset or generated by input from the user. For example, content displayed in the navigation area and sidebar area may be preset, and in the main area, preset information and information input by the user may be displayed together.
또한, 화면 구성부(101)를 통해 구성된 웹 페이지에는 사용자가 화면의 구조를 조절하거나, 화면에 표시되는 콘텐츠의 종류, 내용, 위치, 형태 등을 설정하거나 변경할 수 있는 UI를 제공하는 스크립트가 포함될 수 있다. 즉, 화면 구성부(101)는 사용자가 웹 페이지의 구성을 변경할 수 있도록 제공될 수 있다. 예를 들어, 화면 구성부(101)를 통해 제공된 웹 페이지에는 복수 개의 영역이 포함되어 있고, 사용자가 화면에 표시될 영역을 선택할 수 있거나, 영역의 위치와 크기 중 하나 이상을 조절할 수 있는 기능을 가진 UI가 제공될 수 있다. 이러한 UI의 기능은 웹 페이지를 동적으로 제어할 수 있는 javascript 등의 프로그램 언어로 구현될 수 있다.In addition, the web page constructed through the screen configuration unit 101 includes a script that provides a UI that allows the user to adjust the structure of the screen or set or change the type, content, location, and form of content displayed on the screen. You can. That is, the screen configuration unit 101 may be provided so that the user can change the configuration of the web page. For example, a web page provided through the screen configuration unit 101 includes a plurality of areas, and has a function that allows the user to select an area to be displayed on the screen or to adjust one or more of the location and size of the area. A UI may be provided. These UI functions can be implemented in a program language such as javascript that can dynamically control web pages.
화면 구성부(101)는 기본적으로 사용자가 입출력 인터페이스(19)를 이용하여 문서의 내용을 입력할 수 있는 "문서 작성 화면"을 구성할 수 있다. 문서 작성 화면의 구조와 콘텐츠는 제공하는 서비스에 따라 서로 다르게 구성될 수 있다. 즉, 제1 서비스를 위한 문서 작성 화면과 제2 서비스를 위한 문서 작성 화면은 다르게 구성될 수 있다. 이와 관련된 구체적인 내용은 후술하겠다.The screen configuration unit 101 can basically configure a “document creation screen” where the user can input the contents of the document using the input/output interface 19. The structure and content of the document creation screen may be configured differently depending on the service provided. That is, the document creation screen for the first service and the document creation screen for the second service may be configured differently. Specific details related to this will be described later.
어느 경우이든 화면 구성부(101)에 의해 구성되는 문서 작성 화면은 사용자가 문서의 내용으로서 텍스트를 포함하는 정보를 입력할 수 있는 하나 이상의 텍스트 입력요소(text input component)를 포함할 수 있다. "텍스트 입력요소"는 사용자가 텍스트를 입력할 수 있도록 문서 작성 애플리케이션을 통해 사용자에게 제공되는 UI로 이해될 수 있고, 본 실시예에서와 같이 문서 작성 애플리케이션이 웹 애플리케이션으로 구현되는 경우 html의 폼 요소(form component) 또는 데이터 입력이 가능한 태그일 수 있다. 예를 들어, 텍스트 입력요소는 input, textarea, div 태그 등으로 구성될 수 있다.In any case, the document creation screen constructed by the screen configuration unit 101 may include one or more text input components through which the user can input information including text as the content of the document. “Text input element” can be understood as a UI provided to the user through a document creation application so that the user can input text, and when the document creation application is implemented as a web application as in this embodiment, an HTML form element It may be a (form component) or a tag that allows data input. For example, a text input element may consist of input, textarea, div tags, etc.
이때, 일부 텍스트 입력요소는 표, 그림 등 비-텍스트(non-text) 데이터를 입력받을 수 있도록 제공될 수 있다. 일 예로, 웹 페이지에는 표 그리기, 특수 문자 삽입하기, 수식 입력하기, 화학식 입력하기, 서열정보 입력하기, 그림 삽입하기 등의 기능을 수행할 수 있는 UI가 툴바(toolbar) 형태로 텍스트 입력 영역창(input window)의 일측에 제공되어 있는 텍스트 입력요소가 포함될 수 있다. 물론, 이와 같은 UI는 텍스트 입력요소와 분리되어 배치될 수도 있다.At this time, some text input elements may be provided to receive non-text data such as tables and pictures. For example, on a web page, a UI that can perform functions such as drawing tables, inserting special characters, entering formulas, entering chemical formulas, entering sequence information, and inserting pictures is a text input area window in the form of a toolbar. A text input element provided on one side of the (input window) may be included. Of course, such a UI may be placed separately from the text input element.
 
데이터 관리부(102)는 문서 작성에 필요한 데이터를 관리하는 것으로서, 데이터베이스(140)의 데이터 입출력 인터페이스로서 기능할 수 있다. 예를 들어, 데이터 관리부(102)는 데이터베이스(140)에 데이터를 저장하거나, 저장된 데이터를 읽어오거나, 저장된 데이터를 수정하거나, 저장된 데이터를 삭제하는 기능을 제공할 수 있다.The data management unit 102 manages data necessary for document creation and may function as a data input/output interface of the database 140. For example, the data management unit 102 may provide functions to store data in the database 140, read stored data, modify stored data, or delete stored data.
데이터 관리부(102)는 웹 브라우저의 일 기능으로서 제공되는 것일 수 있다. 또는, 데이터 관리부(102)는 웹 브라우저에서 로딩하거나 참조하여 사용할 수 있는 프로그램 소스, 파일, 라이브러리 등일 수 있다.The data management unit 102 may be provided as a function of a web browser. Alternatively, the data management unit 102 may be a program source, file, library, etc. that can be loaded or referenced in a web browser.
상술한 것처럼, 데이터베이스(140)는 웹 브라우저에서 제공하는 웹 DB로서, 웹 스토리지, 웹 SQL 데이터베이스, 및 인덱스 DB 중 하나 또는 그 이상을 포함할 수 있다. 이러한 웹 DB는 웹 브라우저의 종류 및 버전에 따라 지원 여부, 저장 용량 등의 특성이 상이하다. 데이터 관리부(102)는 사용자가 자신이 원하는 임의의 웹 브라우저를 사용하여 문서 작성 기능을 이용할 수 있도록 문서 작성 애플리케이션의 구동에 이용된 웹 브라우저의 정보를 체크한 후 해당 웹 브라우저가 정상적으로 지원하는 하나 이상의 웹 DB가 사용되도록 할 수 있다. 이를 위해 웹 브라우저 별로 사용하는 웹 DB의 종류가 미리 설정되어 웹 페이지 또는 스크립트에 저장되어 있을 수 있다. 예를 들어, 데이터 관리부(102)는 사용된 웹 브라우저가 인덱스 DB를 정상적으로 지원하지 않는 인터넷 익스플로어 11인 경우 데이터베이스(140)로서 웹 스토리지가 이용되도록 할 수 있고, 인덱스 DB를 정상적으로 지원하는 크롬인 경우 보다 많은 저장 용량을 지원하는 인덱스 DB가 데이터베이스(140)로서 이용되도록 할 수 있다.As described above, the database 140 is a web DB provided by a web browser and may include one or more of web storage, web SQL database, and index DB. These web DBs have different characteristics such as support and storage capacity depending on the type and version of the web browser. The data management unit 102 checks the information of the web browser used to run the document creation application so that the user can use the document creation function using any web browser of his or her choice, and then checks one or more of the web browsers normally supported by the web browser. Web DB can be used. For this purpose, the type of web DB used for each web browser may be preset and stored in a web page or script. For example, the data management unit 102 can enable web storage to be used as the database 140 when the web browser used is Internet Explorer 11, which does not normally support index DB, and Chrome, which normally supports index DB. In this case, an index DB supporting a larger storage capacity can be used as the database 140.
또한, 데이터베이스(140)가 웹 DB 이외의 다른 형태의 저장소를 더 포함하는 경우, 데이터 관리부(102)는 그 다른 형태의 저장소와도 연동 가능하게 제공될 수 있다.Additionally, if the database 140 further includes other types of storage other than web DB, the data management unit 102 may be provided to be interoperable with the other types of storage.
문서 작성 장치(10)에 포함되어 있는 구성요소들은 데이터 관리부(102)를 통해 데이터베이스(140)와 연동하여 데이터 관리를 할 수 있다. 물론, 실시예에 따라 문서 작성 장치(10)에 포함되어 있는 구성요소들 중 어느 하나 또는 그 이상은 독립적으로 데이터베이스(140)와 연동할 수도 있다. 본 실시예에서는, 특별한 설명이 부가되지 않더라도 문서 작성 장치(10)의 구성요소들은 데이터 관리부(102)를 통해 데이터베이스(140)와 연동되는 것으로 이해될 수 있다.Components included in the document writing device 10 can manage data by linking with the database 140 through the data management unit 102. Of course, depending on the embodiment, one or more of the components included in the document writing device 10 may independently interface with the database 140. In this embodiment, even if no special explanation is added, it can be understood that the components of the document creation device 10 are linked with the database 140 through the data management unit 102.
 
또한, 데이터 관리부(102)는 데이터베이스(140)와 연동 시 데이터를 암호화하여 처리할 수 있다. 구체적으로, 데이터 관리부(102)는 기 설정된 암호화 알고리즘을 통해 사용자가 입력하는 데이터를 인코딩하여 데이터베이스(140)에 저장할 수 있고, 데이터베이스(140)에 저장된 데이터를 읽어와 동일한 암호화 알고리즘을 통해 디코딩하여 입출력 인터페이스(19)를 통해 사용자에게 출력할 수 있다. 이때, 데이터 관리부(102)가 사용하는 암호화 알고리즘은 사용자 계정 정보에 의존적인 키 값을 이용할 수 있고, 이에 의해 문서 작성 애플리케이션을 통해 작성되는 문서의 보안성능을 더욱 향상시킬 수 있다.Additionally, the data management unit 102 can encrypt and process data when linked with the database 140. Specifically, the data management unit 102 can encode data input by the user through a preset encryption algorithm and store it in the database 140, and read the data stored in the database 140 and decode it through the same encryption algorithm to input and output the data. It can be output to the user through the interface 19. At this time, the encryption algorithm used by the data management unit 102 can use a key value dependent on user account information, thereby further improving the security performance of documents created through a document creation application.
 
한편, 데이터 관리부(102)는 문서 작성 장치(10)의 데이터베이스(140)뿐만 아니라, 문서 작성 서버(20)의 데이터베이스(240)와 연동하도록 제공될 수도 있다. 이 경우, 데이터 관리부(102)는 후술할 데이터 통신부(113)를 통해 문서 작성 서버(20)로 소정의 데이터 처리 요청을 전달할 수 있고, 문서 작성 서버(20)로부터 제공되는 처리 결과를 전달받을 수 있다. 여기서, 상술한 데이터 관리부(102)와 데이터베이스(140) 사이의 연동 방법은 실질적으로 동일하게 데이터 관리부(102)와 데이터베이스(240) 사이에 적용될 수 있다. 실시예에 따라, 데이터 관리부(102)는 문서 작성 장치(10)의 데이터베이스(140) 및 문서 작성 서버(20)의 데이터베이스(240) 중 어느 하나 또는 모두와 연동되도록 제공될 수 있다.Meanwhile, the data management unit 102 may be provided to interoperate with the database 240 of the document creation server 20 as well as the database 140 of the document creation device 10. In this case, the data management unit 102 can transmit a predetermined data processing request to the document creation server 20 through the data communication unit 113, which will be described later, and receive the processing result provided from the document creation server 20. there is. Here, the above-described linking method between the data management unit 102 and the database 140 can be applied between the data management unit 102 and the database 240 in substantially the same way. Depending on the embodiment, the data management unit 102 may be provided to be linked with one or both of the database 140 of the document creation device 10 and the database 240 of the document creation server 20.
 
케이스 관리부(103)는 사용자가 문서를 작성하기 위해 생성하는 케이스를 관리할 수 있다. 케이스 관리부(103)에 의해 관리되는 케이스의 정보는 사용자로부터 입력받거나, 기 설정된 규칙에 따라 생성될 수 있다. 예를 들어, 케이스의 정보는 관련된 서비스에 따라 관리번호, 케이스 명칭, 마감일, 의뢰인, 기술 분야, 문서 양식, 저장 방식, 번역 언어 정보 등의 정보를 포함할 수 있다. 화면 구성부(101)는 이와 같은 정보를 관리하기 위한 화면(이하, "케이스 관리 화면"이라 한다)을 구성하여 사용자에게 제공할 수 있다. 케이스 관리 화면은 독립된 웹 페이지로 제공되거나, 웹 페이지의 일부 영역으로 제공되거나, 웹 페이지에 숨김 또는 접힘 가능한 영역으로 제공되거나, 팝업 페이지 또는 창(window)으로서 제공될 수 있다.The case management unit 103 can manage cases created by users to create documents. Information on cases managed by the case management unit 103 may be input from the user or may be generated according to preset rules. For example, case information may include information such as management number, case name, deadline, client, technical field, document format, storage method, and translation language information, depending on the related service. The screen configuration unit 101 can configure a screen for managing such information (hereinafter referred to as a “case management screen”) and provide it to the user. The case management screen may be provided as an independent web page, as a part of a web page, as a hidden or foldable area on the web page, or as a pop-up page or window.
여기서, 관리번호는 해당 케이스를 다른 케이스와 구별하기 위해 설정된 값으로서, 케이스 관리 화면을 통해 사용자에게 입력받거나 기 설정된 규칙에 따라 케이스 관리부(103)에 의해 자동으로 부여될 수 있다. 이때, 관리번호는 각각의 케이스에 대해 고유한 값으로서 관리, 사용될 수 있으며, 케이스 관리부(103)는 관리번호의 고유성을 검증하는 프로세스를 수행할 수 있다.Here, the management number is a value set to distinguish the case from other cases, and can be input by the user through the case management screen or automatically assigned by the case management unit 103 according to preset rules. At this time, the management number can be managed and used as a unique value for each case, and the case management unit 103 can perform a process to verify the uniqueness of the management number.
케이스 명칭은 해당 케이스를 사용자가 다른 케이스와 구별하여 인식할 수 있도록 임의로 입력받는 값, 마감일은 해당 케이스의 작업이 완료되어야 하는 날짜, 의뢰인은 해당 케이스를 사용자에게 의뢰한 자, 기술 분야는 해당 케이스와 관련성이 높은 기술 종류(예를 들어, 정보통신, 기계, 화학 등)로 이해될 수 있다.The case name is a value entered arbitrarily so that the user can recognize the case by distinguishing it from other cases, the deadline is the date by which work on the case must be completed, the client is the person who requested the case from the user, and the technical field is the relevant case. It can be understood as a type of technology that is highly related to (e.g., information and communications, machinery, chemistry, etc.).
문서 양식은 작성하고자 하는 문서가 기본적으로 갖춰야할 구조로 이해될 수 있다. 구체적으로, 특허 명세서의 경우 특허청마다 지정되어 있는 양식이 상이한 바, 사용자가 작성하고자 하는 특허 명세서의 양식을 선택할 수 있도록 케이스 관리 화면이 구성될 수 있다. 예를 들어, 문서 양식으로서, "KR", "US", "JP", "PCT" 등이 예시될 수 있고, 사용자가 "KR"을 선택하는 경우, 한국 특허청에서 요구하는 특허 명세서 양식에 대응되는 화면이 사용자에게 제공될 수 있다. 데이터베이스(140)에는 각각의 문서 양식에 대응되는 필수 입력 정보나 파일 템플릿이 저장되어 있을 수 있으며, 프로세서(100)는 그에 대응되는 화면 또는 파일을 사용자에게 제공할 수 있다.The document format can be understood as the basic structure that the document to be written must have. Specifically, in the case of a patent specification, the format designated for each patent office is different, so the case management screen can be configured so that the user can select the format of the patent specification that he or she wishes to write. For example, the document format may include "KR", "US", "JP", "PCT", etc., and if the user selects "KR", it corresponds to the patent specification format required by the Korean Intellectual Property Office. A screen may be provided to the user. The database 140 may store essential input information or file templates corresponding to each document format, and the processor 100 may provide the corresponding screen or file to the user.
저장 방식은 해당 케이스와 관련하여 입력되는 정보를 문서 작성 장치(10)에 저장하여 관리할 지, 문서 작성 서버(20)에 저장하여 관리할 지 여부를 선택하는 것으로 이해될 수 있다. 예를 들어, 케이스 관리 화면은 사용자에게 "Local Database"와 "Cloud Database"라는 옵션을 제공할 수 있고, 사용자가 전자를 선택하는 경우 해당 케이스의 정보는 데이터베이스(140)에 저장되고, 후자를 선택하는 경우 해당 케이스의 정보는 네트워크(30)를 통해 문서 작성 서버(20)에 전달되어 데이터베이스(240)에 저장될 수 있다. 전자의 경우, 문서의 정보가 네트워크(30)를 거치지 않으므로, 문서 작성 장치(10)에서 독립적으로 구동되는 워드 프로세서와 같은 수준 또는 그 이상의 보안 성능이 제공될 수 있다. 실시예에 따라서는 일부의 정보만 데이터베이스(140)에 저장되고 나머지 정보는 문서 작성 서버(20)의 데이터베이스(240)에 저장될 수도 있다.The storage method can be understood as selecting whether to store and manage information input related to the case in the document creation device 10 or the document creation server 20. For example, the case management screen may provide the user with the options of "Local Database" and "Cloud Database", and if the user selects the former, the information of the case is stored in the database 140 and selects the latter. In this case, the information of the case may be transmitted to the document creation server 20 through the network 30 and stored in the database 240. In the former case, since the information in the document does not pass through the network 30, security performance at the same level or higher than that of a word processor running independently in the document writing device 10 can be provided. Depending on the embodiment, only some information may be stored in the database 140 and the remaining information may be stored in the database 240 of the document creation server 20.
번역 언어 정보는 번역하고자 하는 원문의 언어(제2 언어)와 번역문의 언어(제1 언어)일 수 있으며, 해당 케이스가 제2 서비스용 케이스인 경우에 활용될 수 있다.The translation language information may be the language of the original text to be translated (second language) and the language of the translated text (first language), and may be used when the case is a case for a second service.
 
키워드 관리부(104)는 문서의 내용에 포함되는 키워드를 관리할 수 있다. 본 실시예에서 "키워드(keyword)"는 문서의 내용에 포함될 수 있고 텍스트로 설명될 수 있는 특정 객체를 지칭하는 것으로 이해될 수 있다. 특히, 이하의 설명에서는 특허 문서의 내용에 포함될 수 있고 텍스트로 설명될 수 있는 특정 개체를 지칭하는 "구성요소"가 키워드로서 키워드 관리부(104)에 의해 관리되는 것을 예로 들어 설명한다. The keyword management unit 104 can manage keywords included in the content of the document. In this embodiment, “keyword” may be understood as referring to a specific object that can be included in the content of the document and can be described in text. In particular, in the following description, it is taken as an example that “components” that refer to specific entities that can be included in the content of a patent document and that can be described in text are managed by the keyword management unit 104 as keywords.
실시예에 따라 키워드는 발명을 구성하는 것이 아닐 수도 있으며, 특정 객체를 표현하거나 설명하는 텍스트의 일부일 수도 있다. 그리고, "키워드의 정보"는 해당 키워드와 관련된 하나 이상의 정보(예를 들어 키워드의 명칭, 키워드에 대응되는 식별번호(일 예로 도면부호), 키워드의 번역, 키워드의 사용 여부, 키워드의 사용 횟수 등)를 포함하는 것으로 이해될 수 있다.Depending on the embodiment, a keyword may not constitute an invention or may be a part of text that expresses or explains a specific object. In addition, “keyword information” refers to one or more information related to the keyword (e.g., name of the keyword, identification number (e.g., drawing symbol) corresponding to the keyword, translation of the keyword, whether the keyword is used, number of times the keyword is used, etc. ) can be understood to include.
이하에서는 이해의 편의를 위해 키워드를 "구성요소"로 표기하나, 본 발명의 사상이 이에 한정되는 것은 아니다.Hereinafter, keywords are referred to as “components” for convenience of understanding, but the spirit of the present invention is not limited thereto.
예를 들어, 문서에는 발명을 구성하는 복수 개의 구성요소들을 설명하는 내용이 포함될 수 있는데, 이러한 발명을 구성하는 구성요소들이 키워드 관리부(104)에 의해 관리될 수 있다. 구체적으로, 발명이 motor, shaft, gear등의 구성요소를 포함하고, 이들을 지칭하는 식별번호가 각각 10, 20, 30으로 설정되어 있는 경우를 예로 들면, "motor", "shaft", "gear", "10", "20", "30" 등이 구성요소 정보로서 관리될 수 있다. 또한, 문서가 제2 서비스에 의해 작성되는 번역문인 경우에는, 각각의 구성요소의 정보에 대한 번역도 구성요소의 정보로서 관리될 수 있다. 상기의 예에서 제2 언어가 영어이고 제1 언어가 한국어인 경우, "motor"에 대해 "모터", "shaft"에 대해 "회전 축", "gear"에 대해 "기어"가 각각의 구성요소의 정보로서 관리될 수 있다.For example, a document may include content describing a plurality of components constituting an invention, and these components constituting the invention may be managed by the keyword management unit 104. Specifically, if the invention includes components such as a motor, shaft, and gear, and the identification numbers referring to them are set to 10, 20, and 30, respectively, for example, "motor", "shaft", and "gear" , “10”, “20”, “30”, etc. can be managed as component information. Additionally, when the document is a translation created by a second service, the translation of the information of each component can also be managed as component information. In the example above, if the second language is English and the first language is Korean, "motor" for "motor", "rotation shaft" for "shaft", and "gear" for "gear" are the respective components. It can be managed as information.
또한, 실시예에 따라 키워드 관리부(104)에 의해 관리되는 구성요소는 발명에 포함되는 것이 아니라, 발명의 내용을 설명하기 위해 사용되는 특정 객체를 지칭하는 것일 수도 있다. 상기의 예에서, "motor"의 특징을 설명하기 위해 "driving"이라는 용어가 사용되어야 하는 경우, "driving" 또한 키워드 관리부(104)에 의해 관리될 수 있다.Additionally, depending on the embodiment, the components managed by the keyword management unit 104 may not be included in the invention, but may refer to specific objects used to describe the content of the invention. In the above example, if the term “driving” is to be used to describe the characteristic of “motor,” “driving” may also be managed by the keyword management unit 104.
한편, 키워드 관리부(104)는 어느 하나의 구성요소를 설명하는 복수 개의 정보들을 하나의 집합으로서 관리할 수 있다. 예를 들어, 구성요소의 정보로서, 해당 구성요소의 명칭과 해당 구성요소를 지칭하는 식별번호가 설정되어 있는 경우, 키워드 관리부(104)는 해당 구성요소의 명칭과 식별번호의 집합에 대응되는 고유한 키 값을 부여할 수 있고, 설정된 키 값을 기초로 해당 구성요소의 정보를 관리할 수 있다. 상기의 예에서, 키워드 관리부(104)는 "motor"과 "10"과 "모터", "shaft"와 "20"과 "회전 축", "gear"과 "30"과 "기어" 각각을 하나의 집합으로서 관리할 수 있고, 각각의 집합에는 고유의 키 값이 설정될 수 있다. 아울러, 키워드 관리부(104)는 구성요소의 집합에 고유한 키 값을 형성하기 위해 중복된 구성요소 정보가 저장되는 것을 차단할 수 있다. 즉, 키워드 관리부(104)는 동일한 구성요소 정보를 포함하고 있는 복수 개의 구성요소 집합이 형성되는 것을 차단할 수 있다.Meanwhile, the keyword management unit 104 can manage a plurality of pieces of information describing one component as one set. For example, if the name of the component and an identification number referring to the component are set as component information, the keyword management unit 104 creates a unique name corresponding to the set of the name and identification number of the component. One key value can be assigned, and the information of the corresponding component can be managed based on the set key value. In the above example, the keyword management unit 104 has one each of “motor” and “10” and “motor”, “shaft” and “20” and “rotation axis”, and “gear” and “30” and “gear” respectively. It can be managed as a set, and each set can have a unique key value set. In addition, the keyword management unit 104 can block duplicate component information from being stored in order to form a unique key value for a set of components. In other words, the keyword management unit 104 can block the formation of a plurality of component sets containing the same component information.
화면 구성부(101)는 구성요소의 정보를 관리하기 위한 화면(이하, "구성요소 관리 화면"이라 한다)을 구성하여 사용자에게 제공할 수 있다. 구성요소 관리 화면은 독립된 웹 페이지로 제공되거나, 웹 페이지의 일부 영역으로 제공되거나, 웹 페이지에 숨김 또는 접힘 가능한 영역으로 제공되거나, 팝업 페이지 또는 창 등으로 제공될 수 있다.The screen composition unit 101 can configure a screen for managing component information (hereinafter referred to as “component management screen”) and provide it to the user. The component management screen may be provided as an independent web page, as a partial area of the web page, as a hidden or foldable area on the web page, or as a pop-up page or window.
한편, 키워드 관리부(104)는 사용자에 의해 구성요소의 정보가 변경되는 경우, 변경 전 후의 구성요소 정보를 자동완성 리스트 생성부(105) 및 텍스트 입력요소 관리부(106)로 전달하여 자동완성 리스트가 갱신되거나, 후술할 자동완성 텍스트 또는 자동완성 블록이 갱신되도록 할 수 있다. 여기서, 구성요소의 정보가 변경된다는 것은, 새로운 구성요소의 정보가 입력되거나, 기 입력되어 있던 구성요소의 정보가 업데이트되거나, 기 입력되어 있던 구성요소의 정보가 삭제되는 것을 모두 포함하는 것으로 이해될 수 있다.Meanwhile, when the component information is changed by the user, the keyword management unit 104 transfers the component information before and after the change to the auto-complete list creation unit 105 and the text input element management unit 106 to create the auto-complete list. It can be updated, or the auto-complete text or auto-complete block, which will be described later, can be updated. Here, changing the information of a component will be understood to include inputting new component information, updating information on a previously entered component, or deleting information on a previously entered component. You can.
 
자동완성 리스트 생성부(105)는 문서 작성 시 텍스트 입력(text typing)에 소요되는 시간을 최소화하기 위해 제공되는 자동완성 리스트를 생성할 수 있다. 자동완성 리스트 생성부(105)에 의해 생성된 자동완성 리스트는 텍스트 입력요소 관리부(106)에 제공되어 사용될 수 있다.The auto-complete list generator 105 may generate an auto-complete list provided to minimize the time required for text typing when creating a document. The auto-completion list generated by the auto-completion list generator 105 can be provided to and used by the text input element management unit 106.
자동완성 리스트는 사용자가 입력한 텍스트를 기초로 생성된 하나 이상의 항목(item)을 포함할 수 있다. 자동완성 리스트에 포함되는 일부 항목들은 자동완성 리스트 생성부(105)에 의해 설정된 고유의 키 값에 의해 관리될 수 있고, 고유의 키 값을 갖는 항목들에는 후술할 텍스트 입력요소 관리부(106)의 일괄 업데이트 등의 기능이 적용될 수 있다.The autocomplete list may include one or more items created based on text entered by the user. Some items included in the auto-completion list may be managed by unique key values set by the auto-completion list generator 105, and items with unique key values may be managed by the text input element management unit 106, which will be described later. Functions such as batch update can be applied.
구체적으로, 자동완성 리스트 생성부(105)는 기 설정된 데이터 소스(data source)로부터 데이터를 로딩하여 자동완성 리스트에 포함될 수 있는 모든 항목이 포함되어 있는 데이터 셋(data set)을 생성한 후, 생성된 데이터 셋 내에서 사용자가 입력한 텍스트에 대응되는 항목들을 추출하여 화면에 표시될 자동완성 리스트를 구성할 수 있다. 일 예로, 자동완성 리스트 생성부(105)는 사용자가 입력한 텍스트를 검색어로 데이터 소스 내에서 항목들을 검색한 후, 조회된 결과로 자동완성 리스트를 구성할 수 있다. 또는, 자동완성 리스트 생성부(105)는 사용자로부터 텍스트를 입력받은 후 기 설정된 데이터 소스로부터 입력된 텍스트에 대응되는 데이터를 추출하고, 추출된 데이터로 자동완성 리스트를 구성할 수도 있다.Specifically, the auto-complete list generator 105 loads data from a preset data source to generate a data set containing all items that can be included in the auto-complete list, and then generates You can extract items corresponding to the text entered by the user from within the data set and construct an auto-complete list to be displayed on the screen. As an example, the auto-complete list generator 105 may search for items in a data source using the text entered by the user as a search term, and then construct an auto-complete list with the search results. Alternatively, the auto-complete list generator 105 may receive text from the user, extract data corresponding to the input text from a preset data source, and configure an auto-complete list with the extracted data.
여기서, 데이터 소스는 키워드 관리부(104)에 의해 관리되는 구성요소들을 포함할 수 있다. 예를 들어, 키워드 관리부(104)에 의해 관리되는 구성요소들 각각이 하나의 항목으로서 자동완성 리스트에 포함될 수 있다. 이때, 하나의 구성요소의 집합에 포함된 정보들 전체 또는 일부가 자동완성 리스트의 하나의 항목으로서 사용될 수 있다. 상기의 예를 참조하면, 자동완성 리스트에 "motor", "shaft", "gear", "motor 10", "shaft 20", "gear 30", "모터", "회전 축", "기어", "모터(10)", "회전 축(20)", "기어(30)" 등이 항목으로 포함될 수 있다. 여기서, 도면부호 등의 식별부호가 포함된 항목을 생성하는 경우, 식별부호를 항목에 포함시키는 양식(예를 들어, 괄호로 식별부호를 감싸거나, 공백문자를 사용하는 등)은 기 설정되어 있을 수 있으며, 실시예에 따라 사용자가 직접 식별부호를 항목에 포함시키는 양식을 설정하는 화면이 문서 작성 애플리케이션을 통해 제공될 수도 있다.Here, the data source may include components managed by the keyword management unit 104. For example, each of the components managed by the keyword management unit 104 may be included in the auto-complete list as one item. At this time, all or part of the information included in one set of components can be used as one item of the auto-completion list. Referring to the example above, the autocomplete list includes "motor", "shaft", "gear", "motor 10", "shaft 20", "gear 30", "motor", "rotation shaft", and "gear". , “Motor (10)”, “Rotation Shaft (20)”, “Gear (30)”, etc. may be included as items. Here, when creating an item containing an identification code such as a drawing symbol, the form of including the identification code in the item (for example, surrounding the identification code with parentheses, using a space character, etc.) may be preset. Depending on the embodiment, a screen where the user directly sets a form for including an identification code in an item may be provided through a document creation application.
또한, 문서 작성 화면이 특허 번역문을 작성하는 제2 서비스를 위한 것인 경우, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소 중 구성요소의 번역이 입력되어 있는 구성요소만 추출하여 데이터 소스를 생성할 수 있다. 즉, 키워드 관리부(104)에 의해 관리되는 구성요소들 중 번역이 입력된 구성요소만 항목으로서 자동완성 리스트에 포함될 수 있다. 이때, 자동완성 리스트 생성부(105)는 번역이 입력되어 있는 구성요소가 식별부호 정보도 포함하고 있는 경우, 자동완성 리스트에 해당 구성요소의 번역만으로 이루어진 항목과 번역과 식별부호가 함께 표시되어 있는 항목을 모두 포함시킬 수 있다.In addition, when the document creation screen is for a second service that creates a patent translation, the auto-complete list creation unit 105 is configured to input translations of components among the components managed by the keyword management unit 104. You can create a data source by extracting only elements. That is, among the components managed by the keyword management unit 104, only components for which translations have been entered may be included in the auto-complete list as items. At this time, if the component for which the translation is input also includes identification code information, the auto-completion list generator 105 displays an item consisting of only the translation of the component and the translation and identification code together in the auto-completion list. All items can be included.
키워드 관리부(104)에 의해 관리되는 구성요소들이 항목으로서 자동완성 리스트에 포함되는 경우, 각각의 항목은 대응되는 구성요소 정보의 집합에서 추출되어 형성된 구성요소 정보의 조합을 고유의 키 값으로 가질 수 있다. 상기의 예를 참조하면, "motor10", "shaft20", "gear30" 등이 해당 항목의 고유의 키 값으로 활용될 수 있다.When components managed by the keyword management unit 104 are included in the auto-complete list as items, each item may have a unique key value of a combination of component information formed by extracting from a set of corresponding component information. there is. Referring to the above example, “motor10”, “shaft20”, “gear30”, etc. can be used as unique key values for the corresponding item.
또한, 데이터 소스는 데이터베이스(140)에 저장되어 있거나, 문서 작성 서버(20)로부터 제공받은 데이터를 포함할 수 있다. 일 예로, 문서 작성에 있어서 자주 사용되는 표현들은 데이터베이스(140)나 데이터베이스(240)에 저장되어 있을 수 있고, 자동완성 리스트 생성부(105)는 이들을 로딩하거나 데이터 통신부(113)를 통해 문서 작성 서버(20)로부터 제공받아 자동완성 리스트에 항목으로서 포함시킬 수 있다. 이때, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소의 정보와 데이터베이스(140) 또는 문서 작성 서버(20)로부터 제공받은 데이터를 혼합하여 자동완성 리스트를 생성할 수 있다.Additionally, the data source may include data stored in the database 140 or provided from the document creation server 20. For example, expressions frequently used in document creation may be stored in the database 140 or database 240, and the auto-complete list generator 105 loads them or sends them to the document creation server through the data communication unit 113. It can be provided from (20) and included as an item in the auto-completion list. At this time, the auto-complete list generator 105 can create an auto-complete list by mixing information on components managed by the keyword management unit 104 and data provided from the database 140 or the document creation server 20. there is.
자동완성 리스트 생성부(105)에 의해 생성된 자동완성 리스트에 포함되는 항목은, 해당 항목의 속성을 나타내는 속성 값을 가질 수 있다. 여기서, 항목의 속성은 해당 항목을 생성하는 데이터의 출처(예를 들어 데이터베이스(140)에서 제공된 데이터인지, 데이터베이스(240)로부터 제공된 데이터인지), 해당 항목이 사용될 목적(예를 들어, 구성요소를 자동완성시키기 위한 것인지, 관용어(idiom word)를 자동완성시키기 위한 것인지 등), 해당 항목에 포함된 데이터의 종류(예를 들어, 사용된 언어의 종류, 숫자를 포함하는지 여부, 특수문자를 포함하는지 여부 등), 해당 항목에 포함된 데이터의 구성(예를 들어, 도면부호가 포함되었는지 여부, 도면부호가 표시되는 양식, 번역이 포함되어 있는지 여부 등) 등을 포함할 수 있다.Items included in the auto-complete list generated by the auto-complete list generator 105 may have attribute values representing the attributes of the item. Here, the attributes of the item include the source of the data that creates the item (e.g., whether it is data provided from the database 140 or data provided from the database 240), and the purpose for which the item is used (e.g., to create a component). whether it is for auto-completion, whether it is for auto-completion of idiom words, etc.), the type of data contained in the item (for example, the type of language used, whether it contains numbers, whether it contains special characters). (whether or not, etc.), the composition of the data included in the item (e.g., whether drawing symbols are included, the format in which the drawing symbols are displayed, whether translations are included, etc.), etc.
항목의 속성 값의 일 예로서, 발명의 구성요소의 정보를 자동완성 시키기 위해 사용되는 항목에 대응되는 값과 구성요소에 관계없이 반복하는 표현을 자동완성 시키기 위해 사용되는 항목에 대응되는 값이 서로 다르게 설정되어 사용될 수 있다. 이하에서는 전자의 값을 갖는 항목을 "구성요소 항목"이라고 하고, 후자의 값을 갖는 항목을 "관용어 항목"이라고 하겠다. 즉, 구성요소 항목은 발명의 구성요소를 자동완성시키기 위해 사용될 수 있고, 관용어 항목은 반복하여 자주 사용될 수 있는 표현을 자동완성시키기 위해 사용되는 것으로 이해될 수 있다. 또한, 본 실시예에서, "관용어"는 하나의 단어뿐만 아니라 복수 개의 단어를 포함하는 구나 절을 포함하는 것으로 이해될 수 있다.As an example of an attribute value of an item, the value corresponding to the item used to auto-complete the information of the components of the invention and the value corresponding to the item used to auto-complete the repetitive expression regardless of the component are different from each other. It can be set and used differently. Hereinafter, items with the former value will be referred to as “component items,” and items with the latter value will be referred to as “idiom items.” In other words, component items can be used to auto-complete the components of the invention, and idiom items can be understood as being used to auto-complete expressions that can be used repeatedly and frequently. Additionally, in this embodiment, “idiom” may be understood to include not only one word but also a phrase or clause containing multiple words.
이때, 구성요소 항목은 키워드 관리부(104)에 의해 관리되는 구성요소로부터 생성될 수 있고, 관용어 항목은 문서 작성 서버(20)로부터 제공받은 데이터로부터 생성될 수 있다. 이에 의해, 발명의 핵심적인 내용과 관련되어 있고 특정 케이스 내에서만 사용될 수 있는 구성요소 항목은 문서 작성 장치(10)에서 관리함으로써 보안성이 강화될 수 있다. 또한, 발명의 핵심적인 내용과 관련이 없으며 모든 케이스에 범용적으로 사용될 수 있는 관용어 항목은 문서 작성 서버(20)에서 관리함으로써 사용 편의성이 향상될 수 있다.At this time, component items may be created from components managed by the keyword management unit 104, and idiom items may be created from data provided from the document creation server 20. Accordingly, security can be strengthened by managing component items that are related to the core content of the invention and can be used only within a specific case in the document writing device 10. In addition, convenience of use can be improved by managing idiom items that are not related to the core content of the invention and can be used universally in all cases in the document creation server 20.
한편, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소의 정보가 변경되는 경우, 해당 구성요소를 기초로 생성된 항목의 정보 및 식별 값을 변경된 정보로 업데이트할 수 있다. 상기의 예에서, 사용자가 키워드 관리부(104)를 통해 "motor"의 식별번호를 "10"에서 "100"으로 변경한 경우, 자동완성 리스트 생성부(105)는 데이터 리소스 및 항목에 포함되어 있는 해당 구성요소의 정보를 "10"에서 "100"으로 변경할 수 있다. 그에 따라, 자동완성 리스트에는 "motor 10" 대신 "motor 100"이 항목으로 포함될 수 있으며, 해당 항목의 식별 값도 "motor10"에서 "motor100"으로 변경될 수 있다.Meanwhile, when the information of a component managed by the keyword management unit 104 changes, the auto-complete list generator 105 can update the information and identification value of the item created based on the component with the changed information. there is. In the above example, when the user changes the identification number of “motor” from “10” to “100” through the keyword management unit 104, the auto-complete list creation unit 105 You can change the information of the corresponding component from “10” to “100”. Accordingly, the autocomplete list may include "motor 100" as an item instead of "motor 10", and the identification value of the item may also be changed from "motor10" to "motor100".
또한, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 새로운 구성요소의 정보가 추가되는 경우, 해당 구성요소를 구성요소 리스트의 구성요소 항목으로 추가할 수 있다. 또한, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소의 정보가 삭제되는 경우, 해당 구성요소를 기초로 생성된 항목을 삭제할 수 있다.Additionally, when information on a new component is added by the keyword management unit 104, the auto-complete list creation unit 105 may add the corresponding component as a component item in the component list. Additionally, when information on a component managed by the keyword management unit 104 is deleted, the auto-complete list generator 105 may delete the item created based on the component.
자동완성 리스트 생성부(105)는 구성요소 리스트 생성 시 구성요소 항목들이 구성요소의 명칭 텍스트의 오름차순 또는 내림차순으로 순으로 정렬되거나, 식별번호 텍스트의 오름차순 또는 내림차순 순으로 정렬되도록 할 수 있다. 특히, 자동완성 리스트 생성부(105)는 구성요소 리스트의 구성요소 항목들이 식별번호 텍스트의 오름차순 순으로 정렬되도록 할 수 있다. 이에 의해, 사용자가 타이핑하는 식별번호 개수에 따라 그에 대응되는 구성요소 항목이 가장 먼저 선택되도록 할 수 있으므로, 사용 편의성이 향상될 수 있다. 구체적으로, 키워드 관리부(104)에 의해 구성요소의 명칭과 식별번호로서 "main body, 100", "mobile phone, 1", "motor, 10"이 입력되어 있는 경우, 자동완성 리스트 생성부(105)는 식별번호 텍스트의 오름차순으로 "mobile phone 1", "motor 10", "main body 100"으로 구성요소 리스트를 생성할 수 있다. 이때, 'mobile phone'을 입력하고자 하는 사용자는 "1"만 타이핑할 것이고, 그에 의해 위의 3가지 구성요소 항목이 모두 자동완성 리스트로 표시가 되기는 하나, "mobile phone 1"이 가장 먼저 표시될 것인 바 사용자는 바로 "mobile phone 1"을 선택하여 자동완성 시킬 수 있다. 만약, "mobile phone 1"이 가장 먼저 표시되지 않는다면 사용자는 "mobile phone 1"을 선택하기 위한 추가의 조작을 해야하므로 사용 편의성이 떨어지게 된다. 또한, motor을 입력하고자 하는 사용자는 "10"을 타이핑할텐데, 이 경우에는 "mobile phone 1"이 제외되고 "motor 10"이 가장 먼저 표시된 자동완성 리스트가 표시될 것이므로, 사용자는 바로 "motor 10"을 선택하여 자동완성 시킬 수 있을 것이다.When creating a component list, the auto-complete list generator 105 may arrange component items in ascending or descending order of the component name text, or in ascending or descending order of the identification number text. In particular, the auto-complete list generator 105 can arrange the component items of the component list in ascending order of the identification number text. As a result, the component item corresponding to the number of identification numbers typed by the user can be selected first, thereby improving convenience of use. Specifically, when "main body, 100", "mobile phone, 1", and "motor, 10" are input as the name and identification number of the component by the keyword management unit 104, the auto-complete list creation unit 105 ) can create a component list with "mobile phone 1", "motor 10", and "main body 100" in ascending order of the identification number text. At this time, the user who wants to input 'mobile phone' will only type "1", and as a result, all three component items above will be displayed in the autocomplete list, but "mobile phone 1" will be displayed first. As a result, the user can immediately select “mobile phone 1” to autocomplete. If “mobile phone 1” is not displayed first, the user must perform additional operations to select “mobile phone 1”, which reduces usability. Also, a user who wants to input motor will type "10". In this case, an autocomplete list will be displayed with "motor 10" displayed first, excluding "mobile phone 1", so the user will type "motor 10" immediately. You can select to auto-complete.
자동완성 리스트 생성부(105)에 의해 생성되는 데이터 셋이나 자동완성 리스트는 json이나 xml과 같이 구조화된 텍스트 문서 포맷을 가질 수 있다.The data set or auto-complete list generated by the auto-complete list generator 105 may have a structured text document format such as json or xml.
 
텍스트 입력요소 관리부(106)는 웹 페이지에 포함되어 있는 텍스트 입력요소를 관리할 수 있다. 화면 구성부(101)는 상술한 것처럼 문서 작성 화면이 하나 이상의 텍스트 입력요소를 포함하도록 화면을 구성할 수 있으며, 텍스트 입력요소 관리부(106)는 화면 구성부(101)에 의해 문서 작성 화면에 포함된 텍스트 입력요소를 제어할 수 있다.The text input element management unit 106 can manage text input elements included in a web page. As described above, the screen composition unit 101 can configure the screen so that the document creation screen includes one or more text input elements, and the text input element management unit 106 is included in the document creation screen by the screen composition unit 101. You can control text input elements.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력되는 텍스트의 서식을 관리할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력되는 텍스트의 크기, 폰트(font family), 색상 등 일반적으로 알려져 있는 텍스트의 속성과 밑줄, 굵은 글씨, 기울임 등의 텍스트에 부가될 수 있는 효과를 관리할 수 있다. 이와 같은 서식 관리는 텍스트 입력요소에 입력된 전체의 텍스트에 대해 일괄적으로 수행될 수 있고, 사용자가 선택한 일부의 텍스트에 대해서만 수행될 수도 있다. 또한, 서식 관리는 기 설정된 조건에 따라 텍스트 입력요소 관리부(106)에 의해 자동으로 수행될 수도 있고, 사용자에 의해 수동으로 수행될 수도 있다. 후자의 경우, 텍스트 입력요소에는 사용자가 서식을 변경할 수 있는 UI가 포함될 수 있다.The text input element management unit 106 can manage the format of text input into the text input element. For example, the text input element management unit 106 stores generally known text properties such as size, font family, and color of the text input to the text input element, as well as properties to be added to the text such as underline, bold text, and italics. The possible effects can be managed. This format management can be performed on all texts entered into the text input element at once, or only on some of the text selected by the user. Additionally, format management may be performed automatically by the text input element management unit 106 according to preset conditions, or may be performed manually by the user. In the latter case, the text input element may include a UI that allows the user to change the format.
본 실시예에서, 텍스트를 편집하는 것은 텍스트의 내용을 변경하는 것뿐만 아니라 텍스트에 적용된 서식을 수정하거나 변경하는 것을 포함하는 것으로 이해될 수 있다.In this embodiment, editing text may be understood to include not only changing the content of the text, but also modifying or changing the formatting applied to the text.
한편, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소가 다른 텍스트 입력요소와 다른 서식을 갖게 할 수도 있다.Meanwhile, the text input element management unit 106 may allow one text input element to have a different format from other text input elements.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 발생하는 이벤트를 감지하고, 그에 따라 설정된 동작이 수행되도록 할 수 있다. 텍스트 입력요소에서 발생하는 이벤트는 키보드 이벤트(예를 들어, key down, key press, key up, input 등)와 마우스 이벤트(예를 들어, click, double click, mouse down 등)와 웹 브라우저 또는 운영체제에서 발생시키는 기타 이벤트를 모두 포함할 수 있다. 또한, 텍스트 입력요소에서 발생하는 이벤트는 데이터 값이 변경(추가, 수정, 삭제 등)되는 것도 포함하는 것으로 이해될 수 있다. 이하의 설명에서 특별한 부연 설명없이 "이벤트"라고 언급되는 것은, 키보드 이벤트와 마우스 이벤트와 기타 이벤트 및 데이터 변경을 모두 포함하는 것으로 이해될 수 있다.The text input element management unit 106 can detect an event occurring in a text input element and perform a set operation accordingly. Events that occur in text input elements include keyboard events (e.g., key down, key press, key up, input, etc.), mouse events (e.g., click, double click, mouse down, etc.), and events from a web browser or operating system. It can include any other events that occur. Additionally, events occurring in text input elements can be understood to include changes in data values (addition, modification, deletion, etc.). In the following description, reference to “event” without special elaboration may be understood to include all keyboard events, mouse events, other events, and data changes.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 발생하는 이벤트에 따라 텍스트 입력요소에 입력된 텍스트의 전체 또는 일부를 기 설정된 규칙에 따라 편집할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 특정 키보드 이벤트가 발생하면 텍스트 입력요소에 입력된 텍스트의 일부를 추출하고, 추출된 텍스트가 기 설정된 조건에 부합하는지 여부를 판단할 수 있다. 이와 같은 동작은, 기 설정된 방식으로 동작하는 마우스 이벤트(예를 들어 마우스 우클릭을 하여 팝업 메뉴를 띄운 후 팝업 메뉴에서 기 설정된 항목을 좌클릭하여 선택)에 의해 수행될 수도 있다. 텍스트 입력요소 관리부(106)는 판단 결과에 따라 추출된 텍스트를 기 설정된 규칙에 따라 편집한 후, 편집된 텍스트로 추출된 텍스트를 대체하여 텍스트 입력요소에 출력할 수 있다.The text input element management unit 106 may edit all or part of the text entered into the text input element according to preset rules according to events occurring in the text input element. For example, when a specific keyboard event occurs, the text input element management unit 106 may extract part of the text entered into the text input element and determine whether the extracted text meets preset conditions. Such an operation may be performed by a mouse event that operates in a preset manner (for example, right-clicking the mouse to open a pop-up menu and then left-clicking to select a preset item from the pop-up menu). The text input element management unit 106 may edit the text extracted according to the judgment result according to preset rules and then replace the extracted text with the edited text and output it to the text input element.
일 예로, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 영어가 입력되는 경우 입력된 키가 스페이스 바일 때 입력된 단어가 문장의 첫 번째 단어이고 첫 문자가 대문자가 아니라면, 입력된 단어의 첫 문자를 대문자로 변경하여 입력된 단어 대신 텍스트 입력요소에 출력할 수 있다. 구체적으로, 사용자가 텍스트 입력요소에 문장의 첫 단어로 "this"를 입력한 후 키보드의 스페이스 바를 누른다면, 텍스트 입력요소 관리부(106)는 "this"를 추출하여 "This"로 변경한 후 텍스트 입력요소에 출력할 수 있다.As an example, when English is input into a text input element, the input key is the space bar, the text input element management unit 106 may input the first letter of the input word if the input word is the first word of the sentence and the first letter is not a capital letter. You can change it to uppercase and output it to the text input element instead of the entered word. Specifically, if the user enters "this" as the first word of the sentence in a text input element and then presses the space bar on the keyboard, the text input element management unit 106 extracts "this", changes it to "This", and then inputs the text It can be output to the input element.
또 다른 예로, 텍스트 입력요소에 한글이 입력되는 경우, 텍스트 입력요소 관리부(106)는 입력된 키가 스페이스 바일 때 입력된 단어의 조사가 조사의 앞에 위치한 단어의 마지막 글자의 받침에 맞게 사용되었는지 여부를 체크하고, 조사가 맞게 사용되어 있지 않다면 맞는 조사로 변경하여 입력된 단어 대신 텍스트 입력요소에 출력할 수 있다. 이때, 텍스트 입력요소 관리부(106)는 조사의 앞에 위치한 단어가 도면부호를 표시하는 부분을 포함하고 있는 경우에는 도면부호를 표시하는 부분을 제외한 마지막 글자의 받침을 기준으로 조사가 맞게 사용되어 있는지 여부를 체크할 수 있다. 구체적으로, 사용자가 텍스트 입력요소에 "목적어을" 또는 "목적어(100)을"을 입력한 후 키보드의 스페이스 바 키를 누른다면, 텍스트 입력요소 관리부(106)는 "목적어을"을 "목적어를"로, "목적어(100)을"을 "목적어(100)를"로 변경하여 텍스트 입력요소에 출력할 수 있다.As another example, when Korean characters are input into a text input element, the text input element management unit 106 determines whether the particle of the input word when the input key is the space bar is used to match the consonant of the last letter of the word located in front of the particle. Check , and if the particle is not used correctly, you can change it to the correct particle and output it to the text input element instead of the entered word. At this time, if the word located in front of the particle includes a part indicating a drawing symbol, the text input element management unit 106 determines whether the particle is used correctly based on the consonant of the last letter excluding the part indicating a drawing symbol. You can check . Specifically, if the user enters "object word" or "object word (100)" in the text input element and then presses the space bar key on the keyboard, the text input element management unit 106 changes "object word" to "object word". , “Object (100)” can be changed to “Object (100)” and output to a text input element.
위와 같은 대문자 변경이나, 조사 변경 등의 기능은 후술할 자동완성 블록에 대해서도 동일하게 적용될 수 있다.The above functions, such as changing capital letters or changing postpositions, can be equally applied to the auto-complete block, which will be described later.
텍스트 입력요소 관리부(106)는 사용자가 텍스트 입력요소를 통해 텍스트를 입력할 때, 자동완성 기능을 제공할 수 있다. 본 실시예에서 "자동완성"은 사용자가 입력하고자 하는 단어 또는 문구(이하 "전체 문구"라고 한다)의 일부만을 입력한 후 기 설정된 키 입력 또는 마우스 입력을 수행하면 전체 문구가 입력되도록 하는 것으로 이해될 수 있다.The text input element management unit 106 can provide an auto-completion function when a user inputs text through a text input element. In this embodiment, “autocomplete” is understood as allowing the user to input only part of the word or phrase (hereinafter referred to as “full phrase”) that the user wants to input and then input the entire phrase by performing a preset key input or mouse input. It can be.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 텍스트를 입력하기 위한 키보드 이벤트(예를 들어, a, b, c, 1, 2 등의 input 이벤트)가 발생되면 자동완성 리스트를 화면에 출력하고, 사용자로부터 원하는 항목을 선택받는 방식으로 자동완성 기능을 제공할 수 있다. 자동완성 리스트에 포함된 각각의 항목들은 각각 하나의 전체 문구로서 사용될 수 있다.The text input element management unit 106 outputs an autocomplete list to the screen when a keyboard event (for example, an input event such as a, b, c, 1, 2, etc.) for inputting text in a text input element occurs. An autocomplete function can be provided by having the user select the desired item. Each item included in the autocomplete list can be used as a full phrase.
상술한 것처럼, 텍스트 입력요소 관리부(106)가 출력하는 자동완성 리스트는 자동완성 리스트 생성부(105)에 의해 생성되어 제공될 수 있다. 자동완성 리스트 생성부(105)에 의해 생성된 자동완성 리스트는 복수 개의 항목을 포함할 수 있고, 복수 개의 항목에는 구성요소 항목이나 관용어 항목이 포함될 수 있는 바, 사용자는 자동완성 기능을 활용하여 문서 작성에 소요되는 시간을 줄일 수 있다.As described above, the auto-completion list output by the text input element management unit 106 may be generated and provided by the auto-completion list creation unit 105. The auto-complete list generated by the auto-complete list generator 105 may include a plurality of items, and the plurality of items may include component items or idiom items, so the user utilizes the auto-complete function to complete the document. The time required to write can be reduced.
예를 들어, 텍스트 입력요소 관리부(106)는 텍스트 입력요소 내에서 텍스트를 입력하기 위한 키보드 이벤트가 발생되면 해당 이벤트가 발생한 커서 위치를 추출할 수 있다. 그리고, 텍스트 입력요소 관리부(106)는 추출된 커서의 위치(이하 "추출 위치"라고 한다)의 주변 텍스트를 기 설정된 조건에 따라 추출할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 추출 위치의 앞쪽에 위치하는 하나의 단어에 대응되는 텍스트를 추출할 수 있다. 일 예로, 추출된 텍스트는 추출 위치로부터 그 앞에 위치하는 식별자(예를 들어, 개행문자, 태그, 스페이스 바 등 운영체제 및 문서 작성 애플리케이션에서 제공하는 언어별 텍스트 입력 방식에 따라 하나의 단어로서 인식할 수 있도록 설정된 텍스트 또는 코드)의 위치까지 존재하는 문자열(string)일 수 있다. 일 예로, 텍스트 입력요소 관리부(106)는 웹 브라우저의 window 객체의 selection 객체를 이용하여 커서의 위치 및 텍스트를 추출할 수 있다. 이하에서 "문자열"은 하나 이상의 연속된 문자, 숫자, 기호, 또는 공백문자의 집합으로 이해될 수 있고, 문자열을 구성하는 하나의 단위는 문자(character)로 통칭될 수 있다.For example, when a keyboard event for inputting text occurs within a text input element, the text input element management unit 106 can extract the cursor position where the event occurred. Additionally, the text input element management unit 106 can extract the text surrounding the extracted cursor position (hereinafter referred to as “extraction position”) according to preset conditions. For example, the text input element management unit 106 may extract text corresponding to one word located in front of the extraction position. As an example, the extracted text can be recognized as a single word according to the language-specific text input method provided by the operating system and document creation application, such as an identifier located in front of the extraction location (e.g., newline character, tag, space bar, etc.) It may be a string that exists up to the location of the text or code set to be there. As an example, the text input element management unit 106 may extract the cursor location and text using the selection object of the window object of the web browser. Hereinafter, a “string” may be understood as a set of one or more consecutive letters, numbers, symbols, or space characters, and a unit constituting a string may be collectively referred to as a character.
이때, 텍스트 입력요소 관리부(106)는 연속된 문자열의 중간에 텍스트가 입력되는 경우에도 자동완성 기능이 제공되도록 할 수 있다. 이를 위해, 텍스트 입력요소 관리부(106)는 추출된 텍스트를 기준으로 그 앞에 기재되어 있던 텍스트(이하 "전방 텍스트"라 한다)와 그 뒤에 기재되어 있던 텍스트(이하 "후방 텍스트"라 한다)를 각각 저장해 놓을 수 있다. 이때, 전방 텍스트와 후방 텍스트는 추출된 텍스트를 기준으로 전방 및 후방에 위치하는 html 태그까지의 텍스트일 수도 있다. 전방 텍스트와 후방 텍스트는 텍스트 입력요소 관리부(106)의 기능을 구현하는 함수 또는 메소드 내에서 독립적, 명시적으로 저장되거나, 텍스트 입력요소 관리부(106)가 참조하는 라이브러리 또는 스크립트에 의해 자동으로 생성, 관리될 수도 있다.At this time, the text input element management unit 106 can provide an auto-completion function even when text is input in the middle of a continuous string. For this purpose, the text input element management unit 106 separates the text written before the extracted text (hereinafter referred to as “front text”) and the text written after it (hereinafter referred to as “back text”), respectively. You can save it. At this time, the front text and back text may be text up to the html tags located ahead and behind the extracted text. The front text and back text are stored independently and explicitly within a function or method that implements the function of the text input element management unit 106, or are automatically generated by a library or script referenced by the text input element management unit 106. It can also be managed.
텍스트 입력요소 관리부(106)에 의해 추출된 텍스트는 자동완성 리스트를 생성하기 위한 키워드(keyword)로 사용될 수 있다. 다시 말하면, 자동완성 리스트 생성부(105)는 텍스트 입력요소 관리부(106)에 의해 추출된 텍스트를 검색어(search term)로 하여, 기 설정된 데이터 소스 또는 데이터 셋에서 추출된 텍스트를 포함하고 있거나 이에 대응될 수 있는 데이터를 검색하여 자동완성 리스트에 포함될 항목들을 생성할 수 있다. 이하에서는 텍스트 입력요소 관리부(106)에 의해 추출되고 자동완성 리스트 생성부(105)에서 자동완성 리스트 생성을 위해 사용되는 텍스트를 "자동완성 키워드"라고 하겠다.The text extracted by the text input element management unit 106 can be used as a keyword to create an autocomplete list. In other words, the auto-complete list generator 105 uses the text extracted by the text input element management unit 106 as a search term, and contains or corresponds to text extracted from a preset data source or data set. You can search for possible data and create items to be included in the autocomplete list. Hereinafter, the text extracted by the text input element management unit 106 and used to create the auto-completion list in the auto-completion list creation unit 105 will be referred to as an “auto-completion keyword.”
자동완성 리스트 생성부(105)는 자동완성 키워드를 기초로 자동완성 리스트를 생성하여 텍스트 입력요소 관리부(106)에 제공할 수 있고, 텍스트 입력요소 관리부(106)는 자동완성 리스트 생성부(105)로부터 제공된 자동완성 리스트를 해당 이벤트가 발생한 커서 위치에 출력할 수 있다. 텍스트 입력요소 관리부(106)에 의해 출력되는 자동완성 리스트는 하나 이상의 항목을 포함하고, 사용자가 마우스 또는 키보드를 이용하여 선택된 항목을 변경할 수 있도록 구성될 수 있다. 일 예로, 자동완성 리스트는 기 설정된 크기를 갖는 블록으로서 텍스트 입력요소 관리부(106)에 의해 독립된 레이어로 생성되고, 텍스트 입력요소 관리부(106)에 의해 호출되는 경우 화면에 나타나는 형태로 제공될 수 있다. 이때, 자동완성 리스트가 나타나는 방향은 커서 위치를 기준으로 설정된 크기의 자동완성 리스트가 온전하게 화면에 포함될 수 있도록 설정될 수 있다. 이를 위해, 텍스트 입력요소 관리부(106)는 웹 브라우저에서 제공하는 텍스트 입력요소의 크기 및 위치, 커서의 위치 등을 읽어와 자동완성 리스트가 출력되는 방향을 결정할 수 있다. 일 예로, 커서의 위치가 텍스트 입력요소의 좌측에 치우쳐 있는 경우에 자동완성 리스트는 커서의 우측에 출력될 수 있고, 우측에 치우쳐 있는 경우에 자동완성 리스트는 커서의 좌측에 출력될 수 있다.The auto-complete list generator 105 may generate an auto-complete list based on the auto-complete keyword and provide it to the text input element management unit 106, and the text input element management unit 106 may generate an auto-complete list based on the auto-complete keyword. The autocomplete list provided from can be output at the cursor position where the event occurred. The autocomplete list output by the text input element management unit 106 may include one or more items and allow the user to change the selected item using the mouse or keyboard. As an example, the auto-complete list is a block with a preset size and is created as an independent layer by the text input element management unit 106, and when called by the text input element management unit 106, it may be provided in a form that appears on the screen. . At this time, the direction in which the auto-completion list appears can be set so that the auto-completion list of a size set based on the cursor position can be completely included on the screen. To this end, the text input element management unit 106 can read the size and position of the text input element provided by the web browser, the position of the cursor, etc., and determine the direction in which the auto-completion list is output. For example, if the position of the cursor is biased to the left of the text input element, the auto-completion list may be output to the right of the cursor, and if the position of the cursor is biased to the right, the auto-completion list may be output to the left of the cursor.
사용자가 출력된 자동완성 리스트에서 자신이 원하는 항목을 선택한 후 기 설정된 키 입력(예를 들어 tab 키, 또는 enter 키) 또는 마우스 입력을 수행하면, 텍스트 입력요소 관리부(106)는 자동완성 키워드를 사용자가 선택한 항목의 내용으로 변경하여 텍스트 입력요소에 출력할 수 있다. 즉, 선택된 항목이 자동완성된 전체 문구로서 텍스트 입력요소에 출력될 수 있다. 이하에서는 자동완성 키워드를 대체하여 텍스트 입력요소에 출력된 전체 문구를 "자동완성 텍스트"라고 한다.When the user selects the desired item from the output auto-completion list and then performs a preset key input (for example, tab key or enter key) or mouse input, the text input element management unit 106 enters the auto-completion keyword into the user. You can change the content of the selected item and output it to the text input element. In other words, the selected item can be output to the text input element as an auto-completed entire phrase. Hereinafter, the entire phrase displayed in the text input element, replacing the auto-complete keyword, is referred to as “auto-complete text.”
이때, 자동완성 텍스트를 출력하기 위한 키 입력은 복수 개일 수 있으며, 텍스트 입력요소 관리부(106)는 입력되는 키 값에 따라 자동완성 텍스트를 다른 형태로 구성할 수 있다. 예를 들어, 자동완성은 제1 키 입력과 제1 키 입력과는 다른 제2 키 입력에 의해 이뤄질 수 있고, 텍스트 입력요소 관리부(106)는 제1 키 입력이 입력된 경우에는 전체 문구를 그대로 자동완성 텍스트로서 출력하고, 제2 키 입력이 입력된 경우에는 전체 문구의 첫 문자를 대문자로 변경하여 자동완성 텍스트로 출력할 수 있다. 다른 예로서, 텍스트 입력요소 관리부(106)는 제2 키 입력이 입력된 경우에는 전체 문구를 단수 표현 또는 복수 표현으로 변경하여 자동완성 텍스트로 출력할 수 있다. 또 다른 예로서, 텍스트 입력요소 관리부(106)는 제2 키 입력이 입력된 경우에는 전체 문구에 포함된 도면부호를 빼고 구성요소의 명칭만 자동완성 텍스트로 출력할 수 있다. 여기서 키 입력은 어느 하나의 키 입력뿐만 아니라 키 입력의 조합도 포함하는 것으로 이해될 수 있다.At this time, there may be multiple key inputs to output the auto-complete text, and the text input element management unit 106 can configure the auto-complete text in different forms depending on the input key value. For example, auto-completion may be performed by entering a first key and entering a second key different from the first key, and the text input element management unit 106 may print the entire phrase as is when the first key is entered. It is output as auto-complete text, and when a second key input is input, the first letter of the entire phrase can be changed to a capital letter and output as auto-complete text. As another example, when a second key input is input, the text input element management unit 106 may change the entire phrase into a singular expression or a plural expression and output it as an auto-complete text. As another example, when a second key input is input, the text input element management unit 106 may output only the name of the component as an auto-complete text, excluding the reference numerals included in the entire text. Here, key input can be understood to include not only any single key input but also a combination of key inputs.
사용자가 연속된 문자열의 중간에 텍스트를 입력하는 경우, 텍스트 입력요소 관리부(106)는 자동완성 리스트에서 선택된 항목의 앞쪽에 전방 텍스트를 결합시키고, 선택된 항목의 뒤쪽에 후방 텍스트를 결합시킴으로써 텍스트 입력요소에 입력되어 있던 다른 내용들이 그대로 유지되도록 할 수 있다. 이에 의해, 텍스트 입력요소의 임의의 위치에 텍스트가 입력되더라도 자동완성 기능이 제공될 수 있다.When a user enters text in the middle of a continuous string, the text input element management unit 106 combines the front text in front of the selected item in the auto-completion list and the back text in the back of the selected item to create the text input element. You can keep other contents entered in . As a result, an auto-completion function can be provided even if text is entered at any position of the text input element.
아울러, 텍스트 입력요소 관리부(106)는 자동완성 텍스트의 바로 뒤에 커서를 위치시킴으로써 사용자가 텍스트 입력을 원활하게 이어나갈 수 있게 할 수 있다. 이와 같은 기능은, 웹 브라우저의 window 객체의 selection 객체를 이용하여 커서의 위치 및 텍스트를 추출한 후, range 객체를 이용하여 자동완성 키워드를 자동완성 텍스트로 교체하는 방법으로도 구현될 수 있다.In addition, the text input element management unit 106 can enable the user to smoothly continue inputting text by positioning the cursor immediately after the autocomplete text. This function can also be implemented by extracting the cursor position and text using the selection object of the web browser's window object, and then replacing the autocomplete keyword with the autocomplete text using the range object.
또한, 텍스트 입력요소 관리부(106)는 자동완성 텍스트가 다른 부분들과 구별되어 인식될 수 있도록 자동완성 텍스트에 기 설정되어 있는 서식을 적용하고, 서식이 적용된 텍스트가 텍스트 입력요소에 출력되게 할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 텍스트 입력요소 내에서 텍스트에 서식을 부여할 수 있는 태그(일 예로 색상이나 폰트, 크기 등을 다르게 설정한 span 태그나 div 태그)로 자동완성 텍스트를 감싼 후, 텍스트 입력요소에 출력할 수 있다. 이에 의해, 텍스트 입력요소 관리부(106)에 의해 텍스트 입력요소 내에서 자동완성 텍스트들은 다른 텍스트들과 구별되어 인식될 수 있다. 서식을 부여하기 위한 설정 값 또는 태그 그 자체는 이미 자동완성 리스트 항목의 내용으로서 포함되어 있거나, 자동완성 리스트 항목의 속성 값으로 설정되어 있을 수도 있다.In addition, the text input element management unit 106 can apply a preset format to the auto-complete text so that the auto-complete text can be recognized separately from other parts, and cause the text with the format applied to be output to the text input element. there is. For example, the text input element management unit 106 creates auto-complete text with a tag that can format the text within the text input element (for example, a span tag or div tag with different colors, fonts, sizes, etc.). After wrapping, it can be output to a text input element. As a result, the autocomplete texts within the text input element can be recognized separately from other texts by the text input element management unit 106. The setting value for formatting or the tag itself may already be included as the content of the auto-completion list item, or may be set as an attribute value of the auto-completion list item.
이때, 텍스트 입력요소 관리부(106)는 자동완성 리스트에서 선택된 항목의 속성에 따라 다른 서식이 적용되도록 할 수 있다. 상술한 것처럼, 자동완성 리스트 생성부(105)는 자동완성 리스트에 포함되는 항목이 속성 값을 갖도록 할 수 있고, 자동완성 리스트 생성부(105)는 자동완성 텍스트에 서식을 적용할 때 해당 항목의 속성 값에 따라 다른 서식이 적용되도록 할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 선택된 항목이 구성요소 항목인 경우, 자동완성 텍스트가 다른 텍스트와 구별될 수 있는 제1 색상으로 표시되도록 서식을 지정할 수 있다. 또한, 텍스트 입력요소 관리부(106)는 선택된 항목이 관용어 항목인 경우, 자동완성 텍스트가 다른 텍스트의 색상 및 제1 색상과는 다른 제2 색상으로 표시되도록 하거나, 다른 텍스트의 색상과 동일한 색상으로 표시되도록 할 수 있다. 다른 예로서, 텍스트 입력요소 관리부(106)는 관용어 항목에 대해 서식 지정을 생략함으로써 자동완성 텍스트가 다른 텍스트의 서식과 동일한 서식으로 표시되도록 할 수도 있다.At this time, the text input element management unit 106 may allow different formats to be applied depending on the properties of the item selected from the auto-completion list. As described above, the auto-complete list generator 105 can ensure that items included in the auto-complete list have attribute values, and when applying formatting to the auto-complete text, the auto-complete list generator 105 creates the Different formats can be applied depending on the property value. For example, when the selected item is a component item, the text input element management unit 106 may format the autocomplete text to be displayed in a first color that can be distinguished from other texts. In addition, when the selected item is an idiom item, the text input element management unit 106 causes the auto-complete text to be displayed in a second color different from the color of the other text and the first color, or to display the autocomplete text in the same color as the color of the other text. It can be done as much as possible. As another example, the text input element management unit 106 may omit formatting for idiom items so that the autocomplete text is displayed in the same format as that of other texts.
또한, 텍스트 입력요소 관리부(106)는 자동완성 텍스트가 사용자에 의해 임의로 편집되지 못하도록 할 수 있다. 즉, 자동완성 텍스트의 내용은 편집이 불가능하게 설정될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 자동완성 텍스트를 span 태그 등의 소정의 태그로 감싸되, 해당 태그의 contenteditable 속성을 false로 지정할 수 있다. 이에 의해 태그로 감싸진 영역은 사용자가 임의로 수정할 수 없게 되는 바, 사용자가 자동완성 텍스트를 임의로 변경하는 것을 방지할 수 있다.Additionally, the text input element management unit 106 can prevent the auto-complete text from being arbitrarily edited by the user. In other words, the contents of the autocomplete text may be set to be uneditable. For example, the text input element management unit 106 may surround the auto-complete text with a predetermined tag such as a span tag, but may specify the contenteditable attribute of the tag as false. As a result, the area surrounded by the tag cannot be arbitrarily modified by the user, thereby preventing the user from arbitrarily changing the autocomplete text.
자동완성 텍스트의 편집 가능 여부는 자동완성 리스트에서 선택된 항목의 속성에 따라 다르게 설정될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 선택된 항목이 구성요소 항목인 경우에는 자동완성 텍스트가 편집 불가능하도록 하고, 관용어 항목인 경우에는 편집이 가능하도록 설정할 수 있다. 이에 의해, 본 실시예는 문서 내에서 표현의 통일성이 요구되는 구성요소가 잘못 기재되거나 임의로 변경되어 특허법 상 기재불비 오류가 발생하는 것을 방지할 수 있음과 동시에, 그와 무관한 관용어는 사용자가 자유롭게 편집할 수 있으므로 사용 편의성을 향상시킬 수 있다.Whether or not the autocomplete text can be edited can be set differently depending on the properties of the item selected in the autocomplete list. For example, the text input element management unit 106 may set the auto-complete text to be non-editable if the selected item is a component item, and set to editable if the selected item is an idiom item. As a result, this embodiment can prevent errors in description under the patent law from occurring due to incorrect or arbitrarily changing components that require unity of expression within a document, and at the same time, the user can freely use idioms unrelated thereto. Because it can be edited, convenience of use can be improved.
또한, 텍스트 입력요소 관리부(106)는 이벤트를 감지하여 자동완성 텍스트에 대한 삭제 이벤트(예를 들어 backspace나 delete 등의 키 입력)가 감지되는 경우, 자동완성 텍스트가 한번에 삭제되도록 할 수 있다. 즉, 자동완성 텍스트는 1회의 이벤트에 의해 삭제될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 자동완성 텍스트를 소정의 식별자 또는 태그로 감쌀 수 있으며, 삭제 이벤트의 입력 시 식별자 또는 태그로 감싸진 부분을 전체적으로 삭제함으로써 자동완성 텍스트가 한번의 키 입력으로 삭제되는 동작을 구현할 수 있다. 또한, 텍스트 입력요소 관리부(106)는 웹 브라우저의 windows 객체의 selection 객체를 이용하여, 자동완성 텍스트를 range로 지정한 후 삭제 이벤트 발생 시 지정된 range를 한번에 삭제하는 방법을 이용할 수도 있다. 이에 의해 텍스트 편집에 소요되는 시간을 더욱 줄일 수 있으므로, 문서 작성의 생산성이 더욱 향상될 수 있다.Additionally, the text input element management unit 106 may detect an event and, when a deletion event for the auto-complete text (for example, key input such as backspace or delete) is detected, delete the auto-complete text at once. In other words, the autocomplete text can be deleted by a single event. For example, the text input element management unit 106 can surround the auto-complete text with a predetermined identifier or tag, and upon inputting a deletion event, completely deletes the part wrapped with the identifier or tag, so that the auto-complete text can be created with a single key input. You can implement the deletion operation with . Additionally, the text input element management unit 106 may use the selection object of the windows object of the web browser to designate the autocomplete text as a range and then delete the designated range at once when a deletion event occurs. This can further reduce the time required for text editing, thereby further improving the productivity of document creation.
자동완성 텍스트를 1회의 이벤트로 삭제하는 기능의 제공 여부는 자동완성 리스트에서 선택된 항목의 속성에 따라 다르게 설정될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 선택된 항목이 구성요소 항목인 경우에는 1회의 이벤트로 자동완성 텍스트가 삭제되도록 하고, 관용어 항목인 경우에는 자동완성 텍스트를 구성하는 낱개의 문자의 삭제가 가능하도록 설정할 수 있다. 이에 의해 문서 내에서 표현의 통일성이 요구되는 구성요소가 잘못 기재되거나 임의로 변경되어 특허법 상 기재불비 오류가 발생하는 것을 방지할 수 있음과 동시에, 그와 무관한 관용어는 사용자가 자유롭게 편집할 수 있으므로 사용 편의성을 향상시킬 수 있다.Whether or not the function to delete autocomplete text as a one-time event is provided can be set differently depending on the properties of the item selected in the autocomplete list. For example, when the selected item is a component item, the text input element management unit 106 deletes the auto-complete text in a single event, and when the selected item is an idiom item, the individual characters constituting the auto-complete text are deleted. It can be set to enable. As a result, it is possible to prevent errors in description under the patent law from occurring due to incorrect or arbitrarily changed components that require unity of expression within the document. At the same time, unrelated idioms can be freely edited by the user, so they can be used. Convenience can be improved.
본 실시예에서와 같이 문서 작성 애플리케이션이 웹 애플리케이션으로 제공되는 경우, 자동완성 텍스트는 html의 태그에 의해 감싸져 관리될 수 있고, 이를 기초로 텍스트의 서식 지정, 편집 불가, 1회의 이벤트로 삭제 등의 기능이 제공될 수 있다. 이하의 설명에서, 태그에 감싸진 자동완성 텍스트를 "자동완성 블록"이라고 한다. 즉, 텍스트 입력요소 관리부(106)는 사용자가 텍스트 입력요소에 텍스트를 입력할 때 자동완성 블록을 추가하는 방법으로 자동완성 기능을 제공할 수 있다.When the document creation application is provided as a web application as in this embodiment, the autocomplete text can be managed by being wrapped in HTML tags, and based on this, the text can be formatted, cannot be edited, deleted with a one-time event, etc. The function may be provided. In the following description, the autocompletion text wrapped in tags is referred to as an “autocompletion block.” That is, the text input element management unit 106 can provide an auto-completion function by adding an auto-completion block when a user inputs text into a text input element.
한편, 문서 작성 애플리케이션이 html을 기반으로 동작하는 웹 애플리케이션이 아니라 임의의 프로그램 언어로 구현되는 독립적인 응용 소프트웨어일 수도 있다. 이 경우에도, 자동완성 텍스트는 텍스트 입력요소의 다른 부분들과 구별되는 서식으로 표시되거나, 임의로 편집되지 못하도록 관리되거나, 한번의 이벤트로 삭제되도록 구현될 수 있으며, 이와 같이 구현된 자동완성 텍스트는 자동완성 블록으로 이해될 수 있을 것이다.Meanwhile, the document creation application may not be a web application that operates based on HTML, but may be independent application software implemented in an arbitrary programming language. Even in this case, the auto-complete text can be displayed in a format that is distinct from other parts of the text input element, managed to prevent it from being arbitrarily edited, or implemented to be deleted in a single event, and the auto-complete text implemented in this way can be automatically It can be understood as a completion block.
텍스트 입력요소 관리부(106)는 자동완성 블록에 식별 값을 부여할 수 있고, 식별 값을 기초로 자동완성 블록을 관리할 수 있다. 예를 들어, 자동완성 블록이 span 태그를 이용하는 경우, span 태그의 id 값으로 텍스트 입력요소 관리부(106)에 의해 부여된 식별 값이 설정될 수 있고, 텍스트 입력요소 관리부(106)는 id 값을 기초로 자동완성 블록을 제어할 수 있다.The text input element management unit 106 can assign an identification value to the auto-complete block and manage the auto-complete block based on the identification value. For example, when the autocomplete block uses a span tag, the identification value given by the text input element management unit 106 may be set as the id value of the span tag, and the text input element management unit 106 may set the id value. You can control autocomplete blocks based on this.
이때, 텍스트 입력요소 관리부(106)에 의해 자동완성 블록에 부여되는 식별 값은 해당 자동완성 블록을 생성하는 자동완성 리스트의 항목에 따라 결정될 수 있다. 즉, 자동완성 리스트의 어느 하나의 항목에 의해 생성된 자동완성 블록들은 동일한 식별 값을 가질 수 있다. 일 예로, 텍스트 입력요소 관리부(106)에 의해 생성된 자동완성 블록이 갖는 식별 값은 해당 자동완성 블록에 대응되는 항목이 갖는 고유의 키 값일 수 있다. 실시예에 따라, 텍스트 입력요소 관리부(106)는 자동완성 리스트의 항목이 갖는 고유의 키 값이 아니라, 해당 항목의 데이터를 기초로 하여 별도의 식별 값을 생성할 수도 있다.At this time, the identification value given to the auto-complete block by the text input element management unit 106 may be determined according to the item in the auto-complete list that creates the corresponding auto-complete block. That is, autocomplete blocks created by any one item in the autocomplete list may have the same identification value. For example, the identification value of an auto-complete block generated by the text input element management unit 106 may be a unique key value of an item corresponding to the auto-complete block. Depending on the embodiment, the text input element management unit 106 may generate a separate identification value based on the data of the item, rather than the unique key value of the item in the auto-complete list.
상기의 예를 참조하면, 자동완성 리스트에 "motor 10", "shaft 20", "gear 30"의 항목이 포함되어 있고, 각각의 항목의 키 값으로 "motor10", "shaft20", "gear30"이 설정되어 있는 경우, 사용자가 자동완성 리스트에서 "motor 10"을 선택하여 생성된 자동완성 블록은 모두 "motor10"이라는 식별 값을 갖고, "shaft 20"을 선택하여 생성된 자동완성 블록은 모두 "shaft20"이라는 식별 값을 가질 수 있다.Referring to the example above, the autocomplete list includes the items "motor 10", "shaft 20", and "gear 30", and the key values of each item are "motor10", "shaft20", and "gear30". When set, all autocomplete blocks created when the user selects "motor 10" from the autocomplete list have the identification value "motor10", and all autocomplete blocks created when the user selects "shaft 20" have the value " It can have an identification value of “shaft20”.
텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 관리되는 특정 구성요소의 정보가 변경되면, 해당 구성요소에 대응되는 항목을 기초로 생성된 자동완성 블록의 값을 자동으로 변경해줄 수 있다. 즉, 사용자는 키워드 관리부(104)를 통해 구성요소의 정보를 변경함으로써, 텍스트 입력요소에 자동완성되어 있는 해당 구성요소에 대응되는 텍스트를 한번에 변경할 수 있다. 이와 같은 기능을 "일괄 업데이트"라고 한다. 구체적으로, 사용자가 키워드 관리부(104)를 통해 특정 구성요소의 정보를 변경하면, 키워드 관리부(104)는 텍스트 입력요소 관리부(106)에게 정보가 변경된 구성요소에 대응되는 자동완성 블록의 업데이트를 요청할 수 있다. 키워드 관리부(104)가 텍스트 입력요소 관리부(106)에게 전달하는 요청에는 해당 구성요소의 변경 전의 정보와 변경 후의 정보가 포함될 수 있다. 텍스트 입력요소 관리부(106)는 자동완성 블록의 업데이트 요청을 수신하면, 변경 전의 정보를 기초로 대응되는 자동완성 블록의 식별 값을 조회하고, 조회된 식별 값을 기초로 자동완성 블록의 데이터를 변경 후의 정보로 업데이트 할 수 있다. 이때, 필요에 따라서는 변경 후의 정보를 기초로 해당 자동완성 블록의 식별 값도 변경할 수 있다.When the information of a specific component managed by the keyword management unit 104 changes, the text input element management unit 106 can automatically change the value of the auto-complete block created based on the item corresponding to the component. . In other words, the user can change the text corresponding to the component auto-completed in the text input element at once by changing the information of the component through the keyword management unit 104. This type of function is called “bulk update.” Specifically, when the user changes the information of a specific component through the keyword management unit 104, the keyword management unit 104 requests the text input element management unit 106 to update the autocomplete block corresponding to the component whose information has been changed. You can. The request transmitted from the keyword management unit 104 to the text input element management unit 106 may include information before and after the change of the corresponding component. When the text input element management unit 106 receives an update request for an auto-complete block, it searches the identification value of the corresponding auto-complete block based on the information before the change and changes the data of the auto-complete block based on the searched identification value. It can be updated with later information. At this time, if necessary, the identification value of the corresponding auto-complete block can also be changed based on the information after the change.
상기의 예에서, 사용자가 키워드 관리부(104)를 통해 "motor"의 식별번호를 "10"에서 "100"으로 변경한 경우, 텍스트 입력요소 관리부(106)는 대응되는 항목의 고유 값인 "motor10"이 식별 값으로 설정되어 있는 자동완성 블록을 모두 조회한 후, 조회된 자동완성 블록의 자동완성 텍스트를 "motor 100"으로 변경함과 동시에, 식별 값을 변경된 "motor100"으로 업데이트할 수 있다.In the above example, when the user changes the identification number of “motor” from “10” to “100” through the keyword management unit 104, the text input element management unit 106 enters “motor10,” which is the unique value of the corresponding item. After searching all the autocomplete blocks set with this identification value, you can change the autocomplete text of the searched autocomplete block to "motor 100" and at the same time update the identification value to the changed "motor100".
자동완성 블록의 정보를 업데이트할 때, 텍스트 입력요소 관리부(106)는 텍스트 입력요소 내에서 자동완성 블록에 포함되어 있는 텍스트만 변경할 수 있다. 상기의 예에서, 텍스트 입력요소 내에 자동완성 블록으로 "motor 10"이 입력되어 있는 부분도 있고, 자동완성 블록이 아닌 일반 텍스트로서 "motor 10"이 입력되어 있는 부분도 있는 경우, 사용자가 키워드 관리부(104)에서 "motor"의 식별번호를 "10"에서 "100"으로 변경하였을 때, 일반 텍스트인 "motor 10"은 변경되지 않지만 자동완성 블록인 "motor 10"은 "motor 100"으로 변경될 수 있다. 이에 의해 본 실시예는 사용자에게 키워드 관리부(104)를 통해 구성요소 정보를 관리하고, 자동완성 기능을 이용해 문서를 작성하게 하는 것을 간접적으로 강제할 수 있고, 사용자의 시스템에 대한 숙련도를 향상시킬 수 있다.When updating the information of the auto-complete block, the text input element management unit 106 can only change the text included in the auto-complete block within the text input element. In the example above, if there are parts in the text input element where “motor 10” is entered as an auto-complete block, and there are also parts where “motor 10” is entered as plain text rather than an auto-complete block, the user must When the identification number of "motor" is changed from "10" to "100" in (104), the plain text "motor 10" will not change, but the autocomplete block "motor 10" will change to "motor 100". You can. As a result, this embodiment can indirectly force the user to manage component information through the keyword management unit 104 and create a document using the auto-complete function, and can improve the user's proficiency in the system. there is.
실시예에 따라, 키워드 관리부(104)에 의해 관리되는 구성요소의 정보가 변경되는 경우, 텍스트 입력요소 관리부(106)가 텍스트 입력요소에 입력된 전체 텍스트 또는 자동완성 블록들만을 대상으로 변경 전의 문자열을 변경 후의 문자열로 교체(replace)하는 방법으로 변경된 구성요소 정보를 텍스트 입력요소에 반영할 수 있다. 또한, 텍스트 입력요소 관리부(106)는 필요에 따라 사용자에게 텍스트 입력요소 내에서 변경될 부분들을 미리 사용자에게 보여주고, 전체 변경에 대한 사용자의 확인(confirm)을 받아 전체 변경을 수행하거나, 사용자가 선택한 부분들만이 변경되도록 할 수도 있다.Depending on the embodiment, when the information of the component managed by the keyword management unit 104 is changed, the text input element management unit 106 targets only the entire text or auto-complete blocks entered into the text input element and the string before the change. Changed component information can be reflected in the text input element by replacing with the changed string. In addition, the text input element management unit 106 shows the user in advance the parts to be changed within the text input element as needed, receives the user's confirmation of the entire change, and performs the entire change, or allows the user to confirm the entire change. You can also make sure that only selected parts are changed.
한편, 텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 관리되는 특정 구성요소의 정보가 삭제되면, 해당 구성요소에 대응되는 항목을 기초로 생성된 자동완성 블록을 단순한 자동완성 텍스트로 변경할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 삭제된 구성요소의 정보에 대응되는 자동완성 블록에서 서식 및 속성을 부여하는 태그 정보를 삭제하고, 단순한 텍스트 정보만 남길 수 있다. 다른 실시예로서, 텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 관리되는 특정 구성요소의 정보가 삭제되면, 텍스트 입력요소 내에 포함되어 있는 대응되는 자동완성 블록을 삭제할 수도 있다.Meanwhile, when the information of a specific component managed by the keyword management unit 104 is deleted, the text input element management unit 106 changes the autocomplete block generated based on the item corresponding to the component to a simple autocomplete text. You can. For example, the text input element management unit 106 may delete tag information that provides formatting and attributes from the auto-complete block corresponding to the information of the deleted element, leaving only simple text information. As another embodiment, when information on a specific element managed by the keyword management unit 104 is deleted, the text input element management unit 106 may delete the corresponding autocomplete block included in the text input element.
또한, 텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 새로운 구성요소의 정보가 추가되면, 해당 구성요소의 정보에 대응되는 텍스트가 텍스트 입력요소에 포함되어 있는 지 판단한 후, 대응되는 텍스트를 자동완성 블록으로 변경할 수도 있다.In addition, when information on a new element is added by the keyword management unit 104, the text input element management unit 106 determines whether the text corresponding to the information on the corresponding element is included in the text input element, and then determines whether the text input element contains the corresponding text. You can also change it to an autocomplete block.
상술한 것처럼, 텍스트 입력요소 관리부(106)는 자동완성 블록 단위로 서식 지정, 편집 불가, 1회의 이벤트로 삭제, 일괄 업데이트 기능을 제공할 수 있으므로, 사용자는 보다 명확하게 자신이 작성하는 문서의 내용을 인식하며 문서 작성을 할 수 있음과 동시에, 빠르고 정확한 편집을 할 수 있는 바, 문서는 보다 정확하고 신속하게 작성될 수 있다.As described above, the text input element management unit 106 can provide formatting in units of auto-completion blocks, non-editability, deletion in a single event, and batch update functions, so the user can more clearly understand the contents of the document he or she is writing. Since you can recognize and create documents and at the same time edit quickly and accurately, documents can be created more accurately and quickly.
한편, 실시예에 따라 텍스트 입력요소 관리부(106)는 기 설정된 트리거 문자가 입력되고, 트리거에 연속하여 문자가 입력되는 경우에만 자동완성 리스트가 출력되도록 할 수 있다. 예를 들어, "@"가 트리거 문자로 설정되어 있는 경우, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 "@"에 이어서 문자가 입력되는 경우에만 상술한 자동완성 기능을 제공할 수 있다. 이 경우, 텍스트 입력요소 관리부(106)는 자동완성 키워드가 자동완성 텍스트로 교체될 때, 트리거 문자는 제거된 상태로 텍스트 표시 영역에 출력되도록 할 수 있다. 구체적으로 상기의 예에 적용해 보면, 사용자가 단순히 "mot"을 입력하는 경우에는 자동완성 리스트가 출력되지 않지만 "@mot"을 입력하는 경우에는 "motor 10"이 포함된 자동완성 리스트가 출력되고, 사용자가 이를 선택하는 경우 자동완성 텍스트로서 "motor 10"이 "@mot"을 대체하여 입력될 수 있다. 이처럼 트리거 문자가 사용되면 사용자가 자동완성 리스트를 띄울지 말지 여부를 스스로 선택할 수 있다는 효과가 있다.Meanwhile, depending on the embodiment, the text input element management unit 106 may output an auto-completion list only when a preset trigger character is input and characters are input consecutively to the trigger. For example, when "@" is set as a trigger character, the text input element management unit 106 can provide the above-described auto-completion function only when a character following "@" is input into the text input element. In this case, the text input element management unit 106 may output the trigger character to the text display area with the trigger character removed when the auto-complete keyword is replaced with the auto-complete text. Specifically applied to the above example, if the user simply enters "mot", the auto-completion list is not displayed, but if the user enters "@mot", an auto-completion list containing "motor 10" is displayed. , if the user selects this, "motor 10" can be entered as the autocomplete text, replacing "@mot". When a trigger character is used like this, the effect is that the user can choose for themselves whether or not to display the autocomplete list.
또한, 텍스트 입력요소 관리부(106)는 자동완성 기능을 통해 구성요소 항목이 입력될 때, 자동완성되는 구성요소 항목을 지칭하기 위한 선행사(antecedent)를 추가할 수 있다. 예를 들어, 자동완성되는 구성요소 항목이, 해당 텍스트 입력요소 또는 기 설정된 다른 텍스트 입력요소에서 이미 사용된 경우, 텍스트 입력요소 관리부(106)는 구성요소 항목이 자동완성 될 때 "상기", "the" 등의 선행사를 자동으로 추가할 수 있다. 이때, 추가되는 선행사는 자동완성 텍스트의 일부로서 포함되어 자동완성 블록 내에 배치될 수도 있다.Additionally, the text input element management unit 106 may add an antecedent to refer to the automatically completed component item when the component item is entered through the autocomplete function. For example, if the auto-completed component item has already been used in the corresponding text input element or another preset text input element, the text input element management unit 106 may use "above" or "above" when the component item is auto-completed. Antecedents such as "the" can be added automatically. At this time, the added antecedent may be included as part of the autocomplete text and placed within the autocomplete block.
선행사를 구성요소 항목의 자동완성 시 자동으로 추가할 지 여부는 설정 값으로 관리될 수 있으며, 후술할 설정 관리 화면에서 사용자가 선택할 수 있도록 제공될 수 있다.Whether or not to automatically add an antecedent when autocompletion of component items can be managed as a setting value and can be provided for the user to select in the settings management screen, which will be described later.
텍스트 입력요소 관리부(106)는 기 설정되어 있는 문자열을 텍스트 입력요소에 추가하는 문자열 삽입 기능을 제공할 수 있다. 문자열 삽입 기능에 의해 입력되는 기 설정되어 있는 문자열(이하 "삽입 문자열"이라고 한다)은 키워드 관리부(104)에서 관리되는 구성요소는 포함하지 않을 수 있으며, 사용자가 문서의 작성과 관련하여 미리 입력하여 데이터베이스(140) 또는 데이터베이스(240)에 저장되어 있는 문자열일 수 있다.The text input element management unit 106 may provide a string insertion function that adds a preset string to the text input element. The preset string entered by the string insertion function (hereinafter referred to as “inserted string”) may not include components managed by the keyword management unit 104, and may not be entered in advance by the user in connection with the creation of the document. It may be a string stored in the database 140 or the database 240.
예를 들어, 삽입 문자열은 해당 케이스의 작성 시 사용자가 입력한, 발명의 명칭, 배경기술, 해결하고자 하는 과제, 발명의 효과, 도면의 간단한 설명, 청구항 등 해당 케이스에 관련된 내용일 수 있다. 이러한 케이스 관련 내용은 데이터베이스(140)에 저장된 것일 수 있다.For example, the inserted string may be content related to the case, such as the name of the invention, background technology, problem to be solved, effect of the invention, brief description of drawings, and claims, etc. entered by the user when creating the case. Such case-related content may be stored in the database 140.
또한, 삽입 문자열은 해당 케이스에 의존적이지 않은 내용으로서, 문서의 작성에 있어서 케이스의 종류에 관계없이 반복적으로 사용될 수 있는 문장이나 표현, 또는 특정 기술 용어를 설명하는 데 있어서 케이스의 종류에 관계없이 반복되어 사용될 수 있는 설명문 등 관용적인 내용을 포함할 수 있다. 본 실시예에서는, 이와 같이 반복적으로 사용되는 문장이나 표현, 관용적으로 사용되는 설명문을 상술한 관용어와 구별하여 "관용어구(idiomatic phrase)"라고 하겠다. 즉, 관용어는 자동완성 리스트의 항목으로 사용되는 관용적인 표현으로 이해될 수 있고, 관용어구는 삽입 문자열로서 사용되는 관용적인 표현으로 이해될 수 있다. 관용어구는 데이터베이스(240)에 저장될 수 있으며, 텍스트 입력요소 관리부(106)는 데이터 통신부(113)를 통해 저장되어 있는 관용어구를 제공받을 수 있다. 또한, 삽입 문자열 중 케이스에 관련된 내용은 문서 작성 장치(10)의 데이터베이스(140)에 저장되어 있고, 관용어구는 문서 작성 서버(20)의 데이터베이스(240)에 저장될 수도 있다. 이와 같은 관용어구를 저장하는 위치 및 방법은 예시적으로 제시된 것으로서, 본 발명의 사상은 이에 한정되지 않는다.In addition, the inserted string is content that is not dependent on the case, and is a sentence or expression that can be used repeatedly regardless of the type of case when creating a document, or is repeated regardless of the type of case when explaining a specific technical term. It may contain idiomatic content such as explanatory sentences that can be used as a text. In this embodiment, such repeatedly used sentences, expressions, and idiomatically used explanatory sentences will be referred to as “idiomatic phrases” to distinguish them from the above-mentioned idioms. In other words, an idiom can be understood as an idiomatic expression used as an item in an auto-completion list, and an idiom can be understood as an idiomatic expression used as an inserted string. Idioms can be stored in the database 240, and the text input element management unit 106 can receive the stored idioms through the data communication unit 113. Additionally, case-related content among the inserted strings may be stored in the database 140 of the document creation device 10, and idioms may be stored in the database 240 of the document creation server 20. The location and method for storing such idioms are provided as examples, and the spirit of the present invention is not limited thereto.
관용어구는 기술분야를 설명할 때 관용적으로 사용되는 표현, 선행기술을 설명할 때 관용적으로 사용되는 표현, 해결하고자 하는 과제를 설명할 때 관용적으로 사용되는 표현, 발명의 효과를 설명할 때 관용적으로 사용되는 표현, 도면의 간단한 설명에 사용되는 관용적인 표현, 청구항에 있어서 인용항을 나타낼 때 관용적으로 사용되는 표현 등을 포함할 수 있다. 이와 같은 관용어구는 다른 텍스트로 치환될 수 있는 치환 부분(replacement portion)을 포함할 수 있다. 구체적으로, 치환 부분은 치환 부분의 경계를 나타내는 경계 식별자(예를 들어, 치환될 영역의 시작과 끝을 나타낼 수 있는 문자)와 치환되어 삽입될 텍스트를 지시하는 지시 식별자를 포함할 수 있다. 예를 들어, 지시 식별자는 치환될 텍스트로, 발명의 명칭이나 청구항의 번호 등을 지시할 수 있다.Idiomatic phrases are expressions used idiomatically when describing a technical field, expressions used idiomatically when explaining prior art, expressions used idiomatically when describing a problem to be solved, and expressions used idiomatically when describing the effect of an invention. It may include expressions used in simple descriptions of drawings, idiomatic expressions used in simple descriptions of drawings, and expressions used idiomatically when indicating a cited claim in a claim. Such idioms may include a replacement portion that can be replaced with other text. Specifically, the replacement part may include a boundary identifier indicating the boundary of the replacement part (for example, a character that can indicate the start and end of the area to be replaced) and an indication identifier indicating the text to be replaced and inserted. For example, the instruction identifier is text to be replaced and may indicate the name of the invention or the number of the claim.
치환 부분은 관용어구가 텍스트 입력요소 관리부(106)에 의해 텍스트 입력요소에 자동으로 삽입될 때, 기 설정되어 있는 다른 텍스트로 치환되어 삽입될 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 관용어구를 텍스트 입력요소에 삽입할 때 관용어구가 치환 부분을 포함하고 있는지 여부 또는 해당 관용어구가 입력되는 텍스트 입력요소가 치환 부분을 포함하는 텍스트 입력요소인지를 판단할 수 있다. 치환 부분의 치환이 필요하다고 판단되면, 텍스트 입력요소 관리부(106)는 지시 식별자의 내용에 따라 다른 텍스트 입력요소에 기 입력되어 있는 텍스트를 읽어오거나, 사용자가 제공하는 정보 또는 사용자의 선택에 따라 구성된 텍스트로 치환 부분을 변경한 후, 해당 텍스트 입력요소에 출력할 수 있다.When an idiom is automatically inserted into a text input element by the text input element management unit 106, the replacement part can be inserted by replacing it with another preset text. Specifically, when inserting an idiom into a text input element, the text input element management unit 106 determines whether the idiom includes a replacement part or whether the text input element into which the idiom is input contains a substitution part. Awareness can be determined. If it is determined that replacement of the replacement part is necessary, the text input element management unit 106 reads the text already entered in another text input element according to the contents of the instruction identifier, or reads the text configured according to the information provided by the user or the user's selection. After changing the replacement part to text, it can be output to the corresponding text input element.
이때, 텍스트 입력요소에 출력되는 치환된 부분은 상술한 자동완성 블록과 같이 구성되어, 블록 단위로 서식 지정, 편집 불가, 1회의 이벤트로 삭제, 일괄 업데이트 기능 등을 가질 수 있다.At this time, the replaced part output to the text input element is configured like the auto-complete block described above, and can have block-by-block formatting, non-editability, deletion in a one-time event, and batch update functions.
화면 구성부(101)는 텍스트 입력요소에 추가될 문자열을 사용자로부터 선택받기 위한 화면(이하, "삽입 문자열 선택 화면"이라 한다)을 구성하여 사용자에게 제공할 수 있다. 삽입 문자열 선택 화면은 독립된 웹 페이지로 제공되거나, 웹 페이지의 일부 영역으로 제공되거나, 웹 페이지에 숨김 또는 접힘 가능한 영역으로 제공되거나, 팝업 페이지 또는 창 등으로 제공될 수 있다. 이때, 삽입 문자열 선택 화면은 삽입 문자열의 종류에 따라 독립적으로 구성될 수 있다. 일 예로, 삽입 문자열 선택 화면은 텍스트 입력요소의 주변에 제공된 버튼 등의 UI를 통해 호출될 수 있다.The screen configuration unit 101 may configure a screen for the user to select a string to be added to a text input element (hereinafter referred to as an “insertion string selection screen”) and provide the screen to the user. The insertion string selection screen may be provided as an independent web page, as a partial area of the web page, as a hidden or foldable area on the web page, or as a pop-up page or window. At this time, the insertion string selection screen can be configured independently depending on the type of insertion string. As an example, the insertion string selection screen can be called through UI such as buttons provided around the text input element.
사용자가 삽입 문자열 선택 화면에서 문자열을 선택하면, 텍스트 입력요소 관리부(106)는 선택된 문자열을 텍스트 입력요소에서 삽입할 수 있다. 이때, 선택된 문자열이 삽입되는 위치는 사용자가 삽입 문자열 선택 화면을 호출했을 때의 커서 위치일 수 있으며, 이를 위해 텍스트 입력요소 관리부(106)는 삽입 문자열 선택 화면의 호출 이벤트가 발생하였을 때의 커서 위치를 저장해 둘 수 있다. 만약, 커서가 텍스트 입력요소에 위치하지 않은 상태였다면, 삽입 문자열 선택 화면이 호출되지 않도록 제어될 수 있다.When a user selects a string on the insertion string selection screen, the text input element management unit 106 can insert the selected string into the text input element. At this time, the position where the selected string is inserted may be the cursor position when the user calls the insertion string selection screen, and for this, the text input element management unit 106 determines the cursor position when the call event of the insertion string selection screen occurs. You can save it. If the cursor is not located in the text input element, the insertion string selection screen can be controlled not to be called.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력되는 텍스트 정보를 실시간으로 데이터베이스(140)에 저장할 수 있다. 본 실시예에서 "실시간"은 데이터 변경과 관련된 이벤트가 발생하는 경우, 즉시 처리가 이뤄지는 것 또는 아주 짧은 시간 간격으로 처리가 이뤄지는 것으로 이해될 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 이벤트가 발생되어 텍스트 입력요소에 입력되어 있는 데이터가 변경되는 경우, 텍스트 입력요소 관리부(106)는 데이터 관리부(102)를 통해 데이터베이스(140)에 데이터를 입력하거나 데이터베이스(140)에 저장되어 있는 데이터를 업데이트할 수 있다. 일 예로, 데이터 관리부(102)는 텍스트 입력요소 관리부(106)에 의해 관리되는 텍스트 입력요소와 데이터베이스(140)에 형성되어 있는 데이터 저장부를 매칭시키고, 매칭되어 있는 텍스트 입력요소에서의 이벤트가 텍스트 입력요소 관리부(106)를 통해 감지되면 자동으로 데이터베이스(140)의 데이터 저장부가 업데이트되도록 할 수 있다. 이 경우, 사용자가 특별히 데이터를 저장하는 액션을 취하지 않아도 텍스트 입력요소에 입력된 데이터가 안전하게 관리될 수 있다. 실시예에 따라, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력된 데이터가 기 설정된 시간 간격으로 저장되거나, 데이터베이스(240)에 저장되도록 제공될 수도 있다.The text input element management unit 106 can store text information input into the text input element in the database 140 in real time. In this embodiment, “real-time” can be understood as processing immediately or at very short time intervals when an event related to data change occurs. Specifically, when an event occurs in a text input element and the data entered in the text input element changes, the text input element management unit 106 operates the database 140 through the data management unit 102. ), or data stored in the database 140 can be updated. As an example, the data management unit 102 matches the text input element managed by the text input element management unit 106 with the data storage unit formed in the database 140, and an event in the matched text input element is input to the text. When detected through the element management unit 106, the data storage of the database 140 can be automatically updated. In this case, data entered into the text input element can be safely managed without the user taking any special action to save the data. Depending on the embodiment, the text input element management unit 106 may store data entered into the text input element at preset time intervals or may be provided to store the data in the database 240.
한편, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소에 입력된 데이터가 그대로 다른 텍스트 입력요소에서 사용되도록 할 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소에 "A"라는 데이터가 입력되어 있는 경우, 다른 텍스트 입력요소에서 "A"가 데이터의 일부로서 포함되도록 다른 텍스트 입력요소의 데이터를 설정할 수 있다. 이때, 사용자에 의해 "A"가 다른 값, 예를 들어 "AA"으로 변경되는 경우, 텍스트 입력요소 관리부(106)는 다른 텍스트 입력요소에 입력되어 있던 "A"를 "AA"로 변경할 수 있다.Meanwhile, the text input element management unit 106 can allow data input to one text input element to be used as is in another text input element. Specifically, when data "A" is input into one text input element, the text input element management unit 106 stores the data of the other text input element so that "A" is included as part of the data in the other text input element. can be set. At this time, when "A" is changed by the user to another value, for example, "AA", the text input element management unit 106 can change "A" entered in another text input element to "AA". .
텍스트 입력요소 관리부(106)는 이와 같은 기능을 상술한 자동완성 기능과 유사하게 제공할 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 "A"를 태그로 감싼 후 태그에 고유의 키 값을 부여한 후 다른 텍스트 입력요소의 데이터로 추가할 수 있다. 이후, "A"가 "AA"로 변경되는 이벤트가 발생되면, 텍스트 입력요소 관리부(106)는 다른 텍스트 입력요소에 포함되어 있는 해당 고유 키 값에 대응되는 태그를 검색한 후, 그 내용을 "A"에서 "AA"로 변경할 수 있다. 이때, 텍스트 입력요소 관리부(106)는 다른 텍스트 입력요소에 입력되어 있는 "A"를 감싸는 태그를 통해 상술한 자동완성 블록과 마찬가지로 서식 지정, 편집 불가, 1회의 이벤트로 삭제, 일괄 업데이트 기능을 제공할 수 있다.The text input element management unit 106 can provide this function similar to the auto-completion function described above. Specifically, the text input element management unit 106 can wrap “A” with a tag, give the tag a unique key value, and then add it as data for another text input element. Afterwards, when an event occurs that changes "A" to "AA", the text input element management unit 106 searches for a tag corresponding to the unique key value included in another text input element and then records the contents as " You can change from “A” to “AA”. At this time, the text input element management unit 106 provides formatting, non-editable, one-time event deletion, and batch update functions, similar to the above-described auto-complete block, through a tag surrounding “A” entered in another text input element. can do.
한편, 텍스트 입력요소 관리부(106)에 의해 제어되는 텍스트 입력요소로의 데이터 입력은 키보드나 마우스 외에 다른 입출력 인터페이스(19)에 의해 제공될 수도 있다. 예를 들어, 문서 작성 장치(10)는 입출력 인터페이스(19)로서 마이크를 더 포함할 수 있고, 텍스트 입력요소 관리부(106)는 마이크를 통해 수집된 음성 데이터를 텍스트 데이터로 변환한 후, 대응되는 텍스트 입력요소에 변환된 텍스트 데이터를 입력할 수도 있다. 이를 위해, 텍스트 입력요소 관리부(106)는 음성 데이터를 텍스트 데이터로 변환하는 기능을 구비할 수 있다. 음성 정보의 텍스트 변환을 위해 외부 서비스 연동부(111)가 활용될 수도 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 마이크를 통해 수집된 음성 데이터를 외부 서비스 연동부(111)를 통해 제3 자에게 제공하고, 제3 자가 제공하는 서비스에 의해 변환된 텍스트 데이터를 외부 서비스 연동부(111)를 통해 전달받을 수 있다.Meanwhile, data input to the text input element controlled by the text input element management unit 106 may be provided by an input/output interface 19 other than the keyboard or mouse. For example, the document writing device 10 may further include a microphone as the input/output interface 19, and the text input element management unit 106 converts voice data collected through the microphone into text data and then converts the voice data collected through the microphone into text data. You can also input converted text data into the text input element. To this end, the text input element management unit 106 may be equipped with a function to convert voice data into text data. The external service linking unit 111 may be used to convert voice information into text. Specifically, the text input element management unit 106 provides voice data collected through a microphone to a third party through the external service linking unit 111, and text data converted by a service provided by a third party is provided to an external service. It can be transmitted through the interlocking unit 111.
이때, 텍스트 입력요소 관리부(106)는 변환된 텍스트의 내용 중 자동완성 리스트에 대응되는 항목이 있는 경우, 이를 자동완성 블록으로 변환하여 텍스트 입력요소에 출력할 수 있다. 상술한 예에서, 음성으로부터 텍스트 데이터로 변환된 내용 중 "motor" 또는 "motor 10" 등이 포함되어 있는 경우, 텍스트 입력요소 관리부(106)는 해당 텍스트를 대응되는 자동완성 블록으로 변경하여 텍스트 입력요소에 출력할 수 있다. 이와 같은 기능을 통해, 사용자는 키보드를 이용하지 않고 음성으로도 문서의 내용을 입력할 수 있고, 자동완성 기능까지 그대로 이용할 수 있으므로, 사용 편의성이 매우 향상될 수 있다.At this time, if there is an item corresponding to the auto-completion list among the contents of the converted text, the text input element management unit 106 may convert it into an auto-completion block and output it to the text input element. In the above example, if “motor” or “motor 10”, etc. are included in the content converted from voice to text data, the text input element management unit 106 changes the text into the corresponding auto-complete block and inputs the text. It can be output to an element. Through this function, the user can input the contents of the document by voice without using the keyboard and even use the auto-complete function, greatly improving usability.
한편, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소에서 발생하는 이벤트에 의해 다른 텍스트 입력요소를 제어할 수도 있다. 예를 들어, 어느 하나의 텍스트 입력요소에 입력된 데이터는 다른 텍스트 입력요소의 내용으로서 참조될 수 있으며, 텍스트 입력요소 관리부(106)는 참조된 텍스트 입력요소의 데이터가 변경되는 경우, 이에 관련된 다른 텍스트 입력요소의 내용을 자동으로 업데이트할 수 있다. 구체적인 예로서, 후술할 청구항 작성 화면에 제공되는 독립항의 카테고리 입력요소의 데이터가 변경되는 경우, 텍스트 입력요소 관리부(106)는 해당 독립항을 인용하고 있는 종속항들의 카테고리 입력요소의 데이터를 변경할 수 있다.Meanwhile, the text input element management unit 106 may control other text input elements based on events occurring in one text input element. For example, data entered into one text input element may be referenced as the contents of another text input element, and when the data of the referenced text input element changes, the text input element management unit 106 The contents of text input elements can be automatically updated. As a specific example, when the data of the category input element of the independent claim provided on the claim creation screen to be described later is changed, the text input element management unit 106 may change the data of the category input element of the dependent claims citing the corresponding independent claim. .
 
외부 서비스 연동부(111)는 문서 작성 장치(10) 또는 문서 작성 서버(20)에서 제공하지 않는 서비스를 제공하는 제3 자가 제공하는 외부 서비스에 데이터를 전달하거나 해당 데이터가 처리된 결과를 수신할 수 있다. 예를 들어, 제3 자가 제공하는 서비스는 특허 관련 정보 조회 서비스, 음성-텍스트 변환 서비스, 번역예 제공 서비스, 기계 번역 서비스, 사전 서비스, 카드 결제 서비스, 계좌이체 서비스 등일 수 있다. 외부 서비스 연동부(111)는 제3 자가 제공하는 서비스 API를 호출하여 제3 자 측에 데이터를 전달하고, 처리 결과를 수신하여 문서 작성 화면에 제공할 수 있다.The external service linking unit 111 can transmit data to an external service provided by a third party that provides services not provided by the document preparation device 10 or the document preparation server 20 or receive the results of processing the data. You can. For example, services provided by third parties may include patent-related information inquiry services, voice-to-text conversion services, translation example provision services, machine translation services, dictionary services, card payment services, and bank transfer services. The external service linking unit 111 may call a service API provided by a third party, transmit data to the third party, receive the processing result, and provide it on the document creation screen.
 
한편, 상술한 문서 작성 장치(10)의 프로세서(100)의 구성요소들에 의해 수행되는 기능들은 문서 작성 서버(20)의 프로세서(200)에 의해서도 수행될 수 있다. 구체적으로, 문서 작성 서버(20)의 프로세서(200)는 문서 작성 장치(10)의 화면 구성부(101), 데이터 관리부(102), 케이스 관리부(103), 키워드 관리부(104), 자동완성 리스트 생성부(105), 텍스트 입력요소 관리부(106), 키워드 추출부(107), 텍스트 추출부(108), 텍스트 생성부(110), 외부 서비스 연동부(111), 데이터 통신부(113)에 각각 대응될 수 있는 화면 구성부(201), 데이터 관리부(202), 케이스 관리부(203), 키워드 관리부(204), 자동완성 리스트 생성부(205), 텍스트 입력요소 관리부(206), 키워드 추출부(207), 텍스트 추출부(208), 텍스트 생성부(210), 외부 서비스 연동부(211), 데이터 통신부(213) 중 하나 이상을 포함할 수 있다. Meanwhile, the functions performed by the components of the processor 100 of the document creation device 10 described above may also be performed by the processor 200 of the document creation server 20. Specifically, the processor 200 of the document creation server 20 includes the screen configuration unit 101, data management unit 102, case management unit 103, keyword management unit 104, and auto-completion list of the document creation device 10. Each of the creation unit 105, text input element management unit 106, keyword extraction unit 107, text extraction unit 108, text creation unit 110, external service linking unit 111, and data communication unit 113. The corresponding screen configuration unit 201, data management unit 202, case management unit 203, keyword management unit 204, auto-complete list creation unit 205, text input element management unit 206, keyword extraction unit ( 207), a text extraction unit 208, a text generation unit 210, an external service linking unit 211, and a data communication unit 213.
이때, 상술된 문서 작성 장치(10)의 프로세서(100)의 구성요소의 설명 중 문서 작성 서버(20)으로 데이터를 전달하거나 문서 작성 서버(20)으로부터 데이터를 전달받아 사용하는 것으로 설명된 것은 대응되는 프로세서(200)의 구성요소가 문서 작성 장치(10)로 데이터를 전달하거나, 문서 작성 장치(10)로부터 데이터를 전달받거나, 문서 작성 서버(20)에 저장되어 있는 데이터를 사용하는 것으로 이해될 수 있다. 또한, 상술된 문서 작성 장치(10)의 프로세서(100)의 구성요소의 설명 중 문서 작성 서버(20)에 저장된 데이터를 이용하는 것으로 설명된 것은, 대응되는 프로세서(200)의 구성요소가 문서 작성 장치(10)에 저장된 데이터를 전달받아 이용하거나 문서 작성 서버(20)에 저장된 데이터를 이용하는 것으로 이해될 수 있다.At this time, in the description of the components of the processor 100 of the document creation device 10 described above, the description of transmitting data to the document creation server 20 or receiving data from the document creation server 20 and using it corresponds to It will be understood that the components of the processor 200 transmit data to the document creation device 10, receive data from the document creation device 10, or use data stored in the document creation server 20. You can. In addition, in the description of the components of the processor 100 of the document creation device 10 described above, the description of using data stored in the document creation server 20 means that the corresponding components of the processor 200 are the document creation device. It can be understood as receiving and using data stored in (10) or using data stored in the document creation server (20).
문서 작성 장치(10)의 프로세서(100)와 문서 작성 서버(20)의 프로세서(200)의 서로 대응되는 각각의 구성요소들은 문서 작성 장치(10)의 프로세서(100)와 문서 작성 서버(20)의 프로세서(200)에 모두 제공될 수도 있고, 문서 작성 장치(10)의 프로세서(100)와 문서 작성 서버(20)의 프로세서(200) 중 어느 하나에 선택적으로 제공될 수도 있다. 어느 하나의 구성요소가 문서 작성 장치(10)의 프로세서(100)와 문서 작성 서버(20)의 프로세서(200)에 모두 제공되는 경우, 해당 구성요소의 기능은 문서 작성 장치(10)의 프로세서(100)와 문서 작성 서버(20)의 프로세서(200)에서 모두 수행될 수도 있고, 일부 기능은 문서 작성 장치(10)의 프로세서(100)에서 다른 기능은 문서 작성 서버(20)의 프로세서(200)에서 나뉘어 수행될 수도 있다. 예를 들어, 문서 작성 장치(10)의 프로세서(100)의 구성요소들은 문서 작성 애플리케이션 또는 문서 작성 화면으로부터 데이터를 수집하여 문서 작성 서버(20)의 프로세서(200)의 대응되는 구성요소로 전달하고, 문서 작성 서버(20)의 프로세서(200)의 대응되는 구성요소로부터 전달된 데이터를 문서 작성 애플리케이션 또는 문서 작성화면으로 출력하는 기능을 수행할 수 있다. 그리고, 문서 작성 서버(20)의 프로세서(200)의 구성요소들은 문서 작성 장치(10)의 프로세서(100)의 대응되는 구성요소들로부터 전달된 데이터를 기초로 문서 작성 장치(10)의 프로세서(100)의 대응되는 구성요소들이 수행하는 기능을 수행할 수 있으며, 수행 결과를 문서 작성 장치(10)의 프로세서(100)의 대응되는 구성요소로 전달할 수도 있다. 이때, 문서 작성 서버(20)의 프로세서(200)의 구성요소들은 데이터 관리를 위해 문서 작성 장치(10)의 메모리(14) 및 데이터베이스(140)뿐만 아니라 문서 작성 서버(20)의 메모리(24) 및 데이터베이스(240)도 이용할 수도 있다.Each corresponding component of the processor 100 of the document creation device 10 and the processor 200 of the document creation server 20 is the processor 100 of the document creation device 10 and the document creation server 20. It may be provided to both processors 200, or may be selectively provided to any one of the processor 100 of the document creation device 10 and the processor 200 of the document creation server 20. If any one component is provided to both the processor 100 of the document creation device 10 and the processor 200 of the document creation server 20, the function of the component is limited to the processor of the document creation device 10 ( 100) and the processor 200 of the document creation server 20, some functions may be performed by the processor 100 of the document creation device 10, and other functions may be performed by the processor 200 of the document creation server 20. It may be carried out separately. For example, the components of the processor 100 of the document creation device 10 collect data from a document creation application or a document creation screen and transmit it to the corresponding components of the processor 200 of the document creation server 20. , the function of outputting data transmitted from the corresponding component of the processor 200 of the document creation server 20 to a document creation application or a document creation screen can be performed. In addition, the components of the processor 200 of the document creation server 20 are based on the data transmitted from the corresponding components of the processor 100 of the document creation device 10. The functions performed by the corresponding components of the processor 100 may be performed, and the performance results may be transmitted to the corresponding components of the processor 100 of the document writing device 10. At this time, the components of the processor 200 of the document creation server 20 include the memory 14 and database 140 of the document creation device 10 as well as the memory 24 of the document creation server 20 for data management. and database 240 may also be used.
또한, 어느 하나의 구성요소는 문서 작성 장치(10)의 프로세서(100)에만 제공되거나 문서 작성 서버(20)의 프로세서(200)에만 제공될 수도 있다. 이 경우, 해당 구성요소는 독립적으로 그 기능을 수행할 수 있다. 예를 들어, 문서 작성 장치(10)의 프로세서(100) 또는 문서 작성 서버(20)의 프로세서(200) 중 어느 하나에만 제공된 구성요소는 네트워크(30)를 통한 다른 장치와 데이터 송수신 없이 해당 구성요소가 필요로 하는 데이터 관리 및 데이터 처리 기능을 수행할 수 있다.Additionally, one component may be provided only to the processor 100 of the document creation device 10 or may be provided only to the processor 200 of the document creation server 20. In this case, the component can perform its function independently. For example, a component provided only to either the processor 100 of the document creation device 10 or the processor 200 of the document creation server 20 is a component provided without transmitting or receiving data to or from another device through the network 30. It can perform the data management and data processing functions required.
문서 작성 서버(20)의 프로세서(200)에 제공되는 구성요소는 그 기능 수행을 위해 필요한 데이터를 문서 작성 장치(10)로부터 전달받아 처리할 수 있다. 예를 들어, 문서 작성 서버(20)의 프로세서(200)는 문서 작성 애플리케이션 또는 문서 작성 화면을 통해 입력되는 데이터를 문서 작성 장치(10)로부터 전달받아 처리할 수 있다. 또한, 문서 작성 서버(20)의 프로세서(200)에 제공되는 구성요소는 문서 작성 애플리케이션 또는 문서 작성 화면을 통해 사용자에게 제공되거나, 문서 작성 애플리케이션 또는 문서 작성 화면의 기능 수행을 위해 필요한 데이터를 문서 작성 장치(10)로 전달할 수 있다.Components provided to the processor 200 of the document creation server 20 may receive data required to perform its function from the document creation device 10 and process it. For example, the processor 200 of the document creation server 20 may receive data input through a document creation application or a document creation screen from the document creation device 10 and process it. In addition, the components provided to the processor 200 of the document creation server 20 are provided to the user through a document creation application or document creation screen, or provide data necessary to perform the function of the document creation application or document creation screen. It can be delivered to the device 10.
문서 작성 장치(10)의 프로세서(100)에 의해 문서 작성 서버(20)의 프로세서(200)로 전달되는 데이터는 문서 작성 애플리케이션 또는 문서 작성 화면을 통해 입력된 데이터이거나 이를 문서 작성 장치(10)의 프로세서(100)가 가공한 데이터일 수 있다. 또한, 문서 작성 장치(10)의 프로세서(100)는 메모리(14)에 저장되어 있던 데이터 또는 이를 가공한 데이터를 문서 작성 서버(20)의 프로세서(200)로 전달할 수 있다. 또한, 문서 작성 장치(10)의 프로세서(100)는 문서 작성 서버(20)의 프로세서(200)로부터 요청받은 문서 작성 장치(10) 측 데이터를 제공할 수도 있다. 또한, 문서 작성 장치(10)의 프로세서(100)는 제3 자로부터 제공받은 데이터 또는 이를 가공한 데이터를 문서 작성 서버(20)의 프로세서(200)에 제공할 수도 있다. 또한, 문서 작성 장치(10)의 프로세서(100)는 상기와 같은 데이터를 종합하여 처리한 결과를 문서 작성 서버(20)의 프로세서(200)에 제공할 수도 있다.The data transmitted by the processor 100 of the document creation device 10 to the processor 200 of the document creation server 20 is data input through a document creation application or a document creation screen, or is transmitted by the processor 100 of the document creation device 10. It may be data processed by the processor 100. Additionally, the processor 100 of the document creation device 10 may transmit data stored in the memory 14 or processed data to the processor 200 of the document creation server 20. Additionally, the processor 100 of the document creation device 10 may provide document creation device 10 side data requested from the processor 200 of the document creation server 20. Additionally, the processor 100 of the document creation device 10 may provide data provided by a third party or processed data to the processor 200 of the document creation server 20. Additionally, the processor 100 of the document creation device 10 may provide the results of combining and processing the above data to the processor 200 of the document creation server 20.
문서 작성 서버(20)의 프로세서(200)로부터 문서 작성 장치(10)의 프로세서(100)로 전달되는 데이터는 문서 작성 서버(20)의 프로세서(200)가 문서 작성 장치(10)의 프로세서(100)로부터 전달받은 데이터를 처리하거나 가공한 결과일 수 있다. 또한, 문서 작성 서버(20)의 프로세서(200)는 데이터베이스(140, 240)에 저장되어 있던 데이터 또는 이를 가공한 데이터를 문서 작성 장치(10)의 프로세서(100)로 전달할 수 있다. 또한, 문서 작성 서버(20)의 프로세서(200)는 문서 작성 장치(10)의 프로세서(100)로부터 요청받은 문서 작성 서버(20) 측 데이터를 제공할 수도 있다. 또한, 문서 작성 서버(20)의 프로세서(200)는 제3 자로부터 제공받은 데이터 또는 이를 가공한 데이터를 문서 작성 장치(10)의 프로세서(100)에 제공할 수도 있다. 또한, 문서 작성 서버(20)의 프로세서(200)는 상기와 같은 데이터를 종합하여 처리한 결과를 문서 작성 장치(10)의 프로세서(100)에 제공할 수도 있다.Data transmitted from the processor 200 of the document creation server 20 to the processor 100 of the document creation device 10 is transmitted from the processor 200 of the document creation server 20 to the processor 100 of the document creation device 10. It may be the result of processing or processing data received from ). Additionally, the processor 200 of the document creation server 20 may transmit data stored in the databases 140 and 240 or processed data to the processor 100 of the document creation device 10. Additionally, the processor 200 of the document creation server 20 may provide document creation server 20 side data requested from the processor 100 of the document creation device 10. Additionally, the processor 200 of the document creation server 20 may provide data provided by a third party or processed data to the processor 100 of the document creation device 10. Additionally, the processor 200 of the document creation server 20 may provide the results of combining and processing the above data to the processor 100 of the document creation device 10.
상기와 같은 문서 작성 장치(10)와 문서 작성 서버(20) 사이에서의 데이터의 전달은 문서 작성 장치(10)의 통신 모듈(18)과 문서 작성 서버(20)의 통신모듈(28)을 통해 수행될 수 있으며, 문서 작성 장치(10)의 데이터 통신부(113) 및 문서 작성 서버(20)의 데이터 통신부(213)에 의해 제어될 수 있다. 또한, 각각의 구성요소는 직접 또는 문서 작성 장치(10)의 데이터 통신부(113) 및 문서 작성 서버(20)의 데이터 통신부(213)를 이용해 데이터를 송수신할 수 있다.Data is transmitted between the document creation device 10 and the document creation server 20 as described above through the communication module 18 of the document creation device 10 and the communication module 28 of the document creation server 20. It can be performed and controlled by the data communication unit 113 of the document creation device 10 and the data communication unit 213 of the document creation server 20. Additionally, each component can transmit and receive data directly or using the data communication unit 113 of the document creation device 10 and the data communication unit 213 of the document creation server 20.
도 4는 도 1의 문서 작성 장치(10)에 의해 문서가 작성되는 과정을 설명하는 순서도이다.FIG. 4 is a flowchart explaining the process of creating a document by the document writing device 10 of FIG. 1.
일 실시예에 따른 문서 작성 장치(10)는 문서를 작성하기 위한 문서 작성 화면을 구성하여 입출력 인터페이스(19)를 통해 사용자에게 제공하는 화면 구성부(101); 문서의 내용에 텍스트로 포함될 수 있는 키워드를 사용자로부터 입출력 인터페이스(19)를 통해 입력받고 관리하는 키워드 관리부(104); 문서 작성 화면에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소를 관리하는 텍스트 입력요소 관리부(106); 텍스트 입력요소 관리부(106)를 통해 텍스트 입력요소에 입력된 텍스트 중 키워드 관리부(104)에 의해 관리되는 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하는 텍스트 추출부(108); 및 텍스트 추출부(108)에 의해 추출된 텍스트들을 입력 값으로서 자연어 처리를 기반으로 학습된 텍스트 생성 모델에 제공하여 키워드가 포함되어 있는 텍스트를 생성하는 텍스트 생성부(110)를 포함할 수 있다.The document creation device 10 according to one embodiment includes a screen configuration unit 101 that configures a document creation screen for creating a document and provides it to the user through the input/output interface 19; a keyword management unit 104 that receives and manages keywords that can be included as text in the content of the document from the user through the input/output interface 19; a text input element management unit 106 that manages text input elements provided on the document creation screen and receiving document content from the user; A text extraction unit 108 that extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit 104 from the text input into the text input element through the text input element management unit 106; and a text generator 110 that generates text containing keywords by providing the texts extracted by the text extraction unit 108 as input values to a text generation model learned based on natural language processing.
여기서 텍스트 생성 모델은 문장 또는 문단 내에서 추출한 키워드와, 문장 또는 문단의 속성(예: 정의, 기능, 다른 구성요소와의 관계 등)을 입력 데이터로 하고, 문장 또는 문단 데이터를 결과 데이터로 하는 지도학습 또는 비지도학습된 모델일 수 있다.Here, the text generation model uses keywords extracted from a sentence or paragraph and the properties of the sentence or paragraph (e.g. definition, function, relationship with other components, etc.) as input data, and a map with the sentence or paragraph data as the result data. It can be a trained or unsupervised model.
텍스트 생성 모델은 문서 작성 장치(10)와 통신 가능하게 제공되는 문서 작성 서버(20)에 제공되고, 텍스트 생성부(110)는 데이터 통신부(113)를 통해 문서 작성 서버(20)로 텍스트 추출부(108)에 의해 추출된 텍스트를 키워드 관리부(104)에 의해 관리되는 키워드 정보와 함께 문서 작성 서버(20)로 전달하고, 텍스트 생성부(110)는 데이터 통신부(113)를 통해 문서 작성 서버(20)로부터 텍스트 생성 모델에 의해 생성된 텍스트를 전달받을 수 있다.The text generation model is provided to the document creation server 20, which is provided to communicate with the document creation device 10, and the text generation unit 110 is sent to the document creation server 20 through the data communication unit 113. The text extracted by (108) is transmitted to the document creation server (20) along with the keyword information managed by the keyword management unit (104), and the text creation unit (110) is sent to the document creation server (20) through the data communication unit (113). You can receive text generated by the text generation model from 20).
키워드 관리부(104)에 의해 관리되는 키워드로서 텍스트 입력요소 관리부(106)에 입력되어 있는 텍스트에 포함된  하나 이상의 키워드를 추출하는 키워드 추출부(107)를 더 포함하고, 화면 구성부(101)는 키워드 추출부(107)에 의해 추출된 키워드를 사용자에게 표시해 주고, 사용자로부터 하나 이상의 키워드를 선택받는 키워드 선택 화면을 입출력 인터페이스(19)를 통해 사용자에게 제공하고, 텍스트 추출부(108)는 키워드 선택 화면을 통해 사용자가 선택한 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하여 텍스트 생성부(110)에 제공할 수 있다.It further includes a keyword extraction unit 107 that extracts one or more keywords contained in the text input to the text input element management unit 106 as a keyword managed by the keyword management unit 104, and the screen configuration unit 101 The keywords extracted by the keyword extractor 107 are displayed to the user, and a keyword selection screen in which one or more keywords are selected by the user is provided to the user through the input/output interface 19, and the text extractor 108 selects the keywords. The text of the sentence or paragraph containing the keyword selected by the user can be extracted through the screen and provided to the text generator 110.
또한, 문서 작성 장치(10)에 의해 작성되는 문서는, 제1 부분과, 제1 부분과는 다른 제2 부분을 포함하고, 키워드 추출부(107) 및 텍스트 추출부(108)는 제1 부분 및 제2 부분 중 어느 하나에서 키워드 및 텍스트를 추출하고, 텍스트 생성부(110)는  제1 부분 및 제2 부분 중 다른 하나의 속성에 맞는 텍스트를 생성할 수 있다.In addition, the document created by the document creation device 10 includes a first part and a second part different from the first part, and the keyword extracting unit 107 and the text extracting unit 108 contain the first part. and a keyword and text are extracted from one of the first part and the second part, and the text generator 110 may generate text that matches the attributes of the other one of the first part and the second part.
이때, 텍스트 생성부(110)는 복수 개의 텍스트를 생성하고, 화면 구성부(101)는 텍스트 생성부(110)가 생성한 복수 개의 텍스트를 사용자에게 표시해 주고, 사용자로부터 원하는 텍스트를 선택받는 텍스트 선택 화면을 입출력 인터페이스(19)를 통해 사용자에게 제공하고, 텍스트 입력요소 관리부(106)는 사용자가 텍스트 선택 화면을 통해 선택한 텍스트를 텍스트 입력요소에 출력할 수 있다.At this time, the text generation unit 110 generates a plurality of texts, the screen composition unit 101 displays the plurality of texts generated by the text generation unit 110 to the user, and the text selection function allows the user to select the desired text. The screen is provided to the user through the input/output interface 19, and the text input element management unit 106 can output the text selected by the user through the text selection screen to the text input element.
여기서, 제1 부분과 제2 부분은 법률에 의해 서로 다른 규칙에 따라 작성되어야 하는 것일 수 있다.Here, the first part and the second part may be prepared according to different rules by law.
예를 들어, 문서는 특허 명세서이고,  제1 부분은 발명의 상세한 설명 및 특허청구범위 중 어느 하나이고, 제2 부분은 발명의 상세한 설명 및 특허청구범위 중 다른 하나일 수 있다.For example, the document may be a patent specification, the first part may be one of the description and claims, and the second part may be the other one of the description and claims.
문서 작성 장치(10)를 이용하여 문서를 작성하는 방법으로서, 화면 구성부(101)에 의해 구성된 문서를 작성하기 위한 화면을 입출력 인터페이스(19)를 통해 사용자에게 제공하는 단계(S1); 키워드 관리부(104)를 통해 문서의 내용에 텍스트로 포함될 수 있는 키워드 정보의 등록, 삭제, 수정 명령을 사용자로부터 입력받고, 명령에 따라 키워드 정보를 데이터베이스(140)에 저장하는 단계(S2); 텍스트 입력요소 관리부(106)가 텍스트 입력요소를 통해 사용자로부터 문서의 내용으로서 키워드를 포함하는 텍스트를 입력받는 단계(S3); 텍스트 추출부(108)가 텍스트 입력요소에 입력된 텍스트 중 키워드 관리부(104)에 의해 관리되는 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하는 단계(S5); 및 텍스트 생성부(110)가 텍스트 추출부(108)에 의해 추출된 텍스트들을 입력 값으로 자연어 처리를 기반으로 학습된 텍스트 생성 모델에 제공하여 키워드가 포함되어 있는 텍스트를 생성하는 단계(S6)를 포함하는 문서 작성 방법이 제공될 수 있다.A method of creating a document using a document writing device (10), comprising: providing a screen for creating a document configured by the screen configuration unit (101) to a user through an input/output interface (19) (S1); A step (S2) of receiving a command for registering, deleting, or modifying keyword information that can be included as text in the content of the document from the user through the keyword management unit 104, and storing the keyword information in the database 140 according to the command; A step (S3) in which the text input element management unit 106 receives text including a keyword as the content of a document from the user through a text input element; A step (S5) in which the text extraction unit 108 extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit 104 from the text input into the text input element (S5); and a step (S6) in which the text generation unit 110 provides the texts extracted by the text extraction unit 108 as input values to a text generation model learned based on natural language processing to generate text containing keywords. A method of creating a document including:
S3 단계 이후에는, 화면 구성부(101)에 의해 키워드 선택 화면이 사용자에게 제공되고, 사용자가 원하는 키워드를 선택하게 하는 단계(S4)가 수행될 수 있다. 이 경우, 텍스트 추출부(108)는 사용자가 선택한 키워드를 활용하여 텍스트를 추출할 수 있다.After step S3, a keyword selection screen is provided to the user by the screen configuration unit 101, and a step S4 may be performed in which the user selects a desired keyword. In this case, the text extraction unit 108 may extract text using the keyword selected by the user.
아울러, 텍스트 생성부(110)는 복수 개의 텍스트를 자동으로 생성할 수 있고, 사용자에게 이들을 제시한 후, 사용자로부터 원하는 텍스트를 선택받아 텍스트 입력요소에 출력할 수 있다(S7).In addition, the text generator 110 can automatically generate a plurality of texts, present them to the user, and then select the desired text from the user and output it to the text input element (S7).
 
이상 설명된 본 발명에 따른 실시예들은 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다.Embodiments according to the present invention described above may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program may be recorded on a computer-readable medium.
컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 상술한 실시예들을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예로써, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 또한, 상술한 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Computer-readable media may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the above-described embodiments, or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine code such as that created by a compiler, high-level language code that can be executed by a computer using an interpreter, etc. Additionally, the above-described hardware device may be configured to operate with one or more software modules to perform the operations of the embodiments, and vice versa.
또한, 본 발명의 실시예들의 소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Additionally, the software of embodiments of the present invention may include a computer program, code, instructions, or a combination of one or more of these, and may configure a processing device to operate as desired or independently. Alternatively, processing units may be commanded collectively. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
또한, 본 발명의 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.Additionally, embodiments of the present invention may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), etc. , may be implemented using one or more general-purpose or special-purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions.
 
이상 본 발명의 실시예에 따른 자연어 생성 모델을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템을 구체적인 실시 형태로서 설명하였으나, 이는 예시에 불과한 것으로서 본 발명은 이에 한정되지 않는 것이며, 본 명세서에 개시된 기초 사상에 따르는 최광의 범위를 갖는 것으로 해석되어야 한다. 당업자는 개시된 실시 형태들을 조합, 치환하여 적시되지 않은 실시 형태를 실시할 수 있으나, 이 역시 본 발명의 권리범위를 벗어나지 않는 것이다. 이외에도 당업자는 본 명세서에 기초하여 개시된 실시형태를 용이하게 변경 또는 변형할 수 있으며, 이러한 변경 또는 변형도 본 발명의 권리범위에 속함은 명백하다.Above, a document writing device, method, computer program, computer-readable recording medium, server, and system having the function of automatically generating text using a natural language generation model according to an embodiment of the present invention have been described as specific embodiments. This is merely an example, and the present invention is not limited thereto, and should be construed as having the widest scope following the basic ideas disclosed in this specification. A person skilled in the art may combine and substitute the disclosed embodiments to implement embodiments not specified, but this also does not deviate from the scope of the present invention. In addition, a person skilled in the art can easily change or modify the embodiments disclosed based on the present specification, and it is clear that such changes or modifications also fall within the scope of the present invention.

Claims (11)

  1. 문서를 작성하기 위한 문서 작성 화면을 구성하여 입출력 인터페이스를 통해 사용자에게 제공하는 화면 구성부;A screen configuration unit that configures a document creation screen for creating a document and provides it to the user through an input/output interface;
    문서의 내용에 텍스트로 포함될 수 있는 키워드를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 키워드 관리부;a keyword management unit that receives and manages keywords that can be included as text in the content of the document from the user through the input/output interface;
    상기 문서 작성 화면에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소를 관리하는 텍스트 입력요소 관리부;a text input element management unit that manages text input elements provided on the document creation screen to receive document content from the user;
    상기 텍스트 입력요소 관리부를 통해 상기 텍스트 입력요소에 입력된 텍스트 중 상기 키워드 관리부에 의해 관리되는 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하는 텍스트 추출부; 및a text extraction unit that extracts the text of a sentence or paragraph containing a keyword managed by the keyword management unit from the text input into the text input element through the text input element management unit; and
    상기 텍스트 추출부에 의해 추출된 텍스트들을 입력 값으로서 자연어 처리를 기반으로 학습된 텍스트 생성 모델에 제공하여 상기 키워드가 포함되어 있는 텍스트를 생성하는 텍스트 생성부를 포함하는,A text generator that generates text containing the keyword by providing the texts extracted by the text extractor as input values to a text generation model learned based on natural language processing,
    문서 작성 장치.Document writing device.
  2. 제1 항에 있어서,According to claim 1,
    상기 텍스트 생성 모델은 상기 문서 작성 장치와 통신 가능하게 제공되는 문서 작성 서버에 제공되고,The text generation model is provided to a document creation server that is capable of communicating with the document creation device,
    상기 텍스트 생성부는 데이터 통신부를 통해 상기 문서 작성 서버로 상기 텍스트 추출부에 의해 추출된 텍스트를 상기 키워드 관리부에 의해 관리되는 상기 키워드 정보와 함께 상기 문서 작성 서버로 전달하고,The text generator transmits the text extracted by the text extraction unit to the document creation server along with the keyword information managed by the keyword management unit to the document creation server through the data communication unit,
    상기 텍스트 생성부는 상기 데이터 통신부를 통해 상기 문서 작성 서버로부터 상기 텍스트 생성 모델에 의해 생성된 텍스트를 전달받는,The text generator receives the text generated by the text generation model from the document creation server through the data communication unit,
    문서 작성 장치.Document writing device.
  3. 제2 항에 있어서,According to clause 2,
    상기 화면 구성부는 문서를 작성하기 위한 화면의 구성을 웹 서버 기능을 갖는 문서 작성 서버로부터 제공받고,The screen configuration unit receives the screen configuration for creating a document from a document creation server having a web server function,
    상기 화면 구성부를 통해 구현되는 상기 문서 작성 화면은 웹 브라우징이 가능한 애플리케이션에 의해 사용자에게 출력되고,The document creation screen implemented through the screen configuration unit is output to the user by an application capable of web browsing,
    상기 텍스트 입력요소는 상기 애플리케이션을 통해 사용자에게 제공되는 UI로서 HTML의 폼 요소 또는 데이터 입력이 가능한 태그인,The text input element is a UI provided to the user through the application, which is an HTML form element or a tag that allows data input,
    문서 작성 장치.Document writing device.
  4. 제1 항에 있어서,According to claim 1,
    상기 키워드 관리부에 의해 관리되는 키워드로서 상기 텍스트 입력요소 관리부에 입력되어 있는 텍스트에 포함된  하나 이상의 키워드를 추출하는 키워드 추출부를 더 포함하고,It further includes a keyword extraction unit that extracts one or more keywords contained in text input to the text input element management unit as keywords managed by the keyword management unit,
    상기 화면 구성부는 상기 키워드 추출부에 의해 추출된 키워드를 사용자에게 표시해 주고, 사용자로부터 하나 이상의 키워드를 선택받는 키워드 선택 화면을 상기 입출력 인터페이스를 통해 사용자에게 제공하고,The screen configuration unit displays the keywords extracted by the keyword extraction unit to the user, and provides the user with a keyword selection screen through the input/output interface where one or more keywords are selected by the user,
    상기 텍스트 추출부는 상기 키워드 선택 화면을 통해 사용자가 선택한 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하여 상기 텍스트 생성부에 제공하는,The text extractor extracts the text of a sentence or paragraph containing a keyword selected by the user through the keyword selection screen and provides the text to the text generator.
    문서 작성 장치.Document writing device.
  5. 제4 항에 있어서,According to clause 4,
    문서는, 제1 부분과, 상기 제1 부분과는 다른 제2 부분을 포함하고,The document includes a first part and a second part different from the first part,
    상기 키워드 추출부 및 상기 텍스트 추출부는 상기 제1 부분 및 상기 제2 부분 중 어느 하나에서 상기 키워드 및 텍스트를 추출하고,The keyword extraction unit and the text extraction unit extract the keyword and text from any one of the first part and the second part,
    상기 텍스트 생성부는 상기 제1 부분 및 상기 제2 부분 중 다른 하나의 속성에 맞는 텍스트를 생성하는,The text generator generates text matching the attributes of the other one of the first part and the second part,
    문서 작성 장치.Document writing device.
  6. 제5 항에 있어서,According to clause 5,
    상기 텍스트 생성부는 복수 개의 텍스트를 생성하고,The text generator generates a plurality of texts,
    상기 화면 구성부는 상기 텍스트 생성부가 생성한 복수 개의 텍스트를 사용자에게 표시해 주고, 사용자로부터 원하는 텍스트를 선택받는 텍스트 선택 화면을 상기 입출력 인터페이스를 통해 사용자에게 제공하고,The screen configuration unit displays a plurality of texts generated by the text generation unit to the user, and provides the user with a text selection screen through the input/output interface where the user selects a desired text,
    상기 텍스트 입력요소 관리부는 사용자가 상기 텍스트 선택 화면을 통해 선택한 텍스트를 상기 텍스트 입력요소에 출력하는,The text input element management unit outputs the text selected by the user through the text selection screen to the text input element,
    문서 작성 장치.Document writing device.
  7. 제5 항에 있어서,According to clause 5,
    상기 제1 부분과 상기 제2 부분은 법률에 의해 서로 다른 규칙에 따라 작성되어야 하는 것인, wherein the first part and the second part are required by law to be prepared according to different rules,
    문서 작성 장치.Document writing device.
  8. 제7 항에 있어서,According to clause 7,
    상기 문서는 특허 명세서이고, The above document is a patent specification,
    상기 제1 부분은 발명의 상세한 설명 및 특허청구범위 중 어느 하나이고,The first part is either the detailed description of the invention or the claims,
    상기 제2 부분은 발명의 상세한 설명 및 특허청구범위 중 다른 하나인,The second part is another of the detailed description and claims of the invention,
    문서 작성 장치.Document writing device.
  9. 제1 항에 따른 문서 작성 장치를 이용하여 문서를 작성하는 방법으로서,A method of creating a document using the document writing device according to claim 1,
    화면 구성부에 의해 구성된 문서를 작성하기 위한 화면을 입출력 인터페이스를 통해 사용자에게 제공하는 단계;providing a screen for creating a document configured by the screen configuration unit to the user through an input/output interface;
    키워드 관리부를 통해 문서의 내용에 텍스트로 포함될 수 있는 키워드 정보의 등록, 삭제, 수정 명령을 사용자로부터 입력받고, 상기 명령에 따라 상기 키워드 정보를 데이터베이스에 저장하는 단계;Receiving commands from the user to register, delete, or modify keyword information that can be included as text in the content of the document through a keyword management unit, and storing the keyword information in a database according to the commands;
    텍스트 입력요소 관리부가 텍스트 입력요소를 통해 사용자로부터 문서의 내용으로서 키워드를 포함하는 텍스트를 입력받는 단계;A text input element management unit receiving text including a keyword as document content from the user through a text input element;
    텍스트 추출부가 상기 텍스트 입력요소에 입력된 텍스트 중 상기 키워드 관리부에 의해 관리되는 상기 키워드가 포함되어 있는 문장 또는 문단의 텍스트를 추출하는 단계; 및A text extraction unit extracting text of a sentence or paragraph containing the keyword managed by the keyword management unit from text input to the text input element; and
    텍스트 생성부가 상기 텍스트 추출부에 의해 추출된 텍스트들을 입력 값으로 자연어 처리를 기반으로 학습된 텍스트 생성 모델에 제공하여 상기 키워드가 포함되어 있는 텍스트를 생성하는 단계를 포함하는,A text generation unit providing the texts extracted by the text extraction unit as input values to a text generation model learned based on natural language processing to generate text containing the keyword,
    문서 작성 방법.How to write a document.
  10. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체로서,A computer-readable recording medium storing a computer program,
    제9 항의 문서 작성 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 저장하는,Storing a computer program containing instructions for causing a processor to perform the document creation method of claim 9,
    컴퓨터 판독 가능한 기록매체.A computer-readable recording medium.
  11. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,A computer program stored on a computer-readable recording medium,
    명령을 저장하는 메모리와 상기 메모리에 저장된 상기 명령을 실행하는 프로세서를 포함하는 장치와 결합되어 제9 항에 따른 문서 작성 방법을 실행하도록 하기 위한 명령어를 포함하는 컴퓨터로 판독 가능한 기록매체에 저장된,Stored on a computer-readable recording medium containing instructions for executing the document creation method according to claim 9, combined with a device including a memory for storing instructions and a processor for executing the instructions stored in the memory,
    컴퓨터 프로그램.computer program.
PCT/KR2023/016360 2022-10-20 2023-10-20 Document creation device, method, computer program, computer-readable recording medium, server and system, which have function of automatically generating text by using natural language generation mode WO2024085715A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0135401 2022-10-20
KR1020220135401A KR20240055290A (en) 2022-10-20 2022-10-20 Document creating device, method, computer program, computer-readable recording medium, server and system having text auto-generating functionality using natural language generation model

Publications (1)

Publication Number Publication Date
WO2024085715A1 true WO2024085715A1 (en) 2024-04-25

Family

ID=90738259

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/016360 WO2024085715A1 (en) 2022-10-20 2023-10-20 Document creation device, method, computer program, computer-readable recording medium, server and system, which have function of automatically generating text by using natural language generation mode

Country Status (2)

Country Link
KR (1) KR20240055290A (en)
WO (1) WO2024085715A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286408A1 (en) * 2014-10-01 2017-10-05 Hitachi, Ltd. Sentence creation system
KR20180084580A (en) * 2017-01-17 2018-07-25 경북대학교 산학협력단 Device and method to generate abstractive summaries from large multi-paragraph texts, recording medium for performing the method
KR20190013426A (en) * 2017-08-01 2019-02-11 삼성전자주식회사 Apparatus and Method for providing a summarized information using a artificial intelligence model
KR20210041017A (en) * 2018-08-29 2021-04-14 주식회사 아이팩토리 Patent document creating device, method, computer program, computer-readable recording medium, server and system
KR20220069871A (en) * 2020-11-20 2022-05-27 주식회사 앤트 Method, apparatus and computer program for generating formalized research record data automatically for learning artificial intelligence model

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416684B1 (en) 2020-12-29 2022-07-06 (주)올워크 Ai-based support system for writing resume and job referral

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286408A1 (en) * 2014-10-01 2017-10-05 Hitachi, Ltd. Sentence creation system
KR20180084580A (en) * 2017-01-17 2018-07-25 경북대학교 산학협력단 Device and method to generate abstractive summaries from large multi-paragraph texts, recording medium for performing the method
KR20190013426A (en) * 2017-08-01 2019-02-11 삼성전자주식회사 Apparatus and Method for providing a summarized information using a artificial intelligence model
KR20210041017A (en) * 2018-08-29 2021-04-14 주식회사 아이팩토리 Patent document creating device, method, computer program, computer-readable recording medium, server and system
KR20220069871A (en) * 2020-11-20 2022-05-27 주식회사 앤트 Method, apparatus and computer program for generating formalized research record data automatically for learning artificial intelligence model

Also Published As

Publication number Publication date
KR20240055290A (en) 2024-04-29

Similar Documents

Publication Publication Date Title
JP7289556B2 (en) PATENT DOCUMENT DEVELOPMENT DEVICE, METHOD, COMPUTER PROGRAM, COMPUTER-READABLE RECORDING MEDIUM, SERVER, AND SYSTEM
JP6518981B1 (en) Translation apparatus, control program for translation apparatus, and translation method using translation apparatus
JP7333933B2 (en) TRANSLATION DEVICE, CONTROL PROGRAM FOR TRANSLATION DEVICE, AND TRANSLATION METHOD USING TRANSLATION DEVICE
KR20210013991A (en) Apparatus, method, computer program, computer-readable storage device, server and system for drafting patent document
WO2024085715A1 (en) Document creation device, method, computer program, computer-readable recording medium, server and system, which have function of automatically generating text by using natural language generation mode
WO2024085717A1 (en) Thesis writing device, method, computer program, computer-readable recording medium, server, and system
WO2024085718A1 (en) Document creation device having function of automatically generating text by using sentence template, method, computer program, computer-readable recording medium, server and system
KR20240055302A (en) Document creating device, method, computer program, computer-readable recording medium, server and system having text auto-generating functionality using sentence template
KR20240055313A (en) Article creating device, method, computer program, computer-readable recording medium, server and system
WO2023158133A1 (en) Method and computer program for providing editing interface for translated content
WO2024085596A1 (en) Multilingual translation method, apparatus, and system
KR20210013989A (en) Apparatus, method, computer program, computer-readable storage device, server and system for drafting patent document
KR20210013990A (en) Apparatus, method, computer program, computer-readable storage device, server and system for drafting patent document
KR20210013992A (en) Apparatus, method, computer program, computer-readable storage device, server and system for drafting patent document
EP1221082B1 (en) Use of english phonetics to write non-roman characters
JP2024075704A (en) Patent document drafting device, method, computer program, computer-readable recording medium, server, and system
JP3147947B2 (en) Machine translation equipment
JP2022087934A (en) Translation apparatus, control program of translation apparatus, and translation method using translation apparatus
JP2020095369A (en) Document processor, control program of document processor and document processing method using document processor
JPH1011444A (en) Machine translation system
JP2021022203A (en) Translation evaluation device, program for controlling translation evaluation device, and translation evaluation method using translation evaluation device
Morrison Working with Others
JPH04195460A (en) Language processing device