프레임 & 의미망 & 스크립트
지식을 표현하는 방법 - 프레임, 의미망, 스크립트에 대해 알아봅니다.읽는데 6분 정도 걸려요.프레임 (Frame)
특정 객체 또는 개념에 대한 전형적인 지식을 슬롯(slot)의 집합으로 표현하는 것으로, 컴퓨터를 표현한 프레임은 다음과 같이 기술할 수 있다.
슬롯 (slot)
객체의 속성(attribute)를 기술하는 것으로 슬롯 이름과 값으로 구성된다.
슬롯 값은 복수개의 패싯
과 데몬
으로 구성된다.
-
패싯 (facet)
속성에 대한 부가적인 정보를 저장하기 위해 사용되며 아래와 같은 패싯 이름들을 사용할 수 있다.- value: 속성 값
- data-type: 속성의 자료형
- default: 기본 값
- require: 슬롯에 들어갈 수 있는 값이 만족해야 할 제약조건
-
데몬 (demon)
지정된 조건을 만족할 때 실행할 절차적 지식을 기술하는데 사용되며, 아래와 같은 데몬 이름들을 사용할 수 있다.
- if_needed: 슬롯 값을 알아야 할 때(즉, 사용하려고 할 때)
- if_added: 슬롯 값이 추가될 때
- if_removed: 슬롯 값이 제거될 때
- if_modified: 슬롯 값이 수정될 때
클래스 프레임
위에서 프레임을 설명할 때 사용한 프레임이 클래스 프레임이다.
하위 프레임이 상위 프레임을 상속받는 계층구조도 가질 수 있음.
인스턴스 프레임
클래스 프레임을 특정 객체에 대한 정보로 표현하면 인스턴스 프레임이 된다.
그냥 OOP와 같은 개념이다.
의미망 (Semantic network)
노드와 방향성 간선으로 구성되는 그래프를 이용해 지식을 표현하는 방법으로, 이항 관계만을 표현한다.
그렇기에 다항 관계도 이항 관계로 전개하여 표현해야 하는데, 그 때문에 관계(relation) 역시 객체로 간주하여 표현한다.
-
is-a
자식 is-a 부모, 인스턴스 is-a 클래스와 같은 관계의 간선을 표현한다. -
has-a
전체 has-a 부분, 부분 part-of 전체와 같은 관계의 간선을 표현한다.
is-a, has-a는 추이적 관계를 만족하는데, 추이적 관계란, 3단논법과 같은 관계를 의미함.
is-a(팽귄, 조류) is-a(조류, 동물) → is-a(팽귄, 동물)
지식을 시각적으로 표현할 수 있어 직관적으로 이해할 수 있고, 노드 추가 및 변경이 자유롭다는 장점이 있다.
하지만, 양이 많아지면 관리가 복잡해지고, 개념이나 관계를 임의로 정의하기에 통일성이 떨어진다는 단점이 있다.
추론
상속관계를 이용해서 추론한다.
예로 들어 '바둑기사의 키는?' 이라는 질문은 다음과 같이 추론할 수 있다.
뿐만 아니라, 주어진 지식으로부터 새로운 사실을 이끌어내는 추론도 가능하다.
예로 들어 '사람1이 사람2에게 사물1을 준다'는 지식으로부터, '사람2는 사물1을 소유하게 된다'는 사실을 추론한다.
프레임으로 변환
노드별로 프레임으로 변환할 수 있는데, 노드에서 나가는 간선들을 슬롯으로 구성하면 된다.
스크립트 (Script)
일반적으로 발생할 수 있는 전형적인 상황에 대한 절차적 지식을 일목요연하게 표현한 것이다.
-
진입 조건
스크립트에 기술된 사건들이 일어나기 전에 만족되어야 하는 전제조건 -
역할자
스크립트에 관련된 사람, 대상 -
자산
사건 진행 과정에서 사용되는 객체 -
트랙
스크립트에서 발생할 수 있는 사건들이 변형된 형태 식별자 (장소) -
장면
실제 일어나는 일련의 사건 -
결과 조건
스크립트의 장면에 있는 사건들이 일어난 후에 만족되는 조건