report generation; execution time
1. recent changes
I have made many improvements to KE in the last month.
All significant changes are logged in KEHOME/doc/version.rel.
Here's a quick summary of the changes which affect the
user interface.
!cc infon -- sets $1,$2,... -- good for report generation
meaning = { sentence } -- avoids nested quote problems
name *= value -- set intersection -- all values
are now sets
product := sentence. and the value is saved in $product
variable length argument list for method -- e.g.
KEHOME/family/tree.ku
!timestamp message -- new command for execution
timing
improved printout of actions & events
revised verbs for generators -- isa, ism, in
renamed parameters
isastar -> automatic
hseparator ->
hoseparator
rseparator ->
relseparator
2. report generation
The !print command, combined with $variables, provides a simple way
to create customized reports. As a trivial example, you can generate
a
phonebook from a knowledge base as follows. Given that phone
numbers
are specified in the form
Dick McCullough isa person
Dick McCullough has phone=209-295-1365
the phonebook is generated by
echo = off
every p isa person do
!cc $p;
!print "$p; $phone";
done
echo = on
To produce a phonebook relation as output, all you have to do is add
phonebook is relation with
format = "person:1; phone:2",
meaning = "$1 has phone
= $2"
phonebook is ?
!print "!begin relation phonebook"
...
!print "!end relation phonebook"
3. execution time
My own family history knowledge base has now grown to 700 people
and 1800 infons (relation units). Using the relations defined
in the
KEHOME/family directory, I have measured the following results
for my 133 MHz pentium running Windows 98
initialize tabula_rasa: 20 seconds
input knowledge base: 2 seconds / infon
output summary: 2 seconds / person
It took 69 minutes to load my KB, and 25 minutes to generate a summary.
Some of my future effort will be devoted to reducing these times.
The output summary is 17380 lines (about 290 pages).