Communicating with Computers (CwC)

The Communicating with Computers (CwC) program aims to enable symmetric communication between people and computers in which machines are not merely receivers of instructions but collaborators, able to harness a full range of natural modes including language, gesture and facial or other expressions. For the purposes of the CwC program, communication is understood to be the sharing of complex ideas in collaborative contexts. Complex ideas are assumed to be built from a relatively small set of elementary ideas, and language is thought to specify such complex ideas—but not completely, because language is ambiguous and depends in part on context, which can augment language and improve the specification of complex ideas. Thus, the CwC program will focus on developing technology for assembling complex ideas from elementary ones given language and context.

Specific technologies that CwC will develop include: A corpus or library of elementary ideas; algorithms for assembling complex ideas from elementary ones given language and context; and algorithms for figuring out what to do or say during communication.

The CwC program is organized around three use cases of increasing difficulty:

Blocks World In this use case, humans and machines must communicate to build structures with toy blocks. The human or the machine will be given an assignment – a particular structure to build – and will have to communicate with the other to get the job done.
Biocuration This use case involves communication about the biological sciences literature between human biocurators, who read the literature and compile machine-readable records of the contents of papers, and machine biocurators such as those under development in DARPA's Big Mechanism program.
Collaborative Composition This use case will explore the process by which humans and machines might collaborate toward the assembly of a creative product—in this case, contributing sentences to create stories.
If successful, CwC could advance a number of application areas, most notably robotics and semi-autonomous systems. For example, CwC could allow operators to describe missions and give direction, before and during operations, using natural language. Conversely, when CwC-enabled robots or semi-autonomous systems encounter unexpected situations that require additional inputs from operators they would be capable of requesting assistance in natural language. Such natural language-based interactions would be far more efficient and flexible than programming or the rigidly preconfigured interfaces currently in use.

Communicating with Computers (CwC) 프로그램은 사람과 컴퓨터간의 커뮤니케이션에서 컴퓨터가 단순히 명령을 받기만 하는 것이 아니라 사람과 협업하며, 사람의 언어, 제스처, 표정등을 사용할 수 있도록 한다. CwC 프로그램 목표상의 커뮤니케이션이란 복잡한 아이디어를 협업하며 공유하는 것을 의미한다. 복잡한 아이디어는 비교적 작은 기초적인 아이디어들을 기반으로 만들어진다고 가정하고, 언어는 그 아이디어를 구체화시키는 역할을 한다. 하지만 언어는 애매모호하고 상황에 따라 다르므로 완벽한 구체화는 할 수 없다. 따라서 CwC는 주어진 언어와 상황에 맞게 복잡한 아이디어를 구성하는 기술을 개발하는 것에 포커스를 맞춘다.

CwC가 개발할 기술들은 다음과 같다: 기초적인 아이디어의 코퍼스 혹은 라이브러리; 기초적인 아이디어로부터 복잡한 아이디어를 구성할 알고리즘; 커뮤니케이션 과정에서 해야할 일을 명백히 해주는 알고리즘

CwC 프로그램은 다음의 세가지 사용 케이스로 구성된다.
1) Block World : 이 케이스에선 사람과 기계가 장난감 블록으로 구조물을 만들기 위해 소통해야 한다. 이들은 특정한 구조물을 만들라는 과제를 받고, 그를 수행하기 위해 서로 소통해야할 것이다.
2) Biocuration : 이 케이스에선 사람 생화학자가 문헌을 읽고 그를 기계가 읽을 수 있는 형태로 컴파일하고, DARPA의 Big Mechanism program을 통해 개발된 기계가 사람과 소통한다.
3) Collaborative Composition : 이 케이스에선 창의적인 제품 조립을 위해 사람과 기계가 협업해야한다.

이 프로그램이 성공한다면 로봇이나 반자동시스템과 같은 분야에 큰 발전을 가져올 수 있다. 예를 들어 CwC는 오퍼레이터가 자연어를 이용하여 과제를 설명하고 명령을 내리도록 할 수 있다. 반대로 로봇이나 반자동 시스템이 예기치못한 상황에 부딪혀 새로운 명령을 필요로 할 때, 자연어를 이용해 직접 명령을 요청하도록 할 수도 있다. 이러한 자연어 기반의 상호작용은 프로그래밍보다 훨씬 효율적이고 유동적이다.