프로카
| ProCA Programmable Cognitive Assembly | |
| 사용 지역 | 대한민국 |
| 사용 인구 | 1 |
표기
| |
| 표현 | 그래프 |
| 문자 | 라틴 문자 (예정) |
분류
| |
| 어순 | • VSO
• 후치 수식 |
| 언어 유형 | 인공어 |
| 언어 지향 | 공학어, 철학어 |
소개
인지조립언어(Cognitive Assembly Language)는 그래프를 사용해 인간 정신의 구조를 간략하게 모델링하면서 인간이 생각할 수 있는 개념들을 정밀하게 표현하여 정확한 의미전달을 가능하도록 하는 것을 목표로 만들어진 인공 언어이자 표현의 보조 도구이다. 통칭으로 프로젝트명의 영어 약칭을 딴 프로카(ProCA; Programmable Cognitive Assembly) 라고도 한다.
기반으로 하고 있는 이론들은 다음과 같다.
- 인지언어학
- 인공신경망 이론
- 의미-텍스트 이론
- 논리형 프로그래밍
- 마르코프 결정 과정
기본
인지조립언어 표현은 정신적 구조의 전사(transcription)이다. 쉽게 말하면, 머릿속에 있는 기존의 지식들과 실시간으로 구성되는 동적인 구조들을 언어로 대응시켜 표현한다는 것이다. 다만 우리 정신의 메커니즘의 많은 부분들이 밝혀지지 않았기 때문에, 일단은 여러 아이디어들을 결합하여 인지구조를 모델링한 후 그 가정 위에서 작업할 것이다. 다른 말로 하면 인지조립언어는 정신적 구조가 모델링 된 어떤 가상의 기계가 사용하는 언어인데 인간 회화에서도 사용 가능한 것이라고 해도 되겠다. 인지조립언어에서의 정신적 구조 모델을 'CA 모델' 이라고 칭하자.
CA 모델
우리 뇌는 복잡한 신경망이다. 신경망은 동적 그래프(dynamic graph)이며, 가설적 기계의 언어소통을 위해 만든 CA 모델의 구조도 동적인 그래프이다. 그래프는 다양한 종류의 요소(unit)와 연결(link)들로 구성된다. 요소는 정점, 연결은 간선 역할을 한다.
- 어떤 하나의 연결을 기준으로, 그 연결 간선의 머리에 해당하는 요소를 연결전측(prelink) 요소라고 하며, 꼬리에 해당하는 요소를 연결후측(postlink) 요소라고 한다.
- 어떤 요소를 기준으로, 그 요소가 연결후측 요소가 되는 연결을 그 요소의 입력연결(input link), 입력연결의 연결전측 요소를 그 요소의 입력요소(input unit)이라고 한다.
- 반대로, 그 요소를 연결전측 요소로 삼는 연결을 그 요소의 출력연결(output link), 출력연결의 연결후측 요소를 그 요소의 출력요소(output unit)이라고 한다.
개념, 사례, 관계
다음은 그래프를 구성하는 가장 기본적인 부품들이다.
- 사례요소(instance unit) : 모든 그래프의 뼈대가 되는 요소. 각 사례요소는 의미범위를 가지며, 연결된 것들에 따라 의미범위가 제약된다.
- 개념요소(concept unit) : 어떤 추상화된 개념에 대응되는 요소. 개념의 종류는 다양하고, 대표적인 것들은 다음과 같다.
- 연장개념(extension concept) : 세계에 연장하는 물체를 나타내는 개념. 공간상을 가지고 시간상을 가지지 않는다.
- 활동개념(activity concept) : 동작이나 변화를 나타내는 개념. 시간상을 가지고 공간상을 가지지 않는다.
- 특성개념(characteristic concept) : 물체나 동작의 특성을 나타내는 개념. 시간상도 공간상도 가지지 않는다.
- 표지개념(tag concept) : 사람들 사이에서 암묵적으로 합의된 어떤 대상의 특성을 나타내는 개념.
- 관계개념(relation concept) : 물체들 사이의 관계를 나타내는 개념.
- 사례화연결(instantiation link) : 개념요소를 전측으로 하고 사례요소를 후측으로 하여, 해당 사례요소가 그 개념의 사례라는 것을 나타내도록 하는 연결. 이 때 후측의 사례요소의 의미범위는 전측의 개념에 해당하는 것으로 한정된다. 한 사례요소가 여러 개념요소를 전측으로 가질 수 있는데, 이 경우 사례요소는 그 개념들 모두에 해당되는 것으로 의미범위가 제약된다. 개념들의 의미범위가 겹치지 않는 경우는 의미가 없게 된다.
- 확산연결(spread link) : 전측의 요소에서 활성화(activation)가 후측의 요소로 확산됨을 나타내는, 동적인 연결. 이미 조건형성되어 있을 때뿐만 아니라 자극 활성화가 어떤 요소에서 다른 요소로 확산될 때면 모두 사용할 수 있다. 대표적으로 어떤 것을 생각했는데 다른 것이 생각날 때 사용하거나, 어떤 것을 생각했는데 어떤 감정이 들 때 사용할 수 있다.
개념요소 가운데 특수한 것으로 'n'과 'v'가 있다. 'n'은 모든 연장개념을 포함하는 개념이며, 대충 '어떤 것'에 대응된다. 'v'는 모든 활동개념을 포함하는 개념이며, 대충 '어떤 일이 일어나다'에 대응된다.
그래프를 종이에 쓸 때와 컴퓨터 상에서 텍스트로 표현할 때 다음과 같이 표기한다. 텍스트로 표기된 그래프는 따옴표 안에 표시하는 것이 원칙이다.
- 개념요소는 그 개념에 해당되는 단어로 표시한다. ex) '원숭이'
- 사례화연결은 화살표에 선이 그어진 모양(↛)으로 쓴다. 텍스트에서는 '%>' 로 대체한다.
- 사례요소는 동그라미(0)로 쓴다. 혼동이 없는 경우, 개념요소를 후측으로 가지는 사례요소는 그 개념요소 중 하나를 택해 그것과 그 사례화연결을 생략하고 해당 개념요소에 해당하는 단어를 대신 쓸 수 있다. '0'을 그대로 쓰는 경우는 별로 없고, 해당 사례요소가 어떤 종류의 개념에 해당하는지를 나타내기 위해 'n'과 'v'가 사례요소의 표시로 자주 쓰인다. 설명을 위해 여러 다른 사례요소를 구분해야 할 때, 동그라미 밑에 아래첨자 1,2,3... 을 붙일 수 있다. 텍스트에서는 01, 02, 03... (보통 사례요소) / n1, n2, n3... (연장개념으로 제약되는 사례요소) / v1, v2, v3... (활동개념으로 제약되는 사례요소) 과 같이 표기한다.
예를 들면, '나무 %> 0' 라는 그래프는 어떤 사례요소 전측에 '나무'라는 개념요소가 연결되어 있고, 해당 사례요소의 의미범위를 나무에 해당되는 것으로 제약한다는 것을 표현한다.
CA 모델에서는 우리가 어떤 것의 이름이라고 하는 것 역시 특수한 개념요소의 일종인 이름개념(name concept)으로 취급한다. 그러므로, 어떤 이름의 대상을 나타내기 위해 이름개념을 전측으로 붙여 표현할 수 있다. ex) 'Hala %> 0' : 사례요소는 'Hala' 라는 이름의 대상을 의미범위로 한다.
사례요소는 다른 사례요소와 관계를 맺음으로서 서로의 의미범위를 제약할 수 있다.
- 관계연결(relation link) : 두 사례요소 사이의 관계를 추상화한 연결. 관계의 종류가 다양하므로, 관계연결의 종류는 매우 다양하다.
- 둘 사이에 어떠한 방식으로 관계연결이 가능한지는 두 사례요소가 연결후측으로 가지는 개념요소에 따라 다르다.
- 보통, 둘 사이의 관계는 비대칭적이기 때문에 관계연결은 방향을 가진다.
- 전측에 해당하는 것을 술어(predicate), 후측에 해당하는 것을 논항(argument)이라 한다.
- 연장개념과 동적개념이 관계연결을 맺는다면, 보통은 둘 중 연장개념인 쪽이 논항이 되고, 동적개념인 쪽이 술어가 된다.
- 관계연결은 보통의 화살표(→)로 표기한다. 텍스트에서는 '>'로 대체한다.
- 한 술어가 다양한 관계연결을 통해 여러 논항을 가질 수 있는 경우, 관계연결의 종류에 따라 '>'에 a, e 따위의 문자열을 함께 써서 'e>'와 같이 표기한다.
같은 술어 사례요소에 관계연결된 논항 사례요소들은 함께 어떤 상황을 구성하여 술어와 논항의 관계 종류에 따라 서로의 의미범위를 제약하는 역할을 한다. '원숭이 %> n1 <a v1 (<% 먹다) e> n2 <% 바나나' 라는 그래프의 예시를 들어 설명해 보자.
- 사례화연결을 생략해 쓰면 '원숭이 <a 먹다 e> 바나나' 이다.
- 사례요소 v1은 술어 역할을, n1과 n2는 논항 역할을 하고 있다.
- 활동개념 '먹다'의 사례는 관계연결의 후측으로 두 논항을 가질 수 있는데, 먹는 쪽을 'a'로, 먹히는 쪽을 'e'로 구분한다.
- 이 그래프는 원숭이가 바나나를 먹는 상황을 표시한다. 사례요소 n1은 원숭이 중에서 바나나를 먹는 것의 의미범위를, n2는 바나나 중에서 원숭이에게 먹히는 것의 의미범위를, v1의 경우 먹는 행위 중에서 원숭이가 바나나를 먹는 행위의 의미범위를 가진다.
- 즉, 이 그래프의 의미는 '원숭이가 바나나를 먹다' 이다.
정신공간
그래프는 정신공간에 소속되어 의미를 표현한다.
- 정신공간(mental space) : 그래프를 포함할 수 있는 개체. 특수요소들과 함께 써서 시공간적 배경이나 누군가의 생각, 지식 등을 표현할 수 있다. 정신공간은 그래프를 둘러싸는 경계로 나타낸다. 텍스트에서는 그래프를 둘러싸는 괄호 '()'로 나타낸다.
- 특수요소(special unit) : 술어가 되어 논항으로 정신공간 자체를 받는 요소들을 총칭하여 말한다. 논항의 종류는 'e'로 정신공간 자체를 받고, 'a'로 그 특수요소에 맞는 대상을 받는다. 'a' 논항을 'e'논항에 해당하는 정신공간의 배경요소(background unit)이라고 한다. 특수요소는 정신공간의 의미를 배경 내의 것으로 제약한다.
주요 특수요소들과 의미는 다음과 같다.
- 배경요소가 없는 것 : 시제요소(tense unit)라고도 한다. 주의할 점으로 이는 현재를 기준으로 한 시간과는 관련이 없고, 단지 정신공간 내 그래프에서 묘사되는 상황이 화자 정신의 어느 부분에서 유래해서 표현되는 것인는지를 나타낸다. 이는 시간여행이나 기억조작이 묘사될 때 특히 유용하다. 현재를 기준으로 하는 시간을 표현하기 위해서는 아래의 특수요소 'x'를 사용한다.
- 'P' : 현상 시제(phenomenalistic tense). 상황이 화자의 현재 경험에서 유래함을 나타낸다.
- 'T' : 기억 시제(memory tense) : 상황이 화자의 기억에서 유래함을 나타낸다.
- 'K' : 예측 시제(predictive tense) : 상황이 화자의 예측에서 유래함을 나타낸다.
- 'H' : 상상 시제(imagination evidence) : 상황이 화자의 상상에서 유래함을 나타낸다.
- 'S' : 추론 시제(inference tense) : 상황이 화자의 추론에서 유래함을 나타낸다.
- 배경요소로 유정물이 오는 것
- 'm' : 정신공간 내의 그래프는 배경요소에 해당하는 대상의 내적 생각을 나타낸다. 이는 위의 시제요소와 결합하여 'mP', 'mT', 'mK', ... 와 같이 쓸 수 있으며, 배경요소에 해당하는 대상의 정신에서 상황이 유래됨을 화자가 표현할 때 이와 같이 나타낸다.
- 배경요소로 배경사가 오는 것 : '이것들은 사건의 배경 정보를 표현한다.
- 'x' : 배경요소는 정신공간 내 그래프의 시간적 배경이다. 배경사가 '현재'를 기준으로 하는 단순한 시간일 때 아래의 압축된 표현들을 사용할 수 있다. 광원추 밖의 사건들에 대해서는 표현을 사용할 수 없다.
- 'xp' : 그래프의 상황이 현재와 상호작용하며 동기화되고 있음을 나타낸다.
- 'xt' : 그 상황이 (현재에 영향을 미치는) 과거임을 나타낸다.
- 'xk' : 그 상황이 (현재에서 영향을 받는) 미래임을 나타낸다.
- 'z' : 배경요소는 정신공간 내 그래프의 공간적 배경이다.
- 'x' : 배경요소는 정신공간 내 그래프의 시간적 배경이다. 배경사가 '현재'를 기준으로 하는 단순한 시간일 때 아래의 압축된 표현들을 사용할 수 있다. 광원추 밖의 사건들에 대해서는 표현을 사용할 수 없다.
- 배경요소로 정신적 대상이 오는 것.
- 'f' : 배경요소에서 정신공간의 상황으로 활성화가 동적으로 확산된다는 것을 표현한다.
- 'c' : 배경요소는 정신공간의 상황을 연상시키도록 조건화된 대상이다.
- 's' : 배경요소는 상황을 연상시키는 공유가능한 표현이다. 상징뿐만 아니라 상황을 묘사하는 글이나 그림 따위도 이것으로 표현한다.
예를 들어, '어제 <a x e> (원숭이 <a 먹다 e> 바나나)' 의 그래프는, 원숭이가 바나나를 먹는 상황을 나타내는 정신공간의 배경이 어제라는 것을 나타내고, '어제 원숭이가 바나나를 먹었다' 를 의미하게 된다. 특수요소 자체가 연결되어 있지 않은 경우에는, 그래프 표현을 줄여서 표현할 수 있다. 줄인 표현은 마치 관계연결 하나처럼 묘사되고, 전측에는 배경요소가, 후측에는 정신공간이 온다. 관계연결을 구분하는 문자열에는 그 특수요소를 표현하는 문자가 온다. 예컨대, 위 예시의 그래프를 '어제 x> (원숭이 <a 먹다 e> 바나나)' 이렇게도 표현할 수 있다.
TODO: 지식연결은 정신공간 연결자의 예시라는 것을 보여주면서 자연스럽게 통합
지식의 표현
지식연결을 통해 지식이 형성되어 있는 것을 표현할 수 있다.
- 지식연결(knowledge link) : 지식의 부품이 되는 연결. 지식연결의 포함하는 그래프의 사례요소들은 전측 그룹과 후측 그룹 둘 중 하나에 속하며, 그 그래프의 지식연결들은 전측 그룹의 사례요소를 전측으로 하고 후측 그룹의 사례요소를 후측으로 가진다. 전측의 사례요소가 모두 활성화되면, 지식연결들이 사라지면서 그 전측의 사례요소와 후측의 사례요소가 '동일화'되어 전측의 사례요소에 연결된 것들이 후측의 사례요소의 연결까지 모두 갖게 된다.
- 지식연결은 그래프에서 머리가 빈 화살표(⇾) 로 표기한다. 텍스트에서는 '>>' 로 대체한다.
예시로써 설명해 보자.
- '고양이를 때리는 사람은 나쁘다' 를 표현하고 싶다고 하자.
- '때리다'의 두 논항 중 때리는 쪽을 'a', 맞는 쪽을 'e'로 구분한다.
- 이에 해당하는 그래프는 '나쁘다 %> n1 << n2 (<% 사람) <a v1 (<% 때리다) e> n3 <% 고양이' 이다.
- 전측 그룹에 해당하는 사례요소는 n2, v1, n3이고 후측 그룹에 해당하는 사례요소는 n1이다.
- 전측 그룹의 사례요소 의미범위에 대응되는 '사람이 고양이를 때리는' 상황이 있다면, 전측 그룹의 사례요소가 모두 활성화되면서 지식연결이 사라지고 n1과 n2가 동일시된다.
- 동일시 후의 그래프는 '나쁘다 %> n12 (<% 사람) <a v1 (<% 때리다) e> n3 <% 고양이' 이 되어 그 사람이 나쁘다는 속성을 얻게 된다. 즉, 고양이를 때리는 사람은 나쁘다고 판단되게 된다.
동일한 그래프에 둘 이상의 지식연결이 있을 수도 있다. 예컨대, 그래프 '좋다 << 원숭이 <a 먹다 e> 바나나 >> 맛있다'가 성립되어 있으면, 원숭이가 바나나를 먹는 상황이 있을 때 원숭이는 좋은 것으로 판단되고 바나나는 맛있는 것으로 판단된다.
개념의 정의 역시 지식연결로 표현할 수 있다. 주의할 점은, CA 모델에서 어떤 개념은 그것과 관련된 모든 지식에 의해 의미범위가 규정된다는 것이다. 즉, 지식연결이 포함된 그래프는 그에 참여하는 모든 개념요소의 의미범위를 규정한다. 이를 도입하기 위해서는 조금 더 고찰이 필요하다.
개념을 정의하기 위해서는 지식연결 후측에 새로운 개념요소에 의해 사례화된 단일 사례요소가 있으면 된다.
- '동물 <a 먹다 e> n >> n <% 먹이'라는 그래프는 '동물이 먹는 것은 먹이이다' 라는 의미이다. 즉, '먹이'라는 개념을 '동물이 먹는 것'이라 정의하는 것이다.
그래프에서 여러 개념을 정의할 수도 있다. 상황 속에서 역할의 추상화를 진행하는 예시를 보자.
- 그래프 '남자 %> n1 <e 결혼하다 e> n2 <% 여자' 라는 그래프가 있다고 하자.
- 이 그래프가 나타내는 상황은 남자와 여자가 결혼하는 상황이고, n1과 n2는 상황에 알맞게 의미범위가 제약된다.
- 이제 지식연결을 써서 '신랑 %> n << (남자 %>) n1 <e 결혼하다 e> n2 (<% 여자) >> n <% 신부' 라고 할 수 있다.
- 이렇게 하면 어떤 여자와 결혼하는 남자를 신랑, 어떤 남자와 결혼하는 여자를 신부라고 정의하는 것이 된다.
술어로 작용할 수 있는 개념 역시 추상화가 가능하다. 이 때는 새로운 개념 사례가 그 논항으로 지식연결 바로 후측의 사례요소들을 가지도록 구성하면 된다. 관계를 추상화하는 예시를 보자.
- '여형제'를 추상화하기 위해 'n1 <a 부모 e> n2 <e 부모 a> n3 <% 여성' 이란 그래프를 만든다. 이 그래프에서 n1과 n3은 부모로 n2를 공유한다.
- 이제 이 그래프에 'n1 >> n4 <a 여형제 e> n5 << n2' 이런 식으로 요소와 연결을 추가하여 '여형제'라는 개념을 만들 수 있다.