KR20240055309A - 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템 - Google Patents

논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템 Download PDF

Info

Publication number
KR20240055309A
KR20240055309A KR1020220135440A KR20220135440A KR20240055309A KR 20240055309 A KR20240055309 A KR 20240055309A KR 1020220135440 A KR1020220135440 A KR 1020220135440A KR 20220135440 A KR20220135440 A KR 20220135440A KR 20240055309 A KR20240055309 A KR 20240055309A
Authority
KR
South Korea
Prior art keywords
data
text
input element
text input
management unit
Prior art date
Application number
KR1020220135440A
Other languages
English (en)
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 주식회사 아이팩토리
Priority to KR1020220135440A priority Critical patent/KR20240055309A/ko
Priority to PCT/KR2023/016364 priority patent/WO2024085717A1/ko
Publication of KR20240055309A publication Critical patent/KR20240055309A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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/31Indexing; Data structures therefor; Storage structures
    • 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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • 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/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • 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/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • 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/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Human Computer Interaction (AREA)

Abstract

본 발명은 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템에 관한 것이다. 
일 실시예에 따르면, 논문을 작성하기 위한 논문 작성 화면을 구성하여 입출력 인터페이스를 통해 사용자에게 제공하는 화면 구성부; 논문의 내용에 텍스트로 포함될 수 있는 키워드를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 키워드 관리부; 논문에 참조자료로서 사용될 수 있는 참조자료의 데이터를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 참조자료 관리부; 상기 논문 작성 화면에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소를 관리하고, 상기 입출력 인터페이스를 통한 사용자의 입력에 따라 상기 텍스트 입력요소에 입력되는 텍스트 중 일부를 자동완성 키워드로서 추출한 후 상기 자동완성 키워드를 상기 자동완성 키워드에 대응되는 상기 키워드의 정보를 기초로 생성된 키워드 항목으로 치환하여 상기 텍스트 입력요소에 출력하는 텍스트 입력요소 관리부; 상기 텍스트 입력요소에 입력된 데이터를 추출하여 기 설정된 비교 단위로 파싱하고, 파싱된 각각의 토큰 데이터를 상기 참조자료의 데이터와 비교하는 데이터 비교부; 및 상기 데이터 비교부를 통해 얻어진 비교 결과를 상기 논문 작성 화면을 통해 사용자에게 제공하는 비교 결과 출력부를 포함하는 논문 작성 장치가 제공될 수 있다.

Description

논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템 {PAPER CREATING DEVICE, METHOD, COMPUTER PROGRAM, COMPUTER-READABLE RECORDING MEDIUM, SERVER AND SYSTEM}
본 발명은 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템에 관한 것이다. 
논문은 학술적 가치가 매우 큰 문서로서, 다른 문서를 참고한 경우 그 출처 표시가 매우 엄격하게 이뤄져야 하고, 이것이 제대로 지켜지지 않는 경우에는 제대로된 논문으로서 인정받지 못한다.
이를 방지하기 위한 도구들이 제시된 바 있으나, 이는 논문이 모두 완성된 후에 사후적으로 점검하는 것으로서 실질적으로 논문 작성 효율성을 향상시키지는 못한다는 문제가 있다.
 [선행기술문헌]
[특허문헌]
한국 등록특허 제10-2416684호
본 발명의 일 실시예에 따른 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템은 상기와 같은 문제를 해결하기 위해 제안된 것으로서, 표절 문제를 예방하고, 논문 작성에 소요되는 시간을 줄이는 것을 목적으로 한다.
일 실시예에 따르면, 논문을 작성하기 위한 논문 작성 화면을 구성하여 입출력 인터페이스를 통해 사용자에게 제공하는 화면 구성부; 논문의 내용에 텍스트로 포함될 수 있는 키워드를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 키워드 관리부; 논문에 참조자료로서 사용될 수 있는 참조자료의 데이터를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 참조자료 관리부; 상기 논문 작성 화면에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소를 관리하고, 상기 입출력 인터페이스를 통한 사용자의 입력에 따라 상기 텍스트 입력요소에 입력되는 텍스트 중 일부를 자동완성 키워드로서 추출한 후 상기 자동완성 키워드를 상기 자동완성 키워드에 대응되는 상기 키워드의 정보를 기초로 생성된 키워드 항목으로 치환하여 상기 텍스트 입력요소에 출력하는 텍스트 입력요소 관리부; 상기 텍스트 입력요소에 입력된 데이터를 추출하여 기 설정된 비교 단위로 파싱하고, 파싱된 각각의 토큰 데이터를 상기 참조자료의 데이터와 비교하는 데이터 비교부; 및 상기 데이터 비교부를 통해 얻어진 비교 결과를 상기 논문 작성 화면을 통해 사용자에게 제공하는 비교 결과 출력부를 포함하는 논문 작성 장치가 제공될 수 있다.
본 발명의 일 실시예에 따른 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템은 표절 문제를 예방할 수 있고, 논문 작성에 소요되는 시간을 줄일 수 있다는 효과가 있다.
도 1은 도 1은 본 발명의 일 실시예에 따른 문서 작성 문서 작성 시스템을 보여주는 도면이다.
도 2는 도 1의 문서 작성 장치와 문서 작성 서버의 구성을 개략적으로 보여주는 도면이다.
도 3은 도 2의 문서 작성 장치와 문서 작성 서버의 프로세서의 구성의 일 예를 보여주는 도면이다.
도 4는 도 1의 문서 작성 장치에 의해 문서가 작성되는 과정을 설명하는 순서도이다.
이하에서는 본 발명의 구체적인 실시예들에 대하여 도면을 참조하여 상세히 설명한다.
아울러 본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 
 
도 1은 본 발명의 일 실시예에 따른 논문 작성 시스템(1)을 보여주는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 논문 작성 시스템(1)은 논문 작성 장치(10)와 논문 작성 서버(20)를 포함할 수 있다. 논문 작성 장치(10)와 논문 작성 서버(20)는 네트워크(30)를 통해 서로 데이터를 송수신할 수 있게 연결될 수 있다.
본 실시예에서, 논문 작성 시스템(1)은 사용자가 문서를 작성할 수 있도록 제공되는 것으로서, 사용자는 논문 작성 시스템(1)을 이용하여 문서를 빠르고 정확하게 작성할 수 있다.
본 실시예에서, 논문 작성 시스템(1)을 통해 작성하는 문서로 특허 문서를 예로 들어 설명한다. 그러나 본 발명의 사상은 이에 한정되지 않으며, 문서 종류에 관계없이 적용될 수 있다.
이하의 설명에서, 특허 문서는 특허법에서 정한 기재요건에 따라 작성되어야 하는 문서로서, 특허 명세서, 의견서, 보정서 등을 포함하는 것으로 이해될 수 있다.
논문 작성 시스템(1)은 문서 작성을 위한 다양한 기능을 논문 작성 장치(10)를 통해 사용자에게 제공할 수 있으며, 이와 같은 기능은 논문 작성 장치(10) 및 논문 작성 서버(20) 중 어느 하나, 또는 논문 작성 장치(10)와 논문 작성 서버(20)의 상호 작용에 의해 구현될 수 있다.
예를 들어, 논문 작성 시스템(1)은 사용자가 제1 언어 또는 제2 언어로 특허청에서 지정한 양식에 맞는 문서를 작성할 수 있는 서비스를 제공하거나, 제2 언어 또는 제1 언어로 작성된 문서를 제1 언어 또는 제2 언어로 번역할 수 있는 서비스를 제공하거나, 두 서비스를 모두 제공할 수 있다. 구체적인 예로서, 논문 작성 시스템(1)은 제1 언어로 특허 명세서를 작성하는 서비스, 제2 언어로 특허 명세서를 작성하는 서비스, 제1 언어로 작성된 특허 명세서를 제2 언어로 번역한 번역 명세서를 작성하는 서비스, 제2 언어로 작성된 특허 명세서를 제1 언어로 번역한 번역 명세서를 작성하는 서비스 중 하나 이상의 서비스를 사용자에게 제공할 수 있다.
이하의 설명에서 "문서 작성 서비스"는 논문 작성 시스템(1), 논문 작성 장치(10) 및 논문 작성 서버(20) 중 하나 이상에 의해 제공되는 것으로 이해될 수 있다. 예를 들어, "문서 작성 서비스"는 사용자가 문서 작성을 수행할 수 있도록 논문 작성 장치(10)의 입출력 인터페이스(도 2, 19)를 통해 사용자에게 제공되는 기능 또는 기능들의 집합으로 이해될 수 있다.
또한, 이하의 설명에서 "케이스"는 사용자가 하나의 문서를 작성하기 위해 생성하는 객체의 단위로서 이해될 수 있다. "케이스 정보"는 문서와 관련된 기본 정보 및 해당 문서의 작성 과정에서 입력되는 정보를 포함하는 것으로 이해될 수 있다. 예를 들어, 사용자는 논문 작성 시스템(1)을 통해 특허 명세서 작성을 위한 하나의 케이스를 생성하고, 해당 케이스의 관리번호, 의뢰인, 마감일 등과 같은 기본적인 정보 및 특허 명세서의 내용으로서 입력되어야 하는 데이터를 입력할 수 있다.
한편, 논문 작성 시스템(1)은 작성된 문서를 문서의 작성을 의뢰한 고객이 소정의 프로그램을 이용하여 읽을 수 있거나 특허청에 직접 제출될 수 있는 파일로 사용자에게 제공할 수도 있다. 예를 들어, 논문 작성 시스템(1)은 사용자가 작성된 문서를 Microsoft의 "Word" 프로그램으로 읽을 수 있는 doc 또는 docx 확장자의 파일, 특허청에 제출할 수 있는 특정 포맷의 파일(예를 들어 한국의 "특허청 전자문서 작성 S/W"에서 읽을 수 있는 xml 기반의 hlt 또는 hlz 확장자의 파일), PDF 파일, html 파일 등으로 다운로드 할 수 있는 기능을 제공할 수 있다.
본 실시예에서, 논문 작성 시스템(1)은 특허 명세서와 특허 번역문을 작성할 수 있는 서비스를 제공하는 것을 예로 들어 설명한다. 설명의 편의를 위해, 이하의 설명에서 특허 명세서를 작성하는 서비스를 제1 서비스, 특허 번역문을 작성할 수 있는 서비스를 제2 서비스라고 한다. 즉, 본 실시예에 따른 논문 작성 시스템(1)은 제1 서비스와 제2 서비스를 모두 제공할 수 있다. 그러나 본 발명의 사상은 이에 한정되지 않으며, 논문 작성 시스템(1)은 제1 서비스만을 제공하거나, 제2 서비스만을 제공할 수도 있다. 또한, 논문 작성 시스템(1)은 특허 명세서나 특허 번역문 외의 다른 문서, 예를 들면 의견서, 보정서를 작성하는 서비스를 제공할 수도 있다. 또 다른 예로서, 논문 작성 시스템(1)은 특허청에서 발행한 문서(예를 들어, 의견제출통지서, 거절결정서 등)를 번역하거나, 이에 대한 검토 의견을 작성하거나 검토 의견서를 번역하는 서비스를 제공할 수도 있다.
또한, 논문 작성 시스템(1), 논문 작성 장치(10) 및 논문 작성 서버(20)는 제공하는 서비스에 따라 이하에서 설명하는 구성요소들 중 필요한 구성요소만을 선택적으로 포함할 수 있다.
논문 작성 장치(10)는 사용자가 문서의 내용을 입력할 수 있도록 제공되는 장치로서, 컴퓨팅 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 예를 들어, 논문 작성 장치(10)는 컴퓨터, 노트북, 태블릿 PC, 스마트폰, 휴대폰, 웨어러블 기기 등일 수 있다. 본 발명의 사상은 이러한 예에 한정되지 않으며, 논문 작성 장치(10)는 사용자가 문서의 작성에 필요한 정보를 입력할 수 있고, 이를 사용자에게 표시할 수 있는 기능을 갖는 임의의 단말일 수 있다. 이하에서, 사용자를 주체로 하여 설명하는 내용은 논문 작성 장치(10)를 주체로 하여 설명하는 내용으로 이해될 수 있다.
논문 작성 서버(20)는 논문 작성 장치(10)와 네트워크(30)를 통해 통신하여 사용자가 문서를 작성할 수 있도록 하는 것으로서, 명령, 코드, 파일, 데이터, 콘텐츠, 서비스 등을 논문 작성 장치(10)로부터 제공받거나 논문 작성 장치(10)에게 제공하는 컴퓨팅 장치일 수 있다. 논문 작성 서버(20)는 가상 서버와 물리 서버 중 어느 하나 또는 이들의 조합으로 구현될 수 있으며, 서버의 종류는 본 발명의 권리범위를 제한하지 않는다. 일 예로, 논문 작성 서버(20)는 가상 서버 호스트(Virtual Private Server)로 구현된 것일 수 있다.
논문 작성 서버(20)는 논문 작성 장치(10)로부터 전달되는 데이터를 저장, 처리, 가공할 수 있으며, 그 결과를 논문 작성 장치(10)에게 전달할 수 있다. 또한, 논문 작성 서버(20)는 논문 작성 장치(10)로부터 전달되는 데이터를 기초로 소정의 동작을 수행한 후 그 결과를 논문 작성 장치(10)에게 전달할 수도 있다. 또한, 논문 작성 서버(20)는 논문 작성 장치(10)에서 요청하는 데이터, 콘텐츠, 서비스 등을 제공할 수도 있다. 또한, 논문 작성 서버(20)는 논문 작성 장치(10)가 요청하는 소정 기능을 수행하거나, 논문 작성 장치(10)가 소정 기능을 수행하도록 명령을 전달하는 등의 역할을 수행할 수도 있다. 또한, 논문 작성 서버(20)는 논문 작성 장치(10)의 요청에 따라 제3 자가 제공하는 다른 서버와 데이터 통신한 후, 그 결과를 논문 작성 장치(10)에 전달할 수도 있다.
이러한 논문 작성 장치(10)와 논문 작성 서버(20)는 무선 또는 유선 통신 방식을 이용하여 네트워크(30)를 통해 통신할 수 있다. 또한, 논문 작성 장치(10)는 네트워크(30)를 통해 다른 논문 작성 장치(10) 또는 다른 논문 작성 서버(20)와도 통신 가능하게 제공될 수 있다. 또한, 논문 작성 서버(20)는 네트워크(30)를 통해 다른 논문 작성 장치(10) 또는 다른 논문 작성 서버(20)와 통신 가능하게 제공될 수 있다. 본 실시예에서 네트워크(30)는 논문 작성 장치(10)와 논문 작성 서버(20)가 데이터 송수신 가능하게 연결하는 역할을 수행하는 것으로서, 통신 방식이나 네트워크(30)의 종류는 제한되지 않는다. 예를 들어, 네트워크(30)는 논문 작성 장치(10)가 논문 작성 서버(20)에 접속한 후 데이터를 송수신할 수 있도록 접속 경로를 제공할 수 있다.
한편, 논문 작성 장치(10)는 사용자가 문서를 작성할 수 있도록 제공되는 애플리케이션(이하 "문서 작성 애플리케이션"이라 한다)을 포함하거나, 문서 작성 애플리케이션을 구동할 수 있다. 즉, 논문 작성 장치(10)는 문서 작성 애플리케이션을 통해 사용자에게 문서 작성 서비스를 제공할 수 있다. 문서 작성 애플리케이션은 논문 작성 장치(10)에 설치되어 있는 운영체제 또는 운영체제의 일 기능 또는 운영체제에 의해 구동 가능한 애플리케이션 또는 운영체제에 의해 구동 가능한 애플리케이션의 일 기능으로서 제공될 수 있다.
예를 들어, 문서 작성 애플리케이션은 컴퓨터로 판독 가능한 기록매체로부터 설치되거나, 논문 작성 서버(20)로부터 다운로드 받아 설치되는 것일 수 있다. 이 경우, 논문 작성 서버(20)는 문서 작성 애플리케이션의 설치를 위한 파일이나 프로그램 소스를 저장하고 있다가, 논문 작성 장치(10)로부터 요청이 있는 경우 논문 작성 장치(10)에게 제공할 수 있다. 또는, 문서 작성 애플리케이션은 독립적으로 설치되는 것이 아니라 논문 작성 장치(10)에 설치 가능한 애플리케이션의 하나의 동작 모드로서 구현되는 것일 수도 있다.
예를 들어, 문서 작성 애플리케이션은 웹 브라우저(Web Browser) 또는 HTML을 기반으로 구현된 웹 페이지를 표시할 수 있는 임의의 애플리케이션이고, 문서 작성 서비스를 제공하는 화면들을 사용자에게 출력할 수 있다. 일 예로, 문서 작성 애플리케이션은 웹 애플리케이션(Web Application)일 수 있다. 이 경우, 논문 작성 서버(20)는 문서 작성 애플리케이션으로 출력할 수 있는 형태의 정적 웹 페이지 및/또는 동적으로 생성된 웹 페이지를 논문 작성 장치(10)로부터의 요청에 따라 논문 작성 장치(10)에게 제공할 수 있다. 논문 작성 장치(10)에 의해 출력되는 웹 페이지는 문서 작성 서비스를 제공하기 위한 스크립트를 포함할 수 있다.
또 다른 예로서, 문서 작성 애플리케이션은 워드 프로세서일 수 있고, 문서 작성 기능이 워드 프로세서에 기본적으로 탑재되거나 add-in 프로그램 형태로 제공될 수 있다. 후자의 경우, 논문 작성 서버(20)는 논문 작성 장치(10)에 설치 가능한 add-in 프로그램을 저장하고 있다가, 논문 작성 장치(10)로부터 요청이 있는 경우 논문 작성 장치(10)에게 제공할 수 있다.
이하에서 설명되는 논문 작성 장치(10)의 기능 또는 문서 작성과 관련된 기능들은 특별한 설명이 없는 경우에도 문서 작성 애플리케이션에 의해 구현되는 것으로 이해될 수 있다.
본 실시예에서, 논문 작성 장치(10)는 유무선 통신 환경에서 웹 서비스를 이용할 수 있는 통신 단말이고, 논문 작성 서버(20)는 유무선 통신 환경에서 논문 작성 장치(10)가 특정 URL로 접속할 수 있도록 하는 웹 서버 프로그램이 실행되는 서버인 것을 예로 들어 설명한다. 그리고, 본 실시예에서 문서 작성 애플리케이션은 웹 브라우저 등 웹 브라우징이 가능한 애플리케이션을 통해 실행될 수 있는 웹 애플리케이션인 것을 예로 들어 설명한다. 구체적으로, 사용자는 논문 작성 장치(10)에 설치된 웹 브라우저를 이용하여 논문 작성 서버(20)에 할당된 특정 URL로 접속할 수 있으며, 논문 작성 장치(10)는 논문 작성 서버(20)에 설치된 웹 서버에 의해 제공되는 문서 작성을 위한 웹 페이지를 로딩하여 문서 작성 애플리케이션으로서 사용자에게 제공할 수 있다. 다시 말하면, 웹 브라우저가 문서 작성 애플리케이션으로 기능할 수 있다. 따라서, 본 실시예에서 문서 작성 애플리케이션은 논문 작성 서버(20)에서 제공하는 특정 웹 페이지를 로딩한 웹 브라우저로 이해될 수 있다.
위와 같은 예는 본 발명의 일 실시예일 뿐이고, 상술한 것처럼 논문 작성 장치(10), 논문 작성 서버(20), 문서 작성 애플리케이션은 다양하게 구성될 수 있는 바, 본 발명의 권리범위는 위의 실시예에 의해 제한되지 않는다. 예를 들어, 논문 작성 장치(10)의 문서 작성 애플리케이션은 웹 브라우저를 이용하되 논문 작성 장치(10)에 데이터를 저장하여 오프라인 구동이 가능하게 구현될 수도 있다. 또한, 논문 작성 서버(20)는 문서 작성 애플리케이션으로서 기능할 수 있는 웹 페이지를 제공하되, 웹 페이지에는 다양한 형태의 기기에서 접속하면 그에 대응되는 형태의 화면을 구현할 수 있는 반응형 웹 페이지나 적응 형 웹 페이지가 포함될 수 있다. 또한, 논문 작성 서버(20)는 모바일 네이티브 애플리케이션 또는 하이브리드 애플리케이션 형태로 문서 작성 애플리케이션을 제공할 수 있다. 또한, 논문 작성 장치(10)는 데스크톱 응용 소프트웨어로 제공되는 문서 작성 애플리케이션을 구동하도록 제공될 수도 있다. 실시예에 따라 논문 작성 장치(10)는 논문 작성 서버(20)와 통신하지 않고 독립적으로 구동될 수도 있다. 또한, 논문 작성 장치(10)는 단순히 화면을 표시하는 기능만 수행하고 데이터 저장이나 처리는 논문 작성 서버(20)에서 모두 이뤄질 수도 있다. 이처럼 논문 작성 장치(10), 논문 작성 서버(20), 문서 작성 애플리케이션은 본 발명의 특징적인 사상이 유지되는 범위 내에서는 다양하게 구성될 수 있다.
 
도 2는 도 1의 문서 작성 장치와 문서 작성 서버의 구성을 개략적으로 보여주는 도면이다.
도 2를 참조하면, 논문 작성 장치(10)와 논문 작성 서버(20)는 프로세서(100, 200), 메모리(14, 24), 통신 모듈(18, 28) 및 입출력 인터페이스(19, 29)를 포함할 수 있다.
프로세서(100, 200)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(14, 24) 또는 통신 모듈(18, 28)로부터 프로세서(100, 200)로 제공될 수 있다. 그 외에 명령은 논문 작성 장치(10) 및 논문 작성 서버(20)를 구성하는 각각의 구성요소들 간의 통신 채널인 버스(bus)를 통해서도 프로세서(100, 200)로 제공될 수 있다.
프로세서(100, 200)는 문서 작성을 위해 필요한 데이터의 입출력, 데이터의 처리, 데이터의 관리, 네트워크(30)를 이용한 통신 등의 다양한 기능을 수행할 수 있으며, 이를 위한 프로세서(100, 200)의 구체적인 구성요소들은 도면을 참조하여 후술하겠다. 이러한 프로세서(100, 200)의 구성요소들은 메모리(14, 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)에 저장될 수 있다.
또한, 메모리(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)는 독립된 파일 형태로 제공될 수도 있으며, 특정 애플리케이션 또는 특정 프로토콜을 통해서만 데이터 관리가 가능한 것일 수도 있다.
본 실시예에서는, 논문 작성 장치(10)의 데이터베이스(140)는 웹 DB를 포함하는 것을 예로 들어 설명하겠다. 이와 같은 웹 DB는 적게는 수 메가바이트(Mbyte), 많게는 수십 메가바이트를 저장할 수 있으므로, 문서 작성에 필요한 충분한 데이터를 저장할 수 있다. 이에 의해, 논문 작성 장치(10)는 문서에 포함되어야 하는 비밀 유지가 필요한 기술적 특징을 네트워크(30)를 통해 논문 작성 서버(20)로 전달하지 않고, 논문 작성 장치(10) 내에서 효과적으로 관리할 수 있다. 본 실시예에서 비밀 유지가 필요한 데이터는 문서의 특허 등록에 영향을 미칠 수 있는 데이터로 이해될 수 있으며, 예를 들어 공개되면 특허 명세서의 신규성, 진보성 판단에 영향을 미칠 수 있는 데이터로 이해될 수 있다.
또한, 문서 작성 애플리케이션은 네트워크(30)를 사용하지 않고 논문 작성 장치(10)에 데이터를 저장할 수 있으므로, 종래에 사용되던 Microsoft의 "WORD" 등의 워드 프로세서와 실질적으로 동일한 보안 성능을 사용자에게 제공할 수 있다. 또한, 논문 작성 장치(10)는 비밀 유지가 필요한 기술적 특징을 암호화하여 웹 DB에 저장할 수도 있으며, 이 경우 워드 프로세서보다도 더욱 뛰어난 보안 성능을 사용자에게 제공할 수 있다.
데이터베이스(140, 240)는 문서 작성을 위해 필요한 데이터를 저장할 수 있는 다양한 구성을 구비할 수 있으며, 하나 또는 그 이상의 데이터베이스에 하나 또는 그 이상의 테이블 또는 테이블들의 조합으로 구현될 수 있다. 실시예에 따라 데이터베이스(140, 240)는 키(key) 데이터와 밸류(value) 데이터의 조합으로 데이터가 저장되는 형태로 구현될 수도 있다. 데이터베이스(140, 240)의 구체적인 구성요소들은 도면을 참조하여 후술하겠다.
한편, 메모리(14, 24)는 물리적으로 복수 개가 제공될 수도 있고, 프로세서(100, 200)와 통합된 물리적 장치로 제공될 수도 있다, 또한, 메모리(14, 24)는 물리적 또는 논리적으로 독립된 장치로서 제공되고 프로세서(100, 200)가 장착되어 있는 장치에 연결됨으로써 전체적으로 하나의 장치(10, 20)를 구성할 수도 있다. 논문 작성 장치(10)와 논문 작성 서버(20)는 프로세서(100, 200)와 메모리(14, 24) 및 기타 다른 장치의 물리적 또는 논리적 구성에 제한되지 않는다.
통신 모듈(18, 28)은 네트워크(30)를 통해 논문 작성 장치(10)와 논문 작성 서버(20)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 장치 또는 다른 서버와 통신하기 위한 기능을 제공할 수 있다. 일 예로, 논문 작성 장치(10)를 통해 사용자로부터 입력 받은 데이터, 논문 작성 장치(10)의 프로세서(100)에 의해 생성된 요청, 논문 작성 서버(20)로부터 전달받은 요청에 대한 응답 등이 통신 모듈(18)을 통해 논문 작성 서버(20)로 전달될 수 있다. 또한, 논문 작성 서버(20)의 프로세서(200)에 의해 생성된 데이터, 논문 작성 서버(20)의 프로세서(200)에 의해 생성된 요청, 논문 작성 장치(10)로부터 전달받은 요청에 대한 응답 등이 통신 모듈(28)을 통해 논문 작성 장치(10)로 전달될 수 있다.
입출력 인터페이스(19, 29)는 사용자로부터 데이터를 입력 받거나, 프로세서(100, 200)나 메모리(14, 24), 통신 모듈(18, 28) 등으로부터 제공되는 데이터를 사용자에게 출력하는 구성요소로서, 물리적 측면의 하드웨어 인터페이스 및 논리적 측면의 소프트웨어 인터페이스를 모두 포함하는 것으로 이해될 수 있다. 예를 들어, 입출력 인터페이스(19, 29)는 입력 장치로서 키보드, 마우스, 마이크, 카메라 등의 장치를 포함하고, 출력 장치로서 스피커, 디스플레이 등과 같은 장치를 포함할 수 있다. 다른 예로서, 입출력 인터페이스(19, 29)는 터치스크린과 같이 입력과 출력이 하나로 통합된 장치, 터치 펜 등의 입력 도구를 포함할 수도 있다.
사용자는 입출력 인터페이스(19, 29), 특히 논문 작성 장치(10)의 입출력 인터페이스(19)를 통해 자신이 입력한 데이터를 확인하거나 프로세서(100) 또는 메모리(14)로부터 제공되는 데이터를 확인하면서, 문서 작성을 위한 데이터를 입력할 수 있다. 다시 말하면, 입출력 인터페이스(19, 29)는 사용자로부터 문서 작성을 위한 데이터를 입력 받거나, 사용자에게 문서 작성을 위한 데이터를 출력할 수 있다.
 
도 3은 도 2의 문서 작성 장치와 문서 작성 서버의 프로세서의 구성의 일 예를 보여주는 도면이다.
도 3을 참조하면, 프로세서(100)는 화면 구성부(101), 데이터 관리부(102), , 케이스 관리부(103), , 키워드 관리부(104), , 자동완성 리스트 생성부(105), , 텍스트 입력요소 관리부(106) 중 하나 이상을 포함할 수 있다.참조자료 관리부(107)데이터 비교부(108)비교 결과 출력부(110)데이터 통신부(113)
화면 구성부(101)는 문서 작성 애플리케이션을 통해 사용자에게 보여지는 화면의 구조 및 콘텐츠를 구성할 수 있다. 화면 구성부(101)를 통해 구성된 화면은 입출력 인터페이스(19)를 통해 사용자에게 제공될 수 있다. 여기서, 화면의 구조는 웹 페이지를 복수 개의 영역으로 나누어 배치한 것으로 이해될 수 있고, 콘텐츠는 화면 전체 또는 각각의 영역에 표시될 텍스트, 이미지, 동영상 등의 멀티미디어 정보 및 웹 요소(web component)로 이해될 수 있다. 또한, 콘텐츠는 사용자에게 멀티미디어 정보를 제공할 수도 있고, 사용자로부터 데이터 또는 명령을 입력받을 수도 있고, 사용자가 화면에 대해 소정의 조작을 수행할 수 있는 UI를 포함할 수도 있다. 본 실시예에서, UI는 사용자가 문서 작성 애플리케이션을 통해 정보를 인식할 수 있고, 문서 작성 애플리케이션을 통해 데이터를 입력하거나 명령을 내릴 수 있도록 제공된 구성요소를 포함하는 것으로 이해될 수 있다. 본 실시예에서와 같이 문서 작성 애플리케이션이 웹 애플리케이션으로 제공되는 경우, UI는 웹 페이지에 포함될 수 있는 임의의 구성요소로 이해될 수 있으며, 예를 들어 GUI(Graphic User Interface), TUI(Text User Interface), WUI(Web User Interface) 등을 포함할 수 있다.
화면 구성부(101)는 웹 브라우저의 일 기능으로서 제공되는 것일 수 있다. 또한, 화면 구성부(101)는 논문 작성 서버(20)로부터 파일 및 데이터를 제공받거나, 메모리(14)에 저장된 파일 또는 데이터를 읽어와 화면을 구성할 수 있다. 화면 구성부(101)를 통해 구성된 화면은 정적 웹 페이지 또는 동적 웹 페이지일 수 있으며, 화면 구성부(101)는 웹 페이지 구현을 위해 필요한 파일 및 리소스를 참조할 수 있다.
화면 구성부(101)를 통해 보여지는 화면에 포함된 각각의 영역의 기능 및 역할은 미리 정의되어 있을 수 있다. 예를 들어, 화면 구성부(101)는 내비게이션 영역, 사이드 바 영역, 메인 영역 등이 배치되어 있는 미리 설정된 구조로 화면을 구성할 수 있다. 각각의 영역이 포함하는 콘텐츠는 미리 설정되어 있거나, 사용자로부터 입력받아 생성될 수 있다. 예를 들어, 내비게이션 영역과 사이드 바 영역에서 표시되는 콘텐츠는 미리 설정되어 있고, 메인 영역에는 미리 설정되어 있는 정보와 사용자가 입력하는 정보가 함께 표시될 수 있다.
또한, 화면 구성부(101)를 통해 구성된 웹 페이지에는 사용자가 화면의 구조를 조절하거나, 화면에 표시되는 콘텐츠의 종류, 내용, 위치, 형태 등을 설정하거나 변경할 수 있는 UI를 제공하는 스크립트가 포함될 수 있다. 즉, 화면 구성부(101)는 사용자가 웹 페이지의 구성을 변경할 수 있도록 제공될 수 있다. 예를 들어, 화면 구성부(101)를 통해 제공된 웹 페이지에는 복수 개의 영역이 포함되어 있고, 사용자가 화면에 표시될 영역을 선택할 수 있거나, 영역의 위치와 크기 중 하나 이상을 조절할 수 있는 기능을 가진 UI가 제공될 수 있다. 이러한 UI의 기능은 웹 페이지를 동적으로 제어할 수 있는 javascript 등의 프로그램 언어로 구현될 수 있다.
화면 구성부(101)는 기본적으로 사용자가 입출력 인터페이스(19)를 이용하여 문서의 내용을 입력할 수 있는 "문서 작성 화면"을 구성할 수 있다. 문서 작성 화면의 구조와 콘텐츠는 제공하는 서비스에 따라 서로 다르게 구성될 수 있다. 즉, 제1 서비스를 위한 문서 작성 화면과 제2 서비스를 위한 문서 작성 화면은 다르게 구성될 수 있다. 이와 관련된 구체적인 내용은 후술하겠다.
어느 경우이든 화면 구성부(101)에 의해 구성되는 문서 작성 화면은 사용자가 문서의 내용으로서 텍스트를 포함하는 정보를 입력할 수 있는 하나 이상의 텍스트 입력요소(text input component)를 포함할 수 있다. "텍스트 입력요소"는 사용자가 텍스트를 입력할 수 있도록 문서 작성 애플리케이션을 통해 사용자에게 제공되는 UI로 이해될 수 있고, 본 실시예에서와 같이 문서 작성 애플리케이션이 웹 애플리케이션으로 구현되는 경우 html의 폼 요소(form component) 또는 데이터 입력이 가능한 태그일 수 있다. 예를 들어, 텍스트 입력요소는 input, textarea, div 태그 등으로 구성될 수 있다.
이때, 일부 텍스트 입력요소는 표, 그림 등 비-텍스트(non-text) 데이터를 입력받을 수 있도록 제공될 수 있다. 일 예로, 웹 페이지에는 표 그리기, 특수 문자 삽입하기, 수식 입력하기, 화학식 입력하기, 서열정보 입력하기, 그림 삽입하기 등의 기능을 수행할 수 있는 UI가 툴바(toolbar) 형태로 텍스트 입력 영역창(input window)의 일측에 제공되어 있는 텍스트 입력요소가 포함될 수 있다. 물론, 이와 같은 UI는 텍스트 입력요소와 분리되어 배치될 수도 있다.
 
데이터 관리부(102)는 문서 작성에 필요한 데이터를 관리하는 것으로서, 데이터베이스(140)의 데이터 입출력 인터페이스로서 기능할 수 있다. 예를 들어, 데이터 관리부(102)는 데이터베이스(140)에 데이터를 저장하거나, 저장된 데이터를 읽어오거나, 저장된 데이터를 수정하거나, 저장된 데이터를 삭제하는 기능을 제공할 수 있다.
데이터 관리부(102)는 웹 브라우저의 일 기능으로서 제공되는 것일 수 있다. 또는, 데이터 관리부(102)는 웹 브라우저에서 로딩하거나 참조하여 사용할 수 있는 프로그램 소스, 파일, 라이브러리 등일 수 있다.
상술한 것처럼, 데이터베이스(140)는 웹 브라우저에서 제공하는 웹 DB로서, 웹 스토리지, 웹 SQL 데이터베이스, 및 인덱스 DB 중 하나 또는 그 이상을 포함할 수 있다. 이러한 웹 DB는 웹 브라우저의 종류 및 버전에 따라 지원 여부, 저장 용량 등의 특성이 상이하다. 데이터 관리부(102)는 사용자가 자신이 원하는 임의의 웹 브라우저를 사용하여 문서 작성 기능을 이용할 수 있도록 문서 작성 애플리케이션의 구동에 이용된 웹 브라우저의 정보를 체크한 후 해당 웹 브라우저가 정상적으로 지원하는 하나 이상의 웹 DB가 사용되도록 할 수 있다. 이를 위해 웹 브라우저 별로 사용하는 웹 DB의 종류가 미리 설정되어 웹 페이지 또는 스크립트에 저장되어 있을 수 있다. 예를 들어, 데이터 관리부(102)는 사용된 웹 브라우저가 인덱스 DB를 정상적으로 지원하지 않는 인터넷 익스플로어 11인 경우 데이터베이스(140)로서 웹 스토리지가 이용되도록 할 수 있고, 인덱스 DB를 정상적으로 지원하는 크롬인 경우 보다 많은 저장 용량을 지원하는 인덱스 DB가 데이터베이스(140)로서 이용되도록 할 수 있다.
또한, 데이터베이스(140)가 웹 DB 이외의 다른 형태의 저장소를 더 포함하는 경우, 데이터 관리부(102)는 그 다른 형태의 저장소와도 연동 가능하게 제공될 수 있다.
논문 작성 장치(10)에 포함되어 있는 구성요소들은 데이터 관리부(102)를 통해 데이터베이스(140)와 연동하여 데이터 관리를 할 수 있다. 물론, 실시예에 따라 논문 작성 장치(10)에 포함되어 있는 구성요소들 중 어느 하나 또는 그 이상은 독립적으로 데이터베이스(140)와 연동할 수도 있다. 본 실시예에서는, 특별한 설명이 부가되지 않더라도 논문 작성 장치(10)의 구성요소들은 데이터 관리부(102)를 통해 데이터베이스(140)와 연동되는 것으로 이해될 수 있다.
 
또한, 데이터 관리부(102)는 데이터베이스(140)와 연동 시 데이터를 암호화하여 처리할 수 있다. 구체적으로, 데이터 관리부(102)는 기 설정된 암호화 알고리즘을 통해 사용자가 입력하는 데이터를 인코딩하여 데이터베이스(140)에 저장할 수 있고, 데이터베이스(140)에 저장된 데이터를 읽어와 동일한 암호화 알고리즘을 통해 디코딩하여 입출력 인터페이스(19)를 통해 사용자에게 출력할 수 있다. 이때, 데이터 관리부(102)가 사용하는 암호화 알고리즘은 사용자 계정 정보에 의존적인 키 값을 이용할 수 있고, 이에 의해 문서 작성 애플리케이션을 통해 작성되는 문서의 보안성능을 더욱 향상시킬 수 있다.
 
한편, 데이터 관리부(102)는 논문 작성 장치(10)의 데이터베이스(140)뿐만 아니라, 논문 작성 서버(20)의 데이터베이스(240)와 연동하도록 제공될 수도 있다. 이 경우, 데이터 관리부(102)는 후술할 데이터 통신부(113)를 통해 논문 작성 서버(20)로 소정의 데이터 처리 요청을 전달할 수 있고, 논문 작성 서버(20)로부터 제공되는 처리 결과를 전달받을 수 있다. 여기서, 상술한 데이터 관리부(102)와 데이터베이스(140) 사이의 연동 방법은 실질적으로 동일하게 데이터 관리부(102)와 데이터베이스(240) 사이에 적용될 수 있다. 실시예에 따라, 데이터 관리부(102)는 논문 작성 장치(10)의 데이터베이스(140) 및 논문 작성 서버(20)의 데이터베이스(240) 중 어느 하나 또는 모두와 연동되도록 제공될 수 있다.
 
케이스 관리부(103)는 사용자가 문서를 작성하기 위해 생성하는 케이스를 관리할 수 있다. 케이스 관리부(103)에 의해 관리되는 케이스의 정보는 사용자로부터 입력받거나, 기 설정된 규칙에 따라 생성될 수 있다. 예를 들어, 케이스의 정보는 관련된 서비스에 따라 관리번호, 케이스 명칭, 마감일, 의뢰인, 기술 분야, 문서 양식, 저장 방식, 번역 언어 정보 등의 정보를 포함할 수 있다. 화면 구성부(101)는 이와 같은 정보를 관리하기 위한 화면(이하, "케이스 관리 화면"이라 한다)을 구성하여 사용자에게 제공할 수 있다. 케이스 관리 화면은 독립된 웹 페이지로 제공되거나, 웹 페이지의 일부 영역으로 제공되거나, 웹 페이지에 숨김 또는 접힘 가능한 영역으로 제공되거나, 팝업 페이지 또는 창(window)으로서 제공될 수 있다.
여기서, 관리번호는 해당 케이스를 다른 케이스와 구별하기 위해 설정된 값으로서, 케이스 관리 화면을 통해 사용자에게 입력받거나 기 설정된 규칙에 따라 케이스 관리부(103)에 의해 자동으로 부여될 수 있다. 이때, 관리번호는 각각의 케이스에 대해 고유한 값으로서 관리, 사용될 수 있으며, 케이스 관리부(103)는 관리번호의 고유성을 검증하는 프로세스를 수행할 수 있다.
케이스 명칭은 해당 케이스를 사용자가 다른 케이스와 구별하여 인식할 수 있도록 임의로 입력받는 값, 마감일은 해당 케이스의 작업이 완료되어야 하는 날짜, 의뢰인은 해당 케이스를 사용자에게 의뢰한 자, 기술 분야는 해당 케이스와 관련성이 높은 기술 종류(예를 들어, 정보통신, 기계, 화학 등)로 이해될 수 있다.
문서 양식은 작성하고자 하는 문서가 기본적으로 갖춰야할 구조로 이해될 수 있다. 구체적으로, 특허 명세서의 경우 특허청마다 지정되어 있는 양식이 상이한 바, 사용자가 작성하고자 하는 특허 명세서의 양식을 선택할 수 있도록 케이스 관리 화면이 구성될 수 있다. 예를 들어, 문서 양식으로서, "KR", "US", "JP", "PCT" 등이 예시될 수 있고, 사용자가 "KR"을 선택하는 경우, 한국 특허청에서 요구하는 특허 명세서 양식에 대응되는 화면이 사용자에게 제공될 수 있다. 데이터베이스(140)에는 각각의 문서 양식에 대응되는 필수 입력 정보나 파일 템플릿이 저장되어 있을 수 있으며, 프로세서(100)는 그에 대응되는 화면 또는 파일을 사용자에게 제공할 수 있다.
저장 방식은 해당 케이스와 관련하여 입력되는 정보를 논문 작성 장치(10)에 저장하여 관리할 지, 논문 작성 서버(20)에 저장하여 관리할 지 여부를 선택하는 것으로 이해될 수 있다. 예를 들어, 케이스 관리 화면은 사용자에게 "Local Database"와 "Cloud Database"라는 옵션을 제공할 수 있고, 사용자가 전자를 선택하는 경우 해당 케이스의 정보는 데이터베이스(140)에 저장되고, 후자를 선택하는 경우 해당 케이스의 정보는 네트워크(30)를 통해 논문 작성 서버(20)에 전달되어 데이터베이스(240)에 저장될 수 있다. 전자의 경우, 문서의 정보가 네트워크(30)를 거치지 않으므로, 논문 작성 장치(10)에서 독립적으로 구동되는 워드 프로세서와 같은 수준 또는 그 이상의 보안 성능이 제공될 수 있다. 실시예에 따라서는 일부의 정보만 데이터베이스(140)에 저장되고 나머지 정보는 논문 작성 서버(20)의 데이터베이스(240)에 저장될 수도 있다.
번역 언어 정보는 번역하고자 하는 원문의 언어(제2 언어)와 번역문의 언어(제1 언어)일 수 있으며, 해당 케이스가 제2 서비스용 케이스인 경우에 활용될 수 있다.
 
키워드 관리부(104)는 문서의 내용에 포함되는 키워드(003)를 관리할 수 있다. 본 실시예에서 "키워드(003)(keyword)"는 문서의 내용에 포함될 수 있고 텍스트로 설명될 수 있는 특정 객체를 지칭하는 것으로 이해될 수 있다. 특히, 이하의 설명에서는 특허 문서의 내용에 포함될 수 있고 텍스트로 설명될 수 있는 특정 개체를 지칭하는 "구성요소"가 키워드(003)로서 키워드 관리부(104)에 의해 관리되는 것을 예로 들어 설명한다. 
실시예에 따라 키워드(003)는 발명을 구성하는 것이 아닐 수도 있으며, 특정 객체를 표현하거나 설명하는 텍스트의 일부일 수도 있다. 그리고, "키워드(003)의 정보"는 해당 키워드(003)와 관련된 하나 이상의 정보(예를 들어 키워드(003)의 명칭, 키워드(003)에 대응되는 식별번호(일 예로 도면부호), 키워드(003)의 번역, 키워드(003)의 사용 여부, 키워드(003)의 사용 횟수 등)를 포함하는 것으로 이해될 수 있다.
이하에서는 이해의 편의를 위해 키워드(003)를 "구성요소"로 표기하나, 본 발명의 사상이 이에 한정되는 것은 아니다.
예를 들어, 문서에는 발명을 구성하는 복수 개의 구성요소들을 설명하는 내용이 포함될 수 있는데, 이러한 발명을 구성하는 구성요소들이 키워드 관리부(104)에 의해 관리될 수 있다. 구체적으로, 발명이 motor, shaft, gear등의 구성요소를 포함하고, 이들을 지칭하는 식별번호가 각각 10, 20, 30으로 설정되어 있는 경우를 예로 들면, "motor", "shaft", "gear", "10", "20", "30" 등이 구성요소 정보로서 관리될 수 있다. 또한, 문서가 제2 서비스에 의해 작성되는 번역문인 경우에는, 각각의 구성요소의 정보에 대한 번역도 구성요소의 정보로서 관리될 수 있다. 상기의 예에서 제2 언어가 영어이고 제1 언어가 한국어인 경우, "motor"에 대해 "모터", "shaft"에 대해 "회전 축", "gear"에 대해 "기어"가 각각의 구성요소의 정보로서 관리될 수 있다.
또한, 실시예에 따라 키워드 관리부(104)에 의해 관리되는 구성요소는 발명에 포함되는 것이 아니라, 발명의 내용을 설명하기 위해 사용되는 특정 객체를 지칭하는 것일 수도 있다. 상기의 예에서, "motor"의 특징을 설명하기 위해 "driving"이라는 용어가 사용되어야 하는 경우, "driving" 또한 키워드 관리부(104)에 의해 관리될 수 있다.
한편, 키워드 관리부(104)는 어느 하나의 구성요소를 설명하는 복수 개의 정보들을 하나의 집합으로서 관리할 수 있다. 예를 들어, 구성요소의 정보로서, 해당 구성요소의 명칭과 해당 구성요소를 지칭하는 식별번호가 설정되어 있는 경우, 키워드 관리부(104)는 해당 구성요소의 명칭과 식별번호의 집합에 대응되는 고유한 키 값을 부여할 수 있고, 설정된 키 값을 기초로 해당 구성요소의 정보를 관리할 수 있다. 상기의 예에서, 키워드 관리부(104)는 "motor"과 "10"과 "모터", "shaft"와 "20"과 "회전 축", "gear"과 "30"과 "기어" 각각을 하나의 집합으로서 관리할 수 있고, 각각의 집합에는 고유의 키 값이 설정될 수 있다. 아울러, 키워드 관리부(104)는 구성요소의 집합에 고유한 키 값을 형성하기 위해 중복된 구성요소 정보가 저장되는 것을 차단할 수 있다. 즉, 키워드 관리부(104)는 동일한 구성요소 정보를 포함하고 있는 복수 개의 구성요소 집합이 형성되는 것을 차단할 수 있다.
화면 구성부(101)는 구성요소의 정보를 관리하기 위한 화면(이하, "구성요소 관리 화면"이라 한다)을 구성하여 사용자에게 제공할 수 있다. 구성요소 관리 화면은 독립된 웹 페이지로 제공되거나, 웹 페이지의 일부 영역으로 제공되거나, 웹 페이지에 숨김 또는 접힘 가능한 영역으로 제공되거나, 팝업 페이지 또는 창 등으로 제공될 수 있다.
한편, 키워드 관리부(104)는 사용자에 의해 구성요소의 정보가 변경되는 경우, 변경 전 후의 구성요소 정보를 자동완성 리스트 생성부(105) 및 텍스트 입력요소 관리부(106)로 전달하여 자동완성 리스트가 갱신되거나, 후술할 자동완성 텍스트 또는 자동완성 블록이 갱신되도록 할 수 있다. 여기서, 구성요소의 정보가 변경된다는 것은, 새로운 구성요소의 정보가 입력되거나, 기 입력되어 있던 구성요소의 정보가 업데이트되거나, 기 입력되어 있던 구성요소의 정보가 삭제되는 것을 모두 포함하는 것으로 이해될 수 있다.
 
자동완성 리스트 생성부(105)는 문서 작성 시 텍스트 입력(text typing)에 소요되는 시간을 최소화하기 위해 제공되는 자동완성 리스트를 생성할 수 있다. 자동완성 리스트 생성부(105)에 의해 생성된 자동완성 리스트는 텍스트 입력요소 관리부(106)에 제공되어 사용될 수 있다.
자동완성 리스트는 사용자가 입력한 텍스트를 기초로 생성된 하나 이상의 항목(item)을 포함할 수 있다. 자동완성 리스트에 포함되는 일부 항목들은 자동완성 리스트 생성부(105)에 의해 설정된 고유의 키 값에 의해 관리될 수 있고, 고유의 키 값을 갖는 항목들에는 후술할 텍스트 입력요소 관리부(106)의 일괄 업데이트 등의 기능이 적용될 수 있다.
구체적으로, 자동완성 리스트 생성부(105)는 기 설정된 데이터 소스(data source)로부터 데이터를 로딩하여 자동완성 리스트에 포함될 수 있는 모든 항목이 포함되어 있는 데이터 셋(data set)을 생성한 후, 생성된 데이터 셋 내에서 사용자가 입력한 텍스트에 대응되는 항목들을 추출하여 화면에 표시될 자동완성 리스트를 구성할 수 있다. 일 예로, 자동완성 리스트 생성부(105)는 사용자가 입력한 텍스트를 검색어로 데이터 소스 내에서 항목들을 검색한 후, 조회된 결과로 자동완성 리스트를 구성할 수 있다. 또는, 자동완성 리스트 생성부(105)는 사용자로부터 텍스트를 입력받은 후 기 설정된 데이터 소스로부터 입력된 텍스트에 대응되는 데이터를 추출하고, 추출된 데이터로 자동완성 리스트를 구성할 수도 있다.
여기서, 데이터 소스는 키워드 관리부(104)에 의해 관리되는 구성요소들을 포함할 수 있다. 예를 들어, 키워드 관리부(104)에 의해 관리되는 구성요소들 각각이 하나의 항목으로서 자동완성 리스트에 포함될 수 있다. 이때, 하나의 구성요소의 집합에 포함된 정보들 전체 또는 일부가 자동완성 리스트의 하나의 항목으로서 사용될 수 있다. 상기의 예를 참조하면, 자동완성 리스트에 "motor", "shaft", "gear", "motor 10", "shaft 20", "gear 30", "모터", "회전 축", "기어", "모터(10)", "회전 축(20)", "기어(30)" 등이 항목으로 포함될 수 있다. 여기서, 도면부호 등의 식별부호가 포함된 항목을 생성하는 경우, 식별부호를 항목에 포함시키는 양식(예를 들어, 괄호로 식별부호를 감싸거나, 공백문자를 사용하는 등)은 기 설정되어 있을 수 있으며, 실시예에 따라 사용자가 직접 식별부호를 항목에 포함시키는 양식을 설정하는 화면이 문서 작성 애플리케이션을 통해 제공될 수도 있다.
또한, 문서 작성 화면이 특허 번역문을 작성하는 제2 서비스를 위한 것인 경우, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소 중 구성요소의 번역이 입력되어 있는 구성요소만 추출하여 데이터 소스를 생성할 수 있다. 즉, 키워드 관리부(104)에 의해 관리되는 구성요소들 중 번역이 입력된 구성요소만 항목으로서 자동완성 리스트에 포함될 수 있다. 이때, 자동완성 리스트 생성부(105)는 번역이 입력되어 있는 구성요소가 식별부호 정보도 포함하고 있는 경우, 자동완성 리스트에 해당 구성요소의 번역만으로 이루어진 항목과 번역과 식별부호가 함께 표시되어 있는 항목을 모두 포함시킬 수 있다.
키워드 관리부(104)에 의해 관리되는 구성요소들이 항목으로서 자동완성 리스트에 포함되는 경우, 각각의 항목은 대응되는 구성요소 정보의 집합에서 추출되어 형성된 구성요소 정보의 조합을 고유의 키 값으로 가질 수 있다. 상기의 예를 참조하면, "motor10", "shaft20", "gear30" 등이 해당 항목의 고유의 키 값으로 활용될 수 있다.
또한, 데이터 소스는 데이터베이스(140)에 저장되어 있거나, 논문 작성 서버(20)로부터 제공받은 데이터를 포함할 수 있다. 일 예로, 문서 작성에 있어서 자주 사용되는 표현들은 데이터베이스(140)나 데이터베이스(240)에 저장되어 있을 수 있고, 자동완성 리스트 생성부(105)는 이들을 로딩하거나 데이터 통신부(113)를 통해 논문 작성 서버(20)로부터 제공받아 자동완성 리스트에 항목으로서 포함시킬 수 있다. 이때, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소의 정보와 데이터베이스(140) 또는 논문 작성 서버(20)로부터 제공받은 데이터를 혼합하여 자동완성 리스트를 생성할 수 있다.
자동완성 리스트 생성부(105)에 의해 생성된 자동완성 리스트에 포함되는 항목은, 해당 항목의 속성을 나타내는 속성 값을 가질 수 있다. 여기서, 항목의 속성은 해당 항목을 생성하는 데이터의 출처(예를 들어 데이터베이스(140)에서 제공된 데이터인지, 데이터베이스(240)로부터 제공된 데이터인지), 해당 항목이 사용될 목적(예를 들어, 구성요소를 자동완성시키기 위한 것인지, 관용어(idiom word)를 자동완성시키기 위한 것인지 등), 해당 항목에 포함된 데이터의 종류(예를 들어, 사용된 언어의 종류, 숫자를 포함하는지 여부, 특수문자를 포함하는지 여부 등), 해당 항목에 포함된 데이터의 구성(예를 들어, 도면부호가 포함되었는지 여부, 도면부호가 표시되는 양식, 번역이 포함되어 있는지 여부 등) 등을 포함할 수 있다.
항목의 속성 값의 일 예로서, 발명의 구성요소의 정보를 자동완성 시키기 위해 사용되는 항목에 대응되는 값과 구성요소에 관계없이 반복하는 표현을 자동완성 시키기 위해 사용되는 항목에 대응되는 값이 서로 다르게 설정되어 사용될 수 있다. 이하에서는 전자의 값을 갖는 항목을 "구성요소 항목"이라고 하고, 후자의 값을 갖는 항목을 "관용어 항목"이라고 하겠다. 즉, 구성요소 항목은 발명의 구성요소를 자동완성시키기 위해 사용될 수 있고, 관용어 항목은 반복하여 자주 사용될 수 있는 표현을 자동완성시키기 위해 사용되는 것으로 이해될 수 있다. 또한, 본 실시예에서, "관용어"는 하나의 단어뿐만 아니라 복수 개의 단어를 포함하는 구나 절을 포함하는 것으로 이해될 수 있다.
이때, 구성요소 항목은 키워드 관리부(104)에 의해 관리되는 구성요소로부터 생성될 수 있고, 관용어 항목은 논문 작성 서버(20)로부터 제공받은 데이터로부터 생성될 수 있다. 이에 의해, 발명의 핵심적인 내용과 관련되어 있고 특정 케이스 내에서만 사용될 수 있는 구성요소 항목은 논문 작성 장치(10)에서 관리함으로써 보안성이 강화될 수 있다. 또한, 발명의 핵심적인 내용과 관련이 없으며 모든 케이스에 범용적으로 사용될 수 있는 관용어 항목은 논문 작성 서버(20)에서 관리함으로써 사용 편의성이 향상될 수 있다.
한편, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소의 정보가 변경되는 경우, 해당 구성요소를 기초로 생성된 항목의 정보 및 식별 값을 변경된 정보로 업데이트할 수 있다. 상기의 예에서, 사용자가 키워드 관리부(104)를 통해 "motor"의 식별번호를 "10"에서 "100"으로 변경한 경우, 자동완성 리스트 생성부(105)는 데이터 리소스 및 항목에 포함되어 있는 해당 구성요소의 정보를 "10"에서 "100"으로 변경할 수 있다. 그에 따라, 자동완성 리스트에는 "motor 10" 대신 "motor 100"이 항목으로 포함될 수 있으며, 해당 항목의 식별 값도 "motor10"에서 "motor100"으로 변경될 수 있다.
또한, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 새로운 구성요소의 정보가 추가되는 경우, 해당 구성요소를 구성요소 리스트의 구성요소 항목으로 추가할 수 있다. 또한, 자동완성 리스트 생성부(105)는 키워드 관리부(104)에 의해 관리되는 구성요소의 정보가 삭제되는 경우, 해당 구성요소를 기초로 생성된 항목을 삭제할 수 있다.
자동완성 리스트 생성부(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"을 선택하여 자동완성 시킬 수 있을 것이다.
자동완성 리스트 생성부(105)에 의해 생성되는 데이터 셋이나 자동완성 리스트는 json이나 xml과 같이 구조화된 텍스트 문서 포맷을 가질 수 있다.
 
텍스트 입력요소 관리부(106)는 웹 페이지에 포함되어 있는 텍스트 입력요소를 관리할 수 있다. 화면 구성부(101)는 상술한 것처럼 문서 작성 화면이 하나 이상의 텍스트 입력요소를 포함하도록 화면을 구성할 수 있으며, 텍스트 입력요소 관리부(106)는 화면 구성부(101)에 의해 문서 작성 화면에 포함된 텍스트 입력요소를 제어할 수 있다.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력되는 텍스트의 서식을 관리할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력되는 텍스트의 크기, 폰트(font family), 색상 등 일반적으로 알려져 있는 텍스트의 속성과 밑줄, 굵은 글씨, 기울임 등의 텍스트에 부가될 수 있는 효과를 관리할 수 있다. 이와 같은 서식 관리는 텍스트 입력요소에 입력된 전체의 텍스트에 대해 일괄적으로 수행될 수 있고, 사용자가 선택한 일부의 텍스트에 대해서만 수행될 수도 있다. 또한, 서식 관리는 기 설정된 조건에 따라 텍스트 입력요소 관리부(106)에 의해 자동으로 수행될 수도 있고, 사용자에 의해 수동으로 수행될 수도 있다. 후자의 경우, 텍스트 입력요소에는 사용자가 서식을 변경할 수 있는 UI가 포함될 수 있다.
본 실시예에서, 텍스트를 편집하는 것은 텍스트의 내용을 변경하는 것뿐만 아니라 텍스트에 적용된 서식을 수정하거나 변경하는 것을 포함하는 것으로 이해될 수 있다.
한편, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소가 다른 텍스트 입력요소와 다른 서식을 갖게 할 수도 있다.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 발생하는 이벤트를 감지하고, 그에 따라 설정된 동작이 수행되도록 할 수 있다. 텍스트 입력요소에서 발생하는 이벤트는 키보드 이벤트(예를 들어, key down, key press, key up, input 등)와 마우스 이벤트(예를 들어, click, double click, mouse down 등)와 웹 브라우저 또는 운영체제에서 발생시키는 기타 이벤트를 모두 포함할 수 있다. 또한, 텍스트 입력요소에서 발생하는 이벤트는 데이터 값이 변경(추가, 수정, 삭제 등)되는 것도 포함하는 것으로 이해될 수 있다. 이하의 설명에서 특별한 부연 설명없이 "이벤트"라고 언급되는 것은, 키보드 이벤트와 마우스 이벤트와 기타 이벤트 및 데이터 변경을 모두 포함하는 것으로 이해될 수 있다.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 발생하는 이벤트에 따라 텍스트 입력요소에 입력된 텍스트의 전체 또는 일부를 기 설정된 규칙에 따라 편집할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 특정 키보드 이벤트가 발생하면 텍스트 입력요소에 입력된 텍스트의 일부를 추출하고, 추출된 텍스트가 기 설정된 조건에 부합하는지 여부를 판단할 수 있다. 이와 같은 동작은, 기 설정된 방식으로 동작하는 마우스 이벤트(예를 들어 마우스 우클릭을 하여 팝업 메뉴를 띄운 후 팝업 메뉴에서 기 설정된 항목을 좌클릭하여 선택)에 의해 수행될 수도 있다. 텍스트 입력요소 관리부(106)는 판단 결과에 따라 추출된 텍스트를 기 설정된 규칙에 따라 편집한 후, 편집된 텍스트로 추출된 텍스트를 대체하여 텍스트 입력요소에 출력할 수 있다.
일 예로, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 영어가 입력되는 경우 입력된 키가 스페이스 바일 때 입력된 단어가 문장의 첫 번째 단어이고 첫 문자가 대문자가 아니라면, 입력된 단어의 첫 문자를 대문자로 변경하여 입력된 단어 대신 텍스트 입력요소에 출력할 수 있다. 구체적으로, 사용자가 텍스트 입력요소에 문장의 첫 단어로 "this"를 입력한 후 키보드의 스페이스 바를 누른다면, 텍스트 입력요소 관리부(106)는 "this"를 추출하여 "This"로 변경한 후 텍스트 입력요소에 출력할 수 있다.
또 다른 예로, 텍스트 입력요소에 한글이 입력되는 경우, 텍스트 입력요소 관리부(106)는 입력된 키가 스페이스 바일 때 입력된 단어의 조사가 조사의 앞에 위치한 단어의 마지막 글자의 받침에 맞게 사용되었는지 여부를 체크하고, 조사가 맞게 사용되어 있지 않다면 맞는 조사로 변경하여 입력된 단어 대신 텍스트 입력요소에 출력할 수 있다. 이때, 텍스트 입력요소 관리부(106)는 조사의 앞에 위치한 단어가 도면부호를 표시하는 부분을 포함하고 있는 경우에는 도면부호를 표시하는 부분을 제외한 마지막 글자의 받침을 기준으로 조사가 맞게 사용되어 있는지 여부를 체크할 수 있다. 구체적으로, 사용자가 텍스트 입력요소에 "목적어을" 또는 "목적어(100)을"을 입력한 후 키보드의 스페이스 바 키를 누른다면, 텍스트 입력요소 관리부(106)는 "목적어을"을 "목적어를"로, "목적어(100)을"을 "목적어(100)를"로 변경하여 텍스트 입력요소에 출력할 수 있다.
위와 같은 대문자 변경이나, 조사 변경 등의 기능은 후술할 자동완성 블록에 대해서도 동일하게 적용될 수 있다.
텍스트 입력요소 관리부(106)는 사용자가 텍스트 입력요소를 통해 텍스트를 입력할 때, 자동완성 기능을 제공할 수 있다. 본 실시예에서 "자동완성"은 사용자가 입력하고자 하는 단어 또는 문구(이하 "전체 문구"라고 한다)의 일부만을 입력한 후 기 설정된 키 입력 또는 마우스 입력을 수행하면 전체 문구가 입력되도록 하는 것으로 이해될 수 있다.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 텍스트를 입력하기 위한 키보드 이벤트(예를 들어, a, b, c, 1, 2 등의 input 이벤트)가 발생되면 자동완성 리스트를 화면에 출력하고, 사용자로부터 원하는 항목을 선택받는 방식으로 자동완성 기능을 제공할 수 있다. 자동완성 리스트에 포함된 각각의 항목들은 각각 하나의 전체 문구로서 사용될 수 있다.
상술한 것처럼, 텍스트 입력요소 관리부(106)가 출력하는 자동완성 리스트는 자동완성 리스트 생성부(105)에 의해 생성되어 제공될 수 있다. 자동완성 리스트 생성부(105)에 의해 생성된 자동완성 리스트는 복수 개의 항목을 포함할 수 있고, 복수 개의 항목에는 구성요소 항목이나 관용어 항목이 포함될 수 있는 바, 사용자는 자동완성 기능을 활용하여 문서 작성에 소요되는 시간을 줄일 수 있다.
예를 들어, 텍스트 입력요소 관리부(106)는 텍스트 입력요소 내에서 텍스트를 입력하기 위한 키보드 이벤트가 발생되면 해당 이벤트가 발생한 커서 위치를 추출할 수 있다. 그리고, 텍스트 입력요소 관리부(106)는 추출된 커서의 위치(이하 "추출 위치"라고 한다)의 주변 텍스트를 기 설정된 조건에 따라 추출할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 추출 위치의 앞쪽에 위치하는 하나의 단어에 대응되는 텍스트를 추출할 수 있다. 일 예로, 추출된 텍스트는 추출 위치로부터 그 앞에 위치하는 식별자(예를 들어, 개행문자, 태그, 스페이스 바 등 운영체제 및 문서 작성 애플리케이션에서 제공하는 언어별 텍스트 입력 방식에 따라 하나의 단어로서 인식할 수 있도록 설정된 텍스트 또는 코드)의 위치까지 존재하는 문자열(string)일 수 있다. 일 예로, 텍스트 입력요소 관리부(106)는 웹 브라우저의 window 객체의 selection 객체를 이용하여 커서의 위치 및 텍스트를 추출할 수 있다. 이하에서 "문자열"은 하나 이상의 연속된 문자, 숫자, 기호, 또는 공백문자의 집합으로 이해될 수 있고, 문자열을 구성하는 하나의 단위는 문자(character)로 통칭될 수 있다.
이때, 텍스트 입력요소 관리부(106)는 연속된 문자열의 중간에 텍스트가 입력되는 경우에도 자동완성 기능이 제공되도록 할 수 있다. 이를 위해, 텍스트 입력요소 관리부(106)는 추출된 텍스트를 기준으로 그 앞에 기재되어 있던 텍스트(이하 "전방 텍스트"라 한다)와 그 뒤에 기재되어 있던 텍스트(이하 "후방 텍스트"라 한다)를 각각 저장해 놓을 수 있다. 이때, 전방 텍스트와 후방 텍스트는 추출된 텍스트를 기준으로 전방 및 후방에 위치하는 html 태그까지의 텍스트일 수도 있다. 전방 텍스트와 후방 텍스트는 텍스트 입력요소 관리부(106)의 기능을 구현하는 함수 또는 메소드 내에서 독립적, 명시적으로 저장되거나, 텍스트 입력요소 관리부(106)가 참조하는 라이브러리 또는 스크립트에 의해 자동으로 생성, 관리될 수도 있다.
텍스트 입력요소 관리부(106)에 의해 추출된 텍스트는 자동완성 리스트를 생성하기 위한 키워드(keyword)로 사용될 수 있다. 다시 말하면, 자동완성 리스트 생성부(105)는 텍스트 입력요소 관리부(106)에 의해 추출된 텍스트를 검색어(search term)로 하여, 기 설정된 데이터 소스 또는 데이터 셋에서 추출된 텍스트를 포함하고 있거나 이에 대응될 수 있는 데이터를 검색하여 자동완성 리스트에 포함될 항목들을 생성할 수 있다. 이하에서는 텍스트 입력요소 관리부(106)에 의해 추출되고 자동완성 리스트 생성부(105)에서 자동완성 리스트 생성을 위해 사용되는 텍스트를 "자동완성 키워드"라고 하겠다.
자동완성 리스트 생성부(105)는 자동완성 키워드를 기초로 자동완성 리스트를 생성하여 텍스트 입력요소 관리부(106)에 제공할 수 있고, 텍스트 입력요소 관리부(106)는 자동완성 리스트 생성부(105)로부터 제공된 자동완성 리스트를 해당 이벤트가 발생한 커서 위치에 출력할 수 있다. 텍스트 입력요소 관리부(106)에 의해 출력되는 자동완성 리스트는 하나 이상의 항목을 포함하고, 사용자가 마우스 또는 키보드를 이용하여 선택된 항목을 변경할 수 있도록 구성될 수 있다. 일 예로, 자동완성 리스트는 기 설정된 크기를 갖는 블록으로서 텍스트 입력요소 관리부(106)에 의해 독립된 레이어로 생성되고, 텍스트 입력요소 관리부(106)에 의해 호출되는 경우 화면에 나타나는 형태로 제공될 수 있다. 이때, 자동완성 리스트가 나타나는 방향은 커서 위치를 기준으로 설정된 크기의 자동완성 리스트가 온전하게 화면에 포함될 수 있도록 설정될 수 있다. 이를 위해, 텍스트 입력요소 관리부(106)는 웹 브라우저에서 제공하는 텍스트 입력요소의 크기 및 위치, 커서의 위치 등을 읽어와 자동완성 리스트가 출력되는 방향을 결정할 수 있다. 일 예로, 커서의 위치가 텍스트 입력요소의 좌측에 치우쳐 있는 경우에 자동완성 리스트는 커서의 우측에 출력될 수 있고, 우측에 치우쳐 있는 경우에 자동완성 리스트는 커서의 좌측에 출력될 수 있다.
사용자가 출력된 자동완성 리스트에서 자신이 원하는 항목을 선택한 후 기 설정된 키 입력(예를 들어 tab 키, 또는 enter 키) 또는 마우스 입력을 수행하면, 텍스트 입력요소 관리부(106)는 자동완성 키워드를 사용자가 선택한 항목의 내용으로 변경하여 텍스트 입력요소에 출력할 수 있다. 즉, 선택된 항목이 자동완성된 전체 문구로서 텍스트 입력요소에 출력될 수 있다. 이하에서는 자동완성 키워드를 대체하여 텍스트 입력요소에 출력된 전체 문구를 "자동완성 텍스트"라고 한다.
이때, 자동완성 텍스트를 출력하기 위한 키 입력은 복수 개일 수 있으며, 텍스트 입력요소 관리부(106)는 입력되는 키 값에 따라 자동완성 텍스트를 다른 형태로 구성할 수 있다. 예를 들어, 자동완성은 제1 키 입력과 제1 키 입력과는 다른 제2 키 입력에 의해 이뤄질 수 있고, 텍스트 입력요소 관리부(106)는 제1 키 입력이 입력된 경우에는 전체 문구를 그대로 자동완성 텍스트로서 출력하고, 제2 키 입력이 입력된 경우에는 전체 문구의 첫 문자를 대문자로 변경하여 자동완성 텍스트로 출력할 수 있다. 다른 예로서, 텍스트 입력요소 관리부(106)는 제2 키 입력이 입력된 경우에는 전체 문구를 단수 표현 또는 복수 표현으로 변경하여 자동완성 텍스트로 출력할 수 있다. 또 다른 예로서, 텍스트 입력요소 관리부(106)는 제2 키 입력이 입력된 경우에는 전체 문구에 포함된 도면부호를 빼고 구성요소의 명칭만 자동완성 텍스트로 출력할 수 있다. 여기서 키 입력은 어느 하나의 키 입력뿐만 아니라 키 입력의 조합도 포함하는 것으로 이해될 수 있다.
사용자가 연속된 문자열의 중간에 텍스트를 입력하는 경우, 텍스트 입력요소 관리부(106)는 자동완성 리스트에서 선택된 항목의 앞쪽에 전방 텍스트를 결합시키고, 선택된 항목의 뒤쪽에 후방 텍스트를 결합시킴으로써 텍스트 입력요소에 입력되어 있던 다른 내용들이 그대로 유지되도록 할 수 있다. 이에 의해, 텍스트 입력요소의 임의의 위치에 텍스트가 입력되더라도 자동완성 기능이 제공될 수 있다.
아울러, 텍스트 입력요소 관리부(106)는 자동완성 텍스트의 바로 뒤에 커서를 위치시킴으로써 사용자가 텍스트 입력을 원활하게 이어나갈 수 있게 할 수 있다. 이와 같은 기능은, 웹 브라우저의 window 객체의 selection 객체를 이용하여 커서의 위치 및 텍스트를 추출한 후, range 객체를 이용하여 자동완성 키워드를 자동완성 텍스트로 교체하는 방법으로도 구현될 수 있다.
또한, 텍스트 입력요소 관리부(106)는 자동완성 텍스트가 다른 부분들과 구별되어 인식될 수 있도록 자동완성 텍스트에 기 설정되어 있는 서식을 적용하고, 서식이 적용된 텍스트가 텍스트 입력요소에 출력되게 할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 텍스트 입력요소 내에서 텍스트에 서식을 부여할 수 있는 태그(일 예로 색상이나 폰트, 크기 등을 다르게 설정한 span 태그나 div 태그)로 자동완성 텍스트를 감싼 후, 텍스트 입력요소에 출력할 수 있다. 이에 의해, 텍스트 입력요소 관리부(106)에 의해 텍스트 입력요소 내에서 자동완성 텍스트들은 다른 텍스트들과 구별되어 인식될 수 있다. 서식을 부여하기 위한 설정 값 또는 태그 그 자체는 이미 자동완성 리스트 항목의 내용으로서 포함되어 있거나, 자동완성 리스트 항목의 속성 값으로 설정되어 있을 수도 있다.
이때, 텍스트 입력요소 관리부(106)는 자동완성 리스트에서 선택된 항목의 속성에 따라 다른 서식이 적용되도록 할 수 있다. 상술한 것처럼, 자동완성 리스트 생성부(105)는 자동완성 리스트에 포함되는 항목이 속성 값을 갖도록 할 수 있고, 자동완성 리스트 생성부(105)는 자동완성 텍스트에 서식을 적용할 때 해당 항목의 속성 값에 따라 다른 서식이 적용되도록 할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 선택된 항목이 구성요소 항목인 경우, 자동완성 텍스트가 다른 텍스트와 구별될 수 있는 제1 색상으로 표시되도록 서식을 지정할 수 있다. 또한, 텍스트 입력요소 관리부(106)는 선택된 항목이 관용어 항목인 경우, 자동완성 텍스트가 다른 텍스트의 색상 및 제1 색상과는 다른 제2 색상으로 표시되도록 하거나, 다른 텍스트의 색상과 동일한 색상으로 표시되도록 할 수 있다. 다른 예로서, 텍스트 입력요소 관리부(106)는 관용어 항목에 대해 서식 지정을 생략함으로써 자동완성 텍스트가 다른 텍스트의 서식과 동일한 서식으로 표시되도록 할 수도 있다.
또한, 텍스트 입력요소 관리부(106)는 자동완성 텍스트가 사용자에 의해 임의로 편집되지 못하도록 할 수 있다. 즉, 자동완성 텍스트의 내용은 편집이 불가능하게 설정될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 자동완성 텍스트를 span 태그 등의 소정의 태그로 감싸되, 해당 태그의 contenteditable 속성을 false로 지정할 수 있다. 이에 의해 태그로 감싸진 영역은 사용자가 임의로 수정할 수 없게 되는 바, 사용자가 자동완성 텍스트를 임의로 변경하는 것을 방지할 수 있다.
자동완성 텍스트의 편집 가능 여부는 자동완성 리스트에서 선택된 항목의 속성에 따라 다르게 설정될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 선택된 항목이 구성요소 항목인 경우에는 자동완성 텍스트가 편집 불가능하도록 하고, 관용어 항목인 경우에는 편집이 가능하도록 설정할 수 있다. 이에 의해, 본 실시예는 문서 내에서 표현의 통일성이 요구되는 구성요소가 잘못 기재되거나 임의로 변경되어 특허법 상 기재불비 오류가 발생하는 것을 방지할 수 있음과 동시에, 그와 무관한 관용어는 사용자가 자유롭게 편집할 수 있으므로 사용 편의성을 향상시킬 수 있다.
또한, 텍스트 입력요소 관리부(106)는 이벤트를 감지하여 자동완성 텍스트에 대한 삭제 이벤트(예를 들어 backspace나 delete 등의 키 입력)가 감지되는 경우, 자동완성 텍스트가 한번에 삭제되도록 할 수 있다. 즉, 자동완성 텍스트는 1회의 이벤트에 의해 삭제될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 자동완성 텍스트를 소정의 식별자 또는 태그로 감쌀 수 있으며, 삭제 이벤트의 입력 시 식별자 또는 태그로 감싸진 부분을 전체적으로 삭제함으로써 자동완성 텍스트가 한번의 키 입력으로 삭제되는 동작을 구현할 수 있다. 또한, 텍스트 입력요소 관리부(106)는 웹 브라우저의 windows 객체의 selection 객체를 이용하여, 자동완성 텍스트를 range로 지정한 후 삭제 이벤트 발생 시 지정된 range를 한번에 삭제하는 방법을 이용할 수도 있다. 이에 의해 텍스트 편집에 소요되는 시간을 더욱 줄일 수 있으므로, 문서 작성의 생산성이 더욱 향상될 수 있다.
자동완성 텍스트를 1회의 이벤트로 삭제하는 기능의 제공 여부는 자동완성 리스트에서 선택된 항목의 속성에 따라 다르게 설정될 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 선택된 항목이 구성요소 항목인 경우에는 1회의 이벤트로 자동완성 텍스트가 삭제되도록 하고, 관용어 항목인 경우에는 자동완성 텍스트를 구성하는 낱개의 문자의 삭제가 가능하도록 설정할 수 있다. 이에 의해 문서 내에서 표현의 통일성이 요구되는 구성요소가 잘못 기재되거나 임의로 변경되어 특허법 상 기재불비 오류가 발생하는 것을 방지할 수 있음과 동시에, 그와 무관한 관용어는 사용자가 자유롭게 편집할 수 있으므로 사용 편의성을 향상시킬 수 있다.
본 실시예에서와 같이 문서 작성 애플리케이션이 웹 애플리케이션으로 제공되는 경우, 자동완성 텍스트는 html의 태그에 의해 감싸져 관리될 수 있고, 이를 기초로 텍스트의 서식 지정, 편집 불가, 1회의 이벤트로 삭제 등의 기능이 제공될 수 있다. 이하의 설명에서, 태그에 감싸진 자동완성 텍스트를 "자동완성 블록"이라고 한다. 즉, 텍스트 입력요소 관리부(106)는 사용자가 텍스트 입력요소에 텍스트를 입력할 때 자동완성 블록을 추가하는 방법으로 자동완성 기능을 제공할 수 있다.
한편, 문서 작성 애플리케이션이 html을 기반으로 동작하는 웹 애플리케이션이 아니라 임의의 프로그램 언어로 구현되는 독립적인 응용 소프트웨어일 수도 있다. 이 경우에도, 자동완성 텍스트는 텍스트 입력요소의 다른 부분들과 구별되는 서식으로 표시되거나, 임의로 편집되지 못하도록 관리되거나, 한번의 이벤트로 삭제되도록 구현될 수 있으며, 이와 같이 구현된 자동완성 텍스트는 자동완성 블록으로 이해될 수 있을 것이다.
텍스트 입력요소 관리부(106)는 자동완성 블록에 식별 값을 부여할 수 있고, 식별 값을 기초로 자동완성 블록을 관리할 수 있다. 예를 들어, 자동완성 블록이 span 태그를 이용하는 경우, span 태그의 id 값으로 텍스트 입력요소 관리부(106)에 의해 부여된 식별 값이 설정될 수 있고, 텍스트 입력요소 관리부(106)는 id 값을 기초로 자동완성 블록을 제어할 수 있다.
이때, 텍스트 입력요소 관리부(106)에 의해 자동완성 블록에 부여되는 식별 값은 해당 자동완성 블록을 생성하는 자동완성 리스트의 항목에 따라 결정될 수 있다. 즉, 자동완성 리스트의 어느 하나의 항목에 의해 생성된 자동완성 블록들은 동일한 식별 값을 가질 수 있다. 일 예로, 텍스트 입력요소 관리부(106)에 의해 생성된 자동완성 블록이 갖는 식별 값은 해당 자동완성 블록에 대응되는 항목이 갖는 고유의 키 값일 수 있다. 실시예에 따라, 텍스트 입력요소 관리부(106)는 자동완성 리스트의 항목이 갖는 고유의 키 값이 아니라, 해당 항목의 데이터를 기초로 하여 별도의 식별 값을 생성할 수도 있다.
상기의 예를 참조하면, 자동완성 리스트에 "motor 10", "shaft 20", "gear 30"의 항목이 포함되어 있고, 각각의 항목의 키 값으로 "motor10", "shaft20", "gear30"이 설정되어 있는 경우, 사용자가 자동완성 리스트에서 "motor 10"을 선택하여 생성된 자동완성 블록은 모두 "motor10"이라는 식별 값을 갖고, "shaft 20"을 선택하여 생성된 자동완성 블록은 모두 "shaft20"이라는 식별 값을 가질 수 있다.
텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 관리되는 특정 구성요소의 정보가 변경되면, 해당 구성요소에 대응되는 항목을 기초로 생성된 자동완성 블록의 값을 자동으로 변경해줄 수 있다. 즉, 사용자는 키워드 관리부(104)를 통해 구성요소의 정보를 변경함으로써, 텍스트 입력요소에 자동완성되어 있는 해당 구성요소에 대응되는 텍스트를 한번에 변경할 수 있다. 이와 같은 기능을 "일괄 업데이트"라고 한다. 구체적으로, 사용자가 키워드 관리부(104)를 통해 특정 구성요소의 정보를 변경하면, 키워드 관리부(104)는 텍스트 입력요소 관리부(106)에게 정보가 변경된 구성요소에 대응되는 자동완성 블록의 업데이트를 요청할 수 있다. 키워드 관리부(104)가 텍스트 입력요소 관리부(106)에게 전달하는 요청에는 해당 구성요소의 변경 전의 정보와 변경 후의 정보가 포함될 수 있다. 텍스트 입력요소 관리부(106)는 자동완성 블록의 업데이트 요청을 수신하면, 변경 전의 정보를 기초로 대응되는 자동완성 블록의 식별 값을 조회하고, 조회된 식별 값을 기초로 자동완성 블록의 데이터를 변경 후의 정보로 업데이트 할 수 있다. 이때, 필요에 따라서는 변경 후의 정보를 기초로 해당 자동완성 블록의 식별 값도 변경할 수 있다.
상기의 예에서, 사용자가 키워드 관리부(104)를 통해 "motor"의 식별번호를 "10"에서 "100"으로 변경한 경우, 텍스트 입력요소 관리부(106)는 대응되는 항목의 고유 값인 "motor10"이 식별 값으로 설정되어 있는 자동완성 블록을 모두 조회한 후, 조회된 자동완성 블록의 자동완성 텍스트를 "motor 100"으로 변경함과 동시에, 식별 값을 변경된 "motor100"으로 업데이트할 수 있다.
자동완성 블록의 정보를 업데이트할 때, 텍스트 입력요소 관리부(106)는 텍스트 입력요소 내에서 자동완성 블록에 포함되어 있는 텍스트만 변경할 수 있다. 상기의 예에서, 텍스트 입력요소 내에 자동완성 블록으로 "motor 10"이 입력되어 있는 부분도 있고, 자동완성 블록이 아닌 일반 텍스트로서 "motor 10"이 입력되어 있는 부분도 있는 경우, 사용자가 키워드 관리부(104)에서 "motor"의 식별번호를 "10"에서 "100"으로 변경하였을 때, 일반 텍스트인 "motor 10"은 변경되지 않지만 자동완성 블록인 "motor 10"은 "motor 100"으로 변경될 수 있다. 이에 의해 본 실시예는 사용자에게 키워드 관리부(104)를 통해 구성요소 정보를 관리하고, 자동완성 기능을 이용해 문서를 작성하게 하는 것을 간접적으로 강제할 수 있고, 사용자의 시스템에 대한 숙련도를 향상시킬 수 있다.
실시예에 따라, 키워드 관리부(104)에 의해 관리되는 구성요소의 정보가 변경되는 경우, 텍스트 입력요소 관리부(106)가 텍스트 입력요소에 입력된 전체 텍스트 또는 자동완성 블록들만을 대상으로 변경 전의 문자열을 변경 후의 문자열로 교체(replace)하는 방법으로 변경된 구성요소 정보를 텍스트 입력요소에 반영할 수 있다. 또한, 텍스트 입력요소 관리부(106)는 필요에 따라 사용자에게 텍스트 입력요소 내에서 변경될 부분들을 미리 사용자에게 보여주고, 전체 변경에 대한 사용자의 확인(confirm)을 받아 전체 변경을 수행하거나, 사용자가 선택한 부분들만이 변경되도록 할 수도 있다.
한편, 텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 관리되는 특정 구성요소의 정보가 삭제되면, 해당 구성요소에 대응되는 항목을 기초로 생성된 자동완성 블록을 단순한 자동완성 텍스트로 변경할 수 있다. 예를 들어, 텍스트 입력요소 관리부(106)는 삭제된 구성요소의 정보에 대응되는 자동완성 블록에서 서식 및 속성을 부여하는 태그 정보를 삭제하고, 단순한 텍스트 정보만 남길 수 있다. 다른 실시예로서, 텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 관리되는 특정 구성요소의 정보가 삭제되면, 텍스트 입력요소 내에 포함되어 있는 대응되는 자동완성 블록을 삭제할 수도 있다.
또한, 텍스트 입력요소 관리부(106)는 키워드 관리부(104)에 의해 새로운 구성요소의 정보가 추가되면, 해당 구성요소의 정보에 대응되는 텍스트가 텍스트 입력요소에 포함되어 있는 지 판단한 후, 대응되는 텍스트를 자동완성 블록으로 변경할 수도 있다.
상술한 것처럼, 텍스트 입력요소 관리부(106)는 자동완성 블록 단위로 서식 지정, 편집 불가, 1회의 이벤트로 삭제, 일괄 업데이트 기능을 제공할 수 있으므로, 사용자는 보다 명확하게 자신이 작성하는 문서의 내용을 인식하며 문서 작성을 할 수 있음과 동시에, 빠르고 정확한 편집을 할 수 있는 바, 문서는 보다 정확하고 신속하게 작성될 수 있다.
한편, 실시예에 따라 텍스트 입력요소 관리부(106)는 기 설정된 트리거 문자가 입력되고, 트리거에 연속하여 문자가 입력되는 경우에만 자동완성 리스트가 출력되도록 할 수 있다. 예를 들어, "@"가 트리거 문자로 설정되어 있는 경우, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 "@"에 이어서 문자가 입력되는 경우에만 상술한 자동완성 기능을 제공할 수 있다. 이 경우, 텍스트 입력요소 관리부(106)는 자동완성 키워드가 자동완성 텍스트로 교체될 때, 트리거 문자는 제거된 상태로 텍스트 표시 영역에 출력되도록 할 수 있다. 구체적으로 상기의 예에 적용해 보면, 사용자가 단순히 "mot"을 입력하는 경우에는 자동완성 리스트가 출력되지 않지만 "@mot"을 입력하는 경우에는 "motor 10"이 포함된 자동완성 리스트가 출력되고, 사용자가 이를 선택하는 경우 자동완성 텍스트로서 "motor 10"이 "@mot"을 대체하여 입력될 수 있다. 이처럼 트리거 문자가 사용되면 사용자가 자동완성 리스트를 띄울지 말지 여부를 스스로 선택할 수 있다는 효과가 있다.
또한, 텍스트 입력요소 관리부(106)는 자동완성 기능을 통해 구성요소 항목이 입력될 때, 자동완성되는 구성요소 항목을 지칭하기 위한 선행사(antecedent)를 추가할 수 있다. 예를 들어, 자동완성되는 구성요소 항목이, 해당 텍스트 입력요소 또는 기 설정된 다른 텍스트 입력요소에서 이미 사용된 경우, 텍스트 입력요소 관리부(106)는 구성요소 항목이 자동완성 될 때 "상기", "the" 등의 선행사를 자동으로 추가할 수 있다. 이때, 추가되는 선행사는 자동완성 텍스트의 일부로서 포함되어 자동완성 블록 내에 배치될 수도 있다.
선행사를 구성요소 항목의 자동완성 시 자동으로 추가할 지 여부는 설정 값으로 관리될 수 있으며, 후술할 설정 관리 화면에서 사용자가 선택할 수 있도록 제공될 수 있다.
텍스트 입력요소 관리부(106)는 기 설정되어 있는 문자열을 텍스트 입력요소에 추가하는 문자열 삽입 기능을 제공할 수 있다. 문자열 삽입 기능에 의해 입력되는 기 설정되어 있는 문자열(이하 "삽입 문자열"이라고 한다)은 키워드 관리부(104)에서 관리되는 구성요소는 포함하지 않을 수 있으며, 사용자가 문서의 작성과 관련하여 미리 입력하여 데이터베이스(140) 또는 데이터베이스(240)에 저장되어 있는 문자열일 수 있다.
예를 들어, 삽입 문자열은 해당 케이스의 작성 시 사용자가 입력한, 발명의 명칭, 배경기술, 해결하고자 하는 과제, 발명의 효과, 도면의 간단한 설명, 청구항 등 해당 케이스에 관련된 내용일 수 있다. 이러한 케이스 관련 내용은 데이터베이스(140)에 저장된 것일 수 있다.
또한, 삽입 문자열은 해당 케이스에 의존적이지 않은 내용으로서, 문서의 작성에 있어서 케이스의 종류에 관계없이 반복적으로 사용될 수 있는 문장이나 표현, 또는 특정 기술 용어를 설명하는 데 있어서 케이스의 종류에 관계없이 반복되어 사용될 수 있는 설명문 등 관용적인 내용을 포함할 수 있다. 본 실시예에서는, 이와 같이 반복적으로 사용되는 문장이나 표현, 관용적으로 사용되는 설명문을 상술한 관용어와 구별하여 "관용어구(idiomatic phrase)"라고 하겠다. 즉, 관용어는 자동완성 리스트의 항목으로 사용되는 관용적인 표현으로 이해될 수 있고, 관용어구는 삽입 문자열로서 사용되는 관용적인 표현으로 이해될 수 있다. 관용어구는 데이터베이스(240)에 저장될 수 있으며, 텍스트 입력요소 관리부(106)는 데이터 통신부(113)를 통해 저장되어 있는 관용어구를 제공받을 수 있다. 또한, 삽입 문자열 중 케이스에 관련된 내용은 논문 작성 장치(10)의 데이터베이스(140)에 저장되어 있고, 관용어구는 논문 작성 서버(20)의 데이터베이스(240)에 저장될 수도 있다. 이와 같은 관용어구를 저장하는 위치 및 방법은 예시적으로 제시된 것으로서, 본 발명의 사상은 이에 한정되지 않는다.
관용어구는 기술분야를 설명할 때 관용적으로 사용되는 표현, 선행기술을 설명할 때 관용적으로 사용되는 표현, 해결하고자 하는 과제를 설명할 때 관용적으로 사용되는 표현, 발명의 효과를 설명할 때 관용적으로 사용되는 표현, 도면의 간단한 설명에 사용되는 관용적인 표현, 청구항에 있어서 인용항을 나타낼 때 관용적으로 사용되는 표현 등을 포함할 수 있다. 이와 같은 관용어구는 다른 텍스트로 치환될 수 있는 치환 부분(replacement portion)을 포함할 수 있다. 구체적으로, 치환 부분은 치환 부분의 경계를 나타내는 경계 식별자(예를 들어, 치환될 영역의 시작과 끝을 나타낼 수 있는 문자)와 치환되어 삽입될 텍스트를 지시하는 지시 식별자를 포함할 수 있다. 예를 들어, 지시 식별자는 치환될 텍스트로, 발명의 명칭이나 청구항의 번호 등을 지시할 수 있다.
치환 부분은 관용어구가 텍스트 입력요소 관리부(106)에 의해 텍스트 입력요소에 자동으로 삽입될 때, 기 설정되어 있는 다른 텍스트로 치환되어 삽입될 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 관용어구를 텍스트 입력요소에 삽입할 때 관용어구가 치환 부분을 포함하고 있는지 여부 또는 해당 관용어구가 입력되는 텍스트 입력요소가 치환 부분을 포함하는 텍스트 입력요소인지를 판단할 수 있다. 치환 부분의 치환이 필요하다고 판단되면, 텍스트 입력요소 관리부(106)는 지시 식별자의 내용에 따라 다른 텍스트 입력요소에 기 입력되어 있는 텍스트를 읽어오거나, 사용자가 제공하는 정보 또는 사용자의 선택에 따라 구성된 텍스트로 치환 부분을 변경한 후, 해당 텍스트 입력요소에 출력할 수 있다.
이때, 텍스트 입력요소에 출력되는 치환된 부분은 상술한 자동완성 블록과 같이 구성되어, 블록 단위로 서식 지정, 편집 불가, 1회의 이벤트로 삭제, 일괄 업데이트 기능 등을 가질 수 있다.
화면 구성부(101)는 텍스트 입력요소에 추가될 문자열을 사용자로부터 선택받기 위한 화면(이하, "삽입 문자열 선택 화면"이라 한다)을 구성하여 사용자에게 제공할 수 있다. 삽입 문자열 선택 화면은 독립된 웹 페이지로 제공되거나, 웹 페이지의 일부 영역으로 제공되거나, 웹 페이지에 숨김 또는 접힘 가능한 영역으로 제공되거나, 팝업 페이지 또는 창 등으로 제공될 수 있다. 이때, 삽입 문자열 선택 화면은 삽입 문자열의 종류에 따라 독립적으로 구성될 수 있다. 일 예로, 삽입 문자열 선택 화면은 텍스트 입력요소의 주변에 제공된 버튼 등의 UI를 통해 호출될 수 있다.
사용자가 삽입 문자열 선택 화면에서 문자열을 선택하면, 텍스트 입력요소 관리부(106)는 선택된 문자열을 텍스트 입력요소에서 삽입할 수 있다. 이때, 선택된 문자열이 삽입되는 위치는 사용자가 삽입 문자열 선택 화면을 호출했을 때의 커서 위치일 수 있으며, 이를 위해 텍스트 입력요소 관리부(106)는 삽입 문자열 선택 화면의 호출 이벤트가 발생하였을 때의 커서 위치를 저장해 둘 수 있다. 만약, 커서가 텍스트 입력요소에 위치하지 않은 상태였다면, 삽입 문자열 선택 화면이 호출되지 않도록 제어될 수 있다.
텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력되는 텍스트 정보를 실시간으로 데이터베이스(140)에 저장할 수 있다. 본 실시예에서 "실시간"은 데이터 변경과 관련된 이벤트가 발생하는 경우, 즉시 처리가 이뤄지는 것 또는 아주 짧은 시간 간격으로 처리가 이뤄지는 것으로 이해될 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에서 이벤트가 발생되어 텍스트 입력요소에 입력되어 있는 데이터가 변경되는 경우, 텍스트 입력요소 관리부(106)는 데이터 관리부(102)를 통해 데이터베이스(140)에 데이터를 입력하거나 데이터베이스(140)에 저장되어 있는 데이터를 업데이트할 수 있다. 일 예로, 데이터 관리부(102)는 텍스트 입력요소 관리부(106)에 의해 관리되는 텍스트 입력요소와 데이터베이스(140)에 형성되어 있는 데이터 저장부를 매칭시키고, 매칭되어 있는 텍스트 입력요소에서의 이벤트가 텍스트 입력요소 관리부(106)를 통해 감지되면 자동으로 데이터베이스(140)의 데이터 저장부가 업데이트되도록 할 수 있다. 이 경우, 사용자가 특별히 데이터를 저장하는 액션을 취하지 않아도 텍스트 입력요소에 입력된 데이터가 안전하게 관리될 수 있다. 실시예에 따라, 텍스트 입력요소 관리부(106)는 텍스트 입력요소에 입력된 데이터가 기 설정된 시간 간격으로 저장되거나, 데이터베이스(240)에 저장되도록 제공될 수도 있다.
한편, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소에 입력된 데이터가 그대로 다른 텍스트 입력요소에서 사용되도록 할 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소에 "A"라는 데이터가 입력되어 있는 경우, 다른 텍스트 입력요소에서 "A"가 데이터의 일부로서 포함되도록 다른 텍스트 입력요소의 데이터를 설정할 수 있다. 이때, 사용자에 의해 "A"가 다른 값, 예를 들어 "AA"으로 변경되는 경우, 텍스트 입력요소 관리부(106)는 다른 텍스트 입력요소에 입력되어 있던 "A"를 "AA"로 변경할 수 있다.
텍스트 입력요소 관리부(106)는 이와 같은 기능을 상술한 자동완성 기능과 유사하게 제공할 수 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 "A"를 태그로 감싼 후 태그에 고유의 키 값을 부여한 후 다른 텍스트 입력요소의 데이터로 추가할 수 있다. 이후, "A"가 "AA"로 변경되는 이벤트가 발생되면, 텍스트 입력요소 관리부(106)는 다른 텍스트 입력요소에 포함되어 있는 해당 고유 키 값에 대응되는 태그를 검색한 후, 그 내용을 "A"에서 "AA"로 변경할 수 있다. 이때, 텍스트 입력요소 관리부(106)는 다른 텍스트 입력요소에 입력되어 있는 "A"를 감싸는 태그를 통해 상술한 자동완성 블록과 마찬가지로 서식 지정, 편집 불가, 1회의 이벤트로 삭제, 일괄 업데이트 기능을 제공할 수 있다.
한편, 텍스트 입력요소 관리부(106)에 의해 제어되는 텍스트 입력요소로의 데이터 입력은 키보드나 마우스 외에 다른 입출력 인터페이스(19)에 의해 제공될 수도 있다. 예를 들어, 논문 작성 장치(10)는 입출력 인터페이스(19)로서 마이크를 더 포함할 수 있고, 텍스트 입력요소 관리부(106)는 마이크를 통해 수집된 음성 데이터를 텍스트 데이터로 변환한 후, 대응되는 텍스트 입력요소에 변환된 텍스트 데이터를 입력할 수도 있다. 이를 위해, 텍스트 입력요소 관리부(106)는 음성 데이터를 텍스트 데이터로 변환하는 기능을 구비할 수 있다. 음성 정보의 텍스트 변환을 위해 외부 서비스 연동부(111)가 활용될 수도 있다. 구체적으로, 텍스트 입력요소 관리부(106)는 마이크를 통해 수집된 음성 데이터를 외부 서비스 연동부(111)를 통해 제3 자에게 제공하고, 제3 자가 제공하는 서비스에 의해 변환된 텍스트 데이터를 외부 서비스 연동부(111)를 통해 전달받을 수 있다.
이때, 텍스트 입력요소 관리부(106)는 변환된 텍스트의 내용 중 자동완성 리스트에 대응되는 항목이 있는 경우, 이를 자동완성 블록으로 변환하여 텍스트 입력요소에 출력할 수 있다. 상술한 예에서, 음성으로부터 텍스트 데이터로 변환된 내용 중 "motor" 또는 "motor 10" 등이 포함되어 있는 경우, 텍스트 입력요소 관리부(106)는 해당 텍스트를 대응되는 자동완성 블록으로 변경하여 텍스트 입력요소에 출력할 수 있다. 이와 같은 기능을 통해, 사용자는 키보드를 이용하지 않고 음성으로도 문서의 내용을 입력할 수 있고, 자동완성 기능까지 그대로 이용할 수 있으므로, 사용 편의성이 매우 향상될 수 있다.
한편, 텍스트 입력요소 관리부(106)는 어느 하나의 텍스트 입력요소에서 발생하는 이벤트에 의해 다른 텍스트 입력요소를 제어할 수도 있다. 예를 들어, 어느 하나의 텍스트 입력요소에 입력된 데이터는 다른 텍스트 입력요소의 내용으로서 참조될 수 있으며, 텍스트 입력요소 관리부(106)는 참조된 텍스트 입력요소의 데이터가 변경되는 경우, 이에 관련된 다른 텍스트 입력요소의 내용을 자동으로 업데이트할 수 있다. 구체적인 예로서, 후술할 청구항 작성 화면에 제공되는 독립항의 카테고리 입력요소의 데이터가 변경되는 경우, 텍스트 입력요소 관리부(106)는 해당 독립항을 인용하고 있는 종속항들의 카테고리 입력요소의 데이터를 변경할 수 있다.
 
외부 서비스 연동부(111)는 논문 작성 장치(10) 또는 논문 작성 서버(20)에서 제공하지 않는 서비스를 제공하는 제3 자가 제공하는 외부 서비스에 데이터를 전달하거나 해당 데이터가 처리된 결과를 수신할 수 있다. 예를 들어, 제3 자가 제공하는 서비스는 특허 관련 정보 조회 서비스, 음성-텍스트 변환 서비스, 번역예 제공 서비스, 기계 번역 서비스, 사전 서비스, 카드 결제 서비스, 계좌이체 서비스 등일 수 있다. 외부 서비스 연동부(111)는 제3 자가 제공하는 서비스 API를 호출하여 제3 자 측에 데이터를 전달하고, 처리 결과를 수신하여 문서 작성 화면에 제공할 수 있다.
 
한편, 상술한 논문 작성 장치(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) 중 하나 이상을 포함할 수 있다. 
이때, 상술된 논문 작성 장치(10)의 프로세서(100)의 구성요소의 설명 중 논문 작성 서버(20)로 데이터를 전달하거나 논문 작성 서버(20)로부터 데이터를 전달받아 사용하는 것으로 설명된 것은 대응되는 프로세서(200)의 구성요소가 논문 작성 장치(10)로 데이터를 전달하거나, 논문 작성 장치(10)로부터 데이터를 전달받거나, 논문 작성 서버(20)에 저장되어 있는 데이터를 사용하는 것으로 이해될 수 있다. 또한, 상술된 논문 작성 장치(10)의 프로세서(100)의 구성요소의 설명 중 논문 작성 서버(20)에 저장된 데이터를 이용하는 것으로 설명된 것은, 대응되는 프로세서(200)의 구성요소가 논문 작성 장치(10)에 저장된 데이터를 전달받아 이용하거나 논문 작성 서버(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)도 이용할 수도 있다.
또한, 어느 하나의 구성요소는 논문 작성 장치(10)의 프로세서(100)에만 제공되거나 논문 작성 서버(20)의 프로세서(200)에만 제공될 수도 있다. 이 경우, 해당 구성요소는 독립적으로 그 기능을 수행할 수 있다. 예를 들어, 논문 작성 장치(10)의 프로세서(100) 또는 논문 작성 서버(20)의 프로세서(200) 중 어느 하나에만 제공된 구성요소는 네트워크(30)를 통한 다른 장치와 데이터 송수신 없이 해당 구성요소가 필요로 하는 데이터 관리 및 데이터 처리 기능을 수행할 수 있다.
논문 작성 서버(20)의 프로세서(200)에 제공되는 구성요소는 그 기능 수행을 위해 필요한 데이터를 논문 작성 장치(10)로부터 전달받아 처리할 수 있다. 예를 들어, 논문 작성 서버(20)의 프로세서(200)는 문서 작성 애플리케이션 또는 문서 작성 화면을 통해 입력되는 데이터를 논문 작성 장치(10)로부터 전달받아 처리할 수 있다. 또한, 논문 작성 서버(20)의 프로세서(200)에 제공되는 구성요소는 문서 작성 애플리케이션 또는 문서 작성 화면을 통해 사용자에게 제공되거나, 문서 작성 애플리케이션 또는 문서 작성 화면의 기능 수행을 위해 필요한 데이터를 논문 작성 장치(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)에 제공할 수도 있다.
논문 작성 서버(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)에 제공할 수도 있다.
상기와 같은 논문 작성 장치(10)와 논문 작성 서버(20) 사이에서의 데이터의 전달은 논문 작성 장치(10)의 통신 모듈(18)과 논문 작성 서버(20)의 통신모듈(28)을 통해 수행될 수 있으며, 논문 작성 장치(10)의 데이터 통신부(113) 및 논문 작성 서버(20)의 데이터 통신부(213)에 의해 제어될 수 있다. 또한, 각각의 구성요소는 직접 또는 논문 작성 장치(10)의 데이터 통신부(113) 및 논문 작성 서버(20)의 데이터 통신부(213)를 이용해 데이터를 송수신할 수 있다.
 
도 4는 도 1의 논문 작성 장치(10)에 의해 문서가 작성되는 과정을 설명하는 순서도이다.
일 실시예에 따르면, 논문을 작성하기 위한 논문 작성 화면(001)을 구성하여 입출력 인터페이스(19)를 통해 사용자에게 제공하는 화면 구성부(101); 논문의 내용에 텍스트로 포함될 수 있는 키워드(003)를 사용자로부터 상기 입출력 인터페이스(19)를 통해 입력받고 관리하는 키워드 관리부(104); 논문에 참조자료로서 사용될 수 있는 참조자료의 데이터를 사용자로부터 상기 입출력 인터페이스(19)를 통해 입력받고 관리하는 참조자료 관리부(107); 상기 논문 작성 화면(001)에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소(002)를 관리하고, 상기 입출력 인터페이스(19)를 통한 사용자의 입력에 따라 상기 텍스트 입력요소(002)에 입력되는 텍스트 중 일부를 자동완성 키워드로서 추출한 후 상기 자동완성 키워드를 상기 자동완성 키워드에 대응되는 상기 키워드(003)의 정보를 기초로 생성된 키워드 항목으로 치환하여 상기 텍스트 입력요소(002)에 출력하는 텍스트 입력요소 관리부(106); 상기 텍스트 입력요소(002)에 입력된 데이터를 추출하여 기 설정된 비교 단위로 파싱하고, 파싱된 각각의 토큰 데이터를 상기 참조자료의 데이터와 비교하는 데이터 비교부(108); 및 상기 데이터 비교부(108)를 통해 얻어진 비교 결과를 상기 논문 작성 화면(001)을 통해 사용자에게 제공하는 비교 결과 출력부(110)를 포함하는 논문 작성 장치가 제공될 수 있다.
또한, 상기 비교 단위는 문장 단위인 것을 특징으로 하는 논문 작성 장치가 제공될 수 있다.
또한, 상기 데이터 비교부(108)는, 상기 텍스트 입력요소 관리부(106)에 입력된 데이터로부터 검증용 텍스트를 추출하고, 상기 참조자료 관리부(107)를 통해 관리되는 상기 참조자료의 데이터로부터 비교용 텍스트를 추출하며, 상기 검증용 텍스트와 상기 비교용 텍스트를 자연어 처리를 이용한 유사도 평가 모델을 이용하여 비교하는 논문 작성 장치가 제공될 수 있다.
또한, 상기 데이터 비교부(108)는, 상기 텍스트 입력요소 관리부(106)에 입력된 데이터로부터 검증용 이미지를 추출하고, 상기 참조자료 관리부(107)를 통해 관리되는 상기 참조자료의 데이터로부터 비교용 이미지를 추출하며, 상기 검증용 이미지와 상기 비교용 이미지를 딥러닝을 이용해 구축된 이미지 평가 모델을 이용하여 비교하는 논문 작성 장치가 제공될 수 있다.
또한, 상기 데이터 비교부(108)는 외부 서비스 연동부(111)를 통해 제3자가 제공하는 검색엔진 서비스에 상기 텍스트 입력요소(002)로부터 추출된 데이터 중 일부를 검색어로 제공하고, 상기 검색엔진 서비스가 제공하는 검색 결과에 포함된 웹 문서에 포함되어 있는 데이터와 상기 텍스트 입력요소(002)로부터 추출된 데이터를 비교하며, 상기 비교 결과 출력부(110)는 상기 참조자료와의 비교 결과와 함께 상기 검색엔진의 검색 결과와의 비교 결과를 상기 입출력 인터페이스(19)를 통해 사용자에게 제공하는 논문 작성 장치가 제공될 수 있다.
또한, 상기 참조자료 관리부(107)는 사용자로부터 상기 참조자료를 식별할 수 있는 고유값을 입력받고, 상기 고유값에 대응되는 상기 참조자료의 데이터를 외부 서비스 연동부(111)를 통해 외부 서비스로부터 가져와 데이터베이스(140)에 저장하는 논문 작성 장치가 제공될 수 있다.
또한, 상기 참조자료 관리부(107)는 참조자료의 데이터를 상기 비교 단위로 파싱한 후, 자연어 처리 모델을 통해 각각의 토큰에 대한 벡터 값을 생성하여 저장하는 논문 작성 장치가 제공될 수 있다.
일 실시예에 따르면, 제1 항에 따른 논문 작성 장치(10)를 이용하여 논문을 작성하는 방법으로서, 화면 구성부(101)에 의해 구성된 논문을 작성하기 위한 화면을 입출력 인터페이스(19)를 통해 사용자에게 제공하는 단계; 키워드 관리부(104)를 통해 논문의 내용에 텍스트로 포함될 수 있는 키워드(003) 정보의 등록, 삭제, 수정 명령을 사용자로부터 입력받고, 상기 명령에 따라 상기 키워드(003) 정보를 데이터베이스(140)에 저장하는 단계; 참조자료 관리부(107)를 통해 논문의 참조 자료로 사용될 수 있는 참조자료의 정보의 등록, 삭제, 수정 명령을 사용자로부터 입력 받고, 상기 명령에 따라 참조자료의 데이터를 관리하는 단계; 텍스트 입력요소(002)를 통해 사용자로부터 논문 데이터를 입력받되, 상기 텍스트 입력요소(002)에 입력된 텍스트 중 일부를 자동완성 키워드로 추출한 후 추출된 상기 자동완성 키워드를 상기 자동완성 키워드에 대응되는 상기 키워드(003)의 정보를 기초로 생성된 키워드 항목으로 치환하여 상기 텍스트 입력요소(002)에 출력하는 단계; 데이터 비교부(108)가 상기 텍스트 입력요소(002)에 입력된 데이터를 기 설정된 비교 단위로 추출하고, 상기 참조자료의 데이터와 비교하는 단계; 및 비교 결과 출력부(110)가 상기 데이터 비교부(108)의 비교 결과를 상기 입출력 인터페이스(19)를 통해 제시하는 단계를 포함하는 논문 작성 방법이 제공될 수 있다.
 
이상 설명된 본 발명에 따른 실시예들은 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다.
컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 상술한 실시예들을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예로써, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 또한, 상술한 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 본 발명의 실시예들의 소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
또한, 본 발명의 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
 
이상 본 발명의 실시예에 따른 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템을 구체적인 실시 형태로서 설명하였으나, 이는 예시에 불과한 것으로서 본 발명은 이에 한정되지 않는 것이며, 본 명세서에 개시된 기초 사상에 따르는 최광의 범위를 갖는 것으로 해석되어야 한다. 당업자는 개시된 실시 형태들을 조합, 치환하여 적시되지 않은 실시 형태를 실시할 수 있으나, 이 역시 본 발명의 권리범위를 벗어나지 않는 것이다. 이외에도 당업자는 본 명세서에 기초하여 개시된 실시형태를 용이하게 변경 또는 변형할 수 있으며, 이러한 변경 또는 변형도 본 발명의 권리범위에 속함은 명백하다.
논문 작성 화면 : 001
텍스트 입력요소 : 002
키워드 : 003
텍스트 생성 모델 : 004
텍스트 선택 화면 : 005
논문 작성 시스템 : 1
논문 작성 장치 : 10
프로세서 : 100
화면 구성부 : 101
데이터 관리부 : 102
케이스 관리부 : 103
키워드 관리부 : 104
자동완성 리스트 생성부 : 105
텍스트 입력요소 관리부 : 106
참조자료 관리부 : 107
데이터 비교부 : 108
비교 결과 출력부 : 110
외부 서비스 연동부 : 111
데이터 통신부 : 113
메모리 : 14
데이터베이스 : 140
데이터베이스 : 140, 240
데이터베이스 : 160
통신 모듈 : 18, 28
입출력 인터페이스 : 19
입출력 인터페이스 : 19, 29
논문 작성 서버 : 20
프로세서 : 200
데이터베이스 : 240
네트워크 : 30

Claims (10)

  1. 논문을 작성하기 위한 논문 작성 화면을 구성하여 입출력 인터페이스를 통해 사용자에게 제공하는 화면 구성부;
    논문의 내용에 텍스트로 포함될 수 있는 키워드를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 키워드 관리부;
    논문에 참조자료로서 사용될 수 있는 참조자료의 데이터를 사용자로부터 상기 입출력 인터페이스를 통해 입력받고 관리하는 참조자료 관리부;
    상기 논문 작성 화면에 제공되어 사용자로부터 문서의 내용을 입력받는 텍스트 입력요소를 관리하고, 상기 입출력 인터페이스를 통한 사용자의 입력에 따라 상기 텍스트 입력요소에 입력되는 텍스트 중 일부를 자동완성 키워드로서 추출한 후 상기 자동완성 키워드를 상기 자동완성 키워드에 대응되는 상기 키워드의 정보를 기초로 생성된 키워드 항목으로 치환하여 상기 텍스트 입력요소에 출력하는 텍스트 입력요소 관리부;
    상기 텍스트 입력요소에 입력된 데이터를 추출하여 기 설정된 비교 단위로 파싱하고, 파싱된 각각의 토큰 데이터를 상기 참조자료의 데이터와 비교하는 데이터 비교부; 및
    상기 데이터 비교부를 통해 얻어진 비교 결과를 상기 논문 작성 화면을 통해 사용자에게 제공하는 비교 결과 출력부를 포함하는
    논문 작성 장치.
     
  2. 제1 항에 있어서,
    상기 비교 단위는 문장 단위인 것을 특징으로 하는
    논문 작성 장치.
     
  3. 제1 항에 있어서,
    상기 데이터 비교부는,
    상기 텍스트 입력요소 관리부에 입력된 데이터로부터 검증용 텍스트를 추출하고,
    상기 참조자료 관리부를 통해 관리되는 상기 참조자료의 데이터로부터 비교용 텍스트를 추출하며,
    상기 검증용 텍스트와 상기 비교용 텍스트를 자연어 처리를 이용한 유사도 평가 모델을 이용하여 비교하는
    논문 작성 장치.
     
  4. 제3 항에 있어서,
    상기 데이터 비교부는,
    상기 텍스트 입력요소 관리부에 입력된 데이터로부터 검증용 이미지를 추출하고,
    상기 참조자료 관리부를 통해 관리되는 상기 참조자료의 데이터로부터 비교용 이미지를 추출하며,
    상기 검증용 이미지와 상기 비교용 이미지를 딥러닝을 이용해 구축된 이미지 평가 모델을 이용하여 비교하는
    논문 작성 장치.
     
  5. 제4 항에 있어서,
    상기 데이터 비교부는 외부 서비스 연동부를 통해 제3자가 제공하는 검색엔진 서비스에 상기 텍스트 입력요소로부터 추출된 데이터 중 일부를 검색어로 제공하고, 상기 검색엔진 서비스가 제공하는 검색 결과에 포함된 웹 문서에 포함되어 있는 데이터와 상기 텍스트 입력요소로부터 추출된 데이터를 비교하며,
    상기 비교 결과 출력부는 상기 참조자료와의 비교 결과와 함께 상기 검색엔진의 검색 결과와의 비교 결과를 상기 입출력 인터페이스를 통해 사용자에게 제공하는
    논문 작성 장치.
     
  6. 제1 항에 있어서,
    상기 참조자료 관리부는 사용자로부터 상기 참조자료를 식별할 수 있는 고유값을 입력받고, 상기 고유값에 대응되는 상기 참조자료의 데이터를 외부 서비스 연동부를 통해 외부 서비스로부터 가져와 데이터베이스에 저장하는
    논문 작성 장치.
     
  7. 제1 항에 있어서,
    상기 참조자료 관리부는 참조자료의 데이터를 상기 비교 단위로 파싱한 후, 자연어 처리 모델을 통해 각각의 토큰에 대한 벡터 값을 생성하여 저장하는
    논문 작성 장치.
     
  8. 제1 항에 따른 논문 작성 장치를 이용하여 논문을 작성하는 방법으로서,
    화면 구성부에 의해 구성된 논문을 작성하기 위한 화면을 입출력 인터페이스를 통해 사용자에게 제공하는 단계;
    키워드 관리부를 통해 논문의 내용에 텍스트로 포함될 수 있는 키워드 정보의 등록, 삭제, 수정 명령을 사용자로부터 입력받고, 상기 명령에 따라 상기 키워드 정보를 데이터베이스에 저장하는 단계;
    참조자료 관리부를 통해 논문의 참조 자료로 사용될 수 있는 참조자료의 정보의 등록, 삭제, 수정 명령을 사용자로부터 입력 받고, 상기 명령에 따라 참조자료의 데이터를 관리하는 단계;
    텍스트 입력요소를 통해 사용자로부터 논문 데이터를 입력받되, 상기 텍스트 입력요소에 입력된 텍스트 중 일부를 자동완성 키워드로 추출한 후 추출된 상기 자동완성 키워드를 상기 자동완성 키워드에 대응되는 상기 키워드의 정보를 기초로 생성된 키워드 항목으로 치환하여 상기 텍스트 입력요소에 출력하는 단계;
    데이터 비교부가 상기 텍스트 입력요소에 입력된 데이터를 기 설정된 비교 단위로 추출하고, 상기 참조자료의 데이터와 비교하는 단계; 및
    비교 결과 출력부가 상기 데이터 비교부의 비교 결과를 상기 입출력 인터페이스를 통해 제시하는 단계를 포함하는 
    논문 작성 방법.
     
  9. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체로서,
    제8 항의 논문 작성 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 저장하는
    컴퓨터 판독 가능한 기록매체.
     
  10. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    명령을 저장하는 메모리와 상기 메모리에 저장된 상기 명령을 실행하는 프로세서를 포함하는 장치와 결합되어 제8 항에 따른 논문 작성 방법을 실행하도록 하기 위한 명령어를 포함하는 컴퓨터로 판독 가능한 기록매체에 저장된
    컴퓨터 프로그램.
KR1020220135440A 2022-10-20 2022-10-20 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템 KR20240055309A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220135440A KR20240055309A (ko) 2022-10-20 2022-10-20 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
PCT/KR2023/016364 WO2024085717A1 (ko) 2022-10-20 2023-10-20 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220135440A KR20240055309A (ko) 2022-10-20 2022-10-20 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템

Publications (1)

Publication Number Publication Date
KR20240055309A true KR20240055309A (ko) 2024-04-29

Family

ID=90738199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220135440A KR20240055309A (ko) 2022-10-20 2022-10-20 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템

Country Status (2)

Country Link
KR (1) KR20240055309A (ko)
WO (1) WO2024085717A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101033670B1 (ko) * 2008-12-04 2011-05-12 (주)야긴스텍 문서 간 유사도 산출 시스템 및 방법
KR100945223B1 (ko) * 2009-03-02 2010-03-03 (주)아이비즈넷 중복수상을 검증하는 경진대회 진행 시스템 및 그 방법
US9514417B2 (en) * 2013-12-30 2016-12-06 Google Inc. Cloud-based plagiarism detection system performing predicting based on classified feature vectors
KR101626247B1 (ko) * 2015-01-06 2016-06-01 인하대학교 산학협력단 온라인 서비스 가능한 유의어 사전 기반의 표절문서 탐색 시스템
KR102345007B1 (ko) * 2018-08-29 2021-12-29 주식회사 아이팩토리 특허 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템

Also Published As

Publication number Publication date
WO2024085717A1 (ko) 2024-04-25

Similar Documents

Publication Publication Date Title
JP7289556B2 (ja) 特許文書作成装置、方法、コンピュータプログラム、コンピュータで読み取り可能な記録媒体、サーバー、およびシステム
Kottwitz LaTeX beginner's guide
KR20210013991A (ko) 번역예 검색 기능을 갖는 특허 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
Higuchi KH Coder 2. x reference manual
Kottwitz LaTeX Beginner's Guide: Create visually appealing texts, articles, and books for business and science using LaTeX
KR20240055309A (ko) 논문 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
KR20240055290A (ko) 자연어 생성 모델을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
KR20240055302A (ko) 문장 템플릿을 이용하여 텍스트를 자동으로 생성하는 기능을 갖는 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
KR20240055313A (ko) 기사 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
JP3737629B2 (ja) 文書編集システム、方法、及び記録媒体
KR20210013990A (ko) 특허 명세서 번역을 위한 특허 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
KR20210013992A (ko) 자동완성 기능을 갖는 특허 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
KR20210013989A (ko) 구성요소 번역 관리 기능을 갖는 특허 문서 작성 장치, 방법, 컴퓨터 프로그램, 컴퓨터로 판독 가능한 기록매체, 서버 및 시스템
JP2024075704A (ja) 特許文書作成装置、方法、コンピュータプログラム、コンピュータで読み取り可能な記録媒体、サーバー、およびシステム
Ruvalcaba Adobe Dreamweaver CS4 Unleashed
Practical George Grätzer
Boyer et al. Extensible Forms Description Language (XFDL) 4.0
Joffe et al. The TLex Suite
JP2006059378A (ja) 文書編集方法及び記録媒体