AI  Language

 

...... 우리는 사물을 생각할때에 수를 생각하는 일은 흔하지 않다. 보통은 말, 개념, 이미지 등의 문자나 기호 (Symbol) 를 이용하고 있다. 그래서 AI 연구용 프로그램 언어로서는 수치계산에 적합한 언어보다는 문자나 기호를 처리할수 있는 언어쪽이 바람직하다. 이러한 인공지능 (Artificial Intelligence) 연구용의 프로그램언어가  LISP 이나 PROLOG 등이다.

LISP 은 '리스트 프로세서' 라는 뜻으로 리스트 처리에 적합하다. 리스트란 문자나 기호의 열인데, 예컨대 문자 A, B, C 의 리스트는 (A B C) 처럼 표기된다. LISP 은 이 리스트의 요소, 예컨대 A 라는 문자를 꺼내거나 추가 삭제를 간단히 할수있다. 예컨대 'CAR' 라는 명령은 리스트의 선두 요소를 꺼내고 'CDR' 라는 명령은 선두요소를 삭제한다. 따라서 CAR' (A B C) 는 (A), CDR' (A B C) 는 (B C) 라는 답을 보낸다.

PROLOG 는 술어논리 (Predicate Calculus) 에 입각한 프로그램 언어다. 예를들면 'a 는 b 의 아버지이다' 'b 는 c 의 아버지이다' 라는 지식은 father (a, b)   father (b, c) 처럼 표현된다. 또 부자 관계의 규칙, 예컨대 'Z 가 X 의 할아버지 라는 것은, Z 는 Y 의 아버지이고, Y 가 X 의 아버지라는 것이다' 라는 규칙은 grandfather (Z, X) : father (Z, Y), father (Y, X) 로 표시된다. 여기서 'c 의 할아버지는 누구인가' 라는 질문은 ? - grandfather (Z, c) 를 하면 추론되어, 'a' 라는 답이 나오게 되는 것이다.

AI 프로그램은 거대하며 복잡하다 그래서 최근에는 대상 분야의 지식만 입력되면 비교적 간단히 전문가시스템을 만들수 있는 간이언어 '전문가시스템 툴 (tool)' 이 시판되고 있다. ........... (월간 과학 1987 년 9월)

컴퓨터 (Computer) 기술이 확립되기 위해서는 항상 두 요건이 있다. 그 하나는 처리하는 분야의 개념이 정리되고, 그의 알고리즘이 확립되는 것이다. 이것은 탐색 (Search) 알고리즘 과 지식표현 (Knowledge Representation) 이다. 다른 하나는 그것을 기술하는 프로그래밍 수단의 확립이다.

AI 는 그 기술이 확립되었을 때, 그것을 AI 이라고 부르지 않게 된다고 한다. 한없이 인간 지능 (Intelligence) 에 접근하는 것을 목적으로 한 기술개발이다. 그 프로그램 언어도 끊임없이 진보를 계속해서 항상 미완성의 언어라고 부르게 될 숙명을 갖는다는 것이다. AI 의 연구는 인간 두뇌 (Brain) 의 실현이므로 "인간두뇌의 기술 그 자체가 프로그램이다" 라고 말하고 있다.  그리고, 컴퓨터에 자연어 이해 (Natural Language Understanding) 가 되는 컴파일러 (번역기) 가 이루어질 때, AI 의 연구가 끝날지도 모른다.

AI 언어 발전의 세 가지 흐름

처리순서라고 하는 측면에서 프로그램 언어를 분류하면, Fortran 이나 Pascal 등과 같이 차례를 실행문 (처리하는 요소) 의 계열로 표현하는 순차처리형 언어가 있다. 나아가서, 차례를 처리하는 요소인 식 사이의 테이터의 입출력 의존에 의해서 표현하는 함수형 언어 및 차례를 처리요소 사이의 데이터의 동치관계로 표현하는 관계술어형 언어로 분류된다. 함수형 언어의 대표적인 것으로 LISP 가 있으며, 관계술어형 언어로는 그것을 술어논리 표현으로 하는 PROLOG 가 대표적이다.

AI 형 언어는 순차처리형 언어계열의 Algol 계의 SAIL 과 함수형 언어로 발전한 LISP 계열 및 관계술어형 언어의 PROLOG 계열의 세가지로 분류된다.

LISP 계열은 옛부터 AI 연구용으로 개발되었으며 INTER-LISP, PLANNER, MICRO-PLANNER, CONNIVER 가 되고, 차츰 개량되어 1980년에 COMMON-LISP 로 표준화 되었다. 그러나, 그 후에 미국의 LUCID사가 개발한 LUCID-COMMON-LISP가 확장성, 범용성, 유연성이 풍부하고, 보다 신뢰성이 높은 시스템 개발이 가능하므로 업계표준이 되어 보급되고 있다. PROLOG는 술어논리의 표현체계를 갖고 있으며, 일본의 ICOT (신세대 컴퓨터 개발기구) 가 채택하여, 급속히 보급되어 가고 있다.

이들의 AI 는 Marvin Minsky프레임 (Frame) 이론의 발표를 경계로 해서 많이 변화하였다. 그것은 KRL, FRL, KLONE, OWL, OMEGA, SRL라고 하는 지식표현 언어가 나타난 것이다. 나아가서, 세계 최초의 전문가 시스템인 DENDRAL 의 개발 성공에 의해서 전문가시스템 (Expert System) 구축용 언어 (이것은 구축용 Shell 또는 Tool 이라고 한다.) 가 나타난 것이다.

이와 같이, AI 언어는 AI 시스템 구축의 핵심언어인 LISP 와 PROLOG 라고 하는 두 범용언어 계열과 전문가 시스템 구축용 shell 그리고 지식 표현 언어군의 세가지로 나누어진다. (Algol 계의 언어는 AI 용으로는 전혀 사용되지 않는다)

AI 프로그램 언어의 조건

AI 는 추론 (Reasoning) 하는 컴퓨터를 실현하는 것이다. 따라서, AI 프로그램 언어의 조건이라고 하는 것은 추론 (문제와 지식의 기술과 그의 탐색) 을 효율적으로 실행하는 프로그램의 기술이므로 다음과 같다.

① 문제, 오퍼레이터 (Operator), 지식의 기술의 용이함 ......... 탐색공간은 리스트 구조 (리스트상의 탐색공간은 표 형식으로 표현할 수 있다) 가 되며 술어논리 (Predicate Logic) 표현이 된다. LISP는 리스트 처리언어이며, PROLOG는 술어논리의 리스트 구조의 프로그램 언어이므로, 이 조건을 만족하고 있다.

연역 (Deduction) 을 실행시키며, 연역의 기본이 되는 명제를 지식베이스 (Knowledge Base) 에 저장하는 기능 ........ AI 는 명제 (언어명제라고 생각해도 좋다) 를 기술 (리스트 또는 술어논리) 하고, 이에 삼단논법 (Syllogism) 의 추론 (연역) 을 한다. 그렇게 하기 위해서, 연역기능의 정의와 명제의 표현, 기술이 쉬운 언어가 얻어진다.    

③ 패턴매칭 기능 ........ 기억하고 있는 명제를 탐색해서 이것을 찾아내기 위해서 패턴매칭 (Pattern Matching) 을 하고 있다. AI 프로그램 언어의 기본조건은 패턴 매칭 기능에 있다고 해도 과언이 아니다. 패턴매칭이 쉬운 프로그램 구조는 문제나 지식의 기술이 쉽다.

④ 재귀적 처리의 기술능력 등 융통성이 있는 제어구조 재귀적 처리 (recursive call) 라고 하는 것은 자기 자신을 몇 번이라도 불러서 같은 탐색을 반복하는 것이다 (하노이탑 (Tower of Hanoi) 참조).

⑤ 관련된 정보를 묶어서 하나로 생각해서 탐색할 수 있는 프레임과 같이 복잡한 지식구조를 기술할 수 있는 기능

⑥ 특정한 문제해결 (Problem Solving) 로서는 절차형과 선언형의 지식구조를 섞어서 기술하는 능력

이상 ①∼⑤의 기능의 모든 것을 갖는 언어는 아직 존재하지 않는다. 어떤 언어는 어떤 기능을 갖게 하기 위해서 다른 기능을 희생시키게 된다.

지금까지의 AI 언어는 LISP 을 중심으로 목적마다 여러 가지 기능을 추가시키는 형으로 쓰기 쉬운 언어가 만들어졌다. 앞으로, PROLOG가 보급되면, 그 개량형의 언어가 많이 나타날 것이다.

LISP 와 PROLOG

LISP 은 애당초 미국에서 사용하고 있던 유일한 AI 언어이었다. 이것은 List Processing Language 의 약자이며, 1958년 John McCarthy 에 의해서 만들어졌다. 이와 같이, 수명이 긴 언어는 포트란 이외에는 없다. ........

PROLOG 는 Programming Language for Logic 의 약자이며, 1972년에 Marseille 대학의 A. Colmerauer 와 P.Roussel 에 의해서 개발되었다. 이것은 술어논리로 명제를 표현하고, 논리연산 기능을 겸비한 언어이다. LISP 와 같이 PROLOG 는 기호 (Symbol) 처리용으로 만들어지고, 리스트 처리는 매우 효율적으로 처리된다. ............

term :

기호 (Symbol)   언어학 (Linguistics)   자연어처리 (Natural Language Processing)   자연어이해 (Natural Language Understanding)   전산언어학 (Computational Linguistics)   인공언어 (Artificial Language)   형식언어 (Formal Language)   AI 언어 (AI Language)   기계번역 (Machine Translation)   PROLOG   LISP

인공지능 (Artificial Intelligence)   촘스키 계층 (Chomsky Hierarchy)   오토마타 (Automata)   계산가능성 이론 (Computability Theory)   계산복잡도이론 (Computational Complexity Theory)   튜링 기계 (Turing Machine)

 source