Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ch05_ 프레임기반 전문가 시스템.

Similar presentations


Presentation on theme: "Ch05_ 프레임기반 전문가 시스템."— Presentation transcript:

1 Ch05_ 프레임기반 전문가 시스템

2 01_프레임이란 무엇인가? 02_지식 표현 기법으로서의 프레임 03_프레임기반 시스템에서의 상속 04_메소드와 데몬 05_프레임과 규칙의 상호 작용 06_Buy Smart: 프레임기반 전문가 시스템 07_요약

3 01_프레임이란 무엇인가? 프레임이란 무엇인가? 프레임이란 특정 객체 또는 개념에 관한 전형적인 지식으로 이루어진 데이터 구조체. 1970년대 마빈 민스키가 최초로 제안한 프레임은 프레임기반 전문가 시스템 (frame-based expert system) 에서 지식을 수집하고 표현할 때 사용함. [그림5-1]의 탑승권은 항공 승객에 대한 지식을 담은 전형적인 프레임을 보여줌. 프레임 두 개에 포함된 구조체는 동일하다.

4 01_프레임이란 무엇인가? 프레임이란 무엇인가? 각 프레임에는 자신만의 이름과 연관된 속성(또는 슬롯)의 집합을 포함함.
이름, 몸무게, 키, 나이는 사람이란 프레임의 슬롯이 되고, 모델, 프로세서, 메모리, 가격은 컴퓨터란 프레임의 슬롯이 됨. [그림 5-1]의 (a)를 보면 항공사 슬롯에는 QANTAS AIRWAYS 항공이라는 값이, 탑승구 슬롯에는2라는 값이 들어간다. 어떤 경우에 슬롯은 특정 값 대신 속성 값을 결정할 수 있는 프로시저가 될 수도 있음. 전문가 시스템에서는 종종 프레임을 생성 규칙과 함께 사용함.

5 01_프레임이란 무엇인가? 프레임을 왜 사용해야 할까 프레임은 지식을 구조화하고 정확하게 표현하는 합리적인 방법을 제공함.
단일 개체(entity)에서 프레임은 특정 객체 또는 개념에 대한 모든 필수 지식을 결합한다. 프레임은 지식을 표현하는 방법으로 슬롯(slot)을 사용하며, 슬롯을 통해 객체의 다양한 특성과 특징을 기술할 수 있다. 많은 실생활 문제는 IF-THEN 생성 규칙을 이용하여 합리적으로 표현할 수 있음. 체계적인 탐색 기법을 사용하는 규칙기반 전문가 시스템은 전체 기반지식 구석구석에 흩어져있는 사실을 가지고 작업한다. 이와 같은 방법에서는 주어진 문제와 관련 없는 지식을 탐색하여, 많은 시간이 걸릴 수도 있다. 예를 들어, 칸타스 항공을 자주 이용하는 승객에 대한 지식을 탐색할 때, 뉴질랜드 항공이나 영국 항공 승객을 탐색할 필요는 없다. 이러한 상황에서는 단일 구조체 내의 연관된 사실을 추출하는 프레임이 필요하다. 기본적으로 프레임이란 전문가 시스템을 위해 객체 지향 프로그래밍을 응용한 것임.

6 01_프레임이란 무엇인가? 객체 지향 프로그래밍이란 무엇인가 객체 지향 프로그래밍 객체 지향의 특징
분석, 설계, 구현의 기반이 되는 객체를 이용하는 프로그래밍 방법. 객체 지향 프로그래밍에서는 객체를 일종의 개념, 추상화로 정의하거나 문제에 대한 명확한 경계나 의미를 갖는 어떤 것으로 정의한다. 객체 지향의 특징 모든 객체를 아이디로 명백하게 구별할 수 있다. Michael Black, Audi 5000 Turbo, IBM Aptiva S35는 객체의 한 예가 된다. 객체는 단일 개체에서 데이터 구조체와 행위를 결합한다. 객체의 이러한 특성은 데이터 구조체와 행위 사이의 관계가 모호하거나, 관계를 숨겼던 전통적인 프로그래밍과 확연히 다르다. 객체 지향 프로그래밍은 컴퓨터로 실세계를 표현하는 합리적인 방법을 제공 전통적인 프로그래밍의 고유한 특성인 데이터 종속성에 관한 문제점을 해결한다. 지식 공학자들은 객체라는 개념으로 프레임을 사용하였으며, 인공지능 분야에서는 전문용어로 사용하였다.

7 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임 프레임의 개념은 슬롯의 집합으로 정의할 수 있음.
각 슬롯은 특정 속성이나 프레임의 동작을 의미한다. 프레임은 전형적인 개체 관련 정보를 담고 있는 전통적인 레코드(record)와 유사하다. 슬롯은 값을 저장할 때 쓰이며, 슬롯 하나에는 기본 값이나 다른 프레임의 포인터 값 또는 슬롯 값을 얻을 수 있는 규칙 집합이나 프로시저가 들어갈 수 있다. 일반적인 슬롯의 정보. 1. 프레임 이름. 2. 프레임과 다른 프레임간의 관계. IBM Aptiva S35 프레임은 컴퓨터 클래스의 소속이 될 수 있고, 컴퓨터는 하드웨어 클래스에 속할 수 있다. 3. 슬롯 값. 슬롯 값은 심벌, 숫자, 불(boolean)이 될 수 있다. 예를 들어, [그림 5-1]의 프레임을 보면 이름 슬롯에는 심벌 값이, 탑승구 슬롯에는 숫자 값이 들어간다. 프레임을 생성할 때나 전문가 시스템이 동작하는 중에 슬롯 값을 할당할 수 있다.

8 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임 일반적인 슬롯의 정보.
4. 기본 슬롯 값. 조건에 반대되는 근거가 없을 때, 기본 값은 참 값이 된다. 예를 들어, 자동차 프레임의 바퀴와 의자 프레임의 다리 개수에 대응되는 슬롯 값은4가 된다. 5. 슬롯 값의 범위. 슬롯 값의 범위는 특정 객체 또는 개념이 프레임에 정의된 요구사항과 합쳐질 때 결정된다. 예를 들어, 컴퓨터 구입 비용은 $750~$1,500 사이로 정해질 것이다. 6. 프로시저 정보. 슬롯은 슬롯 값이 변하거나 슬롯 값이 필요할 때 실행되는 프로시저(컴퓨터 코드의 독립된 일부분)를 값으로 가질 수 있다. 일반적으로 슬롯과 관련된 두 종류의 프로시저는 다음과 같다. (a) WHEN CHANGED: 슬롯에 새로운 정보를 할당할 때 실행된다. (b) WHEN NEEDED: 문제 해결을 위한 정보가 필요할 때 실행되며, 이 경우 슬롯 값은고정된 값이 아니다. 이러한 프로시저의 포함을 데몬2이라 한다. 또한 프레임기반 전문가 시스템은 패싯이라는 응용 프로그램을 통해 슬롯 값 구조를 확장할 수 있다.

9 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임 패싯이란 무엇인가
패싯(facet)이란 프레임의 속성에 대한 확장된 지식을 제공하는 방법이다. 패싯은 속성 값을 확정하고 이용자의 질문을 제어하며 추론 엔진에 속성을 처리하는 방법을 알려준다. 일반적으로 프레임기반 전문가 시스템은 속성에 값 패싯, 프롬프트 패싯, 추론 패싯을 할당할 수 있게 한다. 값 패싯은 속성에 기본 값과 초기 값을 규정한다. 프롬프트 패싯은 시스템이 동작할 때 사용자가 온라인으로 속성 값을 입력할 수 있다. 추론 패싯은 고정된 속성 값이 바뀔 때 추론 절차를 멈추게 한다. 문제를 프레임, 슬롯, 패싯으로 분할하는 척도 문제 하나를 여러 프레임으로 분할하고, 프레임을 슬롯과 패싯으로 분할하는 것은 문제 자체의 본질과 지식 공학자의 판단에 따르므로, 미리 정해진 정확한 것은 없다. [그림5-2]는 컴퓨터를 설명하는 프레임을 설명한다. 최상위 프레임은 컴퓨터 클래스를, 하위 프레임은 IBM Aptiva S35와 IBM Aptiva S9C 인스턴스 (instance)를 설명한다. 여기에서 두 가지 속성의 종류를 사용하고 있는데, 문자열(string) [Str]은 심볼릭 정보를 그리고 숫자열(numeric)[N]은 숫자 정보를 의미한다.

10 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임 문제를 프레임, 슬롯, 패싯으로 분할하는 척도
패싯은 컴퓨터 클래스의 플로피, 전원 공급기, 보장기간과 재고 슬롯에 기본 값과 초기 값을 할당한다. 더불어 클래스의 이름, 종류, 기본 값과 초기 값 속성은 인스턴스에 의해 상속되는 특성이다. 클래스와 인스턴스란 무엇인가 프레임이라는 단어는 종종 모호하다 프레임은 특정 객체를 지칭하는 인스턴스 프레임(instance-frame)과 유사한 객체 그룹을 의미하는 클래스 프레임(class-frame)으로 나뉜다. 클래스 프레임은 공통 속성을 포함한 객체의 그룹을 의미한다. 예) 동물, 사람, 자동차, 컴퓨터는 모두 클래스 프레임이다. 인공지능에서는 대개 ’클래스 프레임’을 줄여 ’클래스’라는 용어를 사용한다. 프레임기반 시스템에 있는 각 프레임은 자신의 클래스를 알고 있다. 다시 말해, 프레임의 클래스 정보는 프레임에 내포된 특성이다. 예를 들면, [그림5-2]의 인스턴스는 클래스 슬롯에 있는 자신 의 클래스를 확인한다.

11 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임

12 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임

13 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임
객체가 프레임기반 시스템의 기본이라면, 객체와 클래스는 어떤 관계인가 객체를 클래스로 묶으면 추상적인 형태로 문제를 표현할 수 있다. 민스키는 프레임을 ‘명확한 상황’을 나타내는 ‘데이터 구조’라 설명했다. 일반적으로 우리는 각 객체의 특징을 엄격하게 정의하는 대신 클래스 전체에 해당되는 두드러진 특징을 구별하는 일에 관심이 더 많다. 예를 들어, 새 클래스를 생각해보자. 새는 날 수 있는가? 대부분의 새가 날 수 있으므로 보편적으로 맞다. 따라서 타조같이 날지 못하는 새가 있어도 날 수 있다는 것을 새 클래스의 본질적인 특성이라 할 수 있다. 다시 말해, 독수리가 새의 전형에 좀 더 가까우므로 타조보다 새 클래스의 좋은 구성원이라 할 수 있다. 프레임기반 시스템은 클래스 상속을 지원하며, 상속이라는 절차를 통해 클래스 프레임의 모든 특징들이 인스턴스 프레임으로 넘어간다. 기본적으로 클래스 프레임의 속성은 클래스 내의 모든 객체에 보편적으로 적용되는 값을 갖지만, 인스턴스의 슬롯에는 각 인스턴스에 해당되는 실제 데이터 값이 채워진다. [그림 5-3]은 간단한 프레임 구조를 보여준다. 승용차 클래스에는 모든 자동차에 대한 보편적인몇 가지 속성이 있다. 이 클래스는 엔진 종류, 동력전달 종류, 변속기 종류와 같은 속성에 대해 다소 제한을 뒀지만, 할당해야 할 속성의 종류가 너무 다양하다. 이러한 속성을 복합체(Compound)[C]로 표현한다.

14 02_지식 표현 기법으로서의 프레임 객체가 프레임기반 시스템의 기본이라면, 객체와 클래스는 어떤 관계인가
복합체 속성은 여러 심볼릭 값의 묶음 중 하나로 정할 수 있다. 예를 들어, 엔진 종류 속성은4기통, 6기통, 둘 다 아님중에 하나로 가정할 수 있다. Mazda 클래스는 일종(is-a) 관계에 따라 승용차 클래스라는 상위 클래스와 연결된다. Mazda는 상위 클래스의 모든 속성을 상속받고, 더불어 기본 값으로‘일본’이라는 값을 갖는 생산 국가 속성을 선언한다. Mazda 626 클래스는 모델명, 차량 색상, 소유주라는 세 개의 속성을 추가로 선언한다. Mazda DR-1216 인스턴스 프레임은 Mazda 626 프레임처럼Mazda 레임으로부터 생산 국가속성을 상속받고, 다른 모든 복합체 속성에 실제 값을 할당한다. 인스턴스 프레임은 클레스 프레임에서 상속받은 속성 값을 재설정할 수 있는가 인스턴스 프레임은 상속받은 보편적인 속성 값을 다시 설정할 수 있다. 예를 들어, Mazda 626 클래스는 갤런당 22마일의 평균 연료 소모를 하지만, Mazda DR-1216 인스턴스 클래스는 연료 소모량이 갤런당 28마일로, 값이 다르다. 비록 보편적인 속성 값은 다르지만, 계층 구조상 Mazda DR-1216 프레임은Mazda 626 클래스의 인스턴스로 유지된다. 이러한 계층 구조 내의 프레임 간의 관계는 특별한 절차를 구성한다. 즉 계층 구조의 상위에 있는 클래스 프레임은 어떤 고유의 개념을 나타내고, 하위의 클래스 프레임은 좀 더 좁은 개념을 나타내어 인스턴스는 실제에 훨씬 근접한다.

15 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임

16 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임

17 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임 프레임기반 시스템에서 객체는 어떤 관계를 갖는가?
일종 관계만 이용할 수 있는가? 일반적으로 객체 간의 관계는 일반화, 부분화, 결합화로 나눌 수 있다. 일반화는 상위 클래스와 하위 클래스 간의 일종‘( is-a’또는‘a-kind-of’) 관계를 맺는다. 예를 들어, 차량은 일종의 운반 수단이다.다시 말해서, 차량은 운반 수단이라는 좀 더 일반적인 상위 클래스의 하위 클래스다. 이 경우, 각 하위 클래스는 상위 클래스의 모든 특성을 상속받는다. 부분화는 전체를 나타내는 상위 클래스와 컴포넌트(component)를 의미하는 하위 클래스 간에는 일부‘( a-part-of’또는‘part-whole’) 관계를 맺는다. 결합화는 관련이 없는 서로 다른 클래스 사이의 일종의 연결 고리 기능을 제공한다. 예를 들어, Mr.Black은 집, 자동차, 컴퓨터를 소유하고 있는데, 이들 클래스는 서로 독립적이지만, Mr.Black 프레임을 통해 서로 연결되어 있다. 일반화, 부분화와 달리 결합화는 일반적으로 동사로 표현되며, 본질적으로 양방향 관계를 띤다. Mr.Black은 컴퓨터를 소유하는가? 물론, 양방향 관계라는 명칭은 한쪽 방향으로 읽어들이지만 (Mr.Black은 컴퓨터를 소유한다), 그 방향이 반대로 바뀔 수 있다. 소유하다의 반대는 포함된다 가 되는데,‘컴퓨터는Mr. Black에게 포함된다’라고 바꿔 생각할 수 있다. 사실, 양쪽 방향 모두 서로 같은 의미므로 같은 결합화를 참조한다고 할 수 있다. [그림5-4]는 서로 다른 객체 간의 세 가지 관계를 보여준다.

18 02_지식 표현 기법으로서의 프레임 02_지식 표현 기법으로서의 프레임

19 03_프레임기반 시스템에서의 상속 프레임기반 시스템에서의 상속 프레임기반 시스템에서.
상속은 인스턴스 프레임에 클래스 프레임의 모든 특징을 부여하는 과정이다. 일반적인 상속이란 모든 인스턴스 프레임에 기본 값을 대응시키는 과정을 말한다. 어떤 객체 또는 개념의 고유한 특성을 담고 있는 클래스 프레임을 한 번 생성하면, 클래스 레벨의 특성을 일일이 지정하지 않고도 인스턴스 프레임을 여러 개 얻을 수 있다. 프레임기반 시스템의 계층 구조는 뒤집힌 트리(tree)모양이다. 추상화의 가장 상위 레벨은 트리의 루트(root)로, 가장 높은 곳에 표시된다. 루트 아래의 가지는 좀 더 낮은 추상화 레벨을 의미하고, 맨 마지막에는 인스턴스 프레임을 표시한다. 각 프레임은 그와 관련된 상위 레벨 프레임의 특성을 상속받는다. [그림 5-5]는 무공해 차량을 나타내는 프레임의 계층 구조임. 루트인 무공해 차량 클래스에는 세 개의 가지가 있다(전기차량, 태양열 차량, 수동 차량). 이 중 전기 차량 가지만 생각해 보자. 전기 차량은 자동차, 오토바이, 스쿠터로 나뉘고, 자동차 가지는 세단, 밴, 트럭으로 나뉜다. 마지막으로 Ford Ecostar 인스턴스 프레임이 있다.

20 03_프레임기반 시스템에서의 상속 프레임기반 시스템에서의 상속 프레임에는 하나 이상의 부모가 올 수 있을까
Ford Ecostar 인스턴스는 상위 프레임(parent frame)의 모든 특성을 상속받음. Ford Ecostar 인스턴스에는 사실 밴 클래스 프레임이라는 부모만 있다. 더구나 [그림 5-5]에서 루트인 무공해 차량 클래스를 제외한 모든 프레임에는 오직 하나의 부모만 있다. 이런 종류의 구조에서는 각 프레임은 자신의 상위, 차상위, 차차상위 프레임의 지식을 상속받는다. 프레임에는 하나 이상의 부모가 올 수 있을까 여러 문제를 보면, 다른 세상과 관련된 객체를 표현해야 될 때가 있음. 예를 들어, 수동식 태양열전기 차량에 관한 클래스를 생성한다고 하자. 이 차량은 사람이 페달을 구를 수도 있고, 오르막에서는 전기를 사용할 수 있으며, 태양열 시스템으로 전기 배터리를 충전할 수 있다. 다중 부모 상속 시 모든 부모의 속성을 유일하게 만드는 것에 유의해야 함. 프레임기반 시스템의 경우, 어떤 클래스는 같은 이름의 속성을 사용할 수 있다. 그러나 다중 상속을 허용할 경우, 모든 부모는 유일한 속성명을 사용해야 한다. 프레임기반 시스템에서 상속은 코드의 재사용을 의미하며, 지식 공학자는 유사한 클래스를 모아 공통 코드를 재사용할 수 있음.

21 03_프레임기반 시스템에서의 상속 프레임에는 하나 이상의 부모가 올 수 있을까
[그림 5-5] 무공해 차량 구조에서 단 하나의 부모만 있는 상속

22 03_프레임기반 시스템에서의 상속 프레임에는 하나 이상의 부모가 올 수 있을까
[그림 5-5] 무공해 차량 구조에서 단 하나의 부모만 있는 상속

23 03_프레임기반 시스템에서의 상속 프레임에는 하나 이상의 부모가 올 수 있을까 [그림 5-6] 다중 상속

24 03_프레임기반 시스템에서의 상속 프레임에는 하나 이상의 부모가 올 수 있을까 [그림 5-6] 다중 상속

25 03_프레임기반 시스템에서의 상속 프레임기반 시스템의 단점 숨은 단일화라는 개념은 실제 구현 단계에서는 강조되지 못함.
브랜치맨(Branchman)과 레베크(Levesque)는 상속받은 특성을 덮어쓰는 것에 제한을 두지 않는다면, 한정적인 문장 표현(모든 정사각형은 네 변의 길이가 같은 사각형이다) 또는 경험적이고 일반적인 상태(카시미어 말레비치가 그린 그림 위의 모든 정사각형은 검은색이거나 적색 또는 흰색이다)를 표현할 수 없다고 주장했다. 프레임기반 시스템은 본질적인 특성(클래스에 속하기 위해서 꼭 포함되어야 하는 속성)과 부가적인 특성 (클래스의 모든 인스턴스에 포함될지 모르는 속성)을 구별할 수 없음. 인스턴스는 모든 전형적인 특성을 상속받는데, 이들 특성은 프레임 계층 구조의 어디서든 덮어쓸 수 있음. 다중 상속을 사용할 때 인스턴스는 혼합된 개념을 구성할 수 없게 된다. 시스템을 계층적 구조로 설계하고 상속 경로를 만드는 일은 지식 공학자에게 어려운 문제임. 하지만 프레임은 선언적, 절차적 지식을 결합할 수 있는 강력한 도구다.

26 03_프레임기반 시스템에서의 상속 프레임기반 시스템의 단점 메소드와 데몬
전형적인 특성을 강조하는 일은 그것이 예상치 못한 결과를 초래할지도 모른다는 패싯에서 볼 때 꼭 필요한 일은 아님. 예를 들어 타조가 새라는 사실을 표현하기 위해 프레임을 사용할 때, 타조는 독수리와 달리 전형적인 새가 아니라는 패싯을 고려해야 한다. Level5 Object4와 같은 프레임기반 전문가 시스템에서는 이질적인 구조를 생성하지 못하게 하는 안전한 가이드라인을 제공하지 않음. 그러나 이 시스템은 어떤 전통적인 프로그래밍 언어보다도 인간의 상식에 기반을 두고 시뮬레이션에 적당한 데이터와 제어 구조를 제공한다. 더구나 최근 프레임기반 전문가 시스템은 지식을 표현하는 양대 기법(규칙과 프레임)의 효과를 결합하기 위해 프레임에 포함된 정보로 상호 작용하는 규칙을 사용한다. 메소드와 데몬 메소드(method)란 요청이 들어올 때마다 실행되는 프레임 속성과 관련된 프로시저임. 한 예로 Level5 Object에서 메소드는 스프레드시트 프로그램에서 사용하는 매크로와 유사한 명령 집합으로 생각할 수 있다.

27 04_메소드와 데몬 메소드란 속성 값이 변할 때 속성 값을 결정하거나 필요한 연속 동작을 실행시켜주는 특별한 속성이라고 할 수 있음. 대부분의 프레임기반 전문가 시스템은 WHEN CHANGED,WHEN NEEDED 메소드를 사용한다. 일반적으로 데몬(demon)은 IF-THEN 구조로 IF 문의 속성 값이 변할 때마다 실행됨. 데몬과 메소드는 매우 유사하고, 이 둘은 동의어로도 사용된다. 그러나 메소드는 복잡한 프로시저를 구현할 때 더 적합하고, 데몬은 보통 IF-THEN 문에 한정된다. WHEN CHANGED 메소드 WHEN CHANGED 메소드 속성 값이 변하면 즉시 실행된다. WHEN CHANGED 메소드가 어떻게 동작하는지 살펴보기 위해 스털링 (Sterling)과 샤피로(Shapiro)가 제안한 간단한 문제를 생각해보자. 대부업체가 작은 벤처회사에서 들어온 대출 요청을 평가할 때 전문가 시스템을 사용한다고 하자. 대출을 신청한 벤처회사의 담보와 재정 등급, 예상 수익률에 따라 대출 등급은 ’대출 가능’, ’대출불가’, ‘대출 보류’ 중 하나로 결정된다. 대부업체 직원이 예상 수익률에 대해 정량적으로 등급을 입력하면 전문가 시스템은 요구한 대출 금액과 사업체 담보를 비교한다. 순 자산 가치, 작년 영업 성장, 이익 증가율, 단기 판매 부채 정보로 사업체 전체의 가중치를 평가하여 재정 등급을 매긴 후, 세 가지 대출 등급 중 하나를 결정한다.

28 04_메소드와 데몬 메소드와 데몬

29 04_메소드와 데몬 메소드와 데몬 대출 여부를 선택 : [그림 5-7], [그림 5-8]
전문가 시스템은 사업체의 세부 정보를 제공하고, 사용자(대부업체 직원)가 선택한 사업체의 대출 요청에 대해 등급을 평가할 수 있어야 한다. [그림 5-7]은 대출 등급을 선택하기 위한 입력 창을 보여준다. 창의 데이터는 사업체가 선택되면 바뀐다. [그림 5-8]의 Action Data 클래스는 입력창을 제어하는 데 사용한다. 사용자는 조회 신청 목록의 다음, 이전, 처음, 마지막으로 이동할 수 있고, 사업체의 정보를 볼 수도 있다. WHEN CHANGED 메소드를 조회 신청 목록에 적용한다. [그림 5-8]의 모든 속성은 단순(simple) [S]로 선언되었음을 주목하라. 단순 속성 값은 참(TRUE) 또는 거짓(FALSE) 중 하나다.

30 04_메소드와 데몬 메소드와 데몬

31 05_프레임과 규칙의 상호 작용 규칙기반 전문가 시스템의 규칙과 프레임기반 전문가 시스템의 규칙의 차이
규칙기반 전문가 시스템의 규칙과 프레임기반 전문가 시스템의 규칙의 차이 모든 규칙은 IF-THEN 구조를 띠고 있으며, IF 부의 주어진 정보나 사실을 THEN 부의 어떤 동작에 연결시킨다. 이러한 의미에서 보면, 규칙기반 전문가 시스템의 규칙과 프레임기반 전문가 시스템의 규칙 간에는 별 차이가 없다. 그러나 프레임기반 시스템에서의 규칙은 자주 패턴 매칭(pattern matching) 절로 사용된다. 이들 절에는 모든 인스턴스 프레임 중에서 매칭 조건을 검색할 때 사용할 별도의 변수가 들어있다. 프레임기반 시스템에서 추론 엔진은 어떻게 동작하며, 무엇이 규칙을 동작하게 하는가 규칙기반 전문가 시스템에서 추론 엔진은 데이터베이스에 주어진 데이터와 기반지식에 포함된 규칙을 서로 연결함. 전문가 시스템이 특정 객체를 위한 값을 결정하도록 지시를 받으면, 추론 엔진은 결과적으로 주어진 목적(THEN 부)을 포함한 규칙을 찾기 위해 기반지식을 탐색한다. 만약 해당 규칙을 발견하고 선행자(IF 부)가 데이터베이스의 데이터를 만족하면, 규칙이 작동하고 특정 객체와 그 목적은 값을 얻는다.

32 05_프레임과 규칙의 상호 작용 목적을 위한 값을 이끌어낼 규칙이 전혀 없으면 프레임기반 시스템은 그 값을 얻으려고 사용자에게 질문함. 프레임기반 전문가 시스템에서도 추론 엔진은 목적 값을 얻을 때까지 특정 속성을 탐색함. 규칙기반 전문가 시스템은 기반규칙을 위해 목적을 정의함. 프레임기반 시스템에서 규칙은 보조 역할을 한다. 프레임은 지식의 주요 원천을 의미하며, 메소드와 데몬은 프레임에 동작을 추가하기 위해 사용한다. 프레임기반 시스템에서의 목적은 메소드나 데몬으로 만들어진다고 생각할 수 있다. 대출 조회 예제 : 만약 사용자가 선택한 대출 신청을 평가한다고 하자. 전문가 시스템은 사용자가 입력창에서 [대출평가] 버튼([그림5-7])을 누르면 평가를 시작할 것이다. 이 버튼은 [그림5-10]에서 보듯이 대출 조회 클래스의 대출 평가 속성과 연결되어 있다. 대출 평가 속성에는 그와 연관된 WHEN CHANGED 메소드가 들어있어 온라인으로 [대출 평가] 버튼을 누르면 대출 평가 속성에 새로운 값(TRUE)이 들어간다. 이러한 변화로 인해 WHEN CHANGED 메소드가 실행된다. PURSUE 명령은 Level5 Object에게 대출 조회 클래스의 평가 속성 값을 생성하게 한다. [그림 5-11]은 간단한 규칙 집합을 해당 속성 값을 결정짓는 데 사용한다

33 05_프레임과 규칙의 상호 작용 프레임기반 시스템에서 추론 엔진은 어떻게 동작하며, 무엇이 규칙을 동작하게 하는가
프레임기반 시스템에서 추론 엔진은 어떻게 동작하며, 무엇이 규칙을 동작하게 하는가 [그림 5-10] 대출 조회 클래스

34 05_프레임과 규칙의 상호 작용 추론 엔진의 동작 원리
추론 엔진은 대출 조회 평가라는 목적을 기반으로 규칙의 결론이 관심 목적에 부합하는 규칙을 찾고, 그 규칙을 기반규칙에 들어 있는 순서대로 한 번에 하나씩 검사함. 추론 엔진은 규칙9를 시작으로 평가 속성 값이 대출 가능인지를 검사한다. 이는 규칙의 각 선행자의 유효성을 검사하는 것으로, 추론 엔진은 먼저 담보 속성 값이 아주 양호인지를 검사하고, 다음으로 재정 등급 속성 값이 아주 양호인지를 검사한다. 대출 조회의 담보 등급 속성 값이 양호인지 결정하기 위해 추론 엔진은 규칙 1과 규칙 2를 검사하고, 대출 조회의 재정 등급 속성 값이 양호인지 결정하기 위해 규칙 8을 검사한다. 규칙 선행자가 모두 유효하면 추론 엔진은 대출 조회의 평가 속성 값에 대출 가능을 할당함. 그러나 선행자의 일부가 유효하지 않으면, 결론은 유효하지 않음으로 나올 것이다. 이 경우 추론 엔진은 평가 속성 값을 결정하기 위해 규칙10을 검사할 것이다.

35 05_프레임과 규칙의 상호 작용 추론 엔진의 동작 원리

36 05_프레임과 규칙의 상호 작용 추론 엔진의 동작 원리

37 05_프레임과 규칙의 상호 작용 대출 조회의 담보 등급이 양호인 경우 어떻게 될 것인가
대출 조회를 위한 규칙 집합에 따라 추론 엔진은 간혹 평가 속성 값을 만들지 못할 수도 있음. 담보 등급이 양호이고 재정 등급이 아주 양호 또는 양호인 경우가 특히 그렇다. 실제로 [그림 5-10]에서 볼 수 있듯이 기반규칙에 나타나지 않은 경우를 찾는다. 그러나 항상 규칙 집합에 의존할 필요는 없다. 이때는WHEN NEEDED 메소드를 사용하여 속성 값을 결정한다. [그림5-10]에서 알 수 있듯이,WHEN NEEDED 메소드는 평가 속성과 연결되어 있음. 추론 엔진은 평가 속성 값을 결정할 때 이 메소드를 사용함. WHEN NEEDED 메소드를 실행하면 평가 속성 값은 대출 보류(상급자에 문의)가 됨.

38 05_프레임과 규칙의 상호 작용 추론 엔진이 속성 값을 어디서 어떤 순서로 얻을 것인지 어떻게 알 수 있는가
추론 엔진이 속성 값을 어디서 어떤 순서로 얻을 것인지 어떻게 알 수 있는가 현 상황에서WHEN NEEDED 메소드를 처음 실행하면 대출 평가 값은 항상 대출 보류(상급자에 문의)가 되고, 실행되는 규칙이 없음. 추론 엔진은 기반규칙을 통해 값을 결정할 수 없을 때만 WHEN NEEDED 메소드를 사용해서 값을 얻어야 한다. 즉, 먼저 속성 값을 탐색할 순서를 결정해야 한다. 예를 들어, 시스템은 탐색 순서 패싯을 만들어 추론 엔진이 속성 값을 어디서, 어떤 순서로 얻을 것인지 정해야 한다. Level5 Object에서는 모든 속성에 대해 탐색 순서를 정할 수 있고, 대출 조회 예제에서는 평가 값을 얻기 위해 규칙, WHEN NEEDED 순으로 탐색 순서를 정할 수 있음. 대개의 경우 추론 엔진은 기반규칙부터 탐색함. 규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 규칙기반 전문가 시스템과 프레임기반 전문가 시스템간의 주요 차이는 시스템이 지식을 어떻게 받아들이고 나타내는가에 있음. 규칙 집합이란, 문제를 해결하기 위해 사용하는 특정 분야의 지식이다.

39 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템과 프레임기반 전문가 시스템간의 주요 차이는 시스템이 지식을 어떻게 받아들이고 나타내는가에 있음. 각 규칙은 문제의 해결을 돕는 보편적인 특성을 잡아내고, 새로운 규칙은 새로운 지식에 추가되어 시스템을 좀 더 영리하게 만든다. 규칙을 바꾸거나 추가, 삭제를 통해 규칙기반 시스템을 쉽게 바꿀 수 있다. 프레임기반 시스템에서는 문제를 다른 방식으로 접근한다. 즉 지식 구조의 계층 구조를 먼저 결정함. 클래스와 클래스의 속성을 정하고, 각 프레임 사이의 계층 구조 관계를 결정함. 프레임 기반 시스템의 구조는 문제에 대한 자연스러운 설명을 제공할 뿐만 아니라 메소드와 데몬을 통해 프레임의 동작을 추가할 수 있음. 일반적으로 프레임기반 시스템은 다음 단계를 따라 개발함. 1. 문제를 규정하고, 시스템의 범위를 정의한다. 2. 클래스와 클래스의 속성을 정한다. 3. 인스턴스를 정의한다. 4. 디스플레이(인터페이스 창)를 정의한다. 5.WHEN CHANGED와WHEN NEEDED 메소드 그리고 데몬을 정의한다. 6. 규칙을 정한다. 7. 시스템을 만들어 평가하고, 확장한다.

40 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 단계 1: 문제를 규정하고, 시스템의 범위를 정의함. Buy Smart 예제에서는 해당 지역의 부동산 매물에 관한 정보를 수집하는 것부터 시작한다. 이때 부동산 종류, 위치, 침실 수, 욕실 수, 가격에 관련된 세부 사항을 정하고, 간단한 설명과 함께 사진도 제공할 수 있다. 어떤 부동산은 팔릴 수도 있고, 새로운 부동산이 시장에 나올 수도 있다. 그래서 전문가 시스템을 통해 쉽게 바꾸고 접근할 수 있는 데이터베이스를 만들어야 한다. Level5 Object는 dBase III 데이터베이스 내에서 데이터의 접근, 변화, 삭제 그리고 동작을 수행할 수 있게 한다.

41 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 데이터베이스에 부동산에 대한 설명과 사진을 저장할 수 있는가? 부동산에 대한 간단한 설명과 사진을 별도로 저장해야 한다. 즉 설명은 텍스트 파일(*.txt)로, 그림은 비트맵 파일(*.bmp)로 저장된다. 만약 텍스트 상자와 그림 상자를 포함하는 화면을 만든다면, 텍스트 파일을 텍스트 상자로, 비트맵 그림을 그림 상자로 각각 불러들여서 부동산에 대한 설명과 사진을 화면에서 볼 수 있을 것이다. 다음 단계는 예상되는 질문을 모은 것이다. 질문에 대한 답을 얻었다면 전문가 시스템은 전체 부동산 정보 중에서 적당한 부동산 목록을 제공할 수 있어야 한다.

42 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 2단계: 클래스와 클래스의 속성을 정의 여기서는 문제에 필요한 주요 클래스를 정한다. 우선 클래스에 필요한 일반적, 개념적인 항목을 살펴보자. 예를 들어, 부동산의 개념적 특징을 언급할 수도 있고, 대부분의 부동산에 공통된 일반적인 특성을 찾아낼 수 있다. 모든 부동산은 위치와 가격, 종류, 욕실 수, 침실 수, 건축 자재, 그림과 간단한 설명으로 나타낼 수 있다. 또한 주소나 전화번호와 같은 부동산의 세부 정보를 보여줘야 한다. 따라서 [그림 5-12]와 같이 Property 클래스를 나타낼 수 있다. 여기서 Instance number라는 속성을 추가한 점에 주목하자. 이 속성은 부동산을 설명하는 특징은 아니지만, Level5 Object의 외부 데이터베이스와의 연동을 위해 필요하다.

43 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 3단계: 인스턴스를 정의 일단 Property 클래스 프레임을 결정하면 dBase III 데이터베이스에 저장되어 있는 데이터를 이용하여 인스턴스를 쉽게 만들 수 있다. 대부분의 Level5 Object와 같은 프레임기반 전문가 시스템에는 새로운 인스턴스를 생성하도록 시스템에게 알려주는 기능이 있다. 예를 들어, Property 클래스의 새로운 인스턴스를 만들기 위해 다음과 같은 코드 를 사용한다. 여기서 dB3 HOUSE 1 클래스는 외부 데이터베이스 파일 house.dbf의 구조를 의미한다. [표 5-1]에서 알 수 있듯이, Property 데이터베이스의 각 행은 Property 클래스의 인스턴스를 의미하며, 각 열은 Property 클래스의 속성을 나타낸다. 새로 생성된 인스턴스 프레임은 현재 데이터베이스에 기록된 정보 값을 받는다. [그림 5-12]는 외부 데이터베이스에서 생성된 인스턴스를 보여준다. 이들 인스턴스는 Property 클래스와 연결되어 Property 클래스의 모든 속성을 상속 받는다.

44 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 4단계 : 인터페이스 화면을 정의 주요 클래스와 그 속성을 모두 골라낸 다음, 응용 프로그램을 위한 주요 화면(display)을 설계 해야한다. 각 응용 프로그램을 시작할 때. 사용자에게 일반적인 정보를 보여줄 응용 타이틀 화면이 필요하다. 이 화면에는 제목, 시스템의 일반적인 설명, 대표 사진, 저작권 정보 등이 나올 수 있다. [그림5-13]은 응용 타이틀 화면의 한 예를 보여준다. 그 다음으로 필요한 화면은 질의 화면이다. 이 화면에는 전문가 시스템과의 질의를 통해 사용자의 선호도에 관한 정보를 표시하는 기능이 있어야 한다. [그림 5-14]는 질의 화면의 한 예를 보여준다. 여기에서 사용자는 찾고자 하는 부동산의 중요한 특징을 선택할 수 있다. 이렇게 선택된 특징을 이용하여 전문가 시스템은 사용자가 원하는 부동산 목록을 만들어 낼 것이다.

45 06_Buy Smart: 프레임기반 전문가 시스템
4단계 : 인터페이스 화면을 정의

46 06_Buy Smart: 프레임기반 전문가 시스템
4단계 : 인터페이스 화면을 정의

47 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 4단계 : 인터페이스 화면을 정의

48 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 4단계 : 인터페이스 화면을 정의 마지막으로 부동산 정보 화면을 제작해야 한다. 이 화면에서는 사용자가 원하는 부동산 목록을 보여줘야 한다. 더불어 목록 내의 개별 부동산으로 이동하는 버튼(다음, 이전, 처음, 마지막)과 개별 부동산의 사진, 간단한 설명을 보여주는 기능이 필요하다. [그림 5-15]는 이러한 화면 예를 보여준다. 화면들을 어떻게 연결할 것인가 Level5 Object는 응용 타이틀 화면의 [Continue] 버튼과 질의 화면, 질의 화면의 [Search] 버튼과 부동산 정보 화면을 연결한다. 따라서 응용 프로그램을 실행하고 사용자가 [Continue] 버튼이나 [Search] 버튼을 누르면 새로운 화면이 나타날 것이다. 이제 이 화면을 바탕으로 설계를 더 진행해보자.

49 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 5단계: WHEN CHANGED와 WHEN NEEDED 메소드, 데몬을 정의 지금까지 주어진 문제를 해결하기 위해 필요한 클래스와 해당 속성을 만들었다. 또한 인스턴스 클래스를 결정하고, 외부 데이터베이스를 이용하여 결정된 인스턴스를 생성하는 과정을 살펴 보았다. 마지막으로 사용자에게 정보를 보여줄 인터페이스 화면을 설계하였다. 이제 전체 시스템이 실제 생활과 어떻게 연동될지 고려할 차례다. 이때 사용하는 방법에는 첫째, WHEN CHANGED와WHEN NEEDED 메소드, 데몬을 이용하는 것이고, 둘째는 패턴 매칭 규칙을 이용하는 것이다. 일반적으로 프레임기반 시스템에서는 메소드와 데몬을 이용한 응용 프로그램을 우선적으로 생각한다. 먼저 Property 클래스의 인스턴스를 언제 생성할지 결정해야 한다. 이때 사용하는 방법은 두 가지다. 첫 번째는 사용자가 응용 타이틀 화면의 [Continue] 버튼을 누를 때 모든 인스턴스를 생성한 다음 질의 화면에서 사용자가 선택한 요구사항을 참조하여 불필요한 인스턴스를 제거하는 방식이다.

50 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 5단계: WHEN CHANGED와 WHEN NEEDED 메소드, 데몬을 정의 두 번째는 사용자가 질의 화면에서 요구사항을 모두 선택한 다음 관련된 인스턴스만 생성하는 방식이다. 이 방식은 Property 클래스의 불필요한 인스턴스를 제거할 필요가 없어서 유리할 것 같지만, 실제로는 시스템 설계 과정을 복잡하게 만든다. 따라서 이 예제에서는 첫번째 방식을 사용하기로 한다. 우리는 규칙을 대신해서 데몬을 사용할 것이다. 물론 다른 방식을 사용해도 좋다. 그럼 [그림 5-16]과 같은 Action Data 클래스를 추가로 만들어보자. Load Properties 속성에 연결되는 WHEN CHANGED 메소드는 Property 클래스의 모든 인스턴스를 생성하는 데 쓰인다.

51 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 5단계: WHEN CHANGED와 WHEN NEEDED 메소드, 데몬을 정의

52 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 메소드는 어떻게 동작하는 것인가 설계를 좀 더 진행해서 응용 타이틀 화면의 [Continue] 버튼을 Load Properties의 속성에 연결한다. 만약 사용자가 이 버튼을 누르면 Load Properties 속성 값이 참이 되어 이 속성의 WHEN CHANGED 메소드가 실행되고, Property 클래스의 모든 인스턴스가 생성된다. 생성된 인스턴스의 개수는 외부 데이터베이스에 저장된 정보의 수와 같다. 이제 질의 화면이 화면에 보여지고(응용 타이틀 화면의 [Continue] 버튼과 질의 화면을 연결시킨 점을 기억하자), 사용자는 본인이 원하는 부동산의 특성을 골라 해당 버튼을 선택할 것이다. 각각의 버튼은 Property 클래스의 불필요한 인스턴스를 제거해주는 데몬과 연결된다. [그림 5-17]은 데몬 집합을 보여준다.

53 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 데몬은 어떻게 동작하는가 데몬은 조건을 만족할 때만 동작한다. 즉 이 예제 프로그램에서는 사용자가 버튼을 누를 때만 데몬이 동작한다. [Central Suburb] 버튼과 연결된DEMON 1을 살펴보자. 사용자가 질의 화면에서 [Central Suburb] 버튼을 누르면 DEMON 1이 동작한다. 데몬의 첫 번째 명령어는 Level5 Object가 Property 클래스를 찾도록 지시한다. WHERE 절은 사용자가 선택한 요구와 일치하지 않는 Property 클래스의 모든 인스턴스를 찾아낸다. 즉 Area 속성 값이 Central Suburbs가 아닌 인스턴스를 찾아낸 후, FORGET CURRENT 명령어로 프로그램에서 Property 클래스의 현재 인스턴스를 삭제한다. 사용자가 원하는 부동산의 특징을 모두 선택하면 사용자는 해당 특징을 만족하는 부동산 목록을 보기 위해 질의 화면의 [Search] 버튼을 누른다. 목록은 부동산 정보 화면에 보여진다([Search] 버튼과 부동산 정보 화면이 연결되어 있음을 기억하자).

54 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 부동산의 사진과 간단한 설명을 어떻게 볼 수 있는가 [그림 5-18]에서 볼 수 있듯이, Action Data 클래스에 Load Instance Number와 Goto First Property라는 두 가지 속성을 만든다. 또한 질의 화면의 [Search] 버튼에 Load Instance Number 속성을 연결한다. 만약 프로그램에서 [Search] 버튼을 누르면Load Instance Number 속성 값은 참이 되고, 그 속성의 WHEN CHANGED 메소드가 실행된다. 이 메소드는 Property 클래스에 남아 있는 모든 인스턴스 개수를 계산한다. 마찬가지로 Goto First Property 속성 값이 참이 되어 이 속성의WHEN CHANGED 메소드가 연속적으로 실행된다. Goto First Property 속성에 연결된 메소드 부동산 정보 화면이 화면에 나타날 때, 부동산 목록에 있는 첫 번째 부동산의 정보 값을 나타낸다. 또한 이 창의 그림 상자(picture-box)에 Pictfile 속성 값을, 텍스트 상자(text-box)에 Textfile 값을 불러들이면 [그림 5-15]와 같이 부동산에 대한 사진과 간단한 설명을 볼 수 있다.

55 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 단계 6: 규칙을 정한다 프레임기반 전문가 시스템을 설계할 때, 규칙을 사용할 것인지 아니면 메소드나 데몬을 사용할 것인지에 대한 결정은 매우 중요하고 어려운 문제다. 이는 주로 설계자의 개인적인 취향에 따라 결정되는데, 이 예제에서는 메소드와 데몬을 사용할 것이다. 왜냐하면 메소드가 프로시저를 나타내기에 좀 더 강력하면서도 간단한 방식을 제공하기 때문이다. 반면 앞에서 살펴본 대출조회 예제에서는 규칙 집합을 사용했다. 그러나 규칙은 프로시저 지식을 다루기에 그다지 효과적이지 못하다.

56 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 단계 7: 시스템을 만들어 평가하고, 확장한다 지금까지 Buy Smart 전문가 시스템의 초기 설계를 완료하였다. 이제 평가를 해야 한다. 개발한 시스템의 성능이 사용자의 기대를 충족시킬 수 있도록 일종의 베타 테스트를 실행해보자. 응용 타이틀 화면의 [Contine] 버튼을 눌러 테스트를 시작한다. Action Data 클래스의 Load Properties 속성은 참 값이 된다. Load Properties에 연결된 WHEN CHANGED 메소드가 실행되면 Property 클래스의 모든 인스턴스가 생성된다. 질의 화면이 화면에 나타나면, 다음과 같은 선택을 해보자.

57 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 단계 7: 시스템을 만들어 평가하고 확장한다

58 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가 단계 7: 시스템을 만들어 평가하고, 확장한다. 데몬은 사용자의 선택 조건에 맞지 않는 Property 인스턴스를 제거한다.

59 06_Buy Smart: 프레임기반 전문가 시스템
단계 7: 시스템을 만들어 평가하고, 확장한다. [Search] 버튼을 누른다. Action Data 클래스의 Load Instance Number 속성 값이 참이 된다. Load Instance Number에 연결된 WHEN CHANGED 메소드가 실행된다. Property 클래스에 남아있는 인스턴스 개수가 결정되고, Goto First Property 속성이 참 값으로 할당된다. 그러면 Goto First Property에 연결된 WHEN CHANGED 메소드가 실행된다. 시스템은 목록 내의 최초 Property 인스턴스를 찾아서 Property picturebox의 filename 속성에 house01.bmp를 할당하고, Property textbox의 filename 속성에 house01.txt 값을 할당한다. 4.부동산 정보 화면이 화면에 나타난다. [그림 5-15]를 보면 사용자의 요구사항을 만족하는 12개의 부동산이 검색되었다. 부동산 목록 내의 맨 처음 부동산이 선택되고, 그림 상자와 텍스트 상자에 해당 부동산의 사진과 간단한 설명이 나타난다. 그러나 화면에 있는 버튼을 이용하여 부동산 목록의 다음, 이전, 마지막 부동산으로 이동할 수 없다. 이와 같은 기능은 Action Data 클래스에 속성을 추가하여 [그림 5-19]와 같이 WHEN CHANGED 메소드를 연결해줘야 한다.

60 06_Buy Smart: 프레임기반 전문가 시스템
규칙기반 전문가 시스템을 개발할 때와 프레임기반 전문가 시스템을 개발할 때의 주요 단계 사이에는 어떤 차이가 있는가

61 07_요약 프레임기반 전문가 시스템 요약 프레임이란 특정 객체 또는 개념에 대한 전형적인 지식으로 구성된 데이터 구조체다.
프레임은 프레임기반 전문가 시스템에서 지식을 표현할 때 사용하며, 주어진 객체의 이름과 슬롯이라고 하는 속성의 집합을 포함한 지식을 의미한다. 예를 들어, 이름, 무게, 키, 나이는 사람이라는 프레임의 속성이 된다. 모델, 프로세서, 메모리, 가격은 컴퓨터라는 프레임의 속성이다. 속성은 값을 저장할 때 사용한다. 속성은 기본 값, 다른 프레임의 포인터, 속성 값을 얻어낼 수 있는 규칙 집합이나 프로시저가 될 수 있다. 프레임기반 시스템은 패싯(facet) 응용 프로그램을 통해 속성 값 구조를 확장할 수 있다. 패싯은 사용자의 질문을 제어하거나 속성 값을 결정, 계산하도록 추론 엔진에 알려주는 일을 한다.

62 07_요약 프레임기반 시스템은 클래스의 상속을 지원하며, 상속이라는 절차를 통해 클래스 프레임의 모든 특징들이 인스턴스 프레임으로 넘어간다 기본적으로 클래스 프레임의 속성은 클래스 내의 모든 객체에 보편적으로 적용되는 값을 갖지만, 인스턴스의 슬롯에는 각 인스턴스에 해당되는 실제 데이터 값이 채워진다. 프레임은 다중 부모 상속을 통해 하나 이상의 부모에게 상속받을 수 있다. 프레임은 메소드와 데몬을 통해 서로 통신한다. 메소드는 프레임 속성에 관련된 프로시저로, 호출될 때 실행된다. 대부분의 프레임기반 전문가 시스템은 WHEN CHANGED와 WHEN NEEDED 메소드를 지원한다. WHEN CHANGED 메소드는 새로운 정보가 슬롯에 할당될 때 실행되고, WHEN NEEDED 메소드는 문제를 해결하기 위해 정보가 필요하지만 슬롯 값이 정해지지 않았을 때 실행된다. 데몬은 메소드와 유사하고, 두 용어는 동의어로 사용되곤 한다. 그러나 메소드는 복잡한 프로시저를 구현할 때 적합하고, 데몬은 보통IF-THEN 문에 한정된다.

63 07_요약 프레임기반 전문가 시스템 요약 프레임기반 전문가 시스템에서 규칙은 종종 패턴 매칭 절을 사용한다.
이들 절에는 모든 인스턴스 프레임에서 매칭 조건을 찾을 때 사용할 변수가 있어야 한다. 프레임은 선언적, 절차적 지식을 결합하는 강력한 도구지만, 시스템과 상속 경로의 계층적 구조를 설계하는 과정은 어렵다. 프레임은 유사한 객체의 그룹이나 특정한 하나의 객체를 나타낼 수 있다. 클래스 프레임에는 공통된 속성이 들어있는 객체 그룹을 의미한다. 동물, 사람, 자동차, 컴퓨터는 모두 클래스 프레임이다. 인스턴스 프레임은 특정 객체를 나타낸다

64 Thank You !


Download ppt "Ch05_ 프레임기반 전문가 시스템."

Similar presentations


Ads by Google