Dear Visitor:

This web site introduces an artificial intelligence software I had created and developed from 1989 to 2002. I am now making it "open-source," free for anyone to download online, free of cost, for whatever purposes they intend.

You may proceed directly to the main page of the site——but by way of explanation, ask that you first to read the following.

To facilitate explanation of such a complex project, I will divide up this initial communication and direct it to three groups of people:

  1. laypeople with no specialized knowledge of artificial intelligence (AI),
  2. professionals in the area of computerized language translation, and
  3. programmers and developers in CA Visual Objects, now in use on the Vulcan.NET platform.

I also provide an explanation of why I am making this material freely available.

To the laypeople:

This software, called Discovery, originally focused on solving the formidable problems in a subfield of AI called natural-language processing. It simulated, in a computer program, how people understand "natural" languages such as English.

Discovery could not only integrate any English statement—now matter how long or how it was worded—into memory, it could also respond back in English. Theoretically, you could enter English statements of any body of textual information, such as an encyclopedia, and retrieve that same information simply by asking it questions. Put another way, you could perform information management simply by conducting a English conversation—chat-room style—with the software.

I built other features, examples of other artificial intelligence methods (things called expert systems and quantitative decision-making). They were supposed to tie in and exploit more fully the potential of language understanding. Individually, however, the programming to build these things may still have some value.

But you just don’t see "conversational" AI software on the market today. Despite that solving the problems of natural-language understanding has great theoretical importance, today’s level of technology presents too few immediate practical applications to make it profitable. This, of course, is likely to change in the future. How soon? That’s hard to tell.

So if "conversational" software isn't commercially viable, at least for now, what more immediate purpose can it serve?

Computer-assisted language translation—software that translates text from one language to others.

The problem is that nearly all translation software simply doesn't ask the human translator for assistance. They rely on the software’s ability to decide which meanings of words that the human translator means. It "guesses," based on examples human programmers give it. But no computer software in existence can realistically presume to "know" what a human translator means, much less have any real knowledge of the outside world to make those decisions on its own.

Clearly "machine translation" relies too much on the computer's ability to resolve ambiguities, and too little on the human’s judgements of the meaning he wants to convey.

The only satisfactory solution is to maximize the translation work the software can realistically and reliably perform, while minimizing the work necessary from a translator to resolve any ambiguities. User-assisted translation is the only way to guarantee a faithful and accurate translation of a given text.

In no way should this one approach do away from the considerable work done for statistical methods used presently. Perhaps in some way they could be combined, to assure even greater accuracy in translation, which is, of course, the ultimate goal.

A language translation software I had in mind would be designed to be simple, for anyone. Moreover, the user wouldn’t have to know the language he wants to translate to.

Given the programming Discovery has available, here’s how it could work: you’d open the application. You’d either open up a text file or type in sentences directly. Then you’d choose the language you want to translate to, then the software "reads" them. Whenever it comes across something ambiguous that it'd need resolve, it would ask. You'd also have the chance to correct misspellings, retype words you misentered, introduce new words into its vocabulary, translate particular words the same way if they repeat in the text, among other things.

When it finishes, it outputs to another file a translation as accurately as a human might make.

The programming, to diagram sentences (very much the same way one does in grammar school) and to detect multiple meanings of each word, already exists.

What else is necessary? Three things:

To machine translation professionals:

The foregoing portion of my communication implies a software for high-quality "shallow-approach" translation of unrestricted text without reliance on corpora or statistical methods.

Yet as computational power has increased and become less expensive, "deep-structure" approaches have been the vogue. The ideal would require the translation software to do all the research necessary to resolve part-of-speech and word-sense disambiguations on its own, but this all too clearly requires a higher degree of AI than has yet been attained (or probably ever will be). Hence, while applying statistical methods to the words surrounding the ambiguous word, such software still guesses wrong fairly often. At best, even on systems that provide back translations, the source translator finds that he constantly has to substitute synonyms in his source text so the reader of the target language translation won’t be left scratching his head.

I would, however, like to reiterate that the considerable work in statistical methods should not simply be dispensed with. Perhaps they could be combined, a kind of holistic approach to word-sense disambiguation?

Nevertheless, statistical methods have limitations. Some MT software allowing customization by domain or profession improves output, but limits the scope of allowable substitutions. They work well, though limiting that scope also limits the opportunities in which they can be used.

More common "deep-structure" approaches may appear to be the most expedient means for reliable MT, but relying exclusively on unedited machine translation ignores the fact that communication in human language is context-embedded. It takes a human being to comprehend the context of the original text with a reasonable degree of probability. On the other hand, a "shallow-approach" software has an unappealing tradeoff—having to ask the user about each ambiguity. Claude Piron presented a plausible argument: a shallow approach would automate about 25% of a professional translator's job, leaving the harder 75% still to be done by a human.

I tend to cynical about these percentages. The degree of necessary user intervention depends on how well the software is designed and how expediently the user can choose among ambiguities. For example, most likely a translator would know whether a certain word or phrase repeated throughout a body of source text always has the same meaning, and so would never have to be asked to resolve that particular ambiguity more than once. Moreover, Discovery displays ambiguities of words from which the user needs only to resolve with a single mouse click. It is unreasonable to believe that many other possible conveniences would stop there.

Aside from the goal of minimizing necessary user intervention, what particular NLP features are inherent in Discovery’s programming? How do they differ? Are they necessarily unique, and could potentially improve the quality of MT software? The following is an overview of the portions of the system directly relevant to the proposed MT system:

Discovery takes a sentence comprised of a character string, divides it into separate words, and looks up each word (subsequently each series of words that comprise phrases) in a word list.

This word list, however, is part of a larger database structure constructed from Wordnet, a project by Princeton University’s Cognitive Science Laboratory. Unlike a dictionary, Wordnet is a 95,000-entry lexicon that attempts to replicate how human beings mentally organize concepts. Each word and phrase are associated with synonym sets which are in turn associated, within a highly integrated network, with others by lexical associations such as antonyms, hypernyms, hyponyms, meronyms, et al. Hence, individual synonym sets represent separate meanings of the entries. Granted, a one-to-one correspondence of meanings between the source and target languages may not be possible, but in contrast to dictionary-based MT, Wordnet allows more general (hypernymic) and specific (hyponymic) associations within its network to at least approximate the accurate translation of a particular word.

To facilitate word-sense disambiguation, Discovery consistently displays the list of synonym sets to which an ambiguous word or phrase belongs, and from which the translator can choose.

Discovery would first, of course, need to disambiguate the parts of speech of each word—within context of the sentence—before it should ever ask whether board as a noun means committee or plank of wood, or as a verb means to get on board (ship, plane, bus). Here it exercises a rule-based method—its sentence analysis portion—also independent of statistical methods.

Sentence analysis consists of a highly exhaustive, yet fast and highly efficient seven-stage process to narrow down parts of speech of each word in context. One obstacle I had encountered was that the longer a given sentence, and the higher the number of parts of speech words would have, the greater the chance that Discovery would often encounter a combinatorial explosion of part-of-speech sequences it would have to examine.

Fortunately, I resolved this problem with what was essentially a "divide and conquer" strategy. The programming divides the sentence up further into a series of shorter word groups called "fragments," each of which ran through a separate set of rules to deduce their parts of speech. "Fragments" are comprised of a series of words beginning with one or more "identifiers" (prepositions, pronouns, conjunctions, verb auxiliaries, irregular adverbs) possibly followed by "non-identifiers" (potentially ambiguous words such as nouns, verbs, adjectives and regular adverbs). Once part-of-speech ambiguities are resolved for the individual fragments, another set of rules resolves parts of speech for the entire sentence. As such, processing time was shortened considerably.

Overall, the entire analysis process attempts to narrow the sentence down to a single subject and single predicate. While this is the basis of all "grammatically correct" sentences, it’s unrealistic to assume all text will comply with this standard. Yet even if some sentences are incomplete, the programming still attempts to narrow down all possible sequences to just one. If there are two or more, the system would narrow down the possibilities by highlighting an ambiguous word and ask the user its part of speech.

The rules themselves were derived from A.S. Hornby’s monograph Patterns and Usage of English, for which he collected an enormous body of text and recorded phone conversations and distilled them into brief and highly comprehensive sets of rules to which they all applied. They cover all manner of whole sentences (subject-predicate), subordinate clauses, noun, verb, adjective and prepositional phrases (each set of rules for which comprise the successive stages by which Discovery performs sentence analysis). While they didn’t cover all possible contingencies, I encountered only a few instances where new rules needed to be added.

With 13 years of intense scrutiny and research to resolve so many aspects of the complex cognitive operation of language translation, I believe this approach deserves at least some fair and unbiased overview by MT professionals.

To CA Visual Object Programmers:

Even though I haven’t been in software development for many years, I’m overjoyed that a language as useful as Visual Objects has found a place in Vulcan.NET.

The link above will take you to a secondary site where you’ll find other links to a comprehensive overview of the Discovery system, fully navigable object-oriented diagrams, all source code, downloadable AEF files, the database tables, documentation, a data dictionary, test methods—all essential material necessary to learn how this system works.

Bear in mind: simulating language understanding has theoretical importance in AI, but something more practical, like language translation, is more easily achievable.

If you have any questions, you may email me at

Why I am making this material freely available:

The answer to this question requires some background into my life.

For the thirteen years I worked on Discovery—indeed, the twenty-five years I’ve striven to succeed in a number of different careers—I still work temporary clerical positions with substandard pay, with which I have little chance of redeeming all the debt I’ve accumulated.

While developing Discovery, my business partner and I attended conferences and approached many corporations in hopes for a joint venture. The problem was that it was hard to narrow down immediate practical uses. Even with the current state of technology, artificial intelligence is still largely the domain of theory and academia. Corporations are inclined not to pursue any project if profit is not immediate.

In addition to my lack of academic credentials—this alone enough to obliterate any chance of collaboration with competent professionals—protecting Discovery’s trade secrets also severely hindered marketing efforts. Making it freely available to anyone’s scrutiny, however, solves that problem.

Moreover, for the past few months I have been suffering debilitating depression and anxiety, so much so that doing even the simplest things—much less programming—horrendously difficult. After a long period of agonizing panic attacks, I have obtained medication to make this condition of mine bearable, but marginally so. The circumstances leading to this condition no medication will eliminate. Persistent failure in many professional and personal goals have left me pessimistic of leading a productive, prosperous life.

And what about money? If this work is valuable, why shouldn’t I reap some reward?

But then, what’s the alternative? Keeping it on my hard disk, and showing it to no one? Go through many more months of developing it myself on top of simple survival and attending college this late in life? Wait for years to achieve financial stability in a conventional career before taking up the task again, while risk losing 13 years of work from possible hard disk failure?

No, what's important to me is that it finds use. Not whether I make money. The cause of greater international communication and understanding takes far more precedence.

Lastly, I am a Bahá’í. One of the most basic beliefs of my faith is service to humanity. If I fail to share this in advance of some unlikely event where it would be lost or unwittingly discarded, I will have betrayed the Faith I love. This negligence my conscience could not possibly bear.

To those whom I have directed to this site, it is yours, without condition.


Thomas W. Yale