Recently I've been doing some work with the General Transit Feed Specification (GTFS). This is a simple data model initiated by Google, in order to allow transit organizations to publish their schedules for routing and visualization purposes.
As usual, Google has nice, succinct documentation for the GTFS format (which is a set of CSV files embodying an implicit data model). But I was surprised to find that they don't provide any kind of data model diagram showing the relationships between the various entities (files) in the model. I have a feeling that they think this would be "too technical" for users - or maybe they just don't believe in using a long-established body of theory?
So, to help my understanding of GTFS I put together a simple diagram of the data model. I used Google Diagrams, which is why this looks a little primitive. (Hmmm... maybe another reason they don't do diagrams is that they are religious about dog-fooding?)
After doing this I found the paper A Transmodel based XML schema for the Google Transit Feed Specification, which has a much more detailed UML model of GTFS:
The end goal of doing all this was to be able to transform a GTFS data feed into shapefile format. For this I used a simple JEQL script. But that's another blog post.