Skip to content

Semantics of attribution_id uniqueness for identical attributions #589

@laurentg

Description

@laurentg

Describe the problem

In the attributions specification, the optional attribution_id field is declared as a primary key.

Since the attributions.txt table defines both the objects and the links (it act as a primary table and a link table), and many identical attributions will be duplicated in this table (for example for declaring the same attribution to many routes or trips), it's not clear if having duplicated attribution_id is allowed for the same attribution (that is attribution having all identical value fields: type, name, url, phone, email).

Currently the official GTFS validator does not allow it, for example the following data is raising a "duplicated ID error":

attribution_id,agency_id,route_id,trip_id,organization_name,is_producer,is_operator,is_authority,attribution_url,,attribution_email,attribution_phone
OP1,,CITY,,Operator of the route CITY and AB,,1,,https://operator.com/,[email protected],+1 0967 5656
OP1,,AB  ,,Operator of the route CITY and AB,,1,,https://operator.com/,[email protected],+1 0967 5656

Having this restriction (ID unique for each row) is not very handy, as the simple case of having the same attribute defined for hundreds of trips will require hundreds of different (arbitrary) IDs, also multiplying the required number of translations.

Use cases

Added value of this proposal / refinement:

  • Clarify the current specification (semantics of attribution_id uniqueness is not really clear)
  • Minimize the number of required data (translations)
  • Simplify the work of data producer and consumer (do not require to create many arbitrary IDs)

Proposed solution

It could be nice to allow duplicated IDs for identical attributions (that is attribution having all value fields the same).

That is allowing the following data:

attribution_id,agency_id,route_id,trip_id,organization_name,is_producer,is_operator,is_authority,attribution_url,,attribution_email,attribution_phone
OP1,,CITY,,Operator of the route CITY and AB,,1,,https://operator.com/,[email protected],+1 0967 5656
OP1,,AB  ,,Operator of the route CITY and AB,,1,,https://operator.com/,[email protected],+1 0967 5656

Additional information

In addition, if this would be allowed, we could also allow declaring only once the attribution values for identical IDs, for example having:

attribution_id,trip_id,is_operator,organization_name,attribution_url,,attribution_email,attribution_phone
OP1,T1,1,Operator first,https://operatorfirst.com/,[email protected],+1 0967 5656
OP1,T2,,,,
OP1,T3,,,,
OP1,T4,,,,
OP1,T5,,,,
OP1,T6,,,,
OP2,T7,1,Operator second,https://operatorsecond.com/,[email protected],+1 0968 5657
OP2,T8,,,,
(...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Change type: FunctionalRefers to modifications that significantly affect specification functionalities.GTFS ScheduleIssues and Pull Requests that focus on GTFS Schedule

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions