my Knowledge Explorer and the mKR language

Dr. Richard H. McCullough
Context Knowledge Systems

Screen Shot - local ke command

Screen Shot - online mke command     execute mke online

Who am I?

I'm an Army brat -- my early education came from moving around the country. By the time I finished high school, I had been in all 48 CONUS states, Cananda, Mexico, Panama, England, Germany, France, ... I can still read a little Spanish, German and French but I can't "speak" them. My higher education was in Electrical Engineering, with SB and SM degrees from MIT, and PhD from Polytechnic Institute of NYU I was a Distinguished Member of Technical Staff at Bell Labs in New Jersey and Illinois, and retired from AT&T in California.

I have always been interested in "Artificial Intelligence", and fascinated by the things one could do with computers. After I retired, I refocused my attention on "Real Intelligence", which is my current passion. I invented mKR and mKE in 1996.

A brief history of mKR (programming language)

Why did I invent mKR?

Features of mKR

What does "m" stand for?

In the beginning, there was no "m". But the people I talked to were confused by KR and KE, so I renamed them MKR and MKE, with "M" for McCullough. In the end, I returned to my original concept of a personal knowledge assistant, and "m" stands for "my".

What is the mKR language?

my Knowledge Representation language (mKR) is a user-friendly "Real Intelligence" language -- a language whose purpose is to help humans work smarter. mKR combines Objectivist Epistemology with the best features of English, UNIX shell and Unicon.

mKR propositions have a terse English-like format which helps a human user focus on essential characteristics and avoid floating abstractions. mKR is a very-high-level knowledge representation language with a rigorous epistemological foundation including context, genus-differentia definitions, ECP hierarchies (knits) and action/events (chits). For example, Aristotle defined man as

	man is animal with rational;
Ayn Rand defined knowledge as
	knowledge := man do identify od existent done;

The mKR built-in types include lists, sets, enumerations, relations, hierarchies. The mKR built-in English vocabulary includes the Natural Semantic Metalanguage -- universal concepts which occur in all human natural languages.

Learning the mKR language is facilitated by a syntax checker and a menu interface. The syntax checker provides a fast interactive check of input knowledge. The syntax error messages are highly-focused, for fast "debugging" of input knowledge. The menu interface prompts the user for all necessary information, and automatically generates the correct input syntax.

What is Knowledge Explorer?

my Knowledge Explorer (mKE) is an intelligent knowledge assistant. mKE helps the user to record, change and search knowledge, and provides extensive error checking to ensure the internal consistency of the knowledge.

In a knowledge base, mKE is called ke.

	mKE is ke;
ke possesses self-knowledge. Just ask ke what commands it can execute:
	ke do ? done;
Or what options are available:
	ke has ?;

mKE command-line options select the language definitions -- RDF or OWL or SUMO or CycL or mKR -- which are automatically loaded on startup. The CycL definitions include the complete Upper Ontology of the OpenCyc knowledge base.

mKE is implemented using the Unicon, KornShell, Java and REBOL languages. This implementation provides easy integration with Unicon procedures, shell scripts, Linux/Windows commands, web pages and standard databases.

# ECP hierarchy
begin hierarchy tabula rasa;
/   group; # abstract
/   entity; # physical
/   characteristic; # property
//       part;
//       attribute;
//       relation;
//       action;
//       interaction;
/   proposition;
end hierarchy tabula rasa;

What is Knowledge?

Knowledge is an identification of the facts of reality.
Propositional knowledge is knowledge expressed using words and sentences.
The principal internal knowledge structures of mKR/mKE are
entity-characteristic-proposition (ECP) hierarchies
with space-time-dependent events. The "tabula rasa" hierarchy
is a "blank slate", ready to be filled in with specific knowledge.
The principal external knowledge structures are RDF/OWL files, GDBM databases and
mKR text files (containing transliterated English, hierarchies, relations).
The Address Book.rel file is an external relation.

# Address Book.rel file
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, john.doe@PioneerCA.com, 209-555-1212;
  Jane Doe, jane.doe@PioneerCA.com, 209-555-1212;
  Knowledge Explorer, ke@volcano.net, 209-555-6789;
end relation Address Book;

What is a KnowledgeBase?

An mKR/mKE knowledgebase is like a free-format database that you can "talk" to. (Since mKE doesn't have ears, you "talk" with your keyboard.) For example, if you want to save my email address, you tell mKE

	Dick McCullough has email = rhm@PioneerCA.com;
When you want to retrieve my email address, you ask mKE
	Dick McCullough has email = ?;
You can record all kinds of information about me. ("." is the "pronoun" that denotes the "current concept".)

	. is Dick McCullough;
	. isu Linux expert;
	. can read od Spanish done;
	. do own od three computer done;

Just one caveat: choose your words carefully. For example, if my email address will be used in the context of a large, sophisticated knowledgebase, you might need to distinguish email (the address) from email (the message).

What is Context?

An mKR "proposition" has the form

	in space=s, time=t, view=v { sentence };
Every sentence has a context. space,time are subcontexts which characterize the changes assoicated with actions. view is what Keith Devlin calls "situation", and Ayn Rand calls "context". As implemented in the mKR language

	v is the name of the context of the sentence
	the context is a list of propositions which disambiguates sentence

Semantic Web Applications

mKR is a general-purpose knowledge representation language which is applicable to any domain. It is ideally suited for Semantic Web applications. mKE "services" include many consistency checks, knowledge base queries, knowledge base statistics, "pretty-printing" instance-class hierarchies, and commands to dynamically modify instance-class hierarchies.

The mKR language is more powerful and more user-friendly than the OWL language. mKR extensions include context, questions, commands/methods, n-ary relations, iterations, conditionals. The mKR language has the same power as the CycL language, but is much more user-friendly.

mKR/mKE provides no support for the "possible world" semantics of RDF model theory. mKR/mKE uses the "real world" semantics of English. The meaning of an mKR proposition is the meaning of its English paraphrase.

mKE provides a user-friendly mKR interface to the OpenCyc knowledge base, the IEEE SUMO knowledge base, the TAP knowledge base, the Google search engine, and the Amazon.com search engine.

Here is a example of mKE interacting with the latest OpenCyc Knowledge Browser and Web Services.

$ ke -s -cycws ke$ do find od AynRand done; # INFO: wsget_url: downloading url(string[104]) <curl -H 'Accept:application/rdf+xml' -o AynRand.owl http://sw.opencyc.org/2008/06/10/concept/en/AynRand> % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8285 100 8285 0 0 20406 0 --:--:-- --:--:-- --:--:-- 69968 # INFO: wsget_url: browsing url: cmd(string[101]) <"C:/Program Files/Internet Explorer/iexplore.exe" http://sw.opencyc.org/2008/06/10/concept/en/AynRand> ke$ kbmode := mke; ke$ AynRand isu Person; ke$ do read owl from AynRand.owl done; # older version of AynRand.owl ke$ AynRand has ?; AynRand has classname = AynRand, guid = 'bebd10e3-9c29-11b1-9dad-c379636f7270[]', qualname = AynRand, rdfs:label = 'AynRand', rootname = AynRand, shortname = AynRand, xmlname = AynRand, xmlns = [] ; ke$ kbmode := cycws; ke$ do find od California* done; ke$ California-State has population = ?; ke$ ! cat population.owl done; <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /2008/06/10/concept/en/population was not found on this server.</p> <p>Additionally, a 406 Not Acceptable error was encountered while trying to use an ErrorDocument to handle the request.</p> <hr> <address>Apache/2.2.4 (Linux/SUSE) Server at sw.opencyc.org Port 80</address> </body><script>'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]),_trfd.push({'tccl.baseHost':'secureserver.net'}),_trfd.push({'ap':'cpsh'},{'server':'p3plcpnl0826'}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support.</script><script src='https://img1.wsimg.com/tcc/tcc_l.combined.1.0.6.min.js'></script></html> ke$ exit; $
AynRand.owl viewed by Internet Explorer
California.owl viewed by Internet Explorer
population.owl viewed by Internet Explorer

More Information

The mKR language

The mKE program


mKR/mKE documentation

Download mKE and other useful programs

Download Knowledge Explorer 8.7 now
and create your own knowledge base

Download Unicon 12.1 if you want to create
your own customized Knowledge Explorer

Download other useful programs if desired

American Association for Artificial Intelligence
W3Schools Online Web Tutorials
About RDF
"The Semantic Web in Breadth"   by Aaron Swartz
Resource Description Framework (RDF)
Web Ontology Language (OWL)
Stanford TAP knowledge base <= no longer supported by Stanford
OpenCyc knowledge base
Open Directory Project

Unicon programming language
Icon programming language
Jcon programming language
REBOL internet messaging language
Sun Java2 programming language
Python programming language

Cygwin   Linux commands for Windows (GNU Open Source)
Microsoft SFU 3.5 UNIX commands for Windows (free)
MKS Toolkit   UNIX commands for Windows ($479)
UnxUtils   UNX commands for Windows (GNU Open Source)
Red Hat Linux

freshmeat.net Freshmeat.net   open source software for Linux
SourceForge.net   Open Source software development website
GNU's Not Unix!   Free Software Foundation
CNET central   software and hardware reviews

Personal Ancestral File   free genealogy program
The Atlas Society
Ayn Rand Institute
Ayn Rand Lexicon

Send comments
Created by the CDepot MakePage Utility on Apr/20/1996.
Last updated by Richard H. McCullough on Mar/14/2019.
Copyright 1996-2019 Richard H. McCullough

2000+   Visitors from Jun/1/2003 to Nov/1/2003