LINGUIST List 17.3259|
Thu Nov 09 2006
FYI: Babel: A New Knowledge Representation Language
Editor for this issue: Amy Renaud
To post to LINGUIST, use our convenient web form at
Babel: A New Knowledge Representation Language
Message 1: Babel: A New Knowledge Representation Language
From: Bryan Livingston <bryanbabelproject.com>
Subject: Babel: A New Knowledge Representation Language
Babel is a knowledge representation language that aims to be as expressive as
most natural language.
Babel is modeled after the C family of computer programming languages which
have syntax that provide terse, human readable and easy to write code.
Parsing natural language is a hard problem, but it can be avoided by writing
Babel. By using this format natural language processing (NLP) can be
separated from the real artificial intelligence work.
Babel is not a representation of parsed natural language. It is designed to
represent specific meaning and does not include many of the subtleties of
natural language. Babel does not try to model natural language completely.
The aim is simply to be able to represent the meaning of most natural
Uses of Babel
The primary use of Babel is a format for talking to computers. Babel could
allow for an easier Turing Test to be attempted and may help move beyond the
current crude chat bot designs.
Babel could be used as a generalized goal definition system to define
objectives for an intelligent agent. It could describe problems, potential
solutions and actions to be performed by an agent.
Babel could be of use in translating between natural languages or in other
areas of linguistics. Learning and using Babel might improve your grammar
since it makes you think about the structure of what you are saying.
Current State of Babel
This is the first release of Babel. The language is capable of representing
simple sentences. More complex sentences may have to be broken into
multiple sentences. There are still many areas where the language can be
expanded to make it more expressive and easier to use.
The Babel grammar is written in a BNF variant that is used by the Gold Parsing
System (see http://www.devincook.com/goldparser/). The Gold Parser
compiles the grammar into tables which can then be used be loaded by an
parsing engine, which have been created for a variety of different
development platforms. This will help enable the language to be used on a
variety of platforms. The reference implementation is written in C# and
requires the .Net Framework 2.0 or later to run.
Babel to English translation is not a hard problem. Included in the
project is a translator that gives a reasonably understandable equivalent
in English (see http://translator.babelproject.com/). Getting the
translation to a point where it could pass for human for Turing Test
scenarios may be much more difficult. The English translator is very handy
for finding mistakes in Babel code and acts as a check to make sure you
said what you meant to.
A parser and the translator is built into a program imaginatively called Babel
Editor. The Babel Editor environment provides a view of the parsed result
that shows how Babel is represented as objects in the reference
implementation. Great care has been taken to keep the parsed object
Babel Editor Screenshot: http://babelproject.com/Babel-Editor-Screenshot.gif
Babel was created by me, Bryan Livingston. I also own and operate
http://cooltext.com. I'm more of a computer programmer than a linguist. I
searched long and hard for a language such as this but found none, so I
created Babel over several years as a side project.
Comments and suggestions are welcome on the mailing list at
http://groups.google.com/group/babelproject. The web site for the project
is at http://babelproject.com.
// Joe saw Jane.
// The tall man walked slowly.
Man tall.walk- slow();
// The quick brown fox jumped over the lazy dog.
Fox quick brown.jump- over[Dog lazy]();
// The horse that I rode died.
// Joe is tall.
// Joe was tall.
// Joe is a human.
// Tashonda sent e-mail, cards, and letters.
Tashonda.send-(Email & Card* & Letter*);
// Mrs. Doubtfire gave Tabitha and Samantha quizzes.
MrsDoubtfire.give- to[Tabitha & Samantha](Quiz*);
// Juanita and Celso worked hard.
Juanita & Celso.work- hard();
// I love running.
// Charles is working in the garden.
Linguistic Field(s): Computational Linguistics; General Linguistics
Respond to list|Read more issues|LINGUIST home page|Top of issue
Please report any bad links or misclassified data
LINGUIST Homepage | Read
LINGUIST | Contact us
While the LINGUIST List makes every effort to ensure the linguistic relevance of sites listed
on its pages, it cannot vouch for their contents.