AUTOBRAIN rant



Please comment.
The idea is to make a "personal information manager" that acts more
like a bionic enhancement to your brain than, say, Qu*cken and *ffice.
This is a loosely associtated rant on the subject.  Chime in.

:AUTOBRAIN:

All MEMES are in a organized into COMPOSITES.

COMPOSITES are collections of different specific TYPES of MEMES.

Each TYPE of MEME is displayed on the screen in it's EDITOR.

One type of MEME is a NOTE.  Most programmers would call this a
"string".

One type of MEME is a FIXNUM.

One type of MEME is a FLONUM.

One type of MEME is a SYMBOL.

EXAMPLE 1.  A record of my phone conversation with my friend last
night would be represented in the AUTOBRAIN as an COMPOSITE.  That
COMPOSITE would contain a FIXNUM (yesterday's date), another FIXNUM
(the time the call started), yet another FIXNUM (how long the call was
for), and a NOTE (some scribblings on what we talked about).

EXAMPLE 2.  One COMPOSITE would have my friend's address.  It would
contain only one MEME, a NOTE, with his physical address typed in it.
There would be another COMPOSITE for his internet address.  It may
contain three NOTES, one for his work email address, one for his home
email address, and another for his personal web page.

COMPOSITES can contain other COMPOSITES.

A particular COMPOSITE may not contain itself.

One type of MEME is a COMPOSITE.

Some MEMEs are MEMEs about MEMEs.  We call these META-MEMEs.  A
META-MEME is a MEME, but a MEME is not always a META-MEME.

One type of META-MEME is a COMPOSITE.

EXAMPLE 3. A COMPOSITE for my friend should contain a NOTE with his name,
a COMPOSITE with his address, and a COMPOSITE with his virtual address.

Since COMPOSITEs contain MEMEs, and COMPOSITEs are MEMEs, COMPOSITES
may contain other COMPOSITES.

COMPOSITES should be able to get at the MEMES in other COMPOSITEs
without copying.  If we edit information about the address of the
company my friend works for, it should change the information about
the address of the company for all of my friends that work for that
company.

{ Confused yet?  Don't Be! }

One type of META-MEME is an LINK.

In EXAMPLE 2., why did we make his physical address it's own
COMPOSITE?  Because a LINK may only refer to a COMPOSITE type MEME,
and not to any arbitrary MEME.  Why is this?  Why not make a LINK able
to refer to a MEME, rather than a COMPOSITE?  It certainly seems like
a poor design decision: the most abstract "thing" in our universe of
discourse is a MEME, therefore, a LINK should refer to it.  The answer
will reveal itself much later on.  Be aware however that a COMPOSITE
containing a single MEME contains exactly the same information as that
MEME itself.

EXAMPLE 4. I have a COMPOSITE for the company my friend works for.  I
add a LINK to the COMPOSITE for that company to the COMPOSITE for my
friend.

How can I just add a LINK to a COMPOSITE, as I did in EXAMPLE 5.?  To
understand this, we must first understand more about COMPOSITEs.

A COMPOSITE is a collection of name-value pairs.  The name is always a
SYMBOL.  The value is any MEME.

So, to add a LINK to a COMPOSITE, add a name-value pair in the
composite with the name "company" and the value of a LINK to that
company.

EXAMPLE N. I add to a list in the COMPOSITE for my friend a LINK to
the COMPOSITE for my phone conversation with him.

EXAMPLE N + 1. I add to a list in the COMPOSITE for myself a LINK to
the COMPOSITE for my phone conversation with my friend.

Why do what we did in EXAMPLE N + 1.?  Because we are creating an
"object-oriented rules database".  What that means is that it is not
enough to assume that I took part in all phone conversation COMPOSITE
MEMES in my AUTOBRAIN.  My AUTOBRAIN should be able to track phone
conversations between other people as well.

Every COMPOSITE can be expressed as a set of rules about an ID.  For
example, here is a COMPOSITE.

(composite 1467
  (first-name "Joe")
  (last_name "Miklojcik"))

Here is that composite expressed as rules.  The names become functors
for their values.

(rule (%first-name 1467 "Joe"))
(rule (%last-name 1467 "Miklojcik"))

We can now make logic-programming style queries about our data.

EXAMPLE N+2.  We can get a list of names for everyone with first
name "Joe" using the following rule and question.

(rule (%if (%name first last) ((first_name x first) (last_name x, last))))
(query (%name "Joe" N))

There is some issue of display here, since there may not be a finite
number of answers to a query.

At the same time all that is going on, we can treat a composite like
an object in an object-oriented system.  For example, we can use
multifunctions with named arguments to implement methods.

This is alarmingly powerful.  Absorb it.

Getting back to the subject at hand, we have LISTS too.  One TYPE of
META-MEME is a LIST.  A lisp programmer would not call it a list.  He
would call it a vector.  That same lisp programmer could make what he
would call a list out of COMPOSITES.  He would already have seen his
way clear to do so by the time he had read this far along in the
document.

COMPOSITES are unordered sets of name-value pairs.  LISTS are ordered
sets of MEMES.  Blah blah blah...  Enough focussing on the camera.
Here's some of the script for the movie.

:AUTOBRAIN:

personal information application

o) working title: AUTOBRAIN
   insist on all caps

o) based on Saint Leary's eight circuit model of the mind
   user gives most robotic primitive functions to a "better" machine
   ultimately we abandon the partitions between the circuits, and stir...

o) user interface promotes "positive" reactions from c1-2
   corners are rounded for c1 (slashdot.org or a soda container label)
   borders are clearly delineated between the Good Thing and the Bad Thing
   borders are blurred otherwise, for the sake of c2
   c3 is stimulated by the whole UI
   as well as the overarching process of computer use
   c4 satisfaction must come from the GPL and Linux, since we don't do windows

o) user does not have to use every feature to use any feature
   what the thinker thinks the prover proves

o) c1 tracks your finances and assets, your diet and health

o) c2 tracks your friends and enemies and their locations
   also tracks your meetings/battles with them, and the outcomes
   defines territories and the common rituals associated with them
   (GPS?)

o) c3 puts everything in a time
   c3 manages links between separate all data elements regardless of circuit
   semantic grouping, renaming (symbols)
   messaging and communication, with emphasis on ARCHIVING EVERYTHING

o) past c3 computer stops doing rote tasks for primate brain
   c4-6 is isometric with ("apes") IV-VI
   humans can't create anything that isn't human

o) c4 is basic command console for OS (fs, proc, etc.) 
   import/export to other file formats happens here
   OS = religion
   network software and network protocols

o) c5 edits media
   ASCII text, typeseting, graphics, audio, movies
   c5 pushes the envelope of what the hardware is capable of

o) c6 is the AWAKE's own development environment

o) AWAKE is extensible, like emacs
   it does more than its author imagines

o) All data elements in the system are "browsable" in some
   sense, "editable" in some sense, "internal" in some sense,
   "browseable but editable" in some sense, "editable but internal" in
   some sense, "browsable but internal" in some sense, and "browseable
   and editable, but internal" in some sense.

o) every thingy has a name,
   a natural language description,
   an icon,
   and a bunch of links to related thingies

o) AUTOBRAIN is Free.  This is our Stated Dogma upon which we predicate
   all Good Things: it seems the One True Right and Only Way,
   according to our current set of experiences.

o) AUTOBRAIN is most useful on portable hardware

o) The foundation/religion/OS is the latest stable release of Debian
   Gnu/Linux.  Critical subsystems include OSS/Free, XFree86, TCP/IP,
   GNOME, and GNOME's constituents Guile, GDK, GTK, MICO, imlib, etc..
   (What if everybody designed and implemented their own OS?  Their
   own religion?  Their own sexuality?  OR DO THEY DO THIS ALREADY?)

o) User should end up saying "HOLY SHIT!  ALL THIS PERSONAL
   INFORMATION IS JUST LITTLE INSIGNIFICANT BITS!"

:C1:

Hand over a portion of your mind's normal ability to /get hungry/ to
the machine.  Do not hand over all of it.  By having cigarettes at
regular intervals, less often than they normally would, they become
better tasting/more enjoyable, but the wait becomes more
anxiety-inducing.  By overeating habitually, food tastes worse, but
the wait (if any) becomes less anxiety-inducing.  C1 must allow the
user to project their anxiety into the computer-mother.

Accounting means structuring information about money so it is of
greatest benefit to those responsible for it.  In other words, it
means projecting your anxiety over food tickets into a book which
contains "facts" that "ensure" that you have enough.  Bingo.  No more
anxiety (the book can't be wrong) but the money still tastes good when
you spend it (since it's part of a budget rarifying it's use.)  I'd
bet that accountants often take on maternal roles in the companies
they work for.

:C2:

In modern day sports, we keep score ((computers and numbers again!))
to determine who is winning and who is losing.  This is like the
bio-survival tickets again.  C2 focuses on keeping score from
collections of unrelated data.  Once again, the user projects their
fears and hopes into the computer, which acts like a score keeper.
When money is used to keep score (think about what that means
seriously for a while) these jobs can bleed into C1 territory.

The drug of choice amongst investment bankers and computer programmers
is C3; perhaps to blot out C1 and C2 entirely?

Is there some way to get the machine to act like a coach in any way?

:C3:

Everything that can be time-bound can be considered a message.  The
most important messages are those that transverse generations, but the
unimportant messages are so numerous that they beg for AUTOBRAIN more.

Another key element here is that every message you send out or send to
yourself should have a clear revision history and should be archived
permanently.

Real time messaging would be a big winner in C3land.

:C4:

It's all backwards in computerland.  The software that is required by
C1-3 is provided in C4.  C4 is the groundwork, the operating system,
the execution environment, the common libraries, etc.  These bits of
software only exist because large groups of others agree to believe in
them.

:C5:

One process a computer can help with is the music creation process: 1)
COMPOSITION 2) TRANSCRIPTION 3) PERFORMANCE 4) RECORDING.

Other processes where computers have been an aid to creativity include
writing, weapons manufacture, interior, exterior, and landscape
architecture, and painting.  I'm quite certain this list is
incomplete.

:C6:

gcc GUILE binutils fileutils GTK GNOME X TTY Linux 

:C7:

The hardware.

:C8:

Right where you are sitting now.  This document.  Other things I could
babble about.  See C1-7.

:PSEUDO-CODE:

Some interesting ideas for COMPOSITE templates.

currency
valuable
cash
transaction
entity
person
group
place (territory, turf)
location (specific place)
goal
event
moment
duration
span
schedule
folio (a bag)

:A PRAYER:

Saint Leary, code with us.
Master Wilson, code with us.
Master Knuth, code with us.
Master Stallman, code with us.
Master Torvalds, code with us.
Master Zimmerman, code with us.
Master Raymond, code with us.
May the source be with us, always.

:TODO:

schelog working in guile
read up on logic programming
load up and poke around GNOME
autobrain@grim-determination.com

(jfm3)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]