It seems like this is missing the ability to specify queries that you might want to perform on top of the model. It would be very helpful if the intent is to learn.
A distributed, transactional graph database like Titan (http://thinkaurelius.github.com/titan/) would be a more natural fit for modeling a social graph.
since most of the target crowd probably uses orm/frameworks one way or the other, it would be nice if there were some 'export' options for that (django orm, sqlalchemy, rails orm, etc.).