Origin-destination pairs might suit your purposes, but are likely to be quite naive. I guess the biggest question is, "what's a route". For example, between Manchester and London there are typically 3 trains per hour, but the stopping patterns of those trains vary. Some stop at Macclesfield, some stop at Milton Keynes, but not all, etc, so would grouping all of those services together be acceptable for your purposes?
In my experiments, I've gone for a model of "routes" and "variations", however even with this model, origin-destination pairs to define routes isn't satisfactory. For example, stopping vs. express services between two destinations I would want to model as two routes (e.g., Oxford-London, the stopping service is frequently overtaken by the express service, so I would not want to advertise them as the same, as actually catching a later train might be more effective in getting to your destination here). Automatically determining all of this from the schedule data is something I've not quite done yet, I've mainly been forming a mental model that fits it.