Fat Cats - foafCORP viewer

foafCORP - a semantic web visualization of the interconnectedness of corporate America, or otherwise known as “Fat Cats”.

Launch the Demo – 12kb (Adobe SVG viewer required.)

Interesting path: PepsiCo -> Robert E. Allen -> Bristol-Myers Squibb -> James D. Robinson III -> Coca-Cola. (Pepsi to Coke in only two hops!).

About foaf and foafCORP

foaf is an RDF vocabulary for describing the relationships between people. It was invented by Dan Brickley and Libby Miller of RDF Web. You can look at their foaf pages for the detailed information, but basically it is a way to describe a person and the other people they know.

foafCORP is an example of using foaf in an interesting visualisation application. It turns out that there is a lot of cross-pollination amongst the boards of directors of large companies in America. By using foaf, these relationships can be described in a manner that is easy for a computer to understand. All this demo does is provide a User Interface to that data.


While designed to be quite straightforward, instructions probably help. You start by adding a company to the display. Simply click on the name of the company. A company is represented by a dollar sign. Each company has a number of circular buttons running down its left side. The green button expands the company to show its board of directors (this can take a few seconds to fetch the data). The button shows the raw RDF that describes the company. The orange button performs a google search on the company. The red button removes that company, and all its connectors, from the display. You can move companies around the display by clicking and dragging.


Each member of a company’s board of directors is represented by a cat. The fatter the cat, the more boards they are on (of course, all resemblance to real people is purely coincidental, although not unexpected). FatCats/Directors work in the same way as Companies (same buttons).

Note that the expansion button is removed after a node has been expanded. You can’t expand a node twice, nor can you add a node that has been deleted.

In the top left corner are two buttons. The top button, represented by a circle with a plus (+) sign, brings up the window that allows a company to be added to the display. This can be done at any time, and the company will be added in a random position. The bottom button, represented by circle with a lowercase I (i), brings up this page. (I drew the cats and the dollar signs. Yes… I know I can’t draw)

About the data

This dataset and the orginal idea comes from TheyRule, a work by Josh On of the amazing Future Farmers. They graciously gave us their dataset and we created an RDF interface. Add a bit of SVG code and you get this nice graphical interface. I assume these are the top 100 companies in America or something like that (I don’t live in America so don’t recognise all the names).

I said it above and I’ll say it again. This is just a visualization of XML data (RDF in this case). It happens to be done in SVG. It was really easy to do in SVG because it is already an XML format, so comes with an XML parser and XML DOM. SVG also has a very powerful drawing API, so nearly all of the graphics are created on the fly.

Technical Details (what’s happening here)

Each time you you expand a node, the SVG viewer sends an HTTP request to this server. The response is an RDF file (example results for Exxon-Mobil) which is parsed by the viewer into an XML DOM, which is transcoded into elements in the SVG DOM.

Other Stuff

Jim Ley has taken this code and made a really cool generic foaf browser. And you can look at the origins of foafCORP at theyrule.

The old-interface (v0.1) is still around if people want to try it. As is the old interface used for Jim’s generic browser (this demo shows that Dan Brickley is the centre of the universe). Dan and Libby also have a nifty project to visualise codepictions (two or more people in a photograph) using similar datasets. With it, you can find the path of images that link each of them to Frank Sinatra.

To Do

It’s unlikely I’ll spend much time updating this code as I normally get bored of things quite quickly. If I was going to update, here is a list of things I’d do:

Of course, you are free to take the SVG and modify it yourself.