KR100558331B1 - Rule language processing system and method for describing web interlocking knowledge - Google Patents

Rule language processing system and method for describing web interlocking knowledge Download PDF

Info

Publication number
KR100558331B1
KR100558331B1 KR20030095706A KR20030095706A KR100558331B1 KR 100558331 B1 KR100558331 B1 KR 100558331B1 KR 20030095706 A KR20030095706 A KR 20030095706A KR 20030095706 A KR20030095706 A KR 20030095706A KR 100558331 B1 KR100558331 B1 KR 100558331B1
Authority
KR
South Korea
Prior art keywords
rule
knowledge
web
rulebase
remote
Prior art date
Application number
KR20030095706A
Other languages
Korean (ko)
Other versions
KR20050064347A (en
Inventor
장민수
손주찬
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR20030095706A priority Critical patent/KR100558331B1/en
Publication of KR20050064347A publication Critical patent/KR20050064347A/en
Application granted granted Critical
Publication of KR100558331B1 publication Critical patent/KR100558331B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 웹에 분산된 두 가지 종류의 지식(온톨로지 및 규칙베이스)을 참조 및 해석하여 추론함으로써 지능적으로 각종 서비스를 제공하기 위한 규칙베이스를 작성하는데 효과적인 규칙 언어와 그 처리 시스템에 관한 것이다. 본 발명에 의한 규칙 언어는 URI를 기본 데이터 타입으로 가진다. 웹 온톨로지 및 규칙베이스에 기술되어 있는 지식 요소들을 참조하기 위하여 URI를 사용할 수 있으며, 본 발명에 의한 규칙 언어 실행 환경은 참조된 URI들을 대상으로 다양한 지식 습득 작용을 수행함으로써 본 발명에 의한 규칙 언어로 작성된 규칙베이스의 원활한 추론 작업이 가능하게 한다. 또한 본 발명에 의한 규칙 언어로 작성된 규칙베이스의 모든 구성 요소들(규칙(Rule), 사실(Fact), 술어(Predicate) 및 상수)은 구별자로 URI를 부여받는다. 각 요소에 부여된 URI는 원격지에 있는 본 발명에 의한 규칙 언어 규칙베이스를 참조할 때 참조자로 사용하게 되며, 이를 통해 원격지 지식베이스에 담긴 지식 요소를 손쉽게 참조할 수 있게 된다. 따라서 본 발명에 의한 규칙 언어는 확장된 규칙 표현력을 바탕으로 효과적인 지식 표현을 가능하게 하며, 2차 논리 형태의 술어 표현을 지원하므로 복잡한 형태의 규칙을 간단하게 표현할 수 있다.The present invention relates to a rule language and a processing system effective for creating a rulebase for intelligently providing various services by referring to, interpreting, and inferring two kinds of knowledge (ontologies and rulebases) distributed on the Web. The rule language according to the present invention has a URI as a basic data type. URI can be used to refer to the knowledge elements described in the web ontology and rulebase, and the rule language execution environment according to the present invention performs the various knowledge acquisition operations on the referenced URIs. Allows smooth inference of the written rulebase. In addition, all components (Rule, Fact, Predicate, and Constant) of the rulebase written in the rule language according to the present invention are given a URI as a separator. The URI given to each element is used as a reference when referring to the rule language rulebase according to the present invention at a remote location, through which the knowledge element contained in the remote knowledge base can be easily referred to. Therefore, the rule language according to the present invention enables efficient expression of knowledge on the basis of extended rule expression power, and supports the expression of predicates in the form of secondary logic so that the rules of complex forms can be easily expressed.

시맨틱 웹, 규칙베이스, 온톨로지, 규칙언어, 연동, 전문가 시스템Semantic Web, Rulebase, Ontology, Rule Language, Interworking, Expert System

Description

웹 연동 지식을 기술하기 위한 규칙언어 처리시스템 및 그 방법{Rule Language and Processing the same for semantic web} Rule language and processing method for describing web interlocking knowledge and its method {Rule Language and Processing the same for semantic web}             

도 1a는 본 발명이 적용되는 분산 웹 지식 환경을 도시한 구성도,1A is a block diagram illustrating a distributed web knowledge environment to which the present invention is applied;

도 1b는 본 발명이 적용되는 시맨틱 웹의 계층적 구조를 도시한 도면,1B illustrates a hierarchical structure of the semantic web to which the present invention is applied;

도 2는 본 발명에 따른 규칙언어 처리시스템의 기본 구조도,2 is a basic structural diagram of a rule language processing system according to the present invention;

도 3은 본 발명에 의한 규칙 언어로 작성된 규칙베이스와 규칙언어 처리시스템을 이용한 분산 지식 참조, 입수 및 처리 개념을 도시한 도면, 3 is a diagram illustrating distributed knowledge reference, acquisition and processing concept using a rulebase and a rule language processing system written in a rule language according to the present invention;

도 4는 본 발명에 의한 규칙 언어 처리 시스템의 원격지 추론 엔진 연동을 통한 외부 웹 지식 참조 개념을 도시한 도면,4 is a diagram illustrating an external web knowledge reference concept through a remote inference engine interworking of a rule language processing system according to the present invention;

도 5는 본 발명에 의한 규칙 언어 처리 시스템의 원격 바인딩 수행 절차를 도시한 도면,5 is a diagram illustrating a remote binding performing procedure of a rule language processing system according to the present invention;

도 6은 본 발명에 따른 원격 추론 엔진과의 통신을 통한 원격 바인딩 실행 개념을 도시한 도면.6 is a diagram illustrating a remote binding execution concept through communication with a remote inference engine according to the present invention.

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

102: 온톨로지 104: 온톨로지 규칙베이스102: ontology 104: ontology rule base

106: 규칙베이스 200: 규칙언어 처리시스템106: rulebase 200: rule language processing system

210: 내부 작업 메모리 220: 원격 바인더210: internal working memory 220: remote binder

230: 추론엔진 240: 온톨로지 변환기230: inference engine 240: ontology converter

250: 자바 객체 연동기250: Java object interlocker

본 발명은 인공지능 분야에서 지식 표현 및 추론 분야를 기반으로 하는 전문가 시스템(Expert System)에 관한 것으로, 더욱 상세하게는 웹에 분산된 두 가지 종류의 지식(온톨로지 및 규칙베이스)을 참조 및 해석하여 추론함으로써 지능적으로 각종 서비스를 제공하기 위한 규칙베이스를 작성하는데 효과적인 규칙 언어와 그 처리 시스템에 관한 것이다.The present invention relates to an expert system based on the field of knowledge representation and reasoning in the field of artificial intelligence. More specifically, it refers to and interprets two types of knowledge (ontologies and rulebases) distributed on the web. By reasoning, the present invention relates to a rule language and its processing system that are effective in creating a rulebase for intelligently providing various services.

일반적으로, 전문가 시스템과 같은 지식시스템은 전문가에 의해 사용되는 추론업무를 에뮬레이트하는 컴퓨터시스템이다. 이러한 지식시스템은 전형적으로 지식베이스(knowledge base)내에 저장된 엔코드된 전문가의 지식을 번역하기 위해 추론엔진(inference engine)을 사용한다. 지식베이스의 영역 또는 문제의 범위가 충분히 좁고, 충분히 큰 규모의 지식이 지식베이스 내에 적당히 코드된다면, 전문가시스템은 전문가의 능력에 필적하는 또는 그를 초과하는 성능을 달성할 수 있다. In general, knowledge systems, such as expert systems, are computer systems that emulate the inference tasks used by experts. Such knowledge systems typically use an inference engine to translate the knowledge of an encoded expert stored in a knowledge base. If the area of the knowledge base or the scope of the problem is sufficiently narrow and a sufficiently large amount of knowledge is properly coded in the knowledge base, the expert system can achieve performance comparable to or exceeding that of the expert.

이처럼, 전문가시스템은 어려운 문제를 해결하기 위하여 전문가의 지식을 적용시키는 것으로, 반복적인 방법에 의한 문제해결 행위로서 사고의 개념을 나타내 기 위해 심볼을 사용한다. 전문가시스템은 문제분야의 특수한 영역에 국한된 전문지식을 저장한 지식베이스가 있고, 이 지식베이스에는 지식이 사실(fact)이나 규칙(rule)의 형태로 저장된다. In this way, the expert system applies the expert's knowledge to solve difficult problems and uses symbols to represent the concept of thinking as a problem solving act by repetitive methods. An expert system has a knowledge base that stores expertise that is specific to a particular area of the problem area, where the knowledge is stored in the form of facts or rules.

전문가시스템의 핵심부분은 추론기관인데, 이는 현 상황에 적합한 규칙을 찾아내고, 이를 수행시키는 역할을 담당한다. 이러한 전문가시스템은 지식베이스, 작업메모리, 제어부분 및 추론엔진으로 구성되는데, 크게는 추론엔진과 지식베이스로 분류할 수 있다. 추론이란 알고 있는 사실(fact)과 규칙(rule)으로부터 새로운 사실을 추정하여 추출해나가는 과정을 말하고, 지식베이스는 데이터를 나타내는 사실과 그러한 사실들을 의사결정의 자료로 사용하는 규칙으로 구성된다.A key part of the expert system is the reasoning agency, which is responsible for identifying and implementing the appropriate rules for the current situation. Such expert system consists of knowledge base, working memory, control part, and inference engine, and can be classified into inference engine and knowledge base. Inference refers to the process of estimating and extracting new facts from known facts and rules, and the knowledge base consists of facts that represent data and rules that use those facts as the data for decision making.

이와 같은 전문가 시스템 분야는 발전과 실용화를 거듭하여 현재 상당수의 비즈니스 규칙 엔진(Business Rule Engine) 제품들이 기업의 업무용 응용으로 개발되어 있는 상황이다. 이러한 기존의 제품들은 종래의 전문가 시스템과 마찬가지로 폐쇄된 규칙베이스를 대상으로 추론 기능을 수행한다. 대개의 경우, 한번의 추론 세션 실행의 대상으로 단순하고 작은 규모의 규칙 집합(Rule Set)을 적용하고 있으며, 지식의 처리 측면 보다는 기업용 응용의 논리 연산을 대신하는 측면이 강하다. This field of expert systems has been developed and put into practical use, and now many business rule engine products are being developed for business applications. These existing products, like traditional expert systems, perform inference functions on closed rulebases. In most cases, a simple and small rule set is applied to the execution of one reasoning session, and it is a strong alternative to the logical operation of the enterprise application rather than the processing of knowledge.

예컨대, 삼성에스디에스(주)에서 출원하여 등록번호 0347961 호로 2002.08.09 자 등록받은 "상품/규칙 관리 시스템 및 방법, 그 프로그램 소스를 기록한 기록 매체 "는 보험, 은행, 카드 등 금융관련기관 시스템에 구현되어 있는 업무처리 로직 및 상품 관련 규칙들을 프로그램 소스 레벨이 아닌 데이터 베이스에 등록시키고, 이를 추론하는 규칙엔진이 해석하여 관련 업무가 처리될 수 있도록 하 기 위한 상품/규칙 관리 시스템 및 방법을 개시하고 있다. For example, "Product / Rule Management System and Method, and a recording medium recording the source of the program", filed by Samsung SDS Co., Ltd. and registered on Aug. 09, 2002, registered with No. 0347961, may be applied to financial institutions such as insurance, banks, cards, etc. To register the implemented business logic and product-related rules in the database, not the program source level, and to disclose a product / rule management system and method for interpreting the rule engine to infer the related business can be processed have.

이러한 선행기술은 네트워크 통신망을 통해 상품/규칙 관리 서버에 온라인 또는 배치 접속을 이룬 사용자의 요구에 응하여 검색된 정보를 제공하기 위한 상품 및 규칙 정보를 프로그램 언어를 이용하여 응용 로직으로 작성하는 것이 아니라, 각 규칙 및 상품 정보를 테이터베이스로 구축하여, 정보 검색 요구시 테이터베이스로부터 상품 및 규칙 정보를 검색하여 사용자가 요구하는 정보를 추론하고, 추론된 정보를 사용자에게 제공하는 한편, 상품 및 규칙 정보를 수정하거나, 새롭게 등록시키고자 하는 경우 응용의 수정없이 상술한 테이터베이스에 저장된 정보만을 변경시키거나, 새롭게 등록시켜 상품 및 규칙 정보를 간편하고, 정확하게 갱신할 수 있다. This prior art does not write product and rule information in application logic using a programming language to provide the retrieved information in response to a user's request for an online or batch connection to a product / rule management server through a network communication network. Constructing rules and product information into a database, retrieving the product and rule information from the database when requesting information retrieval, inferring the information required by the user, providing the inferred information to the user, and modifying the product and rule information Or, if you want to register a new, only the information stored in the above-described database without modifying the application can be changed or newly registered can easily and accurately update the product and rule information.

그리고 삼성중공업(주)에서 출원하여 등록번호 제 0241849 호로 2000.03.02 일자 등록받은 "블랙보드 기반의 혼합추론 전문가 시스템 "은 지식표현 및 지식기반이 간단한 소형 시스템과 복잡한 대형 시스템에 대하여 능동적으로 대처하며, 독립된 추론엔진을 갖는 블랙보드 기반의 전문가시스템을 개시하고 있다. 이러한 선행발명의 전문가시스템은 대상물로부터 획득하는 데이터를 모니터링하여 증상을 결정하는 모니터링모듈과, 모니터링모듈에서 결정한 증상을 이벤트로 생성하는 이벤트 핸들러와, 사실과 규칙의 형태로 지식을 저장하는 지식베이스 및 사실과 규칙으로부터 새로운 사실을 추정하여 추출하는 추론엔진으로 된 지식원과, 고장진단과정에서 생성되는 정보를 저장하는 작업메모리인 블랙보드 사이에서 서로 제어하지 않고 블랙보드의 변화에 의해서만 추론엔진이 가동되도록 구성된다. The "Blackboard-based Mixed Reasoning Expert System" filed by Samsung Heavy Industries Co., Ltd. and registered on 02.03.02 dated 2000.03.02 proactively responds to small and simple systems with simple knowledge expression and knowledge base. In addition, a blackboard-based expert system with independent reasoning engines is disclosed. The expert system of the present invention includes a monitoring module for determining symptoms by monitoring data obtained from an object, an event handler for generating symptoms determined by the monitoring module as an event, a knowledge base for storing knowledge in the form of facts and rules, The reasoning engine is operated only by the change of the blackboard without controlling each other between the knowledge source of the inference engine that estimates and extracts new facts from the facts and rules, and the working memory that stores the information generated in the troubleshooting process. It is configured to be.

그런데 이러한 종래기술들은 정형화된 웹 지식 표현 도구인 웹 온톨로지 또는 웹 상의 규칙베이스를 처리할 수 있는 기능을 보유하고 있지 않으며, 이와 같은 지식을 처리하려면 번거로운 변환 과정을 여러 단계 수행해야만 하는 문제점이 있다.However, these conventional technologies do not have a function of processing a web ontology or a rulebase on the web, which is a standardized web knowledge expression tool, and there is a problem that a cumbersome conversion process must be performed to process such knowledge.

한편, 최근 시맨틱 웹의 등장과 함께 지식을 정형화되고 표준화된 형태로 기술하여 웹 상에 공개하여 웹을 통한 지능적이고 정확한 정보 서비스를 가능하게 하는 기술이 각광을 받고 있다. 웹 친화적인 형태로 지식을 표현하는 기술로 웹 온톨로지 관련 업계의 표준 언어 및 처리 기술들이 등장하고 있으며, 표준화된 규칙 표현 방안도 논의되고 있다. On the other hand, with the advent of the Semantic Web, a technology that enables the intelligent and accurate information service through the web by describing knowledge in a standardized and standardized form and opening it on the web has been in the spotlight. As a technology for representing knowledge in a web-friendly form, standard language and processing technologies of the industry related to web ontology are emerging, and standardized rule expression methods are also discussed.

이와 같은 조류에 맞추어 시맨틱 웹 기술을 이용하여 저작 및 공개된 지식베이스를 참조하여 추론 등의 처리 작업을 수행하기 위한 추론 엔진들이 개발되고 있으며, 일부 공개된 것들도 있다. 이들 엔진은 웹 온톨로지를 참조할 수 있고 추론도 실행할 수 있어 웹 친화적이라는 장점을 지니고 있으나, 기존의 상용 비즈니스 엔진 제품들처럼 외부 객체 시스템과 연동할 수 없고, 표현력에 있어서도 비교적 열악한 문제점이 있다. 예를 들어, 규칙 표현에 있어 조건부에 'OR'를 사용할 수 없고, 결론부에 부정사를 사용할 수 없으며, 이들 엔진 대부분은 W3C의 RDF(Resource Description Framework)를 기반으로 하고 있어 술어의 항을 두 개 이상 기술할 수 없다. 따라서 이와 같은 표현력에 있어서의 제약은 사용자가 지식을 효과적으로 표현할 수 없는 문제점이 있다.In line with this trend, inference engines have been developed to perform processing such as inference by referring to a knowledge base published and published using semantic web technology, and some have been disclosed. These engines have the advantage of being web-friendly because they can refer to web ontology and perform inferences, but they cannot interoperate with external object systems like the existing commercial business engine products, and have relatively poor problems in expression power. For example, you can't use 'OR' in conditional expressions, you can't use infinitives in conclusions, and most of these engines are based on the W3C's Resource Description Framework (RDF). It can not be described above. Therefore, such a limitation in expressive power has a problem that a user cannot express knowledge effectively.

본 발명은 상기와 같은 문제점을 해결하기 위하여 상용 비즈니스 규칙 엔진들이 지닌 풍부한 지식 표현력 및 외부 객체 연동 기능 등을 보유하면서 웹 지식을 효과적으로 참조하고 처리할 수 있는 규칙언어 처리시스템 및 방법을 제공하는데 그 목적이 있다.The present invention provides a rule language processing system and method that can efficiently refer to and process web knowledge while retaining the rich knowledge expression power and external object interworking functions of commercial business rule engines to solve the above problems. There is this.

상기 목적을 달성하기 위한 본 발명의 시스템은 웹상에 분산되어 존재하는 온톨로지와 규칙베이스를 읽어들여 처리하기 위한 시맨틱 웹 시스템에 있어서, 소정의 규칙언어로 작성된 상기 규칙베이스를 읽어 저장하기 위한 내부 작업 메모리; 상기 웹으로부터 추론 작업에 필요한 온톨로지들을 읽어들여 내부 데이터 구조로 변환한 후 상기 내부 작업 메모리에 추가하는 온톨로지 변환기; 상기 웹에 존재하는 외부 추론 엔진과 통신을 통해 동적인 웹 지식을 실시간 참조하는 원격 바인더; 상기 내부 작업 메모리에 저장된 데이터를 처리하고, 상기 원격 바인더를 통해 외부 지식을 참조하여 추론 작업을 수행하는 추론엔진; 및 상기 추론 엔진이 추론 작업을 실행하는 도중 자바 클래스 타입 또는 메쏘드에 대한 참조 URI를 발견하게 되면, 특정 클래스 타입의 자바 객체를 찾거나 자바 객체의 메쏘드를 호출하기 위한 자바 객체 연동기를 포함하는 것을 특징으로 한다.The system of the present invention for achieving the above object is a semantic web system for reading and processing the ontology and rulebase existing on the web, the internal working memory for reading and storing the rulebase written in a predetermined rule language ; An ontology converter which reads ontology necessary for inferencing work from the web, converts it into an internal data structure, and adds it to the internal working memory; A remote binder for real-time reference of dynamic web knowledge through communication with an external inference engine residing on the web; An inference engine that processes data stored in the internal working memory and performs inference by referring to external knowledge through the remote binder; And a Java object interlocker for finding a Java class of a specific class type or calling a method of the Java object when the inference engine finds a reference URI for a Java class type or a method while executing the inference operation. It is done.

상기 목적을 달성하기 위하여 본 발명의 방법은, 웹상에 분산되어 존재하는 온톨로지와 규칙베이스를 읽어들여 처리하기 위한 시맨틱 웹에 있어서, (1)외부 웹 지식베이스를 참조하도록 하는 구문과, (2)이차 논리 형태의 술어 표현 구문, 원격 지식베이스 참조 구문과, (3)규칙베이스, 사실, 규칙, 클래스, 개체, 속성에 URI를 부여할 수 있는 구문과, (4)약한 부정과 강한 부정을 표현할 수 있는 구문을 동시에 지원하는 규칙 언어를 이용하여 규칙베이스를 저작하는 제 1단계; 상기 규칙베이스를 규칙 언어 처리기가 내부 작업 메모리로 로딩하는 제 2단계; 상기 규칙베이스에 기술된 바에 따라 원격지 웹 온톨로지 및 규칙베이스를 입수하여 상기 내부 작업 메모리에 추가하는 제 3단계; 자바 객체 연동을 지시하는 URI가 등장하면 자바 객체의 상태 참조 또는 상태 변경을 위한 메쏘드 호출을 수행하는 제 4단계; 및 원격 바인딩이 요청되는 경우, 외부 웹 지식베이스의 지식을 참조하여 바인딩을 시도하는 제 5단계를 포함하는 것을 특징으로 한다.
In order to achieve the above object, the method of the present invention is a semantic web for reading and processing ontologies and rulebases distributed on the web, including (1) a syntax for referencing an external web knowledge base, and (2) Predicate expression syntax in secondary logical form, remote knowledge base reference syntax, (3) a syntax for giving URIs to rulebases, facts, rules, classes, objects, and attributes, and (4) weak and strong negativity. Authoring a rulebase using a rule language that simultaneously supports a syntax that can be used; Loading the rulebase into an internal working memory by a rule language processor; A third step of obtaining a remote web ontology and rulebase as described in the rulebase and adding it to the internal working memory; A fourth step of performing a method call for a state reference or a state change of a Java object when a URI indicating a Java object interworking appears; And a fifth step of attempting binding by referring to knowledge of an external web knowledge base when a remote binding is requested.

이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

[본 발명의 규칙언어 처리 시스템의 구조][Structure of Rule Language Processing System of the Present Invention]

도 1a는 본 발명에 의한 규칙 언어와 규칙언어 처리 시스템이 활용되는 전형적인 시맨틱 웹 환경을 도식화한 도면이고, 도 1b는 시맨틱 웹의 계층구조를 도시한 도면이다.FIG. 1A is a diagram illustrating a typical semantic web environment utilizing a rule language and a rule language processing system according to the present invention, and FIG. 1B is a diagram showing a hierarchical structure of the semantic web.

통상, 시맨틱 웹(semantic web)은 웹상의 정보에 잘 정의된 의미를 부여함으로써 사람뿐만 아니라 컴퓨터도 쉽게 문서의 의미를 해석할 수 있게 하여 컴퓨터를 이용한 정보의 검색 및 해석, 통합 등의 업무를 자동화하기 위한 것이다. 이러한 시맨틱 웹은 도 1b에 도시된 바와 같이, URI, Unicode, XML, 명칭공간(Namespaces), RDF DB, RDF 스키마, 온톨로지(ontology), 규칙(Rule), 프루프(Proof), 트러스트(Trust)에 이르는 계층적인 구조를 갖고 있다. 가장 기본이 되는 층은 자원을 명시적으로 지칭하는 URI(Universal Resource Identifier)와 UNICODE로 구성되고, 그 위에 임의의 개념을 모듈방식으로 정의할 수 있는 XML(Extensible Markup Language)과 명칭공간이 있고, 그 다음으로 자원을 기술하기 위한 RDF(Resource Description Framework)가 위치한다. XML은 각자 웹 페이지의 일부분을 사용자가 정의한 태그로 표시하는 것이 가능하고, RDF에서는 의미를 주어, 동사, 목적어에 해당하는 3가지 요소(자원, 속성, 값)로 표현한다. 온톨로지는 특정 도메인의 지식을 명시적으로 표현하기 위한 개념들, 개념 사이의 관계, 개념의 속성 및 특성, 속성 및 특성에 부여된 제약조건 및 객체들로 표현된다. 규칙과 논리는 온톨로지에 기반하여 추론을 가능하게 하고, Proof와 Trust는 시맨틱 웹 정보의 신뢰성과 보안에 관한 내용이다.In general, the semantic web gives well-defined meanings to information on the web so that not only people but computers can easily interpret the meanings of documents, thereby automating tasks such as searching, interpreting, and integrating information using computers. It is to. Such a semantic web is represented in URI, Unicode, XML, Namespaces, RDF DB, RDF Schema, Ontology, Rule, Proof, and Trust. It has a hierarchical structure. The most basic layer consists of Universal Resource Identifiers (URIs) and UNICODEs that explicitly refer to resources, on top of which there are Extensible Markup Language (XML) and namespaces that allow you to define arbitrary concepts modularly. Next, a resource description framework (RDF) for describing a resource is located. XML can display parts of web pages with user-defined tags. RDF gives meaning and expresses three elements (resource, attribute, value) corresponding to verb and object. Ontologies are expressed as concepts to express knowledge of a particular domain, relationships between concepts, attributes and properties of concepts, constraints and objects imparted to properties and properties. Rules and logic enable inference based on ontology, while Proof and Trust are about the reliability and security of semantic web information.

도 1a를 참조하면, 본 발명이 적용될 수 있는 웹(Web)에는 온톨로지(102)와 온톨로지 규칙베이스(104)를 갖는 제1 사이트(Site 1)와, 온톨로지(102)와 온톨로지 규칙베이스(104)를 갖는 제2 사이트(Site 2), 규칙베이스(106)를 갖는 제3 사이트(Site 3), 규칙베이스(106)를 갖는 제4 사이트(Site 4), 온톨로지(102)를 갖는 제5 사이트(Site 5)가 존재하고 있다.Referring to FIG. 1A, a web to which the present invention may be applied includes a first site having an ontology 102 and an ontology rule base 104, an ontology 102 and an ontology rule base 104. The second site (Site 2) having, the third site (Site 3) having the rulebase 106, the fourth site (Site 4) having the rulebase 106, and the fifth site having the ontology 102 ( Site 5) exists.

도 1에 도시된 바와 같이, 웹 지식은 크게 두 종류로 나뉘어지는데, 하나는 온톨로지(Ontology:102)이고, 다른 하나는 규칙베이스(Rulebase:106)이다. 온톨로지(102)와 규칙베이스(106)는 각기 지식 표현 특성 및 표현력이 상이한 부분이 있 으므로, 사용자는 온전한 지식 표현을 위해 온톨로지(102)와 규칙베이스(106)를 모두 사용해야 한다. 제 1사이트(Site 1)와 제 2사이트(Site 2)는 하나의 사이트에 두 종류의 지식베이스, 즉 온톨로지(102)와 온톨로지 규칙베이스(104)가 공존하는 상황을 보여준다. As shown in FIG. 1, web knowledge is largely divided into two types, one is ontology (102) and the other is rulebase (106). Since the ontology 102 and the rulebase 106 have different parts of knowledge expression characteristics and expression power, the user should use both the ontology 102 and the rulebase 106 for the full knowledge representation. The first site (Site 1) and the second site (Site 2) shows a situation in which two types of knowledge bases, that is, the ontology 102 and the ontology rule base 104 coexist in one site.

예를 들어, 가족 관계를 표현하는 지식을 서비스하는 사이트를 구축하는 경우, 가족 구성 구조를 표현하는 지식은 온톨로지(102)를 사용하되, 온톨로지(102)로 표현할 수 없는 관계 - 예를 들어, 삼촌과 조카 관계 - 나 규칙으로 표현될 수 밖에 없는 지식 - "아버지는 같지만 어머니는 서로 다른 두 형제가 있다면 이들은 이복 형제다." - 은 온톨로지 규칙베이스(104)를 통해 표현한다. For example, if you build a site that services knowledge that represents family relationships, knowledge that expresses family organizational structure uses an ontology 102 but cannot be represented by an ontology 102-for example, uncle And nephew relations-knowledge that can only be expressed as a rule-"If the father is the same but the mother has two different brothers, they are half brothers." -Is represented through the ontology rule base 104.

이와 같이 온톨로지와 규칙베이스는 상보적인 관계로서 온전한 지식을 표현하기 위해 양자가 다 필요하며, 따라서 본 발명의 규칙언어 처리시스템(200)은 적절한 웹 지식 처리를 위해 규칙 뿐만 아니라 온톨로지로 표현된 지식도 처리할 수 있어야 한다. 또한 온톨로지로 표현된 지식을 규칙베이스에서 사용하거나 규칙베이스에서 정의된 지식을 온톨로지에서 사용할 수 있는 방법이 필요하다. 본 발명에 의한 규칙 언어 및 규칙언어 처리 시스템은 이러한 요구 사항을 적절히 만족시킨다.As such, the ontology and rulebase are both required to express intact knowledge as a complementary relationship, and therefore, the rule language processing system 200 of the present invention may not only express rules as well as ontologies for proper web knowledge processing. Must be able to handle In addition, there is a need for a method that can use knowledge expressed in ontology in a rulebase or use knowledge defined in a rulebase in an ontology. The rule language and the rule language processing system according to the present invention satisfactorily satisfy these requirements.

도 2는 본 발명에 따른 규칙언어 처리 시스템의 구성 블록도이다.2 is a block diagram of a rule language processing system according to the present invention.

도면을 참조하면, 본 발명의 규칙언어 처리시스템(200)은 내부 작업 메모리(210), 원격 바인더(220), 전향 추론엔진(230), 온톨로지 변환기(240), 자바 객체 연동기(250) 등 크게 다섯가지 주요 구성 요소로 이루어져 있다.Referring to the drawings, the rule language processing system 200 according to the present invention includes an internal working memory 210, a remote binder 220, a forward inference engine 230, an ontology converter 240, a Java object interlocker 250, and the like. It consists of five major components.

추론엔진(230)은 본 발명에 의한 규칙언어로 작성된 규칙베이스(106)를 입력으로 추론 작업을 수행하는 전향 추론 엔진이다. 규칙언어 처리시스템(200)은 규칙베이스(106)를 읽어들인 다음 내부 작업 메모리(210)에 입력하고, 추론 엔진(230)은 내부 작업 메모리(210)를 대상으로 추론 작업을 수행한다. The inference engine 230 is a forward inference engine that performs inference by inputting the rule base 106 written in the rule language according to the present invention. The rule language processing system 200 reads the rule base 106 and inputs it into the internal working memory 210, and the inference engine 230 performs the inference work on the internal working memory 210.

웹 온톨로지(102)는 앞서 설명한 대로 규칙베이스(106)와 상보적인 관계를 유지하는 지식베이스이다. 본 발명의 규칙언어 처리시스템(200)은 추론 작업에 필요한 온톨로지(102)들을 웹으로부터 읽어들인 다음 온톨로지 변환기(240)를 통해 내부 데이터 구조로 변환한 후, 내부 작업 메모리(210)에 추가함으로써 추론 작업에 적용한다. The web ontology 102 is a knowledge base that maintains a complementary relationship with the rule base 106 as described above. The rule language processing system 200 of the present invention reads the ontology 102 necessary for the reasoning work from the web, converts the ontology 102 into an internal data structure through the ontology converter 240, and then infers it by adding it to the internal work memory 210. Apply to your work.

자바 객체 연동기(250)는 본 발명에 의한 규칙언어 처리시스템(200)의 자바 객체 연동 기능을 담당하는 부분이다. 추론 엔진(230)이 추론 작업을 실행하는 도중 자바 클래스 타입 또는 메쏘드에 대한 참조 URI를 발견하게 되면, 특정 클래스 타입의 자바 객체(202)를 찾거나 자바 객체(202)의 메쏘드를 호출해야 한다. The Java object interlocker 250 is a part in charge of the Java object interworking function of the rule language processing system 200 according to the present invention. If the inference engine 230 finds a reference URI for a Java class type or method while executing an inference operation, it must find a Java object 202 of a particular class type or call a method of the Java object 202.

이러한 작업을 수행하는 부분이 자바 객체 연동기(250)이다. 원격 바인더(220)는 본 발명에 의한 규칙언어 처리시스템(200)이 웹 상에 분산되어 있고, 동적으로 변화하는 지식들을 대상으로 추론하기 위해 필요한 기능을 수행하는 부분이다. 원격 바인더(220)는 외부 추론 엔진(204) 또는 외부 지식베이스 - 즉, 웹 온톨로지, 규칙베이스, 원격 자바 객체, 웹 서비스 등 - 를 참조하여 내부 규칙 처리를 수행하는 요소이다. 주로 외부 추론 엔진(204)과 통신을 통해 동적인 웹 지식을 실시간 참조하는 기능을 수행하게 된다.The part performing such a task is the Java object interlocker 250. The remote binder 220 is a part in which the regular language processing system 200 according to the present invention is distributed on the web and performs a function required for inferring dynamically changing knowledge. The remote binder 220 is an element that performs internal rule processing by referring to the external inference engine 204 or an external knowledge base, that is, a web ontology, rule base, remote Java object, web service, and the like. Mainly referring to the dynamic web knowledge through communication with the external inference engine 204.

이러한 본 발명의 규칙언어 처리시스템에 의해 처리되는 본 발명의 규칙언어는 다음과 같다.The rule language of the present invention processed by such a rule language processing system of the present invention is as follows.

[본 발명에 의한 규칙 언어][Rule Language According to the Present Invention]

본 발명은 웹 연동 지식 처리에 적합한 규칙 언어를 포함하고 있다. 다음 표 1은 본 발명에 의해 제시된 규칙 언어의 구문 구조를 가상의 BNF(Backus-Naur Form)로 기술한 것이다. 이하에서는 주요 생성 규칙을 중심으로 언어의 구조와 기능을 설명한다. The present invention includes a rule language suitable for web-linked knowledge processing. Table 1 below describes the syntax structure of the rule language presented by the present invention as a virtual BNF (Backus-Naur Form). Hereinafter, the structure and function of the language will be described based on the main generation rule.

rulebase ::= {reference | uriprefix} basenamespace "rulebase" [name | uri] "{" {fact | rule | classdef | propertydef | individual} "}" reference ::= "refer" uri ";" uriprefix ::= "prefix" identifier "=" uri ";" basenamespace::= "namespace" "=" uri ";" rule ::= "rule" (name | uri) "is" rulebody ";" rulebody ::= "if" {quantifier} sentence "then" sentence ";" fact ::= "fact" name "is" (gpredicate | "neg" gpredicate) ";" gpredicate ::= objectconst [ "(" constant {"," constant}] classdef ::= "class" classid [ "inherits" classid { "," classid} ";" propertydef ::= "property" propertyid "for" classid {"," classid} "is" typeid ";" individual ::= "individual" individualid "is" classid ["and" propvalue { "," propvalue}] ";" propvalue ::= propertyid "=" constant quantifier ::= "("( "forall"| "forsome") variable {"," variable}")" sentence ::= atom {("and" | "or") atom} atom ::= literal | "("sentence ")" literal ::= predicate | "not" predicate | "neg" predicate | compexpr predicate ::= predsymbol [ "(" term { "," term} ")" predsymbol ::= objectconst | variable term ::= (variable | constant | functioncall) | term "," term functioncall::= functionid "(" [term {"," term}] ")" compexpr ::= term ("<" | "<=" | "=" | ">=" | ">" ) term variable ::= "?" identifier constant ::= objectconst | valueconst objectconst ::= name | qName | uri valueconst ::= integer | float | string | boolean propertyid ::= name | qName | uri typeid ::= classid | uri classid ::= name | qName | uri boolean ::= "true" | "false" name ::= identifier qName ::= prefix ":" identifier prefix ::= identifier uri ::=IETF의 URI 구문 문법에 합하는 문자열 integer ::=정수를 나타내는 문자열 float ::=실수를 나타내는 문자열 string ::=따옴표로 묶인 문자열  rulebase :: = {reference | uriprefix} basenamespace "rulebase" [name | uri] "{" {fact | rule | classdef | propertydef | individual} "}" reference :: = "refer" uri ";" uriprefix :: = "prefix" identifier "=" uri ";" basenamespace :: = "namespace" "=" uri ";" rule :: = "rule" (name | uri) "is" rulebody ";" rulebody :: = "if" {quantifier} sentence "then" sentence ";" fact :: = "fact" name "is" (gpredicate | "neg" gpredicate) ";" gpredicate :: = objectconst ["(" constant {"," constant}] classdef :: = "class" classid ["inherits" classid {"," classid} ";" propertydef :: = "property" propertyid "for" classid {"," classid} "is" typeid ";" individual :: = "individual" individualid "is" classid ["and" propvalue {"," propvalue}] ";" propvalue :: = propertyid "=" constant quantifier :: = "(" ("forall" | "forsome") variable {"," variable} ")" sentence :: = atom {("and" | "or") atom} atom :: = literal | " ("sentence") "literal :: = predicate |" not "predicate |" neg "predicate | compexpr predicate :: = predsymbol [" ("term {", "term}") "predsymbol :: = objectconst | variable term :: = (variable | constant | functioncall) | term "," term functioncall :: = functionid "(" [term {"," term}] ")" compexpr :: = term ("<" | "<=" | "=" | "> =" | ">") term variable :: = "?" identifier constant :: = objectconst | valueconst objectconst :: = name | qName | uri valueconst :: = integer | float | st ring | boolean propertyid :: = name | qName | uri typeid :: = classid | uri classid :: = name | qName | uri boolean :: = "true" | "false" name :: = identifier qName :: = prefix ":" identifier prefix :: = identifier uri :: =String that conforms to the IETF URI syntax syntax integer :: =A string representing an integer float :: =A string representing a real number  string :: =Quoted string 

[규칙베이스(Rulebase)][Rulebase]

본 발명에 따른 규칙언어를 이용하여 규칙베이스는 다음 표 2와 같이 정의된다.Using the rule language according to the present invention, a rule base is defined as shown in Table 2 below.

rulebase ::= {reference | uriprefix} basenamespace "rulebase" [name | uri] "{" {fact | rule | classdef | propertydef | individual} "}"rulebase :: = {reference | uriprefix} basenamespace "rulebase" [name | uri] "{" {fact | rule | classdef | propertydef | individual} "}"

상기 표 2를 참조하면, 규칙베이스는 각종 URI 관련 정보의 나열로 시작된다. "reference" 생성 규칙은 규칙베이스 처리를 위해 참조해야 할 필요가 있는 지식베이스를 가리키는 URI를 기술하는데 사용한다. 여기서, 지식베이스는 웹 온톨로지(102) 또는 규칙베이스(106)이다.Referring to Table 2 above, the rulebase begins with a list of various URI-related information. The "reference" generation rule is used to describe a URI that points to a knowledge base that needs to be referenced for rulebase processing. Here, the knowledge base is the web ontology 102 or the rule base 106.

"uriprefix" 생성 규칙은 규칙베이스에서 사용할 URI에 대한 축약자를 지시하기 위해 사용한다. The "uriprefix" generation rule is used to indicate an abbreviation for the URI to use in the rulebase.

"basenamespace" 생성 규칙은 규칙베이스에 의해 생성되는 지식 요소들 - 규칙, 사실, 술어 등 - 이 존재하는 이름 공간을 정의하기 위해 사용한다.The "basenamespace" generation rule is used to define the namespace in which the knowledge elements generated by the rulebase-rules, facts, predicates, and so on-exist.

규칙베이스의 본체는 키워드인 "rulebase"로 시작된다. "rulebase" 다음에 규칙베이스를 지칭하는데, 사용될 규칙베이스의 이름이 기술된다. 규칙베이스의 내용은 중괄호("{", "}")로 둘러쳐진다. 규칙베이스의 구성 내용은 참으로 선언된 사실(fact), 규칙(rule), 클래스 정의(classdef), 속성 정의(propertydef), 개체 정의(individual)로 구성된다. 다음 표 3의 코드는 rulebase 생성 규칙에 따라 규 칙베이스의 뼈대를 적은 예이다.The body of a rulebase begins with the keyword "rulebase". "rulebase" is followed by a rulebase, in which the name of the rulebase to be used is described. The contents of the rulebase are enclosed in braces ("{", "}"). The rulebase consists of facts, rules, classdefs, propertydefs, and individual definitions declared as true. The code in Table 3 below shows the skeleton of the rulebase according to the rulebase creation rule.

refer http://person.com/Persons; prefix family = http://family.com/Family#; prefix human = http://human.com/Human#; namespace = http://mysite.com/Rules#; rulebase MyRuleBase { ...... } refer http://person.com/Persons; prefix family = http://family.com/Family#; prefix human = http://human.com/Human#; namespace = http://mysite.com/Rules#; rulebase MyRuleBase {......}                                             

이 예에서 MyRuleBase는 namespace에 의해 정의된 이름 공간 URI인 "http://mysite.com/Rules#"의 수식을 받게 되어 외부에서 이 규칙베이스를 참조할 때는 "http://mysite.com/Rules#MyRuleBase"로 참조하여야 한다.In this example, MyRuleBase receives a formula of "http://mysite.com/Rules#", which is the namespace URI defined by the namespace, so when referencing this rulebase externally, "http://mysite.com/Rules #MyRuleBase ".

다음 표 4는 본 발명에 의한 규칙 언어로 작성한 규칙베이스의 예로서, RDF 추론을 위한 규칙베이스의 일부분이다.Table 4 below is an example of a rulebase written in the rule language according to the present invention, and is a part of the rulebase for RDF inference.

prefix rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns#; prefix owl = http://www.w3.org/2002/07/owl#; prefix xsd = http://www.w3.org/2001/XMLSchema#; prefix rdfs = http://www.w3.org/2000/01/rdf-schema#; namespace is http://etri.re.kr/2003/10/Bossam#; rulebase OwlRules { fact Fact1 is rdfs:Class(rdf:List); fact Fact2 is rdf:Property(rdf:first); fact Fact3 is rdfs:domain(rdf:first,rdf:List); fact Fact4 is rdfs:range(rdf:first,rdfs:Resource); fact Fact5 is rdf:Property(rdf:rest); fact Fact6 is rdfs:domain(rdf:rest,rdf:List); fact Fact7 is rdfs:range(rdf:rest,rdf:List); fact Fact8 is rdf:List(rdf:nil); fact subPropertyOfIsTransitive is owl:TransitiveProperty(rdfs:subPropertyOf); fact subClassOfIsTransitive is owl:TransitiveProperty(rdfs:subClassOf); fact differentFromIsSymmetric is owl:SymmetricProperty(owl:differentFrom); fact equivalenceIsSymmetric is owl:SymmetricProperty(owl:equivalentClass); fact OwlDLClass is rdfs:subClassOf(owl:Class,rdfs:Class); fact OwlFullClass is owl:equivalentClass(owl:Class,rdfs:Class); rule subClassOfRule1 is if rdfs:subClassOf(?subC,?supC) and ?subC(?ind) then ?supC(?ind); rule equivalentClass1 is if owl:equivalentClass(?c1,?c2) and ?c1(?z) then ?c2(?z); rule RangeRule1 is if rdfs:range(?p,?r) and ?p(?x,?y) then ?r(?y); rule DomainRule1 is if rdfs:domain(?p,?d) and ?p(?x,?y) then ?d(?x); rule CollectionRule1 is if rdf:rest(?l,rdf:nil) and rdf:first(?l,?i) then member(?i,?l) and length(?l,1); rule CollectionRule2 is if length(?l1,?len) and rdf:rest(?l,?l1) and [?l != ?l1] then length(?l,add(?len,1)); rule CollectionRule4 is if member(?i,?l1) and rdf:rest(?l,?l1) and [?l != ?l1] then member(?i,?l); rule Collection1 is if rdf:first(?list,?i) then member(?i,?list); ...... } prefix rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns#; prefix owl = http://www.w3.org/2002/07/owl#; prefix xsd = http://www.w3.org/2001/XMLSchema#; prefix rdfs = http://www.w3.org/2000/01/rdf-schema#; namespace is http://etri.re.kr/2003/10/Bossam#; rulebase OwlRules {fact Fact1 is rdfs: Class (rdf: List); fact Fact2 is rdf: Property (rdf: first); fact Fact3 is rdfs: domain (rdf: first, rdf: List); fact Fact4 is rdfs: range (rdf: first, rdfs: Resource); fact Fact5 is rdf: Property (rdf: rest); fact Fact6 is rdfs: domain (rdf: rest, rdf: List); fact Fact7 is rdfs: range (rdf: rest, rdf: List); fact Fact8 is rdf: List (rdf: nil);                                                  fact subPropertyOfIsTransitive is owl: TransitiveProperty (rdfs: subPropertyOf); fact subClassOfIsTransitive is owl: TransitiveProperty (rdfs: subClassOf); fact differentFromIsSymmetric is owl: SymmetricProperty (owl: differentFrom); fact equivalenceIsSymmetric is owl: SymmetricProperty (owl: equivalentClass); fact OwlDLClass is rdfs: subClassOf (owl: Class, rdfs: Class); fact OwlFullClass is owl: equivalentClass (owl: Class, rdfs: Class);                                                  rule subClassOfRule1 is if rdfs: subClassOf (? subC,? supC) and? subC (? ind) then? supC (? ind); rule equivalentClass1 is if owl: equivalentClass (? c1,? c2) and? c1 (? z) then? c2 (? z);                                                  rule RangeRule1 is if rdfs: range (? p,? r) and? p (? x,? y) then? r (? y); rule DomainRule1 is if rdfs: domain (? p,? d) and? p (? x,? y) then? d (? x);                                                  rule CollectionRule1 is if rdf: rest (? l, rdf: nil) and rdf: first (? l,? i) then member (? i,? l) and length (? l, 1); rule CollectionRule2 is if length (? l1,? len) and rdf: rest (? l,? l1) and [? l! =? l1] then length (? l, add (? len, 1)); rule CollectionRule4 is if member (? i,? l1) and rdf: rest (? l,? l1) and [? l! =? l1] then member (? i,? l); rule Collection1 is if rdf: first (? list,? i) then member (? i,? list); ......}                                             

본 발명에 의한 규칙언어 처리시스템(200)은 이상에서 설명한 규칙베이스를 이용하여 추론 작업을 실행할 때, "reference" 부에 적힌 URI에 접근하여 입수 가 능한 지식베이스가 있으면 입수하여 내부 작업 메모리(210)에 입력함으로써 해당 지식베이스에 대한 참조가 가능하도록 한다. When the rule language processing system 200 according to the present invention executes an inference operation using the rule base described above, if there is a knowledge base available by accessing the URI written in the "reference" part, the internal working memory 210 is obtained. ) To make reference to the knowledge base possible.

도 3은 본 발명에 따라 이와 같이 정적으로 외부 웹 지식을 참조하는 구조를 보여준다. 3 illustrates a structure of referencing external web knowledge statically in accordance with the present invention.

제 1사이트(310)의 규칙언어 처리 시스템의 추론엔진(301)은 본 발명에 의한 규칙 언어로 작성된 규칙베이스(106)를 대상으로 추론 작업을 수행한다. 규칙베이스(106) 내에 refer 구문을 통해 외부 지식베이스에 대한 참조 지시가 있는 경우, 추론엔진(301)은 기술된 URI들을 이용하여 사이트2(320), 사이트3(330), 사이트4(340)에 접속, 각 사이트에서 제공하는 지식베이스(온톨로지나 규칙베이스)를 읽어온다. 읽어 온 지식베이스 즉, 웹 온톨로지(102)와 규칙베이스(106)는 규칙언어 처리시스템(200)의 내부 작업 메모리(210)에 추가된다.The inference engine 301 of the rule language processing system of the first site 310 performs the inference operation on the rule base 106 written in the rule language according to the present invention. In the case where there is a referencing instruction to the external knowledge base through the refer statement in the rulebase 106, the inference engine 301 uses the URIs described in Site 2 (320), Site 3 (330), and Site 4 (340). Access the knowledge base (ontologies or rule bases) provided by each site. The read knowledge base, that is, the web ontology 102 and the rule base 106 is added to the internal working memory 210 of the rule language processing system 200.

[사실 정의(fact)][Fact]

본 발명의 규칙언어에서 사실정의는 다음 표 5와 같이 정의된다.In the rule language of the present invention, the fact definition is defined as shown in Table 5 below.

fact ::= "fact" name "is" (gpredicate | "neg" gpredicate) ";" gpredicate ::= objectconst [ "(" constant {"," constant}]fact :: = "fact" name "is" (gpredicate | "neg" gpredicate) ";" gpredicate :: = objectconst ["(" constant {"," constant}]

상기 표 5에서 사실(fact)은 상수 술어 기호와 상수항만으로 이루어진 "gpredicate"으로 구성된다. "neg"는 강한 부정을 나타내는 키워드로서, 사실에 "neg"가 붙으면 그 사실의 정반대를 참으로 선언하는 셈이 된다. 기존의 논리 프로그래밍 언어나 상용 비즈니스 규칙 제품들은 강한 부정을 표현할 수 있는 방편을 제공하지 않았으나, 본 발명에 의한 규칙 언어는 "neg" 키워드를 이용하여 이를 표현할 수 있도록 하고 있다. 다음 표 6의 코드는 사실(fact) 생성 규칙에 따라 작성한 사실 정의 구문의 예이다.In Table 5, a fact consists of a "gpredicate" consisting of a constant predicate symbol and a constant term only. "neg" is a keyword indicating strong negation. When "neg" is given to a fact, it is true that the opposite of the fact is declared. Conventional logic programming languages or commercial business rule products do not provide a way to express strong negativity, but the rule language according to the present invention can express it using the keyword "neg". The code in Table 6 below is an example of a fact definition syntax written according to a fact generation rule.

fact FatherOfJohn is family:hasFather(John,Sam); --- (1) fact BrotherOfSam is family:hasBrother(Sam,Nil); --- (2)fact Father Of John is family: has Father (John, Sam); --- (1) fact BrotherOfSam is family: hasBrother (Sam, Nil); --- (2)

상기 표 6에서 (1)번 구문은 John이라는 개체가 Sam이라는 개체를 아버지로 가진다는 의미가 되고, (2)번 구문은 Sam이라는 개체가 Nil이라는 개체를 형제로 가진다는 의미가 된다.In Table 6, the phrase (1) means that the entity John has an entity Sam as a father, and the phrase (2) means that the entity Sam has an entity Nil as a sibling.

[클래스 정의(classdef)][Classdef]

본 발명의 규칙언어에서 클래스는 다음 표 7과 같이 정의된다.In the rule language of the present invention, classes are defined as shown in Table 7 below.

classdef ::= "class" classid ["inherits" classid {"," classid} ";" classdef :: = "class" classid ["inherits" classid {"," classid} ";"                                             

상기 표 7에서 클래스는 객체 지향적 지식을 표현하기 위한 용도로 사용된다. 클래스와 속성을 정의함으로써 객체의 구조를 정의하고, 객체 정의를 통해 클래스의 구체적 사례들을 생성할 수 있다. 구문 구조에서 보듯이 클래스 정의는 정의되는 클래스의 ID를 기술하는 간단한 구조로 되어 있다. 추가적으로 상위 클래스 목록을 "inherits" 키워드를 이용하여 기술할 수 있다.In Table 7, the class is used to express object-oriented knowledge. By defining classes and attributes, you can define the structure of an object, and you can create concrete examples of classes through object definitions. As you can see from the syntax structure, the class definition is a simple structure that describes the ID of the class being defined. In addition, the upper class list can be described using the keyword "inherits".

다음 표 8은 본 발명의 규칙언어에서 클래스를 정의하는 예이다.Table 8 below is an example of defining classes in the rule language of the present invention.

Class Human inherits Animal; Class Human inherits Animal;                                             

[속성 정의(propertydef)][Propertydef]

본 발명의 규칙언어에서 속성은 다음 표 9와 같이 정의된다.In the rule language of the present invention, attributes are defined as shown in Table 9 below.

propertydef ::= "property" propertyid "for" classid {"," classid}"is" typeid ";" propertydef :: = "property" propertyid "for" classid {"," classid} "is" typeid ";"                                             

속성 정의는 클래스가 가지는 속성들을 정의하기 위해 사용하는 구문이다. 속성의 ID와 정의되는 속성을 가지게 되는 클래스들의 목록, 그리고 속성의 데이터 타입이 기술된다. 다음 표 10의 코드는 속성 정의의 예이다.Property definition is the syntax used to define properties of a class. The ID of the property, the list of classes that will have the property defined, and the data type of the property are described. The code in Table 10 below is an example of an attribute definition.

property age for Human is http://www.w3.org/2001/XMLSchema#positiveInteger;- (1) property hasFather for Human is Human; --- (2) property age for Human is http://www.w3.org/2001/XMLSchema#positiveInteger;- (1) property hasFather for Human is Human; --- (2)                                             

상기 표 10에서 (1)은 "age"라는 속성을 생성하는 구문이다. age는 Human 클래스의 속성으로 사용될 수 있으며, age 속성이 가질 수 있는 값은 W3C의 XML 스키마에 정의된 양의 정수(positiveInteger)라고 정의하고 있다. 본 발명에 의한 규칙언어 처리시스템(200)은 XML 스키마에 정의된 데이터 타입을 이해하며, 이에 따라 age 속성이 개체 선언이나 규칙에서 사용되었을 때 그 값이 양의 정수값에 합당한지 검사할 수 있다. 상기 표 10에서 (2)는 Human 클래스의 속성으로서, 타입이 Human 클래스인 속성 hasFather를 정의하는 구문이다.In Table 10, (1) is a syntax for creating an attribute called "age." age can be used as an attribute of Human class, and the value that age attribute can have is defined as positive integer (positiveInteger) defined in W3C's XML schema. The rule language processing system 200 according to the present invention understands the data type defined in the XML schema, and accordingly, can check whether the value is a positive integer value when the age attribute is used in the object declaration or the rule. . In Table 10, (2) is a property of the Human class and defines the property hasFather whose type is the Human class.

[개체 정의(individual)][Individual definition]

본 발명의 규칙언어에서 개체는 다음 표 11과 같이 정의된다.In the rule language of the present invention, an entity is defined as shown in Table 11 below.

individual ::= "individual" individualid "is" classid ["and" propvalue {"," propvalue}] ";" individual :: = "individual" individualid "is" classid ["and" propvalue {"," propvalue}] ";"                                             

상기 표 11에서 개체는 클래스의 구체적인 사례이다. 개체 정의는 개체의 ID, 개체의 타입, 그리고 개체의 속성값을 나열함으로써 정의된다. 다음 표 12의 코드는 개체 정의 예이다.In Table 11, the entity is a concrete example of a class. An entity definition is defined by listing the entity's ID, the entity's type, and its property values. The code in Table 12 below is an example of an object definition.

individual John is Human and age = 16, hasFather = Sam; individual John is Human and age = 16, has Father = Sam;                                             

상기 표 12의 구문은 John이라는 개체를 생성하는 구문이다. John의 타입은 Human 클래스이고, age 속성값은 16, hasFather 속성값은 Sam을 설정하고 있다.The syntax in Table 12 is a syntax for creating an entity named John. John's type is the Human class. The age property is set to 16 and the hasFather property is set to Sam.

[규칙 정의(rule)][Rule]

본 발명의 규칙언어에서 규칙은 다음 표 13과 같이 정의된다.Rules in the rule language of the present invention are defined as shown in Table 13.

rule ::= "rule" (name | uri) "is" rulebody ";" rulebody ::= "if" {quantifier} sentence "then" sentence ";" quantifier ::= "(" ("forall" | "forsome") variable {"," variable} ")" sentence ::= atom {("and" | "or") atom} atom ::= literal | "(" sentence ")" rule :: = "rule" (name | uri) "is" rulebody ";" rulebody :: = "if" {quantifier} sentence "then" sentence ";" quantifier :: = "(" ("forall" | "forsome") variable {"," variable} ")" sentence :: = atom {("and" | "or") atom} atom :: = literal | "(" sentence ")"                                             

다음 표 13에서 규칙베이스의 핵심 지식 요소인 규칙은 조건부와 결론부로 구성된다. "Rulebody" 생성 규칙에서 키워드 "if" 다음에 나오는 문장(sentence)은 조건부를 기술하는 문장이며, "then" 다음에 나오는 문장(sentence)은 결론부를 기술하는 문장이다. In Table 13, rules, the core knowledge element of the rulebase, consist of conditional parts and conclusions. In the "Rulebody" generation rule, the sentence following the keyword "if" is a sentence describing a conditional condition, and the sentence following "then" is a sentence describing a conclusion portion.

"quantifier"는 양화사를 기술하는 생성 규칙이다. "forall"은 보편 양화사를 의미하여 뒤에 등장하는 변수들을 수식하고, "forsome"은 존재 양화사를 의미한다. "sentence"는 논리문을 나타낸다. 본 발명에 의한 규칙 언어에서 논리문은 "and" 또는 "or"로 연결된 "atom" 들의 목록이다."quantifier" is a production rule describing a quantifier. "forall" means universal Yangsa, modifies the variables that appear later, and "forsome" means existence Yangsa. "sentence" represents a logical statement. In the rule language according to the present invention, a logical statement is a list of "atoms" connected by "and" or "or".

atom은 가장 기본적인 논리 요소로서, 여기서는 하나의 리터럴(literal) 또는 괄호로 묶인 sentence로 정의되었다.The atom is the most basic logical element, defined here as a literal or parenthesized sentence.

다음 표 14의 코드는 규칙 정의 구문에 따른 규칙 정의의 예이다.The code in Table 14 below is an example of rule definition according to the rule definition syntax.

rule FatherRule1 is if hasFather(?x,?y) and hasBrother(?y,?z) then hasUncle(?x,?z); rule FatherRule1 is if hasFather (? x,? y) and hasBrother (? y,? z) then hasUncle (? x,? z);                                             

여기서, hasFather(?x,?y), hasBrother(?y,?z), hasUncle(?x,?z)은 각각 "atom"이며, hasFather(?x,?y) and hasBrother(?y,?z)는 "sentence"가 된다. 물음표(?)가 앞에 붙은 구별자(identifier)는 변수를 나타낸다.Where hasFather (? X,? Y), hasBrother (? Y,? Z) and hasUncle (? X,? Z) are "atom", respectively, and hasFather (? X,? Y) and hasBrother (? Y ,? z) becomes "sentence". An identifier preceded by a question mark (?) Denotes a variable.

[리터럴 정의(literal)][Literal]

본 발명의 규칙언어에서 리터럴은 다음 표 15와 같이 정의된다.In the rule language of the present invention, literals are defined as shown in Table 15 below.

literal ::= predicate | "not" predicate | "neg" predicate | compexpr predicate ::= predsymbol [ "(" term {"," term} ")"] predsymbol ::= objectconst | variable compexpr ::= term ("<" | "<=" | "=" | ">=" | ">") term term ::= (variable | constant | functioncall) | term "." term literal :: = predicate | "not" predicate | "neg" predicate | compexpr predicate :: = predsymbol ["(" term {"," term} ")"] predsymbol :: = objectconst | variable compexpr :: = term ("<" | "<=" | "=" | "> =" | ">") term term :: = (variable | constant | functioncall) | term "." term                                             

앞서 atom 생성 규칙에서 본 바와 같이, atom의 기본 구성 요소는 리터럴(literal)이다. 리터럴(literal)은 하나의 술어로 볼 수 있다. 단, 술어에 수식어가 붙거나 술어를 연산식의 형태로 적음으로써 몇가지 서로 다른 형태를 띨 수 있으므로, 이러한 여러 형태의 술어들을 묶어 리터럴(literal)로 종합하고 있다.As we saw earlier in the atom creation rules, the basic component of an atom is literal. Literal can be seen as a predicate. However, by adding a modifier to a predicate or by writing a predicate in the form of an expression, several different forms can be taken. Therefore, these predicates are combined and synthesized as literals.

생성 규칙에서 보듯이 리터럴(literal)은 일반 술어(predicate), 앞에 "not"이 붙은 약한 부정 술어, "neg"이 붙은 강한 부정 술어, 그리고 연산식의 형태로 기술된 비교연산술어(compexpr)로 구분된다. 여기서, 본 발명에 의한 규칙 언어의 특징적인 부분은 술어(predicate)의 술어 기호(predsymbol) 자리에 변수(variable)가 올 수 있다는 점이다. As you can see from the construction rules, literals are ordinary predicates, weak negation predicates with "not", strong negation predicates with "neg", and compexpr in the form of expressions. Are distinguished. Here, a characteristic part of the rule language according to the present invention is that a variable may come in place of a predsymbol of a predicate.

일차 술어 논리에서는 술어 기호 자리에 변수가 올 수 없다. 본 발명에 의한 규칙 언어는 여타의 상용 비즈니스 엔진 제품의 규칙 언어와 달리 이차 논리 형태의 술어를 기술할 수 있는 구문을 제공하므로 보다 폭넓은 지식 표현을 가능하게 한다. 본 발명에 의한 규칙언어 처리시스템(200)은 이차 논리 형태의 술어를 처리할 수 있는 추론 기능을 보유한다.In primary predicate logic, variables cannot come in place of predicate symbols. The rule language according to the present invention, unlike the rule language of other commercial business engine products, provides a syntax for describing predicates in the form of secondary logic, thereby enabling a wider knowledge representation. The regular language processing system 200 according to the present invention has an inference function capable of processing predicates of secondary logic.

"term"은 술어나 함수의 항을 나타낸다. 본 발명에 의한 규칙 언어는 상용 비즈니스 규칙 엔진 제품들과 마찬가지로 객체 지향 방식의 속성값 참조 기능을 제 공한다. 즉, John.age 와 같은 구문을 말한다. 이 구문은 John 개체의 age 속성값을 참조하는 기능을 수행한다."term" represents a term of a predicate or function. The rule language according to the present invention, like commercial business rule engine products, provides an object-oriented attribute value reference function. That is, the same syntax as John.age. This statement performs a reference to the age property of the John object.

"compexpr" 생성 규칙은 비교 연산 형태의 술어 기술을 가능하게 한다.The "compexpr" generation rule enables the description of predicates in the form of comparison operations.

다음 표 16의 코드는 다양한 리터럴(literal) 구문 사용예이다.The code in Table 16 below shows examples of using various literal statements.

hasFather(?x,?y) --- (1) ?x < ?y --- (2) hasFather(?x,?y) and not Woman(?x) --- (3) if Man(?x) then neg Woman(?x) --- (4) Human(?x) and ?p(?x,?y) and follows(?p,?q) --- (5) Human(?x) and ?x.age > 20 --- (6) hasFather (? x,? y) --- (1)? x <? y --- (2) hasFather (? x,? y) and not Woman (? x) --- (3) if Man (? x) then neg Woman (? x) --- (4) Human (? x) and? p (? x,? y) and follows (? p,? q) --- (5) Human (? x) and? x.age> 20 --- (6)                                             

상기 표 16에서 구문 (1)은 가장 일반적인 술어이고, 구문 (2)는 비교 연산 형태의 술어이다. 구문 (3)은 약한 부정인 "not"을 이용한 술어 사용예이고, 구문 (4)는 강한 부정인 "neg"을 이용한 술어 사용예이다. 구문 (5)는 이차 논리 형태의 술어를 포함하는 문장 구성 예이다. 여기서, 주의할 점은 술어 기호로 사용된 변수 ?p 가 그 다음 술어인 "follows"의 항으로 사용되고 있다는 점이다. In Table 16, syntax (1) is the most common predicate, and syntax (2) is a predicate in the form of a comparison operation. Syntax (3) is an example of using a predicate with a weak negation of "not", and syntax (4) is an example of using a predicate using a strong negation of "neg". The syntax (5) is an example of constructing a sentence including a predicate of a secondary logical form. Note that the variable? P, which is used as a predicate symbol, is used as a term for the next predicate "follows".

이와 같은 표현력은 일차 논리를 기반으로 하는 기존의 상용 비즈니스 규칙 엔진 제품에서는 불가능하다. 구문 (6)은 객체 지향 방식의 속성값 참조 구문을 사용하여 술어를 구성한 예이다. 구문 (6)의 두번째 술어에서 ?x.age는 ?x에 바인딩된 개체의 age 속성값을 가리킨다. This expressiveness is not possible with existing commercial business rule engine products based on primary logic. Syntax (6) is an example of constructing a predicate using an object-oriented attribute value reference syntax. In the second predicate of syntax (6),? X.age refers to the age attribute value of the object bound to? X.

[함수 호출(functioncall)][Functioncall]

본 발명의 규칙언어에서 함수호출은 다음 표 17과 같이 정의된다.In the rule language of the present invention, a function call is defined as in Table 17 below.

functioncall ::= functionid "(" [term {","term}] ")" functioncall :: = functionid "(" [term {"," term}] ")"                                             

함수 호출은 수학적 연산과 같이 내장 함수를 통해 해결해야 할 기능들을 필요로 할 때 사용한다. 함수의 구조는 술어의 구조와 거의 동일하나, 술어는 논리문의 구성 요소로서 사용되는 반면, 함수는 술어의 항으로만 사용될 수 있다는 점이 다르다.Function calls are used when you need functions that need to be solved through built-in functions, such as mathematical operations. The structure of a function is almost identical to that of a predicate, except that a predicate is used as a component of a logical statement, whereas a function can only be used as a term in a predicate.

다음 표 18은 함수 호출을 사용한 예이다.Table 18 shows an example of using a function call.

add(?x.age,20) <= 40 --- (1) areaSize(?l,mult(?x,2)) --- (2) add (? x.age, 20) <= 40 --- (1) areaSize (? l, mult (? x, 2)) --- (2)                                             

상기 표 18에서 구문 (1)은 ?x에 바인딩된 개체의 age 속성값과 20을 입력 인수로 하여 add() 함수를 호출하는 예이다. 구문 (2)는 두 개의 입력 인수를 곱하는 mult() 함수 호출 예이다.In Table 18, the syntax (1) is an example of calling the add () function using the age attribute value of the object bound to? X and 20 as input arguments. Syntax (2) is an example of a mult () function call that multiplies two input arguments.

[강한 부정과 약한 부정의 동시 지원][Simultaneous Support of Strong and Weak Negatives]

약한 부정(Negation As Failure 또는 Weak Negation)만을 지원하는 기존의 논리 프로그래밍 언어나 상용 비즈니스 엔진 제품들은 특정 사실이 지식베이스에 포함되어 있지 않으면 그 사실의 부정을 참으로 판단하도록 하는 추론 기법을 사용하였다. 이는 패쇄된 지식베이스를 대상으로 한 추론에서는 효용성이 있으나, 개방된 웹 지식을 대상으로 하는 경우 효용성이 반감된다. 또한, 주요한 추론의 대상 이 되는 웹 온톨로지(102)는 강한 부정을 표현할 수 있으므로, 웹 온톨로지(102)를 대상으로 추론을 수행하려면 강한 부정을 처리할 수 있어야 한다.Conventional logic programming languages or commercial business engine products that support only weak negation (Negation As Failure or Weak Negation) have used inference techniques that allow the facts to be true if they are not included in the knowledge base. This is useful in reasoning on a closed knowledge base, but its effectiveness is halved when targeting open web knowledge. In addition, since the web ontology 102, which is the subject of major inference, can express strong negation, in order to perform inference on the web ontology 102, it must be able to handle the strong negation.

따라서, 웹 연동 기능을 제공하고자 하는 규칙 언어는 강한 부정과 약한 부정을 동시에 지원함으로써 사용자가 효과적으로 웹 온톨로지(102)로 표현된 지식을 처리하고, 약한 부정의 능률적인 부정 지식 추론 기법을 활용할 수 있도록 해야 한다.Therefore, the rule language that wants to provide a web interworking function supports both strong and weak negation at the same time so that the user can effectively process the knowledge represented by the web ontology 102 and utilize efficient negation knowledge reasoning technique of weak negation. Should be.

본 발명에 의한 본 발명에 의한 규칙 언어는 강한 부정과 약한 부정을 모두 표현할 수 있는 구문을 각각 "neg"와 "not"키워드를 통해 제공하고 있으며, 본 발명에 의한 규칙언어 처리시스템(200)은 이 두 가지 부정을 적절히 처리할 수 있는 추론 기능을 보유한다.The rule language according to the present invention according to the present invention provides phrases that can express both strong and weak negation through the keywords "neg" and "not", respectively, and the rule language processing system 200 according to the present invention It has a reasoning function to properly handle these two denials.

[강한 부정을 통한 안전하지 않은 약한 부정의 처리][Unsafe weak negation through strong negation]

일반적으로 약한 부정을 사용하려면 문장을 안전한 형태로 구성해야만 한다. 다음 표 19의 예에서 구문 (1)은 안전한 약한 부정이지만, 구문 (2)는 안전하지 못한 약한 부정이다.In general, the use of weak negation requires constructing sentences in a safe form. In the following example of Table 19, syntax (1) is a safe weak negation, while syntax (2) is an unsafe weak negation.

if Human(?x) and not Woman(?x) then serviceKind(?x,ManPlus); --- (1) // ?x 가 여자가 아니면, ?x에게 남성용 서비스를 제공한다. if not Woman(?x) then serviceKind(?x,ManPlus); --- (2) if Human (? x) and not Woman (? x) then serviceKind (? x, ManPlus); --- (1) // If? X is not a woman, provide? X for men. if not Woman (? x) then serviceKind (? x, ManPlus); --- (2)                                             

상기 표 19에서 구문 (1)은 긍정 술어인 Human(?x) 를 통해 ?x에 올 수 있는 상수들이 일차 결정되기 때문에 not Woman(?x)를 처리하는데 아무런 문제가 없다. 그러나 구문 (2)와 같은 약한 부정을 포함하는 문장에 있어서, not Woman(?x)의 ?x의 자리에는 Woman으로 정의된 상수들을 뺀 나머지 모든 상수들이 올 수 있으므로 적절한 추론을 수행할 수 없어 기존의 추론 엔진들은 이러한 안전하지 않은 문장은 허용하지 않는다.In Table 19, the syntax (1) has no problem in processing not Woman (? X) because constants that may come to? X are first determined through the positive predicate Human (? X). However, in a sentence containing a weak negation such as the syntax (2),? X in not Woman (? X) can come in place of all constants except constants defined as Woman, so proper inference cannot be performed. Inference engines do not allow these unsafe statements.

본 발명에 의한 규칙언어 처리시스템(200)은 강한 부정을 이용하여 안전하지 않은 약한 부정을 처리할 수 있다. 다음의 표 20의 예를 보자.The rule language processing system 200 according to the present invention can use the strong negation to process the weak insecure. See the example in Table 20 below.

// John은 Man이다. Man(John); // ?x가 Man이면, ?x는 Woman의 반대이다. if Man(?x) then neg Woman(?x); // ?x 가 여자가 아니면, ?x에게 남성용 서비스를 제공한다. if not Woman(?x) then serviceKind(?x,ManPlus);// John is Man Man (John); // If? x is Man,? x is the opposite of Woman. if Man (? x) then neg Woman (? x); // If? x is not a woman,? x is given to men. if not Woman (? x) then serviceKind (? x, ManPlus);

위와 같은 강한 부정을 포함하는 사실과 규칙이 포함된 경우, 존(John) 이라는 개체에 대해 추론 엔진은 neg Woman(John) 이라는 사실을 도출하게 된다. not Woman(?x) 자체로는 안전하지 않은 약한 부정이라 처리가 불가능하지만, neg Woman(John)이라는 도출된 사실을 바탕으로 not Woman(John)을 유추할 수 있게 되며, ?x에 John을 연결시킬 수 있게 된다. 이는 기존의 약한 부정 처리 방식을 확장한 것으로서, 부정 지식의 처리에 매우 유용하다.If the facts and rules include the above strong negation, the inference engine derives the neg woman (John) for the entity named John. Not Woman (? x) by itself is insecure and weak to negate, but we can infer not Woman (John) based on the fact that neg Woman (John) is derived, and connect John to? x. You can do it. This is an extension of the existing weak negation scheme and is very useful for the processing of negation knowledge.

[이차 논리 형태의 술어 표현][Predicate Representation of Secondary Logical Forms]

현재 상용 비즈니스 규칙 엔진들은 일차 술어 논리를 기반으로 하고 있어, 술어 기호로 변수를 사용할 수 없다. 그러나, 본 발명에 의한 규칙언어 처리시스 템(200)은 술어 기호로 변수를 사용할 수 있다. 변수를 술어 기호로 사용하게 되면 술어 자체에 대한 추론 규칙을 기술할 수 있으므로, 복잡한 규칙을 간단하게 표현할 수 있다. 다음 표 21은 이차 논리를 활용한 규칙 활용의 예이다.Currently, commercial business rule engines are based on primary predicate logic, so you cannot use variables as predicate symbols. However, the regular language processing system 200 according to the present invention may use a variable as a predicate symbol. Using variables as predicate symbols allows you to describe inference rules for the predicate itself, thus simplifying the representation of complex rules. Table 21 below is an example of rule utilization using secondary logic.

rule FollowsRule1 is if follows(?x,?y) and ?y(?z) then ?x(?z);--- (1) fact Follows is follows(cooling,overheat);--- (2) rule Overheat is if Heater(?x) and ?x.degree > 80 then overheat(?x);--- (3) fact Heater1 is Heater(h1);--- (4) fact Heater1Degree is degree(h1,90);--- (5) rule FollowsRule1 is if follows (? x,? y) and? y (? z) then? x (? z); --- (1) fact Follows is follows (cooling, overheat); --- (2) rule Overheat is if Heater (? X) and? X.degree> 80 then overheat (? X); --- (3) fact Heater1 is Heater (h1); --- (4) fact Heater1Degree is degree (h1,90 ); --- (5)                                             

여기서, 구문 (1)은 이차 논리 형태의 술어들을 포함하고 있고, "follows" 술어는 술어에 대한 술어임을 알 수 있다. 이러한 형태의 규칙을 일차논리로 표현하게 되면 다음 표 22와 같다.Here, it can be seen that syntax (1) includes predicates of secondary logical form, and the "follows" predicate is a predicate for the predicate. When this type of rule is expressed as primary logic, it is shown in Table 22 below.

rule FollowsRule1 is if follows(?x,?y) and asserted(?y,?z) then asserted(?x,?z); --- (1) fact Follows is follows(cooling,overheat); --- (2) rule Overheat is if Heater(?x) and ?x.degree > 80 then asserted(overheat,?x); --- (3) fact Heater1 is Heater(h1); --- (4) fact Heater1Degree is degree(h1,90); --- (5) rule FollowsRule1 is if follows (? x,? y) and asserted (? y,? z) then asserted (? x,? z); --- (1) fact Follows is follows (cooling, overheat); --- (2) rule Overheat is if Heater (? X) and? X.degree> 80 then asserted (overheat,? X); --- (3) fact Heater1 is Heater (h1); --- (4) fact Heater 1 Degree is degree (h1,90); --- (5)                                             

상기 표 22에서 구문 (1)은 "asserted" 라는 범용 술어를 이용하여 이차 논리 형태의 술어를 대신하게 하고 있다. "asserted" 술어의 첫번째 항은 실제 술어를 나타내고, 나머지 항들은 술어의 항에 사상된다. 이러한 일차 논리 형태의 구문은 술어 기호로 asserted를 사용하므로 술어 본연의 의미가 드러나지 않는다는 단점을 보인다. 또한 규칙의 구조가 복잡해지면 저작하기도 어렵고, 이해하기도 어려운 구문이 되어 버린다. 이차 논리 구문 형태를 사용하게 되면 자연스럽고 간결 한 규칙 표현이 가능하게 되고, 술어에 대한 지식 표현을 풍부하게 할 수 있으므로 사용자의 지식 표현 생산성을 높여준다.In Table 22, the syntax (1) is to replace the predicate of the secondary logic form by using a general-purpose predicate "asserted". The first term of the "asserted" predicate represents the actual predicate, and the remaining terms are mapped to the terms of the predicate. This primary logic form has the disadvantage of using asserted as the predicate symbol, which does not reveal the meaning of the predicate. In addition, when the structure of a rule becomes complicated, it becomes a syntax that is difficult to write and difficult to understand. The use of secondary logical syntax forms enables natural and concise rule expressions, and enriches the expression of knowledge about predicates, thus enhancing the user's knowledge representation productivity.

[외부 지식베이스 참조 기능][External Knowledge Base Reference Function]

도 4는 본 발명에 의한 규칙언어 처리시스템(200)의 원격지 추론 엔진 연동을 통한 외부 웹 지식 참조 개념을 도시한 개략도이고, 도 5는 본 발명에 의한 규칙 언어 처리 시스템의 원격 바인딩 수행 절차를 도시한 도면이며, 도 6은 본 발명에 의한 원격 추론 엔진과의 통신을 통한 원격 바인딩 실행 구조를 도시한 도면이다.4 is a schematic diagram illustrating an external web knowledge reference concept through a remote inference engine interworking of the rule language processing system 200 according to the present invention, and FIG. 5 illustrates a procedure of performing remote binding of the rule language processing system according to the present invention. 6 is a diagram illustrating a remote binding execution structure through communication with a remote inference engine according to the present invention.

본 발명에 의한 규칙언어 처리시스템(200)은 외부 추론 엔진(410)과 정형화된 방식으로 통신함으로써 외부 지식베이스의 내용을 참조할 수 있는 기능을 포함한다. 그 처리 구조는 도 4에 보인 바와 같이, 규칙베이스(106)와 규칙언어 처리시스템(200), 원격 추론엔진들(410)로 이루어지고, 규칙언어 처리시스템(200)은 내부 작업 메모리(404)와 연결되는 내부 바인더(403)와, 원격 추론 엔진들(410)과 연결되는 원격 바인더(405)를 구비하고 있다. 그리고 원격 바인더(405)는 원격 추론 엔진을 참조하기 위하여 원격 엔진 참조 URI 지도 테이블(420)을 이용한다.The rule language processing system 200 according to the present invention includes a function of referring to the contents of an external knowledge base by communicating with the external inference engine 410 in a standardized manner. As shown in FIG. 4, the processing structure includes a rulebase 106, a rule language processing system 200, and remote inference engines 410, and the rule language processing system 200 includes an internal working memory 404. And an internal binder 403 connected to the remote binder and a remote binder 405 connected to the remote inference engines 410. The remote binder 405 then uses the remote engine reference URI map table 420 to refer to the remote inference engine.

추론 작업의 한 과정인 바인딩 작업은 사실과 규칙의 술어를 비교하여 해당 술어를 참으로 만드는 상수들을 추출하는 작업으로서, 추론 기능의 핵심 작업 중 하나이다. Binding, a process of inference, is a task that compares facts and predicates of rules and extracts constants that make the predicate true.

본 발명에 의한 규칙언어 처리시스템(200)은 개방된 웹 환경에 분산되어 존 재하며 동적으로 변화하는 지식을 대상으로 추론 기능을 수행해야 하므로, 기존의 규칙 엔진과는 달리 추가적인 바인딩 기능을 제공한다.The rule language processing system 200 according to the present invention needs to perform an inference function on knowledge that is distributed and exists in an open web environment and dynamically changes, thus providing an additional binding function unlike the existing rule engine. .

기존의 규칙 엔진 및 추론 기법들은 내부 작업 메모리(404)에 모든 지식을 로딩한 다음, 이 지식을 바탕으로 추론 작업을 수행한다. 즉, 추론 대상 지식은 모두 내부 작업 메모리(404)에 존재해야 한다는 전제 조건을 지닌다.Existing rule engines and inference techniques load all knowledge into the internal working memory 404 and then perform inference operations based on this knowledge. That is, the inference subject knowledge has the precondition that all knowledge must exist in the internal working memory 404.

본 발명에 의한 규칙언어 처리시스템(200)은 원격 바인더(405)를 통해 외부 지식을 참조하여 바인딩 작업을 수행할 수 있다. 이때, 원격 바인더(405)가 호출되는 절차는 도 5에 도시된 바와 같다.The rule language processing system 200 according to the present invention may perform a binding operation by referring to external knowledge through the remote binder 405. At this time, the procedure in which the remote binder 405 is called is shown in FIG. 5.

도 5를 참조하면, 단계 501은 기존의 추론 엔진과 동일하게 내부 작업 메모리(404)를 대상으로 내부 바인딩 작업을 수행하는 단계이다. 단계 502는 당해 추론 단계에 있어 원격 바인더(405)를 호출할 지를 결정하는 단계이다. 원격 바인더(405)의 호출 여부 결정은 다음 몇 가지 예와 같이 다양하게 실시될 수 있다. Referring to FIG. 5, in operation 501, an internal binding operation is performed on an internal working memory 404 in the same manner as a conventional inference engine. Step 502 is a step of determining whether to call the remote binder 405 in the inference step. Determination of whether to call the remote binder 405 may be variously performed as in the following several examples.

첫째, 내부 바인더(403)를 통해 바인딩한 결과 바인딩 대상 술어에 연결되는 상수를 전혀 찾지 못했을 때 원격 바인더(405)를 호출한다.First, when a result of binding through the inner binder 403 is not found at all, the remote binder 405 is called.

둘째, 내부 바인더(403)를 통해 바인딩한 결과에 상관없이 항상 원격 바인더(405)를 호출한다.Second, the remote binder 405 is always called regardless of the result of binding through the inner binder 403.

셋째, 사전 설정된 시간 간격에 따라 원격 바인더(405)를 주기적으로 호출한다.Third, the remote binder 405 is periodically called at a preset time interval.

단계 502 및 503의 판단 결과에 따라 원격 바인더(405)의 호출이 결정되면, 단계 504가 수행된다. 단계 504에서 원격 바인더(405)가 외부 웹 지식을 참조하는 방식은 외부 웹 지식의 형태 및 지식 제공 방식에 따라 다양하게 실시될 수 있다. 이어 단계 505에서 추론 작업을 계속 진행한다.If the call of the remote binder 405 is determined according to the determination result of steps 502 and 503, step 504 is performed. The manner in which the remote binder 405 references the external web knowledge in operation 504 may be variously performed according to the form of the external web knowledge and the method of providing the knowledge. The inference operation then continues at step 505.

도 4는 원격지에 존재하는 추론 엔진들(410)과의 연동을 통해 원격 바인딩 기능을 수행하는 일실시예이다. 먼저, 본 발명에 의한 규칙 언어를 이용하면 규칙을 구성하는 각 술어는 URI로 지칭된다. 원격 엔진 참조 URI 지도(420)는 각 술어 별로 바인딩될 수 있는 지식을 제공하는 원격 추론 엔진(410)이 어디 있는지에 대한 정보를 포함하고 있는 테이블이다. 원격 바인더(405)는 바인딩하고자 하는 술어를 키(Key)로 하여 URI 지도 테이블(420)을 검색한 다음 원격 추론 엔진의 URI를 찾아 바인딩을 시도한다.4 illustrates an embodiment of performing a remote binding function through interworking with inference engines 410 existing in a remote location. First, using the rule language according to the present invention, each predicate constituting a rule is referred to as a URI. The remote engine reference URI map 420 is a table that contains information about where the remote inference engine 410 provides knowledge that can be bound to each predicate. The remote binder 405 searches the URI map table 420 using the predicate to be keyed as a key, and then attempts to bind by finding the URI of the remote inference engine.

도 6은 도 4에 표현한 외부 추론 엔진 연동 기능을 네트워크 환경 상의 모습으로 다시 도시한 것이다.FIG. 6 illustrates the external inference engine interworking function represented in FIG. 4 again in a network environment.

도 6을 참조하면, 웹상의 각 사이트는 본 발명에 따른 추론엔진과 지식베이스를 구비하여 추론 엔진간에 통신을 통해 원격 바인딩을 수행한다. 즉, 제1 사이트(610)는 규칙베이스(106)와 추론엔진(612)을 구비하고 있고, 제2 사이트(620)는 온톨로지(102)와 온톨로지 규칙베이스(104), 추론엔진(622)을 구비하고 있으며, 제3 사이트(630)와 제4 사이트(640)도 동일하게 온톨로지(102)와 온톨로지 규칙베이스(104), 추론엔진(632,642)을 구비하고 있다. 그리고 추론엔진(612)은 통신을 통해 다른 원격 추론엔진(622,632,642)과 바인딩을 수행한다. Referring to FIG. 6, each site on the web includes an inference engine and a knowledge base according to the present invention to perform remote binding through communication between the inference engines. That is, the first site 610 includes a rule base 106 and an inference engine 612, and the second site 620 uses the ontology 102, the ontology rule base 104, and the inference engine 622. Similarly, the third site 630 and the fourth site 640 are also provided with an ontology 102, an ontology rule base 104, and inference engines 632 and 642. The inference engine 612 performs binding with other remote inference engines 622, 632, and 642 through communication.

[자바 객체 연동 기능][Java Object Linkage Function]

본 발명에 의한 규칙언어 처리시스템(200)은 외부 자바 객체와 연동할 수 있는 기능을 제공한다. 외부 객체 연동 기능은 외부 환경의 변화에 따라 일련의 판단 과정을 수행한 다음, 외부 환경에 대해 어떤 효과를 발생시키는 작용을 하기 위해 필수적인 기능이다. The rule language processing system 200 according to the present invention provides a function capable of interworking with an external Java object. The external object interworking function is an essential function to perform a series of judgment processes according to the change of the external environment and then generate an effect on the external environment.

예를 들어, 집안의 전기 상태를 살피고 전기 차단 및 연결 기능을 수행할 수 있는 자바 객체가 있는 경우, 본 발명에 의한 규칙 언어로 집안 전기 운영을 위한 규칙베이스를 작성하여 집안의 전기 상황에 따른 지능적인 전기 제어 작업을 수행할 수 있다. 다음 표 23의 규칙 예는 집안의 전기 사용량이 200W 이상 되었을 경우, 사용자에게 그 사실을 경보음으로 알리도록 하는 규칙의 예이다.For example, if there is a Java object that can check the electrical state of the house and perform the electrical cut-off and connection function, the rule language for operating the house electricity in the rule language according to the present invention to create a intelligence based on the electrical situation of the house Electrical control work can be performed. The following rule example of Table 23 is an example of a rule to notify the user with an alarm sound when the household's electricity usage is over 200W.

rule Alarm is if java://home.com/ElectricityGage#currentLoad(?x,?load) and ?load > 200 then java://home.com/MessageAlarm#alarmMessage( "Current Elec Load is " + ?load);rule Alarm is if java: //home.com/ElectricityGage#currentLoad (? x,? load) and? load> 200 then java: //home.com/MessageAlarm#alarmMessage ("Current Elec Load is" +? load) ;

이 예에 제시된 규칙의 조건부와 결론부에서는 각각 하나씩의 자바 객체 메쏘드가 호출되고 있다. 호출되는 자바 메쏘드를 기술하는 구문은 본 발명에 의한 규칙언어 처리시스템(200)에서 설정해 놓은 URI 구조에 의한다. 자바 객체 호출을 의미하는 URI의 각 구성 요소가 나타내는 정보는 다음 표 24와 같다.In the conditional section and the conclusion section of the rule presented in this example, one Java object method is called. The syntax describing the Java method to be called is based on the URI structure set in the rule language processing system 200 according to the present invention. Table 24 shows the information represented by each component of a URI that represents a Java object call.

구성요소Component 의미meaning Yes URI 스킴URI scheme 자바연동을 위한 URI임을 표시한다Indicates that this is a URI for Java interworking javajava URI 호스트URI host 자바 패키지 이름Java package name home.comhome.com URI 경로URI path 자바 클래스 이름Java class name ElectricityGageElectricitygage 프래그먼트 아이디Fragment ID 자바 클래스타입Java class type ClassClass 자바 메쏘드 이름Java method name currentLoadcurrentLoad

상기 표 24에 제시된 대로 프래그먼트 아이디로 "Class"를 사용하면 해당 자바 클래스 타입을 의미한다. 예를 들어, 규칙의 조건부에서 java://home.com/ElectricityGage#Class(?x) 라는 술어를 썼다면, 이 술어의 의미는 변수 ?x에 home.com.ElectricityGage 클래스 타입으로 된 자바 객체들을 바인딩 하라는 의미가 된다.If "Class" is used as the fragment ID as shown in Table 24 above, it means the Java class type. For example, if you used the predicate java: //home.com/ElectricityGage#Class (? X) in the conditional part of the rule, the meaning of this predicate is that the Java objects of class home.com.ElectricityGage are typed in the variable? X. It means to bind.

[자바 객체 생성 기능][Java object creation function]

상기 기술한 자바 클래스 타입 참조 기능은 조건부에 존재할 때와 결론부에 존재할 때 그 의미가 다르게 해석된다. Java://home.com/ElectricityGage(?x) 가 조건부에 기술되면 내부 작업 메모리(404)에 존재하는 자바 객체들 중 home.com.ElectricityGage 클래스 타입인 객체들을 ?x에 바인딩하라는 의미가 된다. 반면, 동일한 술어가 결론부에 기술되면 home.com.ElectricityGage 클래스 타입으로 된 객체를 하나 새로 생성하여 변수 ?x에 바인딩하라는 의미가 된다.The above-described Java class type reference functions are interpreted differently when they exist in the conditional part and when they exist in the conclusion part. When Java: //home.com/ElectricityGage (? X) is described in the conditional state, it means that objects of the home.com.ElectricityGage class type among Java objects existing in the internal working memory 404 are bound to? X. On the other hand, if the same predicate is described in the conclusion, it means creating a new object of type home.com.ElectricityGage and binding it to the variable? X.

기존의 규칙 엔진들은 새로운 객체의 생성 기능이 아예 없거나, 별도의 객체 생성 함수를 통해 객체를 생성하도록 하고 있으나, 본 발명에 의한 규칙언어 처리시스템(200)은 지식의 의미에 따라 내부적으로 객체의 생성 및 참조를 구분하여 처리하도록 하고 있다. 이는 개발자의 지식 표현 노력을 덜어주고, 지식 표현 결과를 자연스럽게 하는 효과를 가져온다.Conventional rule engines do not have a function of creating a new object at all, or create an object through a separate object creation function, but the rule language processing system 200 according to the present invention internally generates an object according to the meaning of knowledge. And references are handled separately. This reduces the developer's effort to express knowledge and has the effect of smoothing the results of knowledge representation.

이상에서 설명한 바와 같이, 본 발명에 의한 규칙 언어와 규칙 언어 처리 시스템은 확장된 지식 표현 능력과 웹에 분산된 지식베이스를 대상으로 하여 효율적인 규칙 기반 처리를 가능하게 함으로써, 분산된 웹 온톨로지 및 규칙베이스들을 대상으로 한 지식 처리를 통해 지능적인 서비스를 제공할 수 있고, 이를 위한 응용 개발의 생산성 및 개발된 응용의 효율성을 크게 향상시킬 수 있다.  As described above, the rule language and rule language processing system according to the present invention enables efficient rule-based processing for an extended knowledge expression capability and a knowledge base distributed on the web, thereby enabling distributed web ontology and rule base. It can provide intelligent services through the processing of knowledge, which can greatly improve the productivity of application development and the efficiency of developed applications.

또한, 본 발명은 폭넓은 표현력, 웹 친화성, 자바 객체 연동 기능을 통해 보다 폭넓은 지식을 표현할 수 있고, 외부 시스템과 자연스럽게 연동되는 실용적인 지식 처리 시스템을 용이하게 구축할 수 있다.In addition, the present invention can express a wider range of knowledge through a wide range of expressive power, web affinity, and a Java object interworking function, and can easily construct a practical knowledge processing system that naturally interworks with an external system.

또한, 본 발명은 URI를 바탕으로 외부 환경과 연동할 수 있는 확장 기능을 포함하고 있어, 추론의 결과로 외부 시스템을 조작해야 하는 경우 또는 외부 환경 정보를 읽어들여 일련의 추론을 수행하는 경우 다양한 기능 확장을 꾀할 수 있다.
In addition, the present invention includes an extension function capable of interworking with the external environment based on the URI, various functions when the external system needs to be operated as a result of the inference or when the external environment information is read and a series of inferences are performed. Can be expanded.

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

Claims (11)

웹상에 분산되어 존재하는 온톨로지와 규칙베이스를 읽어들여 처리하기 위한 시맨틱 웹 시스템에 있어서,In the semantic web system for reading and processing the ontology and rulebase distributed on the web, 소정의 규칙언어로 작성된 상기 규칙베이스를 읽어 저장하기 위한 내부 작업 메모리;An internal working memory for reading and storing the rule base written in a predetermined rule language; 상기 웹으로부터 추론 작업에 필요한 온톨로지들을 읽어들여 내부 데이터 구조로 변환한 후 상기 내부 작업 메모리에 추가하는 온톨로지 변환기; An ontology converter which reads ontology necessary for inferencing work from the web, converts it into an internal data structure, and adds it to the internal working memory; 상기 웹에 존재하는 외부 추론 엔진과 통신을 통해 동적인 웹 지식을 실시간 참조하는 원격 바인더;A remote binder for real-time reference of dynamic web knowledge through communication with an external inference engine residing on the web; 상기 내부 작업 메모리에 저장된 데이터를 처리하고, 상기 원격 바인더를 통해 외부 지식을 참조하여 추론 작업을 수행하는 추론엔진; 및An inference engine that processes data stored in the internal working memory and performs inference by referring to external knowledge through the remote binder; And 상기 추론 엔진이 추론 작업을 실행하는 도중 자바 클래스 타입 또는 메쏘드에 대한 참조 URI를 발견하게 되면, 특정 클래스 타입의 자바 객체를 찾거나 자바 객체의 메쏘드를 호출하기 위한 자바 객체 연동기;A Java object interlocker for finding a Java class of a specific class type or calling a method of a Java object when the inference engine finds a reference URI for a Java class type or a method while executing an inference operation; 를 포함하는 것을 특징으로 하는 규칙언어 처리시스템.Rule language processing system comprising a. 제 1항에 있어서, 상기 규칙베이스는The method of claim 1, wherein the rule base is 외부 웹 지식베이스를 참조하도록 하는 구문과, Syntax to refer to an external web knowledge base, 이차 논리 형태의 술어 표현 구문, 원격 지식베이스 참조 구문과,Predicate expression syntax in secondary logical form, remote knowledge base reference syntax, 규칙베이스, 사실, 규칙, 클래스, 개체, 속성에 URI를 부여할 수 있는 구문과,Syntax for giving URIs to rulebases, facts, rules, classes, objects, and properties, 약한 부정과 강한 부정을 표현할 수 있는 구문을 동시에 지원하는 규칙 언어에 의해 기술된 것을 특징으로 하는 규칙언어 처리시스템.A rule language processing system, characterized by a rule language that simultaneously supports both weak and strong negative syntax. 제 1항에 있어서, 상기 규칙베이스는The method of claim 1, wherein the rule base is 참으로 선언된 사실(fact), 규칙(rule), 클래스 정의(classdef), 속성 정의(propertydef), 개체 정의(individual)로 구성되는 것을 특징으로 하는 규칙언어 처리시스템.Rule language processing system comprising a fact, rule, classdef, propertydef, and individual definition declared as true. 제 1항에 있어서, 상기 원격 바인더는The method of claim 1, wherein the remote binder 내부 바인더를 통해 바인딩한 결과 바인딩 대상 술어에 연결되는 상수를 전혀 찾지 못했을 때나 사전 설정된 시간 간격에 따라 주기적으로 호출되는 것을 특징으로 하는 규칙언어 처리시스템.Rule language processing system characterized in that it is called periodically when a constant linked to a binding target predicate as a result of binding through an internal binder or at a predetermined time interval. 제 1항에 있어서, 상기 원격 바인더는The method of claim 1, wherein the remote binder 원격 추론엔진 참조 URI 지도를 검색하여 해당 원격 추론 엔진을 참조하는 것을 특징으로 하는 규칙언어 처리시스템.A remote language inference engine reference URI processing rule language, characterized in that to refer to the remote inference engine. 웹상에 분산되어 존재하는 온톨로지와 규칙베이스를 읽어들여 처리하기 위한 시맨틱 웹에 있어서,In the semantic web for reading and processing the ontology and rulebase that are distributed on the web, (1)외부 웹 지식베이스를 참조하도록 하는 구문과, (1) a syntax to reference an external web knowledge base, (2)이차 논리 형태의 술어 표현 구문, 원격 지식베이스 참조 구문과,(2) predicate expression syntax in secondary logical form, remote knowledge base reference syntax, (3)규칙베이스, 사실, 규칙, 클래스, 개체, 속성에 URI를 부여할 수 있는 구문과,(3) the syntax to assign URIs to rulebases, facts, rules, classes, objects, and properties; (4)약한 부정과 강한 부정을 표현할 수 있는 구문을(4) Syntax that can express weak negativity and strong negativity 동시에 지원하는 규칙 언어를 이용하여 규칙베이스를 저장하는 제 1단계;A first step of storing a rulebase using a rule language supported simultaneously; 상기 규칙베이스를 규칙 언어 처리기가 내부 작업 메모리로 로딩하는 제 2단계;Loading the rulebase into an internal working memory by a rule language processor; 상기 규칙베이스에 기술된 바에 따라 원격지 웹 온톨로지 및 규칙베이스를 입수하여 상기 내부 작업 메모리에 추가하는 제 3단계;A third step of obtaining a remote web ontology and rulebase as described in the rulebase and adding it to the internal working memory; 자바 객체 연동을 지시하는 URI가 등장하면 자바 객체의 상태 참조 또는 상태 변경을 위한 메쏘드 호출을 수행하는 제 4단계; 및A fourth step of performing a method call for a state reference or a state change of a Java object when a URI indicating a Java object interworking appears; And 원격 바인딩이 요청되는 경우, 외부 웹 지식베이스의 지식을 참조하여 바인딩을 시도하는 제 5단계를 포함하는 웹 연동 지식을 기술하는 규칙언어 처리방법.The rule language processing method for describing web interworking knowledge, comprising a fifth step of attempting binding by referring to knowledge of an external web knowledge base when a remote binding is requested. 제 6항에 있어서, 상기 제 1단계는,The method of claim 6, wherein the first step, 저작하는 규칙베이스의 기반 이름 공간 URI를 부여하는 단계;Granting a base namespace URI of the authoring rulebase; 저작된 규칙베이스를 웹 서버 또는 그에 상응하는 서버를 통해 웹에 공개하는 단계; 및Publishing the authored rulebase to the web through a web server or a corresponding server; And 외부에서 URI를 이용하여 규칙베이스를 구성하는 지식 요소를 참조하여 지식 요소에 대한 전송 요청이 있는 경우, 해당 규칙베이스 내에서 참조된 지식 요소를 요청자에게 전달해 주는 단계를 포함하는 웹 연동 지식을 기술하는 규칙언어 처리방법.When there is a request for transmission of a knowledge element by referring to the knowledge element constituting the rulebase using a URI from the outside, the web-related knowledge including the step of delivering the knowledge element referenced in the rule base to the requester is described. Rules language processing method. 제 6항에 있어서, 상기 제 4단계는The method of claim 6, wherein the fourth step 자바 객체 접근을 의미하기 위해 URI에 "java"프로토콜을 적는 단계;Writing a "java" protocol in the URI to mean accessing a Java object; URI의 경로에 자바 패키지 이름 및 자바 클래스 이름을 적는 단계;Writing the Java package name and the Java class name in the path of the URI; 자바 클래스 타입을 참조하기 위해서는 URI의 프래그먼트(Fragment) 아이디로 "클래스(Class)"를 적는 단계; 및Writing "Class" as a fragment ID of a URI to refer to a Java class type; And 자바 클래스의 메쏘드를 참조하기 위해서는 URI의 경로 다음 프래그먼트(Fragment) 아이디로 자바 클래스의 메쏘드 이름을 적는 단계;를 포함하는 웹 연동 지식을 기술하는 규칙언어 처리방법.In order to refer to a method of a Java class, writing a method name of a Java class with a fragment ID following a path of a URI. 제 6항에 있어서, 상기 제 4단계는The method of claim 6, wherein the fourth step 자바 클래스 및 메쏘드 참조 정보를 지닌 URI를 이용하여 현재 내부 작업 메모리 내에 존재하는 자바 객체들 중 해당 참조 정보에 부합하는 객체들을 찾아내는 단계;Finding objects corresponding to the reference information among the Java objects currently present in the internal working memory using a URI having Java class and method reference information; 규칙의 조건부에서 클래스가 참조된 경우 클래스의 타입을 참조하는 타입 탐조 단계;A type searching step of referring to the type of the class when the class is referenced in the conditional part of the rule; 규칙의 조건부에서 클래스의 메쏘드가 참조된 경우 메쏘드 호출을 통해 값을 참조하는 속성값 참조 단계;An attribute value reference step of referring to a value through a method call when the method of the class is referenced in the conditional part of the rule; 규칙의 결론부에서 클래스가 참조된 경우 해당 클래스 타입으로 객체를 하나 생성하는 단계; 및Creating an object with the class type when the class is referenced at the conclusion of the rule; And 규칙의 결론부에서 클래스의 메쏘드가 참조된 경우 메쏘드 호출을 통해 객체의 상태를 변화시키는 단계;를 포함하는 웹 연동 지식을 기술하는 규칙언어 처리방법.Changing a state of an object through a method call when a method of a class is referred to at the conclusion of the rule. 제 6항에 있어서, 상기 제 5단계는The method of claim 6, wherein the fifth step 규칙의 조건절이 안전하지 않은 약한 부정 포함 구문으로 이루어진 경우, 강한 부정에 의해 도출된 사실들로부터 약한 부정에 연결될 수 있는 사실들을 뽑아내어 바인딩을 실행하는 추론 기법을 포함하는 웹 연동 지식을 기술하는 규칙언어 처리방법.Rules describing web-interlocking knowledge, including inference techniques for extracting facts that may lead to weak negation from facts derived by strong negation, if the conditional clause of the rule consists of insecure weak negation constructs. Language processing method. 제 6항에 있어서, 상기 제 5단계는The method of claim 6, wherein the fifth step 원격 바인딩 작업의 필요성을 판단하는 단계;Determining a need for a remote binding operation; 원격 엔진 참조 URI 지도 또는 그에 상응하는 정보를 제공하는 정보체를 참조하여 원격 지식 서비스 제공자를 찾아내는 단계; 및Finding a remote knowledge service provider by referring to an information engine providing a remote engine reference URI map or corresponding information; And 원격 지식 서비스 제공자에 접속하여 바인딩을 위한 지식을 요청/입수하는 단계를 포함하는 웹 연동 지식을 기술하는 규칙언어 처리방법.Rule language processing method for describing web-linked knowledge comprising the step of requesting / obtaining knowledge for binding by connecting to a remote knowledge service provider.
KR20030095706A 2003-12-23 2003-12-23 Rule language processing system and method for describing web interlocking knowledge KR100558331B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20030095706A KR100558331B1 (en) 2003-12-23 2003-12-23 Rule language processing system and method for describing web interlocking knowledge

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20030095706A KR100558331B1 (en) 2003-12-23 2003-12-23 Rule language processing system and method for describing web interlocking knowledge

Publications (2)

Publication Number Publication Date
KR20050064347A KR20050064347A (en) 2005-06-29
KR100558331B1 true KR100558331B1 (en) 2006-03-10

Family

ID=37255959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20030095706A KR100558331B1 (en) 2003-12-23 2003-12-23 Rule language processing system and method for describing web interlocking knowledge

Country Status (1)

Country Link
KR (1) KR100558331B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008026794A1 (en) * 2006-08-28 2008-03-06 Korea Institute Of Science & Technology Information System for providing service of knowledge extension and inference based on dbms, and method for the same

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823289B1 (en) * 2006-08-28 2008-04-17 한국과학기술정보연구원 Apparatus and method for managing outcomes based on URI
KR101289127B1 (en) * 2006-11-14 2013-07-23 아주대학교산학협력단 Knowledge managing system
KR100902650B1 (en) * 2008-01-04 2009-06-15 숭실대학교산학협력단 Hybrid reasoning system based on ontology and method of the same
KR100918367B1 (en) * 2008-02-20 2009-09-22 아주대학교산학협력단 Apparatus and method of context inference for ubiquitous context recognition
KR101008691B1 (en) * 2008-12-15 2011-01-19 한국과학기술정보연구원 System and Method for Hybrid Rete Reasoning based on In-Memory and DBMS
KR101358415B1 (en) * 2012-06-19 2014-02-05 고려대학교 산학협력단 Integrating geographic information offering system and method for the same
KR101686919B1 (en) * 2016-01-07 2016-12-16 주식회사 엑셈 Method and apparatus for managing inference engine based on big data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008026794A1 (en) * 2006-08-28 2008-03-06 Korea Institute Of Science & Technology Information System for providing service of knowledge extension and inference based on dbms, and method for the same
US8037008B2 (en) 2006-08-28 2011-10-11 Korea Institute Of Science & Technology Information DBMS-based knowledge extension and inference service method recorded on computer-readable medium

Also Published As

Publication number Publication date
KR20050064347A (en) 2005-06-29

Similar Documents

Publication Publication Date Title
Horrocks et al. The ontology inference layer OIL
Angele et al. Ontologies in F-logic
Sycara et al. Larks: Dynamic matchmaking among heterogeneous software agents in cyberspace
Taye Understanding semantic web and ontologies: Theory and applications
Russell et al. A practical approach to multiple default inheritance for unification-based lexicons
Battle et al. Semantic web services language (SWSL)
KR100558331B1 (en) Rule language processing system and method for describing web interlocking knowledge
Khandelwal et al. Linked rules: Principles for rule reuse on the web
Laera et al. Sweetprolog: A system to integrate ontologies and rules
Biletskiy et al. Identification and resolution of conflicts during ontological integration using rules
Kontopoulos et al. Deploying defeasible logic rule bases for the semantic web
Bassiliades et al. R-DEVICE: an object-oriented knowledge base for RDF metadata
Schenk et al. Networked rdf graphs
Lee et al. Ontology management for large-scale e-commerce applications
Bassiliades et al. A visual environment for developing defeasible rule bases for the semantic web
Janhunen et al. Meta programming with answer sets for smart spaces
Meditskos et al. Towards an Object-Oriented Reasoning System for OWL.
Carloni et al. Introducing reasoning into an industrial knowledge management tool
Ledvinka et al. Formalizing object-ontological mapping using F-logic
Wang Valid Time RDF
Peer A Logic Programming Approach To RDF Document And Query Transformation.
Ma et al. Knowledge representation and reasoning in the Semantic Web
Stojanovic et al. Searching for the Knowledge in the Semantic Web.
Brown et al. Fine-grained filtering of data providing Web Services with XACML
Ledvinka Leveraging Semantic Web Technologies in Domain-specific Information Systems

Legal Events

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

Payment date: 20130205

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee