프레임 & 의미망 & 스크립트

지식을 표현하는 방법 - 프레임, 의미망, 스크립트에 대해 알아봅니다.읽는데 6분 정도 걸려요.

프레임 (Frame)

특정 객체 또는 개념에 대한 전형적인 지식을 슬롯(slot)의 집합으로 표현하는 것으로, 컴퓨터를 표현한 프레임은 다음과 같이 기술할 수 있다.

231022-153840

슬롯 (slot)

객체의 속성(attribute)를 기술하는 것으로 슬롯 이름과 값으로 구성된다.
슬롯 값은 복수개의 패싯데몬으로 구성된다.

  • 패싯 (facet)
    속성에 대한 부가적인 정보를 저장하기 위해 사용되며 아래와 같은 패싯 이름들을 사용할 수 있다.

    • value: 속성 값
    • data-type: 속성의 자료형
    • default: 기본 값
    • require: 슬롯에 들어갈 수 있는 값이 만족해야 할 제약조건
  • 데몬 (demon)
    231022-154436

    지정된 조건을 만족할 때 실행할 절차적 지식을 기술하는데 사용되며, 아래와 같은 데몬 이름들을 사용할 수 있다.

    • if_needed: 슬롯 값을 알아야 할 때(즉, 사용하려고 할 때)
    • if_added: 슬롯 값이 추가될 때
    • if_removed: 슬롯 값이 제거될 때
    • if_modified: 슬롯 값이 수정될 때

클래스 프레임

위에서 프레임을 설명할 때 사용한 프레임이 클래스 프레임이다.

하위 프레임이 상위 프레임을 상속받는 계층구조도 가질 수 있음.

인스턴스 프레임

231022-154657

클래스 프레임을 특정 객체에 대한 정보로 표현하면 인스턴스 프레임이 된다.
그냥 OOP와 같은 개념이다.


의미망 (Semantic network)

231022-184947

노드와 방향성 간선으로 구성되는 그래프를 이용해 지식을 표현하는 방법으로, 이항 관계만을 표현한다.
그렇기에 다항 관계도 이항 관계로 전개하여 표현해야 하는데, 그 때문에 관계(relation) 역시 객체로 간주하여 표현한다.

231022-185755

  • is-a
    자식 is-a 부모, 인스턴스 is-a 클래스와 같은 관계의 간선을 표현한다.

  • has-a
    전체 has-a 부분, 부분 part-of 전체와 같은 관계의 간선을 표현한다.

is-a, has-a는 추이적 관계를 만족하는데, 추이적 관계란, 3단논법과 같은 관계를 의미함.

is-a(팽귄, 조류) \wedge is-a(조류, 동물) → is-a(팽귄, 동물)

지식을 시각적으로 표현할 수 있어 직관적으로 이해할 수 있고, 노드 추가 및 변경이 자유롭다는 장점이 있다.
하지만, 양이 많아지면 관리가 복잡해지고, 개념이나 관계를 임의로 정의하기에 통일성이 떨어진다는 단점이 있다.

추론

상속관계를 이용해서 추론한다.
예로 들어 '바둑기사의 키는?' 이라는 질문은 다음과 같이 추론할 수 있다.

231022-190024

뿐만 아니라, 주어진 지식으로부터 새로운 사실을 이끌어내는 추론도 가능하다.
예로 들어 '사람1이 사람2에게 사물1을 준다'는 지식으로부터, '사람2는 사물1을 소유하게 된다'는 사실을 추론한다.

231022-190213

프레임으로 변환

231022-190324

노드별로 프레임으로 변환할 수 있는데, 노드에서 나가는 간선들을 슬롯으로 구성하면 된다.


스크립트 (Script)

일반적으로 발생할 수 있는 전형적인 상황에 대한 절차적 지식을 일목요연하게 표현한 것이다.

231022-190644

  • 진입 조건
    스크립트에 기술된 사건들이 일어나기 전에 만족되어야 하는 전제조건

  • 역할자
    스크립트에 관련된 사람, 대상

  • 자산
    사건 진행 과정에서 사용되는 객체

  • 트랙
    스크립트에서 발생할 수 있는 사건들이 변형된 형태 식별자 (장소)

  • 장면
    실제 일어나는 일련의 사건

  • 결과 조건
    스크립트의 장면에 있는 사건들이 일어난 후에 만족되는 조건