LINGUIST List 17.3259
|
Thu Nov 09 2006
FYI: Babel: A New Knowledge Representation Language
Editor for this issue: Amy Renaud
<renaud linguistlist.org>
|
To post to LINGUIST, use our convenient web form at
http://linguistlist.org/LL/posttolinguist.html.
|
Directory
1. Bryan
Livingston,
Babel: A New Knowledge Representation Language
Message 1: Babel: A New Knowledge Representation Language
|
Date: 07-Nov-2006
From: Bryan Livingston <bryan 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
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.
|
|