17.3259, FYI: Babel: A New Knowledge Representation Language
LINGUIST Network
linguist at LINGUISTLIST.ORG
Thu Nov 9 16:30:59 UTC 2006
LINGUIST List: Vol-17-3259. Thu Nov 09 2006. ISSN: 1068 - 4875.
Subject: 17.3259, FYI: Babel: A New Knowledge Representation Language
Moderators: Anthony Aristar, Eastern Michigan U <aristar at linguistlist.org>
Helen Aristar-Dry, Eastern Michigan U <hdry at linguistlist.org>
Reviews: Laura Welcher, Rosetta Project / Long Now Foundation
<reviews at linguistlist.org>
Homepage: http://linguistlist.org/
The LINGUIST List is funded by Eastern Michigan University, Wayne
State University, and donations from subscribers and publishers.
Editor for this issue: Amy Renaud <renaud at linguistlist.org>
================================================================
To post to LINGUIST, use our convenient web form at
http://linguistlist.org/LL/posttolinguist.html.
===========================Directory==============================
1)
Date: 07-Nov-2006
From: Bryan Livingston < bryan at babelproject.com >
Subject: Babel: A New Knowledge Representation Language
-------------------------Message 1 ----------------------------------
Date: Thu, 09 Nov 2006 11:25:49
From: Bryan Livingston < bryan at babelproject.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
language.
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
structures simple.
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.
Babel Examples
// Joe saw Jane.
Joe.see-(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.
Horse that[I.ride-()].die-();
// Joe is tall.
Joe.is(tall);
Joe.tall;
// Joe was tall.
Joe.is-(tall);
// Joe is a human.
Joe.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.
I.love(Run=);
// Charles is working in the garden.
Charles.Work= in[Garden];
Linguistic Field(s): Computational Linguistics
General Linguistics
-----------------------------------------------------------
LINGUIST List: Vol-17-3259
More information about the LINGUIST
mailing list