Profil d’échange pour la description des informations temps-réel des réseaux de transport en commun
SIRI - Profil Français v1.7
BNTRA-CN03-GT7_NF Profil SIRI FR_v1.7 20230727
Avant-propos
Ce document présente de façon détaillée le profil SIRI National France (également appelé « local agreement SIRI France »), soit la déclinaison de la norme SIRI aux besoins métiers français. Il contient tous les éléments nécessaires à sa compréhension, mais ne propose ni une réécriture ni une traduction de l’ensemble des documents normatifs SIRI :
- Le lecteur devra donc se référer à la norme quand cela sera nécessaire, en particulier au niveau technique avant d’envisager toute implémentation de SIRI.
D’autre part, l’ensemble de la terminologie utilisée dans ce document est celle de SIRI, et par voie de conséquence de TRANSMODEL version 6.0.
- Le lecteur est donc invité à se référer au document TRANSMODEL pour de plus amples précisions sur la terminologie, les concepts ou modèles de données sous-jacents.
Plus généralement, les notions manipulées dans ce document sont décrites par l’ensemble de documents normatifs suivants :
SIRI : Service Interface for Real-time Information relating to public transport operations (NF EN 15531- 1 à 3 et CEN/TS 15531-4 et 5)
Partie 1: Context and framework
Partie 2: Communications infrastructure
Partie 3: Functional service interfaces
Partie 4: Functional service interfaces - Facility Management
Partie 5: Functional service interfaces - Situation Exchange
TRANSMODEL : NF EN 12896, Transmodel (version 6.0), Reference Data Model for Public Transport et Transmodel in UML (projet SITP 2,version 0.1 04/09/2003)
NEPTUNE : Projet de norme AFNOR - PR NF P99-506 Décembre 2009
Dans le document, les règles propres au profil sont présentées sur fond gris. Les autres règles ont plus un rôle d’explication, d’accompagnement ou de recommandation.
Ce document est structuré en quatre parties :
Partie 1 : Contexte
Cette partie présente la démarche de construction du profil SIRIFrance, les cas d’utilisation constatés ou présentés à titre d’exemple, et la liste des services SIRI retenus, en se basant sur ces cas d’utilisation.
Partie 2 : Présentation des concepts fondamentaux du Profil
Cette partie présente les particularités et les options du profil SIRI France : concepts fondamentaux, modélisation de cas spécifiques, référentiels de données, et modalités techniques d’échange.
Partie 3 : Description du profil d’échange
Cette partie décrit les conventions et les règles utilisées pour la rédaction de ce profil.
Partie 4 : Description détaillée des messages
Cette partie présente le format des messages SIRI et les choix effectués dans le contexte national français (utilisation ou non des champs, cardinalités, …). Elle constitue à ce titre une description technique et essentiellement un cadre fonctionnel à destination des développeurs et intégrateurs.
Le lecteur dispose en annexe au présent document d’un glossaire composé des définitions et autres acronymes.
A noter : les extraits de normes figurant dans cet ouvrage sont reproduits avec l’accord de l’AFNOR. Seul le texte original et complet de la norme telle que diffusée par l’AFNOR – accessible via le site Internet www.afnor. org – possède une valeur normative.
Introduction
La norme SIRI (Service Interface for Real time Information) définit le protocole d’échange de l’information Temps Réel pour les transports collectifs (format XML). SIRI se base sur le modèle de données de référence du transport public : TRANSMODEL. SIRI a été élaborée avec la participation initiale de la France, l’Allemagne, la Norvège et le Royaume-Uni.
Le groupe de travail français, CN03/GT7 (miroir du groupe européen CEN TC278 / WG3 / SG7) a adopté le format d’échanges NEPTUNE (sous-ensemble, ou profil, du format TRIDENT issu d’un projet Européen) comme base pour les échanges de données de transport en commun. Le standard NEPTUNE, aborde essentiellement les aspects référentiels des données échangées. Il est normalisé à l’AFNOR sous la référence PR NF P99-506.
Afin de fournir aux transporteurs et aux industriels un cadre normalisé pour l’échange de données concernant l’information temps réel, le CEN TC278 / WG3 / SG7 a décidé de lancer le projet SIRI (Service Interface for Realtime Information) dès 2004.
Aujourd’hui, la norme SIRI version 2.1 peut servir de base à toute implémentation des échanges de données temps réel, elle assure une compatibilité ascendante avec la version 1.0 qu’elle précise et lui ajoute quelques fonctions et attributs issus des retours d’expérience de mise en œuvre de la version 1.0.
Le présent document contient le profil d’utilisation de cette spécification technique dans un contexte national français.
Il est complété par un ensemble de documents d’accompagnement : se reporter au paragraphe Documents d’accompagnement du présent document.
Domaine d’application
Le profil, objet du present document, s’applique à la spécification technique SIRI (documents [R5] à [R9] §2). Les objectifs de ce profil sont rappelés dans la suite de ce paragraphe.
Profils
La mise en place d’un profil normatif répond au constat suivant :
- Les normes sont par nature et définition des documents consensuels, en particulier pour les documents de normalisations publiés par le CEN, définis dans un contexte international. Dans le cas des normes du CEN/TC 278/WG03, cela signifie que d’une part elles prennent en compte de très nombreux besoins car elles ont été établies à un niveau européen, et d’autre part elles n’imposent pas une implémentation exhaustive immédiate, mais permettent une implémentation progressive et qui peut être limitée à un besoin bien identifié.
Ces normes prennent en compte des besoins d’implémentation qui vont au-delà des besoins nationaux.
La contrepartie de cette ouverture est que l’on peut facilement aboutir à des systèmes SIRI incompatibles alors même qu’ils respectent la norme : par exemple, pour peu qu’ils n’implémentent pas les mêmes services.
Les documents normatifs sont bien souvent très détaillés et volumineux, rendant leur consultation et lecture difficiles.
Des éléments proposés par la norme sont optionnels, lors de l’implémentation d’une application conforme à la norme il doit être décidé s’ils sont ou non utilisés.
Les spécifications techniques SIRI sont issues de ces processus de normalisation internationaux et intègrent des mécanismes répondant à des besoins Allemands ou Suisse par exemple y sont aussi intégrés des mécanismes pour faciliter la compatibilité avec le projet de norme française NEPTUNE, britannique TransXChange, NOPTIS suédoise, …
La norme SIRI recommande donc l’établissement d’un « Local Agreement » ou profil SIRI, qui permettra de contraindre et restreindre son implémentation dans le cadre d’un échange donné – ici, dans le cas présent, au niveau national français.
De plus, la norme SIRI fournit un guide pour l’établissement de ce profil.
Qualité et Cohérence des données
Un des objectifs du profil est de simplifier et d’améliorer l’interopérabilité. L’interopérabilité ne peut être atteinte uniquement sur la base de la conformité au profil sans s’assurer de la qualité des données véhiculées : cohérence des données, conforme au format et decrivant la réalité.
En conséquence le profil doit être accompagné d’un ensemble de règles de cohérence et de qualité spécifiquement conçues pour la mise en œuvre du profil SIRI. Le respect des règles ne garantie cependant pas à 100% la qualité d’un jeu de données mais va permettre de minimiser les problèmes de cohérence.
Références Normatives
Les documents de référence suivants sont indispensables pour l’application du présent document. Pour les références datées, seule l’édition citée s’applique. Pour les références non datées, la dernière édition du document de référence s’applique (y compris les éventuels amendements).
[R1] NF EN 12896 Public Transport Reference Data Model Partie 1 à Partie 4
Partie 1 : Common Concepts (corresponds to NeTEx Part 1 -Framework)
Partie 2: Public Transport Network Topology (corresponds to NeTEx Part 1- Topology)
Partie 3 : Timing Information and Vehicle Scheduling (corresponds to NeTEx Part 2)
[R2] CEN/TS 16614-1 Network and Timetable Exchange (NeTEx) - Network description
[R3] CEN/TS 16614-2 Network and Timetable Exchange (NeTEx) - Timing information
[R4] CEN/TS 16614-3 Network and Timetable Exchange (NeTEx) - Fare description
[R5] EN 15531-1, Public transport - Service interface for real-time information relating to public transport operations - Part 1: Context and framework
[R6] EN 15531-2, Public transport - Service interface for real-time information relating to public transport operations - Part 2: Communications infrastructure
[R7] EN 15531-3, Public transport - Service interface for real-time information relating to public transport operations - Part 3: Functional service interfaces
[R8] CEN/TS 15531-4, Public transport - Service interface for real-time information relating to public transport operations - Part 4: Functional service interfaces: Facility Monitoring
[R9] CEN/TS 15531-5, Public transport - Service interface for real-time information relating to public transport operations - Part 5: Functional service interfaces - Situation Exchange
[R10] XSD SIRI 2.1
Autres documents
[R11] T1 Éléments communs aux profils d’échange pour les informations planifiées du transport en commun
[R11.1] T2 NeTEx - Profil Français de NETEx: éléments communs,
[R11.2] T2 NeTEx - Profil Français pour les Arrêts,
[R11.3] T2 NeTEx - Profil Français pour les horaires,
[R11.4] T2 NeTEx - Profil Français pour les réseaux.
Termes et définitions
Cas général
Dans le cadre de ce document, les termes et definitions applicables sont ceux définis dans le document CEN/EN 15531-1:2021 [R5].
Définition d’un point d’arrêt
La notion de point d’arrêt utilisée dans le cadre du présent profil fait référence aux concepts Transmodel [R1] suivants :
Point d’arrêt logique,
Point d’arrêt planifié (SCHEDULE STOP POINT),
Point d’arrêt physique,
Zone d’embarquement (QUAY),
Lieu d’arrêt monomodal (STOP PLACE),
Pole Monomodal (STOP PLACE).
DEF.1 | Chacun de ces points d’arrêt doit disposer d’un identifiant spécifique indépendamment de son type. |
---|
Le point d’arrêt physique peut être ou non rattaché à un point d’arrêt logique, selon les implémentations, par l’intermédiaire d’une affectation (STOP ASSIGNMENT). La figure ci-après illustre ces relations (Profil NeTEx France [R11.4]).
Définitions de « Départ » et « Arrivée »
D’un point de vue fonctionnel les notions d’arrivée et de départ sont définies ci-dessous. Ces notions osnt utilisés par plusieurs services SIRI (ET, SM) pour échanger des heures d’arrivée et de départ, estimées ou échues.
Arrivée
Une arrivée correspond à un événement permettant au premier passager d’être en mesure de débarquer à un endroit particulier (par rapport au trajet et à l’arrêt donnés). En règle générale, il s’agit du moment où les portes du véhicule sont (ou pourraient être) ouvertes pour la première fois après leur deverrouillage. Peu importe que les passagers montent ou descendent effectivement à l’arrêt ou que les portes aient été ouvertes en premier lieu.
Départ
Un départ correspond à un événement permettant au dernier passager d’être en mesure d’embarquer à un endroit particulier (par rapport au trajet et à l’arrêt donnés). En règle générale, il s’agit du moment où les portes du véhicule sont (ou pourraient être) fermées pour la dernière fois avant l’enclenchement de la serrure.
Dans certains cas, la condition d’ouverture ou de fermeture d’une porte n’est pas satisfaite et donc un événement tel que défini ci-dessus ne peut pas être enregistré avec précision :
• Un véhicule passe par un arrêt sans réellement s’arrêter ou ne s’arrête que brièvement sans ouvrir ses portes, par exemple, dans le cas où l’arrêt était facultatif et que personne ne l’a demandé. Dans un tel cas, l’événement d’arrivée et de départ sont tous deux enregistrés en même temps lorsque le véhicule passe la position d’arrêt.
• Un événement d’arrivée à un arrêt où il est interdit de descendre est enregistré soit au moment où la serrure est déverrouillée pour la première fois, lorsque le véhicule s’arrête (si la serrure n’a jamais été déverrouillée) ou lorsque le véhicule passe la position d’arrêt (si le véhicule ne s’arrête pas réellement).
• Un événement de départ à un arrêt où l’embarquement est interdit est soit enregistré au moment où la serrure est enclenchée pour la dernière fois, lorsque le véhicule commence à rouler (si la serrure n’a jamais été déverrouillée) ou lorsque le véhicule franchit l’arrêt position (si le véhicule ne s’arrête pas réellement).
Définition de la structure LEADER
La description des services SIRI fait référence à une structure LEADER.
LEADER | ::: | 1:1 | xxxDelivery | voir xxxDelivery. |
---|
Le Leader est (indirectement) défini dans la spécification SIRI [R6] par les attributs suivants :
xxxDelivery | +Structure | Réponse pour le service xxx. |
---|
Log | ResponseTimestamp | 1:1 | xsd:dateTime | Heure de creation de la response. |
---|---|---|---|---|
Endpoint properties | RequestMessageRef | 0:1 | ➞ MessageQualifier | Pour les requêtes directes, identifiant de la requête origine de la réponse. |
SubscriberRef | 0:1 | ➞ ParticipantCode | Obligatoire si la réponse concerne un Abonnement, Identfiant de l’abonné. | |
SubscriptionFilterRef | 0:1 | ➞ SubcriptionFilterCode | Identifiant unique du filtre d'abonnement auquel cet abonnement est affecté. S'il n'y a qu'un seul filtre, alors ce champ peut être omis. | |
SubscriptionRef | 1:1 | ➞ SubscriptionQualifier | Obligatoire si la réponse concerne un Abonnement. Identifiant de l'Abonnement émis par le Demandeur. | |
Status | Status | 0:1 | xsd:boolean | Indique si la demande complète a pu être traitée avec succès ou non. La valeur par défaut est true. Si l'une des demandes individuelles de la diffusion a échoué, doit être à "false". |
ErrorCondition | 0:1 | +Structure | Description de toute condition d'erreur ou de warning qui s'applique à la demande ou à la réponse. | |
➞ choix | -1:1 | Un des codes erreurs suivants. | ||
a) CapabilityNotSupportedError | 0:1 | + Error | Erreur : fonctionnalité non prise en charge. | |
b) AccessNotAllowedError | 0:1 | +Error | Erreur : le demandeur n'est pas autorisé à accéder au service ou aux données demandés. | |
c) NoInfoForTopicError | 0:1 | +Error | Erreur : une demande valide a été effectuée, mais le service ne contient aucune donnée pour l'expression de rubrique demandée. | |
d) AllowedResourceUsageExceededError | 0:1 | +Error | Erreur : une demande valide a été effectuée, mais la demande dépasserait l'utilisation autorisée des ressources du client. | |
e) OtherError | 0:1 | +Error | Erreur autre | |
➞ Description | 0:1 | ➞ ErrorDescription | Description de l’erreur. | |
ValidUntil | 0:1 | xsd:dateTime | Limite de validité des données. | |
ShortestPossibleCycle | 0:1 | PositiveDurationType | Intervalle minimum auquel les mises à jour peuvent être envoyées. | |
DefaultLanguage | 0:1 | Xsd:language | Langue par défaut des éléments de texte. |
Référentiel théorique
Le référentiel théorique est l’objet d’un accord entre les parties.
Il repose sur des échanges :
non définis par le présent profil (NeTEx par exemple),
ou à base de service Discovery (cf paragraphe 5.6).
Description du profil d’échange
Règles de gestion du profil
Le present profil contient un ensemble de règles de gestion applicables. Ces règles de gestion sont présentées sous forme tabulaire et numérotées.
Numéro | Intitulé de la règle |
---|
Des textes explicatifs viennent compléter les règles d’application du profil FR.
Conventions & Représention des messages
Les messages constituant ce profil d’échange sont décrits en adoptant un formalisme tabulaire. Les tableaux proposent ces colonnes:
Classification | Nom de l’élement | Min : Max | Type de données | Description |
---|
La structure des tableaux présentée ici est exactement la même que celle des tableaux des documents SIRI de référence ceci afin de simplifier le passage d’un document à l’autre.
Les tableaux sont simplement complétés et enrichis des informations propres au profil SIRI France.
Une description détaillée de la structure de ces tableaux est présentée dans le document « SIRI- partie 1 - 4.3-Notation pour les structures de modélisation XML des messages SIRI ».
Pour mémoire les principaux éléments présentés sont les suivants :
Dans la documentation SIRI, les structures sont présentées sous forme tabulaire. L’en-tête des colonnes est supposé connu et n’est donc pas systématiquement répété.
Les tableaux utilisent un ensemble de conventions pour les éléments XML et leurs contraintes.
Les éléments constitutifs de ces tableaux sont présentés ci-dessous.
Classification (Organisational Group label)
Cette première colonne précise la catégorie de l’élément, par exemple ‘Payload’ (qui se traduit littéralement par « charge utile », et correspond à la description de l’objet lui-même indépendamment de toute donnée d’accompagnement, et autres en-têtes).
Par exemple :
Attributes,
Log,
Endpoint,
Status,
Payload.
Nom de l’élément (Element Name)
Cet élément correspond naturellement au nom de l’élément présenté. Si l’élément appartient à une structure complexe, le nom de l’élément père (ou racine) est présenté en haut du tableau.
La notation « :: » fait référence à un groupe d’éléments défini à un autre endroit du document (la colonne Type de Données permettra de retrouver cette définition).
Dans les cas d’éléments composés, une indication « voir ci-dessous » figure dans la colonne type et les sous-éléments sont présentés en dessous avec une indentation (c’est le cas de ErrorCondition cf 3.2.5).
Cardinalité et choix (Multiplicity & Choice (Min:Max))
Cette colonne précise la cardinalité de l’élément sous la forme :
[nombre minimal d’occurrences]:[nombre maximal d’occurrences],
Un nombre d’occurrence valant « * » signifie « nombre illimité ».
Si cet indicateur est préfixé d’un tiret (par exemple « –1:1 ») cela signifie qu’il faut choisir un élément (ou plusieurs) parmi une liste indiquée (‘choice’ au niveau XSD).
Si la cardinalité SIRI est précisée pour le profil SIRI France, cela sera aussi noté, en complément dans cette colonne et surligné en gris.
Les différentes possibilités d’exprimer la cardinalité sont donc les suivantes :
En noir sur fond blanc : la cardinalité est celle spécifiée par le document normatif SIRI (en particulier, toutes les notations de type « 1:1 » ou « 1:* » signifient que le champ est obligatoire). Ces champs font partie du profil SIRI France.
En noir surligné en gris: la cardinalité du document normatif SIRI est précisée par le profil SIRI France (pour rendre un champ facultatif obligatoire ). C’est alors la version surlignée en gris qui s’applique.
En noir surligné en vert : la cardinalité du document normatif SIRI est précisée par le profil SIRI France pour la mise en place des concentrateurs . En effet, les concentrateurs ont des spécificités, en particulier en terme de volumétrie et de mise en cohérence de données multi-sources qui nécessitent certaines adaptations par rapport au cas général. Les commentaires y attenant seront aussi surlignés en vert.
Type de données (Data Type)
Cette colonne indique le type de l’élément:
soit un type simple (SIRI ou XSD) comme PositiveDurationType ou xsd:dateTime
soit un type structuré, signalé par +Structure (la définition de la structure porte alors le nom de l’élément suffixé par le terme Structure),
les références (par identifiant) sont signalées, sous la forme OperatorCodeRef (référence à un opérateur, dont on fournit le code ou identifiant, dans ce cas),
dans le cas des énumérations, la liste des valeurs est indiquée (éléments séparés par une barre verticale : « | »),
Pour les types les plus classiques, l’abréviation est autorisée quand le nom est long (NLString pour NaturalLanguageString ou Error pour ErrorStructure).
Ce type permet de définir les chaines de caractères associées à une langue. La structure est la suivante :
NaturalLanguageStringStructure |
---|
Name | Type | Cardinality | Description | |
---|---|---|---|---|
attribute | Xml :lang | string | 0 :1 | La langue doit etre spécifiée sous la forme d’un code de 3 lettre conformément à l’ISO 639-3 ou un code sur 2 caractères conformément à l’ISO 639-1RFC 1766. Par défaut interprété comme «FRA». Si la langue n’est pas le francais ce champ DOIT être renseigné. |
Element | (element content) | String | 1:1 | Texte du message. |
Description (Description)
On trouve dans cette colonne la description textuelle de l’élément.
Le tableau ci-dessous est un exemple de tableau SIRI (non traduit pour celui-ci, étant donné que son contenu n’a pas d’importance).
Classification | Nom de l’élement | Min : Max | Type de données | Description |
---|---|---|---|---|
MyMessageResponse | +Structure | Returns data for a MyMessage Request | ||
Attributes | srsName | 0:1 | xsd:string | Default GML coordinate format for any spatial points defined in response by Coordinates parameter. |
Log | ResponseTimestamp | 1:1 | xsd:dateTime | Time individual response element was created. |
Endpoint | ProducerRef | 0:1 | ParticipantCode | Participant reference that identifies producer of data. May be available from context. |
::: | 0:1 | MyAddGroup | MyAddress Group elements. See section 101.0. | |
Status | Status | 0:1 | xsd:boolean | Whether the complete request could be processed successfully or not. Default is true. |
ErrorCondition | 0:1 | See below | Description of any error or warning conditions that apply to the overall request. | |
➞ choix | -1:1 | One of the following error codes. | ||
a) CapabilityNotSupportedError | 0:1 | +Error | Capability not supported. | |
b) OtherError | 0:1 | +Error | Error other than a well defined category. | |
➞ Description | 0:1 | ErrorDescription | Description of Error. | |
Payload | ExpectedLifeTime | 1:1 | PositiveDurationType | How long I expect to live. Time interval. |
MyWay | 0:1 | foo | bar | Which way I did it. Default is ‘foo’. | |
XxxDelivery | 0:* | +Structure | See SIRI Part 3 – Functional Service. |
Indentation des données
La représentation des données imbriquées est représentée en utilisant les symboles ➞ et ⇉ pour indiquer le niveau d’imbrication.
Nom | Card | Type | Description |
---|---|---|---|
Donnée Niv 1 | +Structure | Cette information est constituée des structure « Donnée 1 Niv 2 » et « Donnée 2 Niv 2 » | |
➞ Donnée 1 Niv 2 | 1:* | +Structure | « Donnée 1 Niv 2 » définie par ailleurs |
➞ Donnée 2 Niv 2 | 1:* | +Structure | « Donnée 2 Niv 2 » est une structure constituée de « Donnée 1 Niv 3 » et « Donnée 2 Niv 3 » definies ci-apres |
⇉ Donnée 1 Niv 3 | 0:1 | Type 1 | Donnée de « Donnée 2 Niv 2 » |
⇉ Donnée 2 Niv 3 | 0:1 | Type 2 | Donnée de « Donnée 2 Niv 2 » |
Partie I - Description du cadre
Définition des concepts fondamentaux
Le présent profil s’appuie sur les concepts définis dans Transmodel [R1].
Cas d’usage
Les principaux cas d’usage SIRI, dans un environnement national français, sont synthétisés dans la suite de ce paragraphe. Ils sont détaillés dans le document d’accompagnement [A1].
Cette liste des cas d’usage ne se veut pas exhaustive et peut être complétée localement pour répondre à des besoins spécifiques.
Pour chaque cas d’usage, une préconisation de services SIRI à implémenter est présentée en conclusion du paragraphe. Les préconisations s’appuient sur les ‘bonnes pratiques’ d’implémentation SIRI [A3].
Dans ce cadre, chaque service SIRI d’un cas d’usage est qualifié ‘Indispensable’ ou ‘Facultatif’.
Indispensable : indique que, pour le cas d’usage identifié, le respect des bonnes pratiques d’implémentation tend à l’utilisation de ce service. Dans le cas ou un autre service SIRI serait retenu, l’implémentation sortirait du contexte d’utilisation et correspondrait alors un autre cas d’usage.
La non-implémentation d’un service ‘Indispensable’ ne veut pas dire que cette implémentation n’est pas conforme au profil SIRI France, seule la conformité aux règles de gestion et aux règles d’implémentation des services le sont.
‘Facultatif’ : indique que le service SIRI peut être utilisé en complément du ou des services SIRI obligatoires mais que le cas d’usage peut être respecté sans son implémentation.
Diffusion inter systèmes
Ce cas d’usage doit permettre à différents systèmes de transport d’échanger des flux d’information relatifs à l’information voyageur. Ces échanges leur permettent de réaliser des traitements de cette information indépendamment les uns des autres et en parfaite cohérence.
Dans ce cadre, SIRI permet l’échange d’informations multimodales et multi opérateurs. Ces flux ne sont pas à destination directe des usagers.
Les systèmes concernés peuvent être des SAE, des SIV, des systèmes d’affichage, …
Cet alignement repose sur un échange préalable de données théoriques (topologie et offre de transport) qui sont mises à jour entre les différents systèmes interconnectés via SIRI.
Ces échanges s’appuient sur le protocole de communication SIRI définis dans la partie 2 de la spécification [R6].
La description de ce cas d’usage est définie dans le document d’accompagnement [A1].
Diffusion Terminaux légers
Il s’agit ici de permettre à un utilisateur d’accéder aux informations horaires temps réel (prochains passages avec indications de ligne, de direction, ainsi que les éventuels messages) pour n’importe quel point d’arrêt, indépendamment du transporteur, et ce à partir d’un terminal mobile de type téléphone portable.
Ce service pourra ainsi être utilisé sur le réseau (à l’arrêt dans le cas où il n’y aurait pas d’afficheur, permettant ainsi à l’exploitant de mettre le service à disposition sans que les coûts ne soient trop importants, autorisant ainsi plus facilement la couverture de ligne ou zones à faible fréquentation) ou hors réseau (pour synchroniser son départ avec l’arrivée du train ou du bus par exemple).
SIRI est ici utilisé pour permettre au système de présentation qui gère le dialogue avec les terminaux mobiles d’accéder aux informations horaires temps réel de prochain passage.
Ce cas d’utilisation peut être généralisé à un accès avec tout autre type de terminal, en particulier via un accès de type Web, pour diffuser les informations horaires et les informations de perturbation.
A noter que pour ce cas d’usage les protocoles de communications SIRI lite sont à privilégier.
La description de ce cas d’usage est définie dans le document d’accompagnement [A1]
Centrale de mobilité
Les centrales de mobilité prennent en compte les transports en commun sur une échelle relativement large, impliquant ainsi quasi systématiquement plusieurs transporteurs.
L’un des services clés de ce type de centrale de mobilité est souvent le calcul d’itinéraires, qui se limite de moins en moins à la prise en compte des horaires théoriques (pour cause d’indisponibilité des données, et non pour des raisons techniques).
La prise en compte des informations temps réel est un besoin qui, dans ce contexte, s’exprime à deux niveaux:
la prise en compte des perturbations (prévues, c’est-à-dire connues plus ou moins longtemps avant le départ, ou inopinées) pour, d’une part, les signaler à l’usager et, d’autre part, lui proposer des solutions alternatives lui permettant de « sécuriser » son trajet,
la prise en compte des informations horaires temps réel pour optimiser le déplacement (le train que l’on ne pensait pas pouvoir prendre à une correspondance devient disponible suite à un léger retard ou encore un retard trop important impliquant une modification de l’itinéraire, etc).
L’apport de la norme SIRI est ici clairement de permettre aux SAE de diffuser vers la centrale de mobilité l’ensemble des informations temps réel nécessaires pour la mise en place des services.
La description de ce cas d’usage est définie dans le document d’accompagnement [A1].
Gestion des perturbations
La prise en compte des perturbations telle qu’elle est souvent mise en oeuvre dans les systèmes actuels se limite souvent à un message textuel libre ou pré-formaté et associé à un arrêt, une ligne, un itinéraire ou une mission. La norme SIRI permet de transmettre la perturbation de manière codifiée ; elle permet :
de décrire finement la cause de la perturbation,
de lister les conséquences liées à cette perturbation,
de permettre une prise en compte par un calculateur d’itinéraires,
de générer automatiquement des messages, avec prise en compte du type de périphérique (petits messages pour les SMS, longs messages pour le Web, etc.) ou de générer ces messages en plusieurs langues (il ne s’agit naturellement pas d’une fonction de SIRI mais d’une fonction qui pourra être mise en œuvre par l’émetteur ou par le récepteur sur la base des données structurées),
d’associer la perturbation à un tronçon de ligne,
de gérer des périodes de validité complexes (i.e. : du lundi au vendredi de 8 h à 18 h),
de mettre à jour le « fil de perturbation » en ayant la possibilité d’identifier les mises à jour d’une perturbation.
La description de ce cas d’usage est définie dans le document d’accompagnement [A1].
Information PMR
Informer les PMR ou toute personne ayant des besoins particuliers (en particulier les handicaps auditifs, visuels, moteurs, etc., mais aussi à tous les besoins particuliers comme « utilisation d’une poussette », « lourdement chargé en bagage », « jambe dans le plâtre », etc.) est un besoin avéré.
Ce type de besoin comporte une composante temps réel afin de pouvoir informer sur l’état des équipements et des services (i.e. : disponibilité ou non d’un ascenseur, d’un escalier mécanique, d’une palette, d’un dispositif visuel, etc.).
Sur la base des services SIRI, des systèmes d’acquisition et de supervision ou des systèmes impliquant une saisie par un opérateur (la vérification d’état des équipements est aujourd’hui réalisée de façon manuelle dans de très nombreux cas) peuvent diffuser leurs informations de perturbation.
La description de ce cas d’usage est définie dans le document d’accompagnement [A1].
Concentrateur
Les concentrateurs permettent de rassembler au sein d’un même système un ensemble d’informations voyageur d’origine et de formes diverses dans un format pivot (en principe conforme aux concepts Transmodel) pour les mettre à disposition de systèmes clients.
Le flux entrant et sortant du concentrateur peuvent s’appuyer sur SIRI. En général les systèmes historiques peuvent fournir aux concentrateurs les informations dans des formats autres, le concentrateur redistribuant les données en utilisant SIRI :
les centrales de mobilité,
les systèmes pour les agents sur le terrain,
les afficheurs,
des terminaux dédiés (système prévu spécifiquement pour gérer un type de handicap),
etc.
Conformité Directive EU
La loi n° 2019-1428 du 24 décembre 2019 d’orientation des mobilités (LOM : https://www.legifrance.gouv.fr/dossierlegislatif/JORFDOLE000037646678) et, au niveau Européen, le Règlement Délégué (UE) 2017/1926 de La Commission du 31 mai 2017 (complétant la directive 2010/40/UE du Parlement européen et du Conseil en ce qui concerne la mise à disposition, dans l’ensemble de l’Union, de services d’informations sur les déplacements multimodaux) rendent obligatoire la mise à disposition, quand elles existent, de certains types de données.
Le tableau ci-dessous résulte de l’analyse de la LOM et du règlement délégué et fournit la liste des concepts concernés dans le présent profil. Il sera donc nécessaire de fournir ces données pour être conforme à la législation (il s’agit bien de mettre à disposition toutes les données existantes dans les SI transport, et non de créer des données qui n’existeraient pas encore sous forme informatique).
Les concepts présents dans les tableaux sont ceux directement référencés à l’annexe du règlement européen Délégué (UE) 2017/1926 de La Commission du 31 mai 2017 (https://eur-lex.europa.eu/legal-content/FR/TXT/HTML/?uri=CELEX:32017R1926&from=FR) qui impliquent d’autres concepts (soit par héritage soit par relation, au sens UML des termes). Ces éléments d’héritage et de relations sont présentés dans les profils, mais pas dans ce tableau.
De plus, les noms des catégories (colonnes Catégorie et Détail) ont été conservés dans la langue originale du document (l’anglais) pour éviter tout risque de confusion. Pour la même raison, les noms des concepts concernés sont ceux de la version originale de Transmodel.
Pour certaines catégories de données, il peut arriver que les concepts correspondants soient multiples, mais aussi qu’ils soient différents suivant le niveau de précision porté par la donnée. La colonne « Services à minima » correspond alors au minimum à fournir pour répondre à la catégorie en question et les colonnes « Autres services » décrivent des informations complémentaires qui, si elles sont utiles, ne sont pas indispensables pour répondre à cette catégorie.
Il faut toutefois garder à l’esprit que toute information existante est supposée être mise à disposition (que cela relève de la première ou de la seconde colonne).
La première colonne reprend la notion de niveau tel qu’il est décrit et utilisé par le règlement européen et a notamment une incidence sur le calendrier de mise à disposition de la donnée (voir le règlement pour plus de détails).
Les différents concepts présentés ne sont bien sûr pas détaillés dans ce tableau mais dans le profil lui-même. C’est aussi dans la description du profil que l’on trouvera les détails concernant les attributs (obligatoire/facultatif, règles de remplissage, codification, etc.). Pour ce qui est des attributs facultatifs, la règle reste que, pour les objets ci-dessous, toute information disponible est supposée être fournie (mais on ne crée pas d’information si elle n’est pas disponible).
Table 1 – Concepts relatifs à la LOM et à la Règlementation Européenne
Niveau | Catégorie | Détail | Service à minima | Autres services | Commentaire |
---|---|---|---|---|---|
1 | Passing times, trip plans and auxiliary information | Disruptions (all modes) | General Message | Situation Exchange | Note : tout ce qui peut être échangé avec General Message peut aussi l’être avec Situation Exchange: pour anticiper les évolutions à venir il peut donc être préférable de tout de suite porter son choix sur Situation Exchange. |
1 | Passing times, trip plans and auxiliary information | Real-time status information — delays, cancellations, guaranteed connections monitoring (all modes) | General Message | Situation Exchange | Note : tout ce qui peut être échangé avec General Message peut aussi l’être avec Situation Exchange: pour anticiper les évolutions à venir il peut donc être préférable de tout de suite porter son choix sur Situation Exchange. |
1 | Passing times, trip plans and auxiliary information | Status of access node features (including dynamic platform information, operational lifts/escalators, closed entrances and exit locations — all scheduled modes) | General Message | Situation Exchange Facility Monitoring | Note : tout ce qui peut être échangé avec General Message peut aussi l’être avec Situation Exchange: pour anticiper les évolutions à venir il peut donc être préférable de tout de suite porter son choix sur Situation Exchange. |
2 | Passing times, trip plans and auxiliary information (all modes) | Estimated departure and arrival times of services | Estimated Timetable | Stop Monitoring pour heure de départ ou de passage mais ne permet pas de savoir l’heure d’arrivée. Estimated Timetable pour une vue complète départ/arrivée. | |
2 | Information service | Availability of publicly accessible charging stations for electric vehicles and refuelling points for CNG/LNG, hydrogen, petrol- and diesel-powered vehicles | Facility Monitoring | ||
2 | Availability check | Car-sharing availability, bike sharing availability | Facility Monitoring | ||
2 | Availability check | Car parking spaces available (on and off-street), parking tariffs, road toll tariffs | Facility Monitoring |
Services SIRI applicables
Service | Diffusion Inter Systèmes | Diffusion Terminaux Legers | Centrale de Mobilité | Diffusion dans les vehicules | Gestion des perturbations | Information PMR | Concentrateur | Directive EU |
---|---|---|---|---|---|---|---|---|
Horaires planifiés Production Timetable | ||||||||
Horaires calculés Estimated Timetable | Indispensable | Indispensable | Indispensable | Indispensable | ||||
Horaires planifiés à l’arrêt Stop Timetable | ||||||||
Discovery Line | Facultatif1 | |||||||
Horaires calculés à l’arrêt Stop Monitoring | Indispensable | Facultatif | Facultatif | Facultatif | ||||
Discovery Stop | Facultatif2 | |||||||
Supervision des véhicules Vehicle Monitoring | Indispensable | Facultatif | ||||||
Correspondances planifiées Connection Timetable | ||||||||
Correspondances calculées Connection Monitoring | Facultatif | |||||||
Messagerie General Messaging | Facultatif | Facultatif | Facultatif | Indispensable | Facultatif | Facultatif | Indispensable | Indispensable (uniquement si SX n’est par retenu) |
Gestion des événements Situation Exchange | Indispensable | Facultatif | Indispensable | Indispensable | Facultatif | Facultatif | ||
Etat des équipements Facility Monitoring | Facultatif | Indispensable | Indispensable |
Règles de gestion
CU-1 | Si le service SX est disponible, toute information diffusée via GM doit aussi l’être en SX |
---|---|
CU-2 | Si le service SIRI SX est implémenté, GM ne devient qu'un service pour compatibilité avec les systèmes ne sachant pas recevoir du SX. SX devient la référence pour les informations circonstancielles et doit donc contenir toutes les informations. |
Protocoles d’échange des données SIRI
Les échanges de données SIRI entre Systèmes reposent l’echange de fichiers XML via la mise en œuvre du protocole SOAP. A noter que la mise en œuvre d’une interface SIRI Lite repose sur des échanges de fichiers XML ou JSON via une API REST.
Dans le cadre d’autres usages type OPEN DATA, l’utilisation d’autres mécanismes est possible : message broker type MQTT, XML sans SOAP, API REST, ….
Partie II - Application du Profil SIRI France
Modalités d’application
Après avoir retenu les services SIRI pour les cas d’utilisation identifiés (Partie 1), les principales actions à effectuer sont les suivantes:
- Identifier les données de référence, objet de la partie 2 de ce document :
Participants,
Identifiants des lignes, des itinéraires et des missions,
Identifiants des points d’arrêt (et type de point d’arrêt…),
Identifiants des correspondances,
Préciser les listes de valeurs supportées (ServiceCategory, ProductCategory, VehicleFeature) .
- Définir le profil technique lui-même :
Type d’abonnement (1 ou 2 phases),
Support de la segmentation des messages,
Confirmation ou non des notifications,
Filtres simples ou multiples,
Supervision de la disponibilité des partenaires,
Signification des champs fonctionnels,
…
Préciser l’utilisation des champs facultatifs dans les messages des services retenus (un champ facultatif dans la norme peut être supprimé, devenir obligatoire ou rester facultatif dans le profil…)
Définir éventuellement des extensions (ajout de champs non normalisés) propres à l’implémentation locale.
Implémentations locales: éléments à préciser dans les protocoles d’accord
Le paragraphe suivant présente les aspects techniques à traiter pour l’implémentation, il est à noter que ces aspects ne font pas partie intégrante du local agreement SIRI France et sont présentés ci-dessous à titre indicatif.
Le profil ne peut en effet pas définir tous les aspects nécessaires à la mise en place d’un échange. Ces éléments devront donc être définis dans le cadre des protocoles locaux établis entre les différents acteurs des échanges.
L’identification des infrastructures d’alimentation (et processus correspondant) : à définir spécifiquement pour chaque implémentation (par exemple le mode de connexion de l’interface SIRI au SAE…)
Le choix d’utilisation des champs laissés facultatifs par le profil France dans les messages et services retenus (un champ facultatif peut être supprimé, devenir obligatoire ou rester facultatif), sans que la WSDL SIRI France ne soit modifiée.
Des préconisations pour la gestion et l’organisation des systèmes (annexe recommandée par la norme SIRI, à traiter dans le contexte de chaque protocole d’accord local) :
Contacts et responsables opérationnels,
Surveillance des services,
Période d’interruption des services,
Identification/gestion des anomalies.
Référentiels de données
Présentation du besoin
La mise en place d’un échange de données implique que les systèmes mis en relation puissent identifier de façon non ambiguë les objets auxquels ils font référence.
Cela est particulièrement vrai pour SIRI qui, de par sa vocation à échanger des informations temps réel, ne re-décrit pas le référentiel sous-jacent et le suppose donc connu.
Il sera donc indispensable, pour demander les prochains horaires de passage à un arrêt, de connaître l’identifiant de l’arrêt en question. Cela concerne tout un ensemble d’objets listés ci-dessous.
Il faut rappeler que l’identification de l’objet est une chose, mais que le concept sous-jacent en est une autre.
La cohérence doit porter sur ces deux aspects. Les principaux concepts utiles ont été évoqués au chapitre précédent. Pour les autres, TRANSMODEL fait référence.
Note: le nom des objets est donné en français et en anglais, de façon à simplifier une éventuelle recherche complémentaire dans les documents normatifs.
Références utilisées dans le cadre du profil SIRI France
Donnée de référence | Référence adoptée pour le profil SIRI France |
---|---|
Date et Heure (Date & Time) | ISO 8601 |
Langue (Language) | ISO 639-1 |
Localisation géographique (Location) | WGS84 / gml (GML permettra d'échanger les localisations géographiques dans des référentiels projetés comme Lambert 2 étendu) |
Fournisseur d'information (Information Provider) | Voir le paragraphe correspondant (Erreur ! Source du renvoi introuvable.) Notion à mettre en relation avec le groupement ou le transporteur qui délivre l’information. |
Point d'arrêt (Stop Point) | Voir le paragraphe correspondant (5.4.1.1) Dans l'état actuel des choses, il n'existe aucun référentiel global des points d’arrêt en France. |
Correspondance (Connection) | Dans l'état actuel des choses, il n'existe aucun référentiel global des correspondances en France. Dans un premier temps, l'identification des correspondances devra donc être réalisée au cas par cas, et définie entre les acteurs avant de débuter un échange. L'identification devra dans ce cas porter une indication signalant qu'elle est spécifique à un échange local. Cela concernera uniquement les cas où l'on souhaite gérer une correspondance et où l'on souhaitera être informé du fait qu'elle n'est plus possible (le bus signale qu'il décide de ne pas attendre le train, par exemple). |
Véhicule supervisé (VehicleActivity) | Dans le cadre du profil SIRI France, cette donnée ne peut être utile que pour permettre d'identifier la position d’un véhicule. Si l’on souhaite connaître l'état des services dans le véhicule (état de fonctionnement de la palette par exemple), il sera alors plus simple de passer par l'identification de la course que par celle du véhicule. |
Course (Vehicle Journey) | L'identification des courses devra donc être réalisée au cas par cas, et définie entre les acteurs avant de débuter un échange. L'identification devra dans ce cas porter une indication signalant qu'elle est spécifique à un échange local. |
Numéro de passage à un Point d'arrêt sur une mission (Stop Visit In Pattern) | Parmi les solutions proposées par SIRI, le profil SIRI France retient celle qui consiste à attribuer un numéro d'ordre dans la mission à chacun des arrêts. |
Ligne (Line ) | A date, il n’existe aucun référentiel global des lignes en France. L'identification des lignes devra donc être réalisée au cas par cas, et définie entre les acteurs avant de débuter un échange. L'identification devra dans ce cas porter une indication signalant qu'elle est spécifique à un échange local. |
Itinéraire (Route) | A date, il n’existe aucun référentiel global des itinéraires en France. L'identification des itinéraires devra donc être réalisée au cas par cas, et définie entre les acteurs avant de débuter un échange. L'identification devra dans ce cas porter une indication signalant qu'elle est spécifique à un échange local. |
Mission (Journey pattern) | A date, il n’existe aucun référentiel global des missions en France. L'identification des Missions devra donc être réalisée au cas par cas, et définie entre les acteurs avant de débuter un échange. L'identification devra dans ce cas porter une indication signalant qu'elle est spécifique à un échange local. |
Direction (Direction) | Cette notion a été introduite par SIRI pour pallier les cas où la notion d’itinéraire n'est pas formalisée. |
Destination (Destination) | Cette notion a été introduite par SIRI pour pallier les cas ou la notion de mission n'est pas formalisée. Dans le cadre du profil SIRI France, les destinations seront systématiquement les extrémités des missions, et donc leur dernier point d'arrêt (dont on utilisera l'identifiant). |
Version des horaires théoriques (Schedule Version) | Cette notion permet de référencer la version des données horaires théoriques sous-jacente. L'identification de version du référentiel devra donc être réalisée au cas par cas, et définie entre les acteurs avant de débuter un échange. L'identification devra dans ce cas porter une indication signalant qu'elle est spécifique à un échange local. Pour mémoire, son principal usage est de permettre d'identifier une éventuelle désynchronisation entre les référentiels (horaires et réseaux) qui pourrait amener à ce que, par exemple, un point d'arrêt connu par l'une des parties de l'échange ne le soit pas de l'autre. |
Mode et sous-mode de transport (Product Category) | L'ensemble des valeurs proposées par SIRI est retenu pour le profil SIRI France. Voir 3.3.11.3 dans le document SIRI Partie 1 Cette liste est très détaillée mais permet d'être certain de ne pas avoir à la compléter à l'avenir. |
Identification du véhicule, type de véhicule (Vehicle Feature) | L'ensemble des valeurs proposées par SIRI est retenu pour le profil SIRI France. Voir 3.3.13 dans le document SIRI Partie 1 et sa mise à jour pour le service Facility Monitoring Cette liste est très détaillée mais permet d'être certain de ne pas avoir à la compléter à l'avenir. |
Type de service (Service Feature) | L'ensemble des valeurs proposées par SIRI est retenu pour le profil SIRI France. Voir 3.3.13 dans le document « SIRI Partie 1 » et sa mise à jour pour le service Facility Monitoring Cette liste est très détaillée mais permet d'être certain de ne pas avoir à la compléter à l'avenir. |
Note : Il faut rappeler que, d’une façon générale, pour des échanges locaux, il n’est pas indispensable de disposer d’un référentiel complet pour échanger les données temps réel (notamment mission, course, …). Le sous-ensemble d’objets ci-dessus peut en effet suffire, tout dépendra du cas d’utilisation mis en œuvre.
Gestion des Identifiants
Structure des identifiants
L’objectif d’une codification est de s’assurer de l’unicité (au niveau national) et de la pérennité de l’identifiant. Toute solution, permettant d’assurer une unicité et une pérennité de l’identifiant est valable. En particulier, si un réfentiel de données (arrêts, lignes, etc.) propose des identifiants uiques et pérennes mais avec une structure différente de celle proposée par le Profil NeTEx France [R11.1], cela est tout à fait acceptable ;
Il est par contre impératif que l’identifiant d’un objet soit strictement le même quel que soit le flux de données utilisé (SIRI, NeTEx, tous profils confondus, et même GTFS ou tout autre format qui pourrait être utilisé pour l’échange de données).
NOTE IMPORTANTE : Un mécanisme de codification des identifiants est proposé par le profil NeTEx France « Eléments commun » [R11.1]. Ce mécanisme de construction a pour vocation d’assurer l’unicité de l’identifiant, mais en aucun cas l’identifiant ne peut être considéré comme porteur de sémantique. En conséquence toute analyse (segmentation, parsing, extraction d’information, etc.) de l’identifiant est à proscrire !
Identifiants SIRI
Cette liste non exhaustive devra être complétée si nécessaire lors des développements. Ces identifiants pourront aussi évoluer si nécessaire (ex : cas de doublon pour deux identifiants). Des précisions sur ces formats d’identifiant pourront être apportées dans les spécifications d’interface de chacun des systèmes.
Champ SIRI | Identifiant SIRI |
---|---|
DataFrameRef | [CODESPACE]:DataFrame::[identifiantTechnique]:[LOC] |
DatedVehicleJourneyRef | [CODESPACE]:VehicleJourney::[identifiantTechnique]:[LOC] Note: DatedVehicleJourneyRef est le champ de la structure FramedVehicleJourneyRef contenant la référence à la course datée elle-même. |
DestinationRef | Comme un identifiant d'arrêt |
DirectionRef | DirectionRef est un code (code ouvert, limité à "aller" ou "retour" ou vide, sans format particulier donc). Normalement non retenu par le profil SIRI France, mais parfois obligatoire dans SIRI |
FormatRef | Utilisé pour General Message ; le format est spécifique au contexte France et doit contenir la valeur fixe « France » (valeur sans format particulier) |
FramedVehicleJourneyRef | FramedVehicleJourneyRef est une structure, la référence elle-même est portée par la référence à la course datée elle-même DatedVehicleJourneyRef décrit plus haut. La course étant spécifique d'un SAE, on complétera autant que possible le code Opérateur de [Fournisseur] par un code permettant d'identifier le SAE producteur. |
InfoChannelRef | C'est un code technique seul qui est utilisé pour l'InfoChannelRef. Il peut valoir "Perturbation", "Information" ou "Commercial" (valeur sans format particulier). |
InfoMessageIdentifier | [CODESPACE]:InfoMessage::[identifiantTechnique]:[LOC] |
ItemIdentifier | [CODESPACE]:Item::[identifiant Unique de l'Information]:[LOC] La partie [identifiant Unique de l'Information] pourra etre construite en s'appuyant sur l'identifiant de véhicule pour Vehicle Monitoring, et sur le InfoMessageIdentifier pour General Message. Pour les passages à l'arrêt (StopMonitoring en particulier), la forme est la suivante: [CODESPACE]:Item::[identifiantTechnique du couple Arrêt – Course]:[LOC] |
ItemRef | [CODESPACE]:Item::[identifiantTechnique]:[LOC] |
JourneyPatternRef | [CODESPACE]:JourneyPattern::[identifiantTechnique]:[LOC] |
LineRef | [CODESPACE]:Line::[identifiantTechnique]: |
MessageIdentifier | [CODESPACE]:Message::[identifiantTechnique]:[LOC] |
MonitoringRef | Comme pour les arrêts |
OperatorRef | [CODESPACE]:Operator::[identifiantTechnique]: |
OriginRef | Comme pour les arrêts |
PlaceRef | Cet identifiant a la particularité de pouvoir identifier un lieu quelconque, pouvant en particulier être un arrêt (pour mémoire, dans Transmodel, le STOP PLACE hérite bien de PLACE). La forme générale de l'identifiant de place est [CODESPACE]:Place::[identifiantTechnique]:LOC Mais s'il s'agit d'un arrêt on utilisera la forme spécifique des identifiant d'arrêt (voir 5.4.1.1) Note: Si un référentiel national est mis en place, le LOC devrait être supprimé. |
ProducerRef | [CODESPACE] |
RequestMessageRef | [CODESPACE]:Message::[identifiantTechnique]:[LOC] |
RequestorRef | [CODESPACE] |
ResponseMessageIdentifier | [CODESPACE]:ResponseMessage::[identifiantTechnique]:[LOC] |
RouteRef | [CODESPACE]:Route::[identifiantTechnique]:[LOC] |
SituationSimpleRef | [CODESPACE]:Situation::[identifiantTechnique]:[LOC] |
StopPointRef | Comme pour les arrêts |
SubscriberRef | [CODESPACE] |
SubscriptionRef et SubscriptionIdentifier | [CODESPACE]:Subscription::[identifiantTechnique]:[LOC] |
Ajout d’identifiants alternatifs
Un mécanisme permet optionnellement de typer les identifiants (KeyList). L’implémentation des KeyList s’appuie sur une nouvelle structure de la table extensions de SIRI (Part2) présentée ci-dessous.
KeyList
Une Keylist est un ensemble de couples clé-valeur utilisé pour décrire les identifiants secondaires de l’objet (LIGNE, LIEU D’ARRÊT, ZONE D’EMBARQUEMENT, POINT D’ARRÊT PLANIFIÉ, COURSE, etc.): c’est-à-dire tel qu’il peut être identifié dans des systèmes tiers: billettique, information voyageur, etc. La clé permet de nommer l’identifiant (et donc de faire référence au système tiers), la valeur étant l’identifiant lui même.
Cette identification servira principalement d’identification croisée, permettant au fournisseur de retrouver facilement, dans ses systèmes, l’origine de l’objet.
La liste des identifiants secondaires est spécifique à chaque fournisseur. Voir aussi PrivateCode du GroupOfEntities pour les identifiants alternatifs:
KL-1 | Les KeyList ne sont à utiliser que s’il y a plusieurs identifiants alternatifs, et si elles sont utilisées, le PrivateCode doit impérativement être aussi renseigné. |
---|---|
KL-2 | Il est interdit, dans le profil, d’utiliser le système de clé/valeur pour décrire des informations qui pourraient être fournies avec des attributs SIRI existants (même s’ils ne sont pas retenus par le profil). |
Structure Extension
Extensions | +Structure | Placeholder for user extensions. | |
---|---|---|---|
➞ KeyList | 0:1 | +Structure | Set of KEY VALUE pairs. |
➞ … | 0:* | xsd:any* | Any user defined content. |
Structure KeyList
KeyList | +Structure | Ensemble de couples Clef/Valeur arbitraires. Fournis en mecanisme d’extension. Chaque paire de clef /valeur doit être unique. | |
---|---|---|---|
➞ KeyValue | 1:* | +Structure | Une paire arbitraire de clé-valeur. |
⇉ TypeOfKey | 0:1 | xsd:normalizedString | Attribut qui spécifie le type / objectif de la paire de clé-valeur. Type de clé. Seule la valeur "ALTERNATE_IDENTIFIER" est reconnue dans le cadre du profil. Tout autre type de type de clé devra être ignoré (sans toutefois générer d'erreur). |
⇉ Key | 1:1 | xsd:normalizedString | Clé de KEY VALUE. |
⇉ Value | 1:1 | xsd:normalizedString | Valeur de KEY VALUE. |
Choix du profil SIRI France
Gestion des abonnements
La spécification SIRI propose une couche de communication très complète (décrite dans le document « part-2: Communications infrastructure »), mais qui, comme le reste de la spécification, est ouverte et nécessite un certain nombre de précisions dans le cadre du profil France.
Ainsi, la norme SIRI propose deux méthodes pour accéder à l’information :
- 1 - Les requêtes directes, générant immédiatement une, et une seule, réponse portant les informations demandées ;
- 2 - Un mécanisme d’abonnement où la même requête est soumise, mais pour laquelle on recevra régulièrement des mises à jour des informations au fur et à mesure de leur évolution. Ce mécanisme d’abonnement propose lui-même deux variantes:
- a) un mécanisme de notification à deux phases (fetched delivery) : lors d’une évolution des données on reçoit une indication de « mise à jour disponible » et on peut alors aller chercher les données en question auprès du serveur, via une nouvelle requête ;
- b) un mécanisme de notification à une phase (direct delivery) : lors d’une évolution des données on reçoit directement les données mises à jour.
R001 | Dans le cadre du profil SIRI France, tout système implémentant SIRI devra impérativement, lorsqu’implémenter, utiliser le mécanisme de requête directe. | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
R005 | De même, tout nouveau système (en particulier les concentrateurs) devra proposer un service d’abonnement conformément à la table suivante :
| |||||||||||||||||||||
R010 | Ce mécanisme d'abonnement sera mis en oeuvre en implémentant impérativement le mécanisme de notification à une phase (moins consommateur en bande passante réseau, et plus simple à mettre en oeuvre que le mécanisme à deux phases). | |||||||||||||||||||||
R015 | De plus, dans le cadre des abonnements, SIRI propose une gestion des confirmations de réception (lorsque l'on reçoit une notification, on répond avec un acquittement pour confirmer au serveur que les données ont bien été reçues) : cette possibilité n'est pas retenue dans le cadre du profil France |
En effet les protocoles de transport permettent aujourd’hui de s’assurer qu’une requête a bien été transmise, ce qui supprime tout besoin d’acquittement (il suffit donc de tester le code retour de l’appel fonctionnel SOAP).
Gestion de la segmentation des messages
La spécification SIRI offre la possibilité de segmenter les messages (découper un grand message en un ensemble de messages plus petits, qu’il faudra ré-assembler).
R020 | La segmentation des messages peut être intéressante si les échanges sont réalisés sur des réseaux de communication fortement contraints, mais ne présente pas d’intérêt dans le cadre du profil France, et n’est donc pas retenue. |
---|
Vérification de la disponibilité des partenaires
Lors d’un échange, il est important de savoir si le système avec lequel on « dialogue » est disponible ou non. Cela est particulièrement important si un mécanisme d’abonnement est mis en place de façon à pouvoir faire la différence entre le fait de ne pas recevoir de mise à jour parce qu’il n’y a pas d’évolution des données, et le fait de ne pas recevoir de mises à jour parce que le système distant est « en panne » (ou qu’il y a un problème réseau -. ou toute autre défaillance).
Pour ce faire, la spécification SIRI propose deux mécanismes afin d’assurer cette surveillance :
Le « check Status » (requête de vérification d’état) : une requête spécifique permet de demander au système distant, quand on le souhaite, s’il est bien disponible. On déclare le système distant indisponible si l’on ne reçoit pas de réponse ou si l’on reçoit une erreur en réponse (ce mécanisme est similaire au « ping » classiquement utilisé sur les réseaux IP).
Le « heartbeat » (battement de cœur) qui consiste à ce que chacun des systèmes émette régulièrement (à intervalle paramétrable) un message signalant qu’il est disponible. Si l’on ne reçoit pas ce message pendant une durée supérieure au délai paramétré, c’est que la communication avec le système distant n’est plus possible.
R025 | Dans le cadre du profil SIRI France, le mécanisme de requête de vérification d'état (service CheckStatus) est retenu. Tout serveur SIRI devra donc implémenter ce mécanisme. Par contre cela n’est pas une obligation pour les clients : cela pourra toutefois être envisagé dans la cadre de la gestion d’abonnement pour vérifier la disponibilité d’un abonné. |
---|---|
R030 | Les implémentations devront toutefois s'engager à appeler régulièrement la requête de vérification d'état, au moins dès qu'elles n'ont plus eu d’échange avec le système distant depuis un certain temps (fixé par défaut à cinq minutes). |
Structure du CheckStatus
Dans le cadre du profil SIRI France :
R035 | Le champ facultatif au niveau SIRI «Status» sera toujours présent, dans le profil France, et égal à « true » si le système est parfaitement opérationnel, et à « false » s’il est en mesure de recevoir les requêtes, mais dans l’impossibilité d’y apporter une réponse (contact avec le gestionnaire de données perdu, etc.) |
---|---|
R040 | Le champ facultatif au niveau «ErrorCondition» reste facultatif, au niveau du profil France, si aucune erreur n’est détectée, mais devra obligatoirement être présent et instancié à chaque fois qu’une erreur sera détectée. |
R045 | Les champs facultatifs de «SuccessInfoGroup» restent facultatifs. |
R050 | Le champ facultatif au niveau SIRI «ServiceStartedTime» sera toujours présent dans le profil France, et instancié avec l’heure du dernier démarrage du système. |
Utilisation des WSDL
Les WSDL introduites ci-dessus, permettent de décrire complètement l’interface des services SIRI dans le contexte de Web Service de type SOAP.
R055 | Dans le cadre du profil France, seuls les encodages RPC-Literal et Document-Literal-Wrapped sont supportés. |
---|
Gestion des filtres multiples
Lors de la constitution d’une requête, les différents paramètres permettent, entre autres, de définir un filtre pour que le client ne puisse recevoir que les données qui lui sont utiles (« les 3 prochains passages à l’arrêt AAA dans la direction DDD», « le prochain passage à l’arrêt BBB », « toutes les informations temps réel pour la ligne LLL », etc.).
La gestion d’abonnement utilise le même mécanisme. Le cas des abonnements est un peu particulier car on peut, par exemple, souhaiter être abonné avec plusieurs paramètres de filtrage:
- « les 2 prochains passages à l’arrêt AAA dans la direction DDD»
et
- « le prochain passage à l’arrêt BBB ».
Pour limiter les échanges sur le réseau ainsi que la surcharge de traitement (overhead) pour la gestion de données, la norme SIRI propose un mécanisme de filtres multiples permettant aux clients de recevoir, dans une unique notification, les informations issues de l’ensemble des abonnements : c’est le mécanisme de filtres multiples sur un abonnement.
R060 | En cohérence avec le choix des notifications à une phase, le profil SIRI France retient ce mécanisme de filtres multiples qui devra donc être mis en œuvre à chaque fois que les services d’abonnement seront retenus (cela permettra de recevoir plusieurs informations dans une même réponse ou notification, et donc limiter le nombre de messages). |
---|
Structuration XML
La spécification SIRI propose, la possibilité de « déstructurer » l’arborescence XML pour la rendre « plate » (« flat XML »), et ce, afin de simplifier la compatibilité avec certains systèmes existants.
R065 | Cette option de XML à plat (« flat XML ») n’est pas retenue dans le cadre du profil SIRI France. |
---|
Identification de la version de SIRI
R070 | La version de SIRI utilisée dans le cadre du profil SIRI France est la version 2.1. |
---|
Réseau et sécurité
La gestion de la sécurité et du contrôle d’accès n’est pas à proprement parler du ressort de SIRI, mais repose sur la couche de transport réseau retenue.
SIRI étant un protocole inter-systèmes, la sécurité est plus facile à maîtriser.
R075 | A minima, la mise en place de filtres sur les adresses IP (ou des plages d’adresses IP), complétés par l’utilisation d’un canal crypté HTTPS, est recommandée. |
---|
Cette solution est peu coûteuse et simple à mettre en oeuvre, car elle ne repose que sur une configuration du serveur HTTP.
En complément de ces éléments, on retrouve tous les éléments de sécurité classique du monde du Web : firewall, architecture avec DMZ, etc. Cependant ces éléments n’ont pas d’impact sur les échanges SIRI eux-mêmes et sont du ressort de chaque intervenant (points sur lesquels ils auront une parfaite autonomie).
R080 | Par contre, dans tous les cas, les services SIRI France seront accessibles à partir d’une liaison Web classique et ne nécessiteront donc pas la mise en place de liaisons spécialisées, d’abonnement à un gestionnaire de réseau spécifique, ni d’utilisation de réseaux point à point (RTC, etc.) sauf accord entre les parties. |
---|
Ces recommandations valent de façon générale pour tous les accès SIRI indépendamment des cas d’utilisation : il est souhaitable que le mode d’accès soit toujours le même, et sans lien avec l’usage qui sera fait des données.
Si certains systèmes disposent déjà de mécanismes de gestion des accès sécurisés et ne correspondent pas à la description ci-dessus (type VPN par exemple), ils pourront être utilisés dans un premier temps de façon à ne pas pénaliser les temps de développement (puisque cela n’entraîne pas d’impact fonctionnel).
Contrôle d’accès (niveau applicatif)
La norme SIRI impose que tous les messages échangés contiennent l’identifiant de celui qui l’a émis.
Cet identifiant peut être utilisé pour réaliser un contrôle d’accès pour, par exemple, ne permettre à un système distant de n’accéder qu’à certaines lignes ou certains arrêts.
R085 | Dans le cadre du profil France, un tel contrôle sera possible, mais ne pourra porter que :
|
---|
Les éventuelles informations de restrictions devront être communiquées aux personnes en charge de la gestion et de l’exploitation du système client concerné.
R090 | Toutefois, cet échange sera réalisé par courrier ou par mail, mais sans utiliser les structures d’autorisation (« permission structures ») proposées par SIRI et dont l’implémentation ne correspond pas à un besoin exprimé en France (pour mémoire les « permission structures » permettent à un client de demander dynamiquement « quelles sont les informations auxquelles j’ai droit » -.). |
---|
Gestion des erreurs
La gestion des erreurs constitue un point important, auquel SIRI apporte une réponse claire et précise.
R095 | Toute anomalie détectée par le serveur devra donner lieu à la génération d'un message d’erreur précisant le problème (« service SIRI non implémenté », « accès non autorisé », « service temporairement indisponible », etc.). De façon à être précise, toute réponse à une requête devra indiquer si elle a pu être traitée normalement ou si une quelconque erreur a été rencontrée. |
---|
Le tableau ci-dessous détaille chacun des codes d’erreur proposés par SIRI :
Erreur SIRI | Description |
---|---|
AccessNotAllowedError | Le demandeur n'a pas les droits lui permettant d'accéder à ce service ou à ces données. |
AllowedResourceUsageExceededError | La requête est valide mais nécessite une charge trop importante pour pouvoir être traitée. |
BeyondDataHorizon | Les données ne sont pas disponibles pour la période demandée. |
CapabilityNotSupportedError | Le serveur ne supporte pas la fonctionnalité demandée. Le champ « CapabilityNotSupportedError » signalera une erreur si un service optionnel non implémenté est sollicité. |
InvalidDataReferencesError | La requête contient des identifiants qui sont inconnus. |
NoInfoForTopicError | La requête est valide, mais aucune donnée correspondante n'est disponible sur le serveur. |
OtherError | Erreur autre que celles qui sont prédéfinies. |
ParametersIgnoredError | La requête contient des paramètres qui ne sont pas supportés par le serveur : une réponse a été fournie, mais les paramètres non supportés n'ont pas été pris en compte. |
ServiceNotAvailableError | Le service est indisponible (mais toutefois capable de fournir cette réponse …). |
UnknownExtensionsError | La requête contient des extensions qui ne sont pas supportées par le serveur : une réponse a bien été fournie mais sans tenir compte de ces extensions. |
UnknownParticipantError | Le destinataire du message (requête) est inconnu. Note: cette erreur fait echo à la capacité de relais de requête introduite par SIRI 2. |
Dans le cadre du profil SIRI France :
R100 | Pour les services fonctionnels, le champ facultatif « Status » (dans le DeliveryStatusGroup défini par la structure AbstractServiceDeliveryStructure utilisée pour les réponses de chacun des services) sera :
|
---|
Ce champ signale qu’un problème a été rencontré, et non qu’il n’y a pas de réponse : il peut donc être positionné à « false » alors qu’une information est bien retournée.
Plus particulièrement dans le cas de la réponse à un GetSiri, on obtient un « Status » au niveau de l’entête global de la réponse (dans le ServiceDeliveryRequestStatusGroup) et un autre pour chacune des réponses aux requêtes élémentaires (typiquement quand on a utilisé GetSiri pour effectuer une interrogation sur toute une liste d’arrêts. Dans ce cas aussi, un « Status » à « false » dans l’entête signifie qu’il y a une des réponses portant une erreur, et non qu’il n’y a pas de réponse.
R105 | Le champ facultatif « ErrorCondition » reste facultatif, mais devra être présent et instancié à chaque fois qu’une erreur sera détectée. |
---|---|
R110 | La liste des codes erreur à supporter dans le cadre du profil France est détaillée dans le tableau ci-dessous. |
R115 | S’il ne s’agit pas d’un service optionnel non implémenté, le champ « OtherError » précisera sous forme textuelle la nature de l’erreur rencontrée. |
R120 | Le champ facultatif « Description » reste facultatif et permettra juste de préciser l’erreur (les éléments fondamentaux étant précisés dans l’un des deux champs précédents). Il devra contenir une description de l’erreur ainsi que le champ incriminé, par exemple : “Erreur [nom du champ] : [Raison de l’erreur avec valorisation reçue]”. |
---|---|
R130 | De façon à systématiser les messages d’erreur, le champ « OtherError » sera structuré en débutant par un code prédéfini entre crochets, suivi d’un texte explicatif. |
La liste des codes prédéfinis est la suivante :
[BAD_REQUEST] : impossible de décoder la requête.
[BAD_PARAMETER] : la requête contient un paramètre inutilisable (le texte devra alors préciser le paramètre posant problème).
[INTERNAL_ERROR] : erreur non identifiée, mais empêchant la fourniture d’un résultat.
R135 | De façon à assurer une homogénéité de comportement dans le traitement des erreurs, il est convenu des comportements suivants : |
---|
Erreur | Comportement |
---|---|
[BAD_REQUEST] | Rejet complet de la requête, réponse erreur uniquement. |
InvalidDataReferencesError | Rejet de la requête ; en cas de multiples requêtes, rejet de la seule requête en erreur. |
[BAD_PARAMETER] | Rejet complet de la requête, réponse erreur uniquement. |
ParametersIgnoredError | Réponse en ignorant le paramètre incriminé. |
NoInfoForTopicError | Réponse uniquement sur la base des informations effectivement disponibles (pas de réponse autre que l’erreur si aucune donnée n’est disponible). |
ServiceNotAvailableError | Rejet complet de la requête, réponse erreur uniquement. |
AccessNotAllowedError | Rejet complet de la requête, réponse erreur uniquement. |
[INTERNAL_ERROR] | Réponse erreur uniquement. |
AllowedResourceUsageExceededError | Réponse erreur uniquement. |
BeyondDataHorizon | Réponse erreur uniquement. |
UnknownExtensionsError | Réponse uniquement sur la base des paramètres effectivement reconnus. |
Il n’y a pas d’obligation pour un système d’être en mesure de remonter chacune de ces erreurs.
R140 | Toutefois, en cas d’anomalie, les systèmes devront s’astreindre à utiliser le code correspondant au problème rencontré pour le signaler (et ce en rapport avec leurs capacités et limitations de détection d’anomalie, ce qui signifie qu’ils ne sont pas tenus de remonter une erreur qu’ils ne savent pas identifier). |
---|---|
R145 | Les erreurs rencontrées devront de plus être conservées dans des fichiers (fichier type « log ») tant au niveau des systèmes serveurs que des systèmes clients, de façon à permettre une analyse « post-mortem » et d’envisager d’éventuels correctifs ultérieurs. |
R150 | La durée minimale de conservation des fichiers « log » sera définie dans le cadre des projets ; on peut toutefois considérer que 3 mois est une valeur acceptable et 1 an une valeur maximale. |
La remontée d’erreur n’a en effet d’intérêt que si on l’utilise pour comprendre et corriger les causes des anomalies. Cela implique que ces erreurs soient reçues et traitées par les équipes d’exploitation puis dispatchées, après une première analyse, vers les partenaires, les industriels ou tout intervenant susceptible d’y apporter un remède.
R155 | Dans le cas où une requête ne reçoit pas de réponse, une erreur pourra être déclarée. Cette anomalie sera mentionnée dans le « log » d’erreur du client. Le délai d’attente (« timeout » avant identification d’une panne) est fixé par défaut à une minute (cette valeur « par défaut » pourra être ajustée localement, notamment au regard du délai « normal » de rafraîchissement des données). |
---|---|
R160 | ATTENTION : il est tout à fait possible que la réponse arrive finalement, mais après le délai imparti, le système client pourra alors décider de la prendre en compte ou de l’ignorer (à définir localement dans l’implémentation du système). |
Identification des services disponibles
La norme SIRI offre la possibilité de demander à un système la liste des services qu’il implémente (ceux qu’ils doivent normalement implémenter, indépendamment des éventuelles pannes), ce qui peut s’avérer utile du fait du caractère facultif d’implémentation de certains services (se référer à la partie 1 pour la liste des services à caractère obligatoire ou facultatif).
Il peut être utile pour des systèmes concentrateurs de pouvoir demander à un système distant les services qu’il implémente et ainsi se configurer automatiquement pour la gestion de l’échange.
Toutefois, cela peut aussi être réalisé au travers d’un simple mécanisme de configuration du serveur, qui sera de toute façon indispensable pour identifier la liste des serveurs SIRI à contacter (il suffit alors, pour chaque serveur, de préciser la liste des services disponibles).
R165 | De façon à ne pas alourdir le développement des systèmes la possibilité de « Capability Checking » proposée par SIRI n’est pas retenue, au profit d’un système non dynamique basé sur des fichiers de configuration (l’aspect dynamique et automatique ne présente pas d’intérêt particulier dans le cadre France). |
---|
Compression
R170 | De façon à limiter la taille des messages, une compression de type Gzip (proposée par SIRI) sera utilisée. Dans le contexte de l'utilisation de SOAP sur le protocole HTTP, elle sera mise en œuvre par les serveurs HTTP généralement par simple configuration. |
---|
Encodage des caractères
R175 | Les différentes chaines de caractères présentent dans les données XML seront encodées exclusivement en UTF-8 (abréviation de l’anglais Universal Character Set Transformation Format - 8 bits sans Bit-Order-Mark (BOM)). |
---|
Techniquement cela se traduira, si l’on souhaite
être explicite, par un <?xml version="1.0" encoding="UTF-8"?>
en entête du document. Mais cela n’est pas
indispensable car l’UTF-8 est la valeur par défaut quand l’encodage
n’est pas précisé.
Voir https://fr.wikipedia.org/wiki/UTF-8 pour plus de détail sur UTF-8.
Modalité d’utilisation des versions
Les principales règles d’utilisation des versions sont les suivantes. Soit deux versions de profil N et N+ (N+ étant une version postérieure à N).
Un client N peut s’adresser à un serveur N+. Le serveur N+ peut alors :
(solution non recommandée) Indiquer qu’il ne supporte pas cette version en utilisant le code d’erreur CapabilityNotSupportedError en précisant dans le champ CapabilityRef le numéro de version qui a été demandé (donc N ici),
adapter sa réponse pour la rendre conforme à la version N,
Transférer la requête à un serveur en version N (le “transfert” peut, techniquement, être réalisé de différentes façons, comme l'URL Forwarding, mais ceci relève du choix d’implémentation technique),
Un client N+ ne peut pas s’adresser à un serveur N en demandant la version N+ (le serveur ne supportant pas cette version N+). Si toutefois cela se produisait et que le serveur soit en mesure de décoder la requête sans générer d’erreur, il est recommandé de répondre qu’il ne supporte pas cette version en utilisant le code d’erreur CapabilityNotSupportedError en précisant dans le champ CapabilityRef le numéro de version qui a été demandé (donc N+ ici),
Un client N+ peut s’adresser à un serveur N en demandant la version N. La réponse lui est alors retournée en version N.
Note: Cette gestion de version n’est en rien incompatible avec l’insertion d’un numéro de version dans l’URL d’accès au service (avec éventuellement plusieurs URL si plusieurs versions sont disponibles). Ce type de gestion des versions à travers les URL est à négocier entre les partenaires impliqués dans l’échange.
Cas des passages échus, à venir
L’utilisation des « OnwardCall » et « PreviousCall », « recordedCall » mérite d’être précisée car elle est légèrement différente suivant qu’on les utilise dans le service StopMonitoring ou le service VehicleMonitoring.
R180 | Le « PreviousCall » n’a pas été retenu par le profil France et ne doit donc pas être utilisé. |
---|---|
R185 | Le « MonitoredCall» correspond à l’arrêt pour lequel on a fait l’interrogation (et n’est donc en aucun cas lié à la position du véhicule). Les « OnwardCall » correspondent alors à tous les arrêts suivant ce « MonitoredCall» dans le cadre des courses concernées. |
Dans le cas du service VehicleMonitoring le « MonitoredCall» correspond au dernier arrêt marqué ou à l’arrêt où se trouve le véhicule s’il est à l’arrêt. Les « OnwardCall » correspondent alors à tous les arrêts suivants pour ce véhicule dans le cadre de sa course.
Service SIRI Discovery
SIRI propose des services qui permettent d’effectuer l’échange de données référentielles (Discovery Services). Le tableau ci-dessous présente les services disponibles et ceux qui sont retenus pour le profil SIRI France :
Requête d'identification du référentiel | Commentaire |
---|---|
StopPointsRequest | Requête retenue pour le profil France. L'utilisation de ce service devra donc reposer sur des informations cohérentes d’identifiant des arrêts. Cette requête permet d'obtenir la liste de tous les points d'arrêts connus du système (voir la structure retournée, ci-dessous). |
LinesRequest | Requête retenue pour le profil France. Cette requête permet d'obtenir la liste de toutes les lignes connues du système (voir la structure retournée, ci-dessous). |
InfoChannelRequest | Requête retenue pour le profil France. Cette requête permet d'obtenir la liste de tous les canaux de messagerie proposés (voir la structure retournée, ci-dessous). Dans le cadre du profil France, seules les valeurs suivantes seront utilisées pour identifier les canaux: 1. « Perturbation », 2. « Information », 3. « Commercial ». NB : même il ne s'agit pas ici d'une donnée du référentiel cette information est traitée ici, car elle fait partie du « Discovery Service » proposé par SIRI. |
FacilityRequest | Requête retenue pour le profil France. Cette requête permet d'obtenir la liste de tous les équipements et services connus du système (voir la structure retournée, ci-dessous). Note: ce service n'est pas encore disponible dans la version actuelle de SIRI, mais fait partie des nouveaux services en cours de définition. |
Ces requêtes ne seront déployées que dans les cas où un référentiel théorique n’aura pas pu être identifié : leur implémentation est donc facultative et devra, autant que faire se peut, être temporaire.
Les services retenus sont donc : StopPointsRequest, LinesRequest, InfoChannelRequest et FacilityRequest. Les identifiants ainsi obtenus pourront être utilisés avec tous les Services SIRI disponibles sur le système les ayant fournis. On utilisera, par exemple, un même identifiant d’arrêt pour consulter les horaires à l’arrêt (avec le service « Stop Monitoring »), ou les informations de perturbation (service « Situation Exchange » et/ou « General Message »).
Les informations qu’ils procurent sont présentées ci-dessous :
Note: les services de découvertes SIRI permettent de connaître les noms des arrêts et lignes et l’appartenance des arrêts aux lignes mais en aucun cas la structure (itinéraire-Route, mission-Journey pattern et à fortiori course-vehicle Journey). Il conviendra donc de se tourner vers les données de référence de l’offre et un référentiel d’arrêt pour obtenir une information proprement structurée.
Discovery StopPoint
Requête StopPointsRequest
Note: Voir 3.2 pour les explications détaillées de lecture des tableaux qui suivent (codes couleurs, etc.).
StopPointsDiscoveryRequest | +Structure | Requête d’accès à la liste des arrêts |
Log | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête. |
Endpoint Properties | Address | 0:1 | EndpointAddress | Adresse réseau de destination de la réponse (ici une URL étant donné le choix d’implémentation SOAP). |
RequestorRef | 1:1 | ParticipantCode | Identifiant du demandeur (reprendre la structure [fournisseur] des identifiants). | |
MessageIdentifier | 0:1 | MessageQualifier | Identifiant unique de ce message. | |
Topic | BoundingBox | 0:1 | Filtre permettant de n’obtenir que les arrêts situés à l’intérieur d’un rectangle englobant. | |
➞ UpperLeft | 0:1 | LocationStructure | Coin supérieur gauche du rectangle englobant. | |
➞ LowerRight | 0:1 | LocationStructure | Coin inférieur droit du rectangle englobant. | |
OperatorRef | 0:1 | OperatorCode | Filtre permettant de n’obtenir que les arrêts utilisés par un opérateur donné. | |
LineRef | 0:1 | LineCode | Filtre permettant de n’obtenir que les arrêts utilisés par une ligne donnée. |
Réponses aux StopPointsRequest
La structure ci-dessous présente la description d’un arrêt tel que retourné par le service (mais sans les entêtes génériques de réponse SIRI).
AnnotatedStopPointStructure | +Structure | Description simplifiée d’un arrêt. |
Stop Identity | StopPointRef | 1:1 | StopPointCode | Identifiant du Point d'arrêt. Cf 5.4. Il convient d'utiliser ici un identifiant d'objet de référence. |
StopName | 1:1 | NaturalLanguageStringStructure | le champ«StopName» sera toujours présent et renseigné conformément au paragraphe 5.4. | |
Lines | 0:* | Liste des lignes passant à l'arrêt. | ||
➞ LineRef | 0:1 | LineCode | Identifiant d'une ligne (issu du référentiel des lignes). | |
Location | 0:1 | LocationStructure | Localisation géographique de l'arrêt. |
Discovery Line
Requête LinesDiscoveryRequest
LinesDiscoveryRequest | +Structure | Requête d’accès à la liste des lignes |
Log | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête. |
Endpoint Properties | Address | 0:1 | EndpointAddress | Adresse réseau de destination de la réponse (ici une URL étant donné le choix d’implémentation SOAP). |
RequestorRef | 1:1 | ParticipantCode | Identifiant du demandeur (reprendre la structure [fournisseur] des identifiants). | |
MessageIdentifier | 0:1 | MessageQualifier | Identifiant unique de ce message. | |
OperatorRef | 0:1 | OperatorCode | Filtre permettant de n’obtenir que les lignes exploitées par un opérateur donné. |
Réponses aux LinesRequest
AnnotatedLineStructure | +Structure | Description simplifiée d’une ligne. |
Line Identity | LineRef | 1:1 | LineCode | Identifiant de la ligne (issu du référentientiel des lignes). |
LineName | 1:1 | NaturalLanguageStringStructure | Nom de la ligne (issu du référentientiel des lignes).. | |
Monitored | 0:1 | xsd:boolean | Le champ obligatoire « Monitored » sera toujours égal à « true » indiquant ainsi que l’on dispose bien d’information temps réel à ce point (inutile de traiter les arrêts et lignes pour lesquels on n’a pas d’information temps réel) | |
Destinations | 0:* | AnnotatedDestinationStructure | Le champ facultatif « Destinations » reste facultatif et permettra d’indiquer, en plus des extrémités de la ligne, si elle est composée de plus de deux itinéraires (aller et retour). |
Discovery InfoChannel & Facility
Requêtes
Les requêtes ont toutes la même forme (l’exemple de la StopPointsRequest est fourni ci-dessous).
Dans le cadre du profil France :
Le champ facultatif «address» ne sera jamais présent,
Le champ facultatif «MessageIdentifier» sera toujours présent et instancié (utilisé en particulier pour la gestion des cas d’erreur).
Note: l’attribut « version » référence la version de SIRI utilisée (afin de permettre une gestion « sereine » des futures versions, voir 5.9).
La mise à jour des données de référence devra être réalisée périodiquement de façon à garantir la synchronisation des référentiels des différents systèmes. On pourra envisager différents modes de synchronisation :
Des synchronisations à heures fixes (quotidiennement la nuit ou en milieu de journée pour les réseaux nocturnes),
Des synchronisations à dates fixes (hebdomadaires, mensuelles, etc.),
Des synchronisations manuelles.
Il est difficile d’envisager ici tous les cas et modes de synchronisation, car l’objectif traité dans ces paragraphes n’est pas de préconiser « comment faire » mais de s’adapter aux systèmes existants.
Il faudra donc envisager des adaptations au cas par cas, à formaliser dans le cadre de la contractualisation entre les intervenants. Il est important de rappeler que ces accords particuliers devront traiter de façon explicite et détaillée les différents cas d’erreur qui pourront intervenir :
Impossibilité de consulter les référentiels à la date et/ou l’heure prévue,
Identification d’une incohérence de référentiel en exploitation, alors que le système est utilisé,
Modification tardive du référentiel par l’exploitant,
Etc.
Un tel mécanisme peut sembler attrayant, et il peut être tentant de le pérenniser. Il faut toutefois bien garder à l’esprit que s’il est pertinent pour deux systèmes en communication, il est beaucoup plus délicat à mettre en place pour un grand nombre de systèmes du fait de la problématique de mise à jour et de synchronisation qu’il implique: on a en effet un nombre d’échanges à prévoir égal à N*(N-1) où N est le nombre de systèmes (donc 20 synchronisations quotidiennes pour cinq systèmes).
Et, même si l’on a qu’un fournisseur et N clients, il est clair que la mise en place d’un référentiel spécifique à l’information temps réel ne permettra pas la mise en place de systèmes d’information complets permettant à l’utilisateur de passer sans difficulté de l’information théorique à l’information temps réel.
Réponses aux InfoChannelRequest
Tous les champs étant obligatoires, il n’y a pas d’adaptation au cadre du profil France (on définit tout de même les codes possibles : « Perturbation », « Information » ou « Commercial »).
On peut toutefois noter que le champ « icon » pourra souvent rester vide.
Note: voir la description du service de messagerie pour plus de précisions.
Réponses aux FacilityRequest
Dans le cadre du profil France :
le champ facultatif « Monitored » sera toujours présent et égal à « true » (inutile de traiter les équipements pour lesquels on n’a pas d’information temps réel ou au moins mis à jour quotidiennement.
Le champ facultatif «Facility» sera toujours présent :
Le champ facultatif «FacilityRef» ne sera jamais présent (déjà disponible au niveau supérieur),
Le champ facultatif «Description» reste facultatif,
Le champ facultatif «FacilityClass» reste facultatif,
Le champ facultatif «Feature» sera toujours présent et instancié,
Le champ facultatif «FacilityLocation» sera toujours présent et instancié,
Les champs facultatifs «SuitableFor» et «NotSuitableFor» restent facultatifs,
Le champ facultatif «Extension» ne sera jamais présent.
Les valeurs possibles pour ces différents champs seront celles proposées par SIRI, mais pourront être réduites aux valeurs jugées pertinentes dans le contexte France lors de l’implémentation du service , par exemple pour «SuitableFor» et «NotSuitableFor» on trouvera des possibilités comme :
auditory,
wheelChair,
motorizedWheelChair,
mobility,
visual,
cognitive,
psychiatric,
incapacitingdisease,
youngPassenger,
luggageEncumbered,
stroller,
elderly,
otherSpecificNeed.
Gestion des versions du profil SIRI FR
L’évolution des normes et du profil SIRI France dans le temps nécéssite de définir les règles permettant d’identifier la version d’un profil France SIRI.
Une compatibilité ascendante devra être assurée entre les versions du profil. Il n’y a par contre aucune garantie de compatibilité “descendante” : on peut assurer qu’un client de version antérieure puisse toujours s’adresser à un serveur de version postérieure, mais l’inverse ne peut être réalisé.
Le profil SIRI France intègre un mécanisme de gestion de version qui a plusieurs objectifs:
Permettre à un serveur de savoir suivant quel profil il doit répondre à une requête client (en supportant plusieurs versions ou en redirigeant les requêtes et donc sans contraindre tousles clients à changer de version en même temps que lui) ;
Permettre à un serveur de signaler à un client qu’il ne supporte pas la version demandée (plutôt que de lui répondre avec une erreur) ;
Permettre à un client de gérer les réponses d’un serveur d’une version antérieure.
Le principe de gestion de version est simple : il s’appuie sur les identifiants de version proposés par SIRI dans les en-têtes de toutes les requêtes de service (ce champ est disponible pour chacune des xxxxRequestStructure sous la forme d’un attribut nommé Version) ainsi que de chacune des réponses correspondantes (ce champs est disponible pour chacune des xxxxDeliveryStructure, là aussi sous la forme d’un attribut nommé Version).
Note : il s’agit bien ici de l’attribut Version au niveau des services et non de l’attribut que l’on trouve sur la racine Siri du schéma, cette dernière n’étant pas accessible dans le cadre des échanges SOAP.
La codification de version proposée par SIRI est de la forme x.y :
x constitue le numéro de version majeure, soit en l’occurrence la version de la norme (spécification technique (TS) précédemment),
y constitue le numéro de version mineure: il est potentiellement suivi d’une lettre (facultative) qui précise éventuellement la version de l’XSD utilisée, on aura par exemple une version 2.1n pour indiquer la version 2.1 de SIRI et la version n de l’XSD correspondant.
Par exemple pour SIRI 1, les versions 1.0, 1.2, 1.3 et 1.4, et pour SIRI 2, la version 2.1 est actuellement disponible.
La codification de la version de profil se fait de la façon suivante : x.y:FR-a.b-c-d (par exemple “2.1:FR-1.0").
x.y étant la version de SIRI (obligatoire): le x est un entier et les y est un entier potentiellement suivi d’une lettre.
: est un délimiteur obligatoire.
FR le digramme de la France (ISO 3166-1 alpha-2) (obligatoire).
- est un délimiteur obligatoire
a.b est la version du profil (obligatoire). a et b sont des chiffres entiers.
- est un délimiteur facultatif (doit être omis si ni c ni d ne sont présents, obligatoire sinon).
c est le numéro de version du service concerné (facultatif). Il est constitué d’un ou deux caractères numériques. Il permettra d’identifier des possibles ajustements futurs spécifiques à ce service.
- est un délimiteur facultatif (doit être omis si d n’est pas présent, mais est impératif si d est présent).
d est le numéro de version le l’implémentation locale (numéro de version logicielle du serveur SNCF, Transdev, RATP, Keolis, du relais, etc.). d est constitué de chiffres et de “.” uniquement.
Les exemples ci-dessous sont valides au titre de cette codification :
2.1:FR-1.0,
2.0:FR-1.0-1.
Partie III. Description détaillée des messages
Les paragraphes ci-dessous présentent les services retenus dans le cadre du profil SIRI France d’un point de vue « description technique des messages ».
Le principe de ces services a déjà été présenté en amont dans ce document, ce qui est présenté ici correspond aux tableaux détaillés des services que l’on trouve dans le document « SIRI-Partie 3 », traduit en français (seules les descriptions sont traduites, les noms des éléments et leurs types restent en anglais, car c’est ainsi qu’on les retrouvera dans l’échange XML) et précisant l’utilisation des différents champs, le maintien ou non de leur caractère facultatif, etc.
Les éléments retenus pour le profil sont surlignés en Gris.
Les éléments non retenus pour le profil sont en texte masqué surligné bleu
Les éléments ne comportant aucune marque font partie du profil conformément aux spécifications de la norme SIRI.
L’ensemble des services présentés s’appuie sur la norme SIRI en version 2.1.
Des mises à jour de version de SIRI pourront être envisagées, au fur et à mesure des évolutions et corrections de SIRI. Toutefois, la prise en compte d’une nouvelle version de SIRI ne pourra être réalisée que si elle a été validée par une mise à jour du présent document.
Estimated Timetable
La norme SIRI ne pose aucune hypothèse ni aucune limite sur la durée exacte des journées d’exploitation (possibilité de passer minuit), les informations pourront donc être remontées indépendamment de la durée de la journée d’exploitation.
Note : Les mécanismes de datation SIRI sont normalisés ISO. Un changement de jour se traduit par un incrément du jour et l’initialisation des heures, minutes et secondes.
Par contre si un système s’attend à recevoir des données après minuit et que le fournisseur n’est pas en mesure de les produire, cela peut poser problème : ce point sera donc à qualifier, si nécessaire, dans le cadre des protocoles d’accord entre AOT et OTP.
Requête d’informations horaires calculées sur la ligne
EstimatedTimetableRequest | +Structure | Requête d’informations horaires calculées sur la ligne |
---|
Attributes | Version | 1:1 | VersionString | Version du service “ Estimated Timetable”, intégrant le numéro de version de profil (voir 5.9) par exemple - ‘2.1:FR-1.0’ |
---|---|---|---|---|
Endpoint Properties | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête. |
MessageIdentifier | 1:1 | MessageQualifier | Numéro d’identification du message | |
Topic | PreviewInterval | 0:1 | PositiveDurationType | Si ce paramètre est présent, il indique que l’on souhaite recevoir des informations sur toute course proposant au moins une arrivée ou un départ intervenant dans la durée indiquée (à partir de l’heure de réception de la requête). S’il n’est pas présent, toutes les informations disponibles sur la journée d’exploitation sont remontées. |
TimetableVersionRef | 0:1 | xsd:string | Version du référenciel théorique connue : seuls les écarts par rapport à ce référentiel seront transmis. | |
OperatorRef | 0:1 | ➞ OperatorCode | Identifie l’exploitant pour lequel on souhaite obtenir des informations. | |
Lines | 0:* | +structure | Liste des lignes contenant les courses pour lesquelles on souhaite des informations. | |
➞ LineDirection | 0:1 | ➞ LineDirectionCode | Identifie la ligne pour laquelle on souhaite obtenir des informations. | |
Any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Abonnement aux horaires calculés sur la ligne
Les notifications sont gérées de façons très légèrement différentes en EstimatedTimetable et StopMonitoring (du fait des différences structurelles des services).
Le tableau ci-dessous précise les conditions de notification pour EstimatedTimetable.
Notification | Commentaire |
---|---|
Changement (incluant une première inscription dans le champ) d’une des heures de passage d’une valeur supérieure ou égale à ChangeBeforeUpdate par rapport à la précédente notification. | Notification différentielle (uniquement des Call concernés par ces changements) similaire à celle de StopMonitoring. |
Lorsque le véhicule quitte l’arrêt (sauf pour le dernier arrêt) | Notification en positionnant le champ DepartureStatus à “departed”. |
A minima pour le dernier arrêt (et si possible pour tous les arrêts), lorsque le véhicule arrive à l’arrêt | Notification en positionnant le champ VehicleAtStop à ’True’ |
En cas de changement de quai | Notification en positionnant les informations relatives au quai. |
EstimatedTimetableSubscriptionRequest | +Structure | Requête d’abonnement aux horaires calculés sur la ligne |
---|
Identity | SubscriberRef | 1:1 | → ParticipantCode | Identification du système demandeur (voir SIRI Partie 2 Common SubscriptionRequest parameters.) |
---|---|---|---|---|
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant de l'abonnement pour le système demandeur. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure de fin de l'abonnement : un abonnement a forcément une date et une heure de fin (les partenaires pourront décider de limiter la durée maximale d’un abonnement). |
Request | EstimatedTimetableRequest | 1:1 | +Structure | Voir EstimatedTimetableRequest. |
Policy | ChangeBeforeUpdate | 1:1 | PositiveDurationType | Permet d'indiquer un écart de temps en dessous duquel on ne souhaite pas être notifié (si l'on demande un seuil de 5mn et qu'un horaire de départ change de 2 minutes, on ne sera pas notifié, évitant ainsi des flux d'information inutiles). Si ce champ n'est pas présent, une valeur de 5 minutes est prise par défaut. C’est une valeur « par défaut », qui est volontairement haute pour ne pas surcharger les échanges : dans le cas nominal elle devra être précisée avec une valeur plus faible (mais tous les systèmes ne fonctionnent pas à la minute, surtout côté client). Dans le cadre des échanges avec un concentrateur la valeur par défaut est de 1 minute. De plus il est important de noter que l'abonnement à Estimated Timetable fonctionne exclusivement en mode incrémental : ce service est en effet conçu pour les échanges en volume, et ne pas utiliser le mode incrémental serait complètement contreproductif par rapport à l'objectif de limiter les volumes d'échange. |
Réponse aux requêtes d’horaires calculés sur la ligne
EstimatedTimetableDelivery | +Structure | Décrit une Dated Timetable (horaire pour un jour d’application donné). |
---|
Attributes | version | 1:1 | VersionString | Numéro de version du service Estimated Timetable, intégrant le numéro de version de profil (voir 5.9) (valeur fixe). |
---|---|---|---|---|
LEADER | :: | 1:1 | xxxDelivery | Voir xxxDelivery. |
Payload | EstimatedJourneyVersionFrame | 0:* | +Structure | Voir EstimatedJourneyVersionFrame element. |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Structure EstimatedJourneyVersionFrame
EstimatedJourneyVersionFrame | +Structure | Fournit les horaires attendus pour un itinéraire (ligne+direction) donné. |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure à laquelles ces données ont été produites. |
---|---|---|---|---|
Identity | VersionRef | 0:1 | → VersionCode | Contexte d'identification de la course (SAE pour le jour d'exploitation, version du référentiel de données, etc.). Ce champ permet de qualifier la version des données de référence ie version du référentiel théorique (voir 2.5). |
Journeys | EstimatedVehicleJourney | 1:* | +Structure | Description des courses sur l’itinéraire. Voir EstimatedVehicleJourney element. |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Structure EstimatedVehicleJourney
EstimatedVehicleJourney | +Structure | Description d’une course. |
---|
Vehicle Journey Identity | LineRef | 1:1 | → LineCode | Identifiant de la ligne. | ||
---|---|---|---|---|---|---|
DirectionRef | 1:1 | → DirectionCode | Identifie la direction (typiquement Aller/Retour). La sélection de ce champ n’est pas dans la logique du reste du profil (plutôt porté sur Destination, voir plus bas) mais est maintenu du fait de la cardinalité imposée par SIRI (le champ est obligatoire dans la description XSD de SIRI et doit donc être maintenu, il pourra toutefois être laissé vide, sans que cela ne pose problème…) | |||
choix | –1:1 | Seul le choix a, b ou c est possible … | ||||
a) DatedVehicleJourneyRef | 0:1 | → DatedVehicleJourneyCode | Identifie la course. Cette information est obligatoire dans le cadre des échanges avec un concentrateur. | |||
b) EstimatedVehicleJourneyCode | 0:1 | EstimatedVehicleJourneyCode | Permet d’identifier une nouvelle course (course ajoutée par rapport aux horaires théoriques). Si ce champ est présent,. ExtraJourney doit être positionné à ‘true’ (et réciproquement…). Cette information est obligatoire (si une course a été ajoutée) dans le cadre des échanges avec un concentrateur. Dans le cas ou l'adjonction de course ne peut être détectée, la structure DatedVehicleJourneyRef sera remplie comme pour les autres courses. | |||
c) DatedVehicleJourneyIndirectRef | 0:1 | +Structure | Si les systèmes en communication n’ont pas de référentiel commun pour identifier les courses, la structure ci-dessous permet de la décrire succinctement. | |||
➞ OriginRef | 1:1 | → StopPointCode | Identifiant du premier point d’arrêt de la course. | |||
➞ AimedDepartureTime | 1:1 | xsd:dateTime | Heure de depart (théorique) au premier point d’arrêt. | |||
➞ DestinationRef | 1:1 | → StopPointCode | Identifiant du dernier point d’arrêt de la course. | |||
➞ AimedArrivalTime | 1:1 | xsd:dateTime | Heure d’arrivée (théorique) au dernier point d’arrêt. | |||
Change | ExtraJourney | 0:1 | xsd:boolean | Signale qu’il s’agit d’une nouvelle course, ajoutée par rapport aux horaires théoriques. Valeur par défaut : « false » | ||
Cancellation | 0:1 | xsd:boolean | Signale la suppression de la course identifiée. Valeur par défaut : « false » | |||
JourneyPattern Info | :: | 0:1 | JourneyPatternInfoGroup | Voir JourneyPatternInfoGroup. | ||
JourneyEndNames | ::: | 0:1 | JourneyEndNamesGroup | Voir JourneyEndNamesGroup | ||
VehicleJourneyInfo | ::: | 0:1 | VehicleJourneyInfoGroup | Voir VehicleJourneyInfoGroup | ||
Service Info | ::: | 0:1 | ServiceInfoGroup | Voir ServiceInfoGroup. | ||
Journey Info | VehicleJourneyName | 0:1 | NLString | Nom commercial de la course. | ||
JourneyNote | 0:* | NLString | Texte complémentaire décrivant la course. | |||
EstimatedInfo | HeadwayService | 0:1 | xsd:boolean | Indique si la course est gérée dans un contexte d’exploitation (ou d’information seulement) en fréquence. Valeur par défaut : « false ». | ||
OriginAimedDepartureTime | 0:1 | xsd:dateTime | Heure théorique de départ de la course à son point de départ. | |||
DestinationAimedArrivalTime | 0:1 | xsd:dateTime | Heure théorique d'arrivée de la course à son point de d'arrivée. | |||
FirstOrLastJourney | 0:1 | FirstOrLastJourneyEnum | Indique s'il s'agit de la première ou de la dernière course de la journée d'exploitation sur la ligne, et pour une destination donnée. L'interprétation comme "première ou dernière course pour une mission donnée" est acceptable, mais devra être précisée dans les spécifications d'interface du serveur (et le JourneyPatterInfoGroup devra alors être renseigné). (firstServiceOfDay | lastServiceOfDay | otherService | unspecified). | |||
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionGroup. | ||
JourneyProgressInfo | ::: | 0:1 | JourneyProgresssInfoGroup | voir JourneyProgressInfoGroup. DetailLevel: normal. | ||
OperationalInfo | TrainNumber | 0:* | sequence | Séquence de numéro de train (l'utilisation d'une sequence permet notament de gérer les trains couples) | ||
➞ TrainNumberRef | 1:1 | ➞ TrainNumber | Numéro de train | |||
JourneyParts | 0:* | sequence | Liste des parties de course concernée par les Call ci-dessous. | |||
➞ JourneyPartInfo | 1:1 | +Structure | Information sur les parties de course | |||
⇉ JourneyPartRef | 0:1 | ➞ JourneyPartCode | Dans le cadre du profil France ce champ permettra d'identifier les portions de courses exploitées par des opérateurs différents : les valeurs d'identification des JourneyPart sont des données de référence qui devront être fixées en amont de l'échange. Exemple de Ile de France : cas du RER, les portions de courses exploitées par la RATP et celles exploitées par la SNCF | |||
⇉ TrainNumberRef | 0:1 | ➞ TrainNumber | n'ont pas été échangés mais que la parité doit tout de même être échangée, le champ précédent (JourneyPartRef, qui est obligatoire) prendra la valeur arbitraire de "unknown". | |||
Calls | ➞ RecordedCalls | 0:1 | +Structure | Description ordonnée des passages déjà réalisés | ||
⇉ RecordedCall | 1:* | +Structure | Décrit un arrêt déjà desservi par la course. | |||
➞ EstimatedCalls | 0:1 | +Structure | La séquence des arrêts déjà desservis dans l'ordre où ils ont été desservis par le VehicleJourney. Veuillez noter que tous les arrêts de la séquence doivent être dans l'ordre chronologique. (Sauf si l'enregistrement d'un appel est manqué, cet appel peut être conservé dans la séquence en tant qu'appel estimé correspondant même après avoir été passé.) | |||
⇉ EstimatedCall | 1:* | +Structure | Voir EstimatedCall. | |||
IsCompleteStopSequence | 0:1 | xsd:boolean | Indique si la liste des arrêts est complète ou non. Dans le cadre du profil France, en mode requête-réponse, elle sera toujours complète - le champ vaudra donc ‘true’ (on remonte l'ensemble des passages non encore échus). En mode abonnement, le mode différentiel étant appliqué, la séquence d'arrêt sera régulièrement incomplète. Il faut noter que cette indication ne concerne que les passages à échoir et non les passages déjà échus. | |||
Any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Structure RecordedCall
Structure permettant de décrire les informations concernant un arrêt déjà desservi par une course.
RecordedCall | +Structure | Décrit un arrêt déjà desservi par la course. |
---|
Stop Identity | StopPointRef | 1:1 | → StopPointCode | Identifiant du Point d'arrêt (cet identifiant est à rapprocher de l’attribut MonitoringRef de la structure MonitoredStopVisit, mais restreint à ce cas de point d’arrêt là ou le MonitoringRef peut aussi, dans le contexte général de SIRI, , référencer un afficheur, par exemple). |
---|---|---|---|---|
Order | 1:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. Veuillez noter que la séquence doit contenir tous les arrêts décrits (appel), c'est-à-dire que l'ordre doit être une séquence continue de l'appel enregistré enregistré à l'appel estimé à venir. | |
StopPointName | 0:1 | NLString | Nom du point d'arrêt. | |
Change | ExtraCall | 0:1 | xsd:boolean | Signale si cet arrêt a été ajouté sur la course (par rapport aux horaires théoriques). |
Cancellation | 0:1 | xsd:boolean | La valeur « true » signale que, contrairement à ce que prévoyaient les horaires théoriques, cet arrêt n’est plus desservi. Valeur par défaut : « false ». | |
Occupancy | 0:1 | full | seatsAvailable | standingAvailable | unknown | empty | manySeatAvailable | fewSeatAvailable | standingRoomOnly | crushStandingRoomOnly | notAcceptingPassengers | Indique le niveau d’occupation du vehicule au départ de l’arrêt. Ne permet pas de distinguer le taux d’occupation par voiture. On utilisera les attributs au niveau de la course. Valeur par défaut « Unknown ». Valeurs issues du CR17. | |
PlatformTraversal | 0:1 | xsd:boolean | La valeur « true » permet de signaler le passage d'un train sans arrêt (et de demander au voyageur de s'écarter des voies). Valeur par défaut : « false ». | |
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionGroup. |
Arrival | AimedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée théorique (ou commandée). |
ActualArrivalTime | 0:1 | xsd:dateTime | Heure réalisée. A renseigner sauf pour le terminus départ | |
ExpectedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée estimée par le SAE. À utiliser uniquement si l’arrêt correspondant a été enregistré avec le statut d'arrivée "manqué" et/ou si l'heure d'arrivée réelle de cet arrêt enregistré est inconnue/annulée, car l’arrêt n'a pas été desservi malgré la planification ou les données d'arrivée pour l’arrêt desservi n'ont pas été enregistrées. | |
ArrivalStatus | 0:1 | onTime | missed | arrived | notExpected | | delayed | early | cancelled | noReport | Caractérisation de l'horaire d'arrivée attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « onTime » Cf 6.2.2.2. | |
ArrivalProximityText | 0:* | NLString | Texte libre à présenter quand le véhicule est proche, par exemple "à l'approche". | |
ArrivalPlatformName | 0:1 | NLString | Identification ou nom du quai d'arrivée (zone d’embarquement). | |
ArrivalBoardingActivity | 0:1 | alighting | noAlighting | passThru | On utilisera le DepartureBoardingActivity dans le profil France. | |
ArrivalStopAssignment | 0:1 | +Structure | Affectation du point d'arrêt planifié à un quai (zone d’embarquement). | |
➞ AimedQuayRef | 0:1 | ➞ QuayCodeType | Physical QUAY to use according to the planned timetable. | |
➞ AimedQuayName | 0:1 | NLString | Indication de la voie d'arrivée (en complément de Platform). | |
➞ ExpectedQuayRef | 0:1 | ➞ QuayCodeType | Physical QUAY to use according to the real-time prediction. | |
Departure | AimedDepartureTime | 0:1 | xsd:dateTime | Heure de départ théorique (ou commandée). |
ActualDepartureTime | 0:1 | xsd:dateTime | Heure de départ réalisée. A renseigner sauf pour le terminus d’arrivée. | |
ExpectedDepartureTime | 0:1 | xsd:dateTime | Heure de départ estimée par le SAE. | |
Departure Status | DepartureStatus | 0:1 | onTime | early | delayed | cancelled | arrived |departed | notExpected | noReport | Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « onTime ». Cf 6.2.2.2. |
DeparturePlatformName | 0:1 | NLString | Identification ou nom du quai de départ (zone d’embarquement).. | |
DepartureBoardingActivity | 0:1 | boarding | noBoarding | passThru | Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « boarding ». | |
➞ ExpectedQuayRef | 0:1 | ➞ QuayCodeType | Physical QUAY (Platform) to use according to the real-time prediction. | |
ExpectedDepartureOccupancy | 0:1 | +structure | Permet de décrire l’occupation d’un véhicule à un arrêt. Cf § 6.1.3.2. | |
ExpectedDepartureCapacity | 0:1 | +structure | Permet de décrire les capacités d‘un véhicule selon le type de place cf § 6.1.3.3. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure EstimatedCall
EstimatedCall | +Structure | Description d’un arrêt prévu, avec ses informations horaires. |
---|
Stop Identity | StopPointRef | 1:1 | ➞ StopPointCode | Identifiant du Point d'arrêt (cet identifiant est à rapprocher
de l’attribut MonitoringRef de la structure
MonitoredStopVisit, mais restreint à ce cas de point d’arrêt là
ou le MonitoringRef peut aussi, dans le contexte général de
SIRI, |
---|---|---|---|---|
Order | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
StopPointName | 0:1 | NLString | Nom du point d'arrêt. | |
Change | ExtraCall | 0:1 | xsd:boolean | Signale si cet arrêt a été ajouté sur la course (par rapport aux horaires théoriques). |
Cancellation | 0:1 | xsd:boolean | La valeur « true » signale que, contrairement à ce que prévoyaient les horaires théoriques, cet arrêt n’est plus desservi. Valeur par défaut : « false ». | |
Occupancy | 0:1 | full | seatsAvailable | standingAvailable | unknown | empty | manySeatAvailable | fewSeatAvailable | standingRoomOnly | crushStandingRoomOnly | notAcceptingPassengers | Indique le niveau d’occupation du vehicule à l’arrêt. Ne permet pas de distinguer le taux d’occupation par voiture. On utilisera les attributs au niveau de la course. Valeur par défaut « Unknown ». Valeurs issues du CR17. | |
Call Rail Group | PlatformTraversal | 0:1 | xsd:boolean | La valeur « true » permet de signaler le passage d'un train sans arrêt (et de demander au voyageur de s'écarter des voies). Valeur par défaut : « false ». |
Call Property | DestinationDisplay | 0:1 | NLString | Destination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local). |
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionGroup. |
Arrival | AimedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée théorique (ou commandée). |
ExpectedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée estimée par le SAE. | |
ArrivalStatus | 0:1 | onTime | missed | delayed | early | cancelled | noReport | Caractérisation de l'horaire d'arrivée attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « onTime ». Cf 6.2.2.2. | |
ArrivalProximityText | 0:* | NLString | Texte libre à présenter quand le véhicule est proche, par exemple "à l'approche". | |
ArrivalPlatformName | 0:1 | NLString | Identification ou nom du quai d'arrivée (zone d’embarquement). | |
ArrivalStopAssignment | 0:1 | +Structure | Affectation du point d'arrêt planifié à un quai (zone d’embarquement). | |
➞ AimedQuayName | 0:1 | NLString | Indication de la voie d'arrivée (en complément de Platform). | |
Departure | AimedDepartureTime | 0:1 | xsd:dateTime | Heure de départ théorique (ou commandée). |
ExpectedDepartureTime | 0:1 | xsd:dateTime | Heure de départ estimée par le SAE. | |
Departure Status | DepartureStatus | 0:1 | onTime | early | delayed | cancelled | noReport | Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « onTime ». Cf 6.2.2.2. |
DeparturePlatformName | 0:1 | NLString | Identification ou nom du quai de départ (zone d’embarquement).. | |
DepartureBoardingActivity | 0:1 | boarding | noBoarding | passThru | Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « boarding ». | |
ExpectedDepartureOccupancy | 0:1 | +structure | Permet de décrire l’occupation d’un véhicule à un arrêt. Cf § 6.1.3.2. | |
ExpectedDepartureCapacity | 0:1 | +structure | Permet de décrire les capacités d‘un véhicule selon le type de place cf § 6.1.3.3. | |
AimedHeadwayInterval | 0:1 | PositiveDuration | Fréquence de passage théorique (ou commandée). | |
EstimatedHeadwayInterval | 0:1 | PositiveDuration | Fréquence de passage estimée par le SAE. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Il faut noter que le document SIRI donne des indications nombreuses et précises sur cette structure, en particulier en « partie 3 : 6.6 Handling of Predictions in the Estimated Timetable Service ».
ExpectedDepartureOccupancy
Expected-Departure-Occupancy | 0:* | +Structure | Occupations en temps réel d'un véhicule et réservations au départ d'un arrêt donné. Il peut s'agir d'un retour d'information d'un système de comptage automatique des passagers (APC) ou de valeurs estimées à partir de statistiques. |
---|---|---|---|
Passenger-Category | 0:1 | NLString | Adulte, enfant, fauteuil roulant etc. |
Occupancy-Level | 0:1 | Occupancy-Enumeration | Un chiffre approximatif de l'occupation ou du remplissage du VÉHICULE, par ex. ‘manySeatsAvailable’ ou ‘standingRoomOnly’. Des données plus précises peuvent être fournies par les occupations ou capacités individuelles ci-dessous.L’énumération ‘occupancy’ est le suivant : full | seatsAvailable | standingAvailable | unknown | empty | manySeatAvailable | fewSeatAvailable | standingRoomOnly | crushStandingRoomOnly | notAcceptingPassengers |
Occupancy-Percentage | 0:1 | PercentageType | Pourcentage utilisé de la charge utile maximale après le départ du POINT D'ARRÊT PRÉVU. |
AlightingCount | 0:1 | NumberOf-Passengers | Nombre total de passagers descendants pour cette course à ce POINT D'ARRÊT PLANIFIE. |
Boarding-Count | 0:1 | NumberOf-Passengers | Nombre total de passagers embarquant pour cette course à ce POINT D'ARRÊT PLANIFIE. |
OnboardCount | 0:1 | NumberOf-Passengers | Nombre total de passagers à bord après le départ du POINT D'ARRÊT planifié. |
Group-Reservation | 0:* | +Structure | Permet de préciser qu'un groupe de voyage a réservé une section du véhicule pour une partie du trajet, et si oui sous quel nom. |
➞ NameOf-Group | 1:1 | NLString | Nom pour lequel le groupe de voyage a effectué la réservation. |
➞ NumberOf-Seats | 1:1 | NumberOfPassengers | Nombre de places réservées par le groupe. |
Structure ExpectedDepartureCapacity
Expected-Departure-Capacities | 0:* | +Structure | Capacités en temps réel (nombre de places disponibles) d’un VEHICULE après le départ d’un arrêt donné. Autre moyen de communiquer les mesures d’occupation. |
---|
::: | 0:1 | TrainFormation-ReferenceGroup | Voir SIRI Partie 2 TrainFormationReferenceGroup. |
---|---|---|---|
Passenger-Category | 0:1 | NLString | Adulte, enfant, fauteuil roulant etc. |
TotalCapacity | 0:1 | NumberOf-Passengers | La capacité totale du véhicule en nombre de passagers. |
Seating-Capacity | 0:1 | NumberOf-Passengers | Le nombre de places assises du véhicule en nombre de passagers. |
Standing-Capacity | 0:1 | NumberOf-Passengers | La capacité debout du véhicule en nombre de passagers. |
Pushchair-Capacity | 0:1 | NumberOf-Passengers | Le nombre de places de poussette du véhicule. |
Wheelchair-PlaceCapacity | 0:1 | NumberOf-Passengers | Le nombre de places en fauteuil roulant du véhicule. |
PramPlace-Capacity | 0:1 | xsd:nonnegative-Integer | Le nombre de places du véhicule adaptées aux poussettes. |
BicycleRack-Capacity | 0:1 | xsd:nonnegative-Integer | Le nombre de porte-vélos du véhicule. |
Gestion des passages échus
Ce paragraphe a pour objectif de décrire la gestion de la transition entre un passage estimé (EstimatedCall) et un passage échu (RecordedCall).
La trame ET permet de transmettre pour chaque course les informations relatives aux prochaines passages (estimatedcall) à réaliser et ceux déjà réalisés (recordedcall).
Les EstimatedCall contiennent des informations horaires sur les arrivées et/ou départ à un arrêt : théorique (aimed) ou estimée (estimated).
Les RecordedCall permettent de renseigner les informations horaires sur les arrivées et/ou départ à un arrêt déjà réalisés par une course.
Tout événement ‘Véhicule arrivé’ ou ‘véhicule départ’ déclenche une mise à jour de l’EstimatedVehicleJourney des données réalisées (‘Actual’) du recordedCall.
La définition de l’évènement véhicule arrivé ou Véhicule parti n’est pas définie dans le cadre du profil France. A titre d’exemple les implémentations les plus répondues pour la détection :
de l’arrivée d’un véhicule sont :
Libération du verrouillage des portes après arrêt du véhicule
déclenchement d’un evenement de signalisation d’entrée dans une zone d’arrêt ;
du départ d’un véhicule sont :
Verrouillage des portes d’un véhicule à l’arrêt
déclenchement d’un evenement de signalisation de sortie de zone d’arrêt ;
Les schémas ci-dessous décrivent pour une course les structures Estimated/Recorded call utilisées en fonction de la localisation du véhicules.
1, 2, 3 et 4 representent des arrêts.
(E) indique que les information horaires de la course à un arrêt sont positionnées dans un EstimatedCall.
(R) indique que les information horaires de la course à un arrêt sont positionnées dans un RecordedCall.
Cas Général
Avant le départ de la course
Les trames ET ne contiennent que des EstimatedCall
Pendant la course
Les informations relatives aux arrêts déjà désservis sont transmises dans les structures RecordedCall.
A l’arrêt
Considérons un véhicule réalise une séquence d’arrêt 1 => 2 => 3.
1. Sur la route ou les rails entre l’arrêt 1 et 2 (le véhicule est déjà parti de l’arrêt 1 mais n’est pas encore arrivé à l’arrêt 2), les EstimatedCalls sont transmis pour tous les arrêts à venir. En particulier, les mises à jour SIRI ET sont transmises pour les ajustements de l’heure prévue à l’arrêt 2 (voir ci-dessus).
2. Dès que le véhicule arrive effectivement à l’arrêt 2 (le déclencheur est, par exemple, un événement de déverrouillage de porte), une mise à jour RecordedCall est transmise avec l’ActualArrivalTime correspondant.
3. Toujours à l’arrêt 2, si le véhicule doit attendre un peu plus longtemps que prévu, une mise à jour SIRI-ET correspondante doit être déclenchée avec un ajustement de la ExpectedDepartureTime du recordedCall pour le départ retardé à l’arrêt 2. La mise à jour SIRI-ET correspondant à cet événement doit au moins comprendre l’arrêt de référence RecordedCall de l’arrêt 2 (par StopPointRef) ainsi que le ExpectedDepartureTime ajusté de ce recordedcall.
4. Après le départ effectif du véhicule à l’arrêt 2 (le déclencheur est, par exemple, un événement de verrouillage de porte), le RecordedCall enregistré à l’étape 3 pour l’arrêt 2 est mis à jour avec ActualDepartureTime.
Comme règles générales dans ce contexte :
ET001 | L’implémentation des recordedcalls est facultative. |
---|---|
ET010 | Un seul type de passage (enregistré ou estimé) est associé à un arrêt à un moment donné dans un cycle de vie EstimatedVehicleJourney ou une séquence de messages de mise à jour. |
ET015 | Après l’enregistrement de l’arrivée effective à un arrêt, toutes les mises à jour potentielles se rapportant à cet arrêt doivent être transmises dans les RecordedCall respectifs. |
ET020 | Si, lors de l’activation d’un nouvel abonnement, toutes les courses actives sont transmises, le producteur doit également inclure pour ces courses les RecordedCalls déjà transmis (pour chaque trajet estimé) de ces arrêts qui sont déjà dans le passé ou qui ont été enregistrés. |
Cas particulier
Passage sans arrêt
Si un véhicule passe par un arrêt sans réellement s’arrêter ou ne s’arrête que brièvement sans ouvrir ses portes (en déverrouillant ses portes), le producteur de données définira les propriétés Arrival- et DepartureBoardingActivity sur ‘passThru’ indépendamment du fait que le passthrough était prévu, attendu ou exceptionnel (inconnu avant la survenance de l’événement).
À partir de SIRI 2.1, BoardingActivity peut également être spécifié dans un RecordedCall. Il est donc possible d’enregistrer explicitement un passage exceptionnel par rapport à l’interface SIRI-ET. Ainsi, au lieu d’une mise à jour du BoardingActivity présent dans l’EstimatedCall en tant qu’effet de l’événement passthrough, seule la mise à jour RecordedCall suivante est déclenchée avec les informations BoardingActivity requises.
Si les événements d’arrivée et de départ sont déclenchés par des signaux d’entrée et de sortie, les événements de passage sont généralement également pris en charge. Cependant, si les événements d’arrivée et de départ sont déclenchés par des signaux d’ouverture/fermeture de portes, alors un passage sans arrêt n’activera aucun événement permettant un enregistrement de l’heure réelle de passage, ni une mise à jour RecordedCall. Ce dernier ne sera généré qu’au prochain événement déclencheur de message y compris le prochain événement d’arrivée ou de départ à un arrêt ultérieur. Sans mécanismes supplémentaires (par exemple, déclenchés manuellement par le conducteur), cela retarde potentiellement, voire empêche, la suppression des messages des panneaux d’affichage (ce qui doit se produire immédiatement après le départ).
Arrêt Optionel
Si un véhicule ne s’arrête pas réellement dans le cas où RequestStop est “vrai” pour le passage estimé correspondant, alors le producteur doit se comporter comme si le véhicule s’était arrêté. En conséquence, non seulement un RecordedCall doit être généré avec des enregistrements des temps réels mais également la course immédiatement supprimée de tous les panneaux d’affichage.
Stop Monitoring
SM005 | La notion de «niveau de détail » (Detail Level) proposée pour ce service par SIRI n’est pas retenue pour le profil SIRI France. |
---|
Matrice de capacité
SM010 | Cette matrice n’est pas échangée dans le cadre du profil France : |
---|
Cette,matrice est présentée ici pour indiquer les principales fonctions retenues pour le service (les explications ne sont pas traduites dans ce tableau, mais on retrouve les traductions dans les tableaux qui suivent).
TopicFiltering | ||
DefaultPreviewInterval | Oui | |
FilterByMonitoringRef | Oui | |
FilterByLineRef | Oui | |
FilterByDestination | Oui |
RequestPolicy | ||
GmlCoordinateFormat | Oui | |
UseReferences | Oui | |
UseNames | Oui | |
HasMinimumStopVisitsPerLine | Oui | |
HasNumberOfOnwardsCalls | Oui | |
SubscriptionPolicy | HasIncrementalUpdates | Oui |
HasChangeSensitivity | Oui |
Requête d’information temps réel au point d’arrêt
Granularité des points d’arrêt
Note importante : Il est possible d’effectuer une requête sur un ensemble de points d’arrêt. On constatera, ci-dessous, que le champ « MonitoringRef », qui caractérise le point d’arrêt, a une cardinalité 1:1, cela vient du fait que c’est l’ensemble du bloc « StopMonitoringRequest » qui doit être répété au sein de la structure « ServiceRequest ». Cela se justifie par le fait que, dans un certain nombre de cas, la désignation du simple « MonitoringRef » peut s’avérer insuffisante (s‘il s’agit d’un ‘Lieu d’arrêt (multimodal), on pourra, par exemple, être amené à préciser la ligne et la destination en plus du « MonitoringRef »…).
Note concernant la granularité des objets interrogés :
Le « MonitoringRef » peut aussi bien référencer :
Un lieu d’arrêt multimodal,
Un pôle monomodal,
Un lieu d’arrêt monomodal,
une Zone d’Embarquement.
SM015 | Toutefois il n’y a pas d’obligation pour un serveur de supporter tous ces niveaux (sauf pour les concentrateurs pour lesquels le Lieu d’arrêt (multimodal/monomodal est obligatoire): il conviendra donc de s’assurer que le serveur sollicité reconnait bien le niveau requis |
---|
Statuts de départ & Arrivée
Note concernant les heures de passage :
SIRI propose plusieurs niveaux d’information sur les heures de passage:
Aimed(Departure/Arrival)Time : Heure d’arrivée ou de départ théorique. Il s’agit là de l’heure planifiée (figurant dans les fichiers horaires). Il peut aussi s’agir de l’horaire replanifié du matin s’il est disponible (horaire commandé).
Actual(Departure/Arrival)Time : Heure d’arrivée ou de départ effectivement mesurée (et donc disponible uniquement après le départ ou l’arrivée du véhicule).
Expected(Departure/Arrival)Time : Heure d’arrivée ou de départ calculée par le SAE sur la base de la progression du véhicule et du commandé (ou modifié en cours d’exploitation).
SM020 | Il n’est pas obligatoire de diffuser avant le départ du véhicule l’horaire théorique modifié du jour même ou modifié en cours d’exploitation suite à une régulation. Cette information peut par contre être renseignée dans l' «Expected(Departure/Arrival)Time», le champ étant par la suite mis à jour en fonction de l’avancement du véhicule. |
---|---|
SM025 | En mode requête classique, les heures de passage à l’arrêt ne sont fournies que tant que le véhicule est en amont de l’arrêt ou à l’arrêt ; dès lors qu’il a quitté l’arrêt, aucune information concernant ce véhicule à cet arrêt n’est plus fournie (dans la limite ci-dessous). |
SM030 | En mode abonnement, une notification est envoyée lorsque le véhicule a quitté l’arrêt, en utilisant la structure « MonitoredStopVisitCancellation ». Ceci permet de signaler aux diffuseurs que le prochain passage en question doit être retiré des medias de diffusion (on utilisera donc pas le champ “ActualDepartureTime” à cet effet). En complément, une notification est aussi réalisée lors de l’arrivée au dernier arrêt (En effet, il n’y aura pas de notification de départ dans ce cas: on notifiera alors un « MonitoredStopVisitCancellation » au moment de l’arrivée du véhicule à l’arrêt). |
SM040 | En situation perturbée il peut arriver qu’une information «Expected(Departure/Arrival)Time» soit antérieure à l’heure courante. Toutefois il est précisé qu’en tout état de cause, un temps d’attente inférieur ou égal à 0, induit par une telle information, doit être diffusé comme un temps d’attente égal à 0 (et probablement accompagné d’une indication de retard). |
SIRI propose des statuts de départ et d’arrivée pour qualifier l’horaire calculé par rapport à l’horaire planifié. Le tableau ci-dessous précise l’usage des différentes valeurs de statuts.
Statuts | ArrivalStatus | DepartureStatus |
---|---|---|
onTime | A l’heure ; la notion peut être précisée à la discrétion du producteur selon un seuil à préciser dans les spécifications d’interface à titre informatif. | A l’heure ; la notion peut être précisée à la discrétion du producteur selon un seuil à préciser dans les spécifications d’interface à titre informatif. |
Early | En avance par rapport à l’horaire théorique ; la notion peut être précisée à la discrétion du producteur selon un seuil à préciser dans les spécifications d’interface à titre informatif. | En avance par rapport à l’horaire théorique ; la notion peut être précisée à la discrétion du producteur selon un seuil à préciser dans les spécifications d’interface à titre informatif. |
Delayed | En retard par rapport à l’horaire théorique ; la notion peut être précisée à la discrétion du producteur selon un seuil à préciser dans les spécifications d’interface à titre informatif. | En retard par rapport à l’horaire théorique ; la notion peut être précisée à la discrétion du producteur selon un seuil à préciser dans les spécifications d’interface à titre informatif. |
Cancelled | Passage annulé | Passage annulé (note: ce passage annulé reste comptabilisé dans le nombre de passages utilisé dans les filtres de requêtes). |
noReport | Pas d’information « ExpectedArrivalTime » disponible (par contre le « AimededArrivalTime » peut être fourni) | Pas d’information disponible |
Derniers arrêts de course
Note concernant les derniers arrêts de course:
Il existe plusieurs façons d’identifier le dernier arrêt d’une course :
La plus fiable consiste à faire la distinction des terminus par constat d’égalité dans le VehicleJourneyInfoGroup entre l’arrêt courant et l’arrêt de destination de la course.
Toutefois, cela peut aussi être fait en constatant que l’on a un ArrivalTime mais pas de DepartureTime
ou encore, quand cela est possible, en demandant des informations sur les arrêts suivants (onwardCall, en demandant au moins un arrêt) et en constatant qu’il n’y en a pas.
Note concernant les cas ou il n’y a pas ou plus d’information:
SM045 | S’il n’y a de réponse à une requête « Stop monitoring » car elle intervient après le dernier passage de la journée, le producteur doit dans la mesure du possible fournir une information via le service « General message ». Il est donc recommandé que le client, s’il n’obtient pas de réponse au « Stop monitoring », fasse dans la foulée une requête au « General message ». |
---|---|
SM050 | Dans le cas des déviations : pour les arrêts non desservis, il conviendra aussi de fournir une information via le service « Situation Exchange » (SX) (la réponse à « Stop monitoring n’est toutefois pas forcément vide si la déviation est temporaire ») ou le service « General Message » si le SX n’est pas implémenté. |
Note concernant les annulations de passage :
Concernant les informations permettant d’indiquer l’annulation d’un passage il est précisé que:
SM055 | Mode requête
|
---|---|
SM060 | Mode abonnement
|
StopMonitoringRequest | +Structure | Requête pour obtenir des informations temps réel sur les heures d’arrivée et de départ à un point d’arrêt. |
Attributes | Version | 1:1 | VersionString | Version du service “Stop Monitoring”, , intégrant le numéro de version de profil par exemple. ‘2.1:FR-1.0’. |
Endpoint Properties | RequestTimestamp | 1:1 | xsd:dateTime | Date d'émission de la requête. |
MessageIdentifier | 1:1 | MessageQualifier | Numéro d'identification du message. | |
Topic | PreviewInterval | 0:1 | PositiveDurationType | Si ce paramètre est présent, il indique que l'on souhaite recevoir des informations sur toute arrivée et tout départ intervenant dans la durée indiquée (comptée à partir de l'heure indiquée par le paramètre suivant: StartTime -. si le paramètre StartTime n'est pas présent, l'heure courante sera utilisée). |
StartTime | 0:1 | xsd:dateTime | Heure à partir de laquelle doit être compté le PreviewInterval. | |
MonitoringRef | 1:1 | MonitoringCode | Identifiant du point d'arrêt concerné par la requête. Il convient d'utiliser ici un identifiant d'objets (arrêt) de référence (Zone d'Embarquement, Lieu d’arrêt multi ou mono modal ou Groupe de Lieux), et non d'objet particulier. | |
LineRef | 0:1 0:0 | LineCode | Filtre permettant de n'obtenir que les départs et arrivées pour une ligne donnée (dont on fournit l'identifiant). Filtre non utilisé entre le relai et ses concentrateurs alimentants (le relai s'informe sur toutes les lignes sans distinction). | |
DestinationRef | 0:1 0:0 | StopPointCode | Filtre permettant de n'obtenir que les départs et arrivées ayant une destination donnée (dont on fournit l'identifiant de point d'arrêt). Filtre non utilisé entre le relai et ses concentrateurs alimentant (le relai s'informe sur toutes les directions sans distinction). | |
OperatorRef | 0:1 0:0 | OperatorCode | Filtre permettant de n'obtenir que les départs et arrivées pour un exploitant donné (dont on fournit l'identifiant). Filtre particulièrement utile pour les pôles d'échange. Filtre non utilisé entre le relai et ses concentrateurs alimentants (le concentrateur). | |
StopVisitTypes | 0:1 0:0 | all | departures | arrivals | Indique si l'on souhaite avoir les départs, les arrivées ou les deux. Seule la valeur « departures » est obligatoire (pour tous les arrêts sauf, naturellement, le dernier de la mission) pour le profil FR, les autres sont optionnelles (à préciser pour chaque implémentation). Si le champ n’est pas renseigné, la valeur par défaut est « all ». Quelques règles de gestion sont précisées :
Il faut noter que, pour la gestion des correspondances, l’heure d’arrivée sera particulièrement utile … Ce champ est facultatif (sauf dans le cas des échanges avec les concentrateurs: voir ci-dessous), toutefois l'XSD lui définit une valeur par défaut qui est "all". S'il n'est pas présent il faut donc le gérer comme s'il était positionné à "all". Dans le cas des échanges avec les concentrateurs, ce filtre ne sera jamais présent et c'est donc avec la valeur par défaut all qu'il faudra l'interpréter. | |
Request Policy | MaximumStopVisits | 0:1 0:0 | xsd:nonNegativeInteger | Nombre maximal d'informations de départ ou d'arrivée que l'on souhaite recevoir sur l’arrêt requêté. Si aucune valeur n’est fournie, toutes les informations disponibles seront remontées. De plus « 0 » est une valeur interdite pour ce champ (erreur). Filtre non utilisé entre le relai et ses concentrateurs alimentants : pas de limitation du nombre d'informations remontées. |
Choix | -1:1 | |||
a) MinimumStopVisitsPerLine | 0:1 0:0 | xsd:nonNegativeInteger | Ce paramètre permet de demander un nombre minimum de réponses par ligne passant à l'arrêt. Cela permet d'éviter que pour un arrêt où passent 2 lignes et pour lesquels on a demandé les quatre prochains passages, on ait bien quatre indications mais sur une seule des deux lignes (les passages sur la seconde ligne intervenant après). Dans ce cas, si ce paramètre est fixé à 2 on obtiendra les deux prochains passages sur chacune des lignes. Ces passages doivent toutefois rester dans le PreviewInterval Il est recommandé de ne pas utiliser simultanément MaximumStopVisits et MinimumStopVisitsPerLine : si toutefois cela arrivait, le MaximumStopVisits serait dominé par le MinimumStopVisitsPerLine et la liste des informations disponibles pourrait être plus importante que stipulé par MaximumStopVisits. Filtre non utilisé entre le relai et ses concentrateurs alimentants | |
b) MinimumStopVisitsPerLineVia | 0:1 0:0 | xsd:nonNegativeInteger | Ce paramètre permet de demander un nombre minimum de réponses (de passage) par couple Ligne+Via (et donc pour chaque itinéraire identifiable). Ce paramètre est très similaire à MinimumStopVisitsPerLine mais propose une granularité plus fine (au niveau itinéraire). La notion d'itinéraire n'étant pas toujours explicitement présente dans les systèmes, on pourra interpréter ce paramètre comme une demande de nombre minimum de réponses par itinéraire possible (et par ligne). Note: ce filtre étant à comprendre comme "nombre de passage pour tous les VIA possibles", les VIA ne sont naturellement pas à préciser. Filtre non utilisé entre le relai et ses concentrateurs alimentants | |
MaximumNumberOfCalls | 0:1 0:0 | +Structure | Structure permettant de préciser combien d’arrêts suivants ou précédents on souhaite obtenir au maximum (sous réserve de leur disponibilité). Si cette structure facultative n'est pas présente, aucun arrêt suivant ou précédent ne sera retourné. Filtre non utilisé entre le relai et ses concentrateurs alimentants : aucune information de type OnwardCall n'est remontée par les concentrateurs. | |
➞ Onwards | 0:1 0:0 | xsd:nonNegativeInteger | Nombre maximal d'arrêts suivants souhaités (pour une course donnée). Si le paramètre est présent et vaut 0, tous les arrêts seront retournés. S’il n’est pas fourni et que la balise <MaximumNumberOfCalls> est présente, tous les arrêts seront remontés. S'il n'y a pas de balise <MaximumNumberOfCalls> aucune information relative aux OnwardCalls n'est remontée. Précisions : ces informations ne sont pas comptabilisées pour le traitement des paramètres MaximumStopVisits et MinimumStopVisitsPerLine qui ne concernent que l'arrêt requêté. Filtre non utilisé entre le relai et ses concentrateurs alimentants: pas de limitation du nombre d'informations remontées. | |
any | Extensions | 0:1 | +Structure | Emplacement disponible pour extension utilisateur (cf 5.4.2.2). |
Requête multiple d’information temps réel au point d’arrêt en utilisant SOAP
SM065 | Il existe plusieurs façons de réaliser des requêtes d’information temps réel pour plusieurs points d’arrêt. Toutefois seule la solution GetSiri (voir ci-dessous) est recommandée par le profil FR, les autres solutions ne pouvant être maintenues que pour compatibilité ascendante. |
---|
Le service SOAP GetSiri (introduit par SIRI 2) est celui qui doit être utilisé pour les requêtes multiples d’information temps réel au point d’arrêt. Ce point d’accès fonctionnel est générique et permet de solliciter n’importe quel service SIRI avec une cardinalité de requête illimitée.
Abonnement aux informations temps réel au point d’arrêt
StopMonitoringSubscription | +Structure | Requête d’abonnement pour obtenir des informations temps réel sur les heures d’arrivée et de départ à un point d’arrêt |
Identity | SubscriberRef | 1:1 | ParticipantCode | Identification du système demandeur (voir SIRI Part 2 Common SubscriptionRequest parameters.). |
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant de l'abonnement pour le système demandeur. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure de fin de l'abonnement : un abonnement a forcément une date et heure de fin (les partenaires pourront décider de limiter la durée maximale d’un abonnement). |
Request | StopMonitoringRequest | 1:1 | +Structure | voir StopMonitoringRequest (ci-dessus). |
Policy | IncrementalUpdates | 0:1 | xsd:boolean | Indique s’il faut notifier uniquement les changements d'information ou s’il faut systématiquement renvoyer toutes les informations si l'une d'elles change. Valeur par défaut : « true » (mise à jour incrémentale). Dans le cadre des échanges avec un concentrateur seul le mode incrémental est supporté. |
ChangeBeforeUpdates | 0:1 | PositiveDurationType | Permet d'indiquer un écart de temps en dessous duquel on ne souhaite pas être notifié (si l'on demande un seuil de 5mn et qu'un horaire de départ ou d'arrivée change de 2mn, on ne sera pas notifié, évitant ainsi des flux d'information inutiles). Si ce champ n'est pas présent, une valeur de 5 minutes est prise par défaut. Dans le cadre des échanges avec un concentrateur la valeur par défaut est de 1 minute. C’est une valeur « par défaut », qui est volontairement haute pour ne pas surcharger les échanges : dans le cas nominal elle devra être précisée avec une valeur plus faible (mais tous les systèmes ne fonctionnent pas à la minute, surtout côté client). Ce champ est facultatif car son implémentation peut s'avérer délicate pour certains systèmes : s'il n'est pas disponible, les spécifications d'interface du serveur SIRI devront préciser les valeurs et comportements implémentés. |
Les données sont réputées avoir changé et doivent donc être notifiées dès que :
La valeur d’une des heures de passage (planifiée, mesurée ou constatée) est modifiée d’une valeur supérieure ou égale au seuil demandé (ChangeBeforeUpdates) ;
Le véhicule quitte l’arrêt (ou arrive au dernier arrêt de la course);
Un changement de quai intervient.
Résultat de la requête d’information temps réel au point d’arrêt
ServiceDelivery | +Structure | voir SIRI Part 7.2ServiceDelivery |
HEADER | ::: | 1:1 | Voir ServiceDelivery | |
Payload | StopMonitoringDelivery | 0:* | +Structure | Voir StopMonitoringDelivery ci- dessous. |
Attributs temps réel du point d’arrêt
StopMonitoringDelivery | +Structure | Delivery for Stop Monitoring Service. |
Attributes | version | 1:1 | VersionString | Numéro de version du service Stop Monitoring, intégrant le numéro de version de profil (voir 5.9). |
LEADER | ::: | ::: | xxxDelivery | Voir paragraphe 2.2. |
Payload | MonitoringRef | 1:1 | MonitoringCode | Identifiant du point d'arrêt concerné par la requête. Il convient d'utiliser ici un identifiant d'objets (arrêt) de référence (Zone d'Embarquement, Lieu d'arrêt multimodal, monomodal, Point d’arrêt), et non d'objet particulier. |
MonitoredStopVisit | 0:* | +Structure | Description des passages à l'arrêt. | |
MonitoredStopVisitCancellation | 0:* | +Structure | Indication qu'un passage précédemment signalé ne doit plus être affiché (indique généralement que le véhicule a franchi l'arrêt). | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Description d’un arrêt (ou point d’arrêt indiqué) sur une course
MonitoredStopVisit | +Structure | Description du passage d’un véhicule à un arrêt (dans le cadre d’une course). |
Log | RecordedAtTime | 1:1 | xsd:dateTime | Heure à laquelle la donnée a été mise à jour. |
Identity | ItemIdentifier | 1:1 | ItemIdentifier | Identifie cette information : cela correspond en fait à une identification du couple arrêt-course, et permettra par la suite une éventuelle annulation (cas où l’arrêt n’est plus desservi). Il doit être unique et pérenne et bien identifier le passage à l'arrêt. |
StopVisitReference | MonitoringRef | 1:1 | MonitoringCode | Référence du point d'arrêt. |
JourneyInfo | MonitoredVehicleJourney | 1:1 | MonitoredVehicleJourneyStructure | Description de la course. |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Attributs temps réel de la course : Monitored Vehicle Journey
MonitoredVehicleJourney | +Structure | Description de la course. |
Vehicle Journey Identity | LineRef | 1:1 | LineCode | Identifiant de la ligne. |
FramedVehicleJourneyRef | 0:1 1:1 | +FramedVehicleJourneyRefStructure | Identification de la course. Champ obligatoire pour les échanges avec les concentrateurs : ce champ n'est pas forcément le reflet d'une valeur d'identifiant planifié et peut être construit localement par l'émetteur, mais il sera important pour une bonne gestion des abonnements en mode différentiel (en particulier pour le service Estimated Timetable). | |
JourneyPatternInfo | ::: | 0:1 | JourneyPatternInfoGroup | Voir JourneyPatternInfoGroup. |
VehicleJourneyInfo | ::: | 0:1 | VehicleJourneyInfoGroup | Voir VehicleJourneyInfoGroup. |
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionGroup. |
JourneyProgressInfo | ::: | 0:1 | JourneyProgresssInfoGroup | voir JourneyProgressInfoGroup. |
OperationalInf | TrainNumber | 0:* | sequence | Séquence de numéro de train (l'utilisation d'une sequence permet notament de gérer les trains couples). |
➞ TrainNumberRef | 1:1 | ➞ TrainNumber | Numéro de train. | |
JourneyParts | 0:* | sequence | Liste des parties de course concernées par les Call ci-dessous. | |
➞ JourneyPartInfo | 1:1 | +Structure | Information sur les parties de course. | |
⇉ JourneyPartRef | 1:1 | ➞ JourneyPartCode | Dans le cadre du profil France ce champ permettra d'identifier, en particulier dans le contexte du RER, les portions de courses exploitées par la RATP et celles exploitées par la SNCF (les valeurs d'identification des JourneyPart sont des données de référence qui devront être fixes en amont de l'échange). | |
⇉ TrainNumberRef | 0:1 | ➞ TrainNumber | ||
Calling Pattern | MonitoredCall | 0:1 | +Structure | Informations horaires concernant l'arrêt considéré. |
OnwardCalls | 0:1 | +Structure | Informations horaires concernant les arrêts suivants. | |
➞ OnwardCall | 0:* | +Structure | Informations horaires pour l'un des arrêts suivants. | |
any |
MonitoredCall | +Structure | Informations horaires pour l’arrêt. |
Stop Identity | StopPointRef | 0:1 1:1 | StopPointCode | Identifiant du Point d'arrêt (cet identifiant est à rapprocher de l’attribut MonitoringRef de la structure MonitoredStopVisit, mais restreint à ce cas de point d’arrêt, là ou le MonitoringRef peut aussi, dans le contexte général de SIRI, mais pas celui du profil France, référencer un afficheur, par exemple). Il convient d'utiliser ici un identifiant d'objet du referentiel théorique. - Si MonitoringRef est un lieu d’arrêt monomodal ou multimodalStopPointRef est une zone d'embarquement, si l'émetteur est capable de la fournir. - Sinon, StopPointRef estun lieu d’arrêt (granularité la plus fine possible dans tous les cas). Champ obligatoire pour les échanges avec les concentrateurs. |
Order | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
StopPointName | 1:1 | NLString | Nom du point d'arrêt. Si plusieurs noms sont disponibles chez le producteur, le nom le plus détaillé sera utilisé en priorité. | |
Call Real-time | VehicleAtStop | 0:1 | xsd:boolean | La Valeur «true » indique que le véhicule est à l'arrêt. Valeur par défaut : « false ». |
Call Rail | PlatformTraversal | 0:1 | xsd:boolean | La valeur « true » permet de signaler le passage d'un train sans arrêt (et de demander au voyageur de s'écarter des voies). Valeur par défaut : « false ». |
Call Property | DestinationDisplay | 0:1 | NLString | Destination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local). |
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionGroup. |
Arrival times | AimedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée théorique (ou commandée). |
ActualArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée effectivement mesurée. | |
ExpectedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée estimée par le SAE. | |
Arrival Status | ArrivalStatus | 0:1 | onTime | early | delayed | cancelled | missed | arrived | notExpected | noReport | Caractérisation de l'horaire d'arrivée attendu (ou mesuré si le véhicule est à quai) Valeur par défaut : « onTime ». Note: SIRI 2 ajoute les codes:
|
ArrivalProximityText | 0:* | NLString | Texte libre à présenter quand le véhicule est proche, par exemple "à l'approche". Ce texte peut dépendre de règles propres à l'exploitant ou à l'AO, autant par son contenu que par les règles d'affichage qui le concernent (distance à partir de laquelle on l'affiche, etc.). Ces règles peuvent aussi être différentes suivant le lieu d'affichage de l'information (à quai, sur smartphone, dans un hall d'attente, etc.). Ces règles sont échangées en amont de façon contractuelle. | |
ArrivalPlatformName | 0:1 | NLString | Identification ou nom du quai d'arrivée. | |
➞ AimedQuayName | 0:1 | NLString | Indication de la voie d'arrivée (en complément de Platform). | |
Departure | AimedDepartureTime | 0:1 | xsd:dateTime | Heure de départ théorique (ou commandée). |
ActualDepartureTime | 0:1 | xsd:dateTime | Heure de départ effectivement mesurée. | |
ExpectedDepartureTime | 0:1 | xsd:dateTime | Heure de départ estimée par le SAE. | |
Departure Status | DepartureStatus | 0:1 | onTime | early | delayed | cancelled | arrived |departed | notExpected | noReport | Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai). Valeur par défaut : « onTime ». |
DeparturePlatformName | 0:1 | NLString | Identification ou nom du quai de départ. | |
DepartureBoardingActivity | 0:1 | boarding | noBoarding | passthru | Indique si l'on peut monter dans le véhicule ou si c'est un passage sans arrêt ou avec montée interdite. Valeur par défaut : « boarding». | |
Occupancy | ExpectedDepartureOccupancy | 0:* | +structure | Permet de décrire l’occupation d’un véhicule à un arrêt. Cf § 6.1.3.2. |
Capacity | ExpectedDpeartureCapacity | 0:* | +structure | Permet de décrire les capacités d‘un véhicule selon le type de place cf § 6.1.3.3. |
Frequency | AimedHeadwayInterval | 0:1 | PositiveDurationType | Fréquence de passage théorique (ou commandée). |
ExpectedHeadwayInterval | 0:1 | PositiveDurationType | Fréquence de passage estimée par le SAE. | |
Stop Proximity Group | DistanceFromStop | 0:1 | DistanceType | Distance qui sépare le vehicule de l'arrêt. Une valeur positive indique que le véhicule est en amont de l'arrêt. |
NumberOfStopsAway | 0:1 | nonNegativeInteger | Indique le nombre d'arrêts à marquer entre la position courante du vehicule et l'arrêt considéré. | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur. |
OnwardCall | +Structure | Information sur les arrêts suivants de la course. |
Stop Identity | StopPointRef | 1:1 | StopPointCode | Identifiant du point d'arrêt. Il convient d'utiliser ici un identifiant d'objet de référence de (zone d'embarquement ou lieu d’arrêt multi/mono modal: granularité la plus fine possible dans tous les cas). |
Order | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
StopPointName | 1:1 | NLString | Nom du point d'arrêt. | |
Progress | VehicleAtStop | 0:1 | xsd:boolean | La Valeur «true » indique que le véhicule est à l'arrêt. Valeur par défaut : « false ». |
Arrival Times | AimedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée théorique (ou commandée). |
ExpectedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée estimée par le SAE. | |
Arrival Status | ArrivalStatus | 0:1 | onTime | early | delayed | cancelled | missed | arrived | notExpected | noReport | Caractérisation de l'horaire d'arrivée attendu. Valeur par défaut : « onTime ». |
ArrivalProximityText | 0:* | NLString | Texte libre à présenter quand le véhicule est proche, par exemple "à l'approche". Ce texte peut dépendre de règles propres à l'exploitant ou à l'AO, autant par son contenu que par les règles d'affichage qui le concernent (distance à partir de laquelle on l'affiche, etc.). Ces règles peuvent aussi être différentes suivant le lieu d'affichage de l'information (à quai, sur smartphone, dans un hall d'attente, etc.). Ces règles sont échangées en amont de façon contractuelle. | |
ArrivalPlatformName | 0:1 | NLString | Identification du quai d'arrivée. | |
Departure | AimedDepartureTime | 0:1 | xsd:dateTime | Heure de départ théorique (ou commandée). |
ExpectedDepartureTime | 0:1 | xsd:dateTime | Heure de départ estimée par le SAE. | |
Departure Status | DepartureStatus | 0:1 | onTime | early | delayed | cancelled | arrived |departed | notExpected | noReport | Caractérisation de l'horaire de départ attendu. Valeur par défaut : « onTime ». |
DeparturePlatformName | 0:1 | NLString | Identification du quai de départ. | |
DepartureBoardingActivity | 0:1 | boarding | noBoarding | passthru | Indique si l'on peut monter dans le véhicule ou si c'est un passage sans arrêt ou avec montée interdite. Valeur par défaut : « boarding ». | |
Progress Status | AimedHeadWayInterval | 0:1 | PositiveDurationType | Fréquence de passage théorique (ou commandée). |
ExpectedHeadwayInterval | 0:1 | PositiveDurationType | Fréquence de passage estimée par le SAE. | |
Stop Proximity Group | DistanceFromStop | 0:1 | DistanceType | Distance qui sépare le vehicule de l'arrêt. Une valeur positive indique que le véhicule est en amont de l'arrêt. |
NumberOfStopsAway | 0:1 | nonNegativeInteger | Indique le nombre d'arrêts à marquer entre la position courante du vehicule et l'arrêt considéré. | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Annulation d’arrêts
MonitoredStopVisitCancellation | +Structure | Indication qu'un passage précédemment signalé ne doit plus être affiché (indique généralement que le véhicule a franchi l'arrêt). Note: A ne pas confondre avec une annulation de course. |
Log | RecordedAtTime | 1:1 | xsd:dateTime | Heure à laquelle l'annulation de passage a été signalée/publiée. |
EventIdentity | ItemRef | 0:1 1:1 | ItemIdentifier | Identifiant de l'arrêt annulé (voir ItemRef plus haut). Champ obligatoire pour les échanges avec les concentrateurs (il doit être unique et pérenne, dans le cadre d'une journée d'exploitation, et bien permettre une annulation de passage à l'arrêt). |
MonitoringRef | 1:1 | MonitoringCode | Identifiant du point d'arrêt. | |
LineRef | 0:1 | LineCode | Identifiant de la ligne (celle de la course pour laquelle le passage à l'arrêt est annulé, la course elle-même peut être identifiée par le paramètre FramedVehicleJourneyRef ). | |
VehicleJourneyRef | 0:1 1:1 | +Structure (FramedVehicleJourneyRefStructure) | Identification de la course concernée. Champ obligatoire pour les échanges avec les concentrateurs | |
JourneyPatternInfo | ::: | 0:1 | JourneyPatternInfoGroup | Voir JourneyPatternInfoGroup. |
Message | Reason | 0:1 | NLString | Message expliquant la cause de l'annulation. |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
FramedVehicleJourneyRef
FramedVehicleJourneyRef | 0:1 | +Structure | Identification d'une course. | |
➞ DataFrameRef | 1:1 | DataFrameQualifier | Contexte d'identification de la course (SAE pour le jour d'exploitation, version du référentiel de données, etc.). Ce champ permet de qualifier la version de donnée de référence, si cela est applicable Utiliser la valeur "any" si ce champ n'est pas applicable. | |
➞ DatedVehicleJourneyRef | 1:1 | DatedVehicleJourneyCode | Identifiant de la course elle-même. |
VehicleJourneyInfoGroup
VehicleJourneyInfoGroup | Description de la course. |
ServiceInfo | ::: | 0:1 | ServiceInfoGroup | Voir ServiceInfoGroup. |
JourneyEndNames | ::: | 0:1 | JourneyEndNamesGroup | Voir JourneyEndNamesGroup. |
JourneyInfo | VehicleJourneyName | 0:1 | NLString | Nom de la course. |
JourneyNote | 0:1 | NLString | Texte complémentaire décrivant la course. | |
End Times | HeadwayService | 0:1 | xsd:boolean | La valeur « true » permet de signaler que la course est gérée en fréquence (interval), et que les informations horaires seront fournies en conséquence… Valeur par défaut : « false ». |
OriginAimedDepartureTime | 0:1 | xsd:dateTime | Heure théorique de départ de la course à son point de départ. | |
DestinationAimedArrivalTime | 0:1 | xsd:dateTime | Heure théorique d'arrivée de la course à son point d'arrivée. | |
FirstOrLastJourney | 0:1 | FirstOrLastJourneyEnumeration | Indique s'il s'agit de la première ou de la dernière course de la journée d'exploitation sur la ligne, et pour une destination donnée. L'interprétation comme "première ou dernière course pour une mission donnée" est acceptable, mais devra être précisée dans les spécifications d'interface du serveur (et le JourneyPatterInfoGroup devra alors être renseigné). (firstServiceOfDay | lastServiceOfDay | otherService | unspecified). |
ServiceInfoGroup
Service Info | OperatorRef | 0:1 | OperatorCode | Identifiant de l'exploitant. |
ProductCategoryRef | 0:1 | ProductCategoryCode | Mode de transport détaillé (voir l’énumération complète dans le XSD SIRI [R10]). | |
ServiceFeatureRef | 0:* | ServiceFeatureCode | Classification du type de service (“bus scolaire”, etc.). | |
VehicleFeatureRef | 0:* | VehicleFeatureCode | Service spécifique disponible dans le véhicule (plancher bas, etc.). Dans le cadre du profil France deux valeurs sont ajoutées par rapport à la liste recommandée par la norme (voir SIRI 2 Partie 1 paragraphe 3.3.14.1) pour signaler les trains courts et les trains longs. Les codes retenus sont:
|
JourneyEndNamesGroup
ServiceEnd Names | OriginRef | 0:1 | JourneyPlaceCode | Identifiant de l'arrêt de départ de la course. |
OriginName | 0:1 | NLString | Nom de l'arrêt de départ (si l'identifiant OriginRef est fourni, le nom doit l'être aussi). | |
Via | 0:1 | +Structure | Description d'un via sur la course. La cardinalité est limitée à 1 dans le cadre du profil. Ceci permet notament de simplifer la gestion de compatibilité avec les versions antérieures de SIRI | |
➞ PlaceRef | 0:1 | JourneyPlaceCode | Identifiant de l'arrêt via (ou d'un lieu via). | |
➞ PlaceName | 0:1 | NLString | Nom du via (si l'identifiant PlaceRef est fourni, le nom doit l'être aussi, si c'est un arrêt le nom doit naturellement être celui de l'arrêt | |
DestinationRef | 1:1 | JourneyPlaceCode | Identifiant du dernier arrêt de la course. | |
DestinationName | 1:1 | NLString | Nom de l'arrêt de destination (si l'identifiant DestinationRef est fourni, le nom doit l'être aussi). |
JourneyPatternInfoGroup
JourneyPatternInfoGroup | Groupe d’attributs pour la description des missions |
Journey Pattern Info | JourneyPatternRef | 0:1 | JourneyPatternCode | Identifiant de la mission. |
JourneyPatternName | 0:1 | NLString | Nom ou numéro de course présenté au public. | |
VehicleMode | 0:1 | air | bus | coach | ferry | metro | rail | tram | underground | Mode de transport pour cette mission (il s’agit ici d’un mode « générique », tous les avions par exemple seront air, et c’est le ProductCategory, dans ServiceInfoGroup, qui donnera plus de précisions, comme : internationalFlight, intercontinentalFlight, domesticScheduledFlight, shuttleFlight … Valeur par défaut : « bus ». | |
RouteRef | 0:1 | RouteCode | Identifiant de l'itinéraire suivi. | |
PublishedLineName | 1:1 | NLString | Nom de la ligne. | |
DirectionName | 0:1 | NLString | Nom de la direction de la mission. Ce nom peut par exemple contenir des informations comme "A" ou "R" (Aller ou Retour) pour les lignes qui utilisent ces informations. |
DisruptionGroup
Ce groupe de paramètres fait partie des éléments qui vont être étendus dans le cadre des services « Facility Monitoring » et « Situation Exchange ».
SM-14 | Seule la référence à un événement sera retenue, les informations complémentaires pour l’état des équipements et les perturbations seront déterminées dans le cadre du service « Situation Exchange ». |
---|
Situation | SituationRef | 0:* | SituationCode | Identifiant (externe) de l’événement qui est la cause des modifications horaires indiquées. |
JourneyProgressInfoGroup
JourneyProgressInfoGroup | Groupe d’attributs précisant l’avancement sur la mission. |
Status | Monitored | 0:1 | xsd:boolean | Indique si le véhicule est toujours localisé (la valeur false indique une délocalisation du bus). Valeur par défaut : « true ». |
MonitoringError | 0:1 | GPS | GPRS | Radio | Si le bus est délocalisé, ce champ précise la cause de cette délocalisation. | |
Progress Data Quality | InCongestion | 0:1 | xsd:boolean | Ce champ vaut « true » si le vehicule est pris dans un embouteillage (ou plus généralement un incident d’exploitation). Valeur par défaut : « false ». |
InPanic | 0:1 | xsd:boolean | Indique que l'alarme du véhicule est activée. Valeur par défaut : « false ». | |
Progress Data | VehicleLocation | 0:1 | LocationStructure | Indique la position du véhicule (voir LocationStructure). Ce champ est obligatoire quand cette structure fait partie d’une réponse à une requête de type « vehicle monitoring » (il reste facultatif dans les autres cas). |
Bearing | 0:1 | AbsoluteBearingType | Indique l’orientation (cap) du véhicule en dégré (0-360). Avec le Nord pour valuer 0 et l’est 90. <Bearing>180</Bearing> | |
Occupancy | 0:1 | full | seatsAvailable | standingAvailable | unknown | empty | manySeatAvailable | fewSeatAvailable | standingRoomOnly | crushStandingRoomOnly | notAcceptingPassengers | Indique le niveau de remplissage du véhicule. Valeur par défaut : « unknown». | |
Delay | 0:1 | DurationType | Indique le niveau de retard du véhicule (une valeur négative indique une avance). |
Connection Monitoring
Requête d’information sur les correspondances
ConnectionMonitoringRequest | +Structure | Requête d’information sur les correspondances |
---|
Attributes | version | 1:1 | VersionString | Version du service “ Connection Monitoring”, intégrant le numéro de version de profil par exemple. ‘2.1:FR-FR-1.0’. |
---|---|---|---|---|
Endpoint Properties | RequestTimestamp | 1:1 | xsd:dateTime | Date d'émission de la requête. |
MessageIdentifier | 0:1 | MessageQualifier | ||
Topic | PreviewInterval | 0:1 | PositiveDurationType | Si ce paramètre est présent, il indique que l'on souhaite recevoir des informations sur toute arrivée et tout départ intervenant dans la durée indiquée. |
ConnectionLinkRef | 1:1 | → ConnectionLinkCode | Identifiant de la correspondance interrogée (à déterminer entre les participants). Pour mémoire, le « ConnectionLink » référence le cheminement physique, alors que l’objet « Interchange » référence une correspondance entre deux courses identifiées (généralement, un «Interchange » se réalise donc en empruntant un « ConnectionLink »). | |
choix | –1:1 | Seul l’un des filtres peut être utilisé. | ||
a) ConnectingTimeFilter | 0:1 | +Structure | Filtre temporel, indépendant des courses. | |
➞ LineRef | 1:1 | → LineCode | ||
➞ Direction Ref | 1:1 | → DirectionCode | ||
b) ConnectingJourneyFilter | 0:* | +Structure | Filtre basé sur les courses. | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure ConnectingTimeFilter
Filter | ConnectingTimeFilter | +Structure | Filtre temporel pour les requêtes. | |
---|---|---|---|---|
➞ LineRef | 1:1 | → LineCode | Identifiant de la ligne amenante. | |
➞ DirectionRef | 1:1 | → DirectionCode | Indication de direction (aller/retour). | |
➞ EarliestArrivalTime | 1:1 | xsd:dateTime | Début de la fenêtre temporelle d’interrogation (basé sur l’heure d’arrivée). | |
➞ LatestArrivalTime | 1:1 | xsd:dateTime | Fin de la fenêtre temporelle d’interrogation (basé sur l’heure d’arrivée). |
Structure ConnectingJourneyFilter
Filter | ConnectingJourneyFilter | +Structure | Filtre sur les courses. | |
---|---|---|---|---|
➞DatedVehicleJourneyRef | 1:1 | → DatedVehicleJourneyCode | Identifiant de la course. | |
➞ AimedArrivalTime | 0:1 | xsd:dateTime | Date et heure d’arrivée prévue au point d’arrêt (départ de correspondance). |
Abonnement aux informations sur les correspondances
ConnectionMonitoringSubscriptionRequest | +Structure | Abonnement aux informations sur les correspondances. |
---|
Identity | SubscriberRef | 1:1 | → ParticipantCode | Identification du système demandeur ( voir SIRI Partie 2 Common SubscriptionRequest parameters). |
---|---|---|---|---|
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant de l'abonnement pour le système demandeur. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure de fin de l'abonnement : un abonnement a forcément une date et heure de fin (les partenaires pourront décider de limiter la durée maximale d’un abonnement). |
Request | ConnectionMonitoringRequest | 1:1 | +Structure | Voir ConnectionMonitoringRequest. |
Policy | ChangeBeforeUpdates | 0:1 | PositiveDurationType | Permet d'indiquer un écart de temps en dessous duquel on ne souhaite pas être notifié (si l'on demande un seuil de 5mn et qu'un horaire de départ change de 2 minutes, il n’y aura pas de notification, évitant ainsi des flux d'information inutiles). Si ce champ n'est pas présent, une valeur de 5 minutesn est prise par défaut. C’est une valeur « par défaut », qui est volontairement haute pour ne pas surcharger les échanges : dans le cas nominal, elle devra être précisée avec une valeur plus faible (mais tous les systèmes ne fonctionnent pas à la minute, surtout côté client). |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Réponse aux requêts d’information sur les correspondances
ServiceDelivery | +Structure | Réponse aux requêtes d’information sur les correspondances. |
---|
HEADER | ::: | 1:1 | See ServiceDelivery | |
---|---|---|---|---|
Payload | ConnectionMonitoringFeederDelivery | 1:* | +Structure | voir ConnectionMonitoringFeederDelivery. |
ConnectionMonitoringDistributorDelivery | 1:* | +Structure | voir ConnectionMonitoringDistributorDelivery. |
Connection MonitoringFeeder Delivery
ConnectionMonitoringFeederDelivery | +Structure | Réponse aux requêtes d’information sur les correspondances : description des alimentants. |
---|
Attributes | version | 1:1 | VersionString | Numéro de version du service Connection Monitoring, intégrant le numéro de version de profil (voir 5.9) (valeur fixe). |
---|---|---|---|---|
LEADER | ::: | 1:1 | xxxDelivery | voir xxxDelivery. |
Payload | MonitoredFeederArrival | 0:* | +Structure | Changement d’heure d’arrivée à la correspondance. Voir MonitoredFeederArrival. |
MonitoredFeederArrivalCancellation | 0:* | +Structure | Annulation de passage à la correspondance. Voir MonitoredFeederArrival. | |
Any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure MonitoredFeederArrival
MonitoredFeederArrival | +Structure | Information sur l’amenant. |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure à laquelles ces données ont été produites. |
---|---|---|---|---|
Identity | ItemIdentifier | 0:1 | ItemIdentifier | Référence le message d’information. |
Feeder Interchange Identity | InterchangeRef | 0:1 | → InterchangeCode | Identifiant de la correspondance entre course. Dans le cadre du profil France, si ce paramètre est présent, il sera constitué de la concaténation de l’identifiant de la course arrivant et de celui de la course au départ (séparés par le caractère ‘:’). |
ConnectionLinkRef | 1:1 | → ConnectionLinkCode | Identifiant de la correspondance physique. | |
StopPointRef | 0:1 | → StopPointCode | Identifiant du point d’arrêt de l’amenant (généralement porté par le ConnectionLink).. Il convient d'utiliser ici un identifiant d'objet de référence : zone d'embarquement ou lieu d’arrêt multi ou monomal : granularité la plus fine possible dans tous les cas. | |
Order | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
StopPointName | 0:1 | NLString | Nom du point d'arrêt. | |
ClearDownRef | 0:1 | → CleardownCode | Cleardown : indicateur « véhicule à l’arrêt » ou « à l’approche ». | |
Journey Info | FeederJourney | 1:1 | ConnectingJourneyStructure | Description de la course de l’amenant. |
Real-time call | VehicleAtStop | 0:1 | xsd:boolean | Indicateur “Véhicule à l’arrêt”. Valeur par défaut : « false» |
Call time | AimedArrivalTime | 0:1 | xsd:dateTime | Heure d'arrivée planifiée. |
ExpectedArrivalTime | 1:1 | xsd:dateTime | Heure d’arrivée prévue à l’arrêt. | |
ArrivalPlatformName | 0:1 | NLString | Nom du quai d'arrivée. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure FeederJourney
FeederJourney | +Structure | Description de la course de l’amenant. |
---|
VehicleJourneyIdentity | LineRef | 1:1 | → LineCode | Identifiant de la ligne. |
---|---|---|---|---|
DirectionRef | 1:1 | → DirectionCode | Indication de direction (aller/retour). | |
FramedVehicleJourneyRef | 0:1 | +Structure | Identification de la course. | |
JourneyPatternInfo | ::: | 0:1 | JourneyPatternInfoGroup | Voir JourneyPatternInfoGroup. |
VehicleJourneyInfo | ::: | 0:1 | VehicleJourneyInfoGroup | Voir VehicleJourneyInfoGroup. |
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionInfoGroup. |
Progress | Monitored | 0:1 | xsd:boolean | Signale si l’information temps réel est disponible (oui par défaut). |
Call Times | AimedArrivalTime | 0:1 | xsd:dateTime | Heure d’arrivée prévue à l’arrêt. |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure MonitoredFeederArrivalCancellation
MonitoredFeederArrivalCancellation | +Structure | Information d’annulation de course. |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure auxquelles ces données ont été produites/enregistrées. |
---|---|---|---|---|
Identity | ItemRef | 0:1 | ItemIdentifier | Identifie l’objet qui est annulé (voir le ItemRef correspondant dans les précédentes notifications d’information de correspondance). |
Feeder Interchange Identity | InterchangeRef | 0:1 | → InterchangeCode | Identifiant de la correspondance entre courses. Dans le cadre du profil France, si ce paramètre est présent, il sera constitué de la concaténation de l’identifiant de la course arrivant et de celui de la course au départ (séparés par le caractère ‘:’). |
ConnectionLinkRef | 1:1 | → ConnectionLinkCode | Identifiant de la correspondance physique. | |
StopPointRef | 0:1 | → StopPointCode | Identifiant du point d’arrêt de l’amenant (généralement porté par le ConnectionLink). Il convient d'utiliser ici un identifiant d'objet de référence :zone d'embarquement ou lieu d’arrêt multi ou monomal: granularité la plus fine possible dans tous les cas. | |
Order | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
StopPoint~Name | 0:1 | NLString | Nom du point d'arrêt. | |
Journey Info | LineRef | 1:1 | → LineCode | Identifiant de la ligne. |
DirectionRef | 1:1 | → DestinationCode | Identifiant de la direction (aller/retour). | |
VehicleJourneyRef | 1:1 | +FramedVehicleJourneyRefStructure | Identification de la course. | |
JourneyPatternRef | 0:1 | → JourneyPatternCode | Identifiant de la mission. | |
JourneyPatternName | 0:1 | NLString | Nom ou numero de course présenté au public. | |
VehicleMode | 0:1 | air | bus | coach | ferry | metro | rail | tram | underground | Mode de transport pour cette mission (il s’agit ici d’un mode « générique », tous les avions par exemple seront air, et c’est le ProductCategory, dans ServiceInfoGroup, qui donnera plus de précisions, comme : internationalFlight, intercontinentalFlight, domesticScheduledFlight, shuttleFlight … Valeur par défaut : « bus » | |
RouteRef | 0:1 | → RouteCode | Identifiant de l'itinéraire suivi. | |
PublishedLineName | 0:1 | NLString | Nom commercial de la ligne. | |
GroupOfLinesRef | 0:1 | → GroupOfLinesCode | Identifiant du Goupe de Lignes (réseau ou tout autre groupe de
ligne auquel la course est rattachée | |
DirectionName | 0:1 | NLString | Nom de la destination. Ce nom peut par exemple contenir des informations comme "A" ou "R" (Aller ou Retour) pour les lignes qui utilisent ces informations. | |
Info | Reason | 0:1 | NLString | Cause de l’annulation. |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure ConnectionMonitoringDistributorDelivery
ConnectionMonitoringDistributorDelivery | +Structure | Information concernant le “partant”. |
---|
Attributes | version | 1:1 | VersionString | Version du service intégrant le numéro de version de profil (voir 5.9) par exemple. ‘2.1:FR-IDF-2.4’. |
---|---|---|---|---|
LEADER | ::: | 1:1 | xxxDelivery | Voir SIRI Partie 2-7.2.1.1 xxxDelivery. |
Payload | WaitProlongedDeparture | 0:* | +Structure | Description d’une prolongation d’attente*.* |
StoppingPositionChangedDeparture | 0:* | +Structure | Déplacement du point de départ (et donc du trajet de correspondance). | |
DistributorDepartureCancellation | 0:* | +Structure | Annulation de départ. | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure WaitProlongedDeparture
WaitProlongedDeparture | +Structure | Description d’une prologation d’arrêt pour attente de l’amenant |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure auxquelles ces données ont été produites. |
---|---|---|---|---|
DistributorInfo | ::: | 1:1 | DistributorInfoGroup | Voir DistributorInfoGroup (6.3.3.2.4). |
Change | ExpectedDepartureTime | 1:1 | xsd:dateTime | Nouvelle heure de départ prévue. |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure StoppingPositionChangedDeparture
StoppingPositionChangedDeparture | +Structure | Description d’un déplacement (temporaire) de point d’arrêt. |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure auxquelles ces données ont été produites. |
---|---|---|---|---|
DistributorInfo | ::: | 1:1 | DistributorInfoGroup | Voir DistributorInfoGroup (6.3.3.2.4). |
Change | ChangeNote | 1:1 | NLString | Description de la nouvelle position (textuelle). |
NewLocation | 0:1 | → Location | Nouvelle position de l’arrêt. |
Structure Location
LocationStructure | 0:1 | +Structure | Geospatial Location. |
---|
Attributes | id | 0:1 | xsd:NMTOKEN | Identifiant du point (pour un éventuel lien avec une base Géospatiale ou un SIG). |
---|---|---|---|---|
srsName | 0:1 | xsd:string | Idenfitiant du référentiel de projection (conforme EPSG, définit par l’OGC, et tel qu’utilisé par GML). | |
Coordinates | choix | –1:1 | La localisation peut être fournie soit en WGS 84 soit dans un référentiel projeté (Lambert 2 étendu, par exemple). Ces deux possibilités sont conservées dans le profil SIRI France. | |
a) Lat/long | 0:1 | Si choix Lat/long permet de renseigner les données. | ||
i) Longitude | 0:1 | LongitudeType | Longitude à partir du meridien de Greenwich : de.180° (Est) à +180° (Ouest). Degrés décimaux. | |
ii) Latitude | 0:1 | LatitudeType | Latitude à partir de l’équateur. de -90° (Sud) à +90° (Nord) en degrés décimaux. | |
b) Coordinates | 0:1 | xsd:string | Coordonnées au format GML en cohérence avec l’attribut srsName. | |
Precision | 0:1 | Distance | Précision du positionnement (en mètres). |
Structure DistributorDepartureCancellation
DistributorDepartureCancellation | +Structure | Indication d’annulation de depart. | ||
---|---|---|---|---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure auxquelles ces données ont été produites. |
DistributorInfo | ::: | 1:1 | DistributorInfoGroup | Voir DistributorInfoGroup(6.3.3.2.4). |
Call time | Reason | 1:1 | NLString | Raison de l’annulation. |
any | Extension | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure DistributorInfoGroup
Distributor Interchange_ Identity | InterchangeRef | 0:1 | → InterchangeCode | Identifiant de la correspondance entre courses. Dans le cadre du profil France, si ce paramètre est présent, il sera constitué de la concaténation de l’identifiant de la course arrivant et de celui de la course au départ (séparés par le caractère ‘:’). |
---|---|---|---|---|
ConnectionLinkRef | 1:1 | → ConnectionLinkCode | Identifiant de la correspondance physique. | |
StopPointRef | 0:1 | → StopPointCode | Identifiant du point d’arrêt du partant (généralement porté par le ConnectionLink). Il convient d'utiliser ici un identifiant d'objet de référence zone d'embarquement ou lieu d’arrêt multi ou monomal: granularité la plus fine possible dans tous les cas. | |
DistributorOrder | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
Journey Info | DistributorJourney | 1:1 | ConnectingJourneyStructure | Description de la course du véhicule au départ. |
Feeder Info | FeederVehicleJourneyRef | 0:* | FramedVehicleJourneyRefStructure | Information sur la course de l’amenant (identifiant de la ou des courses). |
Structure ConnectingJourney
ConnectingJourney | ConnectingJourneyStructure | Correspondance planifiée : description des courses impliquées : alimentant (“feeder”) ou partant (« distributor”) suivant les cas. | ||
---|---|---|---|---|
VehicleJourneyIdentity | LineRef | 0:1 | → LineCode | Identifiant de la ligne. |
FramedVehicleJourneyRef | 0:1 | +Structure | Identifiant de la course. | |
JourneyPatternInfo | ::: | 0:1 | JourneyPatternInfoGroup | Voir JourneyPatternInfoGroup. |
VehicleJourneyInfo | ::: | 0:1 | VehicleJourneyInfoGroup | Voir VehicleJourneyInfoGroup. |
DisruptionGroup | ::: | 0:1 | DisruptionGroup | Voir DisruptionGroup. |
Progress | Monitored | 0:1 | xsd:boolean | Signale si les données temps réel sont disponibles pour cette course (« false » permet de signaler une délocalisation). Valeur par défaut : « true». |
AimedArrivalTime | 0:1 | xsd:dateTime | Heure d’arrivée prévue à la correspondance. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Vehicle Monitoring
Note: l’utilisation des MonitoredCall, OnwardCall et PreviousCall est précisée en 5.7.
Requête d’information sur les véhicules
VehicleMonitoringRequest | +Structure | Requête d’information sur les véhicules |
---|
Attributes | version | 1:1 | VersionString | Version du service “Vehicle Monitoring”, intégrant le numéro de version de profil par exemple. ‘2.1:FR-1.0’. |
---|---|---|---|---|
Endpoint Properties | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête. |
MessageIdentifier | 0:1 | MessageQualifier | Numéro d’identification du message. | |
Topic | choix | -1:1 | ||
a) VehicleRef | 0:1 | → VehicleCode | Identifiant du véhicule. | |
b) LineRef | 0:1 | → LineCode | Identifiant de la ligne (tous les véhicules de la ligne seront remontés). | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Abonnement aux informations sur les véhicules
VehicleMonitoringSubscriptionRequest | +Structure | Abonnement aux informations sur les véhicules. |
---|
Identity | SubscriberRef | 0:1 | → ParticipantCode | Identification du système demandeur ( voir SIRI Part 2 Common SubscriptionRequest parameters.). |
---|---|---|---|---|
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant de l'abonnement pour le système demandeur. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure de fin de l'abonnement : un abonnement a forcément une date et heure de fin (les partenaires pourront décider de limiter la durée maximale d’un abonnement). |
Request | VehicleMonitoringRequest | 1:1 | +Structure | Voir VehicleMonitoringRequest. |
Policy | IncrementalUpdates | 0:1 | xsd:boolean | Indique s’il faut notifier uniquement les changements d'information, ou s’il faut systématiquement renvoyer toutes les informations si l'une d'elles change. Voir la documentation SIRI: IncrementalUpdates. |
choix | -1:1 | Choix | ||
a) ChangeBeforeUpdates | 0:1 | PositiveDurationType | Permet d'indiquer un écart de temps en dessous duquel on ne souhaite pas être notifié (si l'on demande un seuil de 5 minutes et qu'un horaire de départ change de 2 minutes, on ne sera pas notifié, évitant ainsi des flux d'information inutiles). | |
b) UpdateInterval | 0:1 | PositiveDurationType | Permet d’obtenir les positions (ou mise à jour des positions) à intervalle régulier et prédéterminé. |
Réponse aux requêtes d’information sur les véhicules
VehicleMonitoringDelivery | +Structure | Réponse aux requêtes d’information sur les véhicules. |
---|
Attributes | version | 1:1 | VersionString | Numéro de version du service Vehicle Monitoring, intégrant le numéro de version de profil (voir 5.9) (valeur fixe). |
---|---|---|---|---|
LEADER | ::: | 1:1 | xxxDelivery | Voir xxxDelivery. |
Payload | VehicleActivity | 0:* | +Structure | Fournit les informations concernant le véhicule. |
VehicleActivityCancellation | 0:* | +Structure | Signale l’annulation du service du véhicule. | |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure VehicleActivity
VehicleActivity | +Structure | Informations sur le véhicule. |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Heure à laquelle la position du véhicule a été mise à jour. |
---|---|---|---|---|
Currency | ValidUntilTime | 1:1 | xsd:dateTime | Heure jusqu'à laquelle l'information est réputée valide. Cette information obligatoire dans l'XSD SIRI n'est pas considerée indispensable par le profil. Par convention on la remplira avec la même valeur que RecordedAtTime pour signifier que l'information n'est pas à prendre en compte (on ne peut en efffet pas laisser le champ vide). |
Identity | ItemIdentifier | 0:1 | ItemIdentifier | Identifiant, qui permettra par la suite une annulation (par exemple, particulièrement utile si l’on ne dispose pas d’identifant de véhicule). |
VehicleMonitoringRef | 0:1 | VehicleMonitoringIdentifier | Identifiant du véhicule. | |
StopProgressInfo | ProgressBetweenStops | 0:1 | LocationStructure | Position du véhicule entre l’arrêt précédent et l’arrêt suivant. |
➞ LinkDistance | 0:1 | xsd:decimal | Distance totale entre les deux arrêts (distance réelle sur le réseau routier). | |
➞ Percentage | 0.1 | xsd:decimal | Pourcentage de cette distance déjà couverte par le véhicule. | |
JourneyInfo | MonitoredVehicleJourney | 1:1 | MonitoredVehicleJourney Structure | Décrit la course effectuée par le véhicule 6.2.5.1.1.1. C’est au sein de cette structure que l’on trouvera la position du véhicule (vehicleLocation).Voir paragraphe 6.2.5.1.1.1. |
Message | VehicleActivityNote | 0:* | NLString | Information textuelle concernant le véhicule et son état courant (positionnement, etc.). |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure VehicleActivityCancellation
VehicleActivityCancellation | +Structure | Annulation de l’affectation d’un véhicule à une course. |
---|
Endpoint | RecordedAtTime | 1:1 | xsd:dateTime | Heure à laquelle l’annulation a été signalée/publiée. |
---|---|---|---|---|
EventIdentity | ItemRef | 0:1 | ItemIdentifier | Identifiant de l’objet annulé (voir ItemRef plus haut). |
VehicleMonitoringRef | 0:1 | → VehicleMonitoringCode | Identifiant du véhicule. | |
FramedVehicleJourneyRef | 0:1 | +Structure | Description de la course annulée. | |
LineRef | 0:1 | → LineCode | Identifiant de la ligne. | |
JourneyPatternInfo | ::: | 0:1 | JourneyPatternInfoGroup | Voir SIRI Partie 2 JourneyPatternInfoGroup. |
Message | Reason | 0:* | NLString | Description textuelle de la cause de l’annulation. |
any | Extensions | 0:1 | Any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
General Message
Les lignes qui suivent présentent l’implémentation du service SIRI General Message dans le cadre du profil France.
Ce service est particulier, car la norme SIRI ne détaille pas la structure du message lui-même : ce qui est précisé par la norme SIRI sont les modalités de requête et de réponse pour accéder aux messages, ainsi que quelques informations de base comme les canaux de message (Info Channel).
Le message lui-même, présenté ci-dessous sous forme de schéma XSD, est donc complètement spécifique au profil France : il est en effet indispensable de le définir précisément pour assurer la compatibilité des différents systèmes.
Les messages peuvent être rattachés à n’importe quel objet du réseau (ligne, mission, itinéraire, section de ligne et bien sur arrêt). SIRI ne prévoit toutefois pas la possibilité de rattacher un tel message au service Stop Monitoring (pour avoir les deux informations en une seule requête), ce qui se justifie facilement par le fait que, comme cela vient d’être indiqué, le message n’est pas forcément rattaché à un arrêt.
Enfin, il faut rappeler que ce service n’est pas le service de gestion de perturbation : il était conçu pour pouvoir diffuser les informations non structurées de perturbation, dans un premier temps, en attendant la définition finale du service SIRI Situation Exchange et surtout en attendant que les alimentants soient en mesure de diffuser des informations structurées et non simplement textuelles.
Dans un second temps, l’usage du service General Message se restreint donc aux messages généraux de type communication (i.e.: Pensez à acheter votre coupon mensuel, modification de politique tarifaire ; etc.) ou information ne concernant pas les réseaux (i.e.: match, concert, etc.).
Matrice de capacité
Cette matrice n’est pas échangée dans le cadre du profil France: elle présente les principales fonctions retenues pour le service (les explications ne sont pas traduites dans ce tableau, mais on retrouve les traductions dans les tableaux qui suivent).
Topic | TopicFiltering | |
➞ DefaultPreviewInterval | Non. | |
➞ FilterByInfoChannel | Oui. | |
Request Policy | RequestPolicy | |
➞ Language | Non. (si le message est disponible en plusieurs langues, toutes les langues sont systèmatiquement diffusées) | |
Access Control | AccessControl | |
➞ RequestChecking | Non. | |
➞ CheckInfoChannel | Oui. | |
any | Extensions | Non. |
Requête au service « General Message »
GeneralMessageRequest | +Structure | Requête d’accès aux messages. |
Attributes | version | 1:1 | VersionString | Version du service « General Message », intégrant le numéro de version de profil (voir 4.2.9) (valeur fixe). |
Endpoint Properties | RequestTimestamp | 1:1 | xsd:dateTime | Date d'émission de la requête (voir SIRI Partie 2 Common properties of SIRI Functional Service Requests). |
MessageIdentifier | 1:1 | MessageQualifier | Numéro d'identification du message. | |
Topic | InfoChannelRef | 0:* | InfoChannelCode | Identifie le canal pour lequel on souhaite obtenir les messages. Si ce champ n'est pas présent, la requête concerne tous les canaux. Dans le cadre du profil FR, seules les valeurs suivantes seront utilisées pour identifier les canaux:
Note: ce sont bien ces libellés texte précis, qui sont utilisés pour instancier l'attribut InfoChannelRef (et non une codification équivalente). Les travaux prévus et non prévus sont transmis en messages de type « Perturbation ». Si le service SX est présent, seuls les canaux « Information » et « Commencial »sont valides. Les messages de type « perturbation » sont véhiculés par le service SX (cf § 6.7.1). |
Request Policy | Language | 0:1 | xml:lang | Langue dans laquelle le message est demandé. Dans le cadre du profil FR, seul le français est obligatoire, mais un système pourra optionnellement proposer d'autres langues. |
any | Extensions | 0:1 | +Structure | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Requête d’abonnement au service « General Message »
GeneralMessageSubscriptionRequest | +Structure | Requête d’abonnement au service SIRI GeneralMessage. |
Identity | SubscriberRef | 1:1 | ParticipantCode | Identifiant du système demandeur (voir SIRI Partie 2 Common SubscriptionRequest parameter. |
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant (externe) du canal d’abonnement. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure prévues pour la fin de l’abonnement. |
Request | GeneralMessageRequest | 1:1 | +Structure | Voir GeneralMessageRequest. |
Réponse du service « General Message » (structure générale)
ServiceDelivery | +Structure | See SIRI Part 2-7.2.1 ServiceDelivery. |
HEADER | :: | 1:1 | See ServiceDelivery | En-tête générique des réponses. |
Payload | GeneralMessageDelivery | 1:* | +Structure | Voir GeneralMessageDelivery. |
Réponse du service « General Message » (structure détaillée)
GeneralMessageDelivery | +Structure | Contenu et modification des messages. |
Attributes | version | 1:1 | VersionString | Version du service, intégrant le numéro de version de profil (voir 5.9) (valeur fixe). |
LEADER | ::: | 1:1 | xxxDelivery | En-tête (voir paragraphe 2.2*.).* |
Payload | InfoMessage | 0:* | +Structure | Le message lui-même (voir InfoMessage ci dessous). |
InfoMessageCancellation | 0:* | +Structure | Structure d’annulation d’un message précédent (voir ci dessous). |
Note: GeneralMessageDelivery doit contenir au moins un InfoMessage ou un InfoMessageCancellation (il peut bien sur en contenir plusieurs de chaque).
Description du « General Message »
InfoMessage | +Structure | Message d’information. |
attribute | formatRef | 1:1 | FormatCode | Identifie le format du contenu (ouvert pour ce service). Dans le cadre du profil FR, ce champ sera toujours présent et aura une valeur fixe « France » et correspond au transport de la structure spécifique de message décrite plus bas. |
log | RecordedAtTime | 1:1 | xsd:dateTime | Heure d'enregistrement du message. |
Identity | ItemIdentifier | 1:1 | ItemIdentifier | Identifiant unique du message SIRI, fourni par son émetteur (deux réceptions différentes ne peuvent avoir le même identifiant). Il doit être unique et pérenne et bien identifier le message. |
Identity | InfoMessageIdentifier | 1:1 | Identifier | Identifiant InfoMessage (sera utilisé pour les mises à jour et les abandons de message: toutes les mises à jour du message porteront le même InfoMessageIdentifier). |
InfoMessageVersion | 0:1 | xsd:positiveInteger | Version du InfoMessage.(considéré comme valant 1 si le champ n'est pas présent). | |
InfoChannelRef | 1:1 | InfoChannel | Canal auquel appartient le message. Dans le cadre du profil FR, seules les valeurs suivantes seront utilisées pour identifier les canaux :
Note: ce sont bien ces libellés texte précis, qui sont utilisés pour instancier l'attribut InfoChannelRef (et non une codification équivalente). Les travaux prévus et non prévus sont transmis en messages de type « Perturbation ». | |
Currency | ValidUntilTime | 1:1 | xsd:dateTime | Date et heure jusqu'à laquelle le message est valide. Si toutefois l'heure de fin d'incident n'est pas connue, cette heure sera fixée en fin de journée d'exploitation (ou une heure fixe de fin de journée). Cette heure pourra naturellement être modifiée par une mise à jour ultérieure (pour le même InfoMessageIdentifier). L'annulation du message est implicite lorsque que l'on atteint cette heure, mais peut aussi être anticipée en utilisant une InfoMessageCancellation (recommandé en mode abonnement). |
Situation | SituationRef | 0:* | SituationCode | Référence à un événement externe auquel est rattaché le message. |
Message | Content | 1:1 | anyType | Le message lui-même (voir ci-dessous) Note: il convient de bien noter que le type utilisé ici par SIRI est "anyType" (et non "any"). Ceci a pour conséquence l'obligation d'encoder (en attribut) le type de la structure utilisé dans pour décrire le message, en l'occurrence sous la forme : <Content xsi:type="siri: FRGeneralMessageStructure"> dans le cadre du profil France. |
any | Extensions | 0:1 | Any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Annulation d’un « General Message »
InfoMessageCancellation | +Structure | Annulation d’un message émis précédemment. |
log | RecordedAtTime | 1:1 | xsd:dateTime | Heure à laquelle le message a été annulé. |
Identity | ItemRef | 1:1 | ItemIdentifier | Identifiant unique du message SIRI (deux réceptions différentes ne peuvent avoir le même identifiant). Sa valeur doit naturellement être unique et pérenne pour un message. |
Identity | InfoMessageIdentifier | 1:1 | Identifier | Référence InfoMessage du message à annuler. |
InfoChannelRef | 0:1 | InfoChannelCode | Canal auquel appartient le message. Dans le cadre du profil IDF, seules les valeurs suivantes seront utilisées pour identifier les canaux:
Note: ce sont bien ces libellés texte précis qui sont utilisés pour instancier l'attribut InfoChannelRef (et non une codification équivalente). Les travaux prévus et non prévus sont transmis en messages de type « Perturbation ». | |
any | Extensions | 0:1 | Any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Structure spécifique des requêtes « General Message » pour le profil FR
Cette structure spécifique constitue le mécanisme de filtrage du service « General Message » et s’insère au sein de l’élément extension de la requête.
GM-1 | Les champs de la structure sont les suivants:
|
---|---|
GM-2 | Les champs de filtres sont insérés au sein d'une structure "choice" et ne peuvent donc être utilisés simultanément. |
Structure spécifique des messages pour le profil FR
Cette structure correspond au champ Content de la structure Infomessage.
Cette structure est définie de façon spécifique pour le profil FR car la norme SIRI n’impose pas de structure de message (et n’en propose pas non plus) : il revient donc à chaque profil de décrire ces messages.
GM-3 | Les champs de la structure sont les suivants :
Si une ligne est indiquée, le message porte sur toute la ligne sans restriction. Les choix de comportement pour générer la liste des messages concernant la ligne (messages spécifiques à la ligne, messages concernant tous les arrêts desservis par la ligne, etc.) restent à l'appréciation du producteur et seront précisés par les spécifications.
Il convient d'utiliser ici un identifiant d'objet de référence . Zone dembarquement, Lieu d’arrêt monomodal, Lieu d’arrêt multimodal. Les choix de comportement pour générer la liste des messages concernant l’arrêt (messages spécifiques à l’arrêt, messages concernant toutes les lignes de l’opérateur desservant l’arrêt, etc.) restent à l'appréciation du producteur et seront précisés par les spécifications.
Si une mission est indiquée, le message porte sur toute la mission sans restriction.
Si une destination est indiquée, le message porte sur toutes les courses ayant cette destination sans restriction.
Si un itinéraire est indiqué, le message porte sur tout l'itinéraire sans restriction.
Si une section de ligne est indiquée, le message porte sur tous les arrêts de cette section, sans restriction. Note: pour être exact il vaudrait mieux parler de section d’itinéraires, mais beaucoup de systèmes ne disposant pas de la notion d’itinéraires, le choix a été de faire porter la section sur la ligne.
Si une telle bibliothèque est utilisée, elle devra être définie dans le protocole d’accord établi entre les différents intervenants dans l’échange..
Chaque producteur fournit une information sans mise en page (sans retour chariot) : la charge de la mise en page revient aux diffuseurs en fonction de ses capacités d’affichage. |
---|
Note: Un GeneralMessage peut contenir plusieurs messages (voir la cardinalité sur la figure ci-dessus) formatés différemment ; charge au diffuseur de prendre le format le plus adapté à son usage et ses contraintes.
La fin de validitié d’un message, en particulier d’une perturbation, est gérée de la façon suivante :
GM-4 | En mode requête, le diffuseur doit considérer une information reçue précédemment comme obsolète quand la réponse qu’il reçoit est vide (ou tout du moins quand elle ne retourne plus l’information précédemment reçue) ou quand l’heure de fin d’évènement est expirée (champ ValidUntilTime) ; le producteur n’envoie en effet que les messages actifs au moment de la requête. |
---|---|
GM-5 | En mode abonnement, le diffuseur doit considérer une information reçue précédemment comme obsolète quand il reçoit une information de type “InfoMessageCancellation” ou quand l’heure de fin d’évènement est expirée (champ ValidUntilTime). |
Précision sur l’encodage de la structure spécifique France et exemple de message
Contrairement aux champs d’extension de SIRI, le type utilisé pour décrire le contenu du message de General Message est “anyType” (et non “any"). Ce choix correspond à une volonté de contraindre à partager, entre les acteurs impliqués dans l’échange, une structure pour ce contenu qui correspond au coeur du message, plutôt que de laisser les acteurs le remplir à leur guise (ce qui est en final une contrainte de base d’interopérabilité, à laquelle le profil France répond d’ailleurs bien avec les structures FrGeneralMessageStructure).
En conséquence, il convient donc d’encoder (en attribut) le type de la structure utilisée pour décrire le message, en l’occurrence sous la forme :
<Content xsi:type="siri:FrGeneralMessageStructure">
Les lignes ci-dessous proposent un exemple de Delivery d’un General Message dans le cadre du profil France.
<siri:GeneralMessageDelivery version="1.3">
<siri:ResponseTimestamp>2013-12-19T11:26:59.677+01:00</siri:ResponseTimestamp>
<siri:RequestMessageRef>SOAP-REQ-12345</siri:RequestMessageRef>
<siri:Status>true</siri:Status>
<siri:ValidUntil>2013-12-19T11:28:59.677+01:00</siri:ValidUntil>
<siri:DefaultLanguage>FR</siri:DefaultLanguage>
<siri:GeneralMessage formatRef="France">
<siri:RecordedAtTime>2013-12-19T11:26:59.767+01:00</siri:RecordedAtTime>
<siri:ItemIdentifier>ITEM-ID-1234567</siri:ItemIdentifier>
<siri:InfoMessageIdentifier>INFMSG-ID-12345678</siri:InfoMessageIdentifier>
<siri:InfoChannelRef>Information</siri:InfoChannelRef>
<siri:ValidUntilTime>2013-13-19T11:32:59.767+01:00</siri:ValidUntilTime>
<siri:Content xsi:type="siri:FrGeneralMessageStructure">
<siri:Message>
<siri:MessageType>textOnly</siri:MessageType>
<siri:MessageText xml:lang="FR">Trafic normal sur l'ensemble du réseau.</siri:MessageText>
</siri:Message>
</siri:Content>
</siri:GeneralMessage>
</siri:GeneralMessageDelivery>
Facility Monitoring
Dans le cadre du profil SIRI France le terme ‘Facility’ ne sera pas traduit en français. Aucun terme équivalent pertinent n’ayant été trouvé. Une facility désigne à la fois :
- Un équipement
- Des services (Banquaires, Commerces, …)
- Un véhicule
- Un emplacement de parking
- Une zone
- …
A chaque « Facility » peut être associé un mécanisme de comptage et une localisation.
Ce service permet d’échanger :
- La définition d’une « Facility » (vs un identifiant), y compris sa localisation. Dans le cadre du profil France l’utilisation de l’identifiant sera privilégiée. La définition de la « Facility » étant connu au travers d’échanges NetEx (cf Profil NetEx France)
- L’état d’une ou plusieurs « facilities » (disponibilité) et des actions possibles pour traiter une indisponibilité.
- Et/ou des informations de comptage (le type, l’unité et la valuer).
- Et/ou des informations de localisation (identifiants de point d’arrêt, lieu d’arrêt, vehicule, course, exploitant, …)
- Des impacts des états de la « facility » sur l’accessibilité
Requête d’information sur l’état des équipements « Facility » pour lequel les informations seront retournées
FacilityMonitoringRequest | +Structure | Requête pour obtenir des informations temps reel sur un ‘Service’ |
Attributes | Version | 1:1 | VersionString | Version du service ‘Facility Monitoring’ integrant le numéro de version du profil France ‘2.1:FR-1.0’ | |
EndpointProperties | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête | |
MessageIdentifier | 1:1 | MessageQualifier | Numéro d’identification du message | ||
Topic | FacilityRef | 0:1 | FacilityCode | Il convient d’utiliser ici un identifiant d’objet de type ‘Facility’ pour lequel les informations seront retournées | |
LineRef | 0:1 | LineCode | Filtre permettant d’obtenir les informations temps reel de tous les « facilities » d’une ligne. | ||
StopPointRef | 0:1 | StopPointCode | Filtre permettant d’obtenir les informations temps reel de tous les « Facilities » d’un point d’arrêt. | ||
VehicleRef | 0:1 | VehicleCode | Filtre permettant d’obtenir les informations temps réel de tous les services d’un véhicule. | ||
StopPlaceRef | 0:1 | StopPlaceCode | Filtre permettant d’obtenir les informations temps réel de tous les services d’un lieu d’arrêt. | ||
StopPlaceComponentRef | 0:1 | StopPlaceComponentCode | Filtre permettant d’obtenir les informations temps réel de tous les services d’un composant de lieu d’arrêt. | ||
SiteRef | 0:1 | SiteCode | Reference to a Site. Utilisé pour les nouveaux modes et les parkings. | ||
Request Policy | MaximumFacilityStatus | 0:1 | xsd:positiveInteger | Nombre maximum de Facility à prendre en compte dans la réponse. Si aucune valeur n’est spécifiée, tous les services disponibles et rentrant dans les filtres spécifiés sont retournés. |
Requête d’abonnement sur l’état des Services
VehicleMonitoringSubscriptionRequest | +Structure | Requête d’abonnement pour obtenir les informations temps réels sur l’état des services. |
Identity | SubscriberRef | 0:1 | ParticipantCode | Identification du système demandeur (See SIRI Part 2 Common SubscriptionRequest parameters). |
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant de l’abonnement pour le système demandeur. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure de fin de l'abonnement : un abonnement a forcément une date et heure de fin (les partenaires pourront décider de limiter la durée maximale d’un abonnement). |
Request | FacilityMonitoringRequest | 1:1 | +Structure | Cf 6.6.1. |
Policy | IncrementalUpdates | 0:1 | xsd:boolean | Indique s’il faut notifier uniquement les changements d'information ou s’il faut systématiquement renvoyer toutes les informations si l'une d'elles change. Valeur par défaut : « true » (mise à jour incrémentale). |
Structure FacilityMonitoringDelivery
La réponse à la requête contient les informations d’état d’un ou plusieurs équipements/services
FacilityMonitoringDelivery | +Structure | Description de l’état des services. |
Attributes | version | 1:1 | VersionString | Numéro de version du service Facility Monitoring. |
LEADER | ::: | 1:1 | xxxServiceDelivery | |
Payoad | FacilityCondition | 0:* | +Structure | Description de l’état d’un service. |
any | Extensions | 0:1 | Any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
La structure FacilityCondition porte les informations de définition de la facility, son état, les éventuelles informations de comptage associées, les informations de localisation et des informations complémentaires (lien vers la perturbation ou l’action corrective identifiée, …)
Le profil SIRI France permet de remonter les informations d’état, de comptage et de localisation.
Description de la structure ‘FacilityCondition’
FacilityCondition | +Structure | Description de l’état d’une “Facility ». |
---|
Facility (choice) | Facility | 1:1 | +Structure | Description Générale d’une facility (cf Facility). La definition d’une FACILITY sera lorsque possible faite au travers des échanges NeTEx. L’utilisation du service SIRI à cette fin sera à limiter au maximum. Voir FM-1. |
FacilityRef | 1:1 | → FacilityCode | Identifiant d’une Facility. L’utilisation de references aux facility sera privilégiée Voir FM-1. | |
Status | FacilityStatus | 1:1 | +Structure | Description de l’état d’un Facility (cf §6.6.3.2). |
Counting | MonitoredCounting | 0:1 | +Structure | Mise à jour du compteur associé à la « Facility » (cf §6.6.3.3). |
Position | FacilityUpdatedPosition | 0:1 | +Structure | Mise à jour de la position de la « Facility » (cf §6.6.3.1.1). |
Situation | SituationRef | 0:1 | SituationCode | Identifiant d’une SITUATION associée à l'état de l'installation. |
Timing information | ValidityPeriod | 0:*1 | +Structure | Période de validité (début et durée) de la condition des du jour-type Voir ValidityCondition. |
any | Extensions | 0:1 | Any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
FM001 | La définition de la « Facility » sera récupérée via un flux NeTEx. Le service SIRI FM privilégiera l’utilisation du champ FacilityRef. |
---|
Description de la structure ‘Facility’
FM002 | A renseigner uniquement si non inclue dans les exchanges NeTEx |
---|
Facility | +Structure | Décrit l’état de la « Facility ». |
Identify | FacilityCode | 1:1 | FacilityCode | Identifiant de la “Facility”. |
Description | Description | 0:1 | nLString | Description de la f”acility”. |
Class | FacilityClass | 0:1 | fixedEquipment mobileEquipment siteComponent site parkingBay vehicle | Définition de la catégorie de la « Facility ».(cf 6.6.3.1.1.1). |
Feature | 0:* | enumeration | Fonctionalités du service. Cf profil Accessiblité” NeTEx [R1]. | |
Temporal | ValidityCondition | 0:*1 | +Structure | Période de validité de la « Facility ». |
Location | FacilityLocation | 0:1 | +Structure | Localisation du service exprimée sous la forme d’un identifiant d’objet parmi les types identifies ci-dessous. |
➞ LineRef | 0:1 | LineCode | Identifant d’une ligne (au sens Transmodel) sur laquelle le service est localisé. | |
➞ StopPointRef | 0:1 | StopPointCode | Identifiant d’un point d’arrêt planifié (au sens Transmodel) sur lequel le service est localisé. | |
➞ VehicleRef | 0:1 | VehicleCode | Identifiant d’un véhicule (au sens Transmodel) sur lequel le service est localisé. | |
➞ StopPlaceRef | 0:1 | StopPlaceCode | Identifiant d’un lieu d’arrêt (au sens Transmodel) sur lequel le service est localisé. | |
➞ StopPlaceComponentId | 0:1 | ComponentId | Identifiant d’un composant de lieu d’arrêt (au sens Transmodel) sur lequel le service est localisé. | |
➞ OperatorRef | 0:1 | OperatorRef | OPERATOR of a VEHICLE JOURNEY. Note : L’opérateur peut changer au cours d'un voyage. Cela permet indiquer l'opérateur au point actuel du trajet. Il convient d’utiliser « Journey Parts » pour enregistrer tous les opérateurs de l'ensemble du trajet. | |
Accessibility | AccessibilityAssessment | 0:1 | +Structure | Description des informations d’accessibilité liées à l’état du service. (cf 6.6.3.1.1.3). |
any | Extensions | 0:1 | Any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Description de l’enum FacilityClass
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-FM | Description |
---|---|
fixedEquipment | « Facility » est un équipement fixe. |
mobileEquipment | « Facility » est un équipement mobile (embarqué). |
site | Facility est un site. |
parkingBay | Facility est un emplacement de parking. |
vehicle | Facility est un véhicule. |
Description de l’enum ‘Feature’
Se reporter au profil NeTex France Accessibilité [R1].
Description de la structure ‘AccessibilityAssessment’
Se reporter au profil NeTex France Accessibilité [R1].
Description de l’état d’une “Facility”
FacilityStatus | +Structure | Décrit l’état d’une « Facility ». |
Status | Status | 1:1 | unknown | available | notAvailable | partiallyAvailable | added | removed | Etat d’une “Facility” (cf 6.6.3.2.1). |
Description | Description | 0:1 | nlString | Description associée à l’état d’une « Facility ». |
Special Needs | AccessibilityAssessment | 0:* | +Structure | Décrit l’état de l’accessibilité pour différents types de besoins spéciaux. |
Description de l’enum ‘Status’
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-FM | Description |
---|---|
unknown | Etat d’une “Facility” inconnu.. Le champ description doit être renseigné si valorisé avec unknowm (RG) |
available | “Facility” disponible. |
notAvailable | “Facility” non disponible. |
partiallyAvailable | “Facility” partiellement disponible. |
added | “Facility” ajoutée définitivement. |
removed | “Facility” supprimée définitivement. |
Description de comptage associé à une »Facility »
Cette structure permet d’associer un compteur à une Facility, l’utilisation de cette structure est à convenir entre les partenaires de l’échange. Il pourra s’agir par exemple du nombre de personnes dans un véhicule, sur un quai, nombre de place de parking, nombre de bornes libres / occupées pour les aires de staionnement de vehicules partagés, …
Counting Type | CountingType | 1:1 | CountingTypeEnumeration | Nature de ce qui est compté (cf 6.6.3.3.1). |
CountedFeatureUnit | 0:1 | CountedFeatureUnitEnumeration | Unité de comptage (cf 0) | |
TypeOfCountedFeature | 0:1 | TypeOfValueStructure | Type ouvert ou classification affinée de ce qui est compté (complément aux informations provenant du type de la Facility lui-même)Exemples :
| |
Count | Choix | -1:1 | ||
a) Count | 0:1 | xsd:integer | Valeur comptée. | |
b) Percentage | 0:1 | PercentageType | Valeur exprimée en pourcentage (0.0 à 100.0) de la valeur maximale possible. | |
Counting description | Trend | 0:1 | CountingTrendEnumeration | Tendance du comptage (cf 6.6.3.3.3) |
Description | 0:1 | NaturalLanguageStringStructure | Description de ce qui est compté. |
Description de l’enum ‘CountingType’
Les valeurs retenues par le profil SIRI France sont les suivantes :
Value | Description |
---|---|
availabilityCount | Comptage des véhicules disponibles, des appareils, de l'espace, etc. |
reservedCount | Comptage du véhicule réservé, des appareils, de l'espace, etc. |
outOfOrderCount | Comptage des véhicules, appareils, espaces hors service, etc. |
presentCount | Comptage des personnes pésentes. |
currentStateCount | Niveau de ressource ou statut de la mesure (carburant, etc.). Associé à un TypeofCOuntedFeature. |
FM001 | L’utilisation de la valeur ‘currentStateCount’ nécessite que le champ ‘TypeOfCountedFeature’ soit présent. |
---|
Description de l’enum ‘CountedFeatureUnit’
Les valeurs retenues par le profil SIRI France sont les suivantes :
Value | Description |
---|---|
bays | Emplacement pour garer un véhicule. |
seats | Place assise. |
devices | Les appareils divers (comme les casiers, les guides audio, etc.). |
vehicles | Tout type de véhicule. |
persons | Personne physique. |
Description de l’enum ‘Trend'
Les valeurs retenues par le profil SIRI France sont les suivantes :
Value | Description |
---|---|
decreasing | La valeur est actuellement en baisse. |
increasing | La valeur est actuellement en hausse. |
stable | La valeur est actuellement stable. |
unstable | La valeur est actuellement instable sans tendance claire. |
unknown | La tendance est inconnue. |
Remedy
Description des actions à entreprendre pour remédier à la non-disponibilité d’une ‘facility’.
Non retenu dans le profil SIRI France.
Situation Exchange
Ce service permet de définir les perturbations et leurs consequences. Dans le cadre de cette version du profil il a pour objectif de définir une perturbation, ses zones de conséquence et les messages associés à diffuser.
SX001 | Si ce service est implémenté, le service GM ne doit plus etre utilisé pour la diffusion de message de type perturbation. |
---|
Pour la mise à jour des systèmes utilisant le service GM pour le transfert de message de perturbation les règles de traduction sont rappelées dans la suite de ce paragraphe.
Messages Information Voyageur (IV) associés aux évènements
Cas de la compatibilité avec le service General Message du profil SIRI ‘Ile de France’
Le service Situation Exchange peut être utilisé en lieu et place du service General Message tel qu’il a été particularisé dans le cadre du profil Île-de-France 2.4. Cela permettra d’éviter une utilisation combinée des deux services, tout en permettant aux acteurs qui le souhaitent d’utiliser le service en restant sur le périmètre fonctionnel retenu pour General Message.
Seule la compatibilité concernant les filtres de requête n’est pas totale. Ainsi, les filtres DestinationRef, RouteRef et JourneyPatternRef ne sont pas disponibles au niveau de Situation Exchange. Mais l’information est disponible dans les réponses.
On notera aussi certaines différences de mode de fonctionnement. Ainsi le service Situation Exchange ne dispose pas d'InfoMessageCancellation, mais effectue cette notification en positionnant l’attribut Progress à Closed (PtSituationElement).
Notons aussi que, par nature, le champ SituationRef de General Message n’a pas de correspondance car il a pour vocation de permettre de faire le lien avec une Situation de Situation Exchange, ce qui n’a guère d’intérêt ici….
On notera enfin que le champ ValidUntil utilisé dans Situation exchange est celui de l’entête du message (AbstractServiceDeliveryStructure).
Les messages textuels eux même seront traités de la façon suivante :
shortMessage : Message dans Summary (dans PtSituationElement)
longMessage : Message dans Description (dans PtSituationElement)
textOnly : Type MIME text/plain (dans Summary ou Description suivant que le message est court ou long) avec un champ additionnel " Content-Description: SIRI-FR-IDF no line break message”.
Note: il n’y a pas de type MIME générique excluant les sauts de ligne, d’où cet usage du champ MIME Content-Description.formattedText : Type MIME text/plain (dans Summary ou Description suivant que le message est court ou long).
Note: les champs NumberOfLines et NumberOfCharPerLine n’ont pas d’équivalent dans Situation Exchange, mais peuvent aisément être recalculés à partir du message lui-même.HTML : Type MIME text/html (dans Summary ou Description suivant que le message est court ou long)
RTF : Type MIME text/rtf (dans Summary ou Description suivant que le message est court ou long)
codedMessage : Message dans ReasonName (dans PtSituationElement)
Exemple de message :
MIME-Version: 1.0
Content-Type: text/plain
Content-Description: SIRI-FR-IDF no line break message
Ceci est un Message
Messages avec Zones de diffusion
Les champs ‘summary’ et ‘description’ tels que définis au paragraphe 6.7.1.1 permettent de définir un message général associé à l’évènement et ses conséquences.
En complément, le profil SIRI France permet de définir des messages spécifiques à des zones de diffusion (6.7.4.1.7.6.5). La structure PublishingAction permet de definir pour différents canaux de communication un message (prompt) et sa zone de diffusion (Affect).
Les tableaux de définition du service Situation Exchange, ci-dessous, intègrent les éléments necessaires pour assurer la compatibilité avec l’implémentation du Service GM
Requête pour l’obtention d’information relatives à des évènements et leurs conséquences
SituationExchangeRequest | +Structure | Requête pour obetnir des informations sur l’état de la « Facility » |
Attributes | Version | 0:1 | VersionString | Version du service ‘Situation Exchange’ integrant le numéro de version du profil France ‘2.1:FR-1.0’ |
Timestamp | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête |
Contextualised Request EndpointGroup | MessageIdentifier | 0:1 | MessageQualifier | Numéro d’identification du message |
TemporalSubscriptionGroup | PreviewInterval | 0:1 | PositiveDurationType | Durée pendant laquelle les SITUATIONS doivent être incluses, c'est-à-dire que seules les SITUATIONS qui commencent avant la fin de cette fenêtre seront incluses. Normalement utilisé pour les abonnements afin de conserver une fenêtre glissante d'intérêt. |
StartTime | 0:1 | xsd:dateTime | Heure de début initiale pour PreviewInterval. Si absente, l'heure actuelle est prise par défaut. Seules les SITUATIONS ou les mises à jour créées après cette heure seront envoyées. Cela permet un redémarrage sans tout renvoyer. | |
Temporal Content FilterGroup | ValidityPeriod | 0:1 | →structure | Plage temporelle pour les incidents à inclure tous les incidents actuels seront inclus. |
➞ StartTime | 1:1 | xsd:dateTime | Heure de début des incidents. Les incidents avec une heure de début après cette heure seront inclus. | |
➞ EndTime | 0:1 | xsd:dateTime | Heure de fin des incidents. Les incidents avec une heure de fin avant cette heure ou sans heure de fin à cette heure seront inclus. | |
➞ EndTimePrecision | 0:1 | Enum: day | hour| second | millisecond | Précision avec laquelle interpréter l'heure de fin. La valeur par défaut est à la seconde. | |
AffectedModeGroup | →Group | Les éléments du groupe MODE. | ||
VehicleMode | 0:1 | →VehicleModesOfTransportation Enum | Mode du véhicule : voir l’énumération complète dans le XSD SIRI [R10]. | |
AccessMode | 0:1 | Enum {foot|bicycle|car|taxi|shuttle} | Les catégories d'accès autorisées au lieu d'arrêt pour lesquelles les situations seront renvoyées. Par défaut “foot” | |
Severity | 0:1 | enum | Valeur du filtre de gravité à appliquer : seules les SITUATIONS dont la gravité est supérieure ou égale à la valeur spécifiée seront renvoyées. . Par Defaut « undefined ». Filtre à appliquer sur la sévérité d’une Situation (cf §6.7.4.1.4) | |
SituationClassifierFilterGroup | Keywords | 0:1 | xsd:NMTOKENS | .Dans le cas de l'utilisation en lieu et place de General Message, seules les valeurs suivantes seront utilisées et permettent de gérer la mise en cohérence avec les canaux General Message : «Perturbation» |
SituationNetworkFilterGroup | 0:1 | Group | Filtre les résuluats pour n’inclure que les SITUATIONs relatives aux éléments NETWORK (voir ci-dessous). Note : Regroupe les filtres operator, Line, StopPoint | |
Request Policy | MaximumNumberOfSituationElements | 0:1 | xsd:positiveInteger | Le nombre maximal de SituationElements à inclure dans une diffusion donnée. Les n événements les plus récents dans la fenêtre d'anticipation sont inclus. |
Situation Network filter
SituationNetworkFilterGroup | OperatorRef | 0:1 | →OperatorCode (xsd:NMToken) | Filtre les résultats pour n'inclure que les SITUATIONS relatives à l'Opérateur. |
NetworkRef | 0:1 | →NetworkCode | Filtre les résultats pour n'inclure que les SITUATIONS relatives au réseau. | |
choix | -1:1 | Filtre les résultats pour n'inclure que les SITUATIONS relatives aux LIGNES données | ||
a) LineRef | 0:* | →LineCode (xsd:NMToken) | Filtre les résultats pour n'inclure que les résultats de la LIGNE donnée. Si aucune LineRef n'est spécifiée comme filtre d'abonnement, cela implique implicitement la transmission de données pour toutes les LIGNES dans le SAE. | |
b) Lines | 0:1 | +structure | ||
➞ LineDirection | 1:* | +LineDirectionStructure | Filtre les résultats pour n'inclure que les SITUATIONS relatives aux Lignes/Direction spécifiées. | |
StopPointRef | 0:* | →StopPointCode (xsd:NMToken) | Filtre les résultats pour n'inclure que les SITUATIONS relatives points d’arrêt spécifiés | |
FacilityRef | 0:* | →FacilityCode | Filtre les résultats pour n'inclure que les SITUATIONS relatives aux « Facilities ».. |
Abonnement pour l’obtention et la mise à jour d’évènements et leurs conséquences
Situation ExchangeSubscriptionRequest | +Structure | Demande d’abonnement au Service d’échange de situation. |
SubscriptionIdentityGroup | SubscriberRef | 0:1 | →ParticipantCode | Voir SIRI Partie 2 “Common SubscriptionRequest parameters.” |
SubscriptionIdentifier | 1:1 | SubscriptionQualifierStructure | Voir SIRI Partie 2 “Common SubscriptionRequest parameters.” | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTime | Voir SIRI Partie 2 “Common SubscriptionRequest parameters.” |
Request | SituationExchangeRequest | 1:1 | +Structure | |
Situation ExchangeSubscriptionPolicy | IncrementalUpdates | 0:1 | xsd:Boolean | Indique s’il faut notifier uniquement les changements d'information ou s’il faut systématiquement renvoyer toutes les informations si l'une d'elles change. Valeur par défaut : « true » (mise à jour incrémentale). |
Réponses aux demandes d’événements
La fourniture du service ‘Situation Exchange’ permet de distribuer des informations relatives à la définition et la mise à jour d’un ou plusieurs événements.
Ce service distingue la définition de la perturbation (PTSituationElement) des messages d’information Voyageur associée (Description + Publishing Actions).
Ces messages ne pas distribués par le service GM si le Service SX est implémenté dans un échange.
SituationExchangeDelivery | +Structure | Définition et mise à jour des informations de perturbation et messages IV associés. |
Attributes | version | 1:1 | VersionString | Version Identifier d’une perturbation,, par exemple ‘1.1a’. |
HEADER | ::: | 1:1 | xxxServiceDelivery | Voir SIRI Partie 2 xxxServiceDelivery. |
SituationExchangePayloadGroup | PtSituationContext | 0:1 | +Structure | Décrit les valeurs communes à toutes les SITUATIONS de la diffusion. |
Situations | 0:1 | +Structure | ||
➞ PtSituationElement | 0:* | +Structure | Définition des pertrubations et messages IV associés (cf 6.7.4.1). |
PtSituationElement
PtSituationElement | +Structure | Description d’une perturbation |
Log | CreationTime | 1:1 | xsd:dateTime | Heure de creation de SITUATION |
SituationSharedIdentityGroup | SituationBasedIdentityGroup | →Group | Éléments Référence à une SITUATION ou mise à jour d'une SITUATION. ParticipantRef est facultatif et peut être fourni à partir du contexte. | |
CountryRef | 0:1 | →CountryCode | Code Pays du participant | |
ParticipantRef | 1:1 | →ParticipantCode | Identifiant du système participant qui crée la SITUATION. Voir la partie 2.. Identifiant Unique par pays. | |
SituationNumber | 1:1 | →SituationNumber | Identifiant unique d’une SITUATION pour un Participant. Dans le cas de l'utilisation en lieu et place de General Message, correspond au InfoMessageIdentifier. | |
SituationUpdateIdentityGroup | →Group | Type de référence pour une mise à jour d’une SITUATION. ParticipantRef est facultatif et peut être fourni à partir du contexte. | ||
Version | 0:1 | →Situation Version | Version d’une mise à jour d’un élément de SITUATION. Dans le cas de l'utilisation en lieu et place de General Message, correspond au InfoMessageVersion. | |
SituationInfoGroup | Source | 0:1 | +SituationSourceStructure | Source d’une SITUATION |
➞ SourceType | 1:1 | Enum | Dans le cas de l'utilisation en lieu et place de General Message, seul le champ SourceType de la structure sera utilisé, et positionné à directReport. Voir définition Enum : 6.7.4.1.1.1 | |
Log | VersionedAtTime | 0:1 | xsd:dateTime | |
PtSituationBodyGroup\StatusGroup | Verification | 0:1 | Enum {unknown|unverified|verified} | Indique si la SITUATION a été vérifiée. Il s’agit d’un enuméré. Valeur par défaut : « unknown ». |
Progress | 0:1 | Enum | Etat de SITUATION. Il s’agit d’un enuméré. Dans le cas de l'utilisation en lieu et place de General Message, seuls les codes Open et Closed sont utilisés. Le Closed équivaut alors à un InfoMessageCancellation Définition Enum : 6.7.4.1.2 | |
QualityIndex | 0:1 | Enum {certain|veryReliable|reliable|unreliable|unconfirmed} | Évaluation de l'exactitude probable des données. Valeurs d'énumération Valeur par défaut : unconfirmed | |
Publication | 0:* | PublicationStatus | Statut de publication. Un ensemble spécifié de sous-états auxquels une SITUATION peut être attribuée. | |
PtSituationBodyGroup\TemporalGroup | ValidityPeriod | 1:* | range | Une ou plusieurs Période d'application globale inclusive de la SITUATION |
➞ StartTime | 1:1 | xsd:dateTime | L'horodatage de début (inclusif) | |
➞ EndTime | 0:1 | xsd:dateTime | L'horodatage de fin (inclusif). Si elle est omise, la fin de la plage est ouverte, c'est-à-dire qu'elle doit être interprétée comme "pour toujours". | |
➞ EndTimeStatus | 0:1 | Enum: {undefined | longTerm | shortTerm} | Si l'heure de fin n'est pas fournie, s'il faut l'interpréter comme une SITUATION à long terme, à court terme ou d'une durée inconnue. La valeur par défaut est indéfinie | |
Repetitions | 0:1 | DayType | La situation s'applique uniquement aux types de jours répétés au cours de la ou des périodes de validité globales. Par exemple “dimanche”. | |
➞ DayType | 1:* | enum | Jour Type. | |
PublicationWindow | 0:* | range | Fenêtre de publication pour SITUATION si différente de la période de validité. La période pendant laquelle le public est informé de SITUATION peut commencer avant ou après SITUATION. | |
➞ StartTime | 1:1 | xsd:dateTime | L'horodatage de début (inclusif). | |
➞ EndTime | 0:1 | xsd:dateTime | L'horodatage de fin (inclusif). Si elle est omise, la fin de la plage est ouverte, c'est-à-dire qu'elle doit être interprétée comme "pour toujours". | |
➞ EndTimeStatus | 0:1 | Enum: {undefined | longTerm | shortTerm} | Si l'heure de fin n'est pas fournie, s'il faut l'interpréter comme une SITUATION à long terme, à court terme ou d'une durée inconnue. La valeur par défaut est « undefined ». | |
ClassifierGroup | ReasonGroup | 1:1 | enum | |
ReasonName | 0:1 | string | ||
Severity | 0:1 | enum | Sévérité de SITUATION Valeur par Defaut : « normal ». Définition de l’énuméré : voir 6.7.4.1.4). Dans le cas de l'utilisation en lieu et place de General Message, ce champ sera utilisé pour les messages de type codedMessage (le champ porte alors valeur du MessageText pour les messages de type codedMessage). | |
Priority | 0:1 | nonNegativeInteger | Classement arbitraire de la priorité du message si différent de la gravité 1-Élevée. A noter que cela peut être utilisé pour les niveaux d'urgence Datex2. 1 = extremelyUrgent. 2 = urgent. 3 = normal. | |
Sensitivity | 0:1 | Enum {high|medium|low} | Confidentialité de SITUATION. Valeurpar défaut : medium | |
Audience | 0:1 | Enum {public|emergencyService|authorities|transportOperators} | Audience de SITUATION. | |
ScopeType | 0:1 | enum | Type de périmètre de SITUATION. Définition de l’énuméré : voir 6.7.4.1.5. | |
Planned | 0:1 | boolean | Si la SITUATION était planifiée (par exemple, travaux d'ingénierie) ou non planifiée (par exemple, modification du service). La valeur par défaut est « false », c'est-à-dire non planifiée. | |
Keywords | 0:1 | xsd:NMTOKENS | Dans le cas de l'utilisation en lieu et place de General Message, seules les valeurs suivantes seront utilisées et permettent de gérer la mise en cohérence avec les canaux General Message :
| |
DescriptionGroup | Summary | 0:* | DefaultedText | Résumé de la SITUATION. S'il est absent, il doit être généré à partir des éléments de structure et/ou en condensant la Description. Dans le cas de l'utilisation en lieu et place de General Message, cf 6.7.1. |
Description | 0:* | DefaultedText | Description de la SITUATION. Ne doit répéter aucune LIGNE incluse dans le résumé.. Dans le cas de l'utilisation en lieu et place de General Message, cf 6.7.1. | |
Detail | 0:* | DefaultedText | Détails descriptifs supplémentaires sur la SITUATION. Pour l'utilisation du texte par défaut. | |
Advice | 0:* | DefaultedText | Autres conseils aux passagers. Pour l'utilisation du texte par défaut. | |
Internal | 0:1 | DefaultedText | Description de la SITUATION à usage (interne) de l'entreprise. Pour l'utilisation du texte par défaut. | |
Images | 0:1 | Image | Ajout d’une ou plusieurs Images. | |
➞ Image | 1:* | +Structure | ||
InfoLinks | 0:1 | InfoLink | Un ou plusieurs InfoLinks pour description. | |
➞ InfoLink | 1:* | +Structure | ||
Affects | 0:1 | +Structure | Identification des parties du réseau de transport affectées par la SITUATION. Voir 6.7.4.1.7.6. | |
PtBodyGroup | Consequences | 0:1 | many | One or more consequences. Description des consequences de l’évènement |
➞ Consequence | 1:* | +Structure | Voir 6.7.4.1.6 | |
PublishingActions | 0:1 | →ActionsStructure | Conséquence d’une SITUATION. Description d’une consequence de l’évènement cf §6.7.4.1.6 |
Description de la structure ‘Source’
SituationSource | +Structure | Information relative à la source des données de la SITUATION |
Country | 0:1 | →CountryCode | Pays d’origine de la Source. Code IANA. | |
SourceType | 1:1 | enum | Nature de la source ayant initialisée l’évènement Dans le cas de l'utilisation en lieu et place de General Message, seul le champ SourceType de la structure sera utilisé, et positionné à directReport. Définition de l’énuméré : voir 6.7.4.1.1.1. | |
SituationSourceDetailsGroup | 0:1 | string | Email du fournisseur | |
Phone | 0:1 | phoneNumber | Numéro téléphone fournisseur. | |
Web | 0:1 | anyURL | URL du fournisseur. |
Description de l’enum SourceType
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-SX | Description |
---|---|
directReport | Rapport remis en direct |
Rapport reçu via email | |
phone | Rapport reçu via téléphone |
post | Rapport reçu via courrier postal |
feed | Rapport reçu via alimentation automatique |
radio | Rapport reçu via radio |
tv | Rapport reçu via TV |
web | Rapport reçu via website |
text | Rapport reçu via message |
other | Rapport reçu via autres moyens |
Decription de l’enum ‘Progress’
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI SX | Description |
---|---|
open | Situation en cours |
published | Situation en cours et publiée |
closed | Situation terminée |
SX-2 | Une situation ‘open’ n’est pas communiquée à l’extérieur du système. Dès lors que la situation est échangée avec l’extérieur le status doit passer à ‘published’. |
---|
Description de l’enum ‘Reason’
Miscellaneous reasons
Les valeurs retenues par le profil SIRI France sont les suivantes :
Group | SIRI-SX | |
---|---|---|
Miscellaneous | unknown | inconnu |
incident | incident | |
bombExplosion | explosion d’une bombe | |
securityAlert | alerte sécurité | |
fire | feu | |
vandalism | vandalisme | |
accident | accident | |
overcrowded | surchargé | |
insufficientDemand | Demande insiffisante | |
lightingFailure | Panne d’éclairage | |
serviceFailure | Défaut de service | |
congestion | congestion | |
routeBlockage | Blocage de l’itinéraire | |
personOnTheLine | Personne sur la ligne | |
vehicleOnTheLine | Véhicule sur la ligne | |
objectOnTheLine | Objet sur la ligne | |
animalOnTheLine | Animal sur la ligne | |
routeDiversion | Déviation | |
roadClosed | Route fermée | |
roadworks | Travaux | |
specialEvent | Evénement spécial | |
bridgeStrike | Grève de pont | |
undefinedProblem | Problème non défini |
Personnel reasons
Les valeurs retenues par le profil SIRI France sont les suivantes :
Group | SIRI-SX | |
---|---|---|
Personnel Reason | unknown | Inconnu |
staffSickness | Personnel Malade | |
staffAbsence | Personnel absent | |
staffInWrongPlace | Personne mal positionné | |
staffShortage | Manque de personnel | |
industrialAction | Grève. | |
undefinedPersonnelProblem | Problème de personnel non défini |
SIRI-SX | ||
---|---|---|
Personne sub lReason | staffInjury | Blessure du personnel |
contractorStaffInjury | Personnel sous-traitant malade | |
unofficialIndustrialAction | Grève officieuse | |
staff sickness | Personnel malade | |
industrial action | Grève |
Equipment reasons
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-SX | ||
---|---|---|
Equipment Reason | unknown | inconnu |
signalProblem | Problème de signalisation | |
signalFailure | Panne de signalisation | |
derailment | déraillement | |
engineFailure | Panne moteur | |
breakDown | Panne | |
technicalProblem | Problème technique | |
repairWork | En réparation | |
constructionWork | Travaux de construction | |
maintenanceWork | En maintenance | |
powerProblem | Problème d’alimentation | |
fuelProblem | Problème de carburant | |
swingBridgeFailure | Échec du pont tournant | |
escalatorFailure | Panne d’escalator | |
liftFailure | Panne d’ascenseur | |
gangwayProblem | Problème de passerelle | |
closedForMaintenance | Fermeture pour maintenance | |
fuelShortage | Pénurie de carburant | |
deicingWork | Travaux de dégivrage | |
wheelProblem | Problème de roue | |
luggageCarouselProblem | Problème carrousel à bagages | |
undefinedEquipmentProblem | Problème d’équipement non défini |
SIRI-SX | ||
---|---|---|
Equipment Subreason | tractionFailure | Défaut de la traction |
defectiveTrain | Train défectueux | |
slipperyTrack | Voie glissante | |
trackCircuitProblem | problème de circuit de voie | |
Signal and Switch Failure | Échec du signal et de switch | |
brokenRail | rail cassé | |
poorRailConditions | mauvaises conditions ferroviaires | |
lackOfOperationalStock | manque de stock opérationnel | |
defectiveFireAlarmEquipment | Équipement d’alarme incendie défectueux | |
defectivePlatformEdgeDoors | portes palières défectueuses | |
defectiveCctv | CCTV défectueux | |
defectivePublicAnnouncementSystem | Système d’annonce publique défectueux | |
ticketingSystemNotAvailable | Système billetique non disponible | |
levelCrossingFailure | Défaut deu passage à niveau | |
trafficManagementSystemFailure | Défaillance du système de gestion du trafic | |
emergencyEngineeringWork | Travaux d’ingénierie d’urgence | |
lateFinishToEngineeringWork | finition tardive de travaux d’ingénierie | |
overheadWireFailure | Panne de cables aérien |
Environment reason
Les valeurs retenues par le profil SIRI France sont les suivantes :
Group | SIRI-SX | |
---|---|---|
Environment Reason | unknown | Inconnu |
fog | broullard | |
roughSea | Mer agitée | |
heavySnowFall | fortes chutes de neige | |
heavyRain | Fortes pluies | |
strongWinds | Vents forts | |
tidalRestrictions | Restriction liée aux marées | |
highTide | Marée Haute | |
lowTide | Marée basse | |
ice | Glace | |
frozen | Gel | |
hail | Grêle | |
highTemperatures | Température élevée | |
flooding | Innondation | |
waterlogged | Sol détrempé | |
lowWaterLevel | niveau d’eau faible | |
highWaterLevel | niveau d’eau élevé | |
fallenLeaves | Feuilles mortes | |
fallenTree | Chute d’arbres | |
landslide | glissement de terrain | |
undefinedEnvironmentalProblem | Problème environmental non défini |
Group | SIRI-SX | |
---|---|---|
Environment Weather Subreason | driftingSnow | Neige à la dérive |
blizzardConditions | Conditions de blizzard | |
stormDamage | dégâts de tempête | |
stormConditions | Conditions de tempête | |
slipperiness | glissance | |
iceDrift | Dérive de glace | |
glazedFrost | glacé | |
lightningStrike | coup de foudre | |
avalanches | avalanches | |
flashFloods | crues éclair | |
Environment ground Subreason | mudslide | glissement de terrain |
rockfalls | chutes de pierres | |
subsidence | affaissement | |
earthquakeDamage | Dégats Tremblement de terre | |
sewerOverflow | Débordement d’égout | |
grassFire | Feu d’herbe |
Autres raisons
Unknown / UndefinedReasons
Description de l’enum ‘Severity’
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-SX | Description |
---|---|
unknown | Inconnu |
slight | Léger |
normal | Normal |
severe | Sévère |
noImpact | Pas d’impact |
undefined | Non défini |
Description de l’enum ‘ScopeType’
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-SX | Description |
---|---|
general | La perturbation a un impact global. |
operator | La perturbation a un impact sur un opérateur spécifique. |
network | La perturbation a un impact sur tout le réseau. |
route | La perturbation a un impact sur un itinéraire particulier. |
line | La perturbation a un impact sur une ligne particulière. |
place | La perturbation a un impact sur un lieu particulier. |
StopPlace | La perturbation a un impact sur un lieu d’arrêt particulier. |
stopPoint | La perturbation a un impact sur un point d’arrêt particulier. |
vehicleJourney | La perturbation a un impact sur une course spécifique. |
Description de la structure ‘Consequences’
PtConsequence | +Structure | Effet d’une SITUATION sur le service |
Classifiers | Condition | 0:* | enum | Classification de l'effet sur le service. Il peut être remplacé par JourneyCondition dans AffectedVehicleJourney Qualification de l’événement sur l’offre de transport (cf §6.7.4.1.6.1) |
Severity | 1:1 | enum | Gravité de la SITUATION. La valeur par défaut est normale (cf 6.7.4.1.4). | |
Advice | Advice | 0:1 | +PtAdviceStructure | Conseils aux passangers (cf ci-dessous) |
➞ AdviceRef | 0:1 | id | Identifiant de la norme. Message d'information complémentaire aux passagers | |
➞ Details | 0:* | nlString | Conseils textuels supplémentaires aux passagers. | |
Blocking | Blocking | 0:1 | +Structure | Comment la perturbation doit être gérée dans les systèmes d'information. Cf ci-après |
➞ JourneyPlanner | 0:1 | boolean | La valeur par défaut est false ; ne pas supprimer. Indique si les données de l’évènement doivent être ou non prises en compte par un calculateur d’itinéraire | |
Activity | Boarding | 0:1 | +Structure | Public visé par SITUATION. Voir les lignes suivantes. |
➞ ArrivalBoardingActivity | 0:1 | enum | Type d'embarquement et de débarquement autorisé à l'arrêt à l’arrivée. La valeur par défaut est Embarquement. | |
➞ DepartureBoardingActivity | 0:1 | enum | Type d'embarquement et de débarquement autorisé à l'arrêt au départ. La valeur par défaut est Embarquement. | |
Delay | Delays | 0:1 | +Structure | Retards prévus . |
➞ Delay | 0:1 | dPositiveDuration | Temps de trajet supplémentaire nécessaire pour surmonter les perturbations. |
SX-3 | Les délais sont exprimés uniquement sous la forme d’une durée |
---|
Description de l’enum ‘Conditions’
Les valeurs retenues par le profil SIRI France sont les suivantes :
SIRI-SX | Description |
---|---|
unknown | inconnu |
altered | dégradé |
cancelled | annulé |
delayed | retardé |
diverted | Dévié |
noService | pas de service |
disrupted | perturbé |
additionalService | service supplémentaire |
specialService | service spécial |
onTime | à l’heure |
normalService | service normal |
intermittentService | service intermittant |
extendedService | service étendu |
splittingTrain | train fractionné |
replacementTransport | transport de remplacement |
arrivesEarly | en avance |
shuttleService | service navette |
replacementService | service de remplacement |
undefinedServiceInformation | service d’information inconnu. |
Description de la structure ‘Publishing Actions’
PublishingActions | +Structure | Indication par type de canal de communication d’actions à réaliser. Permet la diffusion des messages IV complémentaires sur des localisations particulières. |
ActionsGroup | PublishToWebAction | 0:* | +Structure | Publication sur le web. Cf 6.7.4.1.7.1 |
PublishToMobileAction | 0:* | +Structure | Publication sur outils mobiles. Cf 6.7.4.1.7.2 | |
PublishToDisplayAction | 0:* | +Structure | Diffusion sur des afficheurs Embarqués / Sol | |
NotifyByEmailAction | 0:* | +Structure | Publication via email. Cf 6.7.4.1.7.3 | |
NotifyBySmsAction | 0:* | +Structure | Publication via SMS.Cf 6.7.4.1.7.5 |
Description de la structure “PublishToWebAction”
PublishToWebAction | +Structure | Paramètres de publication sur le canal Web. |
ParameterisedAction | ParameterisedAction | 0:1 | +Structure | Hérité de ParameterisedAction. ParameterisedAction : utilisé pour permettre de définir un message à publier sur le web cf 6.7.4.1.7.6 |
Incidents | 0:1 | boolean | A inclure dans les listes de SITUATION sur le site Web. La valeur par défaut est 'vrai'. | |
HomePage | 0:1 | boolean | A inclure sur la page d'accueil du site Web. La valeur par défaut est 'faux'. | |
Ticker | 0:1 | boolean | A inclure dans la bande de défilement mobile. La valeur par défaut est 'faux' | |
SocialNetwork | 0:* | string | A inclure dans le RÉSEAU social indiqué par ce nom. La valeur possible pourrait être "twitter.com", "facebook.com", "vk.com" et ainsi de suite |
Description de la structure “PublishToMobileAction”
PublishToMobileAction | +Structure | Paramètres de publication sur le canal Téléphone Mobile. |
ParameterisedAction | ParameterisedAction | 0:1 | +Structure | Hérité de ParameterisedAction. ParameterisedAction : utilisé pour permettre de définir un message à publier sur telephone portable cf 6.7.4.1.7.6 |
Incidents | 0:1 | boolean | Inclure dans les listes de SITUATION sur le site Web mobile. La valeur par défaut est ’true’. | |
HomePage | 0:1 | boolean | Inclure sur la page d'accueil du site Web mobile. La valeur par défaut est ’false’. |
Description de la structure “PublishToDisplayAction”
PublishToDisplayAction | +Structure | Paramètres pour diffuser sur un afficheur |
ParameterisedAction | ParameterisedAction | 0:1 | +Structure | Hérité de ParameterisedAction. ParameterisedAction : Utilisé pour permettre de définir un message à publier sur telephone portable cf 6.7.4.1.7.6 |
OnPlace | 0:1 | boolean | Indique si il s’agit d’un afficheur Sol : Par Défaut 'true'. | |
Onboard | 0:1 | boolean | Indique si il s’agit d’un afficheur Embarqué :. Par Défaut 'false'. |
Description de la structure « NotifyByEmailAction”
NotifyByEmailAction | +Structure | Paramètres pour diffuser sur le canal Email |
ParameterisedAction | ParameterisedAction | 0:1 | +Structure | Hérité de ParameterisedAction. ParameterisedAction : Utilisé pour permettre de définir un message à publier via email cf 6.7.4.1.7.6. |
PushedActionStructure | BeforeNotices | 0:1 | +Structure | Indique si un rappel doit être envoyé, cf lignes ci-dessous. |
➞ Interval | 0:* | →DurationType | Interval avant la date de début auquel envoyer le rappel. | |
ClearNotice | 0:1 | Boolean | Indique si un avertissement de fin doit être envoyé. | |
0:1 | →EmailAddressType | Adresse email à laquelle le rappel doit être envoyé. |
Description de la structure “NotifyBySmsAction”
NotifyBySmsAction | +Structure | Paramètres de publication sur le canal SMS |
ParameterisedAction | ParameterisedAction | 0:1 | +Structure | Hérité de ParameterisedAction. ParameterisedAction : utilisé pour permettre de définir un message SMS cf 6.7.4.1.7.6. |
PushedActionStructure | BeforeNotices | 0:1 | +Structure | Indique si un rappel doit être envoyé, cf lignes ci-dessous. |
➞ Interval | 0:* | →DurationType | Interval avant la date de début auquel envoyer le rappel. | |
ClearNotice | 0:1 | Boolean | Indique si un avertissement de fin doit être envoyé. | |
Phone | 0:1 | →PhoneType | Numéro de téléphone auquel envoyer le rappel. | |
Premium | 0:1 | boolean | Indique si le contenu est signalé comme soumis à des frais supplémentaires. Par défaut 'false'. |
Description de la structure ‘Affect’
Affects | +Structure | Périmètre de la SITUATION et de ses consequences. |
Level | AreaOfInterest | 0:1 | enum | Périmètre géographique |
Operators | Operators | 0:1 | +Structure | Périmètre niveau OPERATOR |
➞ choix | -1:1 | |||
a) AllOperators | 0:1 | empty | Tous les OPERATORs sont concernés | |
b) AffectedOperator | 0:* | +Structure | Annotation pour les opérateurs impactés par la SITUATION (cf 6.7.4.1.7.6.5) | |
network | Networks | 0:1 | +Structure | Identification des réseaux impactés |
➞ AffectedNetwork | 1:* | +Structure | Annotation pour les réseaux impactés par la SITUATION. Liste des réseaux cibles de l’action de publication (cf 6.7.4.1.7.6.1) | |
Stop | StopPoints | 0:1 | +Structure | SCHEDULED STOP POINT (Point d’arrêt planifié) impactés par SITUATION. Points d’arrêt cible de la publication |
➞ AffectedStopPoint | 1:* | +Structure | Périmètre des SCHEDULED STOP POINT (Point d’arrêt planifié) Liste des points d’arrêt cibles de l’action de publication | |
StopPlace | StopPlaces | 0:1 | +Structure | STOP PLACEs impactés par SITUATION. Cf lignes ci-dessous. |
➞ AffectedStopPlace | 1:* | +Structure | Annotation pour les STOP PLACE impactés. | |
Place | Places | 0:1 | +Structure | PLACEs impactés par SITUATION. Cf lignes ci-dessous. |
➞ AffectedPlace | 1:* | +Structure | Annotation pour les PLACE. | |
Journey | VehicleJourneys | 0:1 | +Structure | VEHICLE JOURNEYs impactés par une SITUATION. Cf lignes ci-dessous. Liste des Courses cibles de la publication. |
➞ AffectedVehicleJourney | 1:* | +Structure | VEHICLE JOURNEY impacté par SITUATION. Course cible de la publication cf 6.7.4.1.7.6.3 | |
Vehicles | Vehicles | 0:1 | +Structure | VEHICLEs impactés par une SITUATION. Cf lignes ci-dessous. |
➞ AffectedVehicle | 1:* | +Structure | Annotation pour les VEHICLE impactés. |
AffectedNetwork | +Structure | Périmètre de la perturbation et ses conséquences sur le réseau Identification du/des réseaux sur lesquels publier l’action. |
Operators | AffectedOperator | 0:* | +Structure | Annotation à l’ Operator de services impacté par SITUATION. |
Network | NetworkRef | 0:1 | →OperatorCode (xsd:NMToken) | RÉSEAU de la LIGNE concernée. S'il est absent, peut être extrait du contexte Identifiant du réseau (au sens transmodel) |
NetworkName | 0:* | nlString | Nom du reseau (NETWORK). | |
RoutesAffected | 0:* | nlString | Description textuelle de l'ensemble des ROUTE affectées. | |
Mode | AffectedModeGroup | 0:1 | →Group | Identification des modes impactés |
Lines | ➞ choix | -1:1 | Périmètre de la LINE | |
a) AllLines | 0:1 | emptyType | Toutes les LINEs du NETWORK sont impactées. | |
b) SelectedRoutes | 0:1 | emptyType | Sélection des ROUTEs affectées, les informations de niveau LIGNE ne sont pas disponibles. Cf l'élément RoutesAffected pour la description textuelle. | |
c) AffectedLine | 0:* | +Structure | Lignes du réseau impactées (cf 6.7.4.1.7.6.4). |
AffectedStopPoint | +Structure | Anotation au point d’arrêt topologique impacté par la SITUATION. |
Stop | StopPointRef | 0:1 | →StopPointCode (xsd:NMTOKEN) | Points d’arrêt concernés par la publication. Identifiant de SCHEDULED STOP POINT (Point d’arrêt planifié). Identifiant de Point d’arrêt. |
Modes | AffectedModes | 0:1 | MODE impactés. | |
➞ choix | -1:1 | |||
a) AllModes | 0:1 | emptyType | Tous les modes du SCHEDULED STOP POINT (Point d’arrêt planifié) sont impactés. | |
b) Mode | 0:* | →AffectedModeGroup | Modes impactés par la SITUATION. | |
Zone | PlaceRef | 0:1 | →ZoneRefStructure (xsd:NMTOKEN) | Identifiant du Lieu où se situe le SCHEDULED STOP STOP (Point d’arrêt planifié) |
PlaceName | 0:* | nlString | Nom du lieu où se situe le SCHEDULED STOP STOP (Point d’arrêt planifié). | |
AccessibilityAssessment | 0:1 | +Structure | ACCESSIBILITY ACCESSMENT pour le SCHEDULED STOP POINT (Point d’arrêt planifié). | |
StopCondition | 0:* | RoutePointTypeEnumeration | Etat du SCHEDULED STOP POINT (Point d’arrêt planifié). Plusieurs condtions peuvent être valident en même temps. | |
ConnectionLinks | 0:1 | many | CONNECTION links du SCHEDULED STOP POINT (Point d’arrêt planifié) impactés par la SITUATION. | |
➞ AffectedConnectionLink | 0:* | +Structure | Annotation au CONNECTION link impactée par la SITUATION. |
AffectedVehicleJourney | +Structure | Annotation à la course référencée impactée par la SITUATION. Courses cibles de l’action de publication. |
choix | -1:1 | Identifiant d’une course impactée | ||
b) VehicleJourneyRef | 1:* | →VehicleJourneyCode (xsd:NMTOKEN) | Identifiant de course (au sens Transmodel) |
AffectedLine | +Structure | Annotation à la LINE impactée par la SITUATION. |
Line | LineRef | 1:1 | →LineCode (xsd:NMTOKEN) | Identifiant de ligne (LINE). |
Destination | Destinations | 0:* | DESTINATIONs impactée. | |
➞ AffectedStopPoint | 0:1 | +Structure | Point d’arrêt impacté par SITUATION. | |
Direction | Direction | 0:* | +Structure | DIRECTIONs impactées. |
➞ DirectionRef | 0:1 | →DirectionCode (xsd:NMTOKEN) | Identifiant de DIRECTION. | |
➞ DirectionName | 0:* | nlString | Nom de DIRECTION. |
AffectedOperator | +Structure | Périmètre de la perturbation et ses conséquences sur le réseau Identification du/des opérateurs sur lesquels publier l’action. |
Operator | OperatorRef | 0:1 | →OperatorCode | Identifiant de l’operateur (au sens transmodel). |
Description de la structure ParameterisedAction
ParameterisedAction | +Structure |
SimpleActionStructure | ActionStatus | 0:1 | enum | Status de l’Action. cf 6.7.4.1.7.7.1. | |
Description | 0:1 | nlString | Description de l’action. | ||
ActionData | 0:* | +Structure | Information associée à l’action, cf lignes ci-dessous. | ||
➞ Name | 1:1 | xsd:NMTOKEN | Nom de l’action. | ||
➞Prompt** | 0:* | nlString | Libéllé du message associé au publishingAction. | ||
➞PublishAtScope** | 0:1 | +Structure | Zone de diffusion du message ‘Prompt’. | ||
⇉ ScopeType | 0:1 | enum | Type de l’action (cf 6.7.4.1.5). | ||
⇉ Affects | 0:1 | +Structure | Zone de diffusion du message ‘prompt’, cf 6.7.4.1.7.6. |
Les valeurs retenues par le profil SIRI France sont les suivantes :
Value | Description |
---|---|
open | Action ouverte non publiée. |
published | Action publiée. |
closed | Action close. |
Eléments techniques des messages
En-têtes des requêtes
Structure générale des requêtes
ServiceRequest | +Structure | Structure générale des requêtes |
log | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête. |
Endpoint Properties | Address | 0:1 | EndpointAddress | Adresse réseau de destination de la réponse (ici une URL dans le cadre d’une implémentation SOAP). |
RequestorRef | 1:1 | ParticipantCode | Identifiant du demandeur (reprendre la structure [fournisseur] des identifiants). | |
MessageIdentifier | 1:1 | MessageQualifier | Identifiant unique de ce message. | |
Payload | Concrete service subscription | -1:1 | choix | Si la suite contient plusieurs réponses, elles doivent toutes être du même type. |
a) ProductionTimetableRequest | 0:1 | +Structure | Voir SIRI Partie 3 – Production Timetable. | |
b) EstimatedTimetableRequest | 0:1 | +Structure | Voir SIRI Partie 3 – Estimated Timetable. | |
d) StopMonitoringRequest | 0:1 | +Structure | Voir SIRI Partie 3 – Stop Monitoring. | |
f) VehicleMonitoringRequest | 0:1 | +Structure | Voir SIRI Part 3 – Vehicle Monitoring. | |
h) ConnectionMonitoringRequest | 0:1 | +Structure | Voir SIRI Partie 3 – Connection Monitoring. | |
i) GeneralMessageRequest | 0:1 | +Structure | Voir SIRI Partie 3 – General Message. | |
j) FacilityMonitoringRequest | 0:1 | +Structure | Voir SIRI Partie 4 – Facility Monitoring. SIRI . | |
k) SituationExchangeRequest | 0:1 | +Structure | Voir SIRI Partie 5 – Situation Exchange. SIRI . |
Contexte générique des requêtes
La structure ci-dessous n’est pas échangée, mais son contenu doit être connu des différents protagonistes (définition par le profil et dans le cadre du protocole d’accord). Cette structure propose une séparation très fine des différentes notions, mais sera généralement utilisée de façon très simplifiée.
ServiceRequestContext | +Structure | Propriétés générales des requêtes. |
Server Endpoint Address | CheckStatusAddress | 0:1 | EndpointAddress | Adresse (URL) de destination du CheckStatus. |
SubscribeAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des demandes d’abonnement. | |
ManageSubscriptionAddress | 0:1 | EndpointAddress | Adresse (URL) de destination pour la gestion des abonnements déjà établis (interruption, …). | |
GetDataAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des réponses aux requêtes. | |
Client Endpoint Address | StatusResponseAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des réponses aux CheckStatus. |
SubscriberAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des réponses aux demandes de notification. | |
NotifyAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des notifications. | |
ConsumerAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des données. | |
Location | choix | -1:1 | Format des coordonnées géographiques | |
a) WgsDecimalDegrees | 0:1 | EmptyType | Les coordonnées Géospatiales sont données en latitude et longitude WGS84, en degré décimal de l’arc. | |
b) GmlCoordinateFormat | 0:1 | srsNameType | Nom du format de coordonnées GML utilisé dans la réponse pour les points géospatiaux. Les deux formats sont autorisés en France (note : il existe de nombreux outils libres permettant de convertir les coordonnées d’un référentiel à l’autre). | |
Temporal Span | DataHorizon | 0:1 | PositiveDurationType | Durée maximale de l’horizon de données des requêtes. |
RequestTimeout | 0:1 | PositiveDurationType | Délai à partir duquel on peut considérer qu’une requête ne sera plus traitée (par défaut 1 minute). | |
Delivery Method | DeliveryMethod | 0:1 | fetch | direct | Abonnement à une phase (voir en début de document) uniquement : donc direct. |
MultipartDespatch | 0:1 | xsd:boolean | Autorisation de segmentation des messages : Non dans le profil France. | |
ConfirmReceipt | 0:1 | xsd:boolean | Confirmation des réceptions: Non dans le profil France. | |
Resource Use | MaximumNumberOfSubscriptions | 0:1 | xsd:positiveInteger | Nombre maximal d’abonnements pour un unique abonné (par défaut non limité). |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
En-têtes des réponses
Structure générique des réponses
Note : Cette structure n’est pas utilisée dans le cadre des échanges SOAP (point de départ avec xxxDelivery).
ServiceDelivery | +Structure | Structure générique de réponse aux requêtes. |
Attributes | srsName | 0:1 | xsd:string | Identifiant du système de projection (pour la localisation spatiale) : probablement Lambert 2 étendu (soit EPSG:27582 -NTF(Paris)/Lambert II étendu). | |
Log | ResponseTimestamp | 1:1 | xsd:dateTime | Heure de production de la réponse. | |
Endpoint properties | ProducerRef | 0:1 | ParticipantCode | Identifiant du producteur de la réponse (reprendre le code [fournisseur] des identifiants du profil FR) | |
ResponseMessageIdentifier | 1:1 | MessageQualifier | Identifiant unique du message de réponse. | ||
RequestMessageRef | 1:1 | MessageQualifier | Identifiant de la requête à laquelle on répond. | ||
Status | Status | 1:1 | xsd:boolean | Indique si la requête a pu être traitée avec succès ou non. | |
ErrorCondition | 0:1 | See below | Signalement d’erreur (voir le paragraphe sur la gestion des erreurs). | ||
➞ choix | -1:1 | ||||
a) CapabilityNotSupportedError | 0:1 | +Error | Requête non supportée. | ||
b) OtherError | 0:1 | +Error | Autre erreur. | ||
➞ Description | 0:1 | ErrorDescription | Description de l’erreur . | ||
Payload | choix | -1:1 | Plusieurs des structures suivantes peuvent se succéder, mais elles doivent être toutes du même type. | ||
a) ProductionTimetableDelivery | 0:* | +Structure | Voir SIRI Partie 3 – Production Timetable. | ||
b) EstimatedTimetableDelivery | 0:* | +Structure | Voir SIRI Partie 3 – Estimated Timetable. | ||
d) StopMonitoringDelivery | 0:* | +Structure | Voir SIRI Partie 3 – Stop Monitoring. | ||
e) VehicleMonitoringDelivery | 0:* | +Structure | Voir SIRI Partie 3 – Vehicle Monitoring. | ||
g) ConnectionMonitoringFeederDelivery | 0:* | +Structure | Voir SIRI Partie 3 – Connection Monitoring. | ||
h) ConnectionMonitoringDistributorDelivery | 0:* | +Structure | Voir SIRI Partie 3 – Connection Monitoring. | ||
i) GeneralMessageDelivery | 0:* | +Structure | Voir SIRI Partie 3 – General Message. | ||
j) FacilityMonitoringDelivery | 0:* | +Structure | Voir SIRI Partie 4 – Facility Monitoring. | ||
k) SituationExchange Delivery | 0:* | +Structure | Voir SIRI Partie 5 – Situation Exchange. |
Structure des réponses aux services
xxxDelivery | +Structure | Structure générique des réponses aux services |
Log | ResponseTimestamp | 1:1 | xsd:dateTime | Date et heure de production de la réponse. | ||||
Endpoint properties | RequestMessageRef | 1:1 | MessageQualifier | Référence de la requête. | ||||
SubscriberRef | 0:1 | ParticipantCode | Identification du souscripteur. Obligatoire en cas d’abonnement. | |||||
SubscriptionRef | 0:1 | SubscriptionQualifier | Identification de la souscription. Obligatoire en cas d’abonnement. | |||||
Status | Status | 1:1 | xsd:boolean | Indique si la requête a pu être traitée avec succès ou non. | ||||
ErrorCondition | 0:1 | +Structure | Signalement d’erreur (voir le paragraphe sur la gestion des erreurs). | |||||
➞ choix | -1:1 | Choix parmi les codes d’erreur | ||||||
a) ServiceNotAvailableError | 0:1 | Le service fonctionnel n’est pas disponible (mais il est toujours capable de donner une réponse). | ||||||
b) CapabilityNotSupportedError | 0:1 | + Error | Fonction non supportée. | |||||
c) AccessNotAllowedError | 0:1 | +Error | Accès refusé. | |||||
d) InvalidDataReferencesError | 0:1 | +Error | La requête contient des références à des identifiants qui ne sont pas connus. | |||||
e) BeyondDataHorizon | 0:1 | +Error | La période ou la souscription est en dehors de la période couvert par le service. | |||||
f) NoInfoForTopicError | 0:1 | +Error | Pas d’information pour cette requête. | |||||
g) ParametersIgnoredError | 0:1 | +Error | La requête contient des paramètres qui ne sont pas supportés par le producteur. Une réponse a été fournie mais certains paramètres ont été ignorés. | |||||
h) UnknownExtensionsError | 0:1 | +Error | La requête contient des extensions qui ne sont pas supportés par le producteur. Une réponse a été fournie mais certains paramètres ont été ignorés. | |||||
i) AllowedResourceUsageExceededError | 0:1 | +Error | Réponse trop volumineuse. | |||||
j) OtherError | 0:1 | +Error | Autre erreur. | |||||
➞ Description | 0:1 | ErrorDescription | Description de l’erreur. | |||||
ValidUntil | 0:1 | xsd:dateTime | Date de validité maximale de la réponse. | |||||
ShortestPossibleCycle | 0:1 | PositiveDurationType | Intervalle minimal de mise à jour de la donnée. | |||||
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Abonnement
Structure générale des abonnements
SubscriptionRequest | +Structure | Structure générale de requêtes d’abonnement |
Log | RequestTimestamp | 1:1 | xsd:dateTime | Date de la requête d’abonnement. |
Endpoint properties | Address | 0:1 | EndpointAddress | Adresse de destination de la réponse à la demande d’abonnement (accepté ou non). |
RequestorRef | 1:1 | ParticipantCode | Identifiant du demandeur de la réponse (reprendre le code [fournisseur] des identifiants du profil FR). | |
MessageIdentifier | 1:1 | MessageQualifier | Identifiant unique de la requête de souscription (utilisé dans la réponse). | |
ConsumerAddress | 0:1 | EndpointAddress | Adresse (URL) de destination des notifications. | |
SubscriptionFilterIdentifier | 0:1 | xsd:NMTOKEN | Identification d’un canal d’abonnement qui permettra de grouper plusieurs requêtes d’abonnement (canal par défaut, non nommé si le champ n’est pas présent). | |
Payload | Concrete service subscription: | -1:1 | choix | Plusieurs des structures suivantes peuvent se succéder, mais elles doivent être toutes du même type. |
a) ProductionTimetableSubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 3 - Production Timetable. | |
b) EstimatedTimetableSubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 3- Estimated Timetable. | |
d) StopMonitoringSubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 3 - Stop Monitoring. | |
e) VehicleMonitoringSubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 3 - Vehicle Monitoring. | |
g) ConnectionMonitoringSubscriptionRequest | 0:* | +Structure | Voir SIRI Part 3 - Connection Monitoring. | |
h) GeneralMessageSubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 3 – General Message. | |
i) FacilityMonitoring SubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 4 - Facility Monitoring. | |
j) SituationExchange SubscriptionRequest | 0:* | +Structure | Voir SIRI Partie 5 – Situation Exchange. |
Réponse aux requêtes d’abonnement
SubscriptionResponse | +Structure | Réponse à une demande d’abonnement. |
Log | ResponseTimestamp | 1:1 | xsd:dateTime | Date et heure de production de la réponse. |
Endpoint properties | Address | 0:1 | EndpointAddress | Adresse pour la gestion ultérieure de l’abonnement. |
ResponderRef | 1:1 | ParticipantCode | Identifiant du système répondant (reprendre le code [fournisseur] des identifiants du profil FR). | |
RequestMessageRef | 1:1 | MessageQualifier | Identifiant unique du message (de cette réponse). | |
Payload | ResponseStatus | 1:* | +Structure | Statut de la réponse (en erreur et donc refusée, ou Ok). |
SubscriptionManagerAddress | 0:1 | EndpointAddress | Adresse du gestionnaire d’abonnement si différent de celle du producteur ou de celle connue par défaut. | |
ServiceStartedTime | 0:1 | xsd:dateTime | Heure à laquelle le service fournissant l’abonnement a été démarré pour la dernière fois. Ce champ peut être utilisé pour détecter un redémarrage. S’il est absent, l’adresse est inconnue. Dans le cas du profil France, le responsable des abonnements devra les mémoriser et les réactiver automatiquement au redémarrage, ce champ n’est donc pas utile dans le cas classique. Ce champ sera utilisé dans le cas des échanges avec les concentrateurs pour superviser les connexions d'abonnement. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Qualificateur (état) de réponse
ResponseStatus | +Structure | Qualificateur des réponses. |
Log | ResponseTimestamp | 0:1 | xsd:dateTime | Date de création de ce statut de réponse. |
Endpoint | RequestMessageRef | 1:1 | MessageQualifier | Référence de la requête. |
SubscriberRef | 1:1 | ParticipantCode | Identification du souscripteur. | |
Subscription FilterRef | 0:1 | SubscriptionFilterRef | Référence au filtre utilisé dans l'abonnement et auquel la réponse correspond. Peut être omis si un seul filtre est associé à l'abonnement. | |
SubscriptionRef | 1:1 | SubscriptionQualifier | Identification de la souscription. | |
Payload | Status | 1:1 | xsd:boolean | Indique si la requête a été traitée normalement ou pas. |
ErrorCondition | 0:1 | +Structure | Signalement d’erreur (voir le paragraphe sur la gestion des erreurs). | |
➞ choix | –1:1 | |||
| 0:1 | +Error | Fonction non supportée. | |
| 0:1 | +Error | Accès refusé. | |
| 0:1 | +Error | Pas d’information pour cette requête. | |
d) AllowedResourceUsageExceededError | 0:1 | +Error | Réponse trop volumineuse. | |
e) OtherError | 0:1 | +Error | Autre erreur. | |
➞ Description | 0:1 | ErrorDescription | Description de l’erreur. | |
Info | ValidUntil | 0:1 | xsd:dateTime | Date de validité maximale de la réponse. |
ShortestPossibleCycle | 0:1 | PositiveDurationType | Intervalle minimal de mise à jour de la donnée. |
Requête de cloture d’abonnement
TerminateSubscriptionRequest | +Structure | Demande de fin d’abonnement. |
Endpoint properties | RequestTimestamp | 1:1 | xsd:dateTime | Date de la demande. |
Endpoint properties | Address | 0:1 | EndpointAddress | Adresse du souscripteur. |
RequestorRef | 1:1 | ParticipantCode | Identifiant du souscripteur de la réponse (reprendre le code [fournisseur] des identifiants du profil FR). | |
MessageIdentifier | 1:1 | MessageQualifier | Identifiant unique du message. | |
Topic | choix | –1:1 | Au choix: | |
| 0:1 | EmptyType | Demande de clôture de tous les abonnements. | |
b) SubscriptionRef | 0 :1 | SubscriptionQualifier | Identifiant de l’abonnement à clôturer. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Réponse aux demandes de clôture de souscription
TerminateSubscriptionResponse | +Structure | Réponse aux demandes de fin de souscription. |
Endpoint properties | ResponseTimestamp | 1:1 | xsd:dateTime | Datation de la réponse. |
ResponderRef | 1:1 | ParticipantCode | Identification du système répondant. | |
RequestMessageRef | 1:1 | MessageQualifier | Identification de la requête. | |
Payload | TerminationResponseStatus | 1:* | +Structure | Statut de la demande de clôture d’abonnement. |
➞ ResponseTimestamp | 0:1 | xsd:dateTime | Heure de réponse (pour l’abonnement ci-dessous). | |
➞ SubscriberRef | 0:1 | ParticipantCode | Identifiant du souscripteur. | |
➞ SubscriptionRef | 1:1 | SubscriptionQualifier | Identifiant de la souscription. | |
➞ Status | 1:1 | xsd:boolean | Indique si la souscription a bien pu être close | |
➞ ErrorCondition | 0:1 | +Structure | Signale une éventuelle erreur. | |
⇉ choix | -1 :1 | Au choix : | ||
a) CapabilityNotSupportedError | 0:1 | +Error | Fonction non supportée. | |
b) UnknownSubscriberError | 0:1 | +Error | Souscripteur inconnu. | |
c) UnknownSubscriptionError | 0:1 | +Error | Souscription inconnue. | |
d) OtherError | 0:1 | +Error | Autre erreur. | |
⇉ Description | 0:1 | ErrorDescription | Description de l’erreur. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2). |
Notification de clôture de souscription
SubscriptionTerminatedNotification | +Structure | Notification permettant au producteur de données de signaller l’interruption d’un ou plusieurs abonnement en cours |
---|
Log | ResponseTimestamp | 1:1 | xsd:dateTime | Date et Heure de production de la réponse. |
---|---|---|---|---|
Endpoint | ProducerRef | 0:1 | ParticipantCode | Identifiant du producteur de la réponse (reprendre le code [fournisseur] des identifiants du profil). |
ResponseMessageIdentifier | 1:1 | MessageQualifier | Identifiant unique du message de réponse. | |
RequestMessageRef | 1:1 | MessageQualifier | Identifiant de la requête à laquelle on répond. | |
Subscription | SubscriberRef | 0:1 | ParticipantCode | Identification du souscripteur. |
SubscriptionFilterRef | 0:1 | SubscriptionFilterRef | Référence au filtre utilisé dans l'abonnement et auquel la réponse correspond. Peut être omis si un seul filtre est associé à l'abonnement. | |
SubscriptionRef | 1:1 | SubscriptionQualifier | Identification de la souscription. | |
ErrorCondition | 0:1 | See below | Signalement d’erreur (voir le paragraphe sur la gestion des erreurs). | |
Choix | -1:1 | |||
a) OtherError | 0:1 | +Error | Autre erreur. | |
b) Description | 0:1 | ErrorDescription | Description de l’erreur. | |
any | Extensions | 0:1 | xsd:any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Vérification de l’état des partenaires (service Check Status)
Requête de vérification d’état
CheckStatusRequest | +Structure | Requête de vérification d’état |
Log | RequestTimestamp | 1:1 | xsd:dateTime | Date et heure de la requête. |
Endpoint | Address | 0:1 | EndpointAddress | Adresse (URL) de destination de la requête. |
RequestorRef | 1:1 | ParticipantCode. | Identifiant du demandeur. | |
Identity | MessageIdentifier | 1:1 | MessageQualifier | Identifiant de la requête. |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Réponse aux requêtes de vérification d’état
CheckStatusResponse | +Structure | Réponses aux requêtes de vérification d’état. |
Log | ResponseTimestamp | 1:1 | xsd:dateTime: | Datation de la réponse. |
Endpoint | ProducerRef | 1:1 | ParticipantCode | Identification du répondant. |
ResponseMessageIdentifier | 1:1 | MessageQualifier | Identifiant unique du message de réponse. | |
RequestMessageRef | 1:1 | MessageQualifier | Identifiant de la requête à laquelle on répond. | |
Payload | Status | 1:1 | xsd boolean | Signale si le système est bien disponible. |
ErrorCondition | 0:1 | +Structure | Signalement d’erreur. | |
➞ Choix | –1:1 | Au choix : | ||
a) ServiceNotAvailableError | 0:1 | +Error | Service indisponible. | |
c) OtherError | 0:1 | +Error | Autre erreur. | |
➞ Description | 0:1 | ErrorDescription | Description de l’erreur. | |
ServiceStartedTime | 0:1 | xsd:dateTime: | Dernière date et heure de mise en marche du système. | |
any | Extensions | 0:1 | any | Emplacement pour extension utilisateur (cf 5.4.2.2) |
Annexe A
Termes et définitions
AVMS | Automated Vehicle Management System – Système automatisé de gestion de véhicules. |
DMZ | DeMilitarised Zone - Zone tampon d'un réseau d'entreprise, située entre le réseau local et Internet, derrière le coupe-feu, qui correspond à un réseau intermédiaire regroupant des serveurs publics (HTTP, SMTP, FTP, DNS, etc.), et dont le but est d'éviter toute connexion directe avec le réseau interne et de prévenir celui-ci de toute attaque extérieure depuis le Web. |
FIREWALL | Porte coupe-feu. Système de sécurité anti-intrusion permettant une protection des réseaux informatiques internes de l’entreprise contre les intrusions du monde extérieur, en particulier les piratages informatiques. |
HTML | Hyper Text Markup Language - langage de programmation utilisé pour créer des documents hypertexte. |
HTTP | HyperText Transfer Protocol - Le protocole technique utilisé sur le Web pour transférer des fichiers au cours d'une séance entre le serveur et l'utilisateur. |
HTTPS | HyperText Transfer Protocol Secured – Protocole Web sécurisé. |
PMR | Personne à Mobilité Réduite |
QUAY | Zone d’embarquement. Peut être constituée de positions d’embarquement |
RER | Réseau Express Régional. Le RER est un réseau de transport en commun urbain propre à la région parisienne. |
RTC | Réseau Téléphonique Commuté. Désigne le réseau téléphonique actuellement en place, utilisant des autocommutateurs pendant l’établissement des communications. |
SERVEUR | Processus ayant un ou plusieurs threads et qui reçoit des demandes de processus. Il implémente un ensemble de services et les met à la disposition de clients tournant sur le même ordinateur, ou sur divers ordinateurs dans un réseau distribué. |
SAE | Système d’Aide à l’Exploitation |
SAEIV | Système d'Aide à l'Exploitation et d’Information Voyageurs pour véhicules de transport en commun |
SIRI | Service Interface for Realtime Information – Norme de diffusion des données temps réel dans le domaine du transport. |
SIV | Système d’Information Voyageurs |
SMS | Short Message System- Message de 130 caractères au maximum qui transite entre les pagers ou les téléphones portables. |
SOAP | Simple Object Access Protocol - Protocole fondé sur XML pour l'échange d'informations en environnement décentralisé. Ce protocole qui fait l'objet d'une recommandation de la part du W3C,
est couramment utilisé pour établir un canal de communication entre
services web (invocation à distance via Internet de traitements
informatiques). Il détaille 3 parties : - les règles d'encodage des données et types de données, - les conventions du protocole d’échange qui permettent de définir les procédures d'invocation et de réponse à distance. SOAP peut être utilisé au-dessus de nombreux protocoles de transport dont HTTP. |
TRANSMODEL | Norme européenne - Modélisation conceptuelle de l’ensemble des notions utiles au transport en commun (définition des concepts, des objets et de leurs relations) |
TRIDENT | TRansport Intermodality Data sharing and Exchange. NeTwork – Format d’échanges de données au format XML dans le domaine du transport Dans le cadre du profil, elle est utilisée essentiellement pour la partie qui concerne l’échange de la description des réseaux, des correspondances et des horaires théoriques. |
UML | Unify Model Language - Langage d'analyse et de conception orienté objet défini par l'OMG (Object Management Group). UML homogénéise les représentations graphiques des objets issues des travaux de Grady Booch chez Rational Software, de Rumbaugh et d'Ivar Jacobson. |
URL | Uniform Resource Location - Adresse Internet reconnue par les navigateurs, qui leur permet d’appeler n’importe quelle page ou document. |
VPN | Virtual Private Network. Réseau privé virtuel composé d'ordinateurs qui ne constituent pas un seul et même réseau à la base, mais qui peuvent être distants géographiquement. |
WEB | "toile d'araignée" composée des pages HTML reliées entre elles par un réseau complexe de liens *hypertexte. |
WSDL | Web Services Definition Language - WSDL est une tentative de normalisation du W3C suite à une proposition d'IBM, Microsoft et Ariba. WSDL met en oeuvre XML pour décrire, de manière indépendante de la plate-forme et du langage, la façon dont les applications peuvent accéder à un service web. |
XML | eXtended Markup Language - Langage de description des documents qui utilise des balises, permet l'utilisation de balises personnalisées et permet l'échange des données. |
Annexe B (informative) Production TimeTable
Requête d’information sur les horaires commandés/théoriques
ProductionTimetableRequest | +Structure | Requête d’information sur les horaires commandés/théoriques |
---|
Attributes | Version | 1:1 | VersionString | Version du service “ ProductionTimetable ”, intégrant le numéro de version de profil (voir 5.9) |
---|---|---|---|---|
Endpoint Properties | RequestTimestamp | 1:1 | xsd:dateTime | Date d’émission de la requête. |
MessageIdentifier | 1:1 | MessageQualifier | Numéro d’identification du message. | |
Line Topic | ValidityPeriod | 1:1 | ClosedDateRangeStructure | Période pour laquelle on souhaite avoir des informations horaires. |
➞ Start | 1:1 | xsd:dateTime | Date et heure de début de période. | |
➞ End | 1:1 | xsd:dateTime | Date et heure de fin de période. | |
TimetableVersionRef | 0:1 | xsd:string | Version du référentiel théorique connue : seuls les écarts par rapport à ce référentiel seront transmis (ce champ ne sera utilisable qu’à partir de la mise en œuvre du référentiel régional) | |
OperatorRef | 0:* | → OperatorCode | Identifie le ou les exploitants pour lesquel on souhaite obtenir des informations*.* | |
Lines | ||||
➞ LineDirection | ||||
⮆ LineRef | 0:1 | → LineCode | Identifie la ligne pour laquelle on souhaite obtenir des informations. | |
Policy | IncrementalUpdates | 0:1 | xsd:boolean | Indique si l’on souhaite ne disposer que des écarts par rapport aux données théoriques, ou de l’ensemble des informations sur la période. |
Emplacement pour extension utilisateur (cf 5.4.2.2). |
Note : En fournissant des dates de début et de fin de période, on pourra obtenir en réponse des modifications horaires sur toute la période ; en retour SIRI fournira des « DatedVehicleJourney », c’est-à-dire des descriptions de courses valables pour un jour d’application donné (on n’a pas, dans ce cas, de description d’une part des courses et d’autre part des jours d’application). En d’autres termes, si la période demandée couvre deux jours, et qu’une course est active sur ces deux jours, la réponse comportera ces deux courses. La différence s’établit au niveau des heures de départ et d’arrivée indiquées par les éléments « Call » : ces heures sont en effet de type « DateTime » et comportent donc à la fois le jour et l’heure.
Abonnement aux informations sur les horaires commandés/théoriques
ProductionTimetableSubscriptionRequest | +Structure | Requête pour un abonnement au service SIRI Production Timetable Service. |
---|
Identity | SubscriberRef | 0:1 | → ParticipantCode | Identification du système demandeur (voir SIRI Part 2 Common SubscriptionRequest parameters.) |
---|---|---|---|---|
SubscriptionIdentifier | 1:1 | SubscriptionQualifier | Identifiant de l’abonnement pour le système demandeur. | |
Lease | InitialTerminationTime | 1:1 | xsd:dateTIme | Date et heure de fin de l’abonnement : un abonnement a forcément une date et heure de fin (les partenaires pourront décider de limiter la durée maximale d’un abonnement). |
Request | ProductionTimetableRequest | 1:1 | +Structure | Voir ProductionTimetableRequest. |
Réponse aux requêtes d’informations sur les horaires commandés/théoriques
ProductionTimetableDelivery | +Structure | Description des horaires sur la période |
---|
Attributes | version | 1:1 | VersionString | Numéro de version du service Production Timetable, intégrant le numéro de version de profil (valeur fixe). |
---|---|---|---|---|
LEADER | :: | 1:1 | xxxDelivery | Voir paragraphe 2.2. |
Payload | DatedTimetableVersionFrame | 0:* | +Structure | Voir DatedTimetableVersionFrame element. |
Structure DatedTimetableVersionFrame
DatedTimetableVersionFrame | +Structure | Fournit les courses applicables pour un itinéraire |
---|
Log | RecordedAtTime | 1:1 | xsd:dateTime | Date et heure auxquelles ces données ont été produites. |
---|---|---|---|---|
Line | LineRef | 1:1 | LineCode | Identifiant de la ligne. |
DirectionRef | 1:1 | DirectionCode | Identifie la direction (typiquement Aller/Retour). La sélection de ce champ n’est pas dans la logique du reste du profil (plutôt porté par Destination, voir plus bas) mais est maintenue du fait de la cardinalité imposée par SIRI. | |
Journeys | DatedVehicleJourney | 0:* | +Structure | Description des horaires de la course. |
Structure DatedVehicleJourney
DatedVehicleJourney | +Structure | Description de la course |
---|
Vehicle Journey Identity | choix | -1:1 | ||
---|---|---|---|---|
DatedVehicleJourneyCode | 0:1 | → VehicleJourneyCode | Identifie la course datée. | |
Framed-Vehicle-JourneyRef | 0:1 | +Structure | Identifie la course datée. Cette version permet de préciser la version de jeu de données associé et est recommandée à partir de SIRI 2 (et doc du profil 2.4). Le mécanisme de choix placé ici permet d'assurer la compatibilité ascendante. | |
ExtraJourney | 0:1 | xsd:boolean | Signale qu’il s’agit d’une nouvelle course, ajoutée par rapport aux horaires théoriques. Valeur par défaut : « false» | |
Cancellation | 0:1 | xsd:boolean | Signale la suppression de la course identifiée. Valeur par défaut : « false» | |
Journey Pattern Info | ::: | 0:1 | JourneyPatternInfoGroup | Voir JourneyPatternInfoGroup. |
Service Info | ::: | 0:1 | ServiceInfoGroup | Voir ServiceInfoGroup. |
Journey Info | VehicleJourneyName | 0:1 | NLString | Nom commercial de la course. |
Notes | DestinationDisplay | 0:1 | NLString | Destination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local). |
Timetableinfo | HeadwayService | 0:1 | xsd:boolean | Indique si la course est gérée dans un contexte d’exploitation (ou d’information seulement) en fréquence. Valeur par défaut : « false» |
Real-time Info | Monitored | 0:1 | xsd:boolean | Signale si les données temps réel sont disponibles pour cette course (« false » permet de signaler une délocalisation). Valeur par défaut : « true» |
Children | DatedCalls | 1:1 | +Structure | Description ordonnée des points d’arrêts et heures de passage. |
➞ DatedCall | 2:* | +Structure | Voir DatedCall |
Structure DatedCall
DatedCall | +Structure | Information et heures de passage à l’arrêt |
---|
Stop Identity | StopPointRef | 1:1 | → StopPointCode | Il convient d'utiliser ici un identifiant d'objet issu du profil NeTex Fr (Lieu d’arrêt mono ou multimodal, zone d'embarquement): granularité la plus fine possible dans tous les cas. |
---|---|---|---|---|
Order | 0:1 | xsd:positiveInteger | Numéro d'ordre de l'arrêt dans la mission. | |
StopPointName | 0:1 | NLString | Nom du point d'arrêt (cf 2.2). Si plusieurs noms sont disponibles chez le producteur, le nom le plus détaillé sera utilisé en priorité. | |
Service Info | DestinationDisplay | 0:1 | NLString | Destination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local). |
Arrival | AimedArrivalTime | 0:1 | xsd:dateTime | Date et heure d'arrivée théorique (ou commandée) |
ArrivalPlatformName | 0:1 | NLString | Identification ou nom du quai d'arrivée. | |
➞ AimedQuayName | 0:1 | NLString | Indication de la voie d'arrivée (en complément de Platform). | |
Departure | AimedDepartureTime | 0:1 | xsd:dateTime | Date et heure de départ théorique (ou commandée). |
DeparturePlatformName | 0:1 | NLString | Identification ou nom du quai de départ. | |
DepartureBoardingActivity | 0:1 | boarding | noBoarding| passthru | Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai). | |
Headway | AimedHeadwayInterval | 0:1 | PositiveDurationType | Fréquence de passage théorique (ou commandée). |
Interchange | TargetedInterchange | 0:* | +Structure | Permet de signaler une correspondance programmée à ce point arrêt (possibilité d’attendre une course arrivant). Voir Structure TargetedInterchange (cf B.7). |
Structure TargetedInterchange
TargetedInterchange | +Structure | Description d’une correspondance programmée (description de l’arrivant). |
---|
Identity | InterchangeCode | 0:1 | → InterchangeCode | Identification de la correspondance. Dans le cadre du profil France, si ce paramètre est présent, il sera constitué de la concaténation de l’identifiant de la course de l’arrivant et de celui de la course au départ (séparés par le caractère ‘:’) |
---|---|---|---|---|
DistributorVehicleJourneyRef | 1:1 | → DatedVehicleJourneyCode | Identifie la course de l’arrivant | |
Connection | DistributorConnectionLink | 1:1 | +Structure | Description du cheminement physique de correspondance. |
➞ ConnectionCode | 1:1 | ConnectionCode | Identifiant du cheminement physique de correspondance. Ce champ est obligatoire dans le XSD SIRI, et l’est donc aussi dans le profil France : toutefois s’il n’était pas disponible au niveau du système alimentant, le champ sera fourni, mais laissé vide. | |
➞ StopPointRef | 0:1 | → StopPointCode | Identifant du point d’arrêt de départ de la correspondance. Il convient d'utiliser ici un identifiant d'objet de référence partagé entre les systèmes communiquants (cf 5.4.1.1). | |
➞ InterchangeDuration | 0:1 | PositiveDurationType | Durée de la correspondance (temps « normal » de marche à pied). | |
➞ FrequentTravellerDuration | 0:1 | PositiveDurationType | Durée de la correspondance pour un voyageur habitué. | |
➞ OccasionalTravellerDuration | 0:1 | PositiveDurationType | Durée de la correspondance pour un voyageur lent ou ne connaissant pas la correspondance. | |
➞ ImpairedAccessDuration | 0:1 | PositiveDurationType | Durée de la correspondance pour une personne à mobilité réduite. | |
Interchange Properties | StaySeated | 0:1 | xsd:boolean | « true » signale que la correspondance s’effectue en restant dans le même véhicule. Valeur par défaut : « false» |
Guaranteed | 0:1 | xsd:boolean | « true » signale que la correspondance est garantie ou non. Valeur par défaut : « false» | |
Interchange Times | MaximumWaitTime | 0:1 | PositiveDurationType | Temps maximum qu’attendra le véhicule au départ si l’amenant est en retard. |
Bibliographie
- ISO 8601, Data elements and interchange formats – Information interchange – Representation of dates and times
- ISO 639/IETF 1766, Tags for the Identification of Languages
- ISO/IEC 19501-1:2002, Unified Modelling Language (UML) – Part 1: Specification
- Normes nationales, enparticulier NEPTUNE, TransXChange, BISON and VDV 452, et d’autres documents comme NOPTIS
- ERA TAP-TSI: Commission Regulation (EU) No 454/2011 of 5 May 2011 on the technical specification for interoperability relating to the subsystem ‘telematics applications for passenger services’ of the trans-European rail system.
- UIC recommendations and leaflets
- XML, Extensible Mark-up Language (XML) 1.0 W3C Recommendation 04 February 2004, available at http://www.w3.org/TR/2004/REC-xml-20040204.
- Europe on the Move: Commission takes action for clean, competitive and connected mobility https://ec.europa.eu/transport/modes/road/news/2017-05-31-europe-on-the-move_en
- Commission Delegated Regulation on the provision of EU-wide multimodal travel information service http://ec.europa.eu/info/law/better-regulation/initiatives/c-2017-3574_en
- Github SIRI disponible sur le lien http://github.com/siri-cen/siri
Accès aux xsd et wsdl SIRI
Documents d’accompagnement
[A1] Description des Cas d’usage du profil SIRI France
[A2] Règles de gestion dynamique
[A3] Bonnes Pratiques Implémentation SIRI