mKR (programming language)

prepared for Wikipedia, the free encyclopedia

Paradigm procedural
Appeared in 1997
Designed by Richard H. McCullough
Developer Richard H. McCullough
Latest release 8.1/ April 5, 2009
Typing discipline strong
Influenced by English, UNIX shell, Unicon, Natural Semantic Metalanguage
OS Linux, Windows, Mac
License GNU GPL

mKR is a high-level programming language which supports the knowledge representation primitives required to create, edit and search knowledge bases. It follows the procedural programming paradigm, using variables and procedures, but also makes use of naturalistic words and phrases, as well as the epistemological notions of definition and context.

mKE (my Knowledge Explorer) is an intelligent knowledge base assistant -- a computer program which communicates using the mKR language.


[edit] History

Previous generations of Knowledge Representation languages have lacked a solid epistemological foundation for definitions and context. Even the most successful Artificial Intelligence researchers have been discouraged.

Terry Winograd, one of the successful early researchers in Natural Language processing, said[1]:

   Language is a process of communication between people, and is
   inextricably enmeshed in the knowledge that those people have
   about the world.  That knowledge is not a neat collection of 
   definitions and axioms, complete, concise and consistent.
   Rather it is a collection of concepts designed to manipulate
   ideas.  It is in fact incomplete, highly redundant, and often 
   inconsistent.  There is no self-contained set of "primitives" 
   from which everything else can be defined.  Definitions are
   circular, with the meaning of each concept depending on the
   other concepts.

Conceptual Graphs[2][3] appeared to provide a good foundation for definitions. However, visual graphs have limited benefits for large knowledge bases. A written language is needed to express the complexities of the real world.

A foundation for context has been even more elusive; researchers could not agree on a definition of context. Summarizing the results of a 1997 workshop at MIT, Lucja Iwanska said:[4]

   ..the fields of knowledge representation and natural language..
   In both fields, one observes a huge spectrum of answers to an
   important question in the technical agenda: "What is context?"
   This broad range of answers reflects both the confusion about
   context and the enormous difficulties in handling it.

Knowledge Representation languages have also lacked easy readability. The readability problem is clearly evident in today's Semantic Web environment, and is typified by the contrast between XML[5] and N3.[6] XML is used for writing formal documents. But when people are working together informally, and striving for ease of understanding, N3 is often used.

The mKR language[7] combines a "Simple English" language with a strong epistemology to provide readability, definitions and context. Specific design features are discussed in the next section.

In 2002, the developers of mKR and RDF compared the two languages in a W3C email forum[8]. This forum produced a better understanding of both languages, but did not lead to any significant changes in either language. The developers later compared the mKR and OWL languages; this time a significant change was made in the OWL language. Property Restrictions were added to emulate the genus-differentia definitions of the mKR language.

At the suggestion of the RDF/OWL developers, a practical mKR language interface was developed for the Stanford University TAP knowledge base and the OpenCyc knowledge base. A simple mKR language interface was also developed for and Google. mKE was enhanced to read RDF files.

The most recent changes in mKE (my Knowledge Explorer) provide command-line options to initialize the knowledge base with concepts from a language chosen by the user. Language options include RDF, OWL, OpenCyc, SUMO, TAP, Amazon, Google.

[edit] Design features

  • Simple English

mKR's syntax is similar to English, simplified so that the same name is used regardless of tense and number, actions are always in the infinitive, and attributes always take the first person singular. mKR's built-in vocabulary includes all Natural Semantic Metalanguage concepts;[9] the user may augment this vocabulary with his own English words and phrases. These features make mKR easy to use.

  • UNIX shell

From the UNIX shell, mKR inherits the conceptual and syntax elements of variables, methods, conditionals, and iteration, but unlike the UNIX shell there are no wild cards or pipes. These features give mKR its computational power.

  • Context

mKR "implements" the context theories of Ayn Rand[10] and Keith Devlin.[11] The basic mKR proposition takes the form

   at space=s, time=t, view=v { subject verb object preposition-phrase-list [done]; };

view (aka situation) names a list of propositions, which logically define the context. When object is an action, space and time constitute a subcontext which characterize the changes associated with the action, and done terminates the preposition-phrase-list.

mKR uses entity-charateristic-proposition hierarchies as a visual aid in grasping the meaning of knowledge, and as a primary means of input/output. For an example, see the tabula rasa hierarchy in the next section. These features give mKR the power to enhance the Real intelligence of its user.

[edit] Special features

The brief examples shown below illustrate some special features of mKR.

  • relation
address book is relation with
  format = [person:1, email:2, phone:3],
  meaning = { $1 has email=$2, phone=$3; };
begin relation address book;
  John Doe,, 209-555-1212;
end relation address book;
  • hierarchy
begin hierarchy tabula rasa;
  /    group;  # abstract entity
  /    entity; # physical entity
  /    characteristic;  # property
  //       attribute;
  //       part;
  //       relation;
  //       action;
  //       interaction;
  /    proposition;
end hierarchy tabula rasa;

[edit] See also

The implementation of mKE uses all of these languages.

[edit] References

  1. ^ 1972, Terry Winograd, Understanding Natural Language, Academic Press, page 26
  2. ^ 1975, Roger C. Schank, Conceptual Information Processing, North Holland Publishing Company and American Elsevier Publishing Company, Inc.
  3. ^ 1991, John F. Sowa, Editor, Principles of Semantic Networks, Morgan Kaufmann Publishers, Inc.
  4. ^ 1998, Lucja Iwanska, Context in Knowledge Representation and Natural Language, The 1997 Fall Symposia Reports, AI Magazine, Volume 19, Number 2, Summer 1998, page 125.
  5. ^ 2006, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Fran├žois Yergeau, John Cowan, ed., XML 1.1 (Second Edition), W3C Recommendation, 16 August 2006.
  6. ^ 2006, Tim Berners-Lee, Notation 3: An readable language for data on the Web.
  7. ^ 1997, Richard H. McCullough, Knowledge Explorer, The Icon Newsletter No. 52, page 6.
  8. ^
  9. ^ 1996, Anna Wierzbicka, Semantics: Primes and Universals, Oxford University Press.
  10. ^ 1990, Ayn Rand, Introduction to Objectivist Epistemology, Expanded Second Edition, Meridian.
  11. ^ 1995, Keith Devlin, Logic and Information, Cambridge University Press.

[edit] External links

Category:Knowledge representation Category:Knowledge engineering Category:Real intelligence Category:Artificial intelligence