Surely trip_headsign is something different ... it is what we would call “destination board” and comprises a single location at the end of the trip – maybe in the example some trips go to Ruddington and some to Clifton, so each trip would have a different trip_headsign value ... fine for journey planning. But not for putting a header on a route timetable where we need “Clifton – Ruddington – Nottingham” in one direction, and “Nottingham – Ruddington – Clifton” in the other.
Whilst for some routes you could use the values in trip_headsign because the route is just of the A-B variety and doesn’t need any intermediate points, a route description in the UK often needs intermediate points to clarify it – and sometimes variants might be in brackets to show they are not part of the core route, eg: Nottingham – Ruddington (- Clifton) would show that Clifton is only served occasionally, whilst the core route terminates at Ruddington.
Roger
--
You received this message because you are subscribed to the Google Groups "General Transit Feed Spec Changes" group.
To view this discussion on the web visit https://groups.google.com/d/msg/gtfs-changes/-/TC-KfMdjfkMJ.
To post to this group, send email to gtfs-c...@googlegroups.com.
To unsubscribe from this group, send email to gtfs-changes...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/gtfs-changes?hl=en.
1) I'm not clear on how your proposed "route_full_name" field is
different than the existing "route_long_name" field. Also, at this
point, there is a lot of existing feed data and application logic
built up around "route_long_name". I think attempting to deprecate
the field or dramatically change its meaning would be extremely
difficult.
2) Your point (and Roger's) about the potential need for some
descriptive text to associate with all trips headed in a particular
direction for a route is well taken. However, I'd like to suggest
finding some way of connecting these labels to the "direction_id"
field in trips.txt. For example, how do we know which trips to group
under the "route_heading_outbound" label in your proposal?
Thanks,
Brian
> --
> You received this message because you are subscribed to the Google Groups "General Transit Feed Spec Changes" group.
So route_longname in the example Stuart quoted is "Ruddington Connection" -
it is the brand name for the service, and it is not a route description (it
only features one main place on the route - and some brand names have no
geographic naming in them).
That is quite different from the route_fullname suggested by Stuart, I think
... at least the two concepts are different and at present there is only one
"home" for them in GTFS
Roger
-----Original Message-----
From: gtfs-c...@googlegroups.com [mailto:gtfs-c...@googlegroups.com]
On Behalf Of Brian Ferris
Sent: 02 November 2011 9:20 AM
To: gtfs-c...@googlegroups.com
Subject: Re: [gtfs-changes] Proposal to clarify and extend route_short_name,
route_long_name, route_desc
http://www.nottinghamshire.gov.uk/large-static/nottsbus/timetables/TBRC.htm
And the open question is "How do I represent this timetable in GTFS
such that someone could recreate this timetable as shown from that
GTFS?"
Brian
That is the service - but the source used to get it into Google is from the
regional traveline service ... and it comes in both a "timing points"
version and an "all-stops" version in traveline.
http://217.158.134.5/se/XSLT_TTB_REQUEST?language=en&command=direct&net=em&l
ine=180RC&sup=%20&project=y08&outputFormat=0&itdLPxx_displayHeader=false&itd
LPxx_sessionID=MentzApp_562064317&lineVer=1
I work on the MTA Metro North Railroad GTFS feed. As example our Hudson line trains are expressed as 'Hudson Line' and 'Hud' for the long and short route names respectively. The trips are expressed in the headsign as 'GRAND CENTRAL TERMINAL - POUGKEEPSIE' or whatever the origin and destination is.
If for example, we had connecting service for Amtrak to Albany at Poughkeepsie, I would add this into the headsign as 'GRAND CENTRAL TERMINAL - POUGKEEPSIE (AMTRAK CONNECTION TO ALBANY)' because it is part of the trip.
Remember, GTFS is for transmitting schedules and the data expressed is for routes, trips and stopping information. Expressing a different route for marketing purposes is not its intent. I think the same could be said if a proposal for a field 'route_real_name' were to be given.
If timetables are your goal, I think a new route is needed if it is SPECIFICALLY intended to have a 'Ruddington Connection'. I might do the same but I have additional data elements to express service. It may be useful to have metadata about routes.
For instance, the we have specific revenue service to Yankees Stadium on all of our lines. Instead of new routes, the service for this is expressed in a separate data element. Same would be said for the AMTRAK service in my example.
A possible solution could be route_extended_service optional file that includes ID, service_short_name, service_long_name, shaped and including an optional ID in the trip with a blank or 0 indicating Regular service.
This could be useful for trips that should have 'Yankee Stadium Service', 'First stop Croton-Harmon with Amtrak connection to Albany' or 'Express to New Haven, Limited Stops'.
By doing this, the route and trip can be expressed as 'Hudson Line, First stop Croton-Harmon with Amtrak connection at Albany' and only those trips can be expressed in a time table. A full timetable can also be made as well with no service filters.
John
We may have different practices in the UK from those in the USA – and GTFS needs to be agile enough to handle both of our requirements.
Headsign is designed to contain a SINGLE location – the destination of the vehicle on each trip.
We then have a service which is called Ruddington Connection – it has no service number. So this is what we need Google Transit and others to show. However when the service is presented in context, then we also use a shorthand version RC to identify it alongside other services at a stop, or on a timetable or departure listing ... but this is a shorthand or abbreviation of the long service name.
In my view you are not following the current spec in what you are putting in headsign – but then probably we are also not doing so. And that is because there isn’t the right container for the information that each of us wants to be able to include.
A further frustration from all this is that Google Transit then decides not to show all supplied information – and my guess is that one reason for them making that decision is that the content of some fields is significantly inconsistent from one data supply to another – and the reason for that is that there is a weakness in the GTFS spec.
It’s not helpful, though, then to dismiss the weakness when someone raises it – particularly as you appear to be forcing inappropriate data into some fields in GTFS yourself, for the very same reason. And I don’t think it is helpful to define the purpose of GTFS in a limited way when it is supposed to be a GENERAL Transit Format Specification – and in my view a service description is an essential part of the data that ought to be transmitted.
We in traveline are not the creators of the information – perhaps another key difference between us. A line is defined by an operator in the UK – and traveline as an information service has no influence on how the line is defined; we just have to ensure that our data can replicate what the operator has defined. Many are simple lines – and we can all cope with those. But we have complex lines with a single name – and we have to make sure that these are handled within our own data management systems – and replicated faithfully in our output to GTFS and others.
Roger
From: gtfs-c...@googlegroups.com [mailto:gtfs-c...@googlegroups.com] On Behalf Of John L
Sent: 02 November 2011 12:21 PM
To: gtfs-c...@googlegroups.com
--
You received this message because you are subscribed to the Google Groups "General Transit Feed Spec Changes" group.
Roger, you'll have to forgive me, but I'm still a bit unclear on your
proposal in terms of what data and labels you'd like to have displayed
in various UI scenarios. Is it perhaps possible that you could point
to an existing UI example (maybe something from Google Maps or another
application) where the application isn't showing the data you would
like and what data you would like to see? I think it would help me
understand the specifics of your proposal.
Thanks,
Brian
Can you elaborate a bit more on "route_long_name has a totally
different connotation for us when we have two options for what to call
the service depending on usage (RC vs Ruddington Connection)". Would
you consider both "RC" and "Ruddington Connection" appropriate
"route_long_names"? Under which situation would you show one vs the
other?
You also make the point that people are using "route_long_name" to
hold more of a route description. Can you maybe give a few examples
of what you consider a route name versus a description?
Brian
Stuart has just posted a detailed note - and I hope it covers most of your
questions related to my comments as well.
The item we don't think is being shown on Google Transit is
route_description .... but I haven't personally checked this out, so maybe
our perceptions on this are not up to date. I will try to do some
exploration of this later today, if time permits.
Roger
-----Original Message-----
From: gtfs-c...@googlegroups.com [mailto:gtfs-c...@googlegroups.com]
On Behalf Of Brian Ferris
In your proposal, can you give me an example of a route with both a
long service number and a route heading, with specific values for
both?
If I was building a timetable application, I'm guessing you'd like the
heading for a particular timetable to be something like:
Short Service Number - Long Service Number - Route Heading -
Inbound/Outbound Route Heading
... actual timetable entries go here...
Is that reasonable?
Brian
Thanks for all those examples. They really helped me to understand
how you would use your proposed fields in practice.
I think I see your point about how these fields would be used in
practice, but let me try repeating it back to you to make sure we're
on the same page.
1) Route short name seems reasonable as it exists today.
2) In terms of a longer route name, there are two ways agencies
typically specify it in practice. Some have a specific service name
for a route ("Ruddington Connection" in your case) while others tend
to use a long name that describes the important points visited by a
route ("Nottingham - Ruddington - Clifton" in your example). The
problem is when you want to specify both in GTFS. You could simply
combine the two into one value ("Ruddington Connection: Nottingham -
Ruddington - Clifton") and put that in "route_long_name", but then
that gets a bit unwieldy, especially when you want to display that
along with another value like "trip_headsign" or your proposed
inbound/outbound route heading. Certainly, "RC | Ruddington
Connection: Nottingham - Ruddington - Clifton | Clifton - Ruddington
- Nottingham" for service from Clifton to Nottingham is both unwieldy
and a bit confusing for riders. Putting the route service name in
"route_long_name" and the important points visited in "route_desc"
isn't satisfactory either because the route description field is a bit
of a catch-all that can include long blocks of text, so it isn't often
display in UI headings in practice. Thus, the new field.
3) Regarding, your proposal for "route heading outbound" and "route
heading inbound", I think there is some demand for this from some
other agencies and it's something I would have liked when I was
writing timetable generation code in OneBusAway. In practice, I ended
up using the most frequent "trip_headsign" from trips.txt as the next
best thing, which leads to my next question. How would the value you
specify for "route heading outbound" or "route heading inbound" differ
than the value you might specify as "trip_headsign" in trips.txt for
an out-bound or in-bound trip? Where they are different, can you give
a quick example? I know trip headsign refers to what appears on the
headsign of the vehicle itself, but I'm curious how they differ in
practice.
So the next big question, as with any GTFS proposal, is this: are
there any app developers out there who would be interested in using
the new fields proposed by Stuart?
Thanks,
Brian
On Wed, Nov 2, 2011 at 6:12 PM, StuartJReynolds
Brian
As far as I can see Google transit does not appear to display the route_description field, so there is no point in populating it. Am I mistaken?
I think other points that I was making have now been clarified in subsequent e-mails between you and Stuart. Perhaps I can just reinforce a point - using the now infamous Ruddington Connection service?!
On Google Transit we see a journey between Nottingham and Ruddington summarised in the following ways :

And

As Stuart has described, we only use RC in contexts where the words Ruddington Connection can also be shown – so whilst RC will appear at the top of a journey (presented vertically in a UK matrix timetable), it will be in a table where Ruddington Connection appears as the service name. On our own system, the itinerary for this particular journey looks like :

So we show the operator (Trent Barton) and the service name for complete clarity – and we do not use RC in this situation as it would mean nothing – it does not appear on the bus ... it is just an abbreviation which is only acceptable in a context where the abbreviation is explicitly or implicitly explained.
Best wishes
Roger
This presents a problem. As discussed in the thread, a lot of UI that
displays GTFS data has moved away from display "route_long_name"
because it is often shown in combination with a "trip_headsign" value,
which leads to confusing results when both fields are effectively
providing heading information. But what about an agency that has a
route branded with a service name?
Aaron has proposed putting this information in the "route_short_name".
I'll be honest that I don't think I'd vote for this approach. I know
of a couple of apps (a few I've written myself) that do not do so well
when a longer string is included in "route_short_name". I think it
would work for some apps, but ultimately, I think it would dp more
harm than good.
Another alternative, which I think is similar in spirit to what Stuart
proposed, is to introduce a new field like "route_heading_name" and
clarify the purpose of "route_long_name". Specifically,
"route_long_name" would only be used when there is a specific branded
service name for a route ("Ruddington Connection" in Stuart's example)
while "route_heading_name" would be used for
destination-or-waypoints-style route descriptions ("Clifton -
Ruddington - Nottingham" in Stuart's example). The problem with this
proposal is that in practice, almost every agency is using
"route_long_name" for storing data that would ideally go in
"route_heading_name". I think trying to fix that at this point would
be a losing battle. We'd likely end up in some mixed state where some
agencies had adopted "route_heading_name" but not all, which meant
that a consumer of GTFS could not reliably display "route_long_name"
in their UI since it could still conceivably have heading information
in it.
So here's my proposal. At this point "route_long_name" is almost
exclusively being used by agencies for destination-or-waypoints-style
descriptions of a route. I think we're stuck with that at this point,
but we should clarify the documentation to indicate as such. The
column name isn't really indicative of the contents, it's true, but
again I think there might be too much inertia to change it. We would
then also introduce a "route_service_name" field that would be used to
hold branded service names for a route (again, "Ruddington Connection"
in Stuart's example. A consumer of GTFS could more reliably show UI
that combined "route_service_name" + "trip_headsign" without worry
that they'd have conflicting information.
Thoughts?
Brian
> ...
>
> read more »
I am also a +1 for this (and I hope Stuart is with me on this - I haven't
been able to discuss with him since your post)
Thanks for doing the research that makes the case clear - Stuart and I were
keen to ensure backward compatibility, and to tighten the specification of
how these particular elements are used. I think your proposal to add
route_service_name (with an appropriate clear definition), along with
tightening the definition of route_long_name, will achieve this.
Brian
The idea is to add a new column to trips.txt that I'm going to call
"direction_name" to keep it consistent with the existing
"direction_id" field. For each trip in trips.txt, you can specify a
direction name that is similar in purpose to the inbound / outbound
description that Stuart has discussed.
How would this be used in practice? For timetable generation, I could
group trips for a particular route by their "direction_name" and
display that "direction_name" above the timetable for those trips.
"Why not just use trip_headsign for this purpose?" you might ask?
That's probably a reasonable question, but I'm guessing in the case of
timetable generation, feed providers might want to use a general label
for "direction_name" while "trip_headsign" might have specific
variations for different trips. "What is the relationship between
direction_id and direction_name?" you might also ask. Another good
question, and I'm not exactly sure. One option is to require all
trips with the same route and direction_id to have the same
direction_name. Maybe that's too restrictive? Can anyone think of
situations where they'd like a different grouping using "direction_id"
than they would with "direction_name"?
Stuart, regarding your proposal for a "route_heading_outbound" and
"route_heading_inbound", my main concern with that is that it's not
clear how that connects to the actual trip entries in trips.txt, in
terms of using it to group trips in a timetable. Also, not every
route will necessarily have an inbound/output configuration. The more
general direction functionality of trips.txt seems more flexible to
me.
Thoughts?
Thanks,
Brian
I am in favor of this proposal for directon_name and direction_id. We have been providing exactly these two fields in our trips.txt file for a while now.
They provide a great way to group trips for timetables, as you mentioned. When you build routes with HASTUS, each route can be assigned a pair of directions whether it's inbound/outbound, east/west, clockwise/counter-clockwise (or anti-clockwise).
Devin Braun
San Diego MTS
I think "direction_name" should be a description tied to "direction_id". I
cannot think of a situation where the two should not be related to precisely
the same set of trips.
In response to some other comments, I think the definitions of these names
should make clear the context in which each is to be used - but not specify
the precise format of each name, as these appear to be culturally specific.
The format of the content of each field would be different in the UK from
that used in the US - and other countries may equally have their own
conventional differences. It is the "function" of the field that is
important, not the "format" of the content.
Thoughts?
Thanks,
Brian