When writing glossary items for http://www.599cd.com I've been producing my own Function Engine as a image (in word, cough) and loading it.
I saw a website called http://www.explainshell.com/ that linked keywords to a function and wanted to do something similar.
The code was complex and above my understanding to implement myself, I'm wanting to use my time for others things but j thought there must be another solution out there.
There was a sitepoint article I came across () with the following site:
http://www.jointjs.com/demos/erd
Now I just need to amend the code to allow for resizing of a box and colouring and it should suite my needs.