BIGpedia.com - Brain dump - Encyclopedia and Dictionary Online
encyclopedia search

Brain dump


The phrase brain dump refers to the transfer of a large quantity of information from one person or computer to another. As slang, it can describe a hurried explanation of a system, job, skillset, or other software engineering subject. In computing, describes the taking of a snapshot of the internal state of a knowledge database for transfer or archiving purposes.

There are 3 phases in the brain dump process:

  • capture; or the free- (if necessary guided-) forming of thoughts into a notation (or language, such as UML) that can be stored in a computer. When people only are involved, this usually takes the form of a FAQ.
  • storage; or the computable and transformable machine representation of knowledge into a persistent medium (flattening or structuring of the data, such as a DBMS or Object Store). When people only are involved this takes the form of an interactive training disc (for example).
  • query, analysis, and transformation; or the access to information using a universal interface (such as an API, SQL, or a Wiki). When people only are involved this takes the form of the sitting of a computer skill exam such as any of the Microsoft MCP (or MCSE) qualifications.

The following sections will look at some of the existing approaches and broadly depict the mechannics of each phase.

Contents

Expert System Approach

When inference engines were the norm in Artificial Intelligence, expert knowledge (in medicine, or some other suitable technical disciplines) was captured as set of rules:

  • all the rules are written by experts, and inserted in a computer system pool that is then hooked to inputs (electronic devices, or textual interface for humans to input the data)
  • all the input data is fed to all the rules, which then are analysed to see if the trigger conditions are met: in a medical context, if patient has, for example, any 4 of {symptom1, symptom2, symptom3, symptom4, symptom5, symptom6}, then there is a match
  • when initial conditions are met, the inference engine (usually written in a symbolic functional language such as Lisp, ML, or Prolog) consumes the input and fires an output value (which could end up on a piece of paper, such as a diagnostic note in the medical case)
  • this value is then put back in the pool

This is still used in some areas of psychiatry.

This captures all the knowledge of an expert, making the assumption that this knowledge is coherent and fully comprehensive. Most of the time, none of the assumptions on which the rules are based are checked (and sometimes end up being invalid, such as in the mental health discipline).

However the knowledge is available for all to see as a set of rules (sometimes with some data) with the associated inference engine (most of the time with source code). This set of rules-data-engine can then be modified or simulated.

The process of capturing the expert's brain is very labour intensive and highly specialised, and the final product is very artificial, nowhere matching the intricacies and nuances of a real expert delivering a diagnosis in real life (in the medical case).

A more natural research was started to remedey some of these shortcomings.

Learning Neural Network Research

More modern AI uses an approximation of the brain's biology to get a computer system to "learn": the evolutionary Neural network. This is for example the approach used by Steve Grand for raising / training his pet baby robot Lucy.

Take a situation where a number of inputs should generate a specific output (if there is light, then go towards it). A network of simulated neurons is fed all the inputs, and through iterative lengthy breeding, only the configurations that generate the desired output are selected (all the other behaviours result in the network being terminated).

This eventually generates a set of connected inputs and outputs, in a rather chaotic graph (with circularities and dead ends) of feedback loops, inhibition and stimulation paths. Once such a design has been obtained, the only way to exploit it (for example to mass-produce an integrated circuit such as an ASIC) is to copy the whole network, as is, with no modification. This is like making a photocopy. Nobody learns anything in this process (all you get is replication of a solution that is winning but hermetic/occult).

Here the knowledge cannot be extracted from the brain structure by a straightforward snapshot. But if the training was recorded, and if the underlying material (brain complexity and power) can be replicated, then it is assumed that new - albeit different - brains can also acquire the same knowledge. This also means that some training techniques will be more successful than others at sucessfully evolving a given brain technology. However, very little is known on the subject of training efficiency and the corresponding neural network suitability.

This probably was how the biological historical brain was developped, but this has - as yet - little bearing / usefullness with regards to getting one human to communicate her ideas to another human.

The UNIX Core dump image

In the computer operating system called UNIX (and its variants), when a program crashes, it dumps a core. A big file is generated containing a snapshot of all the internal state of the software (contents of CPU registers, and memory cells) and sometimes of the hardware (temperature, input/output status).

This then requires a skilled human to start a debugger application, to relate all the data in memory to the source code, and to get an idea of what led to the crash.

As a figure of speech, when one programmer requires that another performs a brain dump, only most rudimentary data and pointers are produced, and the recipient of the dump is supposed to then go back to the reference material (including software source code) to actually make sense of it all. Also, from time to time, a software engineer may perform a self- brain dump, to offload her brain, in order to be able to concentrate on something else, and yet be able to go back to a known state at a later stage.

A number of well- (and less-) known artifacts / formats are used in this process:

  • the FAQ (frequently asked questions)
  • the lessons learned
  • the revision log
  • various thought diagrams (for example see the work of Edward de Bono, and documents structured by techniques such as the Six Thinking Hats)
  • brainstorming notes (see various mind map software)
  • standard diagrams (UML, database structure, LAN/WAN layout, circuit pinout, office plan, etc...)

These files contain unchecked raw data, sometimes self-contradictory, at different stages in the thought process, from different historical times (recent, old, very old), rumours, gossip, gut feelings, etc...

However, all are focused on the subject being dumped (for example how you will be able to complete this software project on time).

The brain dump is both data and context, and is intended to be read by another person who has a compatible mind-set (or context). This context is often not culture- nor language- dependant, in the sense that software engineering uses some form of universal English (via English-based programming languages) and standardised notations (such as UML) to communicate algorithms and designs. However geek culture needs to be there for the brain dump to work.

External Links

See http://www.catb.org/jargon/html/B/brain-dump.html and http://www.brain-dump.com/



The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License.
How to see transparent copy

01-04-2007 01:21:04