KR20020027707A - Agent system for artficial intelligence type and method for driving the same and computer readable medium the same - Google Patents

Agent system for artficial intelligence type and method for driving the same and computer readable medium the same Download PDF

Info

Publication number
KR20020027707A
KR20020027707A KR1020000058283A KR20000058283A KR20020027707A KR 20020027707 A KR20020027707 A KR 20020027707A KR 1020000058283 A KR1020000058283 A KR 1020000058283A KR 20000058283 A KR20000058283 A KR 20000058283A KR 20020027707 A KR20020027707 A KR 20020027707A
Authority
KR
South Korea
Prior art keywords
command
agent
user
search
knowledge base
Prior art date
Application number
KR1020000058283A
Other languages
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 안성용
Priority to KR1020000058283A priority Critical patent/KR20020027707A/en
Publication of KR20020027707A publication Critical patent/KR20020027707A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: An artificial intelligence agent system, a driving method thereof, and a recorder thereof are provided to efficiently use resource of user computers based on the natural language processing of users by using a P-to-P(Peer-to-Peer) network technology. CONSTITUTION: The system comprises an agent interface unit(100) for outputting an instruction via a second path and information to a user by receiving an instruction from the user, a natural language processing unit(200) for converting the instruction offered via a first path into a specific format and feeding back the converted instruction to the agent interface unit, a work scheduler unit(300) for performing search schedule work by the instruction inputted via the second path and offering information to the agent interface unit, a knowledge base unit(500) for storing the information offered by users, storing the profiles of the users based on the stored information, and adapting to user environments, and an agent cooperation unit(400) for providing information to the agent interface unit, checking the knowledge base, transmitting instructions to an outside system, and maintaining agent profiles.

Description

인공 지능형 에이젼트 시스템과 이의 구동 방법 및 이를 저장한 컴퓨터가 판독 가능한 기록매체{Agent system for artficial intelligence type and method for driving the same and computer readable medium the same}Agent system for artficial intelligence type and method for driving the same and computer readable medium the same}

본 발명은 인공 지능형 에이젼트 시스템 및 이의 구동 방법에 관한 것으로, 보다 상세하게는 자연어 처리에 기반하여 사용자의 개성을 학습하고 반복되는 작업을 단순화하기 위한 인공 지능형 에이젼트 시스템과 이의 구동 방법 및 이를 저장한 컴퓨터가 판독 가능한 기록매체에 관한 것이다.The present invention relates to an artificial intelligent agent system and a driving method thereof, and more particularly, to an artificial intelligent agent system, a driving method thereof, and a computer storing the same for learning a user's personality and simplifying a repetitive task based on natural language processing. Relates to a readable recording medium.

일반적으로 인터넷은 정부, 기업, 학교 및 일반 네트워크 및 개인에게 연결되어 전세계적으로 퍼져있는 온-라인 컴퓨터 네트워크이며, 현재 3백만개 이상의 컴퓨터가 연결되어 있는 네트워크이다.In general, the Internet is an on-line computer network spread across the globe, connected to governments, businesses, schools, and general networks and individuals, and is currently a network with more than 3 million computers.

이러한 인터넷은 1984년에 미국 정부의 자금으로 시작했으며, 초기에는 정부 및 학교 연구원 등의 극히 한정된 인원에게만 공개된 네트워크였으나, 현재는 누구에게나 공개되어 있는 범용 네트워크이다. 국내에서는 컴퓨터 통신 업체들이 자사의 온-라인 정보 서비스 망인 유니텔(Unitel), 하이텔(Hitel), 천리안(Chollian) 등을 이용하여 인터넷과 연결하여 일대일 메시지 전달(전자 우편), 일대다 메시지 전달(게시판, Bulletin Board), 온라인 대화(One-Line Chat), 파일 전송, 인터넷 검색 기능 등 다양한 서비스를 제공하고 있다.The Internet began with funding from the US government in 1984, and was initially a public network limited to a limited number of people, including government and school researchers, but is now a universal network open to anyone. In Korea, computer communication companies use one-on-one information service network, Unitel, Hitel, Chollian, etc. to connect one-on-one message (e-mail) and one-to-many message delivery (Board) It offers a wide range of services, including Bulletin Board, One-Line Chat, File Transfer, and Internet Search.

특히, 일반 사용자들은 인터넷 백본망 상에 방대하게 존재하는 정보를 검색하기 위해 야후(Yahoo)나 라이코스(Lycos), 엠파스(Empass) 등의 인터넷 검색 사이트에 억세스하여 원하는 정보를 얻고 있다. 또한 자신만의 데이터베이스는 소유하고 있지 않고 사용자가 입력하는 검색어들을 다른 검색도구들로 보내어 나온 결과를 사용자에게 보여주는 원리를 가지고 있는 메타 방식의 검색 도구를 이용하기도 하는데, 현재 이용되는 검색 도구로는 사비 써치(Savvy Search), 메타크롤러(MetaCrawler), 미스다찾니, 메타글라이더 등이 있다.In particular, general users access the Internet search sites such as Yahoo, Lycos, and Empass to obtain the desired information in order to search the vast amount of information on the Internet backbone network. It also uses a meta-based search tool that does not own its own database and has the principle of showing the user the results of the search terms entered by other search tools. There are Savvy Search, MetaCrawler, Missed Search, and Metaglider.

그러나, 일반 검색 엔진이나, 엠파스와 같은 자연어 검색을 수행하는 검색 엔진, 또는 메타 검색 엔진의 경우 사용자가 검색의 요청에 따라 검색에 가장 근접하는 순위별로 해당 정보를 제공하게 되어, 이를 제공받게 되는 사용자측에서는 자신이 검색 요청한 정보에 근접하지 않은 정보라 할지라도 제공받게 되어 불필요한 시간을 소요하게 되는 문제점이 있다.However, in the case of a general search engine, a search engine that performs a natural language search such as Empas, or a meta search engine, the user is provided with the corresponding information according to the ranking closest to the search at the request of the search, and the user who receives the information is provided. On the side, even if the information is not close to the information requested by the search is provided a problem that takes unnecessary time.

본 발명의 기술과 과제는 이러한 종래의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 사용자의 자연어 처리에 기반하며, 사용자가 요청한 자료에 가장 근접하는 검색 정보를 제공하고, 사용자의 특성에 연동하며, 피투피(P-to-P) 네트워크 기술을 이용하여 에이젼트간 협업을 통해 사용자 컴퓨터의 자원을 효율적으로 활용하기 위한 인공 지능형 에이젼트 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made in an effort to solve such a conventional problem, and an object of the present invention is to be based on a user's natural language processing, to provide search information closest to a user's requested data, and to interwork with a user's characteristics. By using P-to-P network technology, we will provide artificial intelligence agent system for efficient utilization of user computer resources through agent-to-agent collaboration.

또한 본 발명의 다른 목적은 상기한 인공 지능형 에이젼트 시스템의 구동 방법을 제공하는 것이다.Another object of the present invention is to provide a method of driving the artificial intelligent agent system.

또한 본 발명의 또 다른 목적은 상기한 인공 지능형 에이젼트 시스템의 구동 방법을 저장한 컴퓨터가 판독 가능한 기록매체를 제공하는 것이다.It is still another object of the present invention to provide a computer readable recording medium storing the above-described method for driving an artificial intelligent agent system.

도 1은 본 발명의 실시예에 따른 인공 지능형 에이젼트 시스템의 전체 구성도이다.1 is an overall configuration diagram of an artificial intelligent agent system according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 인공 지능형 에이젼트의 동작을 설명하기 위한 흐름도이다.2 is a flowchart illustrating the operation of an artificial intelligent agent according to an embodiment of the present invention.

도 3은 작업 스케쥴러의 동작을 설명하기 위한 도면이다.3 is a view for explaining the operation of the task scheduler.

도 4는 본 발명의 실시예에 따라 사용자 에이젼트 시스템과 원격 에이젼트 시스템과의 동작을 설명하기 위한 도면이다.4 is a view for explaining the operation of the user agent system and the remote agent system according to an embodiment of the present invention.

도 5a는 상기한 도 4의 원격 에이젼트 시스템과 사용자 에이젼트 시스템와의 제1 모델을 설명하기 위한 도면이고,FIG. 5A is a diagram for describing a first model of the remote agent system and the user agent system of FIG. 4.

도 5b는 상기한 도 4의 원격 에이젼트 시스템과 사용자 에이젼트 시스템와의 제2 모델을 설명하기 위한 도면이다.FIG. 5B is a diagram for describing a second model of the remote agent system and the user agent system of FIG. 4.

도 6은 본 발명의 실시예에 따른 작업 스케쥴러부를 설명하기 위한 도면으로, 스케쥴을 직접 조작할 수 있는 외부 인터페이스를 갖는다.FIG. 6 is a diagram for describing a job scheduler according to an exemplary embodiment of the present invention and has an external interface capable of directly manipulating a schedule.

도 7a 내지 도 7b는 상기한 도 6의 PIMS 스케쥴러의 그래픽 사용자 인터페이스(GUI)의 일례와 그 입력창을 각각 설명하기 위한 도면이다.7A to 7B are diagrams for explaining an example of the graphical user interface (GUI) of the PIMS scheduler of FIG. 6 and the input window, respectively.

도 8a는 본 발명의 실시예에 따라 외부 실행 모듈의 등록을 설명하기 위한 도면이고,8A is a diagram for explaining registration of an external execution module according to an embodiment of the present invention;

도 8b는 본 발명의 실시예에 따라 외부 실행 모듈의 실행 절차를 설명하기 위한 도면이다.8B is a diagram for describing an execution procedure of an external execution module according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 사용자 지식 베이스부의 동작을 설명하기 위한 도면이다.9 is a view for explaining the operation of the user knowledge base unit according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 사용자 지식 베이스의 오브젝트 구조를 설명하기 위한 도면이다.10 is a view for explaining the object structure of the user knowledge base according to an embodiment of the present invention.

도 11a는 본 발명의 실시예에 따른 메타 검색 엔진 모듈의 동작 흐름을 설명하기 위한 도면이고,11A is a view for explaining an operation flow of a meta search engine module according to an embodiment of the present invention;

도 11b는 본 발명의 실시예에 따른 에이젼트 협업 메타 검색 엔진의 능동 동작의 흐름을 설명하기 위한 도면이며,11B is a view for explaining the flow of active operation of the agent collaboration meta-search engine according to an embodiment of the present invention.

도 11c는 본 발명의 실시예에 따른 에이젼트 협업 메타 검색 엔진의 수동 동작의 흐름을 설명하기 위한 도면이다.FIG. 11C is a diagram illustrating a manual operation flow of an agent collaboration meta search engine according to an embodiment of the present invention. FIG.

도 12는 본 발명의 실시예에 따른 에이젼트 협업 모듈을 설명하기 위한 도면이다.12 is a diagram for explaining an agent collaboration module according to an embodiment of the present invention.

도 13a는 상기한 도 12의 협업 모듈간 존재/활성 여부의 체크 처리 절차를 설명하기 위한 도면이고,FIG. 13A is a view for explaining a check processing procedure of existence / activity between collaboration modules of FIG. 12;

도 13b는 상기한 도 11의 퍼실리에이터의 에이젼트 리스트 요청 처리 절차를설명하기 위한 도면이며,FIG. 13B is a view for explaining an agent list request processing procedure of the facilitator of FIG. 11;

도 13c는 상기한 도 12의 퍼실리에이터의 에이젼트 소프트웨어 업그레이드 요청 처리 절차를 설명하기 위한 도면이다.FIG. 13C is a view for explaining an agent software upgrade request processing procedure of the facilitator of FIG. 12.

도 14는 본 발명의 실시예에 따라 사용자측 PC에 디스플레이되는 웹 페이지를 설명하기 위한 도면이다.14 is a view for explaining a web page displayed on the user-side PC according to an embodiment of the present invention.

도 15a는 본 발명의 실시예에 따른 에이젼트 신규 등록을 설명하기 위한 도면이고,15A is a diagram for explaining new agent registration according to an embodiment of the present invention;

도 15b는 본 발명의 실시예에 따른 에이젼트 사용을 설명하기 위한 도면이고,15B is a view for explaining the use of an agent according to an embodiment of the present invention;

도 15c는 본 발명의 실시예에 따라 소정의 시간 경과후 에이젼트 서버 선출을 설명하기 위한 도면이고,15C is a diagram for explaining the selection of an agent server after a predetermined time elapses according to an embodiment of the present invention;

도 15d는 본 발명의 실시예에 따른 에이젼트간 협업을 설명하기 위한 도면이다.15D is a diagram for explaining inter-agent collaboration according to an embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100 : 에이젼트 인터페이스부110 : 에이젼트 인터페이스 모듈100: agent interface unit 110: agent interface module

120 : 가상 에이젼트 인터페이스 모듈200 : 자연어 처리부120: virtual agent interface module 200: natural language processing unit

210 : 구문해석 모듈220 : 동사 하위 범주화 사전 모듈210: syntax analysis module 220: verb subcategorization dictionary module

230 : 명사 범주 사전 모듈240 : 의미 네트워크 모듈230: noun category dictionary module 240: meaning network module

250 : 한영 대역 사전 모듈300 : 작업 스케쥴러부250: Korean English Dictionary module 300: Task Scheduler

400 : 에이젼트 협업부500 : 지식 베이스부400: agent collaboration unit 500: knowledge base unit

600 : 각종 모듈부610 : 실행 모듈600: various module unit 610: execution module

620 : 지식 베이스 저장 모듈630 : 지식 베이스 요청 모듈620: knowledge base storage module 630: knowledge base request module

640 : 메타 검색 요청 모듈650 : PIMS 스케쥴 모듈640: meta search request module 650: PIMS schedule module

660 : 외부 실행 모듈700 : 메타 검색부660: external execution module 700: meta search unit

710 : 메타 검색 모듈720 : 프로파일 저장 모듈710: meta search module 720: profile storage module

730 : 사용자 검색 프로파일 모듈740 : 색인어 추출 모듈730: user search profile module 740: index word extraction module

750 : 정보 검색 엔진 모듈800 : 채팅부750: information search engine module 800: chat unit

상기한 본 발명의 목적을 실현하기 위한 하나의 특징에 따른 인공 지능형 에이젼트 시스템은,Artificial intelligent agent system according to one feature for realizing the above object of the present invention,

사용자로부터 문장이나 음성 중 적어도 어느 하나 형태의 명령어를 제공받아 제1 경로를 통해 소정의 포맷화된 형식으로의 변환을 의뢰하고, 그 응답에 따른 변환된 명령어를 제2 경로를 통해 출력하며, 그 응답에 따른 정보를 사용자측에 출력하는 에이젼트 인터페이스부;Receives a command from the user in at least one of sentences or voices, requests conversion into a predetermined format through the first path, and outputs the converted command according to the response through the second path. An agent interface unit outputting information according to the response to the user side;

상기 제1 경로를 통해 제공되는 명령어를 소정의 포맷화된 형식으로 변환하고, 변환된 명령어를 상기 에이젼트 인터페이스부에 피드백하는 자연어 처리부;A natural language processor configured to convert the command provided through the first path into a predetermined format, and to feed the converted command back to the agent interface unit;

상기 제2 경로를 통해 입력되는 사용자의 변환된 명령어에 따라 검색 스케쥴 작업을 수행하고, 그의 응답에 따른 정보를 상기 에이젼트 인터페이스부에 제공하는 작업 스케쥴러부;A task scheduler configured to perform a search schedule task according to a user's converted command input through the second path, and to provide information according to the response to the agent interface unit;

사용자로부터 제공되는 정보를 저장하고, 저장된 정보를 근거로 사용자의 프로파일을 저장하여 사용자 환경에 적응하는 지식 베이스부; 및A knowledge base unit which stores information provided from the user and adapts the user environment by storing the user's profile based on the stored information; And

상기 작업 스케쥴러를 경유하여 입력되는 명령어를 외부의 하나 이상의 인공 지능형 인터넷 에이젼트 시스템측에 제공하여 자료를 요청하고, 그 응답에 따른 자료를 상기 에이젼트 인터페이스부에 제공하며, 상기 외부의 인공 지능형 인터넷 에이젼트 시스템으로부터 자료 요청이 입력되는 경우에는 상기 지식 베이스를 체크하고, 해당 명령을 처리하여 상기 외부의 인공 지능형 인터넷 에이젼트 시스템에 전송하고, 에이젼트 프로파일을 유지하는 에이젼트 협업부를 포함하여 이루어진다.It provides a command input via the task scheduler to the external one or more artificial intelligent Internet agent system side to request data, and provides the data according to the response to the agent interface unit, the external artificial intelligence Internet agent system When a request for data is input from the data base, the knowledge base is checked, the command is processed and transmitted to the external artificial intelligence internet agent system, and the agent collaboration unit maintains an agent profile.

여기서, 상기한 인공 지능형 에이젼트 시스템은, 상기 변환된 명령어가 검색 요청 정보인 경우에는 하나 이상의 정보 검색 엔진에 검색을 의뢰하고, 그의 응답에 따른 검색 정보를 출력하는 메타 검색부; 및The artificial intelligence agent system may include: a meta search unit requesting a search to at least one information search engine when the converted command is search request information, and outputting search information according to a response thereof; And

상기 작업 스케쥴러를 경유하여 사용자로부터 자료가 입력됨에 따라 상기 지식 베이스에 저장하고, 상기 작업 스케쥴러부로부터 검색 요청이 입력되는 경우에 상기 지식 베이스부를 1차 검색하여 해당 자료가 존재하는 경우에는 상기 작업 스케쥴러부에 제공하고, 해당 자료가 미존재하는 경우에는 상기 메타 검색부를 기동시켜 검색을 의뢰하고, 그의 응답에 따른 검색 정보를 상기 작업 스케쥴러부에 제공하는 각종 모듈부를 더 포함하여 이루어질 수 있다.When the data is input from the user via the task scheduler, the data is stored in the knowledge base, and when the search request is input from the task scheduler, the knowledge base unit is searched first. The module may be provided to the unit, and if there is no corresponding material, the meta search unit may be started to request a search, and the module unit may further provide search information according to the response to the task scheduler unit.

또한 본 발명의 다른 목적을 실현하기 위한 하나의 특징에 따른 인공 지능형 에이젼트 시스템의 구동 방법은,In addition, the driving method of the artificial intelligent agent system according to one feature for realizing another object of the present invention,

(a) 사용자로부터 문장이나 음성 중 적어도 어느 하나 형태의 명령이 입력되는 지의 여부를 체크하여 해당 명령이 입력되는 경우에는 해당 명령을 자연어 처리 과정을 통해 기능 문법으로 변환하는 단계;(a) checking whether a command of at least one type of a sentence or a voice is input from a user and converting the command into a functional grammar through a natural language processing process when the command is input;

(b) 상기 변환된 명령어가 내부 실행 명령인지의 여부를 체크하여, 내부 실행 명령인 경우에는 내부 저장된 해당 프로그램의 구동을 제어하는 단계; 및(b) checking whether the converted command is an internal execution command, and in the case of the internal execution command, controlling driving of a corresponding stored program; And

(c) 상기 변환된 명령어가 지식 베이스 관련 명령어인지의 여부를 체크하여, 지식 베이스 관련 명령어인 경우에는 지식 베이스 처리 또는 지식 베이스 검색을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계를 포함하여 이루어진다.(c) checking whether the converted command is a knowledge base-related command, and if the command is a knowledge base-related command, perform a knowledge base processing or a knowledge base search and convert the result into at least one of a text and a voice. The output is made to include.

여기서, 인공 지능형 에이젼트 시스템의 구동 방법은, (d) 상기 변환된 명령어가 지식 베이스 관련 명령어인 경우에는 에이젼트 협업 동작을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계를 더 포함하여 이루어질 수 있다.Here, the method of driving the artificial intelligence agent system, (d) if the converted command is a knowledge base-related command to perform an agent collaboration operation and output the result to the user in at least one form of text or voice It may be made to include more.

또한 인공 지능형 에이젼트 시스템의 구동 방법은, (e) 상기 변환된 명령어가 메타 방식의 검색 수행 명령인지의 여부를 체크하여 메타 방식의 검색 수행 명령인 경우에는 메타 방식의 검색을 수행하여 질의에 대한 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계; 및 (f) 에이젼트 협업 동작을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계를 더 포함하여 이루어질 수 있다.In addition, the method of driving an artificial intelligent agent system includes (e) checking whether the converted command is a meta-search search command and, if the meta-search search command is performed, performs a meta-search to search results. Outputting to the user side in the form of at least one of a text and a voice; And (f) performing the agent collaboration operation and outputting the result to the user in the form of at least one of a text and a voice.

또한 인공 지능형 에이젼트 시스템의 구동 방법은, (g) 상기 변환된 명령어가 스케쥴 관리 명령인 지의 여부를 체크하여, 스케쥴 관리 명령인 경우에는 스케쥴 관리 동작을 수행하는 단계를 더 포함하여 이루어질 수 있다.The artificial intelligent agent system may further include (g) checking whether the converted command is a schedule management command and, in the case of the schedule management command, performing a schedule management operation.

또한 인공 지능형 에이젼트 시스템의 구동 방법은, (h) 상기 변환된 명령어가 외부 실행 모듈에 대한 명령인지의 여부를 체크하여, 외부 실행 모듈 명령인 경우에는 외부 실행 동작을 수행하는 단계; 및 (i) 상기 변환된 명령어가 외부 실행 모듈 명령이 아닌 경우에는 사용자와 에이젼트와의 채팅을 수행하는 단계를 더 포함하여 이루어질 수 있다.In addition, the artificial intelligent agent system driving method includes: (h) checking whether the converted command is a command for an external execution module, and performing an external execution operation in the case of an external execution module command; And (i) if the converted command is not an external execution module command, performing a chat with a user and an agent.

또한 본 발명의 또 다른 목적을 실현하기 위한 하나의 특징에 따른 인공 지능형 에이젼트 시스템의 구동 방법을 저장한 컴퓨터가 판독 가능한 기록매체는,In addition, a computer-readable recording medium storing a method for driving an artificial intelligent agent system according to another aspect for realizing another object of the present invention,

(a) 사용자로부터 문장이나 음성 중 적어도 어느 하나 형태의 명령이 입력되는 지의 여부를 체크하여 해당 명령이 입력되는 경우에는 해당 명령을 자연어 처리 과정을 통해 기능 문법으로 변환하는 단계;(a) checking whether a command of at least one type of a sentence or a voice is input from a user and converting the command into a functional grammar through a natural language processing process when the command is input;

(b) 상기 변환된 명령어가 내부 실행 명령인지의 여부를 체크하여, 내부 실행 명령인 경우에는 내부 저장된 해당 프로그램의 구동을 제어하는 단계; 및(b) checking whether the converted command is an internal execution command, and in the case of the internal execution command, controlling driving of a corresponding stored program; And

(c) 상기 변환된 명령어가 지식 베이스 관련 명령어인지의 여부를 체크하여, 지식 베이스 관련 명령어인 경우에는 지식 베이스 처리 또는 지식 베이스 검색을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계를 포함하여 이루어진다.(c) checking whether the converted command is a knowledge base-related command, and if the command is a knowledge base-related command, perform a knowledge base processing or a knowledge base search and convert the result into at least one of a text and a voice. The output is made to include.

이러한 인공 지능형 에이젼트 시스템과 이의 구동 방법 및 이를 저장한 컴퓨터가 판독 가능한 기록매체에 의하면, 정지된 컴퓨터 프로그램에 다양한 지식이 첨가되면서 살아있는 프로그램이 되는 것으로 사용자를 대신해서 컴퓨터 프로그램의 자동 실행이나 내장된 지식 베이스의 검색, 인터넷 검색, 다른 에이젼트 시스템와의 정보 공유 등의 동작을 통해 사용자가 원하는 작업을 자동적으로 해결해 줄 수있다.According to such an artificial intelligent agent system, a driving method thereof, and a computer-readable recording medium storing the same, it becomes a live program by adding various knowledge to a stationary computer program. Searching the base, searching the Internet, and sharing information with other agent systems can automatically solve the task you want.

그러면, 통상의 지식을 지닌 자가 본 발명을 용이하게 실시할 수 있도록 실시예에 관해 설명하기로 한다.Then, embodiments will be described so that those skilled in the art can easily implement the present invention.

도 1은 본 발명의 실시예에 따른 인공 지능형 에이젼트 시스템의 전체 구성도이다.1 is an overall configuration diagram of an artificial intelligent agent system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 인공 지능형 에이젼트 시스템은 에이젼트 인터페이스부(100), 자연어 처리부(200), 작업 스케쥴러부(300), 에이젼트 협업부(400), 지식 베이스부(500), 각종 모듈(600), 메타 검색부(700) 및 채팅부(800)를 포함한다.Referring to FIG. 1, the artificial intelligent agent system according to an embodiment of the present invention may include an agent interface unit 100, a natural language processing unit 200, a job scheduler unit 300, an agent collaboration unit 400, and a knowledge base unit 500. ), Various modules 600, a meta search unit 700, and a chat unit 800.

에이젼트 인터페이스부(100)는 에이젼트 인터페이스 모듈(AIF)(110)과 가상 에이젼트 인터페이스 모듈(VAIF)(120)을 포함하여, 에이젼트 인터페이스 모듈(110)을 통해 사용자의 키조작에 따라 입력되는 명령어 또는 사용자의 음성을 통해 입력되는 명령어를 제공받아 가상 에이젼트 인터페이스 모듈(120)을 경유하여 자연어 처리부(200)에 제공하여 에이젼트 프로그램에 적응하는 소정의 기능 문법(FG)으로 변환된 명령어를 제공받는다.The agent interface unit 100 includes an agent interface module (AIF) 110 and a virtual agent interface module (VAIF) 120, and a command or user input according to a user's key operation through the agent interface module 110. The command input through the voice of the voice is provided to the natural language processing unit 200 via the virtual agent interface module 120 to receive a command converted into a predetermined function grammar (FG) adapted to the agent program.

또한 에이젼트 인터페이스부(100)는 기능 문법으로 변환된 명령어를 작업 스케쥴러부(300)에 제공하고, 그의 응답이 있는 경우에는 가상 에이젼트 인터페이스모듈(120)을 경유하여 제공받아 에이젼트 인터페이스 모듈(110)을 통해 출력한다. 여기서 명령어에 대한 응답은 예를 들어, 사용자가 질의에 대한 응답일 수 있으며, 그 응답 경로도 작업 스케쥴러부(300)를 통해 제공받을 수도 있고, 또는 해당 응답을 직접적으로 제공받을 수도 있다.In addition, the agent interface unit 100 may provide a command converted into a functional grammar to the job scheduler 300, and if there is a response, the agent interface unit 100 may be provided via the virtual agent interface module 120 to receive the agent interface module 110. Output through In this case, the response to the command may be, for example, a response to a query by the user, and the response path may also be provided through the task scheduler 300 or the response may be directly provided.

또한 에이젼트 인터페이스 모듈(110)은 소정의 캐릭터와 함께 문자 명령어를 입력하기 위한 표시창 형태나 인스턴트 메시지창, 메모장 메시지창 등을 사용자 컴퓨터 화면상에 디스플레이할 수 있다.In addition, the agent interface module 110 may display a display window form for inputting a text command together with a predetermined character, an instant message window, a memo pad message window, and the like on a user computer screen.

또한, 에이젼트 인터페이스 모듈(110)은 해당 에이젼트 프로그램의 사용자가 관리하는 이격된 에이젼트 프로그램의 가상 에이젼트 인터페이스와 온라인 연결될 수도 있다. 이러한 연결을 통해 사용자는 자신의 사무실에 위치하는 PC에서 집에 위치하는 PC를 통해 에이젼트 동작을 실행시킬 수 있다.In addition, the agent interface module 110 may be online with the virtual agent interface of the separated agent program managed by the user of the agent program. This connection allows the user to execute agent operations from a PC at his office to a PC at home.

자연어 처리부(200)는 구문해석 모듈(210), 동사 하위 범주화 사전 모듈(220), 명사 범주 사전 모듈(230), 의미 네트워크 모듈(240) 및 한영 대역 사전 모듈(250)을 포함하여, 가상 에이젼트 인터페이스 모듈(120)로부터 입력되는 문장이나 음성을 소정의 포맷화된 형식, 즉 기능 문법으로 변환하여 가상 에이젼트 인터페이스 모듈(120)에 피드백한다. 여기서, 명사 범주 사전 모듈(230)은 동사 하위 범주화 사전 모듈(220)이 필요로 하는 명사의 범주를 태깅해 놓은 사전으로, 해싱(hashing) 알고리즘으로 엑세스를 고속화한다.The natural language processor 200 includes a syntax interpreter module 210, a verb subcategorization dictionary module 220, a noun category dictionary module 230, a semantic network module 240, and a Korean-English band dictionary module 250. The sentence or voice input from the interface module 120 is converted into a predetermined format, that is, a functional grammar, and fed back to the virtual agent interface module 120. Here, the noun category dictionary module 230 is a dictionary in which a noun category categorized by the verb subcategories dictionary module 220 is tagged, and speeds up access by a hashing algorithm.

그러면, 상기한 구문해석 모듈(210)의 입/출력 프로그램의 일례를 하기와 같이 설명한다.Next, an example of an input / output program of the syntax analysis module 210 will be described as follows.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

enu DurTypeenu DurType

{{

EH=1, ED1, ED2, EW1, EW2, EM1, EM2, EYEH = 1, ED1, ED2, EW1, EW2, EM1, EM2, EY

}}

Class CCmdClass ccmd

{{

int cmd;int cmd; //명령 코드// command code

int verb;int verb; //cmd='p'일 때 동사 구문 코드// verb syntax code when cmd = 'p'

char obj[3][80];char obj [3] [80]; //명령 코드에 해당하는 오브젝트 리스트// list of objects corresponding to command code

CCmd* ptr;CCmd * ptr; //obj의 값이 '<ptr>'일 때 obj은 또 다른 CCmd pointer를 가르킴// obj is another CCmd pointer when the value of obj is '<ptr>'

//예: (letknow (search '디아블로'))// example: (letknow (search 'diablo'))

// cmd = 'letknow', obj[0]='<ptr>'// cmd = 'letknow', obj [0] = '<ptr>'

// ptr = 동적 할당된 (search '디아블로')의 CCmd pointer// ptr = CCmd pointer of dynamically allocated (search 'diablo')

}}

class CCmdResultclass CCmdResult

{{

BOOL bHasTimeClause;BOOL bHasTimeClause; //문장에서 시간절이 포함되어 있으면 TRUE, 기타 FALSE// TRUE if time clause is included in statement, FALSE other

Cstring reststr;Cstring reststr; //시간절을 제외한 나머지 문장// sentence except time clause

CTime begine, end;CTime begine, end; //시작 시각, 끝 시각// start time, end time

DurType dtype;DurType dtype; //반복주기 코드// repeat cycle code

int m,d,w,h;int m, d, w, h; //반복주기 코드에 따른 month, day, week day, hour// month, day, week day, hour according to repeat cycle code

CTypePtrList <CCmd,CCmd*> cmdchain;CTypePtrList <CCmd, CCmd *> cmdchain;

CString from, to;CString from, to;

}}

CString Word;CString Word;

BYTE Tag;BYTE Tag;

WORD stops, endsWORD stops, ends //입력 문장 중에서의 위치// position in input sentence

};};

CTypePtrArray<CMorpheme, CMorpheme*> CMorphemeArray;CTypePtrArray <CMorpheme, CMorpheme *> CMorphemeArray;

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

작업 스케쥴러부(300)는 에이젼트의 모든 작업을 총괄하는 핵심적인 모듈로, 에이젼트 인터페이스부(100)로부터 기동되어, 에이젼트 인터페이스부(100)와는 별개로 백 그라운드로 동작한다. 작업 스케쥴러를 중심으로 한 모든 명령은 주로 기능 문법(FG) 형태로 전달하고, 그 결과값은 텍스트(text), 엑스.엠.엘(xml), 파일 경로(file-path), 유.알.엘(URL) 등으로 주고받는데, 이에 대한 상세한 설명은 하기하는 도 2에서 설명한다.The task scheduler 300 is a core module that manages all of the agent's tasks. The task scheduler 300 is started from the agent interface unit 100 and operates in the background separately from the agent interface unit 100. All commands centered on the task scheduler are mainly delivered in the functional syntax (FG) format, and the result is text, X.M.L, file-path, U.R. L (URL) and the like, a detailed description thereof will be described in Figure 2 below.

그러면 본 발명에서 사용하는 기능 문법(FG)에 대해 설명한다.Next, the functional grammar (FG) used in the present invention will be described.

기능 문법 체계는 하기와 같다.The functional grammar system is as follows.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

S : = [<TMCLAUSE>,] <cmdclause>S: = [<TMCLAUSE>,] <cmdclause>

cmdclause :='('<cmd> <obj>* [from(<loc>)] [to(loc)]')' | '(' <cmd> [<cmd>*] ')'cmdclause: = '(' <cmd> <obj> * [from (<loc>)] [to (loc)] ')' | '(' <cmd> [<cmd> *] ')'

cmd := copy | move | delete | execute | open | change | create | send | take | give | search | notify | want | is | has | locate | p | s | word | what | when | who | where | query | click | defrule |cmd: = copy | move | delete | execute | open | change | create | send | take | give | search | notify | want | is | has | locate | p | s | word | what | when | who | where | query | click | defrule |

obj :=that | '?' | <noun> | <cmdclause>obj: = that | '?' | <noun> | <cmdclause>

loc := <noun> | <cmdclause>loc: = <noun> | <cmdclause>

noun := <NNP><wc> | <NNCG> <wc>noun: = <NNP> <wc> | <NNCG> <wc>

wc := 'GM' | 'PM' | 'GT ' | 'PT' | 'GL' | 'PL'wc: = 'GM' | 'PM' | 'GT' | 'PT' | 'GL' | 'PL'

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

여기서, that은 관형사로 이전에 지정된 <obj>가 되고, me는 사용자를 지칭하는 키워드, you는 에이젼트를 지칭하는 키워드, '?'는 문장에서 지정하지 않는 오브젝트(obj)이다. 이러한 <obj>에는 obj의 품사 세부 분류가 달라붙을 수 있다. 예를 들어 '집'은 보통명사로 '집:G', '김철수'는 고유명사로 '김철수:P' 등으로 표기해야 옳으나, 편의상 품사 세부 분류는 이 스펙에 등장하는 모든 기능 문법에서 생략하여 표기된다. 품사 세부 분류 코드는 상기한 동사 하위 범주화 사전에서 동사가 받는 명사의 품사 분류 코드를 사용한다. 예를 들어 인간명사는 'GM', 사물명사는 'PT', 'GT', 장소명사는 'GL', 'PL' 등이다.Here, that is the <obj> previously specified as a tubular form, me is a keyword indicating a user, you is a keyword indicating an agent, and '?' Is an object not specified in the sentence. The <obj> may be attached to the part-of-speech subcategory of obj. For example, 'home' should be written as a common noun 'home: G' and 'Kim Chul-soo' as a proper noun as 'Kim Chul-soo: P'. Is indicated. The part-of-speech classification code uses the part-of-speech classification code of the nouns that the verb receives from the verb subcategorization dictionary. For example, human nouns are 'GM', thing nouns are 'PT', 'GT', and place nouns are 'GL' and 'PL'.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

tmclause := '(' tclause <start-tmd> [end-tmd][duration] ')'tmclause: = '(' tclause <start-tmd> [end-tmd] [duration] ')'

start-tmd, end tmd := <date><time>start-tmd, end tmd: = <date> <time>

duration := <hourly> | <dayly> | <weekly> | <monthly> | <yearly>duration: = <hourly> | <dayly> | <weekly> | <monthly> | <yearly>

hourly := EH <n hour>hourly: = EH <n hour> //3시간 마다// every 3 hours

dayly := ED1<day_no> |dayly: = ED1 <day_no> | //3일 마다// every 3 days

ED2 <day_no> <hourly>ED2 <day_no> <hourly> //3일 마다 오후 2시에 ...// every 2 days at 2 pm ...

weekly := EW1<week_no> |weekly: = EW1 <week_no> | //매주 화요일에 ...// every Tuesday ...

EW2 <week_no> <hourly>EW2 <week_no> <hourly> //매주 화요일 오전 10시에 ...// every Tuesday at 10am ...

monthly := EM1<day_no> |monthly: = EM1 <day_no> | //매주 20일에 ...// every 20 days ...

EM2 <day_no> <hourly>EM2 <day_no> <hourly> //매달 20일 오전 10시에 ...// at 10am on the 20th of every month ...

yearly := EY <mon_no>/<day_no>yearly: = EY <mon_no> / <day_no> //매달 12월 25일에 ...// on December 25 of every month ...

date := [0-9]{2,4}/<mon_no><day_no>date: = [0-9] {2,4} / <mon_no> <day_no>

time := [0-9]{,2}:[0-9]{,2}:[0-9]{,2}time: = [0-9] {, 2}: [0-9] {, 2}: [0-9] {, 2}

week_no := [1-7]week_no: = [1-7]

day_no := [1-31]day_no: = [1-31]

mon_no := [1-12]mon_no: = [1-12]

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

그러면, 본 발명의 특징이라 할 수 있는 기능 문법의 명령 구문 형식을 간략히 요약 설명한다.Next, the command syntax form of the functional grammar, which is a feature of the present invention, will be briefly described.

먼저, 명령 구문 형식은 다음과 같이 구성할 수 있으며, 이에 대한 상세한 설명은 생략한다.First, the command syntax format may be configured as follows, and a detailed description thereof will be omitted.

(copy <obj> [from(<loc>)] [to(<loc>)])(copy <obj> [from (<loc>)] [to (<loc>)])

(move <obj> [from(<loc>)] [to(<loc>)])(move <obj> [from (<loc>)] [to (<loc>)])

(delete <obj> [from(<loc>)])(delete <obj> [from (<loc>)])

(execute <obj> [from(<loc>)])(execute <obj> [from (<loc>)])

(open <obj> [from(<loc>)] [to(<loc>)])(open <obj> [from (<loc>)] [to (<loc>)])

(close [<obj>])(close [<obj>])

(quit [<obj>])(quit [<obj>])

(change <obj> [from(<loc>)] [to(<loc>)])(change <obj> [from (<loc>)] [to (<loc>)])

(create <obj> [from(<loc>)])(create <obj> [from (<loc>)])

(notify <obj>)(notify <obj>)

(send <obj> [to(<loc>)])(send <obj> [to (<loc>)])

(take <obj> [from(<loc>)])(take <obj> [from (<loc>)])

(search <obj> [from(<loc>)])(search <obj> [from (<loc>)])

(take <obj> [from(<loc>)])(take <obj> [from (<loc>)])

(search <obj> [from(<loc>)])(search <obj> [from (<loc>)])

(compress <obj> from(<loc>))(compress <obj> from (<loc>))

(uncompress <obj> to(<loc>))(uncompress <obj> to (<loc>))

또한, 지식 베이스 정의/술어 확장 구문 형식은 다음과 같이 구성할 수 있으며, 이에 대한 상세한 설명은 생략한다.In addition, the knowledge base definition / predicate extended syntax format may be configured as follows, and a detailed description thereof will be omitted.

(is <obj1> <obj2>)(is <obj1> <obj2>)

(has <obj1> <obj2>)(has <obj1> <obj2>)

(locate <obj1> from <loc>)(locate <obj1> from <loc>)

(p <verv> <obj>*)(p <verv> <obj> *)

(word <noun>*)(word <noun> *)

또한, 질의 관련 구문 형식은 다음과 같이 구성할 수 있으며, 이에 대한 상세한 설명은 생략한다.In addition, the syntax related to the query can be configured as follows, and a detailed description thereof will be omitted.

(what <obj>)(what <obj>)

(when <obj>)(when <obj>)

(who <obj>)(who <obj>)

(where <obj>)(where <obj>)

(query <obj>)(query <obj>)

또한, 기타 구문 확장 구문 형식은 다음과 같이 구성할 수 있으며, 이에 대한 상세한 설명은 생략한다.In addition, the other syntax extension syntax format can be configured as follows, detailed description thereof will be omitted.

(click <obj>)(click <obj>)

(add-grammar <keyword>*, <cmd-code>)(add-grammar <keyword> *, <cmd-code>)

(defrule <conditional element> => <execution block>)(defrule <conditional element> => <execution block>)

도 1에 피드백하여, 에이젼트 협업부(400)는 작업 스케쥴러(300)로부터 원격 배치된 에이젼트 프로그램과의 협업 명령과 함께 질의 요청이 있는 경우에 온라인 연결된 원격 에이젼트 시스템측에 억세스하여 질의를 요청하고, 그의 응답에 따른 정보를 작업 스케쥴러부(300) 및 에이젼트 인터페이스부(100)를 경유하여 질의를 요청한 사용자측에 문자나 음성 형태로 출력한다. 물론, 질의에 대한 응답은 작업 스케쥴러부(300)를 경유하지 않고 에이젼트 인터페이스부(100)에 직접 출력할 수 있음은 자명한 일이다.In response to FIG. 1, the agent collaboration unit 400 requests a query by accessing a remote agent system connected online when there is a query request together with a cooperative command with an agent program remotely deployed from the job scheduler 300. The information according to the response is outputted in a text or voice form to the user requesting the query via the job scheduler 300 and the agent interface unit 100. Of course, it is obvious that the response to the query may be directly output to the agent interface unit 100 without passing through the job scheduler 300.

지식 베이스부(500)는 사용자 특성에 적응하는 정보를 저장하는데, 예를 들어, 사용자가 자신의 지식 베이스(KB; Knowledge Base)에 다양한 정보를 제공할 수도 있고, 인터넷 검색을 통해 또는 원격 에이젼트 시스템와의 협업을 통해 다양한 정보를 제공받아 저장할 수 있다. 즉, 본 발명에 따른 지식 베이스부(500)는 에이젼트를 컴퓨터 환경에 초기에 설정하는 프로그램은 동일하다 할 지라도 시간이 경과하고, 사용자가 질의나 자료 요청이 증가함에 따라 해당 사용자 특성에 연동하는 다양한 정보를 저장할 수 있다.The knowledge base unit 500 stores information that adapts to user characteristics. For example, the user may provide various information to a knowledge base (KB) of the user, or through an Internet search or a remote agent system. You can receive and store various information through collaboration with. In other words, the knowledge base 500 according to the present invention is a program that initially set the agent in the computer environment, even if the same time is elapsed, and as the user's query or data requests increase the various characteristics that are linked to the user characteristics Information can be stored.

각종 모듈부(600)는 에이젼트 인터페이스부(100)로부터 작업 스케쥴러부(300)를 경유하여 작업 지시가 입력됨에 따라 실행 모듈(610), 지식 베이스 저장 모듈(620), 지식 베이스 요청 모듈(630), 메타 검색 요청 모듈(640), 개인 정보 운영 시스템(PIMS; Personal Information Management System)의 스케쥴 모듈(650) 및 외부 실행 모듈(660) 등의 순으로 작업을 수행한다. 이때 입력받은 문장은 작업 스케쥴러부(300)에서 먼저 시간절에 따라 처리를 달리한다. 예를 들어 문장내에 시간절이 있을 경우에는 작업 스케쥴러에 명령과 함께 등록하고, 실행 명령일 경우 해당 시간에 실행 명령을 수행하며, 메타 검색을 사용할 경우 검색 엔진의 검색 정밀도 파라메타를 조정한다. 그리고 시간절이 없을 경우에는 곧바로 실행한다.The various module units 600 may execute the execution module 610, the knowledge base storage module 620, and the knowledge base request module 630 as a work instruction is input from the agent interface unit 100 via the job scheduler 300. , The meta search request module 640, the schedule module 650 of the personal information management system (PIMS), and the external execution module 660 are performed in this order. At this time, the received sentence is processed by the task scheduler 300 first depending on the time section. For example, if there is a time clause in a sentence, it is registered with the task scheduler along with the command. If it is an execution command, the execution command is executed at the corresponding time. If meta search is used, the search precision parameter of the search engine is adjusted. If there is no time clause, it is executed immediately.

메타 검색부(700)는 메타 검색 모듈(710), 프로파일 저장 모듈(720), 사용자 검색 프로파일 모듈(730), 색인어 추출 모듈(740) 및 정보 검색 엔진 모듈(750)을 포함하여, 상기한 각종 모듈부(600)로부터 메타 검색 실행 요청이 입력됨에 따라 인터넷 검색 사이트나 검색 엔진, 검색 로봇측에 검색을 의뢰하고, 그의 응답에 따른 검색 결과 정보를 지식 베이스부(500)에 저장한다.The meta search unit 700 includes a meta search module 710, a profile storage module 720, a user search profile module 730, an index word extraction module 740, and an information search engine module 750. As a meta search execution request is input from the module unit 600, a request is made to an Internet search site, a search engine, and a search robot, and the search result information according to the response is stored in the knowledge base unit 500.

채팅부(800)는 상기한 지식 베이스부(500)이나 에이젼트 협업부(400), 메타 검색부(700)를 통해 사용자가 요청한 정보를 찾지 못한 경우에 이용되며, 사용자와 본 발명에 따른 인공 지능형 에이젼트 시스템와의 채팅을 통해 원하는 정보를 상기한 지식 베이스부(500)에 저장한다.Chat unit 800 is used when the user does not find the information requested by the knowledge base unit 500, the agent collaboration unit 400, the meta search unit 700, the artificial intelligence according to the user and the present invention The desired information is stored in the knowledge base unit 500 through a chat with an agent system.

이상에서 설명한 바와 같이, 본 발명에 따른 인공 지능형 에이젼트 시스템은 그 기능적으로 인터페이스 에이젼트, 정보 에이젼트 및 작업 에이젼트로 분리할 수 있다.As described above, the artificial intelligent agent system according to the present invention can be functionally separated into an interface agent, an information agent, and a work agent.

즉 인터페이스 에이젼트는 사용자와 상호 작용을 통해 사용자의 질의를 받아 분석하고 그 결과를 보여주며, 사용자의 습성 및 기호를 포함하는 데이터를 취득하여 이를 모델링한다.In other words, the interface agent receives and analyzes the user's query and shows the result through interaction with the user, and acquires and models the data including the user's habits and preferences.

또한 정보 에이젼트는 인터넷 백본망상에 산재하는 서로 다른 형질의 정보 소스에 접근하여 원하는 정보를 찾고, 상기 정보의 변화 상황을 감시한다.In addition, the information agent accesses the information sources of different traits scattered on the Internet backbone network to find the desired information and monitor the change of the information.

또한 작업 에이젼트는 주어진 작업에 대한 영역 지식과 함께 다른 작업 에이젼트나 정보 에이젼트의 능력 정보를 가지고 사용자가 요구한 작업을 실제 수행한다.In addition, the task agent actually performs the task requested by the user with the knowledge of the area of the given task and the capability information of other task agents or information agents.

도 2는 본 발명의 실시예에 따른 인공 지능형 에이젼트의 구동 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method of driving an artificial intelligent agent according to an embodiment of the present invention.

도 1과 도 2를 참조하면, 먼저 사용자로부터 명령이 입력되는 지의 여부를 체크하여(단계 S100), 명령이 입력되는 경우에는 해당 명령을 자연어 처리 과정을 통해 기능 문법으로 변환한다(단계 S110).1 and 2, first, it is checked whether a command is input from a user (step S100), and if a command is input, the command is converted into a functional grammar through natural language processing (step S110).

이어 기능 문법으로 변환된 명령어가 내부 실행 명령인지의 여부를 체크하여(단계 S120), 내부 실행 명령인 경우에는 에이젼트 프로그램이 내장된 컴퓨터 시스템의 내부에 저장된 해당 프로그램의 구동을 제어하고(단계 S122), 단계 S100으로 피드백한다.Then, it is checked whether the command converted into the functional grammar is an internal execution command (step S120), and in the case of the internal execution command, the driving of the corresponding program stored in the computer system in which the agent program is embedded (step S122). The process returns to step S100.

단계 S120에서 내부 실행 명령이 아닌 경우에는 상기 기능 문법으로 변환된 명령이 지식 베이스 관련 명령인지의 여부를 체크한다(단계 S130).If it is not an internal execution command in step S120, it is checked whether the command converted into the functional grammar is a knowledge base related command (step S130).

단계 S130에서 지식 베이스 관련 명령인 경우에는 지식 베이스 처리 및 검색을 수행하고, 에이젼트 협업 모듈을 기동시켜 에이젼트 협업 동작을 수행하며(단계 S132), 그 각각의 결과를 문자나 음성 등의 형태로 사용자측에 출력한다(단계 134). 여기서 지식 베이스 처리 동작은 사용자가 에이젼트 프로그램이 관장하는 지식 베이스에 소정의 정보나 자료 등을 제공하여 에이젼트 시스템을 교육하기 위한 동작이고, 지식 베이스 검색 동작은 이미 저장된 지식 베이스로부터 특정 정보를 얻기 위한 동작이다. 또한 에이젼트 협업 동작은 사용자 컴퓨터 시스템에 저장된 지식 베이스에 특정 자료가 검색되지 않을 때 온 라인 연결된 다른 에이젼트 시스템에 정보 검색을 의뢰하는 일련의 동작을 이른다. 물론 지식 베이스 검색 동작이 이루어진 후 해당 자료가 검색되지 않을 때 에이젼트 협업 동작을 수행할 수도 있고, 또는 지식 베이스 검색 동작과 함께 에이젼트 협업 동작을 동시에 수행할 수도 있다.In the case of the knowledge base related command in step S130, the knowledge base processing and searching are performed, and the agent collaboration module is activated to perform the agent collaboration operation (step S132), and the respective results are presented to the user in the form of text or voice. Output (step 134). Here, the knowledge base processing operation is an operation for educating an agent system by providing predetermined information or data to a knowledge base managed by an agent program, and the knowledge base searching operation is an operation for obtaining specific information from an already stored knowledge base. to be. In addition, the agent collaboration operation is a series of operations that request information search from other agent systems connected online when a specific data is not retrieved from the knowledge base stored in the user computer system. Of course, when the corresponding data is not searched after the knowledge base search operation is performed, the agent collaboration operation may be performed, or the agent collaboration operation may be performed simultaneously with the knowledge base search operation.

단계 S130에서 지식 베이스 관련 명령이 아닌 경우에는 상기 기능 문법으로 변환된 명령이 메타 방식의 검색 명령인 지의 여부를 체크하여(단계 S140), 메타 방식의 검색 명령인 경우에는 메타 방식 검색 모듈을 기동시키고, 에이젼트 협업 모듈을 기동시키고, 그 결과를 사용자측에 제공한다(단계 S142, S144).If it is not a knowledge base related command in step S130, it is checked whether or not the command converted into the functional grammar is a meta search command (step S140). In the case of a meta search command, the meta search module is started. The agent collaboration module is activated and the result is provided to the user side (steps S142 and S144).

단계 S140에서 메타 방식의 검색 명령이 아닌 경우에는 상기 기능 문법으로 변환된 명령이 스케쥴 관리 명령인 지의 여부를 체크하고(단계 S150), 스케쥴 관리 명령인 경우에는 스케쥴 관리 동작을 수행한다(단계 S152).If it is not the search method of the meta method in step S140, it is checked whether or not the command converted into the functional grammar is a schedule management command (step S150). In the case of the schedule management command, a schedule management operation is performed (step S152). .

단계 S150에서 스케쥴 관리 명령이 아닌 경우에는 외부 실행 모듈에 대한 명령인지의 여부를 체크하여(단계 S160), 외부 실행 모듈 명령인 경우에는 외부 확장모듈을 기동시켜 외부 실행 동작을 수행한다(단계 S162).If it is not a schedule management command in step S150, it is checked whether it is a command for an external execution module (step S160), and if it is an external execution module command, an external execution operation is performed by starting an external extension module (step S162). .

단계 S160에서 외부 실행 모듈 명령이 아닌 경우에는 사용자와 에이젼트 시스템와의 채팅을 수행한다(단계 S170).If it is not an external execution module command in step S160, a chat is performed between the user and the agent system (step S170).

이상에서 설명한 바와 같이, 본 발명에 따른 인공 지능형 에이젼트 시스템은 자연 언어 해석 능력과 지능적 정보 처리 능력 및 기계 학습 능력을 갖는 인공 지능 개념과, 사용자 도우미 능력과 사용자에게 필요한 정보를 효율적으로 관리하는 능력 및 자동적으로 문제 해결/도움 능력을 갖는 에이젼트 개념을 합성한 개념으로, 사용자가 원하는 작업을 음성, 문장 인식, 자연어 처리 등을 통하여 자동적으로 해결할 수 있고, 사용자에게 필요한 정보들과 나머지 정보들을 분류해주고 사용자의 작업을 도와줄 수 있으며, 사용자의 정보 수집과 정보 처리를 자동화하고 지능화하는 대행자 역할을 수행한다.As described above, the artificial intelligence agent system according to the present invention includes an artificial intelligence concept having natural language interpretation ability, intelligent information processing ability, and machine learning ability, user helper ability, and ability to efficiently manage information necessary for the user; It is a synthesis of agent concept with automatic problem solving / helping ability. It can automatically solve the task that user wants through voice, sentence recognition, natural language processing, etc. It can help you work with and act as an agent to automate and intelligent your information collection and information processing.

이하, 본 발명에 따른 인공 지능형 에이젼트 시스템을 보다 상세히 설명한다.Hereinafter, the artificial intelligence agent system according to the present invention will be described in more detail.

도 3은 작업 스케쥴러의 동작을 설명하기 위한 도면으로, 에이젼트 인터페이스부(100), 에이젼트 협업부(400), 각종 모듈부(600)와 논리적으로 연결되며, 모든 명령은 주로 기능 문법(FG)을 통해 전달하고, 그 결과값은 텍스트(text), 엑스.엠.엘(xml), 파일 경로(file-path), 유.알.엘(URL) 등으로 주고받는다.3 is a view for explaining the operation of the task scheduler, it is logically connected to the agent interface unit 100, agent collaboration unit 400, various module unit 600, all the commands are mainly functional syntax (FG) The result is sent and received through text, X.M.L (xml), file path (URL), etc.

그러면, 에이젼트 인터페이스부(100) 및 에이젼트 협업부(400)와의 통신 요약을 하기하는 표 1에서 설명한다.Then, a summary of communication with the agent interface unit 100 and the agent collaboration unit 400 will be described in Table 1 below.

작업 스케쥴러부(TSC)Job Scheduler Unit (TSC) 에이젼트 인터페이스부(AIF)Agent Interface Unit (AIF) (add-grammar <keyword>*<string-id>)(add-grammar <keyword> * <string-id>) (aif gesture <no>)(aif gesture <no>) (aif tts <vtype>)(aif tts <vtype>) (aif character <id> <name> <path>)(aif character <id> <name> <path>) (Result:xml)(Result: xml) (joblist)(joblist) (jobctrl <lcommand> <ljob-id>)(jobctrl <lcommand> <ljob-id>) (vconnect <ip>)(vconnect <ip>) (vdisconnect)(vdisconnect) (ac-msg <id> <name> <msg>)(ac-msg <id> <name> <msg>) (ac-msg <id> <name> <msg>)(ac-msg <id> <name> <msg>) (ac-config-request)(ac-config-request) (ac-config <item> <value>)(ac-config <item> <value>) (ac-agent-list)(ac-agent-list) (ac-agent-col-config <id> <kb> <ir> <file>)(ac-agent-col-config <id> <kb> <ir> <file>) (ac-agent-files-request <id>)(ac-agent-files-request <id>) (ac-agent-file-get-request <id> <file-paqth>)(ac-agent-file-get-request <id> <file-paqth>) (add-server <agent-id>)(add-server <agent-id>) (aif character <id> <name> <path> <ip>)(aif character <id> <name> <path> <ip>)

하기하는 표 2는 작업 스케쥴러부(300)와 에이젼트 협업부(400)와의 통신 요약을 설명한다.Table 2 below describes a summary of communication between the job scheduler 300 and the agent collaboration unit 400.

작업 스케쥴러부(TSC)Job Scheduler Unit (TSC) 에이젼트 협업부(ACM)Agent Collaboration Department (ACM) (ac-kb-request <FG-cmd>)(ac-kb-request <FG-cmd>) Result: text, xmlResult: text, xml (ac-ir-request <kw-list> <hm-kw-list> <begin-n> <n> <kin-domain-flag> <depth>)(ac-ir-request <kw-list> <hm-kw-list> <begin-n> <n> <kin-domain-flag> <depth>) Result: binaryResult: binary (ac-msg <id> <name> <msg>)(ac-msg <id> <name> <msg>) (ac-msg <id> <name> <msg>)(ac-msg <id> <name> <msg>) (ac-config-request)(ac-config-request) Result: xmlResult: xml (ac-config <item> <value>)(ac-config <item> <value>) (ac-agent-list)(ac-agent-list) Result: xmlResult: xml (ac-agent-col-config <id> <kb> <ir> <file>)(ac-agent-col-config <id> <kb> <ir> <file>) (ac-agent-files-request <id>)(ac-agent-files-request <id>) Result: xmlResult: xml (ac-agent-file-get-request <id> <file-path>)(ac-agent-file-get-request <id> <file-path>) Result: textResult: text (ac-char-request <id> <name> <path> <ip>)(ac-char-request <id> <name> <path> <ip>) Result: textResult: text (ac-remote-req <id> <FG cmd>*)(ac-remote-req <id> <FG cmd> *) Result: textResult: text (ac-mse-status)(ac-mse-status) (add-server <agent-ip>)(add-server <agent-ip>) (mod-update <file-url>)(mod-update <file-url>)

작업 스케쥴러부(300)는 새로운 기능 문법(FG)을 에이젼트 인터페이스부(100)를 경유하여 자연어 처리부(200)의 구문해석 모듈(210)로 전달한다. 작업 스케쥴러부(300)에 새로운 모듈이 추가되면 키워드에 반응하는 새로운 기능 문법을 상기한 구문해석 모듈(210)에 전달한다.The task scheduler 300 transmits the new functional grammar (FG) to the syntax analysis module 210 of the natural language processing unit 200 via the agent interface unit 100. When a new module is added to the task scheduler 300, a new function grammar in response to a keyword is transmitted to the syntax interpretation module 210.

작업 스케쥴러부(300)는 에이젼트 인터페이스부(100)로부터 기능 문법(FG)을 입력받아, 그 명령을 해석하여 작업 큐(job queue)에 삽입한다. 작업 큐에서 명령을 인출하여 해당 모듈을 스레드(thread)로 실행하면, 작업 스케쥴러(300)는 실행된 스레드를 모니터링하여 작업의 종료를 기다린다. 명령이 끝났으면 명령 처리 결과를 에이젼트 인터페이스부(100)로 전송한다.The job scheduler 300 receives the function grammar FG from the agent interface unit 100, interprets the command, and inserts the command into the job queue. When the command is fetched from the work queue and the module is executed as a thread, the work scheduler 300 monitors the executed thread and waits for the end of the work. When the command is finished, the command processing result is transmitted to the agent interface unit 100.

하기하는 표 3은 상기한 작업 큐의 구조를 설명한다.Table 3 below describes the structure of the work queue described above.

PropertyProperty TypeType RemarkRemark IdId IntInt Job IDJob ID SdtSdt CtimeCtime Job 실행 시각Job execution time EdtEdt CtimeCtime Job 종료 시각(시간절을 포함한 문장인 경우)Job end time (if statement contains time clause) CdtCdt CtimeCtime 현재 진행 시간Current running time ThandleThandle HANDLEHANDLE Thread 또는 Precess 핸들Thread or Precess handle prioprio intint 우선 순위Priority CmdCmd CstingCsting 작업 명령Work command StatStat BYTEBYTE 작업 상태Work status 0 = 작업종료0 = end of job 1 = 작업 진행중1 = work in progress 2= 작업 대기중(명령이 여럿일 경우 전 작업이 종료되어야 계속됨)2 = Waiting for job (if there are multiple commands, all jobs must finish before continuing) 3 = 작업 일시 멈춤 상태(suspend)3 = suspend operation

또한 상기한 작업 큐는 선입선출(FIFO) 구조로 종료한 작업은 히스토리의 형태로 파일로 남기고, 히스토리는 예를 들어 2일치 분량으로 마지막 것들은 자동 삭제된다. 상기한 작업 큐에 등록되는 것은 메타 검색 명령과 에이젼트 협업 등이다.파일을 오픈 또는 실행했을 경우 그 해당 명령의 프로세스 핸들을 가지고 있어야 하므로 이것 역시 상기한 작업 큐에 등록한다.In addition, the job queue is a first-in, first-out (FIFO) structure of the job is left as a file in the form of a history, the history is for example two days of the last one is automatically deleted. Registered job queues are meta-search commands and agent collaboration. When a file is opened or executed, it must also have a process handle for that command.

도 4는 본 발명의 실시예에 따라 사용자 에이젼트 시스템과 원격 에이젼트 시스템과의 동작을 설명하기 위한 도면이다.4 is a view for explaining the operation of the user agent system and the remote agent system according to an embodiment of the present invention.

도 4를 참조하면, 정보 검색(IR; Information Retrieval)이 협업 모드로 진행될 경우 메타 검색 엔진을 통해 1차적인 메타 검색 결과를 얻어온 후 이를 n개의 원격 에이젼트 개수만큼 분할하고, 이것을 각각의 원격 에이젼트 시스템에 협업을 요청하는 형태로 전송한다. 협업이 성공적으로 종료되어 원격 에이젼트 시스템로부터 각각의 결과를 받아오면 이를 취합하여 에이젼트 인터페이스부(100)에 전송한다.Referring to FIG. 4, when information retrieval (IR) is performed in a collaborative mode, a primary meta search result is obtained through a meta search engine, and then divided into n number of remote agents, and each remote agent system Send it in the form of requesting collaboration. When the collaboration is successfully completed and receives the respective results from the remote agent system, it is collected and transmitted to the agent interface unit 100.

에이젼트 인터페이스부(100)로부터 입력받은 기능 문법(FG)중에 시간절이 지정되어 있고 협업 모드로 작동할 경우, 시간절에 따라 원격 에이젼트 시스템의 라우팅 최대 홉수(routing hop count)와, 응답 최소 응답 시간 및 페이지 검색의 깊이를 결정한다. 여기서, 홉수는 에이젼트 시스템이 거치는 경로의 총수이다.When a time clause is specified in the function syntax (FG) received from the agent interface unit 100 and operates in the cooperative mode, the routing hop count of the remote agent system, the response minimum response time, Determine the depth of page searches. Here, the hop count is the total number of paths that the agent system takes.

도 5a는 상기한 도 4의 원격 에이젼트 시스템과 사용자 에이젼트 시스템와의 제1 모델을 설명하기 위한 도면이고, 도 5b는 상기한 도 4의 원격 에이젼트 시스템과 사용자 에이젼트 시스템와의 제2 모델을 설명하기 위한 도면이다.FIG. 5A illustrates a first model of the remote agent system and the user agent system of FIG. 4, and FIG. 5B illustrates a second model of the remote agent system and the user agent system of FIG. 4. to be.

도 5a를 참조하면, 원격 에이젼트 시스템과 사용자 에이젼트 시스템와의 제1 모델은 에이젼트 인터페이스부(100)로부터 입력받은 기능 문법(FG)중 시간절이 지정되어 있고 협업 모드로 작동할 경우, 시간절에 따라 원격 에이젼트 시스템의 라우팅 최대 홉수와, 최소 응답 시간과, 페이지 검색의 깊이를 결정한다.Referring to FIG. 5A, when a first model of a remote agent system and a user agent system has a time section of a function grammar (FG) received from the agent interface unit 100, and operates in a cooperative mode, the first model of the remote agent system and the user agent system may be remotely connected according to time. Determine the maximum number of hops, the minimum response time, and the depth of page retrieval for the agent system.

상기한 제1 모델은 라우팅 경로상의 에이젼트 시스템에 부담을 주지 않는다는 장점이 있으나, 사용자 에이젼트 시스템에 러쉬 현상이 발생할 수 있는 단점이 있다.The first model has an advantage of not burdening the agent system on the routing path, but has a disadvantage in that a rush phenomenon may occur in the user agent system.

이와는 반대로 상기한 도 5b의 경우는 사용자 에이젼트 시스템에 부담이 적다는 장점이 있으나, 라우팅 경로상의 원격 에이젼트 시스템이 부담을 갖는데 단점이 있다.On the contrary, in the case of FIG. 5B, the burden on the user agent system is low. However, the remote agent system on the routing path has a disadvantage.

도 6은 본 발명의 실시예에 따른 작업 스케쥴러부를 설명하기 위한 도면으로, 스케쥴을 직접 조작할 수 있는 외부 인터페이스를 갖는다.FIG. 6 is a diagram for describing a job scheduler according to an exemplary embodiment of the present invention and has an external interface capable of directly manipulating a schedule.

도 6을 참조하면, 본 발명의 실시예에 따른 작업 스케쥴러부(300)는 개인 정보 운영(PIMS) 스케쥴 인터페이스 모듈(310)과, 소정의 플러그인 기능을 갖는 PIMS 스케쥴러 모듈(320)과, PIMS 스케쥴러의 그래픽 사용자 인터페이스 모듈(330), 사용자의 스케쥴 정보를 저장하는 저장 모듈(340)을 포함하여, 예를 들어 매 5분마다 개인 정보 운영(PIMS) 스케쥴러(외부 모듈)와 통신하여 정기적으로 사용자의 스케쥴을 체크한다. PIMS 스케쥴러 인터페이스(310)는 에이젼트 인터페이스부(100)로부터 기능 문법으로 설정된 시간절을 입력받는데, 그 입/출력 기능 문법은 하기와 같다.Referring to FIG. 6, the task scheduler 300 according to an embodiment of the present invention includes a personal information management (PIMS) schedule interface module 310, a PIMS scheduler module 320 having a predetermined plug-in function, and a PIMS scheduler. Graphical user interface module 330 of the user, including a storage module 340 for storing the user's schedule information, for example, every five minutes to communicate with the personal information management (PIMS) scheduler (external module) regularly Check the schedule. The PIMS scheduler interface 310 receives a time clause set as a function grammar from the agent interface unit 100. The input / output function grammar is as follows.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

->(tcluse <start date> [<end date> [<duration>]])-> (tcluse <start date> [<end date> [<duration>]])

<- Ok:0<-Ok: 0

->(?tcluse today)-> (? tcluse today)

<-3; 오늘 스케쥴의 총수<-3; Total number of schedules today

<- 2000/7/10 12:00 - 13:20 점심 약속<-2000/7/10 12:00-13:20 Lunch Appointment

<- 2000/7/10 12:00 - ??:?? 저녁 약속<-2000/7/10 12:00-??: ?? Evening appointment

<- 2000/7/10 12:00 - ??:?? 데이트<-2000/7/10 12:00-??: ?? Date

-> (?tclase'2000/7/10''2000/7/20') ; 7/10부터 7/20까지의 일정 자료-> (? tclase'2000 / 7 / 10''2000 / 7/20 '); Schedule data from 7/10 to 7/20

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

상기한 PIMS 스케쥴러 모듈(320)은 일종의 플러그인 기능을 수행하는 오.씨.엑스(OCX)이며, 그 입/출력 모두는 가변적인 타입이다.The PIMS scheduler module 320 is an O.X. (OCX) that performs a kind of plug-in function, and both input and output are variable types.

일반적으로 모듈은 생략된 실행 파라메타를 필요로 한다. 이때 작업 스케쥴러부(300)는 에이젼트 인터페이스부(100)측의 입력에서 어떤 입력값을 기대하며 대기할 수 있는데, 이를 작업 스케쥴러 디멘드 입력 모드(Demand Input Mode)라 한다.In general, modules require omitted execution parameters. In this case, the job scheduler 300 may wait for an input value at the input of the agent interface unit 100, which is called a job scheduler demand input mode.

하기하는 바와 같이, 에이젼트 인터페이스부(100)측에서 '내일 오후부터 랜디 로즈의 mp3를 찾아줘' 라는 명령을 입력받으면 기능 문법으로 이를 확장할 때 (오늘을 2000/7/10이라 가정), '(tclause '2000/7/11 13:00'), (search (has mp3 '랜디 로즈'))'가 되는데 메타 검색 모듈은 tclause(시간절)에서 언제까지 랜디 로즈의 mp3를 검색해야 할지를 결정하기 위해 에이젼트 인터페이스측에 질의를 요구하여 시간절(tclause)을 완성해야 한다.As described below, when the agent interface unit 100 receives the command 'find Randy Rose's mp3 from tomorrow afternoon', and expands it to a functional grammar (assuming 2000/7/10 today), (tclause '2000/7/11 13:00'), (search (has mp3 'Randy Rose')) ', and the meta search module determines how long to search Randy Rose's mp3 in the tclause. To do this, a query must be requested from the agent interface to complete the tclause.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

사용자: 내일 오후까지 랜디 로즈의 mp3을 찾아줘User: find Randy Rose's mp3 by tomorrow afternoon

에이젼트 : 언제까지 찾을까요? <-demand input modeAgent: When do you want to find it? <-demand input mode

사용자 : 7월 12일까지 (tclause '2000/7/12 23:29')User: Until July 12 (tclause '2000/7/12 23:29')

에이젼트 : 예, 알겠습니다.Agent: Yes, sir.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

도 7a 내지 도 7b는 상기한 도 6의 PIMS 스케쥴러의 그래픽 사용자 인터페이스(GUI)의 일례와 그 입력창을 각각 설명하기 위한 도면이다.7A to 7B are diagrams for explaining an example of the graphical user interface (GUI) of the PIMS scheduler of FIG. 6 and the input window, respectively.

도 8a는 본 발명의 실시예에 따라 외부 실행 모듈의 등록을 설명하기 위한 도면이고, 도 8b는 본 발명의 실시예에 따라 외부 실행 모듈의 실행 절차를 설명하기 위한 도면이다. 이때 외부 실행 모듈은 기능 문법(FG)의 시간절(tclause)의 처리를 스스로 맡아 해야 한다. 에이젼트 협업 모듈(ACM)의 고지를 받아 외부 실행 모듈(DLL)의 언로드/로드(unload/load)를 행한다. 또한 외부 실행 모듈은 에이젼트 인터페이스부(100)에서 주어진 원문 텍스트, 기능 문법(FG), 형태소 분석 결과를 모두 제공받는다. 외부 실행 모듈의 제어는 작업 스케쥴러부(300)에서 주기적으로 실행되어 기능 문법(FG), 사용자 고지 등을 처리한다.FIG. 8A is a diagram for describing registration of an external execution module according to an embodiment of the present invention, and FIG. 8B is a diagram for explaining an execution procedure of an external execution module according to an embodiment of the present invention. The external execution module must take care of the time clause of the function grammar (FG). Upon notification of the agent collaboration module (ACM), an unload / load of an external execution module (DLL) is performed. In addition, the external execution module is provided with all the original text, functional grammar (FG), and morphological analysis results given by the agent interface unit 100. The control of the external execution module is periodically executed in the task scheduler 300 to process a function grammar (FG), a user notification, and the like.

도 8a를 참조하면, 먼저 에이젼트 협업부(ACM)(400)는 정기적으로 업 데이트된 것이 있는지 원격 서버에 문의하고(단계 A1), 원격 서버는 업데이트된 모듈이 있으면 이를 에이젼트 협업부(ACM)(400)에 전송한다(단계 A2). 이어 에이젼트 헙업부(ACM)(400)는 원격 서버로부터 전송받은 해당 모듈을 사용자의 컴퓨터에 저장하고(단계 A3), 새로운 모듈을 받았음을 작업 스케쥴러부(TSC)(300)에 통지함에 따라(단계 A4), 작업 스케쥴러부(TSC)(300)는 외부 실행 모듈 제어부(670)에 새로운 모듈의 파일 이름을 알린다(단계 A5).Referring to FIG. 8A, first, the agent collaboration unit (ACM) 400 periodically asks the remote server if there is an update (step A1), and if the remote server has an updated module, the agent collaboration unit (ACM) ( 400) (step A2). The Agent Coupling Unit (ACM) 400 then stores the corresponding module received from the remote server on the user's computer (step A3) and notifies the task scheduler unit (TSC) 300 that the new module has been received (step A3). A4), the task scheduler unit (TSC) 300 informs the external execution module controller 670 of the file name of the new module (step A5).

이어 외부 실행 모듈 제어 모듈(670)은 새로운 모듈(680)을 등록하고(단계 A6), 새로운 모듈은 자신이 사용할 문법(add-grammar)을 TSC에 고지한다(단계 A7).The external execution module control module 670 registers the new module 680 (step A6), and the new module notifies the TSC of the add-grammar to be used (step A7).

이어 작업 스케쥴러부(TSC)(300)는 에이젼트 인터페이스부(100)에 새로운 모듈(680)이 사용할 문법 정의를 에이젼트 인터페이스부(100)로 전달하고(단계 A8), 에이젼트 인터페이스부(100)는 자연어 처리부(200)에 새 문법을 알린다(단계 A9).Subsequently, the task scheduler 300 transmits the grammar definition to the agent interface unit 100 to the agent interface unit 100 (step A8), and the agent interface unit 100 is a natural language. The processing unit 200 informs the new grammar (step A9).

도 8b를 참조하면, 먼저 사용자가 문장을 입력하면(단계 B1), 에이젼트 인터페이스부(100)는 자연어 처리부(200)에 사용자 문장을 전달하고(단계 B2), 자연어 처리부(200)는 새로운 모듈이 (add-grammar)로 등록한 특정 키워드를 발견하면 이것을 새로운 모듈이 사용하는 문법으로 재정의하여 에이젼트 인터페이스부(100)에 전달한다(단계 B3).Referring to FIG. 8B, first, when a user inputs a sentence (step B1), the agent interface unit 100 transmits the user sentence to the natural language processing unit 200 (step B2), and the natural language processing unit 200 is a new module. If a specific keyword registered as (add-grammar) is found, it is redefined as a grammar used by the new module and transmitted to the agent interface unit 100 (step B3).

에이젼트 인터페이스부(100)는 기능 문법(FG), 형태소 분석 결과 및 원문 등을 작업 스케쥴러부(TSC)(300)로 전달한다(단계 B4).The agent interface unit 100 transmits the functional grammar (FG), the stemming analysis result, and the original text to the job scheduler unit (TSC) 300 (step B4).

작업 스케쥴러부(TSC)(300)는 기능 문법(FG)의 해당 명령어 셋으로부터 외부실행 모듈과 관련된 명령을 찾아 외부 실행 모듈 제어 모듈(670)에 제공하고(단계 B5), 외부 실행 모듈 제어 모듈(670)은 새로운 모듈(680)에 기능 문법(FG), 형태소 분석 결과 및 원문을 전달한다(단계 B6).The task scheduler 300 finds a command related to the external execution module from the corresponding instruction set of the function grammar (FG) and provides it to the external execution module control module 670 (step B5). 670 passes the functional grammar (FG), stemming results and original text to the new module 680 (step B6).

도 9는 본 발명의 실시예에 따른 사용자 지식 베이스부의 동작을 설명하기 위한 도면이다.9 is a view for explaining the operation of the user knowledge base unit according to an embodiment of the present invention.

도 1과 도 9를 참조하여 사용자 지식 베이스부(500)의 동작을 설명하면, 먼저 메모리 캐시(530)와 외부 디스크(550)를 이용하여 지식 정보를 보전하는 지식 베이스(KB; Knowledge Base)는 각종 모듈부(600)의 실행 모듈(610)에서 함수를 호출한다. 지식 베이스 분류는 오브젝트의 이름과 아이디에 의한 해싱 테이블(520)을 통해 오브젝트이름(ObjName)에 의한 명령오브젝트(CMNObj)의 엑세스를 고속화한다. 메모리 캐시(530)에 유지되는 지식 베이스는 1MB 가량의 메모리 캐시를 사용하고 나머지는 필요할 때마다 외부 디스크(550)로부터 읽어들인다.Referring to FIGS. 1 and 9, the operation of the user knowledge base unit 500 will be described. First, a knowledge base (KB) for preserving knowledge information using a memory cache 530 and an external disk 550 may be described. A function is called by the execution module 610 of the various module units 600. The knowledge base classification speeds up the access of the command object CMNObj by the object name ObjName through the hashing table 520 by the object name and ID. The knowledge base maintained in the memory cache 530 uses about 1 MB of memory cache and the rest are read from the external disk 550 whenever necessary.

각 오브젝트는 아이디(ObjID)를 가지고 있는데, 보다 상세히는 아이디에 MSB가 세트되어 있을 경우 의미 네트워크, 즉 명사 범주 사전 모듈(230)로부터 만들어진 의미 네트워크 모듈(240)에서 사용하는 보통명사 또는 고유 명사 아이디를 의미하는데, 오브젝트가 증가할 때마다 증가하여 21억 4,748만개까지 가능하다.Each object has an ID (ObjID). More specifically, if the MSB is set in the ID, the normal noun or unique noun ID used in the semantic network, that is, the semantic network module 240 generated from the noun category dictionary module 230. Each time an object is added, it can be increased up to 2,247,748 million.

또한 문자열 해시 테이블(520)은 모든 오브젝트에 대한 해시 테이블(520)을 메모리 캐시(530)에 갖고 있으며, 캐시 매니져(540)는 자주 쓰이는 오브젝트의 해시값을 카운터와 함께 보전하여 캐시를 메모리 캐시(530)와 외부 디스크(550)에 업데이트한다.In addition, the string hash table 520 has a hash table 520 for all objects in the memory cache 530, and the cache manager 540 maintains the cache values of the frequently used objects together with counters to store the cache in the memory cache ( 530 and the external disk 550.

상기한 도 9를 참조하여 본 발명의 실시예에 따른 지식 베이스부(500)의 퀘리를 설명한다.A query of the knowledge base unit 500 according to an embodiment of the present invention will be described with reference to FIG. 9.

오브젝트를 요청하고, 해시 테이블에서 오브젝트를 찾는다. 이어 캐쉬 매니져(540)를 통해 해당 오브젝트가 없을 경우 외부의 하드디스크(550)에서 그것을 가져와 캐시에 적재한 후 캐시에서 리턴한다.Request an object and find it in a hash table. Then, if there is no corresponding object through the cache manager 540, it is taken from the external hard disk 550, loaded into the cache, and returned from the cache.

상기한 도 9를 참조하여 본 발명의 실시예에 따른 지식 베이스부(500)의 저장을 설명하면, 오브젝트 만들기를 요청하고, 캐시 매니져는 캐시 및 디스크에 오브젝트를 기록하며, 캐시 매니져는 오브젝트 사용 기록을 업데이트하여 가장 사용빈도가 낮은 오브젝트를 캐시에서 제거한다.Referring to FIG. 9, the storage of the knowledge base unit 500 according to an embodiment of the present invention is described. A request is made to create an object, the cache manager records an object in a cache and a disk, and the cache manager records an object use. To clear the least frequently used objects from the cache.

그러면, 상기한 오브젝트를 하기하는 도 10을 참조하여, 보다 상세히 설명한다.Next, the object will be described in more detail with reference to FIG. 10.

도 10은 본 발명의 실시예에 따른 사용자 지식 베이스의 오브젝트 구조를 설명하기 위한 도면이고, 그 프로그램은 하기와 같다.10 is a view for explaining the object structure of the user knowledge base according to an embodiment of the present invention, the program is as follows.

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

class CMNDerivedFormTypeclass CMNDerivedFormType

{{

DWORD id;DWORD id; //object// object

}}

class CMNHasTypeclass CMNHasType

{{

WORD hasid;WORD hasid; //serial// serial

DWORD id;DWORD id; //if it from concept network// if it from concept network

CString name;CString name; //if it has no name// if it has no name

}}

class CMNVerbTypeclass CMNVerbType

{{

WORD verbid;WORD verbid; //Particle type// Particle type

char ptype;char ptype; //related object// related object

};};

typedf CTypePtrArray<CMNDerivedFromType, CMNDerivedFromType*> CMNDerivedArray;typedf CTypePtrArray <CMNDerivedFromType, CMNDerivedFromType *> CMNDerivedArray;

typedf CTypePtrArray<CMNHasType, CMNHasType*> CMNHasArray;typedf CTypePtrArray <CMNHasType, CMNHasType *> CMNHasArray;

typedf CTypePtrArray<CMNVerbType, CMNVerbType*> CMNVerbArray;typedf CTypePtrArray <CMNVerbType, CMNVerbType *> CMNVerbArray;

class CMNObj : public CObjectclass CMNObj: public CObject

{{

DWORDDWORD id;id;

CStringCString name;name;

CMNDerivedArrayCMNDerivedArray instance;instance; //is instance of// is instance of

CMNHasArrayCMNHasArray has;has;

CMNVerbArrayCMNVerbArray verb;verb;

}}

typedf CTypePtrArray<CMNObj, CMNObj*> CMNDerivedArray;typedf CTypePtrArray <CMNObj, CMNObj *> CMNDerivedArray;

#define MAX_CASHED_OBJ_IN_MEMORY512#define MAX_CASHED_OBJ_IN_MEMORY512

---------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- ----------

도 10을 참조하면, 오브젝트 아이디는 "인터넷은 미디어다"와 같이 정의 기능을 수행하는 리스트('is' list)와, "한국은 아시아에 있다"와 같이 위치 기능을 수행하는 리스트('has' list)와, "손은 신체의 일부이다"와 같이 소유 기능을 수행하는 리스트('possess' list)로 이루어진다.Referring to FIG. 10, the object ID is a list ('is' list) that performs a defining function, such as "Internet is media", and a list ('has', which performs a location function, such as "Korea is in Asia"). list) and a 'possess' list that performs a possessive function, such as "hands are part of the body."

보다 상세히는, 정의(define)의 is는,More specifically, the definition of is is

(is <obj1> <obj2>)(is <obj1> <obj2>)

와 같이 구성될 수 있는데, 이때 <obj1>에는 보통명사가 올 수가 없으며,<obj2>에 보통명사가 오면 단순히 그 명사와 링크 관계를 설정하고, <obj2>에 고유 명사가 오면 <obj2>를 새로 생성하고 그 obj와 링크를 설정한다. 또한 <obj1>이 일반명사이고, <obj2>가 고유명사이면 서로 위치를 바꾸고, (is <obj1><obj2>)의 리턴 메시지는 <obj1>이다.In this case, <obj1> cannot have a common noun, and when <obj2> comes with a normal noun, it simply establishes a link relationship with the noun. When <obj2> has a proper noun, <obj2> is newly created. Create and set a link with that obj. If <obj1> is a common noun and <obj2> is a proper noun, the positions are interchanged. The return message of (is <obj1> <obj2>) is <obj1>.

예를 들어, "인터넷은 미디어다"는 (is '인터넷''미디어')로, "철수의 ,장미 이름은 xx이다"는 (has '철수'(has '장미'(is '이름''xx')))과 같이 나타낼 수 있다.For example, "Internet is media" is (is "Internet" media "), and" Rose's name is xx "(has' Rose '(has' rose' (is' name'xx) '))).

또한, 위치의 locate는,Also, locate of

(locate <obj1> <obj2>)(locate <obj1> <obj2>)

와 같이 구성될 수 있으며, 그의 리턴 메시지는 <obj2>이다.It can be configured as follows, and its return message is <obj2>.

예를 들어, "한국은 아시아에 있다"는 (locate '한국''아시아')으로 나타낼 수 있다.For example, "Korea is in Asia" can be expressed as "locate" Korea "Asia".

또한, 소유의 has는,Also, owned has,

(has <obj1> <obj2>)(has <obj1> <obj2>)

와 같이 구성될 수 있는데, 이때 <obj1>은 주어이며 주어가 지식 베이스내에 존재하지 않으면 생성한다. 또한 <obj2>가 보통 명사이면 링크만 설정하고, <obj2>가 고유명사이면 <obj2>를 새로 생성하고 그 obj와 링크를 설정하며, 그의 리턴 메시지는 <obj2>이다.<Obj1> is the subject and is created if the subject does not exist in the knowledge base. If <obj2> is a normal noun, only a link is set. If <obj2> is a proper noun, a new <obj2> is created and a link is established with the obj. The return message is <obj2>.

예를 들어, "손은 신체의 일부분이다"는 (has '신체''손')으로 나타낼 수 있고, "철수의 장미는 미자 것이다"는 (has '미자'(has '철수''장미'))으로 나타낼 수 있다.For example, "hands are part of the body" can be represented as (has 'body' hands '), and "rose's rose will be missed" (has' mija '(has' withdrawal 'rose') )

이상의 실시예에서는 정의, 위치, 소유에 대한 기본 형태를 간략히 설명했으나, 복합문이나, 술어 확장 형태가 가능함은 자명한 일이다.In the above embodiments, the basic forms of definition, location, and ownership have been briefly described, but it is obvious that compound statements or predicate expansion forms are possible.

도 11a는 본 발명의 실시예에 따른 메타 검색 엔진 모듈의 동작 흐름을 설명하기 위한 도면이고, 도 11b는 본 발명의 실시예에 따른 에이젼트 협업 메타 검색 엔진의 능동 동작의 흐름을 설명하기 위한 도면이며, 도 11c는 본 발명의 실시예에 따른 에이젼트 협업 메타 검색 엔진의 수동 동작의 흐름을 설명하기 위한 도면이다.FIG. 11A is a diagram for describing an operation flow of a meta search engine module according to an embodiment of the present invention, and FIG. 11B is a diagram for describing a flow of active operation of an agent collaboration meta search engine according to an embodiment of the present invention. 11C is a view for explaining the flow of manual operation of an agent collaboration meta search engine according to an embodiment of the present invention.

도 11a를 참조하면, 먼저 검색 키워드를 메타 검색 모듈로 전달한다.Referring to FIG. 11A, a search keyword is first transmitted to a meta search module.

이어 서칭 엔진을 통해 URL 리스트를 얻어와서 검색 키워드를 일종의 검색 엔진인 헬름홀츠 머신(Helmholtz Machine)에 입력한다. 여기서는 헬름홀츠 머신에 검색 키워드를 입력하는 것을 그 예로 설명하였으나, 현 작업의 유용성을 감안하여 베이시안 네트워크(Bayesian Network), 레이턴트 베리어블 모델(Latent Variable Model) 등을 선정할 수도 있다. 이러한 서칭 엔진은 메타 검색 엔진에서 검색한 문서를 사용자가 클릭하여 방문하거나, 사용자가 단순히 웹 브라우징을 통해 방문하는 사이트들로부터 문서 분류를 실행하고 이것을 서칭 엔진 자체의 내부 변수로 학습한다. 또한 메타 검색 엔진이 검색 키워드를 입력받았을 때 검색 키워드로부터 유사 상관 관계를 지닌 키워드열을 출력하여 메타 검색 엔진이 방문하는 사이트와 키워드열의 출연 빈도를 조사하여 상기한 도 4에서 언급한 바와 같이, 랭킹시에 반영한다.The search engine then obtains a list of URLs and enters the search keywords into a Helmholtz Machine, a type of search engine. In this example, inputting a search keyword into the Helmholtz machine is described as an example. However, in consideration of the usefulness of the current work, the Bayesian network, the latent variable model, and the like may be selected. Such a search engine performs document classification from sites visited by a user by clicking on a document searched by a meta search engine or by a user simply visiting through web browsing and learning this as an internal variable of the search engine itself. In addition, when the meta search engine receives the search keyword, the keyword string having a similar correlation is output from the search keyword, and the frequency of appearance of the site and keyword string visited by the meta search engine is investigated. Reflect on the poem.

이어 URL 리스트를 바탕으로 사이트를 방문해 사이트의 HTML을 얻어온 후 태그를 제거한다. 이때 협업 컨트롤러의 경우는 단순히 바이패스한다.Then visit the site based on the URL list to get the HTML of the site and remove the tag. In this case, the collaboration controller simply bypasses it.

이어 태그를 제거한 HTML에서 명사 색인어를 추출한다.The noun index is then extracted from the untagged HTML.

또한 헬름홀츠 머신에 입력한 검색 키워드를 입력하여 출력된 유사 단어군으로 상기 추출한 색인어 리스트에서 빈도수를 평가하여 각 URL 마다 점수를 부여하고, URL 리스트의 모든 URL을 방문할 때까지 상기 사이트의 HTML을 얻어온 후 태그 제거하는 단계부터 반복한다.In addition, by inputting a search keyword inputted to the Helmholtz machine, the frequency of the extracted index word list is evaluated, and the score is assigned to each URL, and the HTML of the site is obtained until all the URLs of the URL list are visited. After that, repeat the step of removing tags.

이어 클릭 프로파일에 따라 사용자의 방문 빈도수가 높은 사이트 순으로 검색 결과를 재배열한다.Then, based on the click profile, the search results are rearranged in order of the most frequently visited sites.

도 11b를 참조하면, 먼저 검색 키워드를 메타 검색 엔진 모듈에 전달하면, 메타 검색 엔진 모듈측에서는 다양한 서칭 엔진을 통해 URL 리스트를 얻어와 검색 문서를 헬름홀츠 머신에 입력한다.Referring to FIG. 11B, when a search keyword is first transmitted to a meta search engine module, the meta search engine module obtains a URL list through various search engines and inputs a search document into a Helmholtz machine.

URL 리스트를 바탕으로 사이트를 방문해 사이트의 HTML을 얻어온 후 태그를 제거한다.Visit the site based on the list of URLs, get the site's HTML, and remove the tag.

이어 URL 리스트에 협업에 참여하는 원격 에이젼트 시스템의 수만큼으로 나눈다. 예를 들어, 원격 협업 에이젼트 시스템의 수가 10개이고, URL 리스트는 1,000개하면, 나눈 개수는 100개이고, 이를 AC URL List로 칭하고, 그중 첫 번째 100개를 로컬 URL 리스트로 칭한다.The URL list is then divided by the number of remote agent systems participating in the collaboration. For example, if the number of remote cooperative agent systems is 10 and the list of URLs is 1,000, the number is divided by 100, which is called an AC URL List, and the first 100 of them is called a local URL list.

이어 협업 정보 검색(IR) 컨트롤러는 에이젼트 협업(AC) URL 리스트를 에이젼트 협업 모듈에 나누어 보내고, 이어 로컬 URL 리스트(본 발명에서는 100개로 함.)로 사이트를 방문하고 색인어를 추출하여 랭킹을 부여한다.The collaborative information retrieval (IR) controller then divides the agent collaborative (AC) URL list into the agent collaborative module, and then visits the site with a local URL list (100 in the present invention), extracts indexes and assigns a ranking. .

메타 검색 엔진은 AC URL List를 보낸 원격 에이젼트 시스템로부터 결과가 나올 때까지 기다리고, 상기 랭킹 부여한 결과와 상기 기다린 후에 얻어지는 결과를 합해 클릭 프로파일 랭킹(click propile ranking)을 적용한다.The meta search engine waits for a result from the remote agent system that sends the AC URL List, and applies the click propile ranking by adding the ranking result and the result obtained after the wait.

도 11c를 참조하면, 먼저 에이젼트 협업부(ACM), 작업 스케쥴러부(TSC), 정보 검색(IR) 모듈 및 메타 검색 엔진을 경유하여 정보 검색(IR) 명령(ac-ir-request <kw-list> <hm-kw-list> <begin-n> <n> <in-domain-flag> <depth>)을 입수하고, <kw-list>, <begin-n>, <n> 값으로 검색 엔진에서 URL 리스트를 입수한다.Referring to FIG. 11C, first, an information retrieval (IR) command (ac-ir-request <kw-list) via an agent collaboration unit (ACM), a job scheduler unit (TSC), an information retrieval (IR) module, and a meta retrieval engine. > <hm-kw-list> <begin-n> <n> <in-domain-flag> <depth>) and search engines with values <kw-list>, <begin-n>, and <n> Get a list of URLs from.

협업 정보 검색(IR) 콘트롤러는 상기한 URL 리스트와 <hm-kw-list>를 가지고 사이트를 방문, 색인어 추출 및 랭킹 적용을 수행하는데, URL 리스트의 모든 엔트리가 날 때까지 그 동작을 반복한다.The collaborative information retrieval (IR) controller visits the site with the above-mentioned URL list and <hm-kw-list>, performs indexing and ranking application, and repeats the operation until all entries in the URL list are generated.

이어 랭킹된 URL 리스트를 에이젼트 협업 모듈로 전송한다.The list of ranked URLs is then sent to the agent collaboration module.

도 12는 본 발명의 실시예에 따른 에이젼트 협업 모듈을 설명하기 위한 도면이다.12 is a diagram for explaining an agent collaboration module according to an embodiment of the present invention.

도 12를 참조하면, 본 발명의 실시예에 따른 에이젼트 협업 모듈은 쓰레드(thread)로 동작하며, 온라인 연결된 원격 에이젼트 시스템로부터 일정의 요청을 받아 해당 명령을 처리하는 리슨어(Lstener)(410)와, 원격 에이젼트측에 요청을 전송하는 리퀘스터(Rquestor)(420)와, 쓰레드로 동작하며 에이젼트 프로파일 DB를 유지하는 퍼실리에이터(Facilitator)(430)를 포함하여 이루어진다.Referring to FIG. 12, an agent collaboration module according to an embodiment of the present invention operates as a thread, and receives a request from a online remote agent system to process a corresponding command with a listener 410. It includes a requester (420) for transmitting a request to the remote agent side, and a facilitator (Facilitator) 430 that operates as a thread and maintains an agent profile DB.

상기한 에이젼트 프로파일 DB의 구조는 하기하는 표 4와 같다.The structure of the agent profile DB is shown in Table 4 below.

FieldField typetype remarkremark bLiveCheckbLiveCheck BOOLBOOL 마지막 라이브 체크의 성공 여부Whether the last live check was successful nAgentTypenAgentType WORDWORD Bit값Bit value 1 = 서버로부터 수신한 에이젼트 프로파일1 = agent profile received from server 2 = 원격 에이젼트 시스템로부터 수신한 프로파일2 = profile received from the remote agent system 4 = 원격 에이젼트 시스템로부터 협업 요청을 한 적이 있을 경우4 = A collaboration request has been made from a remote agent system 8 = 원격 에이젼트 시스템에 협업 요청을 한 적이 있을 경우8 = A collaboration request has been made to a remote agent system 0x20 = 원격 에이젼트 시스템에 에이젼트 리스트를 보내준 적이 있을 때0x20 = agent list has been sent to remote agent system 0x40 = 원격 에이젼트 시스템이 에이젼트 서버임을 나타내는 플랙0x40 = flag indicating that the remote agent system is an agent server 0x80 = 시드(seed) 서버임을 나타내는 플랙0x80 = flag indicating that this is a seed server TmCheckTmCheck CTimeCTime 마지막(또는 마지막 라이브 체크) 일자 및 시각, 퍼실리에이터나 리퀘스터가 사용한 마지막 시각Last (or last live check) date and time, the last time used by the facilitator or requester tmStabletmStable CTimeCTime 퍼실리에이터가 라이브 체크를 수행한 후 이전에도 라이브 체크에 성공했으면 이 시간이 늘러난다. 즉, 해당 원격 에이젼트 시스템이 이 시간만큼 다운되지 않고 안정하게 동작하고 있음을 나타냄.This time is increased if the facilitator has performed a live check before the live check has been successful. That is, the remote agent system is operating stably without being down this time. tmNotifytmNotify CTimeCTime 원격 에이젼트 시스템이 고지를 보내왔을 경우 마지막 고지를 보내온 시각. 이 시각을 판단하여 원격 에이젼트 시스템에 고지 전송 여부를 결정.The time the last notification was sent if the remote agent system sent it. Judging this time determines whether to send notifications to the remote agent system. cntUsagecntUsage DWORDDWORD 리퀘스터가 해당 원격 에이젼트 시스템을 얼마나 자주 사용하는가를 나타냄.Indicates how often the requester uses this remote agent system. dwIDdwID DWORDDWORD 원격 에이젼트 시스템의 고유 아아디Unique Adi from Remote Agent System StrNameStrName CStringCString 원격 에이전트의 사용자 이름Username of remote agent StripStrip CStringCString IP 어드레스IP address nRespTimenRespTime WORDWORD 퍼실리에이터의 라이브 체크시 응답 시간(msec)Response time (msec) at live check of facilitator

리슨어(Lstener)는 원격 에이젼트 시스템의 요청에 따라 반응을 하는데, 이때 원격 에이젼트 시스템의 요청은 크게 세가지로 나눌 수 있다.Listener (Lstener) responds to the request of the remote agent system, the request of the remote agent system can be divided into three broad.

첫째는, 원격 에이젼트 시스템이 자신의 존재를 알리고자 접속해올 때 이에 대한 응답을 보내주고, 원격 에이젼트 시스템의 응답 시간을 측정하며, 원격 에이젼트 시스템을 자신의 에이젼트 리스트에 추가하는 요청이다.The first is a request to send a response when a remote agent system connects to announce its existence, to measure the response time of the remote agent system, and to add the remote agent system to its agent list.

둘째는, 원격 에이젼트 시스템이 자신이 에이젼트 리스트를 요구할 때 이것을 전송하는 요청이다.The second is a request that the remote agent system sends when it requests an agent list.

셋째는, 상기 리퀘스터를 통해 원격 에이젼트 시스템에 질의를 보낸 후 질의에 대한 응답을 받는 요청이다.Third, a request for sending a query to the remote agent system through the requester and receiving a response to the query.

리퀘스터(Rquestor)는 원격 에이젼트 시스템측에 질의를 요청하는데, 이때 자신의 원격 에이젼트 리스트중에서 가장 응답 시간이 빠른 원격 에이젼트 시스템들에게 질의를 요청한다.The requestor requests a query from the remote agent system side, at which time the remote agent systems in the remote agent list have the fastest response time.

퍼실리에이터(Facilitator)는 에이젼트 협업 모듈의 퍼포먼스에서 핵심적인 역할을 담당하는데, 협업 모드 작동시 원격 에이젼트 시스템과의 원활한 통신을 위해 가장 네트워크 접근 속도가 빠른 에이젼트 리스트를 유지한다. 또한 퍼실리에이터는 서버 또는 안정적인 에이젼트 시스템에 정기적으로 에이젼트 소프트웨어가 업그레이드 되었는지를 체크하고, 자신의 에이젼트 리스트에 등록되어 있는 원격 에이젼트 시스템들에 대하여 정기적으로 존재/활성 여부의 체크(Live/Presence Check)를 요구하고, 상대 원격 에이젼트 시스템들의 응답을 받아 그 응답 시간에 따라 에이젼트 시스템들의 우선 순위를 결정한다. 에이젼트 시스템 가동시 이 작업은 정규적으로 수행되며, 또한 원격 에이젼트 시스템 중에서 항상 응답을 하며 응답 시간이 짧은 에이젼트 시스템을 선정하여 자신의 서버로 선정한다. 서버로 선정된 에이젼트 시스템은 추후 에이젼트 업그레이드에 사용된다.The facilitator plays a key role in the performance of the agent collaboration module, which maintains the list of agents with the fastest network access for smooth communication with remote agent systems when in collaboration mode. In addition, the facilitator checks periodically whether the agent software has been upgraded to the server or stable agent system, and regularly checks the presence / activity of the remote agent systems registered in its agent list (Live / Presence Check). Requesting and receiving responses from counterpart remote agent systems to prioritize agent systems according to their response time. When the agent system is running, this work is performed regularly, and the agent system which always responds among the remote agent systems and has a short response time is selected as its own server. The agent system selected as the server is used for later agent upgrade.

보다 상세히는, 사용자측 에이젼트 시스템은 시드 서버(seed server)에 자신의 존재를 고지하고, 응답을 받을 때까지 대기하여 에이젼트 프로파일 DB에 응답 시간을 기록하며, 에이젼트 시스템이 처음 실행되었을 때 한번 실행된다.More specifically, the user-side agent system notifies its presence to the seed server, waits for receiving a response, records the response time in the agent profile DB, and is executed once when the agent system is first run.

또한 시드 서버로부터 에이전트 리스트를 요청하는데, 시드 서버를 대상으로부터 에이젼트 시스템이 설치된 후 처음 실행되었을 때 단 한번 수행된다. 그후, 자신의 에이젼트 프로파일 DB에 있는 원격 에이젼트 시스템을 대상으로 에이젼트리스트를 요청한다.It also requests an agent list from the seed server, which is executed only once when the seed server is first run after the agent system has been installed from the target. It then requests an agent list for the remote agent system in its agent profile DB.

또한 시드 서버에 모듈 업데이트를 요구하고, 퍼실리에이터는 모든 모듈의 버전 넘버를 관리한다. 버전 정보로 원격 에이젼트 시스템과 사용자 에이젼트 시스템 사이의 버전을 비교하여 원격 에이젼트 시스템의 버전이 낮을 경우 사용자의 에이젼트 소프트웨어 중에서 업 데이터된 모듈을 원격 에이젼트 시스템으로 전송하는 리퀘스터 쓰레드를 실행한다. 이때 정상적인 파일 리퀘스트에 대한 응답을 받아 이를 작업 스케쥴러로 고지하는 에이젼트 협업 모듈의 시그널을 가로채어 모듈 업데이트의 대상이 되는 파일일 경우 에이젼트 협업 모듈은 작업 스케쥴러에 모듈 업 데이터 시그널을 전송한다.It also requires the seed server to update the module, and the facilitator manages the version number of every module. The version information is used to compare the version between the remote agent system and the user agent system. When the version of the remote agent system is low, the requester thread that transmits the updated data module from the user agent software to the remote agent system is executed. In this case, the agent collaboration module sends a module up data signal to the task scheduler when the file is targeted for module update by intercepting a signal from the agent collaboration module that receives a response to a normal file request and notifies it to the task scheduler.

또한 자신의 프로파일 DB에 있는 모든 원격 에이젼트 시스템을 대상으로 정기적인 라이브 체크를 수행한다. 이때 라이브 체크는 에이젼트 시스템이 놀고 있을 때 수행되며, 프레젠스 노티파이와 동작 방식이 완전히 같으나, 차이점은 프레젠스 노티파이는 시드 서버만을 대상으로 한다는 것이다.It also performs regular live checks on all remote agent systems in its profile database. At this point, the live check is performed when the agent system is playing and the behavior is exactly the same as the presence notifier, but the difference is that the presence notifies only the seed server.

도 13a는 상기한 도 12의 협업 모듈간 존재/활성 여부의 체크 처리 절차를 설명하기 위한 도면이다.FIG. 13A is a view for explaining a check processing procedure of existence / activity between collaboration modules of FIG. 12.

도 13a를 참조하면, 사용자측 에이젼트 시스템은 원격 에이젼트 시스템측에 존재/활성 여부의 체크를 위한 신호를 출력하면(단계 S411), 원격 에이젼트 시스템측에서는 이에 대한 응답을 사용자측 에이젼트 시스템측에 제공한다(단계 S413). 여기서 원격 에이젼트 시스템은 사용자측 에이젼트 시스템과 유사하게 일반 사용자측 PC에 설치되어 운용되는 에이젼트 시스템일 수도 있고, 또는 최초에 에이젼트프로그램의 서비스를 제공하는 소정의 인터넷 웹사이트일 수도 있다.Referring to FIG. 13A, when the user agent system outputs a signal for checking existence / activity on the remote agent system side (step S411), the remote agent system side provides a response to the user agent system side (step S413). ). Here, the remote agent system may be an agent system installed and operated on a general user side PC similarly to the user side agent system, or may be a predetermined Internet website that initially provides a service of an agent program.

사용자 에이젼트 시스템측에서는 원격 에이젼트 시스템으로부터 존재/활성 여부에 대한 응답 메시지를 근거로 에이젼트 프로파일 DB에 기록 저장하고(단계 S415), 현재 고지 인식 메시지를 원격 에이젼트 시스템측에 전송하면(단계 S417), 원격 에이젼트 시스템측에서는 에이젼트 프로파일 DB에 이를 기록 저장한다(단계 S419).If the user agent system side records and stores in the agent profile DB based on the response message of presence / activity from the remote agent system (step S415), and transmits the current notification recognition message to the remote agent system side (step S417), the remote agent On the system side, this is recorded and stored in the agent profile DB (step S419).

도 13b는 상기한 도 11의 퍼실리에이터의 에이젼트 리스트 요청 처리 절차를 설명하기 위한 도면이다.FIG. 13B is a diagram for describing an agent list request processing procedure of the facilitator of FIG. 11.

도 13b를 참조하면, 사용자측 에이젼트 시스템에서 에이젼트 리스트를 원격 에이젼트 시스템측에 요청하면(단계 S421), 원격 에이젼트 시스템에서는 사용자 에이젼트 시스템측에 해당 리스트를 전송하고(단계 S423), 보유하는 에이젼트 프로파일 DB에 기록 저장한다(단계 S425).Referring to FIG. 13B, when the agent list is requested from the user agent system to the remote agent system side (step S421), the remote agent system transmits the list to the user agent system side (step S423), and the agent profile DB is held. Record and store (step S425).

이어 사용자 에이젼트 시스템측에서는 자신이 보유하는 에이젼트 프로파일 DB에 원격 에이젼트 시스템으로 제공받은 에이젼트 리스트를 기록 저장한다(단계 S427).Subsequently, the user agent system records and stores the agent list provided to the remote agent system in the agent profile DB held by the user agent system (step S427).

도 13c는 상기한 도 12의 퍼실리에이터의 에이젼트 소프트웨어 업그레이드 요청 처리 절차를 설명하기 위한 도면이다.FIG. 13C is a view for explaining an agent software upgrade request processing procedure of the facilitator of FIG. 12.

도 13c를 참조하면, 사용자 에이젼트 시스템에서 모듈 업데이트를 체크함에 따라(단계 S431), 원격 에이젼트 시스템측에서는 업데이트된 모듈 목록을 사용자 에이젼트 시스템측에 전송한다(단계 S432).Referring to FIG. 13C, as the module update is checked in the user agent system (step S431), the remote agent system side transmits the updated module list to the user agent system side (step S432).

이어 사용자 에이젼트 시스템측에서는 원격 에이젼트 시스템측에 모듈(파일)을 요청하면(단계 S433), 파일 전송 시작 헤더를 사용자 에이젼트 시스템측에 전송한다(단계 S434).If the user agent system side requests a module (file) from the remote agent system side (step S433), the file transfer start header is transmitted to the user agent system side (step S434).

이어 사용자 에이젼트 시스템측에서는 파일 수신 준비 메시지를 원격 에이젼트 시스템측에 전송하면(단계 S435), 원격 에이젼트 시스템측에서는 해당 파일(업데이트된 파일)을 사용자 에이젼트 시스템측에 전송한다(단계 S436).Subsequently, when the user agent system side transmits a file reception preparation message to the remote agent system side (step S435), the remote agent system side transmits the file (updated file) to the user agent system side (step S436).

사용자 에이젼트 시스템측에서는 해당 파일을 수신하여(단계 S437) 퍼실리에이터 업그레이드 모듈을 통해 에이젼트 프로그램을 업데이트한다(단계 S438).The user agent system side receives the file (step S437) and updates the agent program through the facilitator upgrade module (step S438).

도 14는 본 발명의 실시예에 따라 사용자측 PC에 디스플레이되는 웹 페이지를 설명하기 위한 도면이다.14 is a view for explaining a web page displayed on the user-side PC according to an embodiment of the present invention.

도 14를 참조하면, 본 발명에 따른 인공 지능형 에이젼트 시스템은 피쳐 브라우저, 사이트 및 검색 표시창을 포함하는 일반적인 웹 페이지상에 구동될 수 있다. 특히 상기한 피쳐 브라우저는 에이젼트 결과 및 웹 페이지 표시창을 도시하고, 상기한 사이트 및 검색 표시창은 일반 웹 서핑 및 검색 결과를 볼 수 있게 하며, 제안 결과 표시창은 에이젼트 시스템이 정리한 결과를 볼 수 있게 한다.Referring to FIG. 14, the artificial intelligence agent system according to the present invention may be driven on a general web page including a feature browser, a site, and a search display window. In particular, the feature browser shows an agent result and a web page display window, the site and search display window enables viewing of general web surfing and search results, and a suggestion result display window allowing viewing of the results arranged by the agent system. .

또한 음성 인식 엔진과 함께 사용되면서 자연어 입력이 가능한 일종의 에이젼트 대화창인 가이드는 마이크로소프트사에서 제공하는 아웃룩에서 이용하는 도움말 에이젼트와 유사 또는 동일한 캐릭터를 이용할 수 있다.In addition, the guide, which is a type of agent dialog that can be used with the speech recognition engine to input natural language, can use characters similar or identical to the help agent used in Microsoft's Outlook.

도 15a는 본 발명의 실시예에 따른 에이젼트 시스템 신규 등록을 설명하기 위한 도면이고, 도 15b는 본 발명의 실시예에 따른 에이젼트 사용을 설명하기 위한도면이고, 도 15c는 본 발명의 실시예에 따라 소정의 시간 경과후 에이젼트 서버 선출을 설명하기 위한 도면이고, 도 15d는 본 발명의 실시예에 따른 에이젼트 시스템간 협업을 설명하기 위한 도면이다.15A is a diagram for explaining new agent system registration according to an embodiment of the present invention, FIG. 15B is a diagram for explaining the use of an agent according to an embodiment of the present invention, and FIG. 15C is according to an embodiment of the present invention. FIG. 15D is a view for explaining agent server selection after a predetermined time elapses, and FIG. 15D is a diagram for explaining cooperation between agent systems according to an embodiment of the present invention.

도 15a를 참조하면, 먼저 에이젼트 서버로부터 에이젼트 프로그램을 다운 로드 받아 설치함으로써 새로 등록된 제1 에이젼트 시스템은 자신의 존재를 에이젼트 서버측에 알리고 에이젼트 서버가 알고 있는 리스트를 요구한다(단계 S11). 또한 에이젼트 서버는 기존에 등록된 제2, 제3 내지 제n 에이젼트 시스템의 리스트를 가지고 있으며, 여기에 제1 에이젼트 시스템을 추가한다. 여기서, 에이젼트 서버는 인공 지능형 에이젼트 시스템에 대한 소정의 프로그램을 저장하고 있다가 일반 클라이언트측에서 에이젼트 프로그램의 다운 로드 요청이 입력되는 경우에 해당 프로그램을 제공한다. 이때 제공되는 에이젼트 프로그램은 각 에이젼트 시스템에 공통적으로 저장될 수 있는 초기화된 지식 베이스를 제공한다. 이러한 초기화된 지식 베이스는 각 사용자측 PC에 설치되어 사용자가 에이젼트 프로그램을 교육시킴에 따라 일정 시간이 경과하면 전혀 상이한, 즉 사용자의 특성과 연동하는 에이젼트 시스템이 만들어진다.Referring to FIG. 15A, by first downloading and installing an agent program from an agent server, a newly registered first agent system notifies its presence to the agent server side and requests a list known to the agent server (step S11). The agent server also has a list of previously registered second, third to n-th agent systems, and adds the first agent system to it. Here, the agent server stores a predetermined program for the artificial intelligence agent system and provides the corresponding program when a download request of the agent program is input from the general client side. The agent program provided at this time provides an initialized knowledge base that can be stored in common in each agent system. This initialized knowledge base is installed on each user's PC, and as the user trains the agent program, an agent system that is completely different, that is, linked to the characteristics of the user, is created after a certain time.

이어 에이젼트 서버는 자신이 가지고 있는 리스트에서 제2, 제3 내지 제n 에이젼트 시스템을 새로 등록한 제1 에이젼트 시스템을 전달한다(단계 S12). 이때 제1 에이젼트 시스템은 제2, 제3 내지 제n 에이젼트 시스템의 존재를 알게된다.Subsequently, the agent server delivers the first agent system newly registering the second, third to n-th agent systems from its own list (step S12). At this time, the first agent system knows the existence of the second, third to n-th agent system.

이어 제1 에이젼트 시스템은 제2, 제3 내지 제n 에이젼트 시스템에 차례대로 접속하여, 제2, 제3 내지 제n 에이젼트 시스템에 자신의 존재를 알리고 에이젼트리스트를 요구한다(단계 S13).Subsequently, the first agent system connects to the second, third to n-th agent systems in order to inform the second, third to n-th agent systems of their existence and requests an agent list (step S13).

이어 제2, 제3 내지 제n 에이젼트 시스템은 제1 에이젼트 시스템을 자신이 가지고 있는 에이젼트 리스트에 추가하고 제1 에이젼트 시스템의 요구에 응답하여 자신이 가지고 있는 리스트를 보내준다(단계 S14).Then, the second, third to n-th agent system adds the first agent system to its own agent list and sends its own list in response to the request of the first agent system (step S14).

도 15b를 참조하면, 먼저 제1 에이젼트 시스템은 자신의 존재를 서버에 알려준다(1주일 동안만)(단계 S21). 이때 서버에 에이젼트 리스트를 요청하지는 않는다.Referring to Fig. 15B, first the first agent system informs the server of its existence (only for one week) (step S21). It does not request the agent list from the server.

이어 제1 에이젼트 시스템은 자신이 가지고 있는 에이젼트 리스트에 등록된 에이젼트 시스템들을 체크하여 순위를 업데이트한다(단계 S22). 이때 순위는 제1 에이젼트 시스템의 에이젼트 리스트에 요구에 대한 응답 시간을 측정하여 이루어진다. 또한 추후에 제1 에이젼트 시스템이 협업 동작을 하게 될 때 자신의 협업 파트너를 지정하는데 사용된다.Subsequently, the first agent system checks agent systems registered in its agent list and updates the ranking (step S22). At this time, the ranking is made by measuring the response time for the request in the agent list of the first agent system. It is also used to designate its own collaboration partner when the first agent system becomes collaborative in the future.

이어 제1 에이젼트 시스템으로부터 리스트 요청을 받은 제2, 제3 내지 제n 에이젼트 시스템은 자신의 리스트를 제1 에이젼트 시스템에 전송한다(단계 S23). 아울러 제1 에이젼트 시스템으로부터의 응답 시간을 측정하여 에이젼트 리스트의 순위를 결정한다.Subsequently, the second, third to n-th agent systems that receive the list request from the first agent system transmit their own lists to the first agent system (step S23). In addition, the response time from the first agent system is measured to determine the rank of the agent list.

도 15c를 참조하면, 먼저 제1 에이젼트 시스템은 더 이상 서버에 자신의 존재를 알리거나 리스트를 요구하지 않고, 그 대신에 자신의 에이젼트 리스트에 등록된 제2 에이젼트 시스템에 자신의 존재를 알리고 리스트를 요청한다(단계 S31).Referring to FIG. 15C, first the first agent system no longer informs the server of its existence or requests a list, but instead announces its existence to a second agent system registered in its agent list and displays the list. Request (step S31).

이어 제2 에이젼트 시스템은 제1 에이젼트 시스템의 존재를 알고 응답 시간을 측정한 후 리스트를 전송한다(단계 S32).Subsequently, the second agent system knows the existence of the first agent system, measures the response time, and transmits the list (step S32).

상기한 단계 S31 내지 단계 S32의 과정과 동일하게 제1 에이젼트 시스템은 제3, 제4 에이젼트 시스템에 자신의 존재를 알리고 리스트를 요청하면 그 응답 시간을 측정한 후 리스트를 제1 에이젼트 시스템에 전송한다(단계 S33, S34, S35, S36).As in the steps S31 to S32 described above, the first agent system notifies its presence to the third and fourth agent systems, requests a list, measures the response time, and then transmits the list to the first agent system. (Steps S33, S34, S35, S36).

이어 제1 에이젼트 시스템은 이후 자신의 에이젼트 리스트에 가장 안정적인 응답을 하는 에이젼트 시스템 중에 하나를 골라 그것을 자신의 2차 서버로 등록한다. 2차 서버가 된 에이젼트 시스템은 제1 에이젼트 시스템이 지신의 존재를 알리기 위해 사용된다. 여기서, 안정적인 응답이란 제1 에이젼트 시스템의 요구에 언제나 응답하는 것을 의미한다.The first agent system then selects one of the agent systems that has the most stable response to its agent list and registers it as its secondary server. The agent system, which becomes the secondary server, is used by the first agent system to announce the presence of the body. Here, stable response means always responding to a request of the first agent system.

도 15d를 참조하면, 먼저 제1 에이젼트 시스템은 자신이 알고 있는 에이젼트 리스트중에서 가장 응답 속도가 빨랐던 에이젼트 시스템들, 본 발명의 일례에서는 제2 에이젼트 시스템과 제3 에이젼트 시스템을 선택하여 질의를 보내면(단계 S41, S42), 질의에 대한 답을 알고 있는 에이젼트 시스템, 본 발명의 일례에서는 제3 에이젼트 시스템은 즉각 답변을 제1 에이젼트 시스템측에 보낸다.Referring to FIG. 15D, first, the first agent system selects the agent systems that responded most quickly from the agent list known to the agent, and in the example of the present invention, selects the second agent system and the third agent system to send an inquiry (step). S41, S42), the agent system knowing the answer to the query, in the example of the present invention, the third agent system immediately sends a response to the first agent system side.

또한 질의에 대한 답변을 알지 못하는 제2 에이젼트 시스템은 그 질문을 자신의 에이젼트 리스트중에서 가장 응답 속도가 빨랐던 에이젼트 시스템들, 즉 제5 및 제6 에이젼트 시스템들에게 재전송한다(단계 S41-1, S41-2). 이것을 라우팅이라 한다.In addition, the second agent system that does not know the answer to the query re-sends the question to the agent systems that have responded the fastest in their agent list, that is, the fifth and sixth agent systems (steps S41-1, S41-). 2). This is called routing.

질의에 대한 답변을 알지 못하는 에이젼트 시스템 사이의 라우팅 홉수는 제한되어 있다. 모든 에이젼트 시스템이 자신의 에이젼트 리스트중 가장 인접한(또는 가장 빠른) 에이젼트 시스템을 100개 씩 유지하고 홉수를 4로 제한한다면 이론적으로 1004=1억 대의 에이젼트 시스템이 에이젼트 협업에 참여하게 된다. 여기서, 홉수(routing hop count)는 에이젼트 시스템이 거치는 경로의 총수로서, 상기한 일례에서는 제1 에이젼트 시스템, 제2 에이젼트 시스템, 제6 에이젼트 시스템, 제7 에이젼트 시스템까지의 경로는 홉수가 3이고, 제1, 제2, 제6 에이젼트 시스템까지의 경로는 홉수가 2이다.The number of routing hops between agent systems that do not know the answer to the query is limited. If all agent systems maintain 100 of the nearest (or fastest) agent system in their agent list and limit the number of hops to 4, then theoretically 100 4 = 1 billion agents will participate in agent collaboration. Here, the routing hop count is the total number of paths passed by the agent system. In the above example, the paths to the first agent system, the second agent system, the sixth agent system, and the seventh agent system have a hop number of three, The route to the first, second, and sixth agent systems has two hops.

상기한 여러 경로를 거쳐 응답을 받은 제1 에이젼트 시스템은 자신의 질의에 대한 응답을 보내준 에이젼트 시스템을 자신의 에이젼트 리스트에 추가한다.The first agent system, which has received a response through the various paths described above, adds to the agent list its agent system that has sent a response to its query.

이상에서 설명한 바와 같이, 에이젼트 시스템측에 사용자에 의한 질의가 입력되면 그 질의에 대한 답을 얻기 위해 다른 에이젼트 시스템들측에 질의를 토스하는 동작을 수행하는데 최초 에이젼트 시스템측에 홉수를 4로 제한하더라도 1억대의 에이젼트 시스템측에 질의를 보내어 그 답을 얻는 동작을 수행한다. 물론 본 발명에서 언급한 홉수를 4로 제한했을 경우 1004=1억 대의 에이젼트 시스템에 질의를 보내는 것은 이론적인 수치이다. 또한 제2 에이젼트 시스템이 유지하는 에이젼트 리스트는 제1 에이젼트 시스템이 유지하고 있는 에이젼트 리스트와 겹칠 수도 있다.As described above, when a query by the user is input to the agent system side, toss the query to other agent systems to obtain an answer to the query, even if the number of hops is limited to 4 on the first agent system side. It sends a query to 100 million agent systems and performs the operation. Of course, if the number of hops mentioned in the present invention is limited to 4, it is theoretical to send a query to 100 4 = 1 billion agent systems. In addition, the agent list maintained by the second agent system may overlap with the agent list maintained by the first agent system.

그러면, 본 발명에 따른 인공 지능형 에이젼트 시스템의 기능을 설명한다.Next, the functions of the artificial intelligence agent system according to the present invention will be described.

본 발명에 따른 인공 지능형 에이젼트 시스템은 사용자의 명령에 따라 다양하게 반응하는 캐릭터를 운영한다. 캐릭터는 사용자 특성화가 가능한 사용자 인터페이스 요소로서, 사용자의 명령에 따라 그것에 대한 응답을 음성과 텍스트로 동시에 제공하고, 에이젼트 프로그램이 관장하는 정보가 증가할수록 캐릭터에 다양한 악세사리를 부여할 수도 있다.The artificial intelligence agent system according to the present invention operates a character that reacts in various ways according to a user's command. The character is a user interface element that can be user-characterized, and according to a user's command, a character may simultaneously provide a response to it in voice and text, and may give various accessories to the character as the information managed by the agent program increases.

또한 본 발명에 따른 인공 지능형 에이젼트 시스템은 도움말이 매뉴얼에 필요없다. 즉, 소프트웨어 사용법을 알기 위해 매뉴얼을 뒤지고 전화를 하고 전자메일을 보내지 않더라도 자신의 컴퓨터에 설치된 에이젼트 시스템에게 그 질문을 할 수 있다.In addition, the artificial intelligence agent system according to the present invention does not need help in the manual. That is, you can ask the agent system installed on your computer without having to go through the manual and call and e-mail to learn how to use the software.

또한 본 발명에 따른 인공 지능형 에이젼트 시스템은 사용자가 입력한 모든 문장을 자연어 처리를 통해 하나 하나 분석하여 에이젼트 시스템이 기억하고, 기억된 내용은 지식의 형태로 보존하게 되며, 항상 재사용된다. 또한 개별의 에이젼트 시스템이 서로 상이한(사용자의 특성을 반영한) 지식들을 보유하게 되고, 이는 네트워크를 통해 공유하게 된다. 한 사용자가 축적한 지식의 양은 그리 많지 않을 수 있지만, 수만 또는 수십 만대의 에이젼트 시스템이 네트워크를 통해 축적하게 되는 지식의 양은 방대한 양의 지식일 것이다. 그리고 이 지식의 공유는 실시간으로 이루어지므로 더 이상의 한 두 가지의 정보를 얻기 위해 서치 엔진에 의해 검색된 결과를 일일이 클릭하며 시간을 허비할 필요가 없다.In addition, the artificial intelligent agent system according to the present invention analyzes all the sentences input by the user one by one through natural language processing, the agent system remembers, the stored contents are preserved in the form of knowledge, and are always reused. In addition, individual agent systems will have different knowledge (which reflects the characteristics of the user), which will be shared across the network. The amount of knowledge accumulated by a user may not be very high, but the amount of knowledge that tens or hundreds of thousands of agent systems accumulate through a network may be enormous. And because this knowledge is shared in real time, you don't have to waste time clicking through the results retrieved by the search engine to get one or two pieces of information.

또한 본 발명에 따른 인공 지능형 에이젼트 시스템은 단 한번이라도 방문한 적이 있는 사이트라면 그 사이트를 일일이 북 마크하지 않아도 에이젼트 시스템이 기억하고 있다. 즉, 방문한 모든 사이트, 입력한 모든 단어는 에이젼트 시스템이 기억하고 있으며, 이런 습득된 기억들을 통해 에이젼트 시스템은 개별 사용자가 좋아하는 것, 자주 방문하는 사이트 그리고 원하는 것과 필요로 하는 것을 점차 알게된다. 이 말은 에이젼트 시스템의 사용 빈도가 높아질수록 에이젼트 시스템은 개별 사용자의 특성을 그대로 반영하여 개별 사용자를 그대로 닮아가는 컴퓨터안의 혹은 네트워크 상의 또 다른 개별 인격체로서 존재하게 된다. 사용자가 처음 다운 로드받아서 설치한 에이젼트 소프트웨어는 모두 똑같지만 시간의 경과와 함께 에이젼트 시스템은 사용자마다 서로 상이한 지식을 통해 각기 다른 개성을 보유한 사이버상에 나와 동일한 가상 인격체가 등장할 수 있다.In addition, the artificial intelligent agent system according to the present invention remembers the agent system even if the site has never been visited even if the site has not been bookmarked. In other words, every site visited and every word entered is remembered by the agent system. Through these acquired memories, the agent system gradually learns what individual users like, frequently visited sites, and what they want and need. This means that as the frequency of use of the agent system increases, the agent system will exist as another individual person in the computer or on the network that reflects the characteristics of the individual user as it is. The agent software that the user first downloaded and installed is the same, but over time, the agent system can appear in cyberspace with different personalities, with different knowledge for each user.

또한 일반적인 용도로 상용화된 분산 컴퓨터 환경, 예를 들어 피투피(Peer- To- Peer) 네트워크는 존재하지 않거나 극히 제한적인 용도로 사용되고 있고, 이러한 피투피 네트워크는 단순히 파일을 공유하고 있다. 그러나 본 발명에 따른 인공 지능형 에이젼트 시스템은 부차적인 파일 공유와 함께 지식을 공유하게 된다. 예를 들어, 그림 한 장을 랜더링하는데 10시간이 소요되고 이를 10만장 만들어 3D 애니메이션을 만든다고 가정해볼 때 정상적인 경우 10만 * 10시간이 소요될 것을 피투피 네트워크를 활용하여 100 시간 이내에 종료할 수 있다. 각 개인에 분산된 환경에서 활용되지 못하는 컴퓨터 자원이 에이젼트 피투피 네트워크를 통해 효율적으로 활용될 수 있다.In addition, commercially available distributed computer environments, such as peer-to-peer networks, do not exist or are used for extremely limited purposes, and these peer-to-peer networks simply share files. However, the artificial intelligence agent system according to the present invention will share knowledge with secondary file sharing. For example, assuming that it takes 10 hours to render a picture, and 100,000 copies are made to create 3D animations, it can be done within 100 hours using the P2P network, which normally takes 100,000 * 10 hours. Computer resources that cannot be utilized in a distributed environment for each individual can be efficiently utilized through an agent P2P network.

또한 본 발명에 따른 인공 지능형 에이젼트 시스템은 다양한 외부 모듈을 갖을 수 있다. 즉, 사용자의 취향을 반영하여 아침에 한번씩 뉴스 기사 중 사용자의 관심 사항에 해당되는 기사를 가져오는 외부 모듈, 주가를 모니터링하다가 매도/매수 시점에 주식을 자동으로 매도/매수하는 외부 모듈, 통신망이나 자주 방문하는웹 게시판에 오늘 올라온 기사들만 수집하여 아침마다 보여주는 외부 모듈, 쇼핑 도우미뿐만 아니라 사용자가 관심을 가질 수 있는 제품이 시장에 선을 보이면 그것을 알려주는 외부 모듈 등의 다양한 모듈을 본 발명에 따른 인공 지능형 에이젼트에 탑재할 수 있다.In addition, the artificial intelligent agent system according to the present invention may have various external modules. In other words, an external module that brings the news that corresponds to the user's interest among the news articles once every morning to reflect the user's taste, an external module that monitors the stock price and automatically sells / bushes the stock at the time of buying / buying, According to the present invention, various modules such as an external module which collects only the articles posted on the frequently-visited web bulletin board and shows them in the morning, as well as an external module which notifies the product when a product which may be of interest to the market appear in the market according to the present invention It can be mounted on artificial intelligence agents.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention as set forth in the claims below. It will be appreciated.

이상 설명한 바와 같이, 본 발명에 따른 지능형 에이젼트 시스템을 이용하면 정지된 프로그램에 지식이 첨가되면서 살아있는 프로그램이 되는 것으로 사용자를 대신해서 사용자가 원하는 작업을 자동적으로 해결해 줄 수 있다.As described above, by using the intelligent agent system according to the present invention, it becomes a live program while adding knowledge to a stationary program, and can automatically solve a task desired by the user on behalf of the user.

즉, 정보의 홍수를 이루고 있는 상황에서 사용자들은 자기가 원하든 원하지 않든, 무차별적인 정보의 공세를 받고 있는데 이러한 무수한 정보들 속에서 사용자에게 필요한 정보들과 나머지 정보들을 분류하고자 하는 욕구로 인해서 에이젼트 시스템이 등장하였다. 이러한 에이젼트 시스템을 이용하면 사용자가 원하는 것이 무엇인지 알아서 판단하고, 자기 자신들끼리 대화를 나누며, 자신에게 필요한 에이젼트 시스템을 찾아 네트워크를 돌아다니는 등의 작업을 수행하여 원하는 정보를 정확하게 찾을 수 있다.In other words, in a flood of information, users are being indiscriminately attacked, whether they want it or not, and the agent system is forced to categorize the information needed by the user and the rest of the information in this myriad of information. Appeared. Using such an agent system, the user can find out exactly what he / she wants by judging what the user wants, having a conversation between themselves, searching for the agent system that he needs, and moving around the network.

또한 사용자측에서는 자신의 컴퓨터에 내장된 프로그램을 기동시키기 위해서는 해당 프로그램이 저장된 파일을 찾는 번거로움이 수반되었으나, 본 발명에 따른 지능형 에이젼트 시스템의 표시창에 기동을 명령하는 명령어를 입력하거나 또는 음성인식기능을 내장한 에이젼트 시스템인 경우에는 소정의 마이크 등의 수단을 통해 자신의 컴퓨터에 내장된 프로그램을 기동시킬 수 있다.In addition, in order to start a program stored in the user's computer, the user side has had the trouble of searching for a file in which the program is stored, but inputs a command for commanding a start or voice recognition function to the display window of the intelligent agent system according to the present invention. In the case of a built-in agent system, a program embedded in its own computer can be started by means of a predetermined microphone or the like.

Claims (15)

사용자로부터 문장이나 음성 중 적어도 어느 하나 형태의 명령어를 제공받아 제1 경로를 통해 소정의 포맷화된 형식으로의 변환을 의뢰하고, 그 응답에 따른 변환된 명령어를 제2 경로를 통해 출력하며, 그 응답에 따른 정보를 사용자측에 출력하는 에이젼트 인터페이스부;Receives a command from the user in at least one of sentences or voices, requests conversion into a predetermined format through the first path, and outputs the converted command according to the response through the second path. An agent interface unit outputting information according to the response to the user side; 상기 제1 경로를 통해 제공되는 명령어를 소정의 포맷화된 형식으로 변환하고, 변환된 명령어를 상기 에이젼트 인터페이스부에 피드백하는 자연어 처리부;A natural language processor configured to convert the command provided through the first path into a predetermined format, and to feed the converted command back to the agent interface unit; 상기 제2 경로를 통해 입력되는 사용자의 변환된 명령어에 따라 검색 스케쥴 작업을 수행하고, 그의 응답에 따른 정보를 상기 에이젼트 인터페이스부에 제공하는 작업 스케쥴러부;A task scheduler configured to perform a search schedule task according to a user's converted command input through the second path, and to provide information according to the response to the agent interface unit; 사용자로부터 제공되는 정보를 저장하고, 저장된 정보를 근거로 사용자의 프로파일을 저장하여 사용자 환경에 적응하는 지식 베이스부; 및A knowledge base unit which stores information provided from the user and adapts the user environment by storing the user's profile based on the stored information; And 상기 작업 스케쥴러를 경유하여 입력되는 명령어를 외부의 하나 이상의 인공 지능형 인터넷 에이젼트 시스템측에 제공하여 자료를 요청하고, 그 응답에 따른 자료를 상기 에이젼트 인터페이스부에 제공하며, 상기 외부의 인공 지능형 인터넷 에이젼트 시스템으로부터 자료 요청이 입력되는 경우에는 상기 지식 베이스를 체크하고, 해당 명령을 처리하여 상기 외부의 인공 지능형 인터넷 에이젼트 시스템에 전송하고, 에이젼트 프로파일을 유지하는 에이젼트 협업부It provides a command input via the task scheduler to the external one or more artificial intelligent Internet agent system side to request data, and provides the data according to the response to the agent interface unit, the external artificial intelligence Internet agent system When a request for data is input from the agent, an agent collaboration unit which checks the knowledge base, processes the corresponding command, transmits the command to the external artificial intelligence internet agent system, and maintains an agent profile. 를 포함하는 인공 지능형 인터넷 에이젼트 시스템.Artificial intelligent Internet agent system comprising a. 제1항에 있어서,The method of claim 1, 상기 변환된 명령어가 검색 요청 정보인 경우에는 하나 이상의 정보 검색 엔진에 검색을 의뢰하고, 그의 응답에 따른 검색 정보를 출력하는 메타 검색부; 및A meta search unit for requesting at least one information search engine to search if the converted command is search request information and outputting search information according to a response thereof; And 상기 작업 스케쥴러를 경유하여 사용자로부터 자료가 입력됨에 따라 상기 지식 베이스에 저장하고, 상기 작업 스케쥴러부로부터 검색 요청이 입력되는 경우에 상기 지식 베이스부를 1차 검색하여 해당 자료가 존재하는 경우에는 상기 작업 스케쥴러부에 제공하고, 해당 자료가 미존재하는 경우에는 상기 메타 검색부를 기동시켜 검색을 의뢰하고, 그의 응답에 따른 검색 정보를 상기 작업 스케쥴러부에 제공하는 각종 모듈부When the data is input from the user via the task scheduler, the data is stored in the knowledge base, and when the search request is input from the task scheduler, the knowledge base unit is searched first. Various module units which provide the information to the job scheduler if the corresponding data is not present, and the meta search unit is started and requested to be searched. 를 더 포함하는 것을 특징으로 하는 인공 지능형 인터넷 에이젼트 시스템.Artificial intelligent Internet agent system further comprises. 제1항에 있어서,The method of claim 1, 사용자와의 의사 교환을 통해 원하는 정보를 상기 지식 베이스부에 저장하는 채팅부를 더 포함하는 것을 특징으로 하는 인공 지능형 인터넷 에이젼트 시스템.The artificial intelligence Internet agent system, characterized in that it further comprises a chat unit for storing the desired information in the knowledge base through communication with the user. 제3항에 있어서, 상기 채팅부는,The method of claim 3, wherein the chat unit, 상기 지식 베이스부이나 에이젼트 협업부, 메타 검색부를 통해 사용자가 요청한 정보를 찾지 못한 경우에 이용되는 것을 특징으로 하는 인공 지능형 인터넷 에이젼트 시스템.The artificial intelligence Internet agent system, characterized in that used when the user does not find the information requested by the knowledge base unit, agent collaboration unit, meta search unit. 제1항에 있어서, 상기 자연어 처리부는,The method of claim 1, wherein the natural language processing unit, 구문해석 모듈;Syntax analysis module; 동사 하위 범주화 사전 모듈;Verb subcategorization dictionary module; 상기 동사 하위 범주화 사전 모듈이 필요로 하는 명사의 범주를 태깅하는 명사 범주 사전 모듈;A noun category dictionary module for tagging a noun category required by the verb subcategorization dictionary module; 의미 네트워크 모듈; 및Semantic network module; And 한영 대역 사전 모듈Korean English Band Dictionary Module 을 포함하는 것을 특징으로 하는 인공 지능형 인터넷 에이젼트 시스템.Artificial intelligent Internet agent system comprising a. (a) 사용자로부터 문장이나 음성 중 적어도 어느 하나 형태의 명령이 입력되는 지의 여부를 체크하여 해당 명령이 입력되는 경우에는 해당 명령을 자연어 처리 과정을 통해 기능 문법으로 변환하는 단계;(a) checking whether a command of at least one type of a sentence or a voice is input from a user and converting the command into a functional grammar through a natural language processing process when the command is input; (b) 상기 변환된 명령어가 내부 실행 명령인지의 여부를 체크하여, 내부 실행 명령인 경우에는 내부 저장된 해당 프로그램의 구동을 제어하는 단계; 및(b) checking whether the converted command is an internal execution command, and in the case of the internal execution command, controlling driving of a corresponding stored program; And (c) 상기 변환된 명령어가 지식 베이스 관련 명령어인지의 여부를 체크하여, 지식 베이스 관련 명령어인 경우에는 지식 베이스 처리 또는 지식 베이스 검색을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계(c) checking whether the converted command is a knowledge base-related command, and if the command is a knowledge base-related command, perform a knowledge base processing or a knowledge base search and convert the result into at least one of a text and a voice. Output to 를 포함하는 인공 지능형 에이젼트의 구동 방법.Method of driving an artificial intelligent agent comprising a. 제6항에 있어서,The method of claim 6, (d) 상기 변환된 명령어가 지식 베이스 관련 명령어인 경우에는 에이젼트 협업 동작을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계(d) if the converted command is a knowledge base related command, performing an agent collaboration operation and outputting the result to the user in at least one of a text and a voice; 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트의 구동 방법.Method of driving an artificial intelligent agent further comprising a. 제6항에 있어서,The method of claim 6, (e) 상기 변환된 명령어가 메타 방식의 검색 수행 명령인지의 여부를 체크하여 메타 방식의 검색 수행 명령인 경우에는 메타 방식의 검색을 수행하여 질의에 대한 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계; 및(e) Checking whether the converted command is a meta-search search command, and if the meta-search search command is performed, the meta-search is performed to form a result of the query in at least one of a text and a voice. Outputting to the user side; And (f) 에이젼트 협업 동작을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계(f) performing an agent collaboration operation and outputting the result to the user in the form of at least one of a text and a voice; 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트의 구동 방법.Method of driving an artificial intelligent agent further comprising a. 제6항에 있어서,The method of claim 6, (g) 상기 변환된 명령어가 스케쥴 관리 명령인 지의 여부를 체크하여, 스케쥴 관리 명령인 경우에는 스케쥴 관리 동작을 수행하는 단계(g) checking whether the converted command is a schedule management command and performing a schedule management operation when the converted command is a schedule management command. 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트의 구동 방법.Method of driving an artificial intelligent agent further comprising a. 제6항에 있어서,The method of claim 6, (h) 상기 변환된 명령어가 외부 실행 모듈에 대한 명령인지의 여부를 체크하여, 외부 실행 모듈 명령인 경우에는 외부 실행 동작을 수행하는 단계; 및(h) checking whether the converted command is a command for an external execution module, and performing an external execution operation in the case of an external execution module command; And (i) 상기 변환된 명령어가 외부 실행 모듈 명령이 아닌 경우에는 사용자와 에이젼트와의 채팅을 수행하는 단계(i) if the converted command is not an external execution module command, chatting with a user and an agent 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트의 구동 방법.Method of driving an artificial intelligent agent further comprising a. (a) 사용자로부터 문장이나 음성 중 적어도 어느 하나 형태의 명령이 입력되는 지의 여부를 체크하여 해당 명령이 입력되는 경우에는 해당 명령을 자연어 처리 과정을 통해 기능 문법으로 변환하는 단계;(a) checking whether a command of at least one type of a sentence or a voice is input from a user and converting the command into a functional grammar through a natural language processing process when the command is input; (b) 상기 변환된 명령어가 내부 실행 명령인지의 여부를 체크하여, 내부 실행 명령인 경우에는 내부 저장된 해당 프로그램의 구동을 제어하는 단계; 및(b) checking whether the converted command is an internal execution command, and in the case of the internal execution command, controlling driving of a corresponding stored program; And (c) 상기 변환된 명령어가 지식 베이스 관련 명령어인지의 여부를 체크하여, 지식 베이스 관련 명령어인 경우에는 지식 베이스 처리 또는 지식 베이스 검색을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계(c) checking whether the converted command is a knowledge base-related command, and if the command is a knowledge base-related command, perform a knowledge base processing or a knowledge base search and convert the result into at least one of a text and a voice. Output to 를 포함하는 인공 지능형 에이젼트 프로그램을 내장한 컴퓨터가 판독 가능한 기록매체.A computer-readable recording medium having a built-in artificial intelligence agent program comprising a. 제11항에 있어서,The method of claim 11, (d) 상기 변환된 명령어가 지식 베이스 관련 명령어인 경우에는 에이젼트 협업 동작을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계(d) if the converted command is a knowledge base related command, performing an agent collaboration operation and outputting the result to the user in at least one of a text and a voice; 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트 프로그램을 내장한 컴퓨터가 판독 가능한 기록매체.A computer-readable recording medium having an artificial intelligence agent program further comprising a. 제11항에 있어서,The method of claim 11, (e) 상기 변환된 명령어가 메타 방식의 검색 수행 명령인지의 여부를 체크하여 메타 방식의 검색 수행 명령인 경우에는 메타 방식의 검색을 수행하여 질의에 대한 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계; 및(e) Checking whether the converted command is a meta-search search command, and if the meta-search search command is performed, the meta-search is performed to form a result of the query in at least one of a text and a voice. Outputting to the user side; And (f) 에이젼트 협업 동작을 수행하여 그 결과를 문자나 음성 중 적어도 어느 하나의 형태로 사용자측에 출력하는 단계(f) performing an agent collaboration operation and outputting the result to the user in the form of at least one of a text and a voice; 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트 프로그램을 내장한 컴퓨터가 판독 가능한 기록매체.A computer-readable recording medium having an artificial intelligence agent program further comprising a. 제11항에 있어서,The method of claim 11, (g) 상기 변환된 명령어가 스케쥴 관리 명령인 지의 여부를 체크하여, 스케쥴 관리 명령인 경우에는 스케쥴 관리 동작을 수행하는 단계(g) checking whether the converted command is a schedule management command and performing a schedule management operation when the converted command is a schedule management command. 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트 프로그램을 내장한 컴퓨터가 판독 가능한 기록매체.A computer-readable recording medium having an artificial intelligence agent program further comprising a. 제11항에 있어서,The method of claim 11, (h) 상기 변환된 명령어가 외부 실행 모듈에 대한 명령인지의 여부를 체크하여, 외부 실행 모듈 명령인 경우에는 외부 실행 동작을 수행하는 단계; 및(h) checking whether the converted command is a command for an external execution module, and performing an external execution operation in the case of an external execution module command; And (i) 상기 변환된 명령어가 외부 실행 모듈 명령이 아닌 경우에는 사용자와 에이젼트와의 채팅을 수행하는 단계(i) if the converted command is not an external execution module command, chatting with a user and an agent 를 더 포함하는 것을 특징으로 하는 인공 지능형 에이젼트 프로그램을 내장한 컴퓨터가 판독 가능한 기록매체.A computer-readable recording medium having an artificial intelligence agent program further comprising a.
KR1020000058283A 2000-10-04 2000-10-04 Agent system for artficial intelligence type and method for driving the same and computer readable medium the same KR20020027707A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000058283A KR20020027707A (en) 2000-10-04 2000-10-04 Agent system for artficial intelligence type and method for driving the same and computer readable medium the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000058283A KR20020027707A (en) 2000-10-04 2000-10-04 Agent system for artficial intelligence type and method for driving the same and computer readable medium the same

Publications (1)

Publication Number Publication Date
KR20020027707A true KR20020027707A (en) 2002-04-15

Family

ID=19691785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000058283A KR20020027707A (en) 2000-10-04 2000-10-04 Agent system for artficial intelligence type and method for driving the same and computer readable medium the same

Country Status (1)

Country Link
KR (1) KR20020027707A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100611101B1 (en) * 2004-12-07 2006-08-09 한국전자통신연구원 System and Method for Generation of Robot Service Plan
WO2019156537A1 (en) * 2018-02-12 2019-08-15 주식회사 머니브레인 Interactive ai agent system and method for actively providing service related to security and like through dialogue session or separate session on basis of monitoring of dialogue session between users, and computer-readable recording medium
US10460125B2 (en) 2015-08-27 2019-10-29 Samsung Electronics Co., Ltd. Apparatus and method for automatic query processing
KR20220060064A (en) * 2020-11-03 2022-05-11 한국생산기술연구원 A robot post-processing system using haptic technology and control method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781703A (en) * 1996-09-06 1998-07-14 Candle Distributed Solutions, Inc. Intelligent remote agent for computer performance monitoring
KR19980029011A (en) * 1996-10-25 1998-07-15 구자홍 Vocabulary automatic classification device and method
KR19980078071A (en) * 1997-04-24 1998-11-16 구자홍 Scheduling from Natural Memo Sentences
JPH1115664A (en) * 1997-06-23 1999-01-22 Matsushita Electric Ind Co Ltd Agent interface device
WO1999066381A2 (en) * 1998-06-15 1999-12-23 Dejima Corporation Adaptive interaction using an adaptive agent-oriented software architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781703A (en) * 1996-09-06 1998-07-14 Candle Distributed Solutions, Inc. Intelligent remote agent for computer performance monitoring
KR19980029011A (en) * 1996-10-25 1998-07-15 구자홍 Vocabulary automatic classification device and method
KR19980078071A (en) * 1997-04-24 1998-11-16 구자홍 Scheduling from Natural Memo Sentences
JPH1115664A (en) * 1997-06-23 1999-01-22 Matsushita Electric Ind Co Ltd Agent interface device
WO1999066381A2 (en) * 1998-06-15 1999-12-23 Dejima Corporation Adaptive interaction using an adaptive agent-oriented software architecture

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100611101B1 (en) * 2004-12-07 2006-08-09 한국전자통신연구원 System and Method for Generation of Robot Service Plan
US10460125B2 (en) 2015-08-27 2019-10-29 Samsung Electronics Co., Ltd. Apparatus and method for automatic query processing
WO2019156537A1 (en) * 2018-02-12 2019-08-15 주식회사 머니브레인 Interactive ai agent system and method for actively providing service related to security and like through dialogue session or separate session on basis of monitoring of dialogue session between users, and computer-readable recording medium
KR20220060064A (en) * 2020-11-03 2022-05-11 한국생산기술연구원 A robot post-processing system using haptic technology and control method thereof

Similar Documents

Publication Publication Date Title
JP5453347B2 (en) Universal search interface system and method
JP4991289B2 (en) A search engine supplemented with a URL that gives access to search results from a predefined search query
US7930301B2 (en) System and method for searching computer files and returning identified files and associated files
US6851115B1 (en) Software-based architecture for communication and cooperation among distributed electronic agents
Martin et al. The open agent architecture: A framework for building distributed software systems
US7634509B2 (en) Personal information space management system and method
US5909679A (en) Knowledge-based moderator for electronic mail help lists
US20030182391A1 (en) Internet based personal information manager
US8799302B2 (en) Recommended alerts
US7707142B1 (en) Methods and systems for performing an offline search
US20040230572A1 (en) System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation
US20050234848A1 (en) Methods and systems for information capture and retrieval
US20070239734A1 (en) System and method for browser context based search disambiguation using existing category taxonomy
TW200417197A (en) Separating and saving hyperlinks of special interest from a sequence of web documents being browsed at a receiving display station on the web
JP2009505284A (en) Virtual robot communication format customized by endpoint
JP3896014B2 (en) Information collection system, information collection method, and program causing computer to collect information
KR20060048824A (en) Query graphs
JP2011204228A (en) Mashup infrastructure with learning mechanism
JP2002230035A (en) Information arranging method, information processor, information processing system, storage medium and program transmitting device
Abdurakhmonova et al. Applying Web Crawler Technologies for Compiling Parallel Corpora as one Stage of Natural Language Processing
JP2005346495A (en) Information processing system, information processing method, and information processing program
US7853606B1 (en) Alternate methods of displaying search results
US7499958B1 (en) Systems and methods of replicating all or part of a data store
Cunningham et al. An ethnographic study of technical support workers: why we didn't build a tech support digital library
KR20020027707A (en) Agent system for artficial intelligence type and method for driving the same and computer readable medium the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee