The latest mKE version (Mar/21/2007) includes
1. productions now work for shell commands, e.g.
files := ! ls *.mkr done;
2. Three internal Unicon procedures are now available in mKR
do remove angle od <any old text> done;
do remove brace od {x iss y;} done;
do remove bracket od [x,y,z] done;
3. I use < > for multiline attribute values, e.g. RDF comments.
The remove angle command can be used to facilitate further
processing of the attributes. For example
ke$ do read from test/angle.mkr done;
ke$ p := dick has phone=?;
dick has phone = < 209-123-4567 >;
ke$ q := do remove angle od $p done;
ke$ AreaCode := ! echo $q | sed 's/-.*//' done;
ke$ do print od $AreaCode done;
209
ke$
Dick McCullough
mKE do enhance od "Real Intelligence" done;
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
I have made significant changes to the mKR/mKE Genealogy application
http://mKRmKE.org/knowledge/rhm/applications/Genealogy/greadme.html
1. The files have been divided into 8 subdirectories
bin -- mKR report generation commands
db -- GDBM tables (mKR relations by view)
ged -- GEDCOM output files
reformat -- mKR commands for changing relations
rel -- mKR relations
report -- reports generated
tree -- mKR commands for family trees
update -- screen shots of an update GUI
2. The makefile includes some new reports plus
family.ged -- GEDCOM output file
family.zip -- all Genealogy files
3. If you set the GDBM environment
do read from bin/family.env done;
all the mKR relations are saved in GDBM tables.
For example: after creating the GEDCOM file,
make family.ged
I can retrieve an email address from the r_phone GDBM table
$ ke -q -m
ke$ do read from bin/family.env done;
ke$ dick := Dick McCullough 1936;
ke$ email := r_phone[$dick][4];
ke$ do print od $email done;
rhm@...
ke$ exit;
P.S. For viewing & updating GEDCOM files, I recommend the free
Personal Ancestral File 5.2 program.
Dick McCullough
mKE do enhance od "Real Intelligence" done;
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
I tried to view a definition as a "characteristic", but it's just not right.
So I am going back to my original hierarchy:
existent
/ entity
/ characteristic
// differentia # essential characteristics
/ proposition
// sentence
/// statement
//// definition # subject is genus with differentia;
Dick McCullough
mKE do enhance od "Real Intelligence" done;
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
ke -tap now uses KEHOME/knowledge/tap/mytap.mkr.
This version is a lot more sane, using Bags for
ClassBag (the "bookkeeping" part of Class)
Product Type
ProfessionalType
I'm going to take a break for a while. Converting the rest of
the "XType"s to Bags will have to wait, unless you want
to do it.
P.S. All of the startup options are in KEHOME/sac/koptions.icn.
Dick McCullough
mKE do enhance od "Real Intelligence" done;
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
The Natural Semantic Metalanguage (NSM) is the
result of studies of many natural languages by
Anna Wierzbicka and her colleagues
(see http://mKRmKE.org/doc/ref.html).
I decided to isolate NSM in a separate mKR file,
which is included in KEHOME/kb/spo.mkr using
do read from kb/NSM.mkr done;
Here is the NSM addendum to TABULA RASA.
# <html><xmp>
# KEHOME/kb/NSM.mkr
# Feb/4/2007
# NSM universal concepts found in all human languages
#=============================================#
# entity-characteristic-proposition hierarchy #
#=============================================#
begin hierarchy TABULA RASA;
action;
/ i:move; # space,time
/ i:speak;
/ i:want; # mental predicate
/ i:feel; # mental predicate
/ i:think; # mental predicate
/ i:believe; # mental predicate
/ i:know; # mental predicate
/ i:see; # sense
/ i:hear; # sense
/ i:touch; # sense
/ i:taste; # sense
/ i:smell; # sense
verb;
/ i:before; # time
/ i:below; # space
/ i:inside; # space
/ i:beside; # space
attribute;
/ i:short; # space,time
/ i:near; # space,time
/ i:good; # evaluator
/ i:big; # descriptor
quantifier;
/ i:very; # intensifier
end hierarchy TABULA RASA;
#===========#
# relations #
#===========#
verb inverse iss relation with
symmetric,
format = { verb:1 inverse verb:2; },
meaning = {
if subject $1 object;
then object $2 subject;
fi;
};
begin relation verb inverse;
because, causes;
after, before;
above, below;
outside, inside;
beside, beside;
end relation verb inverse;
attribute complement iss relation with
format = [attribute:1, attribute:2];
begin relation attribute complement;
long, short;
far, near;
bad, good;
small, big;
end relation attribute complement;
# </xmp></html>
Dick McCullough
mKE do enhance od "Real Intelligence" done;
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
Just for fun, I looked up all the concepts matching "Jordan"
in the TAP knowledge base.
ke$ do find od *Jordan* from BOOT done;
"ActorBrewster,Jordana"
"ActorJordan,Jeremy"
"ActorJordan,_Kenneth_L."
"AthleteJordan,Andrew"
"AthleteJordan,Brian"
"AthleteJordan,LaMont"
"AthleteJordan,Leander"
"AthleteJordan,Patty"
"AthleteJordan,Randy"
"AthleteJordan,Richard"
"AthleteJordan,_Barbara"
"AthleteOlder,Jordan"
"AthleteYounger,Jordan"
"AthletevJordan,_Pete"
"AuthorJordan,_Judy"
"AuthorJordan,_June"
"AuthorJordan,_Nicole"
"AuthorJordan,_Robert"
"DirectorJordan,Neil"
"MusicianCharnofsky,_Jordan"
"MusicianHill,_Jordan"
"MusicianJordan,_Dana"
"MusicianJordan,_Jeremy"
"MusicianJordan,_Louis"
"MusicianJordan,_Peter"
"MusicianJordan,_Riley"
"MusicianJordan,_Steve"
"MusicianKnight,_Jordan"
AuthorArobateauRedJordan
CountryJordan
MovieMichael_Jordan_to_the_Max
MusicianMontell_Jordan
TVShowCrossingJordan
ke$
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
The major disadvantage of "dynamic concept loading"
is that you can't find something which isn't loaded yet.
To give you a little insight into the possibilities,
http://mKRmKE.org/help/DynamicConceptLoading.txt
illustrates three radically different approaches for solving
this problem:
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
ke -tap is now implemented with "dynamic concept loading".
There is a major disconnection between the units (people)
and the TAP Upper Ontology. I have started to fill in the
missing links in http://mKRmKE.org/kb/spo.tap.
Any volunteers to do the rest of the missing links?
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
The most likely cause of problems:
Unicon requires about 4 environment variables
which specify paths to the Unicon libraries.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
----- Original Message -----
From: Richard H. McCullough
To: S.Stamper/R.Smith
Cc: KR-language@yahoogroups.com
Sent: Monday, February 26, 2007 10:14 PM
Subject: re: make mac
Roger
For general guidance, you can look at the Linux/UNIX
documentation of the "make" command.
For Unicon guidance, see the Unicon book
http://unicon.sourceforge.net/book/ub.pdf
I'll be happy to help you with any make problems,
but I suggest we switch to private emails.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
----- Original Message -----
From: S.Stamper/R.Smith
To: KR-language@yahoogroups.com
Sent: Monday, February 26, 2007 8:27 PM
Subject: Re: [KR-language] mKR import/export format
_,_._,___
I tried installing MKe on my mac laptop and couldn't get the make mac to work. I think I am probably misunderstanding how to use unicon. Do you have any install docs for beginners?
Thanks,
Roger
on 2/26/2007 9:30 PM, Richard H. McCullough at rhm@... wrote:
This is my proposal for a standard import/export format for OpenCyc.
Each concept description begins with ". is concept;" and continues
with all propositions which apply to that concept. Using "." gives
concise, easy-to-read descriptions.
Here's a very short example.
at view=tabula rasa;
.. is ANIMAL;
.. iss entity with live, move;
.. isg person, animal;
.. is man;
person is .;
.. iss ANIMAL with rational;
knowledge := . do identify od existent with purpose done;
This is my proposal for a standard import/export format for OpenCyc.
Each concept description begins with ". is concept;" and continues
with all propositions which apply to that concept. Using "." gives
concise, easy-to-read descriptions.
Here's a very short example.
at view=tabula rasa;
. is ANIMAL;
. iss entity with live, move;
. isg person, animal;
. is man;
person is .;
. iss ANIMAL with rational;
knowledge := . do identify od existent with purpose done;
This is my proposal for a standard import/export format for OpenCyc.
Each concept description begins with ". is concept;" and continues
with all propositions which apply to that concept. Using "." gives
concise, easy-to-read descriptions.
Here's a very short example.
at view=tabula rasa;
. is ANIMAL;
. iss entity with live, move;
. isg person, animal;
. is man;
person is .;
. iss ANIMAL with rational;
knowledge := . do identify od existent with purpose done;
It takes so long to load the TAP knowledge base using
ke -tap
that I decided to implement dynamic concept loading.
The tap.mkr file is copied into a BOOT table.
do hload from ../knowledge/tap/tap.mkr to BOOT done;
When a particular concept is needed, e.g., Person,
do hget od Person from BOOT done;
is automatically executed.
These commands are still a little buggy. When they
are stable, I will make this the default implementation of
ke -tap
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
Rob
I don't think I'll have any more special character problems.
This AWK preprocessor does the trick.
# <html><xmp>
# KEHOME/src/QuoteMCF.awk
# Feb/26/2007
# MCF preprocessor
# put quotes around names with special characters
# comma
# apostrophe
/Node:/ { $2 = QuoteSpecial($2) }
{ print $0 }
function QuoteSpecial(x) {
#=======================
if (x ~ /,/) return "\"" x "\""
else if (x ~ /'/) return "\"" x "\""
else return x
}
end
# </xmp></html>
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
----- Original Message -----
From: "Richard H. McCullough" <rhm@...>
To: "Rob McCool" <robm@...>
Cc: "KR-language" <KR-language@YahooGroups.com>
Sent: Sunday, February 25, 2007 6:56 PM
Subject: Re: TAP is a very disconnected knowledge base
> Correction:
> Sorry, Rob.
> Some (or most?) of the disconnection was caused by my error.
> To avoid special-character problems in people's names,
> I quoted them. But I didn't notice that I quoted classes,
> e.g., "Person", at the same time.
>
> Time out, while I go correct tap.mkr.
>
> Dick McCullough
> knowledge := man do identify od existent done;
> knowledge haspart proposition list;
> http://mKRmKE.org/
>
> ----- Original Message -----
> From: "Richard H. McCullough" <rhm@...>
> To: "Rob McCool" <robm@...>
> Cc: "KR-language" <KR-language@YahooGroups.com>
> Sent: Sunday, February 25, 2007 6:21 PM
> Subject: TAP is a very disconnected knowledge base
>
>
>>I didn't realize this before, but the TAP knowledge base is "missing"
>> many important relations in its ECP hierarchy.
>> For example, you have 213 Musicians in the KB,
>> but it doesn't "know" that a Musician is a Person, and
>> it doesn't "know" that a Person is a Resource (existent).
>>
>> I wonder if anyone at Stanford cares???
>>
>> Those kinds of relations could be added in a matter of minutes,
>> using mKE/mKR. I could add them a lot faster than I could
>> tell you that they're missing. For example
>> Musician iss Person;
>> Person iss Resource;
>>
>> Dick McCullough
>> knowledge := man do identify od existent done;
>> knowledge haspart proposition list;
>> http://mKRmKE.org/
>>
Correction:
Sorry, Rob.
Some (or most?) of the disconnection was caused by my error.
To avoid special-character problems in people's names,
I quoted them. But I didn't notice that I quoted classes,
e.g., "Person", at the same time.
Time out, while I go correct tap.mkr.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
----- Original Message -----
From: "Richard H. McCullough" <rhm@...>
To: "Rob McCool" <robm@...>
Cc: "KR-language" <KR-language@YahooGroups.com>
Sent: Sunday, February 25, 2007 6:21 PM
Subject: TAP is a very disconnected knowledge base
>I didn't realize this before, but the TAP knowledge base is "missing"
> many important relations in its ECP hierarchy.
> For example, you have 213 Musicians in the KB,
> but it doesn't "know" that a Musician is a Person, and
> it doesn't "know" that a Person is a Resource (existent).
>
> I wonder if anyone at Stanford cares???
>
> Those kinds of relations could be added in a matter of minutes,
> using mKE/mKR. I could add them a lot faster than I could
> tell you that they're missing. For example
> Musician iss Person;
> Person iss Resource;
>
> Dick McCullough
> knowledge := man do identify od existent done;
> knowledge haspart proposition list;
> http://mKRmKE.org/
>
I didn't realize this before, but the TAP knowledge base is "missing"
many important relations in its ECP hierarchy.
For example, you have 213 Musicians in the KB,
but it doesn't "know" that a Musician is a Person, and
it doesn't "know" that a Person is a Resource (existent).
I wonder if anyone at Stanford cares???
Those kinds of relations could be added in a matter of minutes,
using mKE/mKR. I could add them a lot faster than I could
tell you that they're missing. For example
Musician iss Person;
Person iss Resource;
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
some good syntax changes:
For arrays, use "in" instead of "of". I think this is more natural,
and it is consistent with other languages, such as AWK.
For relations, use "in" instead of isu|iss|isa.
The bottom line:
y may be a list or array or relation,
and x is the corresponding index or infon.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
ke -tap
loads the RDF language definitions and the TAP knowledge base.
mKE is already updated, but my tap.mcf to tap.mkr translation
won't be finished until Monday.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
I added another half dozen references.
The list is so long, I split it into categories.
http://mKRmKE.org/doc/ref.html
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
After studying the RDF domain & range info.,
I realized that my previous translation
type is isu;
was wrong. The correct translations are
type is isa*;
subClassOf is iss*;
The "*" denotes 0 or more levels in the hierarchy.
(I wish that RDF did not allow 0, but it does.)
The "isa" is because the "subject" of "type" can be
a class (iss) or an individual (isu) .
Note: by definition of the iterative verbs, 0 levels
means identical
isa**0 = isu**0 = iss**0 = is
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
This link accesses 10+ years of my notes on mKR/mKE
http://mKRmKE.net/knowledge/
The best material is linked from my home page.
Some material has never been seen before.
Some notes are not well organized.
Some mKR uses obsolete syntax.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
The REBOL internet messaging language has
10+ built-in internet protocols, including
HTTP
FTP
SMTP
POP
You can execute "rebol" from a shell script or an mKR script.
REBOL is famous for its "one-liners", e.g.
rebol -iqsw --do "send rhm@... {hi Dick}"
REBOL resides in the KEHOME/rebol directory.
It's not available for Mac.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
Correction:
I made bad assumptions about the subcategories of errors.
There are 1942 individual-class contradictions.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
----- Original Message -----
From: "Richard H. McCullough" <rhm@...>
To: "KR-language" <KR-language@YahooGroups.com>
Cc: "Larry Lefkowitz" <larry@...>; "John De Oliveira"
<johndcyc@...>
Sent: Wednesday, February 21, 2007 12:26 AM
Subject: Cyc individual-class contradictions and unknowns
> Doing a genus check on the current myCyc.mkr
> do check od genus done;
> catches
> 444 individual-class contradictions
> 40 unknowns
> These are "fatal" errors which must be "corrected".
>
> For example
> genus error: (1) AcademicYear iss (set[1]) <TimeInterval>
> (1) AcademicYear isu (set[1]) <TemporalObjectType>
> means that
> AcademicYear is a class, which is a species of the class TimeInterval
> and
> AcademicYear is an individual, which is a unit of the class
> TemporalObjectType.
>
> This is a logical "contradiction" -- it is metaphysically impossible for
> something to be an individual AND a class (at the same space,time,view).
> The necessary "correction" is to replace the second statement above by
> AcademicYear ismem TemporalObjectType;
> which means
> AcademicYear is a class, which is a member of the set TemporalObjectType.
>
> A sample "unknown" is
> genus error: (0) UniqueProperty
> which means that UniqueProperty has no genus,
> which means that Cyc does not know what UniqueProperty is.
> The "correction" is to classify UniqueProperty
> UniqueProperty isu Property;
>
> P.S. Only about 5 unknowns are Cyc concepts; the rest are "leakage"
> from the mKR hierarchy.
>
> P.P.S. RDF and OWL also have individual-class contradictions
> and unknowns.
>
> Dick McCullough
> knowledge := man do identify od existent done;
> knowledge haspart proposition list;
> http://mKRmKE.org/
>
Doing a genus check on the current myCyc.mkr
do check od genus done;
catches
444 individual-class contradictions
40 unknowns
These are "fatal" errors which must be "corrected".
For example
genus error: (1) AcademicYear iss (set[1]) <TimeInterval>
(1) AcademicYear isu (set[1]) <TemporalObjectType>
means that
AcademicYear is a class, which is a species of the class TimeInterval
and
AcademicYear is an individual, which is a unit of the class
TemporalObjectType.
This is a logical "contradiction" -- it is metaphysically impossible for
something to be an individual AND a class (at the same space,time,view).
The necessary "correction" is to replace the second statement above by
AcademicYear ismem TemporalObjectType;
which means
AcademicYear is a class, which is a member of the set TemporalObjectType.
A sample "unknown" is
genus error: (0) UniqueProperty
which means that UniqueProperty has no genus,
which means that Cyc does not know what UniqueProperty is.
The "correction" is to classify UniqueProperty
UniqueProperty isu Property;
P.S. Only about 5 unknowns are Cyc concepts; the rest are "leakage"
from the mKR hierarchy.
P.P.S. RDF and OWL also have individual-class contradictions
and unknowns.
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/
I recommend installing Cygwin first -- it makes everything so much easier.
see http://mKRmKE.org/download/README.html
Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/