KR101296279B1 - 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법 - Google Patents

규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법 Download PDF

Info

Publication number
KR101296279B1
KR101296279B1 KR1020110001875A KR20110001875A KR101296279B1 KR 101296279 B1 KR101296279 B1 KR 101296279B1 KR 1020110001875 A KR1020110001875 A KR 1020110001875A KR 20110001875 A KR20110001875 A KR 20110001875A KR 101296279 B1 KR101296279 B1 KR 101296279B1
Authority
KR
South Korea
Prior art keywords
rule
execution terminal
server
inference
unit
Prior art date
Application number
KR1020110001875A
Other languages
English (en)
Other versions
KR20120080423A (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 KR1020110001875A priority Critical patent/KR101296279B1/ko
Priority to PCT/KR2011/000638 priority patent/WO2012093746A1/ko
Publication of KR20120080423A publication Critical patent/KR20120080423A/ko
Application granted granted Critical
Publication of KR101296279B1 publication Critical patent/KR101296279B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 규칙을 생성하는 부분과 실행하는 부분으로 나누고, 규칙의 생성은 '규칙서버'에서, 규칙의 실행은 '규칙실행단말기'에서 수행하며, 규칙서버와 규칙실행단말기는 '생성-실행관계'에 있도록 구성되고, 규칙서버에서는 정해진 방법에 의해 규칙집합들을 생성하며, 단말기에서는 서버에서 생성된 규칙을 바탕으로, 단말기가 받아들인 조건을 해석하고 추론을 통하여 액션을 수행하도록 구성된 규칙 생성과 규칙 실행 주체가 분리된 규칙기반 추론장치 및 방법에 관한 것이다.

Description

규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법{Method and Apparatus of Rule Engine System with Separate Rule Server and Rule Executor}
본 발명은 규칙을 생성하고 관리하는 부분과 규칙을 실행하는 부분이 분리된 장치로서, 규칙의 생성은 '규칙서버'에서, 규칙의 실행은 '규칙실행단말기'에서 수행하며, 규칙서버와 규칙실행단말기는 '생성-실행관계(generation-execution relation)'에 있도록 구성되고, 규칙서버에서는 정해진 방법에 의해 규칙집합들을 생성하며, 규칙실행단말기에서는 규칙서버에서 생성된 규칙을 전송받아 저장하고, 규칙서버에서 생성된 규칙을 바탕으로, 규칙실행단말기가 받아들인 조건을 해석하고 추론을 통하여 액션을 수행하도록 구성된 규칙생성과 규칙실행 주체가 분리된 규칙기반 추론장치 및 방법에 관한 것이다.
소프트웨어 개발은 특정 업무에 대한 절차나 규칙을 만들고 이를 프로그래밍 언어로 코딩해 프로그램을 만들고 이를 업무에 사용하는 것이 일반적인 방식이다. 그런데 이 절차나 규칙이 정형화되어 있지 않거나 복잡한 경우에는 이미 프로그램이 완성된 후에도 업무의 내용에 변화가 많이 일어나게 되고 이렇게 되면 절차나 규칙을 다시 수정해야 하고 이에 맞게 프로그램을 새로 수정 개발해야하는 복잡한 절차를 반복해야 한다는 문제점이 있다.
이러한 문제를 해결하는 방법으로 규칙엔진(rule engine)을 사용하는데, 규칙엔진은 이와 같이 자주 바뀌는 비즈니스의 조건이나 환경에 대응하여 소스코드 변경, 실행파일 생성, 프로그램 업그레이드 등 일련의 소프트웨어 작업을 수행할 필요 없이 비즈니스 운용자가 규칙의 추가, 변경 및 삭제를 통해 실시간으로 간편하게 의사결정체계를 바꿀 수 있다는 장점을 가지고 있다.
이러한 규칙엔진은 비즈니스 규칙을 운용하는 인력이 소프트웨어 인력에 의존할 필요 없이 소프트웨어에 대한 깊이 있는 지식을 필요로 하지 않아도 큰 어려움 없이 시스템을 유연하게 운용할 수 있는 높은 사용자 친화성을 가지고 있어 비즈니스 규칙 적용과 정책 적용과 같이 다양한 의사결정 시스템이나 전문가 시스템에서 널리 사용되고 있다. 이러한 비즈니스 규칙 엔진을 적용해 업무 시스템을 개발할 경우 개발 및 유지 보수가 용이하고 업무 환경이 변하더라도 소프트웨어 엔지니어의 개입 없이 현업 담당자가 손쉽게 로직을 수정할 수 있는 장점이 있다.
규칙엔진은 만약 ~이면, ~한다(If ~, then~)와 같은 굉장히 많은 의사결정 조건들을 소프트웨어의 변경 없이 일반적인 형식(general form)의 규칙을 추가, 변경, 삭제 등의 작업을 통하여 사용자가 쉽게 바꿀 수 있는 장점이 있어 뛰어난 범용성을 지니고 있다.
실제 적용 예로서는, Fair Issac사의 Blaze Advisor, ILog사의 JRule 등과 같은 기존의 대표적인 상용 규칙엔진들 및 소스형태로 제공하는 Jess 엔진, 기타 오픈소스 규칙엔진들이 있는데 이들은 주로 패턴 매칭(Pattern matching) 알고리즘인 RETE 알고리즘(Algorithm)을 구현하거나 변형하여 사용하고 있다.
주어진 조건에 어느 규칙을 적용할지를 결정하는 것을 규칙(rule)을 점화(firing)한다고 하는데, 규칙의 개수가 증가함에 따라 점화할 규칙을 찾는데 걸리는 시간이 증가하기 때문에 RETE 알고리즘은 거의 실시간 (또는 매우 빠른) 점화를 위해 특별히 고안된 방식으로서 속도를 높이기 위한 방법을 쓰고 있다.
구체적으로는 알파(alpha) 메모리와 베타(beta) 메모리를 사용하고, 알파 네트워크와 베타 네트워크를 이용하여 변화된 팩트(fact)에 대한 매칭을 통해 구현하기 때문에 큰 용량의 메모리가 사용한다. 그런데 베타 메모리의 숫자는 규칙의 개수나 입력 데이터의 개수에 따라 지수적으로 증가하기 때문에 RETE 알고리즘이 사용하는 메모리의 양 또한 지수적으로 급격히 증가하게 된다. 따라서 규칙이 많고 복잡한 경우에 RETE 알고리즘을 구현하기 위해서는 고성능 전산환경(High computing power)이 필수적으로 요구된다.
따라서, 기존에 사용되는 규칙엔진(범용규칙엔진)은 메모리를 풍부히 쓸 수 있고 계산속도가 빠른 CPU를 가진 대규모 엔터프라이즈 전산 환경에서 주로 사용되어 온 것이다. 이러한 이유로 규칙엔진이 주로 은행이나 전자상거래( E-commerce) 등에 대형 서버 환경에서 널리 사용되어 온 것이다.
그런데 최근 들어서는 기존의 분야 이외에 ICT(Information & Communication Technologies) 분야의 기술이 방송, 환경, 통신, 문화, 교통, 생산 등 각종영역과 컨버전스(convergence)와 융합(Fusion)의 형태를 띠면서 발전해 감에 따라, 위의 대형 엔터프라이즈 서버 뿐 만 아니라, 소형 기기에서도 이와 같은 규칙 엔진을 사용해야 할 필요성과 수요가 증가하고 있다.
예를 들어, 전력분야의 스마트 그리드(Smart grid) 및 통신 분야의 유비쿼터스(Ubiquitous) 및 사물과 사물간의 지능적인 연결(Machine to Machine, M2M) 등의 분야를 보면, 이러한 시스템들은 센서(sensor)들이나 소규모 기기(device)들이 유비쿼터스하게 사용되고 있는데 이 센서나 장치 및 이들로 구성된 소규모 네트워크에서 수집되는 정보를 대형 서버에 보내지 않고 단말 환경에서 주어진 조건에 따라 정해진 규칙대로 작동하도록 운용해야할 필요성이 증가하고 있다. 그런데 이 규칙 또한 운용 정책에 따라 변경되어야 하며, 더 나아가 일반적으로 이러한 규칙을 간편하게 삭제, 변경, 추가할 수 있어야 한다.
이러한 소규모기기들의 작동 규칙은 일반적으로 펌웨어(firmware)에 프로그램 형식으로 내장되어 있는데 이 경우 규칙엔진을 쓰지 않는다면 작동 규칙을 바꾸기 위해서는 우선 소형기기에 내장된 펌웨어를 교체하거나 펌웨어 프로그램을 바꿔야 한다. 다수의 소형 기기들이 연결되어 있는 경우, 운용자가 그 많은 소규모 기기 하나마다 모두 일일이 수작업으로 펌웨어를 교체해야 하는 경우도 생기는데 이에 따른 인력과 시간소요에서 많은 비용을 초래하는 아주 큰 단점이 존재할 수도 있다.
그러나 만약 이러한 소규모기기 내에 규칙엔진이 내장되어 있다면 규칙엔진은 수정 또는 교체하지 않은 채, 간단하게 규칙을 수정하는 것만으로 이러한 작동 규칙을 바꿔 줄 수 있기 때문에 상기 비즈니스 환경에서 규칙엔진을 사용해서 얻는 이점을 그대로 누릴 수 있게 된다.
이러한 소규모기기는 일반적으로 메모리 용량도 매우 부족하고 CPU의 계산능력도 많이 떨어지기 때문에 위에서 소개한 RETE 알고리즘을 쓰는 방식과 같은 대형서버에 적합한 규칙 엔진 기술을 적용하기 곤란하다는 문제점이 있다.
소규모기기는 그 자체로 규칙을 만들고 관리하기에는 메모리가 부족하고, 계산능력도 떨어지며, 사용자 이용환경(user interface)을 제대로 구성하기 어려운 문제점이 있다.
또한, 소규모기기의 사용자가 규칙을 변경하고 적용하려면 기기를 운영하는 환경에 직접 접근할 수 있어야 하는데, 소규모기기는 많은 경우 별도의 디스플레이(display)를 지원하지 않기 때문에 운영환경(platform)에 대한 접근도 매우 힘들다는 문제점을 가지고 있다.
이렇게 되면 규칙 관리자의 입장에서는 소규모기기를 가지고 직접 규칙을 확인하고, 생성 및 삭제, 변경하고 관리하기 매우 불편하기 때문에 이를 보완하는 방법으로 소규모기기와 분리된 운영환경으로 규칙서버를 채택해서 운용하는 방법을 본 발명에서 제시하는 것이다. 규칙서버는 규칙실행단말기에서 필요한 일련의 작업을 사전에 대신해서 수행을 함으로써, 규칙실행단말기에서의 규칙조건을 찾고 실행하는 작업을 단순화할 수 있게 하며 그 결과 소규모기기에서도 규칙엔진 적용이 가능해 지는 장점을 가지고 있다.
규칙은 일반적으로 불 방식의 논리 문장(Boolean logic statement)으로 표현되는데 이를 일반적 형태의 규칙으로 프로세싱하기에는 규칙단말기의 메모리나 계산능력이 부족하기 때문에 규칙단말기가 이를 연산수행하기 용이하도록 서버에서 규칙을 실행하기 쉬운 정형화된 형태로 만들고 전처리 과정을 거쳐 규칙단말기에 전송하도록 하는 것이 유리하다.
이러한 일련의 과정을 거치게 된다면 규칙실행단말기는 최소한의 메모리와 계산능력으로도 규칙을 실행할 수 있다.
가정이나 산업 환경에서 사용되는 소규모기기에는 고성능의 전산환경이 필수적으로 요구되는 기존의 RETE 기반의 범용규칙엔진은 물리적으로나 경제적으로 그 적용에 어려움이 많으므로, 낮은 사양의 단말기에서도 적용 가능하고, 가정 및 산업현장의 실 사용자들이 간편하게 사용할 수 있는 보편적인 규칙 적용이 가능하고, 빠른 적용과 높은 수행능력(high performance)을 내면서 경제적으로 비용이 싸며, 어떤 환경 및 기기에서도 사용할 수 있는 규칙엔진 기술 및 시스템의 개발이 요구된다.
본 발명을 해결하려는 과제는 크게 3 가지이며, 그 하나는 규칙서버와 규칙실행단말기가 분리되는 규칙엔진을 이루는데 있고, 다른 하나는 사양이 낮은 하드웨어 및 소프트웨어에서도 동작하는 규칙엔진을 이루는데 있으며, 또 다른 하나는 새로운 규칙의 적용이 간편한 규칙엔진을 구비한 규칙생성과 규칙실행 주체가 분리된 규칙기반 추론장치 및 방법을 제공하는데 있다.
본 발명 과제의 해결 수단은 규칙을 생성하는 규칙서버와 규칙을 실행하는 규칙실행단말기로 구성되며, 규칙서버는 규칙집합 및 규칙집합과 관련된 일련의 데이터를 생성하고, 규칙서버는 상기 생성한 규칙집합을 규칙실행단말기에 전달하며, 규칙실행단말기는 상기 전달된 규칙집합을 저장하고, 규칙실행단말기는 상기 저장된 규칙집합을 실행하도록 구성된 규칙서버와 규칙실행단말기가 분리된 규칙기반 추론장치를 구현하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 규칙서버 입력부를 통해서 입력되는 규칙을 받아서 규칙을 생성하는 규칙 생성부와, 생성된 규칙을 관리하는 규칙 관리부와, 모든 규칙 및 규칙과 관련된 정보 등을 저장하는 규칙 데이터베이스, 필요한 데이터를 주고받기 위한 규칙통신부(전송부, 수신부)로 이루어진 규칙서버를 구비한 규칙서버와 규칙실행단말기가 분리된 규칙기반 추론장치를 구현하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 외부에 설치된 센서 또는 외부 장치로부터 입력되는 신호를 수신받는 감지부(input port)와, 데이터의 신속한 처리를 위하여 미리 정의된 논리에 의하여 처리하는 입력전처리부와, 규칙 및 데이터를 저장 관리하는 규칙관리부와, 해당하는 규칙을 실행하는 규칙실행부와, 필요한 데이터를 주고받기 위한 규칙통신부(전송부, 수신부)와 규칙추론 결과를 출력하는 출력부로 이루어진 규칙실행단말기를 구비한 규칙서버와 규칙실행단말기가 분리된 규칙기반 추론장치를 구현하는데 있다.
본 발명의 또 다른 과제의 해결 수단은 규칙서버에서 규칙집합을 생성하는 단계를 거쳐서, 규칙서버에서 생성한 규칙집합을 저장 관리하고, 규칙서버의 규칙통신부를 통해서 각 규칙실행단말기에 해당 규칙을 전송하는 단계를 거치고, 상기 규칙서버에서 전달된 규칙을 전송받아서 규칙실행단말기에 저장하고, 저장된 규칙을 조건에 맞게 실행하는 단계로 이루어진 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법을 제공하는데 있다.
본 발명에 따른 규칙생성과 규칙실행 주체가 분리된 규칙기반 추론장치 및 방법에 의하여 얻어지는 작용효과는 크게 3가지로 구분되며, 그 하나는 규칙서버와 규칙실행 단말기가 분리됨으로써, 범용적인 규칙엔진을 만들어 다양한 환경에 폭넓게 적용될 수 있도록 하고, 다른 하나는 고성능 환경에서 작동하는 기존의 상용 규칙엔진으로는 적용할 수 없는 사양이 낮은 단말기(하드웨어 및 소프트웨어)에서도 작동하는 규칙엔진을 구현하는데 있으며, 또 다른 하나는 변화무쌍하게 변하는 다양한 환경에 대응하여, 최적화된 솔루션으로 신속하게 처리하는데 있다.
도 1은 본 발명에 따른 규칙서버의 구성을 도시한 것이다.
도 2는 본 발명에 따른 규칙실행단말기의 구성을 도시한 것이다.
도 3은 본 발명에 따른 규칙실행단말기의 업데이트 기능에 대하여 규칙서버와 규칙실행단말기가 네트워크로 연결되어 있는 경우에 대해 도시한 것이다.
도 4는 본 발명에 따른 규칙실행단말기의 하드웨어 구성에 대하여 도시한 것이다.
도 5는 규칙서버와 규칙실행단말기가 네트워크로 연결되어 있는 경우, 풀(pull) 방식에 의한 규칙 업데이트의 과정을 도시한 것이다.
도 6은 규칙서버와 규칙실행단말기가 네트워크로 연결되어 있는 경우, 푸시(push) 방식에 의한 규칙 업데이트의 과정을 도시한 것이다.
도 7은 규칙서버에서 생성된 규칙집합의 비트열을 규칙실행단말기의 CPU 레지스터 길이에 맞게 자르는 과정을 도시한 것이다.
도 8은 규칙서버에서 생성된 규칙집합을 비트열을 규칙실행단말기의 CPU 레지스터 길이에 맞게 자르는 과정에서, 레지스터의 길이보다 작은 조각이 발생할 경우 모자란 비트열을 임의의 수로 채우는 패딩(padding) 과정을 도시한 것이다.
<도면의 주요부에 대한 부호의 설명>
11 ; 규칙생성부 12 ; 규칙관리부
13 ; 규칙데이터베이스 14 ; 규칙통신부
21 ; 감지부 22 ; 입력 전처리부
23 ; 규칙통신부 24 ; 규칙관리부
25 ; 규칙실행부 26 ; 내부데이터코드
27 ; 입력코드 28 ; 원자진술처리부
29 ; 출력부
41 ; CPU 42 ; RAM
43 ; Flash Memory 44 ; ROM
본 발명을 실시하기 위한 구체적인 내용에 대하여 살펴본다. 본 발명에 따른 규칙 생성과 규칙 실행 주체가 분리된 규칙기반 추론장치는 규칙을 생성하는 부분과 실행하는 부분으로 나뉜다. 규칙을 생성하는 부분을 '규칙서버', 규칙을 실행하는 부분을 '규칙실행단말기'라고 부르기로 한다. 따라서 규칙서버와 규칙실행단말기는 '생성-실행관계(generation-execution relation)'에 있다고 할 수 있다. 서버에서는 정해진 수단에 의해 규칙집합들을 생성한다.
반면에, 규칙실행단말기에서는 규칙서버에서 생성된 규칙을 바탕으로, 규칙실행단말기가 입력받은 데이터를 기반으로 규칙서버에서 전송받은 규칙의 추론을 통하여 적절한 규칙을 점화하고 결과를 출력한다. 규칙서버에서 생성된 규칙집합이 단말기에 전달되는 방법은 여러 가지가 있을 수 있다.
비즈니스 환경은 물론이고 실생활에서 구동되는 기기들에 포함되어 있는 하드웨어의 상세한 제원(specification)이나 구동 환경은 다양하게 존재할 수 있다. 각 기기들은 다양한 연산장치(CPU)를 사용할 수 있고, 운영체제의 종류도 다양하다.
다양한 운영체제는 핵심 커널의 버전에 따라서 어플리케이션이 동작하는 방법이 달라지기도 한다. 그리고 지극히 간단한 구동장치의 경우에는 별도의 운영체제(OS: Operating System)가 탑재되어 있지 않을 수도 있다. 실생활에서는 이렇게 다양한 기기들이 운용이 되기 때문에, 다양한 기기들이 주어진 동일한 조건에 동일하게 반응하도록 하는 일은 번거로운 작업이다.
본 발명은 규칙실행단말기의 다양한 하드웨어 제원과 구동 환경과 무관하게 모두 지원할 수 있는 규칙기반 추론방법 및 장치를 제공하는 것이다. 즉, 본 발명에 따르면 규칙실행단말기에 규칙엔진이 장착되고, 장착된 규칙엔진을 구비한 규칙실행단말기에서 구동되는 OS의 종류나 유무, 하드웨어 제원과 구동환경과 등과 관계없이 동일한 조건에 규칙실행단말기가 동일하게 반응하도록 규칙이 동일하게 실행되며, 또한 규칙의 변경, 삭제, 추가 등도 상기 규칙실행단말기의 하드웨어 및 소프트웨어 제원이나 환경과 무관하게 동일하게 이루어진다.
규칙실행단말기에서는 조건에 맞는 규칙집합을 검색할 수 있고, 검색된 규칙집합에 명시된 조건과 실행의 관계에 따라 최종 점화되는 규칙을 정할 수 있다.
규칙실행단말기에 포함되는 최소한의 하드웨어 구성요소는 중앙처리장치(CPU), 비휘발성메모리(ROM, 플래시메모리 등)로 이루어져 있다. 중앙처리장치는 규칙실행단말기에서 수행되는 모든 연산을 수행한다. 비휘발성메모리에는 규칙서버에서 생성되어 규칙실행단말기에 이식된 변동되지 않는 상주프로그램을 탑재시킴으로써, 입력 데이터를 해석하고, 이를 바탕으로 서버에서 생성된 규칙집합 중 입력 데이터에 맞는 규칙을 점화하기 위한 알고리즘이 저장되어 있다.
플래시메모리는 규칙기반추론장치의 이용자에 의해 변동이 가능한 규칙집합의 데이터베이스(DB)가 설치되는 영역이기도 하다. 규칙집합의 데이터베이스는 이용자에 의해 얼마든지 변동이 가능하므로, 서버에서 생성된 규칙집합의 데이터베이스는 플래시메모리에 저장되는 것이 바람직하다.
규칙집합을 검색하고 점화하기 위한 알고리즘이 복잡하거나, 또는 규칙집합 데이터베이스의 물리적인 개수가 많은 경우에 비휘발성메모리를 이용하는 것은 연산속도의 수행에 있어서 매우 비효율적일 수 있다. 이런 경우를 위해 규칙실행단말기에는 휘발성메모리(RAM)를 하드웨어 구성요소에 포함할 수 있다.
휘발성메모리가 포함된 규칙실행단말기에서는 전원이 켜짐과 동시에 비휘발성메모리에 있는 알고리즘을 휘발성메모리에 로드(load)하게 되는데, 이러한 과정을 부팅(booting)이라고 한다.
중앙처리장치에서는 휘발성메모리에 복사된 알고리즘을 이용함으로써 빠른 속도로 연산을 수행할 수 있다.
전술된 과정은 모두 별도의 운영 프로그램(OS)을 필요로 하지 않아도 구현이 가능하며, 메모리 등 리소스의 관리와 시간 동기화, CPU의 시간 스케줄링 등의 작업이 필요한 경우에는 이에 적당한 운영 프로그램이 함께 탑재되어 수행될 수 있다. 위에서 설명된 모든 하드웨어는 하나의 칩셋에 담겨 운영되는 원 칩 솔루션(One chip solution, One chip microprocessor)도 포함하고 있다.(도 4 참조)
앞서 기술한 바와 같이 본 발명은 규칙실행부의 구동환경에 구애받지 않으므로 다양한 환경에서 유연하고 범용적으로 적용될 수 있는 규칙기반 추론장치이다.
본 발명에 따른 규칙기반 추론장치의 기술적 구성에 대하여 살펴본다.
일반적으로 규칙(rule)은 만약 ~하면, ~한다(IF~THEN~)의 형태로 이루어져 있다. 구체적으로 살펴보면 'IF'이하에서 'THEN'까지를 조건부(condition part)라 부르고, LHS(Left-Hand Side)라고도 한다. 그리고 'THEN' 다음에 나오는 부분을 실행부(action part) 또는 결론부(conclusion part)라 부르고 RHS(Right-Hand Side)라고 쓴다.
위에서 언급한 내용을 바탕으로 규칙을 기호로 표현하면 LHS→RHS가 되며, 따라서 임의의 규칙 R을 'R: LHS→RHS'와 같은 형태로 아래에서는 쓰기로 한다.
또한 센서와 같은 기기나 사물 또는 주어진 상황에 따라 조건이 다양하게 표현될 수 있는데 기기의 속성과 상황을 나타내는 조건을 '단위 논리식'이라고 부르고, '∧'(and), '∨'(or), '∼'(not) 등으로 단위논리식을 연결하여 표현할 수 있다.
다음은 규칙의 생성(rule generation)에 대하여 살펴본다.
규칙실행단말기에서는 규칙집합의 변환이나 최적화를 할 수 없는 적은 용량의 메모리나 간단한 연산만 가능한 장치로 구성되어 있기 때문에 규칙서버에서 각 규칙실행단말기의 규격과 성능에 맞도록 미리 변환하거나 최적화하여 전달되어야 한다.
다음은 규칙기반 추론장치에 탑재되는 규칙집합 변환에 대하여 살펴본다.
사전에 정의된 규칙은 규칙실행단말기에서 이해될 수 있도록 표준화되고 코드화하는 작업을 거친다. 이러한 과정을 규칙집합의 생성, 변환 및 점화라 하며 다음의 순서를 따른다.
(T1) 규칙작성
각 규칙마다 규칙조건부(LHS)를 구성하는 원자진술문(atomic statement)을 생성하며, 그 조합으로 LHS를 작성한다.
(T2) 규칙변환
변환된 원자진술문을 규칙(rule)으로 변환한다. 이 과정에서 조건부의 규칙을 DNF(disjunctive normal form)로 바꾸며, 규칙이 분리될 수 있으면 분리한다. DNF에서 '∧'(and), '∨'(or), '∼'(not) 등의 단위논리식으로 연결된 부분 하나하나를 규칙으로 분리하며, 이렇게 분리된 규칙의 LHS는 하기 기술할 논리곱(Logical Product) 형식을 만족하게 된다.
(T3) 비트벡터 생성
DNF 형식의 규칙들을 비트벡터로 표시한다.
(T4) 규칙 전처리
규칙서버에서 규칙실행 단말기로 규칙을 보내기 전에, 규칙서버에서 규칙의 검색 및 점화 등을 빠르게 하기 위해서 미리 정의된 방법에 의하여 처리하는 규칙 전처리부(preprocessor)가 탑재되어 있다.
(T5) 규칙점화
상기 전처리된 규칙 중 어느 것이 어떻게 선택되어 점화되는 지에 관한 알고리즘을 기술한다.
아래에 상기 (T1)부터 (T5)까지의 과정에 대한 이해를 돕기 위해 구체적인 예를 들어 예시하기로 한다.
다음은 본 발명에 따른 구체적인 규칙집합 변화의 예를 살펴본다.
후술될 본 발명에 따른 구체적인 규칙집합 변화의 예는 본 발명에 따른 규칙 생성과 규칙 실행 주체가 분리된 규칙기반 추론장치의 하나의 구체적인 실시 예이다. 이는 앞서 기술한 본 발명의 기술적 구성의 하나의 실시 예이며, 본 발명의 보호범위는 후술될 실시 예에 의하여 한정되지는 않는다.
규칙기반 추론장치를 사용하여 적용할 규칙이 아래와 같이 정의되었다고 하자.
규칙) 온도센서1의 온도가 27도 이상이고 습도센서의 습도가 30퍼센트 이하이거나 기압센서의 기압이 1기압 이하이면, 환기구를 연다.
규칙서버는 위에서 정의된 규칙 내용을 조건부와 실행부를 분리하여, 규칙문장을 작성한다.
조건부) 온도센서1의 온도가 27도 이상이고, 습도센서의 습도가 30퍼센트 이하이거나 기압센서의 기압이 1기압 이하
실행부) 환기구를 연다
(T1) 규칙 작성
상기 규칙의 규칙조건부(LHS)를 구성하는 원자진술문(atomic statement)을 생성하며, 그 조합으로 LHS를 작성한다. 상기 이 과정에서 원자진술문으로 바꾸는 과정을 서버에서 미리 정의한다. 상기 예에 따른 원자 진술문은 아래와 같다.
원자진술문) A1: 온도센서1의 온도가 27도 이상
A2: 습도센서의 습도가 30퍼센트 이하
A3: 기압센서의 기압이 1기압 이하
상기 생성된 원자진술문을 규칙의 조건부(LHS)로 변환한다. 위의 예로부터 LHS를 작성하면 다음과 같다.
A1∧(A2∨A3)
(T2) 규칙변환
이 과정에서 조건부의 규칙을 논리곱 표준 형식(DNF)으로 바꾸며, 아래와 같이 규칙이 분리될 수 있으면 분리한다.
위의 규칙문장을 DNF (Disjunctive Normal Form) 형태로 변환하면 다음과 같다.
A1∧(A2∨A3) = (A1∧A2)∨(A1∧A3)
이 규칙문장에서 A1∧A2가 의미하는 바는'온도센서1의 온도가 27도 이상이고 습도센서의 습도가 30퍼센트 이하'이다. A1∧A3 는 '온도센서1의 온도가 27도 이상이고 기압센서의 기압이 1기압 이하'일 경우를 의미한다. 이 규칙은 A1∧A2와 A1∧A3가 or 연산자로 연결이 되어있기 때문에, A1∧A2와 A1∧A3 중의 하나만 조건이 성립되어도 규칙이 점화(firing)된다. 점화가 된다는 의미는 그 결과 RHS가 실행된다는 것을 의미하며, 즉 환기구를 여는 것이다.
이로부터 이 규칙과 동일한 아래의 2개의 분리된 규칙을 만들 수 있다.
규칙1:
조건부: A1∧A2
실행부: 환기구를 연다
규칙2:
조건부: A1∧A3
실행부: 환기구를 연다
이와 같이 규칙의 조건부(LHS)가 원자진술문의 논리곱(Logical Product) 형태로만 쓰여진 논리식을 본 발명에서는 LPF(Logical Product Form)이라 부르기로 한다. 또한 항상 이 규칙변환과정을 거쳐서 생성된 모든 규칙은 그 LHS가 LPF(Logical Product Form)을 만족한다고 전제한다.
보다 상세하고 다양한 규칙집합을 가정하고 예를 들어보도록 하자.
어떤 규칙기반 추론장치의 규칙실행단말기에는 다음과 같은 7개의 센서가 연결되어 있다.
센서1(S1): 온도센서. 실내온도 측정.
센서2(S2): 온도센서. 실외온도 측정.
센서3(S3): 습도센서. 실내습도 측정.
센서4(S4): 습도센서. 실외습도 측정.
센서5(S5): 조도센서. 실내조도 측정.
센서6(S6): 조도센서. 실외조도 측정.
센서7(S7): 압력센서. 실내압력 측정.
그리고 상기의 7개의 센서를 이용하여 구성할 규칙은 다음과 같이 6개가 있다.
규칙1(R1): 실내온도와 실외온도가 모두 27도 이상이면 에어컨을 가동한다.
규칙2(R2): 실내온도가 27도 이상이고, 실내습도가 90퍼센트 이상이면 에어컨을 가동한다.
규칙3(R3): 실외온도가 27도 미만이고, 실내습도가 90퍼센트 미만이면 환기구를 연다.
규칙4(R4): 실내온도가 27도 미만이고, 실외온도가 27도 미만이고, 실외습도가 50퍼센트 이상이고, 실외조도가 5천 룩스(Lux)이상이고, 실내압력이 1기압 미만이면, 환기구를 닫고 에어컨을 가동한다.
규칙5(R5): 실내온도가 27도 미만이고, 실외온도가 27도 미만이고, 실외습도가 50퍼센트 이상이고, 실외조도가 5천 룩스(Lux)이상이고, 실내압력이 1기압 이상이면, 에어컨을 가동한다.
규칙6(R6): 실내온도가 27도 이상이고, 실외온도가 27도 미만이면, 에어컨을 끄고 환기구를 연다.
위의 규칙으로부터 원자진술문을 작성하면 아래와 같이 된다.
A1: 실내온도(센서1)가 27도 이상
A2: 실외온도(센서2)가 27도 이상
A3: 실내습도(센서3)가 90퍼센트 이상
A4: 실외습도(센서4)가 50퍼센트 이상
A5: 실내조도(센서5)가 3천 룩스(Lux) 이하
A6: 실외조도(센서6)가 5천 룩스(Lux) 이상
A7: 실내압력(센서7)이 1기압 이상
이로부터 각 규칙의 LHS를 구성하면 아래와 같이 된다.
규칙1(R1): A1∧A2
규칙2(R2): A1∧A3
Figure 112013018294248-pat00047
여기에서 원자진술문 위의 막대기(bar)는 그 진술물의 부정(negation)을 의미한다. 즉, A1이 '실내온도가 27도 이상'을 의미한다면,
Figure 112011001465338-pat00002
는 '실내온도가 27도 미만'을 나타내게 된다.
상기 규칙들의 실행부(RHS)는
B1: 에어컨을 가동한다
B2: 환기구를 연다
라고 하면 상기 규칙은 아래와 같이 표시된다.
R1: A1∧A2 → B1
R2: A1∧A3 → B1
Figure 112013018294248-pat00048
다만, 규칙엔진에서 중요하고 어려운 부분은 주어진 데이터(조건)에 맞는 규칙을 찾는 것인데, 이 규칙을 찾는 과정은 LHS를 보고 결정되기 때문에 아래에서는 주로 LHS에 주안점을 두어 기술하도록 한다.
[전처리의 방법]
(T3) 비트벡터 생성
아래에서는 규칙의 조건부(LHS)를 이루는 부분을 Ra와 Rs라는 두 개의 요소로 분리하여 표시하는 방법을 기술하도록 한다. Ra는 규칙문장에 어떤 원자 진술문(atomic statement)이 관여하는지를 표시한다. 예를 들어 상기 규칙4(R4)의 조건부(LHS)에는 부정이나 긍정의 구분을 무시한다면 A1, A2, A4, A6, A7의 원자진술문이 관여하게 되며 이 사실을
Ra = 1101011
의 비트로 표시한다. 다시 부연하면 Ra는 이 조건부(LHS)에 나타나는 원자진술문이 A1, A2, A4, A6, A7라는 것을 표시한다.
Ra를 통해 어느 원자진술문이 규칙4(R4)에 나타나는지는 알 수 있지만 실제로 각 원자진술문이 긍정의 형태로 나타나는지 부정의 형태로 나타나는지를 정확히 기술해야 규칙4(R4)를 정확히 기술할 수 있게 된다. 이를 위해 새로운 비트벡터 Rs를 정의하는데 원자진술문이 긍정 형태로 나타나는 경우에만 그에 해당하는 비트(bit)를 1로 쓰도록 한다. 규칙4(R4)에서는 A4와 A6만 긍정 형태로 나타나기 때문에 Rs
Rs = 0001010
로 표시된다. 이러한 방법에 따라 위에서 제시된 6개의 규칙을 모두 7비트(bit) 형태로 변환하면 다음과 같다.
R1: Ra 1 = 1100000, Rs 1 = 1100000
R2: Ra 2 = 1010000, Rs 2 = 1010000
R3: Ra 3 = 0110000, Rs 3 = 0100000
R4: Ra 4 = 1101011, Rs 4 = 0001010
R5: Ra 5 = 1101011, Rs 5 = 0001011
R6: Ra 6 = 1100000, Rs 6 = 1000000
(T4) 규칙 전처리
규칙실행단말기는 충분한 연산성능을 보장하지 못하는 저사양의 기종일 수 있다. 따라서 규칙집합이 복잡하고 수가 많을 경우에는 충분한 실행능력을 기대할 수 없다. 따라서 규칙실행단말기에서 조건에 맞는 규칙을 검색하고 점화하기 위해 필요한 주요 연산은 규칙서버에서 미리 사전에 수행하고, 단말기에서는 간단한 비트연산 만으로 규칙을 실행할 수 있게 한다. 이러한 규칙 전처리 과정에 대하여 살펴본다.
미리 정의해둔 해시(Hash) 함수의 정의에 따라서, 참 해시 함수(True hash function) 값을 표 1에서와 같이 구할 수 있다. 표1에서
h(1) = {1, 2, 4, 5, 6}
이라 쓰여져 있는데, 그 의미는 아래와 같다.
위에서 정의된 6개의 규칙 중 A1(또는
Figure 112011001465338-pat00004
)이 LHS에 포함되어 있는 규칙은 R1, R2, R4, R5, R6 이며, 이 사실을 h(1) = {1, 2, 4, 5, 6}으로 기록한 것이다. 바꿔 말하면, Ra 1, Ra 2, Ra 3, Ra 4, Ra 5, Ra 6 중 첫 번째 비트(bit)가 1인 규칙이 R1, R2, R4, R5, R6라는 뜻이다. 표 1은 참 해쉬 함수(True Hash Function)이다.
Figure 112011001465338-pat00005
이를 비트연산이 용이하도록 아래와 같이 H1, H2, H3, H4, H5, H6, H7의 비트벡터로 변환해서 쓴 것이 표2이다. 표 2는 참 해쉬 테이블(True Hash Table)이다.
Figure 112011001465338-pat00006
전처리 과정은 상기 해싱 이외에도 검색을 쉽게 하기 위해 Tree등 다양한 방법을 구사할 수 있는데 이러한 전처리의 기술적 구성의 변형은 앞서 설명한 전처리의 기술적 구성으로부터 이 기술분야에서 통상의 지식을 가진 자라면 누구나 쉽게 이룰 수 있는 것으로서 본 발명의 보호범위를 벗어나지 않는다.
(T5) 규칙점화
다음은 본 발명에 따른 규칙실행 알고리즘(rule firing algorithm)에 대하여 살펴본다.
규칙엔진이 적용된 상황에서 아래와 같은 상황이 발생했다고 하자.
실내온도가 29도이고, 실외온도가 25도이며, 실내습도는 95퍼센트이고, 실외습도가 60퍼센트이며, 실내압력이 1.3기압.
이를 기반으로 각 원자진술문의 진위를 표시하면
A1: True(1)
A2: False(0)
A3: True(1)
A4: True(1)
A5: N/A
A6: N/A
A7: True(1)
이 입력데이터(D)를 보면, 입력데이터에 관여하는 원자진술문은 A1, A2, A3, A4, A7이므로, 규칙을 표현하는 Ra와 같은 방법으로 Da
Da = 1111001
로 표시하도록 한다. 이때 실제로 '참(True)' 값을 갖는 원자진술문은 A1, A3, A4, A7이므로, Rs 를 표시하는 것과 같은 방법으로 Ds 를 아래와 같이 정의한다.
Ds = 1011001
규칙실행은 다음의 2단계로 구성되어 있다.
규칙실행 1단계: 후보규칙(candidate rule) 선별
규칙실행 2단계: 점화될 규칙 선별
[규칙실행 1단계]
우선 1단계 작업에 대해 기술하기로 한다. 상기 예를 든 바와 같이 입력데이터로부터 Da 와 Ds의 비트벡터를 구성하여 입력으로 사용한다.
이 과정을 기술하기 위해 새로운 비트벡터 연산자 ⊙를 모든 비트벡터의 비트 값이 1인 경우에만 연산자의 값이 1이 되고, 나머지 경우는 0이 되도록 정의한다. 즉, 예를 들면
⊙(1111111) = 1
⊙(1101001) = 0
⊙(0010010) = 0
...
⊙(0001000) = 0
이 됨을 알 수 있다.
규칙실행 1단계 과정을 상기(T4)에서 기술한 규칙들 R1, R2, R3, R4, R5, R6 와 상기 예로 든 입력 비트벡터
Da = 1111001
Ds = 1011001
을 가지고 설명하기로 한다.
우선 i=1, 2, 3, 4, 5, 6에 대해 bj(B)를
bj(B) = ⊙(~ Ra i
Figure 112011001465338-pat00007
Da)
로 정의하고, 이로부터 비트벡터 B의 i번째 비트가 bj(B) 가 되도록 정의한다. (여기서
Figure 112011001465338-pat00008
는 bit-wise OR 연산을 의미한다.) 이를 i=1, 2, 3, 4, 5, 6에 대해 적용하면 아래와 같은 결과를 얻는다.
i = 1:b1(B):=⊙((~ Ra 1)
Figure 112011001465338-pat00009
Da) = ⊙(0011111
Figure 112011001465338-pat00010
1111001)=⊙(1111111)=1
i = 2:b2(B):=⊙((~ Ra 2)
Figure 112011001465338-pat00011
Da) = ⊙(0101111
Figure 112011001465338-pat00012
1111001)=⊙(1111111)=1
i = 3:b3(B):=⊙((~ Ra 3)
Figure 112011001465338-pat00013
Da) = ⊙(1001111
Figure 112011001465338-pat00014
1111001)=⊙(1111111)=1
i = 4:b4(B):=⊙((~ Ra 4)
Figure 112011001465338-pat00015
Da) = ⊙(0010100
Figure 112011001465338-pat00016
1111001)=⊙(1111101)=0
i = 5:b5(B):=⊙((~ Ra 5)
Figure 112011001465338-pat00017
Da) = ⊙(0010100
Figure 112011001465338-pat00018
1111001)=⊙(1111101)=0
i = 6:b6(B):=⊙((~ Ra 6)
Figure 112011001465338-pat00019
Da) = ⊙(0011111
Figure 112011001465338-pat00020
1111001)=⊙(1111111)=1
따라서 비트벡터 B는
B = 111001
이 됨을 알 수 있다. 일반적으로 임의의 비트벡터 V에 대해 연산자 Bj
Figure 112011001465338-pat00021
로 정의한다.
이 비트벡터 B로부터 비트가 1이 되는 위치에 대응하는 규칙이 후보규칙이 된다. 즉 상기 비트벡터 B의 경우 비트 1, 2, 3, 6의 값이 1이므로 R1, R2, R3, R6 가 후보 규칙이 된다.
B 벡터를 찾는 또 다른 방법은 다음과 같다.
j = 0 인 경우에는, A(0):= 0000000, 이라 하고,
j가 1부터 규칙의 총 개수인 7까지는 다음의 루프 연산을 수행한다.
bj(Da)=1 이면, A(j):= 0000000 라고 놓고,
bj(Da)=0 이면, A(j):= Hj 라고 둔다.
여기서, Hj 는 위에서 정의한 참 해시(true hash) 벡터이다.
A(0):=A(0)
Figure 112011001465338-pat00022
A(j) 라고 재정의 하고,
j:=j+1 으로 j 값에 1을 더한다.
최종 A(0) 로부터, B:= ~(A(0)), 여기서, ~ 는 bit-wise negation 연산자이다.
위의 연산을 차례로 수행하면 아래의 결과를 얻는다.
j=1이면, b1(Da)=1이므로, A(1)=000000;A(0)=000000
Figure 112011001465338-pat00023
000000=000000
j=2이면, b2(Da)=1이므로, A(2)=000000;A(0)=000000
Figure 112011001465338-pat00024
000000=000000
j=3이면, b3(Da)=1이므로, A(3)=000000;A(0)=000000
Figure 112011001465338-pat00025
000000=000000
j=4이면, b4(Da)=1이므로, A(4)=000000;A(0)=000000
Figure 112011001465338-pat00026
000000=000000
j=5이면, b5(Da)=0이므로, A(5) = H5 =000000;A(0)=000000
Figure 112011001465338-pat00027
000000=000000
j=6이면, b6(Da)=0이므로, A(6) = H6 =000110;A(0)=000000
Figure 112011001465338-pat00028
000110=000110
j=7이면, b7(Da)=0이므로, A(7) =000000;A(0)=000000
Figure 112011001465338-pat00029
000110=000110
B:= ~(A(0))=111001
으로 위에서 찾은 결과와 마찬가지임을 알 수 있다.
[규칙실행 2단계]
상기 선별된 후보규칙 중 실제로 점화되는 규칙은 그 Rs값이 Ds와 정확히 일치하는 것들이다. 위에서 든 예를 계속하면, R1, R2, R3, R6 가 후보규칙이므로 그 중 아래와 같은 연산을 통해 마지막으로 점화될 규칙을 결정한다.
i=1: Ra 1
Figure 112011001465338-pat00030
Ds = 1100000
Figure 112011001465338-pat00031
1011001=1000000 ≠ Rs 1이므로, 실행에서 제외한다.
i=2: Ra 2
Figure 112011001465338-pat00032
Ds = 1010000
Figure 112011001465338-pat00033
1011001=1010000 = Rs 2이므로, 실행한다.
i=3: Ra 3
Figure 112011001465338-pat00034
Ds = 0110000
Figure 112011001465338-pat00035
1011001=0010000 ≠ Rs 3이므로, 실행에서 제외한다.
i=6: Ra 6
Figure 112011001465338-pat00036
Ds = 1100000
Figure 112011001465338-pat00037
1011001=1000000 = Rs 6이므로, 실행한다.
단, 여기서
Figure 112011001465338-pat00038
는 bit-wise AND 연산자이다.
마지막으로 점화되는 규칙이 다수일 경우, 하나의 규칙만 점화해야 하는 경우가 많다. 이 문제는 전통적 RETE 알고리즘에서도 똑같이 나타나는바 RETE에서 쓰는 방법과 동일한 방법을 써서 최종 점화되는 규칙을 정할 수 있다. 이 방법은 다양한데 각 규칙의 우선순위(priority)를 정해 2단계 점화되는 규칙 중 제일 높은 점수가 부여된 것을 선택하는 것이 통례이다. 우선순위를 정하는 방법은 최근 버전 또는 최근에 수행된 것에 높은 점수를 부여하는 수도 있고, Ds와 Rs의 해밍거리(Hamming distance)가 작은 것을 우선순위의 점수가 높은 것으로 선택할 수도 있으며, 이외에도 실로 다양한 방법이 있다.
[기타 단순 규칙점화 알고리즘]
만약 규칙의 개수가 많지 않은 경우에는 상기 방법을 사용하지 않고 모든 규칙에 대해 점화가 가능한지 모두 전수 체크해 보는 단순한 방법을 써도 규칙 실행 속도가 충분히 빨라 사용에 지장이 없을 경우 상기 T3 및 T4 과정을 생략하고 단순 전수 체크 방법을 사용하여도 충분하다.
[규칙기반 장치 및 방법의 기술적 구성]
다음은 앞서 기술한 기술적 구성을 구비한 본 발명에 따른 규칙기반 장치 및 방법에 대하여 살펴본다.
서버로부터 단말기가 규칙집합을 다운로드받을 수 있을 때, 상기 서버와 단말기는 '생성-실행관계(generation-execution relation)'에 있다고 하고, 상기 서버를 구체적으로는 '규칙서버', 상기 단말기는 '규칙실행단말기'라고 부르기로 한다.
규칙실행단말기의 하드웨어 성능은 저사양이고, 구성 또한 무척 단순하지만, 규칙서버의 컴퓨팅 환경은 필요시에 얼마든지 높은 사양을 사용해도 무방하다. 규칙실행단말기에서 실행되기 위한 규칙집합을 생성하는 작업에 동원되는 리소스의 양과 크기가 얼마인지에 대해서는 특별히 정해진 기준선이 존재하지 않는다. 용도와 목적에 맞게 얼마든지 높은 최고 성능의 규칙서버를 구현할 수 있다.
생성-실행관계를 구성하는 장치는 크게 규칙서버와 규칙실행단말기로 구성되어 있으며, 차례대로 규칙서버, 규칙실행단말기에 대해 살펴본다.
[규칙서버]
다음은 본 발명에 따른 규칙기반 추론장치 중에서 규칙서버(rule server)는 앞서 기술한 (T1), (T2), (T3), (T4)의 기능을 수행하는데, 규칙서버의 기술적 구성에 대하여 살펴본다.
규칙서버는 타겟이 되는 규칙실행단말기의 대한 모든 제원(specification) 및 구성정보, 즉 후술될 '규칙실행단말기' 부분에서 규칙실행단말기의 입력포트와 내부데 데이터포트 및 출력포트 구성 정보, RAM, ROM, Flash 등의 메모리 관련 정보, CPU의 종류와 제원(규격), 통신 모듈의 유무 및 제원, OS의 유무 및 종류와 버전, 탑재한 소프트웨어, UI 관련 정보 등을 포함한 단말기의 하드웨어 및 소프트웨어에 관한 모든 정보를 내장하도록 한다.
규칙서버는 이를 기반으로 규칙실행단말기에서 사용자가 의도하는 대로 실행될 수 있는 규칙을 생성하고, 저장 관리하며, 전송하는 기능 및 수단을 구비하고 있다. 또한 규칙서버는 규칙실행단말기가 실제 상황에서 주어진 입력 정보에 따라 어떻게 작동하는지를 사용자가 검증해 볼 수 있는 시뮬레이터(simulator) 모듈을 포함하고 있다.
시뮬레이터(simulator) 모듈은 본 발명에 따라 제공되는 다양한 규칙을 실제 상황에 적용하기 전에 실제 상황과 동일하게 수행할 수 있도록 설계 제작된 소프트웨어로 규칙서버 관리부 일측에 저장 관리되며, 필요할 경우에 해당 시뮬레이션 프로그램을 실행시켜 해당규칙이 정확하게 동작하는지 여부를 확인할 수 있다.
규칙서버는 규칙생성부, 규칙 데이터베이스, 규칙관리부, 규칙통신부(송신부, 수신부)로 구성되어 있다(도 1 참조). 규칙생성부(11)는 규칙을 생성하며 이렇게 생성된 규칙은 규칙관리부(12)로 전달이 되며, 이 과정에서 발생하는 모든 규칙 및 관련 정보 등은 규칙 데이터베이스(13)에 저장된다. 규칙관리부(12)에서는 규칙을 내려 보낼 규칙실행단말기의 플랫폼이나 하드웨어 규격과 성능에 맞게 규칙집합을 변환하고, 해시테이블을 생성하며, 보안성을 높이기 위하여 필요시 암호화하고, 인증하는 기능 및 수단을 구비하며 규칙통신부(14)를 통해서 단말기에 전송하거나 단말기로부터 수신한다.
다음은 본 발명에 따른 규칙기반 추론장치의 규칙서버 중에서 규칙생성부(rule generation unit, 11)에 대하여 상세히 기술하도록 한다.
규칙생성부(11)에서는 사용자가 규칙실행단말기에서 실행될 규칙들을 정의하며, 상기 (T1)의 과정에서 예시한 것과 같은 방법으로 각 규칙의 원자진술문들을 타겟 규칙실행단말기의 입력포트와 내부데이터포트 구성에 맞게 생성한다. 원자진술문이 어떻게 구성되는지에 관해서는 하기 '규칙실행단말기' 부분에서 기술한다. 그리고 이 원자진술문들의 논리적 결합으로 규칙의 LHS를 만드는데 이는 (T1)의 과정에서 예시한 것과 같은 방법으로 불 논리 문장 (Boolean logic statement)형식으로 생성하며, RHS도 (T2)에서 예시한 바와 같이 생성하여 정형화된 규칙을 생성한다. 이때 RHS에 나타나는 각종 결과를 저장할 변수를 정의하며 그 변수의 데이터형(Numeric, alpha numeric, Boolean 등 다양하게 설정 가능)도 정의되어 있다.
규칙생성부(11)는 이렇게 생성된 규칙을 (T2)의 과정에서 예시한 바와 같이 LPF(Logical Product Form)의 LHS 형태를 갖는 규칙들로 바꾸며, 이를 다시 (T3)에서 예시한 바와 같이 비트벡터의 형태로 변환한다. 이와 함께 규칙집합의 관리에 필요한 보조 정보 및 규칙데이터의 생성과 관련한 생성날짜 버전정보 등에 관한 정보도 함께 생성할 수 있다.
이와 같은 규칙집합의 관리에 필요한 보조 정보 및 규칙데이터의 생성과 관련한 생성날짜, 버전정보 등에 관한 모든 정보를 총칭하여'규칙보조정보'라고 부르기로 한다.
본 발명에서 제시하는 규칙엔진은 순방향 추론(Forward chaining)과 역방향 추론(Backward chaining)이 가능한데 이를 가능하게 하기 위해 규칙의 RHS의 동작(action)의 일환으로 내부데이터포트에 대응하여 내부데이터를 조작할 수 있도록 구성한다.
다음은 본 발명에 따른 규칙기반 추론장치의 규칙서버 중에서 규칙관리부(rule management unit, 12)에 대하여 살펴본다.
규칙관리부(12)는 규칙생성부(11)에서 생성된 원자진술문의 집합인 원자진술문집합, 비트벡터 형태로 변환된 규칙의 LHS 그에 대응하는 RHS의 집합인 규칙집합 및 규칙보조정보를 규칙 데이터베이스(13)에 저장하며, 앞서 예시한 바와 같은 (T4) 과정에서 규칙집합의 전처리에 필요한 해시테이블도 생성한다.
규칙관리부(12)는 규칙실행단말기의 식별자(identification, ID) 정보를 가지고 있으며, 식별자를 가진 각 규칙실행단말기에 저장된 규칙집합의 버전정보와 버전 업데이트에 관한 이력(history) 정보를 저장하고 관리한다. 규칙관리부(12)는 필요시 규칙집합을 보호하기 위하여 규칙집합을 암호화하는 기능 및 수단을 구비하며, 규칙집합에 대한 인증을 하는 기능 및 수단도 구비할 수 있다.
또한, 상기 각각 해당 식별자를 가진 규칙실행단말기 CPU가 비트연산을 쉽게 할 수 있도록, 규칙실행단말기 CPU의 레지스터(Register) 규격 및 성능에 맞게 비트벡터를 적절한 단위 연산길이로 나누고, 나누어 단위 연산 비트벡터에 대한 패딩(padding) 작업도 수행할 수 있다.
소규모 기기들에서는 CPU의 레지스터 길이에 맞지 않는 비트연산 요청이 있을 경우, 장치에서 연산을 제대로 수행하지 못하고 장치의 프로세스가 종료되는 등 문제가 발생하는 경우가 있다. 따라서 CPU의 레지스터 길이에 맞게 비트연산의 단위길이를 맞추어 주어야 하는 기술적 구성을 구비하고 있다.
예를 들어, 소규모 기기들에서 자주 사용되는 8051계열의 마이크로프로세서의 경우 16비트의 레지스터 길이를 갖는다. 그리고 규칙기반추론장치의 사용자가 규칙서버에서 생성한 규칙 R의 비트벡터의 길이는 133비트라고 가정한다. 이런 경우에 규칙서버의 규칙관리부에서는 규칙실행단말기의 레지스터 길이에 맞게 R을 16의 길이를 갖는 비트로 나누게 된다. R은 16의 길이를 갖는 8개의 비트열과 나머지 5의 길이를 갖는 마지막 1개의 비트열로 나누어진다.
규칙관리부에서는 규칙서버에서 생성된 규칙의 비트벡터를 이렇게 규칙실행단말기의 레지스터 길이에 맞도록 잘라내는 기능과 수단을 구비하고 있다.(도 7 참조)
그런데 소규모 기기들에서는 CPU의 레지스터 길이보다 작은 비트열에 대한 연산요청이 있을 경우에도 제대로 연산을 수행하지 못하고 장치의 프로세스가 종료되는 문제가 있을 수 있다. 이러한 경우에는 모자라는 비트 수만큼을 소규모 기기의 CPU 레지스터 길이에 맞게 채워주는 작업을 수행해야 하는데, 이를 패딩(padding)이라고 부른다.
일반적으로 많이 쓰이는 패딩 방법은 남는 공간에 임의의 비트를 채워 넣는 표준 패딩(standard padding), 남는 공간을 공백으로 채우는 공백 패딩(space padding), 남는 공간을 널(null)로 채우는 널 패딩(null padding) 등 이미 알려진 많은 방법들이 있으며, 이들 중 하나를 선택하여 사용하더라도 본 발명의 범위를 벗어나지 않는다.(도 8 참조)
각각의 규칙실행단말기에 통신 기능이 구비된 경우에 한하여, 규칙관리부(12)는 각각의 규칙실행단말기에 저장된 원자진술문집합 및 규칙집합과 해시테이블, 규칙보조정보를 규칙통신부(14)를 통해 수신하고, 규칙 데이터베이스(13)에 저장하여 상기 이력(history) 정보로 저장할 수 있다.
규칙실행단말기에 통신기능이 구비되지 않은 경우에는 규칙관리부(12)에 보관되어 있는 이력(history) 정보로 보관된 과거 이력 데이터로부터 규칙실행단말기에 저장된 원자진술문집합 및 규칙집합과 해시테이블, 규칙보조정보를 파악할 수 있다. 또한 규칙관리부는 규칙실행단말기에 기존의 원자진술문집합 및 규칙집합과 해시테이블, 규칙보조정보가 저장되어 있는 경우 새로 생성된 원자진술문집합 및 규칙집합과 해시테이블, 규칙보조정보들 중 무엇을 어떻게 규칙실행단말기에 내려 보내 업그레이드(upgrade)할 것이지도 결정하는 기능 및 수단을 구비하고 있다.
또한, 규칙실행단말기에서 주어진 입력 데이터에 맞게 점화될 수 있는 규칙들이 다수 존재할 경우 그 중 무엇을 최종적으로 점화할 것인지에 대한 우선순위를 미리 정해 놓는 것이 규칙엔진(Rule engine)에서 일반적으로 쓰는 방법인데 본 발명의 경우도 이러한 규칙집합점화 우선순위 결정에 관한 방법도 규칙관리부에서 결정하도록 하며 이 정보도 규칙데이터베이스에 저장하고 또 규칙통신부를 통해 규칙실행단말기에 전송한다.
규칙집합점화 우선순위 결정은 사용자가 임의로 설정하거나 LIHP (Last In Higher Priority) 방식에 의해 나중에 입력된 규칙이 우선권을 갖게도 할 수도 있으며, 또 규칙비트벡터와 입력비트벡터의 해밍거리(Hamming distance)를 비교하여 입력비트벡터와 가장 가까운 거리에 있는 규칙비트벡터가 우선권을 갖게도 할 수 있는 등 다양하나, 이들 중 어느 하나의 방식을 채택 사용하여도 본 발명의 기본 범주를 벗어나지 않는다.
다음은 본 발명에 따른 규칙기반 추론장치의 규칙서버에 탑재되는 규칙데이터베이스(rule database, 13)에 대하여 살펴본다.
규칙생성부(11), 규칙관리부(12)에서 작업이 끝난 '원자진술문집합', '규칙집합', '해시테이블', '규칙보조정보' 및 '규칙집합점화 우선순위 정보'를 규칙데이터베이스(13)에 저장한다.
상기 규칙데이터베이스(13)에는 현재 단말기가 사용 중인 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들이 저장되어 있으며, 앞으로 업그레이드(upgrade)할 예정이거나 과거에 생성되어서 사용되었던 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들도 저장할 수 있다.
또한 현재 해당 규칙실행단말기가 적용중인 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들의 버전(version)이 무엇인지와, '생성-실행' 관계를 시작한 이후에 각 규칙실행단말기 별로 전송했던 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보도 같이 기록 저장할 수 있다.
규칙실행단말기에 통신기능이 구비되어 있는 경우에는 규칙서버가 규칙실행단말기와 통신을 해서 규칙실행단말기에 저장된 규칙과 원자진술문을 업로드(upload) 받아 정확한 내용을 파악하고 변경하는 기능도 필요시 수행할 수 있다.
다음은 본 발명에 따른 규칙기반 추론장치의 규칙서버 중에서 규칙통신부(rule communication unit, 14)에 대하여 살펴본다.
규칙통신부(14)에서는 규칙생성부(11)와 규칙관리부(12)에서 생성되고 규칙 데이터베이스(13)에 저장된 원자진술문과 규칙집합을 규칙실행단말기에 전달하고, 규칙실행단말기의 인증 및 유지를 위한 신호를 수신한다. 규칙실행단말기의 규칙통신부(23)가 네트워크로 연결되어 있는 경우에도, 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 수정할 필요가 있는 경우에만 통신이 이루어지므로 세션을 지속적으로 유지할 필요는 없다. 규칙 통신방식은 푸시(Push) 방식과 풀(Pull) 방식 중에서 상황에 적절하게 선택 사용할 수 있다.
규칙실행단말기에 통신 기능이 구비되지 않은 경우에는 규칙통신부(14)를 사용하지 않는다. 이러한 경우에는 규칙집합의 운용자가 플래시 메모리 등을 이용해서 규칙데이터베이스에 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 수동으로 복사한 후 이를 규칙실행단말기에 입력하여 업데이트하도록 한다. 또 반대로 규칙실행단말기에 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들도 이와 같은 방식으로 읽어올 수 있다.
[규칙실행단말기]
다음은 본 발명에 따른 규칙기반 추론장치 중에서 규칙실행단말기(rule execution terminal, client executor)의 기술적 구성에 대하여 살펴본다.
본 발명에 따른 규칙실행단말기는 감지부(21), 입력전처리부(22), 규칙통신부(23), 규칙관리부(24), 규칙실행부(25) 및 출력부(29)로 이루어져 있다. 규칙실행단말기의 종류에 따라 여기에 외부 입력부(사용자입력 + 다른 단말기), 타이머 등의 유니트를 추가할 수 있다. 상기 추가로 구성되는 유니트들은 규칙실행단말기의 규칙실행을 위하여 보조데이터를 제공하는 역할을 할 수 있다.
다음은 규칙실행단말기의 감지부(21)에 대하여 살펴본다.
감지부(21)는 엄밀히 말해 본 규칙엔진의 내부에 포함되는 모듈은 아니나 본 규칙실행단말기에 각종 센서 데이터 및 각종 입력 데이터를 제공한다는 면에서 필요한 부분이다.
감지부(21)에서는 물리적으로 연결(physical connection)된 하나 이상의 센서(sensor)를 통해 외부의 물리적인 현상을 감지할 수 있고, 외부통신 포트를 구비하고 있어서 외부 통신(external communication)을 통해 들어오는 신호를 받아들일 수도 있다.
다음은 규칙실행단말기의 입력전처리부(input preprocessor, 22)에 대하여 살펴본다. 입력전처리부(22)는 감지부(21)에서 전달받은 전기적 신호 또는 디지털 데이터를 받아들이는 입력포트(data input port, 27)와 규칙실행단말기 내부에서 사용하는 내부데이터를 입력, 저장하는 내부데이터포트(26), 그리고 원자진술처리부(atomic statement processor, 28)로 이루어져 있다. 감지부(21)의 센서는 물리적 양(physical quantity)을 전기적 신호를 입력받아서, 이 전기적 신호를 입력전처리부(22)가 인지하는 신호로 변환하는데 이때 규칙실행단말기가 A/D 변환기(converter)를 내장하고 있는 경우 감지부(21)에서 오는 전기신호를 직접 받을 수도 있고, 또는 센서 자체에 A/D 변환기(converter)를 가지고 있는 경우 입력포트(27)가 디지털 신호를 직접 받을 수도 있다.
일반적으로 감지부(21)의 센서와 입력포트(27)는 전기회로로 연결하는 것이 일반적이나 입력포트(27)에 센서의 데이터 값이 저장되기만 할 수 있다면 중간에 어떤 종류의 하드웨어나 소프트웨어 인터페이스를 채택해도 무방하다.
입력포트(27)는 감지부(21)에서 받은 전기적 신호를 정의해 둔 데이터형(data type)의 값으로 변환 입력시킬 수도 있으며, 경우에 따라서는 알고리즘이나 계산 수식을 이용하여 감지부(21)의 센서들에 의하여 측정된 값과 외부 통신으로부터 전송받은 데이터들을 정의된 규칙에 의하여 받아들일 수 있도록 입력포트 값을 설정할 수도 있다. 이때, 데이터형은 Numeric, alpha numeric, Boolean 등 다양하게 설정할 수 있다.
규칙실행단말기에 탑재된 소프트웨어 입장에서 살펴보면, 각 입력포트는 센서로부터 전달받은 데이터를 저장하고 처리하기 위한 메모리 영역으로 대표(represent)될 수 있으며, 이 메모리 영역에 저장된 값들이 아래에 기술할 P1, ..., Pn이 된다.
내부데이터포트(26)는 규칙실행단말기의 내부에서 규칙실행단말기의 내부 상태를 체크하고, 중간 계산결과를 나타내는 실행프로그램으로 RAM이나 flash 메모리 등의 규칙실행단말기의 메모리 영역에 저장되어 있다.
특히, 이러한 내부데이터포트(26)는 순방향 추론(Forward chaining)이나 역방향 추론(Backward chaining)을 포함해서 규칙 실행 사용할 수 있는 값들을 저장하는 메모리 영역이며, 값들은 아래에 기술할 Q1, ..., Qm 이 된다.
원자진술처리부(atomic statement processor, 28)는 입력포트(27)와 내부데이터포트(26)들의 값을 조합하여 원자진술문의 값을 설정해 주는 역할을 한다.
입력포트(27)와 내부데이터포트(26)들의 값은 규칙실행단말기에 탑재된 프로그램으로 읽을 수 있으며, 원자진술처리부(28)는 실제로는 소프트웨어 프로그램으로 구현되어 규칙실행단말기의 메모리에 탑재되어 있다.
예를 들어, 입력포트가 n개 있다고 하고 각 입력포트의 값을 P1, ..., Pn 이라하고 내부데이터포트가 m개 있다고 하고 각 내부데이터포트의 값을 Q1, ..., Qm 이라고 하면, i번째 원자진술문은 P1, ..., Pn과 Q1, ..., Qm 를 입력변수로 하는 함수
Ai = fi(P1, ..., Pn, Q1, ..., Qm)
로 표시할 수 있다.
이 함수는 규칙서버가 규칙실행단말기의 입력포트(27)와 내부데이터포트(26)의 구성 정보를 기반으로 생성하여 규칙실행단말기로 전달한 것이다. 규칙실행단말기가 하는 일은 규칙서버에서 만들어진 이 함수를 전달받아 주어진 조건에서 Ai의 값을 계산하는 것이다.
여기서, 원자진술문의 함수 값 Ai는 true(T), false(F) 및 unknown(N/A)이 될 수 있다. 일반적으로 P1, ..., Pn과 Q1, ..., Qm의 값이 다 주어진 경우 Ai는 true(T) 또는 false(F) 중의 하나의 값을 가지며, 만약 P1, ..., Pn과 Q1, ..., Qm 의 값이 일부가 알려져 있지 않거나 불완전하게 입력되어 Ai의 진위(true/false)를 계산하지 못할 경우에는 Ai의 값을 unknown(N/A)으로 세팅(setting)한다. 이와 같이 Ai가 진위(true/false) 또는 unknown(N/A)의 값을 갖는 경우 규칙을 Ra와 Rs의 비트벡터에 어떻게 표시하며, 입력데이터를 Da와 Ds의 비트벡터로 어떻게 표시하는지는 앞서 기술한 바와 같다.
다음은 규칙실행단말기의 규칙통신부(rule communication unit, 23)에 대하여 살펴본다. 규칙통신부(23)는 규칙서버에서 생성된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들을 전송받아서 규칙실행단말기에 다운로드(download)할 수 있도록 하는 통신을 담당한다. 그리고 규칙실행단말기에 현재 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 규칙서버에 보고하고, 규칙서버가 요청할 시 이를 업로드(upload)하여 사용할 수 있도록 지원한다.
다음은 규칙실행단말기의 규칙관리부(rule management unit, 24)에 대하여 살펴본다.
규칙관리부(rule management unit, 24)는 규칙서버로부터 규칙통신부(23)가 다운받은 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들을 규칙실행단말기에 저장하고, 규칙 및 각종 데이터의 업데이트와 버전 컨트롤 및 규칙서버로부터 전송받은 규칙집합의 유효성을 체크한다.
규칙서버와의 통신이 암호화되어 이루어질 경우에는, 규칙관리부(24)는 규칙서버로부터 수신되는 암호화된 코드를 복호화하고, 규칙서버로 송신되는 데이터에 대한 암호화 기능 및 수단을 구비한다.
다음은 규칙실행단말기의 규칙실행부(rule execution unit, 25)에 대하여 살펴본다.
규칙실행부(25)는 입력전처리부(22)에서 전달받은 원자진술문을 바탕으로 앞서 기술한 (T5)에서 예시한 방법으로 Da와 Ds 비트벡터를 생성하고, 상기 (T5)에서 예시한 방법으로 점화될 규칙을 찾아 점화하는 기능 및 수단을 구비하고 있다.
또한, 규칙실행부는 규칙실행단말기에 입력된 데이터에 맞게 점화될 수 있는 규칙들이 다수 존재할 경우에 규칙집합점화 우선순위 정보로부터 그 중 어느 규칙을 실제로 점화할 것인지를 결정하는 기능 및 수단을 구비하고 있다.
이렇게 점화된 규칙의 결과(RHS)를 출력하게 되는데 (T2)에서 예시한 바와 같이 그 결과를 외부프로그램이나 기기가 이용하는 경우에는 아래 기술할 출력포트에 그 출력 값을 기록하며, 반대로 순방향 추론(Forward chaining)과 역방향 추론(Backward chaining) 등 규칙엔진의 내부의 작동에 필요한 경우에는 그 출력 값을 내부데이터포트(26)에 기록한다.
마지막으로 출력부(29)에 대해 기술하기로 한다.
출력부(29)는 점화된 규칙의 결과(RHS)를 외부 프로그램이나 기기가 이용할 수 있도록 하는 인터페이스(interface)이다. 출력부의 외부 데이터 인터페이스는 출력포트를 통해 이루어지는데 각 출력포트는 입력포트(27)와 유사하게 출력 값을 메모리에 저장하고, 규칙실행에 따른 데이터를 출력하는 기능 및 수단을 구비하고 있다.
상기 (T2)에서 예시한 예의 경우 출력 값은 B1, B2 변수의 불 값(Boolean value)이 된다. 이 예에서, 출력포트에는 B1과 B2의 불 값을 각각 저장할 수 있는 두 개의 메모리 영역이 존재하며, 이 경우 출력포트의 값은 불변수의 값이 되지만 일반적으로 출력 값은 뉴메릭(Numeric), 알파 뉴메릭(alpha numeric), 불(Boolean) 등 다양한 데이터 형으로 설정할 수 있다.
다음은 본 발명에 따른 규칙기반 추론장치에서의 규칙 업데이트(rule update)의 기술적 구성에 대하여 살펴본다.
규칙서버와 규칙실행단말기가 분리된 규칙기반 추론장치에서는 다양한 환경에 놓인 규칙실행단말기를 지원한다. 규칙실행단말기들은 서로 상이한 실행 환경에서 동작을 할 수 있고, 또 각각의 서로 다른 환경에 놓인 규칙실행단말기들이 가진 하드웨어의 구성과 성능은 역시 다양할 수 있다. 따라서 규칙서버에서 생성된 규칙집합을 규칙실행단말기에 전달하는 방법 또한 여러 가지가 있을 수 있다. 규칙실행단말기에 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 업데이트하는 방법에는 크게 두 가지 방법으로 분류할 수 있다.
그 중 하나는 네트워크를 이용한 업데이트이다. 이는 네트워크의 이용이 지원되는 환경이고, 다수의 규칙실행단말기에 동시에 업데이트를 진행해야 하는 경우에 적합한 방법이다. 도 3은 이를 용이하게 이해할 수 있도록 도면으로 나타낸 것이다.
규칙실행단말기가 규칙서버와 네트워크로 연결되어 있는 경우에는 여러 가지 장점이 있을 수 있다. 규칙서버는 고성능의 풍부한 컴퓨팅 환경을 구축할 수 있으므로, 네트워크로 연결된 규칙실행단말기를 동시에 실시간으로 관리할 수 있다.
새로운 규칙집합이 생성되어 적용이 필요한 경우에도 네트워크를 통해 업데이트가 빠르고 간편하게 이루어질 수 있다. 다수의 규칙실행단말기가 한꺼번에 관리되어야 하는 경우에 유용하게 사용될 수 있다. 네트워크를 통한 업데이트 방법에는 매번 생성되는 새로운 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보에 대한 버전 번호를 부여하여 관리한다. 규칙실행단말기와 규칙서버는 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보의 버전 번호를 확인함으로써 업데이트 여부를 판단하게 된다.
버전 번호를 확인하고 업데이트 여부를 판단은 규칙실행단말기가 할 수도 있고, 규칙서버에서 수행할 수도 있다. 규칙실행단말기가 업데이트 여부를 판단할 경우에는 주기적으로 규칙서버와 통신을 하며 업데이트 여부를 묻는 방식을 취한다. 간단한 프로토콜을 이용해서 규칙실행단말기에서는 규칙서버에 자신이 가진 규칙집합의 버전번호를 전송하게 되고, 규칙서버에서는 규칙실행단말기가 보낸 버전정보를 확인한 다음, 가장 최근에 생성된 버전 번호가 규칙실행단말기에 저장된 버전보다 상위 버전이면 규칙실행단말기에 업데이트 수행 메시지를 반환한다.(도 5 참조)
규칙실행단말기에서는 규칙서버에서 반환된 메시지를 읽고 탑재된 제어프로그램에 의해 규칙집합을 내려 받아서 업데이트를 수행한다. 업데이트 여부를 규칙서버에서 수행하는 경우에는, 새롭게 생성된 규칙집합이 존재할 때, 규칙서버에서는 네트워크로 연결된 다수의 규칙실행단말기에 업데이트 알림(announce) 메시지를 일괄 전송한다. 규칙실행단말기에서는 업데이트 알림 메시지를 수신하여 업데이트를 진행한다.(도 6 참조) 네트워크를 통해서 규칙서버와 규칙실행단말기가 연결되어 있는 경우에는 별도의 보안체계에 의해서 상호간의 통신 내용이 보호된다.
규칙서버에서 생성된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 규칙실행단말기에 전달하는 두 번째의 방법은 사용자에 의한 직접 업데이트 방법이다. 네트워크가 지원되지 않는 환경에서는 사용자가 직접규칙실행단말기에 업데이트해야 한다. 사용자는 규칙서버에서 새로 만들어낸 규칙집합을 별도의 중간기록매체에 저장하여 규칙실행단말기에 직접 업데이트를 할 수 있다. 예를 들어, 휴대용 저장장치(USB메모리)를 이용하거나, 노트북 컴퓨터를 이용하여 단말기에 직접 연결하고 업데이트를 수행할 수 있다.
[규칙실행단말기의 하드웨어 및 소프트웨어 구성]
다음은 본 발명에 따른 규칙기반 추론장치에서의 규칙실행단말기의 하드웨어 및 소프트웨어 구성에 대하여 살펴본다.
규칙실행단말기는 도2에서 보듯이 감지부(21), 입력포트(27), 내부데이터포트(26) 및 원자진술처리부(28)로 구성된 입력전처리부(22), 규칙실행부(25), 규칙관리부(24), 규칙통신부(23) 및 출력부(29)로 이루어져 있다. 그 중 감지부(21)는 엄밀히 말해 본 규칙엔진의 내부에 포함되는 모듈은 아니나, 본 발명에 따른 규칙실행단말기에 각종 센서 데이터 등 각종 입력 데이터의 처리를 제공한다는 면에서 필요한 부분이다.
감지부(21)는 규칙실행단말기의 입력포트(27)와 하드웨어로 연결되어 있는데 이때 입력포트(27)는 A/D 변환기(converter)를 내장하고 있는 경우에 감지부(21)에서 오는 전기신호를 직접 받을 수도 있고, 또는 감지부(21)의 센서 자체가 A/D 변환기(converter)를 가지고 있는 경우에 센서에서 A/D 변환기를 거쳐서 입력되는 디지털 신호를 직접 받을 수도 있다.
입력포트(27)의 값은 상기 기술한 바와 같이 뉴메릭(numeric), 알파 뉴메릭(alphanumeric), 불(boolean) 등 다양한 포맷을 가질 수 있는데 입력포트(27)의 값들은 규칙실행단말기의 메모리에 저장된다. 또한 외부 통신을 통해 들어오는 데이터 값도 감지부(21)의 센서로부터 전달된 값과 동등한 조건에 의해 이 입력포트(27)에 설정된 값으로 정의하며, 외부 통신을 통해 들어오는 데이터 값 또한 규칙실행단말기의 메모리에 저장된다.
상기 내부데이터포트(26)는 규칙실행단말기에 정의된 메모리 영역에 저장되어 있으며, 규칙실행단말기의 작동을 제어하기 위한 추가적 정보를 의미한다. 원자진술처리부(28)의 i번째 원자진술문 Ai 는 상기한 바와 같이 입력포트(27)의 값 P1, ..., Pn과 데이터포트(26)의 값 Q1, ..., Qm을 입력변수로 하는 함수 Ai=fi(P1,...,Pn, Q1, ..., Qm)로 표시되는데 이 함수의 출력 값 Ai도 규칙실행단말기의 메모리에 저장된다.
규칙관리부(24)는 규칙서버로부터 생성되어 전달된 원자진술문, 규칙집합, 해시테이블 및 기타 보조 정보(데이터)를 규칙실행단말기의 비휘발성메모리에 저장하고 관리한다.
규칙통신부(23)는 외부와 통신하는 프로그램 및 이 프로그램이 사용하는 휘발성 및 비휘발성 메모리로 이루어져 있다. 규칙실행단말기가 외부와의 통신을 통해서 데이터를 받는 방법은 여러 가지가 있을 수 있는데, 입력포트(27)와 연결된 감지부(21)의 통신모듈을 통해서 데이터를 전송받을 수도 있고, 규칙통신부(23)를 통해서 외부로부터 정보를 수신하도록 구성할 수도 있다.
규칙실행부(25)는 규칙단말기의 중심으로서 규칙관리부(24)에 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보 등을 가지고, 입력전처리부(22)에서 입력되는 입력데이터에 맞는 적절한 규칙을 점화하는 역할을 담당한다. 이 기능은 주로 소프트웨어로 구현되는 바, 이 소프트웨어는 일반적으로 RAM에서 구동되나 경우에 따라서는 ROM이나 NOR 등의 비휘발성메모리에서 구동될 수도 있다.
또한, 규칙실행단말기에서 주어진 입력 데이터에 맞게 점화될 수 있는 규칙들이 다수 존재할 경우 그 중 무엇을 점화할 것인지는 규칙서버에서 전송받은 규칙집합점화 우선순위 정보에 따라 실제로 점화되는 규칙을 정하는 기능 및 수단도 규칙실행부(25)가 담당한다.
출력부(29)는 점화된 규칙의 결과(RHS)를 외부 프로그램이나 외부기기가 이용할 수 있도록 인터페이스(interface)하는 부분인데 그 결과 값은 출력포트에 저장된다. 각 출력포트는 입력포트(27)와 유사하게 출력 값을 메모리 영역에 저장한다.
본 발명에서 제시하는 규칙엔진은 규칙실행단말기의 하드웨어나 소프트웨어의 변경에 쉽게 대처하도록 구성되어 있다.
a) 하드웨어의 변경이 없는 경우
감지부(21)와 입력포트(27)의 구성 변경이 없으며 또한 감지부(21)와 입력포트(27)의 물리적 연결에 대한 변화 없이 단지 규칙실행단말기가 작동하는 규칙만 변경하려고 할 경우에 대해 예시를 통해 설명하기로 한다.
상기 예시한 규칙
규칙) 온도센서1의 온도가 27도 이상이고 습도센서의 습도가 30퍼센트 이하이거나 기압센서의 기압이 1기압 이하이면 환기구를 연다.
을 새규칙
새규칙) "온도센서1의 온도가 30도 이상이고 습도센서의 습도가 45퍼센트 이하이면 환기구를 연다."
로 바꾸고 싶다면 먼저 다음과 같은 과정을 거치도록 하면 된다. 규칙서버에서 해야 할 일은 원자진술문집합을 새로운 규칙에 맞추어 새로이 만들고, 아울러 규칙집합 및 해시테이블도 바꾸며, 또한 필요시 규칙보조정보도 새로 생성하여 규칙실행단말기에 전송한다. 그리고 규칙실행단말기는 전송받은 정보를 규칙관리부에 저장하고 이를 규칙실행부가 실행하도록 하면 된다. 이 경우 실제로 바뀌는 부분은 소프트웨어와 이에 필요한 데이터들 뿐이다.
b) 하드웨어의 변경이 있는 경우
만약 규칙을 새규칙2
새규칙2) "온도센서1의 온도가 30도 이상이고 조도센서의 조도가 1 lux이하이면 에어컨을 가동한다"
로 바꾸고자 하면 기존의 규칙에 없었던 조도센서가 새로 추가되었기 때문에 규칙실행단말기의 감지부의 구성이 바뀌어야 하고 이에 따라 입력포트도 변경되어야 한다. 이렇게 변경된 자료를 규칙서버에 전송하면 규칙서버의 사용자는 이에 마추어 새로운 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 새로이 생성해서 규칙실행단말기에 전송하고, 규칙실행단말기는 이를 저장 및 실행하도록 구성되어 있다.
이 경우에도 어쩔 수 없이 변경되어야 하는 센서 등을 제외하고는 규칙실행단말기의 소프트웨어 자체가 바뀌지는 아니하며 실제로 바뀌는 부분은 이 소프트웨어가 필요로 하는 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보로 구성되는 광의의 "규칙관련데이터" 의 변경만으로 규칙엔진의 작동을 바꿀 수 있다는 점에서 본 발명의 규칙기반추론장치 배경기술에 기술한 비즈니스 환경에서 작동하는 대형 규칙엔진의 장점을 그대로 지니게 된다.
[규칙추론 방법]
다음은 본 발명에 따른 규칙기반 규칙추론 장치를 이용한 규칙기반 규칙추론 방법에 대하여 살펴본다.
규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법은 규칙서버에서 규칙집합을 생성하는 단계를 거쳐서, 규칙서버에서 생성한 규칙집합을 저장 관리하고, 규칙서버의 규칙통신부를 통해서 각 규칙실행단말기에 해당 규칙을 전송하는 단계를 거치고, 상기 규칙서버에서 전달된 규칙을 전송받아서 규칙실행단말기에 저장하고, 저장된 규칙을 조건에 맞게 실행하는 단계로 이루어진다.
상기 규칙기반 규칙추론 방법은 생성된 규칙집합 및 규칙집합 관련 정보를 저장하는 규칙 데이터베이스에 저장하는 단계를 더 포함하고 있다.
상기 규칙기반 규칙추론 방법에서 규칙서버에서 규칙집합을 생성하는 단계에서는 규칙서버에서 규칙 생성 시에 규칙실행단말기의 입력포트와 내부데이터포트의 구성 정보를 기반으로 원자진술문을 생성하는 단계를 포함하고 있다.
상기 규칙서버에서 규칙집합을 생성하는 단계에서는 생성된 규칙집합에 포함된 규칙의 조건부를 DNF로 변환하는 단계를 거쳐서, 규칙실행단말기에 내려줄 규칙의 해시테이블을 생성하여 저장 관리하는 단계를 포함하고 있다.
상기 규칙기반 규칙추론 방법은 상기 규칙서버의 규칙통신부를 통해서 각 규칙실행단말기에 해당 규칙을 전송하는 단계에서 규칙서버에 미리 정의되어 있는 규칙에 따라 단위진술문을 원자진술문으로 변환하는 단계를 더 포함하고 있다.
상기 규칙서버의 규칙통신부를 통해서 각각의 식별자가 부여된 규칙실행단말기에 해당 규칙을 전송하는 단계에서는 보안성을 높이기 위하여 전송하는 데이터를 암호화하는 단계를 거쳐서, 규칙실행단말기를 인증하는 (또는 상호인증하는) 단계를 포함할 수 있다.
상기 규칙기반 규칙추론 방법은 원자진술문은 논리적 결합으로 이루어지며, 원자진술문의 LHS 규칙은 불 논리 문장의 형식으로 생성하는 단계를 포함하고 있다.
상기 규칙서버에서 규칙집합을 생성하는 단계에서는 규칙서버에서 생성된 원자진술문, 규칙집합 및 규칙집합의 관리에 필요한 규칙보조정보를 규칙 데이터베이스에 저장하는 단계를 포함할 수 있다.
각각의 식별자를 가진 규칙실행단말기에 해당 규칙을 전송하는 단계에서는 규칙통신부를 통해서 규칙실행단말기로부터 각각의 규칙실행단말기 식별자 및 버전에 대응하는 이력 정보를 수신하여 저장 관리하는 단계가 포함되어 있다.
상기 규칙서버에서 규칙집합을 생성하는 단계에서는 각각의 규칙실행단말기 CPU의 레지스터 규격 및 성능에 맞도록 비트벡터의 단위 연산길이를 나누는 단계를 포함하고, 나누어진 연산단위로 비트벡터의 패딩 작업을 수행하는 단계가 포함되어 있다.
상기 규칙서버에서 규칙집합을 생성하는 단계에서는 각각의 규칙실행단말기에서 점화될 수 있는 규칙이 다수 존재할 경우에 우선순위에 따라 규칙의 점화가 이루어지도록 하는 단계가 포함되어 있다.
상기 규칙기반 규칙추론 방법은 규칙의 최근 버전 또는 최근에 수행된 규칙 순서로 높은 점수를 부여하거나, Ds와 Rs의 해밍거리가 작은 규칙에 우선순위의 점수를 높게 부여하여 규칙 우선순위를 정하는 단계를 더 포함하고 있다.
상기 규칙기반 규칙추론 방법은 규칙서버의 규칙통신부를 통해서 규칙서버에서 생성되고 규칙서버의 규칙 데이터베이스에 저장된 원자진술문과 규칙집합을 규칙실행단말기에 전달하는 단계를 포함하며, 규칙실행단말기의 인증 및 유지를 위한 신호를 규칙실행단말기가 전송하고 규칙서버가 수신하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙서버의 규칙통신부를 통해서 신규 생성된 규칙집합 및 해시테이블을 규칙실행단말기에 규칙을 푸시 방식 또는 풀 방식으로 업데이트를 하는 단계를 포함한다.
상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 규칙실행단말기의 감지부에서는 물리적으로 연결(physical connection)된 하나 이상의 센서(sensor)를 통해 외부의 물리적인 현상을 감지할 수 있고, 외부통신 포트를 구비하고 있어서 외부 통신(external communication)을 통해 들어오는 신호를 감지하고, 감지된 신호를 디지털 신호로 변환하여 입력포트로 전송하는 단계를 포함한다.
상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 규칙실행단말기의 입력포트와 내부데이터포트들의 값을 조합하여 원자진술문의 값을 설정해 주는 단계가 포함되어 있다.
상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 원자진술문의 함수 값은 참, 거짓 및 알 수 없음 중에서 하나를 선택하는 단계가 포함되어 있다.
상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 규칙실행단말기 감지부에서 받은 전기적 신호를 정의해 둔 데이터형의 값으로 입력하거나, 알고리즘이나 계산 수식을 이용하여 감지부의 센서들의 값과 규칙 통신부를 통해서 외부로부터 전송받은 데이터들에 기초하여 최종 점화될 후보 규칙을 설정하는 단계를 포함한다.
상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 상기 데이터형은 뉴메릭, 알파 뉴메릭, 불리안 중에 하나를 선택하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙통신부가 다운받은 원자진술문, 규칙집합, 해시테이블 및 규칙보조정보를 규칙실행단말기에 저장하는 단계를 거쳐서, 규칙 및 관리에 필요한 정보들을 업데이트하는 단계를 포함하며, 생성된 원자진술문, 규칙집합 및 관리에 필요한 규칙보조정보의 버전을 컨트롤하는 단계를 포함하고, 규칙서버로부터 규칙실행단말기의 규칙통신부가 전송받은 규칙집합의 유효성을 점검하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙관리부에서 규칙서버와의 통신이 암호화되어 이루어질 경우에 규칙서버로부터 수신되는 암호화된 코드를 복호화하고, 규칙서버로 송신되는 데이터에 대하여 암호화하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙관리부에서 규칙 실행 대상을 찾기 위하여 입력 조건으로부터 실행 가능한 후보들을 선별하고, 상기 선별된 후보들에 대해 점화 대상을 선택하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙실행부에서 입력 전처리부에서 전달받은 원자진술문을 바탕으로 비트벡터를 생성하고, 점화되는 규칙을 찾아 점화하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙통신부를 통해서 규칙서버에서 생성된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들을 전송받아서 규칙실행단말기에 다운로드하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙통신부를 통해서 규칙관리부에 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 규칙서버에 보고하고, 규칙서버가 필요시 이를 업로드하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법은 규칙실행단말기 출력부의 인터페이스가 출력포트를 통해서 이루어지고, 각 출력포트는 출력 값을 메모리에 저장하며, 규칙실행에 따른 데이터를 출력하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법에서, 규칙실행단말기 출력부의 출력포트는 불 값들을 각각 저장할 수 있는 두 개의 메모리 영역이 존재하며, 상기 출력포트의 출력 값은 뉴메릭, 알파 뉴메릭, 불 중 하나의 형태로 설정하는 단계를 포함한다.
상기 규칙기반 규칙추론 방법에서, 규칙집합은 네트워크를 통해 업데이트할 수 있고, 매번 생성되는 새로운 규칙집합에 대한 버전 번호를 부여하여 관리하고, 규칙실행단말기와 규칙서버는 규칙집합의 버전 번호를 확인함으로써 새로운 규칙의 업데이트 여부를 판단하는 단계를 포함한다.
상기 규칙기반 규칙 추론 방법에서, 상기 규칙실행단말기가 업데이트 여부를 판단할 경우 주기적으로 규칙서버와 통신을 하면서 업데이트 여부를 묻는 방식 또는 자동으로 수행하는 단계를 포함한다.
상기 규칙기반 규칙 추론 방법은 시뮬레이터 모듈을 이용하여 규칙실행단말기가 실제 상황에서 주어진 입력 정보에 따라 어떻게 작동하는지를 사용자가 시뮬레이션하여 검증하는 단계를 더 포함할 수 있다.
본 발명은 주로 은행이나 전자상거래( E-commerce) 등에 대형 서버 환경에서만 널리 사용되어 온 계산속도가 빠른 CPU를 가진 대규모 엔터프라이즈 전산 환경을 필요로 하는 기존의 범용규칙엔진이 적용되기 힘든 분야에 적합한 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 장치 및 방법이다.
기존의 범용규칙엔진이 사용되는 전통적인 분야 이외에 최근에는 ICT(Information & Communication Technologies) 분야의 기술이 방송, 환경, 통신, 문화, 교통, 생산 등 각종영역과 컨버전스(convergence)와 융합(Fusion)의 형태를 띠면서 발전해 감에 따라, 위의 대형 엔터프라이즈 서버 뿐만이 아니라 소형기기에서도 이와 같은 규칙 엔진을 사용해야 할 필요성과 수요가 증가하고 있다. 예를 들어 전력분야의 스마트 그리드(Smart grid) 및 통신 분야의 유비쿼터스(Ubiquitous) 및 사물과 사물간의 지능적인 연결(Machine to Machine, M2M) 등의 분야를 보면, 이 시스템들은 센서(sensor)들이나 소규모 기기(device)들이 유비쿼터스하게 사용되고 있는데 이 센서나 장치 및 이들로 구성된 소규모 네트워크에서 수집되는 정보를 대형 서버에 보내지 않고 단말 환경에서 주어진 조건에 따라 정해진 규칙대로 작동하도록 운용해야할 필요성이 증가하고 있다. 그런데 이 규칙 또한 운용 정책에 따라 변경되어야 하며, 더 나아가 일반적으로 이러한 규칙을 간편하게 삭제, 변경, 추가할 수 있어야 한다. 따라서 규칙서버와 규칙실행단말기가 분리된 본 발명은 다양한 산업현장에 쉽고 널리 이용될 수 있으므로 산업상 이용가능성이 매우 높다.

Claims (70)

  1. 규칙기반 규칙추론 장치에 있어서,
    규칙집합을 생성하고, 생성한 규칙집합을 규칙실행단말기에 전달하는 규칙서버; 및
    상기 규칙서버에서 전달된 규칙집합을 저장하고, 저장된 규칙을 조건에 맞게 실행하는 규칙실행단말기로 구성하되,
    상기 규칙서버와 규칙실행단말기가 서로 분리되고,
    상기 규칙서버는
    관리자로부터 규칙을 입력받아 규칙을 생성하는 규칙 생성부와, 상기 규칙 생성부에서 생성된 규칙을 관리하는 규칙 관리부와, 상기 생성된 모든 규칙 및 규칙 관련 정보를 저장하는 규칙 데이터베이스 및 규칙실행단말기와 데이터를 주고받기 위한 규칙통신부로 이루어진 규칙기반 규칙추론 장치.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 규칙서버의 규칙 생성부는 규칙실행단말기의 입력포트와 내부데이터포트의 구성 정보를 기반으로 원자진술문을 생성함을 특징으로 하는 규칙기반 규칙추론 장치.
  4. 청구항 1에 있어서,
    상기 규칙 서버의 규칙 관리부는 수신 받는 규칙실행단말기의 플랫폼 또는 하드웨어 규격과 성능에 맞게 규칙집합을 변환하되,
    규칙집합에 포함된 조건부의 규칙을 DNF으로 변환하며,
    규칙실행단말기에 내려줄 규칙의 해시테이블을 생성하여 저장 관리함을 특징으로 하는 규칙기반 규칙 추론 장치.
  5. 청구항 4에 있어서,
    상기 규칙 관리부는 규칙서버에서 규칙의 LHS를 구성하는 원자진술문을 생성함을 특징으로 하는 규칙기반 규칙 추론 장치.
  6. 청구항 1에 있어서,
    상기 규칙 관리부는 보안성을 높이기 위하여 전송하는 데이터를 암호화하는 수단 및 인증하는 수단을 더 구비함을 특징으로 하는 규칙기반 규칙 추론 장치.
  7. 청구항 5에 있어서,
    논리적 결합으로 이루어지는 원자진술문의 LHS 규칙은 불 논리 문장의 형식으로 생성됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  8. 청구항 1에 있어서,
    상기 규칙 관리부는 규칙 생성부에서 생성된 원자진술문, 규칙집합 및 규칙집합의 관리에 필요한 규칙보조정보를 규칙 데이터베이스에 저장함을 특징으로 하는 규칙기반 규칙 추론 장치.
  9. 청구항 1에 있어서,
    상기 규칙데이터베이스는 규칙서버의 메모리에 탑재하여 구성하거나 규칙서버와 규칙실행단말기로부터 물리적으로 분리 설치됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  10. 청구항 1에 있어서,
    상기 규칙 관리부는 규칙통신부를 통해서 규칙실행단말기로부터 각각의 규칙실행단말기 식별자 및 버전에 대응하는 이력 정보를 수신하여 저장 관리함을 특징으로 하는 규칙기반 규칙 추론 장치.
  11. 청구항 1에 있어서,
    상기 규칙 관리부는 각각의 규칙실행단말기의 CPU 레지스터 규격 및 성능에 맞도록 비트벡터를 규칙실행단말기에 맞는 길이의 연산단위를 나누고,
    나누어진 연산단위로 비트벡터의 패딩 작업을 수행함을 특징으로 하는 규칙기반 규칙 추론 장치.
  12. 청구항 11에 있어서,
    상기 비트벡터의 패딩작업은 남는 공간에 임의의 비트를 채워 넣는 표준 패딩, 남는 공간을 공백으로 채우는 공백 패딩, 남는 공간을 널로 채우는 널 패딩 중 하나를 선택하여 이루어짐을 특징으로 하는 규칙기반 규칙 추론 장치.
  13. 청구항 1에 있어서,
    상기 규칙 관리부는 각각의 규칙실행단말기에서 점화될 수 있는 규칙이 다수 존재할 경우에 우선순위에 따라 규칙의 점화가 이루어지도록 구성함을 특징으로 하는 규칙기반 규칙 추론 장치.
  14. 청구항 13에 있어서,
    상기 우선순위를 정하는 방법은 최근 입력 또는 최근에 수행된 규칙 순서로 높은 점수를 부여하여 정하거나, Ds와 Rs의 해밍거리가 작은 규칙에 우선순위의 점수를 높게 부여하여 정하는 것을 특징으로 하는 규칙기반 규칙 추론 장치.
  15. 청구항 1에 있어서,
    상기 규칙 통신부는 규칙 생성부와 규칙 관리부에서 생성되고 규칙 데이터베이스에 저장된 원자진술문과 규칙의 집합을 규칙실행단말기에 전달하고,
    규칙실행단말기의 인증 및 유지를 위한 신호를 수신하도록 구성됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  16. 청구항 15에 있어서,
    상기 규칙 통신부는 신규 생성된 규칙집합 및 해시테이블을 규칙실행단말기에 규칙을 업데이트를 하기 위해 푸시 방식 또는 풀 방식으로 수행함을 특징으로 하는 규칙기반 규칙 추론 장치.
  17. 청구항 1에 있어서,
    상기 규칙실행단말기는 데이터의 신속하게 처리를 위하여 미리 정의된 규칙 또는 논리에 의하여 처리하는 입력 전처리부;
    생성서버로부터 전송받은 규칙 및 데이터를 관리하는 규칙 관리부;
    조건에 따라 규칙을 실행하는 규칙실행부; 및
    외부와 데이터를 서로 주고받기 위한 규칙통신부로 이루어진 규칙기반 규칙 추론 장치.
  18. 청구항 17에 있어서,
    상기 규칙실행단말기는 물리적인 현상을 감지하는 하나 이상의 센서 또는 외부 통신으로부터 정보를 받을 수 있는 외부통신 포트를 포함하는 외부의 물리적 변화를 감지하고, 감지된 신호의 통신 수단을 구비한 감지부를 더 구비한 규칙기반 규칙 추론 장치.
  19. 청구항 17에 있어서,
    상기 규칙실행단말기는 외부 입력부 또는 타이머가 더 부가된 규칙기반 규칙 추론 장치.
  20. 청구항 17에 있어서,
    상기 입력 전처리부는 외부로부터 정보를 받아들이는 입력포트;
    규칙실행단말기 내부에서 사용하는 내부데이터를 입력 저장하는 내부데이터포트; 및
    상기 입력포트와 내부데이터포트들의 값을 조합하여 원자진술문의 값을 설정해 주는 원자진술처리부로 이루어짐을 특징으로 하는 규칙기반 규칙 추론 장치.
  21. 청구항 20에 있어서,
    상기 원자진술문의 함수 값은 참, 거짓 및 알 수 없음 중에서 하나를 선택하여 이루어짐을 특징으로 하는 규칙기반 규칙 추론 장치.
  22. 청구항 20에 있어서,
    상기 입력포트는 감지부에서 받은 전기적 신호를 정의해 둔 데이터형의 값으로 입력하거나 알고리즘이나 계산 수식을 이용하여 감지부의 센서들의 값과 규칙 통신부를 통해서 외부로부터 전송받은 데이터들에 기초하여 입력포트 값을 설정함을 특징으로 하는 규칙기반 규칙 추론 장치.
  23. 청구항 22에 있어서,
    상기 데이터형은 뉴메릭, 알파 뉴메릭, 불리안 중에 하나를 선택하여 구성함을 특징으로 하는 규칙기반 규칙 추론 장치.
  24. 청구항 20에 있어서,
    상기 내부데이터포트는 순방향 추론 또는 역방향 추론에 사용되거나, 상기 규칙기반 규칙 추론장치 내부에서 상태나 중간 계산 결과를 저장하는 메모리영역으로 사용됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  25. 청구항 17에 있어서,
    상기 규칙실행단말기의 규칙 관리부는 규칙서버로부터 규칙통신부가 다운받은 원자진술문, 규칙집합, 해시테이블 및 규칙보조정보를 규칙실행단말기에 저장하고,
    규칙 및 관리에 필요한 정보들을 업데이트하며,
    생성된 원자진술문, 규칙집합 및 관리에 필요한 규칙보조정보의 버전을 컨트롤하고,
    규칙서버로부터 전송받은 규칙집합의 유효성을 점검함을 특징으로 하는 규칙기반 규칙 추론 장치.
  26. 청구항 17에 있어서,
    상기 규칙실행단말기의 규칙관리부는 규칙서버와의 통신이 암호화되어 이루어질 경우에 규칙서버로부터 수신되는 암호화된 코드를 복호화하고, 규칙서버로 송신되는 데이터에 대하여 암호화하는 수단을 구비함을 특징으로 하는 규칙기반 규칙 추론 장치.
  27. 청구항 17에 있어서,
    상기 규칙실행단말기의 규칙 관리부는 규칙 실행 대상을 찾기 위하여 입력 조건으로부터 실행 가능한 후보들을 선별하고, 상기 선별된 후보들 중에서 점화 대상을 선택하는 것을 특징으로 하는 규칙기반 규칙 추론 장치.
  28. 청구항 17에 있어서,
    상기 규칙실행부는 입력 전처리부에서 전달받은 원자진술문을 바탕으로 비트벡터를 생성하고, 점화되는 규칙을 찾아 점화하는 수단을 구비함을 특징으로 하는 규칙기반 규칙 추론 장치.
  29. 청구항 17에 있어서,
    상기 규칙실행단말기의 규칙통신부는 규칙서버에서 생성된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들을 전송받아서 규칙실행단말기에 다운로드할 수 있도록 구성됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  30. 청구항 29에 있어서,
    상기 규칙실행단말기의 규칙통신부는 현재 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 규칙서버에 보고하고, 규칙서버가 필요시 이를 업로드할 수 있도록 구성됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  31. 청구항 17에 있어서,
    상기 규칙실행단말기는 점화된 규칙의 결과(RHS)를 외부 프로그램이나 기기가 이용할 때 외부와 데이터 인터페이스할 수 있는 출력부를 더 구비한 규칙기반 규칙 추론 장치.
  32. 청구항 31에 있어서,
    상기 외부와 데이터 인터페이스할 수 있는 출력부는 출력포트를 통해 이루어지는데 각 출력포트는 출력 값을 메모리에 저장하고, 규칙실행에 따른 데이터를 출력하는 수단을 구비함을 특징으로 하는 규칙기반 규칙 추론 장치.
  33. 청구항 32에 있어서,
    상기 출력포트는 불 값들을 각각 저장할 수 있는 영역이 존재하며, 상기 출력포트의 출력 값은 뉴메릭, 알파 뉴메릭, 불 중 하나의 형태로 설정됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  34. 청구항 1에 있어서,
    상기 규칙집합은 네트워크를 통해 업데이트할 수 있고, 매번 생성되는 새로운 규칙집합에 대한 버전 번호를 부여하여 관리하고,
    규칙실행단말기와 규칙서버는 규칙집합의 버전 번호를 확인함으로써 새로운 규칙의 업데이트 여부를 판단하도록 구성함을 특징으로 하는 규칙기반 규칙 추론 장치.
  35. 청구항 34에 있어서,
    상기 버전 번호를 확인하고 규칙의 업데이트는 규칙실행단말기 또는 규칙서버에서 수행하거나 규칙실행단말기와 규칙서버 모두에서 수행할 수 있도록 구성함을 특징으로 하는 규칙기반 규칙 추론 장치.
  36. 청구항 35에 있어서,
    상기 규칙실행단말기가 업데이트 여부를 판단할 경우에는 주기적으로 규칙서버와 통신을 하면서 업데이트 여부를 묻는 방식 또는 자동으로 이루어짐을 특징으로 하는 규칙기반 규칙 추론 장치.
  37. 청구항 34에 있어서,
    상기 규칙기반 규칙 추론 장치는 네트워크가 지원되지 아니하는 환경의 경우에 규칙서버에서 새로 만들어낸 규칙집합을 별도의 중간기록매체에 저장하여 규칙실행단말기에 직접 업데이트를 하도록 구성됨을 특징으로 하는 규칙기반 규칙 추론 장치.
  38. 청구항 1에 있어서,
    상기 규칙 생성부는 새로 생성할 규칙집합을 규칙실행단말기에서 빠른 연산이 가능하도록 미리 정의된 논리 또는 규칙에 의하여 처리하는 전처리부를 더 구비함을 특징으로 하는 규칙기반 규칙 추론 장치.
  39. 청구항 1에 있어서,
    상기 규칙서버는 규칙실행단말기가 실제 상황에서 주어진 입력 정보에 따라 어떻게 작동하는지를 사용자가 검증해 볼 수 있는 시뮬레이터 모듈을 더 포함함을 특징으로 하는 규칙기반 규칙 추론 장치.
  40. 규칙기반 규칙추론 방법에 있어서,
    규칙서버에서 규칙집합을 생성하는 단계;
    규칙서버에서 생성한 규칙집합을 저장 관리하고, 규칙서버의 규칙통신부를 통해서 각 규칙실행단말기에 해당 규칙을 전송하는 단계; 및
    상기 규칙서버에서 전달된 규칙을 전송받아서 규칙실행단말기에 저장하고, 저장된 규칙을 조건에 맞게 실행하는 단계로 이루어지되,
    상기 규칙기반 규칙추론 방법은 생성된 규칙집합 및 규칙집합 관련 정보를 저장하는 규칙 데이터베이스에 저장하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  41. 삭제
  42. 청구항 40에 있어서,
    상기 규칙서버에서 규칙집합을 생성하는 단계에서 규칙서버에서 규칙 생성 시에 규칙실행단말기의 입력포트와 내부데이터포트의 구성 정보를 기반으로 원자진술문을 생성하는 단계를 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  43. 청구항 40에 있어서,
    상기 규칙서버에서 규칙집합을 생성하는 단계에서는 생성된 규칙집합에 포함된 조건부 규칙을 DNF으로 변환하는 단계; 및
    규칙실행단말기에 내려줄 규칙의 해시테이블을 생성하여 저장 관리하는 단계를 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  44. 청구항 40에 있어서,
    상기 규칙서버의 규칙통신부를 통해서 각 규칙실행단말기에 해당 규칙을 전송하는 단계에서는 규칙서버에 미리 정의되어 있는 규칙에 따라 단위진술문을 원자진술문으로 변환하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  45. 청구항 40에 있어서,
    규칙서버의 규칙통신부를 통해서 각 규칙실행단말기에 해당 규칙을 전송하는 단계에서는 보안성을 높이기 위하여 전송하는 데이터를 암호화하는 단계; 및
    인증하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  46. 청구항 42에 있어서,
    상기 원자진술문은 논리적 결합으로 이루어지며, 원자진술문의 LHS 규칙은 불 논리 문장의 형식으로 생성함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  47. 청구항 40에 있어서,
    상기 규칙서버에서 규칙집합을 생성하는 단계에서는 규칙서버에서 생성된 원자진술문, 규칙집합 및 규칙집합의 관리에 필요한 규칙보조정보를 규칙 데이터베이스에 저장하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  48. 청구항 40에 있어서,
    각 규칙실행단말기에 해당 규칙을 전송하는 단계에서는 규칙통신부를 통해서 규칙실행단말기로부터 각각의 규칙실행단말기 식별자 및 버전에 대응하는 이력 정보를 수신하여 저장 관리하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  49. 청구항 40에 있어서,
    상기 규칙서버에서 규칙집합을 생성하는 단계에서는 각각의 규칙실행단말기의 CPU 레지스터 규격 및 성능에 맞는 비트벡터 길이로 연산단위를 나누는 단계; 및
    나누어진 연산단위로 비트벡터의 패딩 작업을 수행하는 단계를 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  50. 청구항 49에 있어서,
    상기 비트벡터의 패딩작업은 남는 공간에 임의의 비트를 채워 넣는 표준 패딩, 남는 공간을 공백으로 채우는 공백 패딩, 남는 공간을 널로 채우는 널 패딩 중 하나를 선택하여 이루어짐을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙 추론 방법.
  51. 청구항 40에 있어서,
    상기 규칙서버에서 규칙집합을 생성하는 단계에서는 각각의 규칙실행단말기에서 점화될 수 있는 규칙이 다수 존재할 경우에 우선순위에 따라 규칙의 점화가 이루어지도록 하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  52. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙의 최근 입력 또는 최근에 수행된 규칙 순서로 높은 점수를 부여하거나, Ds와 Rs의 해밍거리가 작은 규칙에 우선순위의 점수를 높게 부여하여 규칙 우선순위를 정하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  53. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙서버의 규칙통신부를 통해서 규칙서버에서 생성되고 규칙 데이터베이스에 저장된 원자진술문과 규칙집합을 규칙실행단말기에 전달하는 단계; 및
    규칙실행단말기의 인증 및 유지를 위한 신호를 수신하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  54. 청구항 43에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙서버의 규칙통신부를 통해서 신규 생성된 규칙집합 및 해시테이블을 규칙실행단말기에 규칙을 푸시 방식 또는 풀 방식으로 업데이트를 하는 단계를 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  55. 청구항 40에 있어서,
    상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 규칙실행단말기의 감지부를 통해서 물리적인 현상을 감지하는 하나 이상의 센서 또는 외부 통신으로부터 정보를 받을 수 있는 외부통신 포트를 통해서 물리적 변화를 감지하고,
    감지된 신호를 디지털 신호로 변환하여 입력포트로 전송하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  56. 청구항 40에 있어서,
    상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 규칙실행단말기의 입력포트와 내부데이터포트들의 값을 조합하여 원자진술문의 값을 설정해 주는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  57. 청구항 40에 있어서,
    상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 원자진술문의 함수 값은 참, 거짓 및 알 수 없음 중에서 하나를 선택하도록 구성함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  58. 청구항 55에 있어서,
    상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 규칙실행단말기 감지부에서 받은 전기적 신호를 정의해 둔 데이터형의 값으로 입력하거나 알고리즘이나 계산 수식을 이용하여 감지부의 센서들의 값과 규칙 통신부를 통해서 외부로부터 전송받은 데이터들에 기초하여 설정하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  59. 청구항 58에 있어서,
    상기 규칙실행단말기에서 규칙을 실행하는 단계에서, 상기 데이터형은 뉴메릭, 알파 뉴메릭, 불리안 중에 하나를 선택하여 구성함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  60. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙통신부가 다운받은 원자진술문, 규칙집합, 해시테이블 및 규칙보조정보를 규칙실행단말기에 저장하는 단계;
    규칙 및 관리에 필요한 정보들을 업데이트하는 단계;
    생성된 원자진술문, 규칙집합 및 관리에 필요한 규칙보조정보의 버전을 컨트롤하는 단계; 및
    규칙서버로부터 규칙실행단말기의 규칙통신부가 전송받은 규칙집합의 유효성을 점검하는 단계를 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  61. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙관리부에서 규칙서버와의 통신이 암호화되어 이루어질 경우에 규칙서버로부터 수신되는 암호화된 코드를 복호화하고, 규칙서버로 송신되는 데이터에 대하여 암호화하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  62. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙관리부에서 규칙 실행 대상을 찾기 위하여 입력 조건으로부터 실행 가능한 후보들을 선별하고, 상기 선별된 후보들에 대해 점화 대상을 선택하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  63. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙실행부에서 입력 전처리부에서 전달받은 원자진술문을 바탕으로 비트벡터를 생성하고, 점화되는 규칙을 찾아 점화하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  64. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙통신부를 통해서 규칙서버에서 생성된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보들을 전송받아서 규칙실행단말기에 다운로드하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  65. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기의 규칙통신부를 통해서 규칙관리부에 저장된 원자진술문집합, 규칙집합, 해시테이블, 규칙보조정보 및 규칙집합점화 우선순위 정보를 규칙서버에 보고하고, 규칙서버가 필요시 이를 업로드하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  66. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법은 규칙실행단말기 출력부의 인터페이스가 출력포트를 통해서 이루어지고, 각 출력포트는 출력 값을 메모리에 저장하며, 규칙실행에 따른 데이터를 출력하는 단계를 더 포함하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  67. 청구항 66에 있어서,
    상기 규칙기반 규칙추론 방법에서, 규칙실행단말기 출력부의 출력포트는 불 값들을 각각 저장할 수 있는 메모리 영역이 존재하며, 상기 출력포트의 출력 값은 뉴메릭, 알파 뉴메릭, 불 중 하나의 형태로 설정하는 단계로 이루어짐을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙추론 방법.
  68. 청구항 40에 있어서,
    상기 규칙기반 규칙추론 방법에서, 규칙집합은 네트워크를 통해 업데이트할 수 있고, 매번 생성되는 새로운 규칙집합에 대한 버전 번호를 부여하여 관리하고,
    규칙실행단말기와 규칙서버는 규칙집합의 버전 번호를 확인함으로써 새로운 규칙의 업데이트 여부를 판단하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙 추론 방법.
  69. 청구항 40, 청구항 42 내지 청구항 47 중 어느 한 항에 있어서,
    상기 규칙기반 규칙 추론 방법에서, 상기 규칙실행단말기가 업데이트 여부를 판단할 경우 주기적으로 규칙서버와 통신을 하면서 업데이트 여부를 묻는 방식 또는 자동으로 수행하는 단계를 더 포함함을 특징으로 하는 규칙기반 규칙 추론 방법.
  70. 청구항 40에 있어서,
    상기 규칙기반 규칙 추론 방법은 시뮬레이터 모듈을 이용하여 규칙실행단말기가 실제 상황에서 주어진 입력 정보에 따라 어떻게 작동하는지를 사용자가 시뮬레이션하여 검증하는 단계를 더 포함함을 특징으로 하는 규칙서버와 규칙실행단말기가 분리된 규칙기반 규칙 추론 방법.
KR1020110001875A 2011-01-07 2011-01-07 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법 KR101296279B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110001875A KR101296279B1 (ko) 2011-01-07 2011-01-07 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법
PCT/KR2011/000638 WO2012093746A1 (ko) 2011-01-07 2011-01-31 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110001875A KR101296279B1 (ko) 2011-01-07 2011-01-07 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120080423A KR20120080423A (ko) 2012-07-17
KR101296279B1 true KR101296279B1 (ko) 2013-08-20

Family

ID=46457592

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110001875A KR101296279B1 (ko) 2011-01-07 2011-01-07 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101296279B1 (ko)
WO (1) WO2012093746A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102144853B1 (ko) * 2016-04-08 2020-08-14 한국전자통신연구원 규칙 기반 실시간 데이터 스트림 처리 방법 및 장치
CN111639084A (zh) * 2020-04-10 2020-09-08 深圳市华智有为科技有限公司 动态规则生成方法、系统以及应用终端、管理终端
CN113641708B (zh) * 2021-08-11 2022-07-26 华院计算技术(上海)股份有限公司 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050011745A (ko) * 2002-04-19 2005-01-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 추론 서비스 제공 시스템 및 방법
KR20050052669A (ko) * 2003-12-01 2005-06-07 한국전자통신연구원 온톨로지를 이용한 비즈니스 규칙시스템 및 그 서비스 방법
KR20050062946A (ko) * 2003-12-19 2005-06-28 한국전자통신연구원 비즈니스 응용 서비스의 통합 시스템
KR20050063403A (ko) * 2003-12-22 2005-06-28 한국전자통신연구원 비즈니스 규칙 및 규칙흐름의 동적 처리 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050011745A (ko) * 2002-04-19 2005-01-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 추론 서비스 제공 시스템 및 방법
KR20050052669A (ko) * 2003-12-01 2005-06-07 한국전자통신연구원 온톨로지를 이용한 비즈니스 규칙시스템 및 그 서비스 방법
KR20050062946A (ko) * 2003-12-19 2005-06-28 한국전자통신연구원 비즈니스 응용 서비스의 통합 시스템
KR20050063403A (ko) * 2003-12-22 2005-06-28 한국전자통신연구원 비즈니스 규칙 및 규칙흐름의 동적 처리 시스템 및 방법

Also Published As

Publication number Publication date
WO2012093746A1 (ko) 2012-07-12
KR20120080423A (ko) 2012-07-17

Similar Documents

Publication Publication Date Title
US11973869B2 (en) Maintaining blocks of a blockchain in a partitioned blockchain network
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
CN108881312A (zh) 智能合约升级方法、系统和相关设备以及存储介质
CN113141782B (zh) 在具有原始作品数据的区块链上存储和验证衍生作品数据
US9021462B2 (en) Systems and methods for provisioning equipment
KR101741967B1 (ko) 에이전트 디바이스를 제1 디바이스 레지스트리로부터 제2 디바이스 레지스트리로 할당하기 위한 방법
CN107749894A (zh) 一种安全、简单、智能的物联网系统
WO2019177764A1 (en) Industrial data verification using secure, distributed ledger
CN111274268A (zh) 物联网数据传输方法、装置、介质及电子设备
US9703570B2 (en) Dynamic device drivers
CN109067732A (zh) 物联网设备及数据接入系统、方法及计算机可读存储介质
WO2016145009A1 (en) Method and system for rapid deployment and execution of customized functionality across multiple distinct platforms
KR102652384B1 (ko) 메신저 봇을 이용하여 IoT 기기를 제어하기 위한 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
CN111683066A (zh) 异构系统集成方法、装置、计算机设备和存储介质
CN109783572A (zh) 区块链多链创建方法、装置、设备及存储介质
CN110795763B (zh) 电子证照处理方法、查询方法、装置、设备、平台和介质
KR101296279B1 (ko) 규칙 서버와 규칙 실행 단말기가 분리된 규칙기반 규칙추론 장치 및 방법
US11232190B2 (en) Device attestation techniques
JP7454879B2 (ja) ブロックチェーンデータ検索方法
CN111339193B (zh) 类别的编码方法及装置
KR102461213B1 (ko) 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템
CN100507908C (zh) 用于图分析和同步的方法和系统
CN113364821B (zh) 一种功能服务访问方法、设备及存储介质
CN114327426A (zh) 一种基于可视化工作流的安保业务实现方法及相关设备
CN111506657A (zh) 一种区块链节点设备部署的方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160825

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170526

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180726

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190724

Year of fee payment: 7