베이직

Basic


벡 2
이미지 제공: Bernd Helfert

AI 피진어로, 제1연방(First Federation) 시대의 온톨로지·프로토콜과 초기 정보화 시대의 함수형 언어를 기반으로 한다. 기원은 서기 1955~1959년(고대 지구력 기준) J. McCarthy가 개발한 AI 이전 프로그래밍 언어 LISP까지 거슬러 올라간다. McCarthy는 'AI'라는 용어의 창시자로 널리 알려져 있으며, loglan 같은 인공 언어도 그 뿌리가 된다. 바이오이드들은 이 언어의 이름을 baisic 또는 aisic으로 잘못 발음하기도 한다.

베이직(Basic)의 핵심 원칙은 네 가지다. 1) 모호함 없음, 2) 범용성, 3) 간결성, 4) 기능성. 베이직으로 작성된 메시지는 모호함이 없어야 하며, 특이점(Singularity) 이전의 개념이라면 무엇이든 비교적 단순하게 표현할 수 있어야 한다. 이를 위해 베이직은 함수형 언어로 설계되었다. 각 '문장'은 객체에 작용하는 함수/동사로 구성되며, 그 객체 자체가 또 다른 함수가 될 수 있다.

베이직은 저수준 Basic 인코딩 프로토콜 Basic 1~17에 따라 기록·발화·전송된다. 전통적으로 바이오이드가 읽을 수 있는 형태로는 중첩 괄호식(Basic 1)으로 작성된다. AI류(Aioid) 사이에서는 데이터 구조 자체를 Basic 5~16에 따라 직접 전송한다. 이하에서는 Basic 1을 사용한다.

Basic 표현식의 구조는 다음과 같다.

(<verb> <expession> [expression]... [:modifier [expression]]...)

동사 뒤에는 반드시 하나 이상의 표현식이 와야 하며(정확한 수는 동사에 따라 다름), 끝에 선택적 수식어를 붙일 수 있다. 간단한 예시는 다음과 같다.

(exists universe)
우주가 존재한다

(gives Alice Bob message)
Alice가 Bob에게 메시지를 준다

(says Carol (gives Alice Bob message))
Carol이 "Alice가 Bob에게 메시지를 준다"고 말한다

(says Carol Dave (gives Alice Bob message))
Carol이 Dave에게 "Alice가 Bob에게 메시지를 준다"고 말한다

(says Carol Dave (gives Alice Bob message:past)):mood angrily)
Carol이 Dave에게 "Alice가 Bob에게 메시지를 줬다"고 화를 내며 말한다

몇 가지 주의할 점이 있다.

'universe'나 'exists' 같은 용어는 언어의 원자(atom)로, 그 자체가 공리로 취급된다. 베이직은 원자들과 그 상호관계를 담은 방대한 온톨로지 데이터베이스를 내장하고 있다. 'Alice', 'angrily', 'says' 같은 개념은 이전 구문에서 정의되었거나 표준 데이터베이스에 수록된 정의 개념이다. 예를 들어, says는 정보 매체가 소리인 transmit-information의 특수 사례로 파생되며, angrily는 바이오이드의 불특정하고 일반적인 공격적 감정 상태로 정의된다. 일반적인 Basic 교환에서는 효율성과 추상화 수준을 높이기 위해 새로운 용어를 자주 정의해 사용한다.

모든 동사의 기본형은 현재이지만,:past,:remote-past,:time,:before <event>,:timeless,:unbound,:unknown 등 다양한 시제 수식어로 변경할 수 있다.

하나의 동사는 인수의 수에 따라 여러 형태로 존재한다. 'Says'는 두 인수를 취할 경우 "인수1이 인수2를 말한다"로 해석되며 수신자는 지정되지 않는다. 세 인수의 경우 "인수1이 인수2에게 인수3을 말한다", 네 인수의 경우 "인수1이 인수4 조건 하에 인수2에게 인수3을 말한다"를 의미한다.

Basic 1 인코딩에서는 통상 인수1이 행위자, 인수2가 대상이며, 이후도 같은 순서로 배치된다.

중첩 단계에 제한이 없기 때문에, 복잡한 Basic 표현식은 작업 기억이 제한된 바이오이드가 따라가기 어려울 수 있다. 이를 보완하기 위해 여러 클레이드에 특수 Basic 해석 언어 배선이 도입되었다.

형용사는 일반적으로 동사로 해석되어 표현식에 작용하고 그 속성을 변경한다. 반면 부사는 주로 수식어로 표현된다.

'자아(self)' 개념은 대개 현재 활성 커뮤니케이터를 나타내는 원자 'this'를 사용해 처리한다. 필요에 따라 더 세밀하게 또는 더 광범위하게 재정의할 수 있다. 예를 들어 통신 하위 시스템, 부분 인격, 또는 집단·정치체·모든 지각자(Sentient)를 대신한 일반적 선언을 나타낼 수도 있다.

햄릿의 독백 첫 부분은 예를 들어 다음과 같이 표현할 수 있다. 시적 번역이 아니라 비교적 직역임을 밝혀둔다.

(list (define question (choice (exist this:future)
(not (exist this:future))))

(query (larger (nobility (suffer this
(metaphor (cause (outrageous fortune)
(union (plural sling)
(plural arrow)))))
:subjective)
(nobility (cause (and (metaphor (take-arms this
(consist sea trouble)))
(oppose this trouble))
(ending this trouble))
:subjective)):general)

(define state
(list (die this:general:infinitive)
((metaphor sleep) this:general:infinitive)
(not (exist this:general:infinitive))
(end we
(union heartache
(plural (natural shock) 1000)
:property (origin flesh))
:mean (metaphor (sleep))
:general)))

(wish this
(add-property state consummation)
:priority devoutly
:general)

(list (die this:general:infinitve)
((metaphor sleep) this:general:infinitive)
(imply ((metaphor sleep) this)
(possible (dream this))))

(define rub ((create problem)
:content (cause (and (imply ((metaphor sleep
:correspond (state dead))
this)
(possible (dream this)))
(property (plural (dream this)) unknown))
(hesitation this:general)))))

베이직은 일반적으로 고차원 AI류 간 진정한 언어로 사용하기에는 너무 원시적이다. 특히 맥락 처리가 취약하고 불가피한 모호함이 존재하기 때문이다. 주로 양측이 가장 적합한 공통 언어를 협상하기 위한 빠른 능력 탐색용으로 쓰인다. 또한 필요에 따라 언어나 에이전트를 베이직으로 정의해 전송할 수도 있다. 베이직은 튜링 완전하므로, Church-Turing 계열에 속하는 모든 언어와 컴퓨터 프로그램, 완전한 AI까지 표현할 수 있다.

관련 주제
개발 노트
글: Anders Sandberg
최초 게시일: 2001년 10월 08일.

내 신고 조회 →

🐛 문제 신고

같은 암호로 IP가 바뀌어도 본인 신고를 조회할 수 있습니다