Perhaps I’m a bit crazy to name this creation a synaptic autocomplete, in reality it’s more of a real-time reinforcement learning autocomplete, but that just doesn’t quite have the same zing to it if you catch my drift. So let’s stick with synaptic because it fulfills the most basic of requirements – implicit real-time connections.
Don’t worry, we’re not throwing this technology away, fancy user interfaces are just the first application.
I took the example screenshot this morning while sharing a wonderful story about Google Wave beating all communications competition into submission hands down. It’s obvious there’s still a lot of work to be done on the feature before it will be available to the broad public, but the basic premise is there.
And it works! I just love using it! Hell, it’s already increased my probability of sharing/bookmarking an article at least ten-fold.
But what does it really do?
Well the algorithms take quite a lot of whiteboard space to explain in their full nerdical glory so I won’t go into too much detail. Basically what happens is that the software scrobbles my Delicious account to learn about my preferences and usage history. Then whenever I tag a story with my personal vocabulary it connects those keywords with whatever different semantic API‘s (Zemanta, Textwise, Enrycher) said about the website.
All of this happens in real-time, apart from the scrobbling of course.
Then the very next time I’m tagging a similar story the suggestions and connections are already there and bloody awesome, if I do say so myself. One example from a few days ago I remember is tagging a question on StackOverflow as “help” and ten seconds later when I was tagging a different question it suggested I use the keyword “help”.
Don’t you just love it when stuff like that happens?
This entry was written by , posted on January 19, 2010 at 10:20 am, filed under Cool Tools, Synaptic web and tagged Add new tag, Application programming interface, Business, Delicious, googlewave, Operating Systems, Real-time computing, Realtime, Tools, Twitter. Bookmark the permalink.
Follow any comments here with the RSS feed for this post.

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=75877cee-8bab-434d-b2cc-9a3628626448)
[...] This post was mentioned on Twitter by Swizec, preona. preona said: Blog post: A synaptic GUI http://bit.ly/69rBgy #synapticweb [...]
Correct me if I’m wrong, but I understand synaptic web (or GUI in this case) as based on inherent connections between information.
Would not hardcoding the use of Delicious/any other fixed repository of information defeat the purpose of a truly synaptic web? Or is this used only as a stepping stone towards a synaptic GUI that would accomodate any arbitrary information connection (e.g. one based not on past action, but the context of those actions)?
I often wish that when performing a mundane task, such as renaming files or some such, that the GUI would figure out after one or two examples of renaming files from something-YYYY-MM-DD.xml to YYYY-MM-DD-something.xml that I want to do this for all of the remaining files of this sort. (Yes, the example is trivial, but it’s only here to prove a point.) Should this connection not be inherent rather than coded?
Keeping in mind that to connect this kind of information, something somewhere would need a lot of memory, processor time and bandwidth, I believe that such a thing would be possible even with what current computing power can provide.
First of all, nothing you see in this GUI is hardcoded. There are no fixed repositories of information used to build the connections that then help create a better GUI as those are created on-the-fly through the GUI’s use.
The point of synaptic GUI’s, and the synaptic web for that matter, is building connections implicitly as you say. Right now the best way to do that is to base them on past usage (in your example the software could observe meta-data of your “context” and connect it to the way you write a date, then later it would guess the format based on similarities of the meta-data to known meta-data), but as technology advances there will certainly be better ways of doing this.
However it is wrong to assume that a lot of memory and processor time is needed to do this, it isn’t. You’re doing most of the hard work in real-time and you should improve your datasets and their derived knowledge incrementally. This ensures that the software is never faced with a mountain of data to process, but rather byte-sized pieces of information that plug into just the right spot on the already built matrix of connections.