UC:TT:ImportCompleteTimetableForVehicleWorkingSchedulingAndVehicleWorkings: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
(Die Seite wurde neu angelegt: „Import complete timetable for vehicle working scheduling and vehicle workings [Bearbeiten] Description A complete timetable shall be imported, serving as base…“)
 
No edit summary
Line 1: Line 1:
Import complete timetable for vehicle working scheduling and vehicle workings
==  Import complete timetable for vehicle working scheduling and vehicle workings ==
[Bearbeiten] Description


A complete timetable shall be imported, serving as base for vehicle working scheduling. The infrastructure data is already present in the importing system. Timetable data includes


    base data of trains (train numbers, train category, train line, operators, concessionairs, subcontractors etc)
=== Description ===
    traffic periods, including weekdays, holidays, seasonal variation etc
 
    itineraries, arrival and departure times
A complete timetable shall be imported, serving as base for vehicle working scheduling. The infrastructure data is already present in the importing system.
    platform assignments
Timetable data includes
    track occupancies
* base data of trains (train numbers, train category, train line, operators, concessionairs, subcontractors etc)
    formations, including coupling and branching of trains  
* traffic periods, including weekdays, holidays, seasonal variation etc
* itineraries, arrival and departure times
* platform assignments
* track occupancies
* formations, including coupling and branching of trains


Optionally, vehicle working data may be imported that may serve as a planning base.
Optionally, vehicle working data may be imported that may serve as a planning base.




[Bearbeiten] Data Flows and Interfaces
 
=== Data Flows and Interfaces ===


Typically, the import is done manually using a file based interface.
Typically, the import is done manually using a file based interface.
[Bearbeiten] Interference with other railML® schemas


    Common
=== Interference with other railML® schemas ===
    Infrastructure: the import uses elements from mesoscopic and macroscopic perspective
    Rolling stock


* Common
* Infrastructure: the import uses elements from mesoscopic and macroscopic perspective
* Rolling stock


[Bearbeiten] Characterizing Data
 
[Bearbeiten] How often do the data change (update)?
=== Characterizing Data ===
 
==== How often do the data change (update)? ====


static
static
[Bearbeiten] How big are the data fragments to be exchanged (complexity)?


    whole data set, or region
==== How big are the data fragments to be exchanged (complexity)? ====


[Bearbeiten] Which views are represented by the data (focus)?
* whole data set, or region


    mid term
==== Which views are represented by the data (focus)? ====


[Bearbeiten] Which specific timetable data do you expect to receive/send (elements)?
* mid term
 
==== Which specific timetable data do you expect to receive/send (elements)? ====


The process covers following steps:
The process covers following steps:
# Determine Validities
# Import the traffic network data and routing
# Import rollingstock data
# Import itineraries
# Import track occupancies
# Import train parts
# Import trains
# Import vehicle workings
# Import rosterings


    Determine Validities
    Import the traffic network data and routing
    Import rollingstock data
    Import itineraries
    Import track occupancies
    Import train parts
    Import trains
    Import vehicle workings
    Import rosterings


===== Determine validities =====


[Bearbeiten] Determine validities
*Precondition:*
 
    Precondition:*  
 
The validities may be calendar based or abstract operating days and operating periods:
The validities may be calendar based or abstract operating days and operating periods:
* Calendar based: It should be possible to define different calendars. These calendars should be identified by a name attribute. The calendar based validity is defined considering a calendar, a start date and a bitmask. The bitmask defines the instants where the validity takes effect in respect to the calendar and the start date.
** Required: the "calendar day to validity"-mapping is consistent and complete.
* Abstract validities are defined by name in respect to the timetable version
* A period based abstract validity (e.g., a weekly template) is defined by abstract validity and a bitset. The bitset marks when the validity is repeated in the sequence of validities.


    Calendar based: It should be possible to define different calendars. These calendars should be identified by a name attribute. The calendar based validity is defined considering a calendar, a start date and a bitmask. The bitmask defines the instants where the validity takes effect in respect to the calendar and the start date.
*Execution:*
        Required: the "calendar day to validity"-mapping is consistent and complete.
* Calendar based validities are imported with the help of a "calendar day to validity"-mapping.
    Abstract validities are defined by name in respect to the timetable version
* Abstract are searched by name within the timetable version. If the validity is not found a new validity is created.
    A period based abstract validity (e.g., a weekly template) is defined by abstract validity and a bitset. The bitset marks when the validity is repeated in the sequence of validities.
* For period based abstract validities, the application logic defines the import process.
 
    Execution:*
    Calendar based validities are imported with the help of a "calendar day to validity"-mapping.
    Abstract are searched by name within the timetable version. If the validity is not found a new validity is created.
    For period based abstract validities, the application logic defines the import process.  


    Postcondition:*
*Postcondition:*
    All validity descriptions have been mapped to validities in the business model.  
* All validity descriptions have been mapped to validities in the business model.


_The current validity model covers all usecases. We recommend refactoring and introducing different subtypes for every usecase._
_The current validity model covers all usecases. We recommend refactoring and introducing different subtypes for every usecase._




[Bearbeiten] Import traffic network and routing data
===== Import traffic network and routing data =====


    Precondition:*
*Precondition:*
    Stops have a name attribute, and a reference to a validity
* Stops have a name attribute, and a reference to a validity
    Stations have a name, a timezone attribute and a reference to a validity.
* Stations have a name, a timezone attribute and a reference to a validity.
    Tracks have a name and a validity
* Tracks have a name and a validity
    Track section have an name  
* Track section have an name


    This should be used for track closures, or when a stops or stations are temporarily not serviced. For further versions of the schema the validity may be extended to a daytime validity. An application of this feature is e.g. night driving prohibition on certain tracks and stops.
* This should be used for track closures, or when a stops or stations are temporarily not serviced. For further versions of the schema the validity may be extended to a daytime validity. An application of this feature is e.g. night driving prohibition on certain tracks and stops.
    Stations have a name and a timezone
* Stations have a name and a timezone
    Track sections may be used to define on which platform section a vehicle is positioned.  
* Track sections may be used to define on which platform section a vehicle is positioned.
On tracks the change of direction are attributed.


On tracks the change of direction are attributed.
*Execution:*
* Stops are searched by their name in the datasource. If the stop does not exist, it is created and the validity of the stop is assigned. If the stop already exists the validity is applied to the stop and attributes are changed.
* Stations are searched by their name in the datasource. If the station does not exist it is created and the validity is assigned to the station. If the station already exists the validity is applied to the station and attributes are changed.
* Tracks are searched by their name in the datasource. If the track does not exist it is created and the validity is assigned to the track. If the station already exists the validity is applied to the track and the change of direction and other attributes are changed.
* Track sections are imported.
* Routes are searched by name in the datasource. If the route does note exist it is created. If the route already exists the attributes are changed.
 
*Postcondition:*
* Stops have been imported.
* Stations have been imported.
* Tracks have been imported.
* Routes have been imported.


    Execution:*
    Stops are searched by their name in the datasource. If the stop does not exist, it is created and the validity of the stop is assigned. If the stop already exists the validity is applied to the stop and attributes are changed.
    Stations are searched by their name in the datasource. If the station does not exist it is created and the validity is assigned to the station. If the station already exists the validity is applied to the station and attributes are changed.
    Tracks are searched by their name in the datasource. If the track does not exist it is created and the validity is assigned to the track. If the station already exists the validity is applied to the track and the change of direction and other attributes are changed.
    Track sections are imported.
    Routes are searched by name in the datasource. If the route does note exist it is created. If the route already exists the attributes are changed.


    Postcondition:*
    Stops have been imported.
    Stations have been imported.
    Tracks have been imported.
    Routes have been imported.






[Bearbeiten] Import rollingstock data
===== Import rollingstock data =====


    Precondition:*
*Precondition:*
    The formation information has following informations:
* The formation information has following informations:
        validity reference \[optional\]: to set a formation outdated during a timetable period
** validity reference \[optional\]: to set a formation outdated during a timetable period
        length
** length
        weight
** weight
        speed
** speed
        traction
** traction
        seating capacity
** seating capacity
        standing capacity
** standing capacity
        additional services (buffet, wlan, etc.)  
** additional services (buffet, wlan, etc.)


    Execution:*
*Execution:*
    The formation is searched by name in the datasource.
* The formation is searched by name in the datasource.
        If the formation is found it is modified according to attributes. If the validity is set, it is applied to the formation.
** If the formation is found it is modified according to attributes. If the validity is set, it is applied to the formation.
        Otherwise the formation is created with the specified attributes and the validity is assigned if the attribute was set in the input data.  
** Otherwise the formation is created with the specified attributes and the validity is assigned if the attribute was set in the input data.


    Postcondition:*
*Postcondition:*
    Formations have been imported.  
* Formations have been imported.




[Bearbeiten] Import train


    Execution:*
===== Import train =====
    Imports [commercial trains|#Import Commercial Train].
    Imports [operational trains|#Import Operational Train].


[Bearbeiten] Import commercial train
*Execution:*
* Imports [commercial trains|#Import Commercial Train].
* Imports [operational trains|#Import Operational Train].


    Precondition:*
===== Import commercial train =====
    The commercial train consists of an unique id, and a validity reference.
    The commercial train references an itinerary, which defines the requirements of the itinerary for the commercial train.
    The commercial train references a formation. The formation may vary on sections of the itinerary. This formation defines the requirements, which must be fulfilled by the operational trains.
    The commercial train may define connection requirements.
        Connections define connecting constraints to other commercial trains for a certain stop in the itinerary.


        Connections have following attributes:
*Precondition:*
            a reference to a validity
* The commercial train consists of an unique id, and a validity reference.
            a reference to an itinerary stop of the current train
* The commercial train references an itinerary, which defines the requirements of the itinerary for the commercial train.
            a reference to a another commercial train (need not be in the be in railML-source)
* The commercial train references a formation. The formation may vary on sections of the itinerary. This formation defines the requirements, which must be fulfilled by the operational trains.
            a reference to a stop (connection point of other train)
* The commercial train may define connection requirements.
            a minimum connection time point: the time the train waits at least
** Connections define connecting constraints to other commercial trains for a certain stop in the itinerary.
            a maximum connection time point: the time the train waits at most
            a flag if the connection is guaranteed
            a flag if the connection meets at same platform
            a connection direction: both, outgoing, incomming


** Connections have following attributes:
*** a reference to a validity
*** a reference to an itinerary stop of the current train
*** a reference to a another commercial train (need not be in the be in railML-source)
*** a reference to a stop (connection point of other train)
*** a minimum connection time point: the time the train waits at least
*** a maximum connection time point: the time the train waits at most
*** a flag if the connection is guaranteed
*** a flag if the connection meets at same platform
*** a connection direction: both, outgoing, incomming


    Execution:*
    The import identifies with the commercial train by id and validity.
    The status (deleted, modified) defines the operation which will be executed during the import.
        If the train is marked as deleted and the train is found in the datasource, the train will be deleted for the validity, it has been defined (e.g. Train in datasource is defined Mo-Fr, railml-source defined deletion for Mo-Do. So after the import the train should still exist on Fr, but not on Mo-Do). For deletion only the id attribute and validity reference are mandatory.
        If the train is marked as modified, it may either be created or modified - if found in the datasource. For creation or modification of a train the id attribute, the validity reference, the formation and the commercial train itinerary are mandatory.
    The [commercial itinerary is imported|#Import itineraries] and assigned to the commercial train.
    The formation is assined to the commercial train


    Postcondition:*
*Execution:*
            commercial trains have been imported or deleted.  
* The import identifies with the commercial train by id and validity.
* The status (deleted, modified) defines the operation which will be executed during the import.
** If the train is marked as deleted and the train is found in the datasource, the train will be deleted for the validity, it has been defined (e.g. Train in datasource is defined Mo-Fr, railml-source defined deletion for Mo-Do. So after the import the train should still exist on Fr, but not on Mo-Do). For deletion only the id attribute and validity reference are mandatory.
** If the train is marked as modified, it may either be created or modified - if found in the datasource. For creation or modification of a train the id attribute, the validity reference, the formation and the commercial train itinerary are mandatory.
* The [commercial itinerary is imported|#Import itineraries] and assigned to the commercial train.
* The formation is assined to the commercial train


*Postcondition:*
*** commercial trains have been imported or deleted.


[Bearbeiten] Import operational train


    Precondition:*
===== Import operational train =====
    An operational train consists of an unique id, and a validity reference.
    An operational train may implement a commercial train or an itinerary section of it.
        Therefore the operational train has validity disjunct references to a section of the commercial itinerary. The operational train consists of subsequent sections with several trainparts with their positions, thus defining the formation of the train section.
    Application logic may define requirements for the fulfillment relation between operational and commercial formations and itineraries.


    Execution:*
*Precondition:*
    The import identifies with the operational train by trainId and validity.
* An operational train consists of an unique id, and a validity reference.
    The status (deleted, modified) defines the operation which will be executed during the import:
* An operational train may implement a commercial train or an itinerary section of it.
        If the train is marked as deleted and the train is found in the datasource, the train will be deleted. But only for the validity defined in the railml-source. (e.g. Train in datasource is defined Mo-Fr, railml-source defined deletion for Mo-Do. So after the import the train should still exist on Fr, but not on Mo-Do.)
** Therefore the operational train has validity disjunct references to a section of the commercial itinerary. The operational train consists of subsequent sections with several trainparts with their positions, thus defining the formation of the train section.
        Otherwise the train is either imported or modified (if it is found in the datasource).
* Application logic may define requirements for the fulfillment relation  between operational and commercial formations and itineraries.
    The [operational train parts are imported|#Import operational train parts] and assigned to the train according to the position in the train part sequence.  


    Postcondition:*
*Execution:*
    operational trains have been imported or deleted.  
* The import identifies with the operational train by trainId and validity.
* The status (deleted, modified) defines the operation which will be executed during the import:
** If the train is marked as deleted and the train is found in the datasource, the train will be deleted. But only for the validity defined in the railml-source. (e.g. Train in datasource is defined Mo-Fr, railml-source defined deletion for Mo-Do. So after the import the train should still exist on Fr, but not on Mo-Do.)
** Otherwise the train is either imported or modified (if it is found in the datasource).
* The [operational train parts are imported|#Import operational train parts] and assigned to the train according to the position in the train part sequence.


[Bearbeiten] Import operational train parts
*Postcondition:*
* operational trains have been imported or deleted.


    Precondition:*
===== Import operational train parts =====
    The import identifies with the train part by id and validity.
    The category references information on traintype and usage
    operational trainpart may be supervalid to the operational train
    operational trainpart must not be subvalid to the operational train  


*Precondition:*
* The import identifies with the train part by id and validity.
* The category references information on traintype and usage
* operational trainpart may be supervalid to the operational train
* operational trainpart must not be subvalid to the operational train


    Execution:*
    The status (deleted, modified) defines the operation which will be executed during the import.
        If the train part is marked as deleted and the train part is found in the datasource, the train part will be deleted for the intersection of the validity of the existing train part and the validity defined in the RailMl-source.
        If the train is defined as modified and not found in the datasource. The train part will be created and the validity will be the validity of the newly created object.
        If the train is defined as modified and found in the datasource, the train part will be modified respecting the validity defined in the RailMl-source.
    The itinerary is imported and assigned to the train part.
    Categories are imported if missing


    Postcondition:*
*Execution:*
    operational train parts have been imported  
* The status (deleted, modified) defines the operation which will be executed during the import.
** If the train part is marked as deleted and the train part is found in the datasource, the train part will be deleted for the intersection of the validity of the existing train part and the validity defined in the RailMl-source.
** If the train is defined as modified and not found in the datasource. The train part will be created and the validity will be the validity of the newly created object.
** If the train is defined as modified and found in the datasource, the train part will be modified respecting the validity defined in the RailMl-source.
* The itinerary is imported and assigned to the train part.
* Categories are imported if missing


*Postcondition:*
* operational train parts have been imported


[Bearbeiten] Import itineraries


    Precondition:*
===== Import itineraries =====


*Precondition:*
Following attributes are mandatory for itinerary stops:
Following attributes are mandatory for itinerary stops:
* Reference to stop
* Reference to track which is used as "station track"
* The itinerary stops must be well ordered
* Arrival and departure time must be specified
* The track section must be specified for position of vehicles in formation
* Type of stop must bespecified:
** stop
** pass
* Reference to next track must be specified
* The itinerary data must be valid. There should not be any spacial interruptions or the sequence of times along the path should not be contradictory
* The positions of the operational trains in train part sequence must be consistent to the change of directions in the infrastructure


    Reference to stop
*Execution:*
    Reference to track which is used as "station track"
* Itinerary stops are imported: So the shunting time, waiting time is set. The platform infromation is referenced to an already imported track and/or track section.
    The itinerary stops must be well ordered
* Itinerary legs are imported: So the runtime is set and the track wich is used is referenced.
    Arrival and departure time must be specified
    The track section must be specified for position of vehicles in formation
    Type of stop must bespecified:
        stop
        pass
    Reference to next track must be specified
    The itinerary data must be valid. There should not be any spacial interruptions or the sequence of times along the path should not be contradictory
    The positions of the operational trains in train part sequence must be consistent to the change of directions in the infrastructure
 
    Execution:*
    Itinerary stops are imported: So the shunting time, waiting time is set. The platform infromation is referenced to an already imported track and/or track section.
    Itinerary legs are imported: So the runtime is set and the track wich is used is referenced.  


    Postcondition:*
*Postcondition:*
    itinerary stops and legs have been imported
* itinerary stops and legs have been imported
    imported itineraries are consistent  
* imported itineraries are consistent


[Bearbeiten] Import vehicle workings
===== Import vehicle workings =====


    Vehicle workings may be imported if there is a pre-planning that is to be completed.  
* Vehicle workings may be imported if there is a pre-planning that is to be completed.  


    Precondition:*
*Precondition:*
    Concatenation of operating trains to vehicle workings that are served by the same (abstract) vehicle
* Concatenation of operating trains to vehicle workings that are served by the same (abstract) vehicle
    Shunting trips within Vorlage:Ocps (referencing microscopic infrastructure)
* Shunting trips within {{ocp}}s (referencing microscopic infrastructure)
    Non-revenue trains implementing operational needs
* Non-revenue trains implementing operational needs
    Maintenance blocks for abstract vehicles
* Maintenance blocks for abstract vehicles
    Vehicle workings reference a validity
* Vehicle workings reference a validity
    Vehicle workings must be subvalid to the validity of operational trains  
* Vehicle workings must be subvalid to the validity of operational trains




    Execution:*
*Execution:*
    Vehicle workings are identified by name and validity
* Vehicle workings are identified by name and validity  
    The status (deleted, modified) defines the operation which will be executed during the import.
* The status (deleted, modified) defines the operation which will be executed during the import.
        If the vehicle working is marked as deleted and the vehicle working is found in the datasource, the vehicle working will be deleted for the intersection of the validity of the existing vbehicle working and the validity defined in the RailMl-source.
** If the vehicle working is marked as deleted and the vehicle working is found in the datasource, the vehicle working will be deleted for the intersection of the validity of the existing vbehicle working and the validity defined in the RailMl-source.
        If the vehicle working is defined as modified and not found in the datasource. The vehicle working will be created and the validity will be the validity of the newly created object.
** If the vehicle working is defined as modified and not found in the datasource. The vehicle working will be created and the validity will be the validity of the newly created object.
        If the vehicle working is defined as modified and found in the datasource, the vehicle working will be modified respecting the validity defined in the RailMl-source.  
** If the vehicle working is defined as modified and found in the datasource, the vehicle working will be modified respecting the validity defined in the RailMl-source.
    All parts of the vehicle working are imported
* All parts of the vehicle working are imported
        operational train parts are assigned to vehicle working parts
** operational train parts are assigned to vehicle working parts
            The vehicle orientation is calculated depending on the position of the vehicle in the trainpart sequence and the change of direction information in the infrastructure data  
*** The vehicle orientation is calculated depending on the position of the vehicle in the trainpart sequence and the change of direction information in the infrastructure data
        Shunting trips are imported and assigned a vehicle working part
** Shunting trips are imported and assigned a vehicle working part
        Maintenance blocks are imported and assigned a vehicle working part  
** Maintenance blocks are imported and assigned a vehicle working part


    Postcondition:*
*Postcondition:*
    Vehicle workings and all it's parts have been imported.  
* Vehicle workings and all it's parts have been imported.


[Bearbeiten] Import rosterings
===== Import rosterings =====


Rosterings may be imported if there is a pre-planning that is to be completed.
Rosterings may be imported if there is a pre-planning that is to be completed.


The following data could be imported:
The following data could be imported:
* Assignment of a rostering plan to a depot
* Concatenation of vehicle workings to multi-day sequences of trains served by the same (abstract) vehicle
* depot runs
* vehicle standbys
* vehicle accounting for maintanance intervals


    Assignment of a rostering plan to a depot
== Adopt vehicle working scheduling to timetable changes ==
    Concatenation of vehicle workings to multi-day sequences of trains served by the same (abstract) vehicle
    depot runs
    vehicle standbys
    vehicle accounting for maintanance intervals


[Bearbeiten] Adopt vehicle working scheduling to timetable changes
=== Description ===
[Bearbeiten] Description


The importing system holds timetable and vehicle working data. A change in the timetable shall be imported.
The importing system holds timetable and vehicle working data. A change in the timetable shall be imported.
[Bearbeiten] Data Flows and Interfaces
 
=== Data Flows and Interfaces ===


The import may be performed manually via a file based interface, or online via a message (SOAP) based interface.
The import may be performed manually via a file based interface, or online via a message (SOAP) based interface.
[Bearbeiten] Interference with other railML® schemas


    Common
=== Interference with other railML® schemas ===
    Infrastructure
 
    Rolling stock  
* Common
* Infrastructure
* Rolling stock
 
=== Characterizing Data ===


[Bearbeiten] Characterizing Data
==== How often do the data change (update)? ====
[Bearbeiten] How often do the data change (update)?


could be daily
could be daily
[Bearbeiten] How big are the data fragments to be exchanged (complexity)?


    small (single train run)  
==== How big are the data fragments to be exchanged (complexity)? ====
 
* small (single train run)


[Bearbeiten] Which views are represented by the data (focus)?
==== Which views are represented by the data (focus)? ====


any
any
[Bearbeiten] Which specific timetable data do you expect to receive/send (elements)?
 
==== Which specific timetable data do you expect to receive/send (elements)? ====


see _Import complete timetable for vehicle working scheduling_
see _Import complete timetable for vehicle working scheduling_
Line 299: Line 307:




[Bearbeiten] Change train data (commercial or operational) in a given validity
===== Change train data (commercial or operational) in a given validity =====


    Precondition:*
*Precondition:*
    Import data contains commercial train information with valid id and validity.
* Import data contains commercial train information with valid id and validity.
    System holds data on a train with this id, and the validity of the train covers the validity change request.  
* System holds data on a train with this id, and the validity of the train covers the validity change request.


    Execution*
*Execution*
    The system splits the train into one with validity of the change request, and one with the remaining validity.
* The system splits the train into one with validity of the change request, and one with the remaining validity.
    The changes are applied to the first train, according to the usecase in _Import complete timetable for vehicle working scheduling_.  
* The changes are applied to the first train, according to the usecase in _Import complete timetable for vehicle working scheduling_.


    Postcondition*
*Postcondition*
    The train is changed within the validity of the change request, and unchanged outside.  
* The train is changed within the validity of the change request, and unchanged outside.




[Bearbeiten] Change validity of a train
===== Change validity of a train =====


    Precondition:*
*Precondition:*
    Import data contains commercial train information with valid id and validity.
* Import data contains commercial train information with valid id and validity.
    System holds data on a train with this id  
* System holds data on a train with this id


    Execution*
*Execution*
    The validity of the train is changed.
* The validity of the train is changed.

Revision as of 17:35, 21 May 2015

Import complete timetable for vehicle working scheduling and vehicle workings

Description

A complete timetable shall be imported, serving as base for vehicle working scheduling. The infrastructure data is already present in the importing system. Timetable data includes

  • base data of trains (train numbers, train category, train line, operators, concessionairs, subcontractors etc)
  • traffic periods, including weekdays, holidays, seasonal variation etc
  • itineraries, arrival and departure times
  • platform assignments
  • track occupancies
  • formations, including coupling and branching of trains

Optionally, vehicle working data may be imported that may serve as a planning base.


Data Flows and Interfaces

Typically, the import is done manually using a file based interface.

Interference with other railML® schemas

  • Common
  • Infrastructure: the import uses elements from mesoscopic and macroscopic perspective
  • Rolling stock


Characterizing Data

How often do the data change (update)?

static

How big are the data fragments to be exchanged (complexity)?

  • whole data set, or region

Which views are represented by the data (focus)?

  • mid term

Which specific timetable data do you expect to receive/send (elements)?

The process covers following steps:

  1. Determine Validities
  2. Import the traffic network data and routing
  3. Import rollingstock data
  4. Import itineraries
  5. Import track occupancies
  6. Import train parts
  7. Import trains
  8. Import vehicle workings
  9. Import rosterings


Determine validities
  • Precondition:*

The validities may be calendar based or abstract operating days and operating periods:

  • Calendar based: It should be possible to define different calendars. These calendars should be identified by a name attribute. The calendar based validity is defined considering a calendar, a start date and a bitmask. The bitmask defines the instants where the validity takes effect in respect to the calendar and the start date.
    • Required: the "calendar day to validity"-mapping is consistent and complete.
  • Abstract validities are defined by name in respect to the timetable version
  • A period based abstract validity (e.g., a weekly template) is defined by abstract validity and a bitset. The bitset marks when the validity is repeated in the sequence of validities.
  • Execution:*
  • Calendar based validities are imported with the help of a "calendar day to validity"-mapping.
  • Abstract are searched by name within the timetable version. If the validity is not found a new validity is created.
  • For period based abstract validities, the application logic defines the import process.
  • Postcondition:*
  • All validity descriptions have been mapped to validities in the business model.

_The current validity model covers all usecases. We recommend refactoring and introducing different subtypes for every usecase._


Import traffic network and routing data
  • Precondition:*
  • Stops have a name attribute, and a reference to a validity
  • Stations have a name, a timezone attribute and a reference to a validity.
  • Tracks have a name and a validity
  • Track section have an name
  • This should be used for track closures, or when a stops or stations are temporarily not serviced. For further versions of the schema the validity may be extended to a daytime validity. An application of this feature is e.g. night driving prohibition on certain tracks and stops.
  • Stations have a name and a timezone
  • Track sections may be used to define on which platform section a vehicle is positioned.

On tracks the change of direction are attributed.

  • Execution:*
  • Stops are searched by their name in the datasource. If the stop does not exist, it is created and the validity of the stop is assigned. If the stop already exists the validity is applied to the stop and attributes are changed.
  • Stations are searched by their name in the datasource. If the station does not exist it is created and the validity is assigned to the station. If the station already exists the validity is applied to the station and attributes are changed.
  • Tracks are searched by their name in the datasource. If the track does not exist it is created and the validity is assigned to the track. If the station already exists the validity is applied to the track and the change of direction and other attributes are changed.
  • Track sections are imported.
  • Routes are searched by name in the datasource. If the route does note exist it is created. If the route already exists the attributes are changed.
  • Postcondition:*
  • Stops have been imported.
  • Stations have been imported.
  • Tracks have been imported.
  • Routes have been imported.



Import rollingstock data
  • Precondition:*
  • The formation information has following informations:
    • validity reference \[optional\]: to set a formation outdated during a timetable period
    • length
    • weight
    • speed
    • traction
    • seating capacity
    • standing capacity
    • additional services (buffet, wlan, etc.)
  • Execution:*
  • The formation is searched by name in the datasource.
    • If the formation is found it is modified according to attributes. If the validity is set, it is applied to the formation.
    • Otherwise the formation is created with the specified attributes and the validity is assigned if the attribute was set in the input data.
  • Postcondition:*
  • Formations have been imported.


Import train
  • Execution:*
  • Imports [commercial trains|#Import Commercial Train].
  • Imports [operational trains|#Import Operational Train].
Import commercial train
  • Precondition:*
  • The commercial train consists of an unique id, and a validity reference.
  • The commercial train references an itinerary, which defines the requirements of the itinerary for the commercial train.
  • The commercial train references a formation. The formation may vary on sections of the itinerary. This formation defines the requirements, which must be fulfilled by the operational trains.
  • The commercial train may define connection requirements.
    • Connections define connecting constraints to other commercial trains for a certain stop in the itinerary.
    • Connections have following attributes:
      • a reference to a validity
      • a reference to an itinerary stop of the current train
      • a reference to a another commercial train (need not be in the be in railML-source)
      • a reference to a stop (connection point of other train)
      • a minimum connection time point: the time the train waits at least
      • a maximum connection time point: the time the train waits at most
      • a flag if the connection is guaranteed
      • a flag if the connection meets at same platform
      • a connection direction: both, outgoing, incomming


  • Execution:*
  • The import identifies with the commercial train by id and validity.
  • The status (deleted, modified) defines the operation which will be executed during the import.
    • If the train is marked as deleted and the train is found in the datasource, the train will be deleted for the validity, it has been defined (e.g. Train in datasource is defined Mo-Fr, railml-source defined deletion for Mo-Do. So after the import the train should still exist on Fr, but not on Mo-Do). For deletion only the id attribute and validity reference are mandatory.
    • If the train is marked as modified, it may either be created or modified - if found in the datasource. For creation or modification of a train the id attribute, the validity reference, the formation and the commercial train itinerary are mandatory.
  • The [commercial itinerary is imported|#Import itineraries] and assigned to the commercial train.
  • The formation is assined to the commercial train
  • Postcondition:*
      • commercial trains have been imported or deleted.


Import operational train
  • Precondition:*
  • An operational train consists of an unique id, and a validity reference.
  • An operational train may implement a commercial train or an itinerary section of it.
    • Therefore the operational train has validity disjunct references to a section of the commercial itinerary. The operational train consists of subsequent sections with several trainparts with their positions, thus defining the formation of the train section.
  • Application logic may define requirements for the fulfillment relation between operational and commercial formations and itineraries.
  • Execution:*
  • The import identifies with the operational train by trainId and validity.
  • The status (deleted, modified) defines the operation which will be executed during the import:
    • If the train is marked as deleted and the train is found in the datasource, the train will be deleted. But only for the validity defined in the railml-source. (e.g. Train in datasource is defined Mo-Fr, railml-source defined deletion for Mo-Do. So after the import the train should still exist on Fr, but not on Mo-Do.)
    • Otherwise the train is either imported or modified (if it is found in the datasource).
  • The [operational train parts are imported|#Import operational train parts] and assigned to the train according to the position in the train part sequence.
  • Postcondition:*
  • operational trains have been imported or deleted.
Import operational train parts
  • Precondition:*
  • The import identifies with the train part by id and validity.
  • The category references information on traintype and usage
  • operational trainpart may be supervalid to the operational train
  • operational trainpart must not be subvalid to the operational train


  • Execution:*
  • The status (deleted, modified) defines the operation which will be executed during the import.
    • If the train part is marked as deleted and the train part is found in the datasource, the train part will be deleted for the intersection of the validity of the existing train part and the validity defined in the RailMl-source.
    • If the train is defined as modified and not found in the datasource. The train part will be created and the validity will be the validity of the newly created object.
    • If the train is defined as modified and found in the datasource, the train part will be modified respecting the validity defined in the RailMl-source.
  • The itinerary is imported and assigned to the train part.
  • Categories are imported if missing
  • Postcondition:*
  • operational train parts have been imported


Import itineraries
  • Precondition:*

Following attributes are mandatory for itinerary stops:

  • Reference to stop
  • Reference to track which is used as "station track"
  • The itinerary stops must be well ordered
  • Arrival and departure time must be specified
  • The track section must be specified for position of vehicles in formation
  • Type of stop must bespecified:
    • stop
    • pass
  • Reference to next track must be specified
  • The itinerary data must be valid. There should not be any spacial interruptions or the sequence of times along the path should not be contradictory
  • The positions of the operational trains in train part sequence must be consistent to the change of directions in the infrastructure
  • Execution:*
  • Itinerary stops are imported: So the shunting time, waiting time is set. The platform infromation is referenced to an already imported track and/or track section.
  • Itinerary legs are imported: So the runtime is set and the track wich is used is referenced.
  • Postcondition:*
  • itinerary stops and legs have been imported
  • imported itineraries are consistent
Import vehicle workings
  • Vehicle workings may be imported if there is a pre-planning that is to be completed.
  • Precondition:*
  • Concatenation of operating trains to vehicle workings that are served by the same (abstract) vehicle
  • Shunting trips within Template:Ocps (referencing microscopic infrastructure)
  • Non-revenue trains implementing operational needs
  • Maintenance blocks for abstract vehicles
  • Vehicle workings reference a validity
  • Vehicle workings must be subvalid to the validity of operational trains


  • Execution:*
  • Vehicle workings are identified by name and validity
  • The status (deleted, modified) defines the operation which will be executed during the import.
    • If the vehicle working is marked as deleted and the vehicle working is found in the datasource, the vehicle working will be deleted for the intersection of the validity of the existing vbehicle working and the validity defined in the RailMl-source.
    • If the vehicle working is defined as modified and not found in the datasource. The vehicle working will be created and the validity will be the validity of the newly created object.
    • If the vehicle working is defined as modified and found in the datasource, the vehicle working will be modified respecting the validity defined in the RailMl-source.
  • All parts of the vehicle working are imported
    • operational train parts are assigned to vehicle working parts
      • The vehicle orientation is calculated depending on the position of the vehicle in the trainpart sequence and the change of direction information in the infrastructure data
    • Shunting trips are imported and assigned a vehicle working part
    • Maintenance blocks are imported and assigned a vehicle working part
  • Postcondition:*
  • Vehicle workings and all it's parts have been imported.
Import rosterings

Rosterings may be imported if there is a pre-planning that is to be completed.

The following data could be imported:

  • Assignment of a rostering plan to a depot
  • Concatenation of vehicle workings to multi-day sequences of trains served by the same (abstract) vehicle
  • depot runs
  • vehicle standbys
  • vehicle accounting for maintanance intervals

Adopt vehicle working scheduling to timetable changes

Description

The importing system holds timetable and vehicle working data. A change in the timetable shall be imported.

Data Flows and Interfaces

The import may be performed manually via a file based interface, or online via a message (SOAP) based interface.

Interference with other railML® schemas

  • Common
  • Infrastructure
  • Rolling stock

Characterizing Data

How often do the data change (update)?

could be daily

How big are the data fragments to be exchanged (complexity)?

  • small (single train run)

Which views are represented by the data (focus)?

any

Which specific timetable data do you expect to receive/send (elements)?

see _Import complete timetable for vehicle working scheduling_

We describe different subtypes of the _adopt to timetable changes_ usecase.


Change train data (commercial or operational) in a given validity
  • Precondition:*
  • Import data contains commercial train information with valid id and validity.
  • System holds data on a train with this id, and the validity of the train covers the validity change request.
  • Execution*
  • The system splits the train into one with validity of the change request, and one with the remaining validity.
  • The changes are applied to the first train, according to the usecase in _Import complete timetable for vehicle working scheduling_.
  • Postcondition*
  • The train is changed within the validity of the change request, and unchanged outside.


Change validity of a train
  • Precondition:*
  • Import data contains commercial train information with valid id and validity.
  • System holds data on a train with this id
  • Execution*
  • The validity of the train is changed.