Unicon      

my Knowledge Explorer
and the mKR language

Dr. Richard H. McCullough
Knowledge Engineer

Screen Shot

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, 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 University (formerly "Brooklyn Poly"). I was a 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.

Why did I invent mKR?

mKR (programming language)

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, 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 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;
existent;
/ group; # abstract entity
/ entity; # physical entity
/ 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


	at 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

	view is the name of a list of propositions.

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 -m
	ke$ kbmode := cycws;

	ke$ do find od AynRand done;
	# ERROR: wsget_url: Unicon can't open url(string[40]) 
	# INFO: wsget_url: downloading OWL file: cmd(string[45]) 
	2008-07-22 03:06:14 (15.4 KB/s) - `AynRand.owl' saved [525/525]

	# INFO: wsget_url: browsing url: cmd(string[90]) <"C:/Program Files/Internet Explorer/iexplore.exe" http://sw.cyc.com/2006/07/27/cyc/AynRand>

	ke$ do find od California* done;
	ke$ California-State has population = ?;
          
        - 
          unknown cyc property specified (population). Try something like 'genls' 
          

	ke$ exit;
	$
AynRand.owl file
Cyc Foundation Concept Browser

More Information

The mKR language

The mKE program

Knowledge

mKR/mKE documentation



Download mKE and other useful programs

Download Knowledge Explorer 7.4 now
and create your own knowledge base

Download Unicon 11.0 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
Jcon programming language
Icon 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

Simtel   freeware & shareware for Windows
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 Objectivist Center
Ayn Rand Institute


Sign mKE visitor guestbook   Send comments
Created by the CDepot MakePage Utility on Apr/20/1996.
Last updated by Richard H. McCullough on Aug/29/2008.
Copyright 1996-2008 Richard H. McCullough

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